summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/Attic/Makefile347
-rw-r--r--src/lib/libcrypto/aes/Makefile103
-rw-r--r--src/lib/libcrypto/asn1/Makefile1150
-rw-r--r--src/lib/libcrypto/asn1/a_gentm.c12
-rw-r--r--src/lib/libcrypto/asn1/a_utctm.c11
-rw-r--r--src/lib/libcrypto/bf/Makefile116
-rw-r--r--src/lib/libcrypto/bio/Makefile214
-rw-r--r--src/lib/libcrypto/bn/Makefile331
-rw-r--r--src/lib/libcrypto/bn/bntest.c2
-rw-r--r--src/lib/libcrypto/buffer/Makefile92
-rw-r--r--src/lib/libcrypto/cast/Makefile120
-rw-r--r--src/lib/libcrypto/comp/Makefile113
-rw-r--r--src/lib/libcrypto/conf/Makefile181
-rw-r--r--src/lib/libcrypto/crypto-lib.com8
-rw-r--r--src/lib/libcrypto/des/FILES02
-rw-r--r--src/lib/libcrypto/des/Makefile314
-rw-r--r--src/lib/libcrypto/des/des_old.c2
-rw-r--r--src/lib/libcrypto/des/destest.c4
-rw-r--r--src/lib/libcrypto/dh/Makefile131
-rw-r--r--src/lib/libcrypto/dsa/Makefile173
-rw-r--r--src/lib/libcrypto/dso/Makefile140
-rw-r--r--src/lib/libcrypto/dso/dso_win32.c2
-rw-r--r--src/lib/libcrypto/ec/Makefile126
-rw-r--r--src/lib/libcrypto/engine/Makefile536
-rw-r--r--src/lib/libcrypto/engine/hw_cryptodev.c12
-rw-r--r--src/lib/libcrypto/engine/vendor_defns/sureware.h2
-rw-r--r--src/lib/libcrypto/err/Makefile118
-rw-r--r--src/lib/libcrypto/evp/Makefile1076
-rw-r--r--src/lib/libcrypto/evp/c_allc.c8
-rw-r--r--src/lib/libcrypto/evp/c_alld.c2
-rw-r--r--src/lib/libcrypto/evp/evp_test.c34
-rw-r--r--src/lib/libcrypto/evp/evptests.txt107
-rw-r--r--src/lib/libcrypto/evp/m_md2.c1
-rw-r--r--src/lib/libcrypto/evp/m_mdc2.c1
-rw-r--r--src/lib/libcrypto/evp/m_sha.c3
-rw-r--r--src/lib/libcrypto/hmac/Makefile99
-rw-r--r--src/lib/libcrypto/idea/Makefile92
-rw-r--r--src/lib/libcrypto/krb5/Makefile88
-rw-r--r--src/lib/libcrypto/lhash/Makefile91
-rw-r--r--src/lib/libcrypto/md2/Makefile93
-rw-r--r--src/lib/libcrypto/md2/md2.h3
-rw-r--r--src/lib/libcrypto/md2/md2_dgst.c4
-rw-r--r--src/lib/libcrypto/md4/Makefile92
-rw-r--r--src/lib/libcrypto/md5/Makefile128
-rw-r--r--src/lib/libcrypto/mdc2/Makefile98
-rw-r--r--src/lib/libcrypto/mdc2/mdc2.h4
-rw-r--r--src/lib/libcrypto/o_str.h67
-rw-r--r--src/lib/libcrypto/objects/Makefile122
-rw-r--r--src/lib/libcrypto/objects/obj_dat.h79
-rw-r--r--src/lib/libcrypto/objects/obj_mac.h72
-rw-r--r--src/lib/libcrypto/ocsp/Makefile291
-rw-r--r--src/lib/libcrypto/pem/Makefile335
-rw-r--r--src/lib/libcrypto/perlasm/x86ms.pl1
-rw-r--r--src/lib/libcrypto/perlasm/x86nasm.pl8
-rw-r--r--src/lib/libcrypto/perlasm/x86unix.pl7
-rw-r--r--src/lib/libcrypto/pkcs12/Makefile415
-rw-r--r--src/lib/libcrypto/pkcs7/Makefile241
-rw-r--r--src/lib/libcrypto/rand/Makefile196
-rw-r--r--src/lib/libcrypto/rand/md_rand.c9
-rw-r--r--src/lib/libcrypto/rand/rand_egd.c10
-rw-r--r--src/lib/libcrypto/rand/rand_unix.c35
-rw-r--r--src/lib/libcrypto/rand/rand_vms.c5
-rw-r--r--src/lib/libcrypto/rand/rand_win.c104
-rw-r--r--src/lib/libcrypto/rc2/Makefile92
-rw-r--r--src/lib/libcrypto/rc4/Makefile123
-rw-r--r--src/lib/libcrypto/rc4/asm/rc4-ia64.S157
-rw-r--r--src/lib/libcrypto/rc5/Makefile110
-rw-r--r--src/lib/libcrypto/rc5/rc5.h5
-rw-r--r--src/lib/libcrypto/ripemd/Makefile111
-rw-r--r--src/lib/libcrypto/rsa/Makefile239
-rw-r--r--src/lib/libcrypto/sha/Makefile127
-rw-r--r--src/lib/libcrypto/sha/shatest.c4
-rw-r--r--src/lib/libcrypto/stack/Makefile86
-rw-r--r--src/lib/libcrypto/txt_db/Makefile86
-rw-r--r--src/lib/libcrypto/ui/Makefile115
-rw-r--r--src/lib/libcrypto/util/cygwin.sh14
-rw-r--r--src/lib/libcrypto/util/domd10
-rw-r--r--src/lib/libcrypto/util/extract-names.pl8
-rw-r--r--src/lib/libcrypto/util/fixNT.sh6
-rw-r--r--src/lib/libcrypto/util/libeay.num86
-rw-r--r--src/lib/libcrypto/util/mk1mf.pl20
-rw-r--r--src/lib/libcrypto/util/mkdef.pl17
-rw-r--r--src/lib/libcrypto/util/mkfiles.pl10
-rw-r--r--src/lib/libcrypto/util/mklink.pl1
-rwxr-xr-xsrc/lib/libcrypto/util/opensslwrap.sh22
-rw-r--r--src/lib/libcrypto/util/pl/BC-16.pl15
-rw-r--r--src/lib/libcrypto/util/pl/BC-32.pl13
-rw-r--r--src/lib/libcrypto/util/pl/Mingw32.pl11
-rw-r--r--src/lib/libcrypto/util/pl/OS2-EMX.pl11
-rw-r--r--src/lib/libcrypto/util/pl/VC-16.pl13
-rw-r--r--src/lib/libcrypto/util/pl/VC-32.pl11
-rw-r--r--src/lib/libcrypto/util/pl/VC-CE.pl11
-rw-r--r--src/lib/libcrypto/util/pl/linux.pl9
-rw-r--r--src/lib/libcrypto/util/pl/ultrix.pl11
-rw-r--r--src/lib/libcrypto/util/pl/unix.pl9
-rw-r--r--src/lib/libcrypto/util/pod2mantest2
-rw-r--r--src/lib/libcrypto/util/selftest.pl4
-rwxr-xr-xsrc/lib/libcrypto/util/shlib_wrap.sh70
-rw-r--r--src/lib/libcrypto/x509/Makefile592
-rw-r--r--src/lib/libcrypto/x509v3/Makefile645
-rw-r--r--src/lib/libssl/src/CHANGES120
-rw-r--r--src/lib/libssl/src/Configure126
-rw-r--r--src/lib/libssl/src/FAQ47
-rw-r--r--src/lib/libssl/src/INSTALL4
-rw-r--r--src/lib/libssl/src/INSTALL.DJGPP47
-rw-r--r--src/lib/libssl/src/INSTALL.W3213
-rw-r--r--src/lib/libssl/src/Makefile930
-rw-r--r--src/lib/libssl/src/Makefile.org158
-rw-r--r--src/lib/libssl/src/NEWS24
-rw-r--r--src/lib/libssl/src/PROBLEMS13
-rw-r--r--src/lib/libssl/src/README20
-rw-r--r--src/lib/libssl/src/VMS/VMSify-conf.pl34
-rw-r--r--src/lib/libssl/src/VMS/mkshared.com8
-rw-r--r--src/lib/libssl/src/apps/CA.pl27
-rw-r--r--src/lib/libssl/src/apps/CA.pl.in25
-rw-r--r--src/lib/libssl/src/apps/CA.sh10
-rw-r--r--src/lib/libssl/src/apps/Makefile1168
-rw-r--r--src/lib/libssl/src/apps/apps.c206
-rw-r--r--src/lib/libssl/src/apps/apps.h12
-rw-r--r--src/lib/libssl/src/apps/asn1pars.c10
-rw-r--r--src/lib/libssl/src/apps/ca.c66
-rw-r--r--src/lib/libssl/src/apps/crl.c6
-rw-r--r--src/lib/libssl/src/apps/dgst.c88
-rw-r--r--src/lib/libssl/src/apps/enc.c71
-rw-r--r--src/lib/libssl/src/apps/makeapps.com10
-rw-r--r--src/lib/libssl/src/apps/openssl-vms.cnf95
-rw-r--r--src/lib/libssl/src/apps/openssl.c25
-rw-r--r--src/lib/libssl/src/apps/openssl.cnf57
-rw-r--r--src/lib/libssl/src/apps/pkcs12.c28
-rw-r--r--src/lib/libssl/src/apps/pkcs8.c289
-rw-r--r--src/lib/libssl/src/apps/prime.c128
-rw-r--r--src/lib/libssl/src/apps/progs.h2
-rw-r--r--src/lib/libssl/src/apps/req.c24
-rw-r--r--src/lib/libssl/src/apps/s_client.c9
-rw-r--r--src/lib/libssl/src/apps/s_socket.c1
-rw-r--r--src/lib/libssl/src/apps/speed.c1
-rw-r--r--src/lib/libssl/src/apps/verify.c1
-rw-r--r--src/lib/libssl/src/apps/x509.c57
-rw-r--r--src/lib/libssl/src/certs/demo/ca-cert.pem33
-rw-r--r--src/lib/libssl/src/certs/demo/dsa-ca.pem43
-rw-r--r--src/lib/libssl/src/certs/demo/dsa-pca.pem49
-rw-r--r--src/lib/libssl/src/certs/demo/nortelCA.pem16
-rw-r--r--src/lib/libssl/src/certs/demo/pca-cert.pem33
-rw-r--r--src/lib/libssl/src/certs/demo/timCA.pem16
-rw-r--r--src/lib/libssl/src/certs/demo/tjhCA.pem15
-rw-r--r--src/lib/libssl/src/certs/demo/vsigntca.pem18
-rw-r--r--src/lib/libssl/src/certs/eng1.pem23
-rw-r--r--src/lib/libssl/src/certs/eng2.pem23
-rw-r--r--src/lib/libssl/src/certs/eng3.pem34
-rw-r--r--src/lib/libssl/src/certs/eng4.pem23
-rw-r--r--src/lib/libssl/src/certs/eng5.pem23
-rw-r--r--src/lib/libssl/src/certs/expired/RegTP-4R.pem19
-rw-r--r--src/lib/libssl/src/certs/expired/factory.pem15
-rw-r--r--src/lib/libssl/src/certs/expired/rsa-cca.pem19
-rw-r--r--src/lib/libssl/src/certs/expired/vsign2.pem18
-rw-r--r--src/lib/libssl/src/certs/wellsfgo.pem23
-rw-r--r--src/lib/libssl/src/config140
-rw-r--r--src/lib/libssl/src/crypto/Makefile347
-rw-r--r--src/lib/libssl/src/crypto/aes/Makefile103
-rw-r--r--src/lib/libssl/src/crypto/aes/aes.h15
-rw-r--r--src/lib/libssl/src/crypto/aes/aes_cbc.c44
-rw-r--r--src/lib/libssl/src/crypto/aes/aes_cfb.c68
-rw-r--r--src/lib/libssl/src/crypto/aes/aes_core.c4
-rw-r--r--src/lib/libssl/src/crypto/aes/aes_ctr.c35
-rw-r--r--src/lib/libssl/src/crypto/aes/aes_locl.h2
-rw-r--r--src/lib/libssl/src/crypto/asn1/Makefile1150
-rw-r--r--src/lib/libssl/src/crypto/asn1/a_bitstr.c8
-rw-r--r--src/lib/libssl/src/crypto/asn1/a_digest.c7
-rw-r--r--src/lib/libssl/src/crypto/asn1/a_enum.c2
-rw-r--r--src/lib/libssl/src/crypto/asn1/a_gentm.c12
-rw-r--r--src/lib/libssl/src/crypto/asn1/a_int.c21
-rw-r--r--src/lib/libssl/src/crypto/asn1/a_print.c2
-rw-r--r--src/lib/libssl/src/crypto/asn1/a_set.c23
-rw-r--r--src/lib/libssl/src/crypto/asn1/a_strex.c9
-rw-r--r--src/lib/libssl/src/crypto/asn1/a_type.c5
-rw-r--r--src/lib/libssl/src/crypto/asn1/a_utctm.c11
-rw-r--r--src/lib/libssl/src/crypto/asn1/a_verify.c8
-rw-r--r--src/lib/libssl/src/crypto/asn1/asn1.h8
-rw-r--r--src/lib/libssl/src/crypto/asn1/asn1_err.c8
-rw-r--r--src/lib/libssl/src/crypto/asn1/asn1_lib.c1
-rw-r--r--src/lib/libssl/src/crypto/asn1/evp_asn1.c6
-rw-r--r--src/lib/libssl/src/crypto/asn1/p5_pbe.c26
-rw-r--r--src/lib/libssl/src/crypto/asn1/p5_pbev2.c6
-rw-r--r--src/lib/libssl/src/crypto/asn1/t_bitst.c5
-rw-r--r--src/lib/libssl/src/crypto/asn1/x_crl.c40
-rw-r--r--src/lib/libssl/src/crypto/asn1/x_name.c19
-rw-r--r--src/lib/libssl/src/crypto/asn1/x_pubkey.c50
-rw-r--r--src/lib/libssl/src/crypto/bf/Makefile116
-rw-r--r--src/lib/libssl/src/crypto/bf/bf_skey.c3
-rw-r--r--src/lib/libssl/src/crypto/bf/blowfish.h5
-rw-r--r--src/lib/libssl/src/crypto/bio/Makefile214
-rw-r--r--src/lib/libssl/src/crypto/bio/b_print.c2
-rw-r--r--src/lib/libssl/src/crypto/bio/bio.h1
-rw-r--r--src/lib/libssl/src/crypto/bio/bss_file.c16
-rw-r--r--src/lib/libssl/src/crypto/bn/Makefile331
-rw-r--r--src/lib/libssl/src/crypto/bn/asm/ia64.S217
-rw-r--r--src/lib/libssl/src/crypto/bn/asm/ppc.pl2081
-rw-r--r--src/lib/libssl/src/crypto/bn/asm/x86_64-gcc.c54
-rw-r--r--src/lib/libssl/src/crypto/bn/bn_mont.c2
-rw-r--r--src/lib/libssl/src/crypto/bn/bntest.c2
-rw-r--r--src/lib/libssl/src/crypto/buffer/Makefile92
-rw-r--r--src/lib/libssl/src/crypto/cast/Makefile120
-rw-r--r--src/lib/libssl/src/crypto/cast/c_skey.c4
-rw-r--r--src/lib/libssl/src/crypto/cast/cast.h5
-rw-r--r--src/lib/libssl/src/crypto/comp/Makefile113
-rw-r--r--src/lib/libssl/src/crypto/comp/c_zlib.c13
-rw-r--r--src/lib/libssl/src/crypto/conf/Makefile181
-rw-r--r--src/lib/libssl/src/crypto/conf/conf_def.c5
-rw-r--r--src/lib/libssl/src/crypto/cryptlib.c130
-rw-r--r--src/lib/libssl/src/crypto/crypto-lib.com8
-rw-r--r--src/lib/libssl/src/crypto/crypto.h61
-rw-r--r--src/lib/libssl/src/crypto/des/FILES02
-rw-r--r--src/lib/libssl/src/crypto/des/Makefile314
-rw-r--r--src/lib/libssl/src/crypto/des/cfb64ede.c112
-rw-r--r--src/lib/libssl/src/crypto/des/des.h6
-rw-r--r--src/lib/libssl/src/crypto/des/des_enc.c8
-rw-r--r--src/lib/libssl/src/crypto/des/des_old.c2
-rw-r--r--src/lib/libssl/src/crypto/des/destest.c4
-rw-r--r--src/lib/libssl/src/crypto/des/ecb3_enc.c4
-rw-r--r--src/lib/libssl/src/crypto/des/set_key.c4
-rw-r--r--src/lib/libssl/src/crypto/dh/Makefile131
-rw-r--r--src/lib/libssl/src/crypto/dh/dh_check.c4
-rw-r--r--src/lib/libssl/src/crypto/dh/dh_err.c2
-rw-r--r--src/lib/libssl/src/crypto/dh/dh_gen.c6
-rw-r--r--src/lib/libssl/src/crypto/dh/dh_key.c4
-rw-r--r--src/lib/libssl/src/crypto/dsa/Makefile173
-rw-r--r--src/lib/libssl/src/crypto/dsa/dsa.h4
-rw-r--r--src/lib/libssl/src/crypto/dsa/dsa_gen.c45
-rw-r--r--src/lib/libssl/src/crypto/dsa/dsa_key.c2
-rw-r--r--src/lib/libssl/src/crypto/dsa/dsa_ossl.c2
-rw-r--r--src/lib/libssl/src/crypto/dsa/dsa_sign.c12
-rw-r--r--src/lib/libssl/src/crypto/dsa/dsa_vrf.c8
-rw-r--r--src/lib/libssl/src/crypto/dso/Makefile140
-rw-r--r--src/lib/libssl/src/crypto/dso/dso_win32.c2
-rw-r--r--src/lib/libssl/src/crypto/ec/Makefile126
-rw-r--r--src/lib/libssl/src/crypto/engine/Makefile536
-rw-r--r--src/lib/libssl/src/crypto/engine/hw_cryptodev.c12
-rw-r--r--src/lib/libssl/src/crypto/engine/vendor_defns/sureware.h2
-rw-r--r--src/lib/libssl/src/crypto/err/Makefile118
-rw-r--r--src/lib/libssl/src/crypto/err/err.c2
-rw-r--r--src/lib/libssl/src/crypto/err/err.h3
-rw-r--r--src/lib/libssl/src/crypto/err/err_all.c4
-rw-r--r--src/lib/libssl/src/crypto/err/openssl.ec1
-rw-r--r--src/lib/libssl/src/crypto/evp/Makefile1076
-rw-r--r--src/lib/libssl/src/crypto/evp/bio_md.c19
-rw-r--r--src/lib/libssl/src/crypto/evp/c_allc.c8
-rw-r--r--src/lib/libssl/src/crypto/evp/c_alld.c2
-rw-r--r--src/lib/libssl/src/crypto/evp/digest.c45
-rw-r--r--src/lib/libssl/src/crypto/evp/e_aes.c32
-rw-r--r--src/lib/libssl/src/crypto/evp/e_des.c43
-rw-r--r--src/lib/libssl/src/crypto/evp/e_des3.c51
-rw-r--r--src/lib/libssl/src/crypto/evp/e_null.c2
-rw-r--r--src/lib/libssl/src/crypto/evp/e_old.c108
-rw-r--r--src/lib/libssl/src/crypto/evp/e_rc4.c1
-rw-r--r--src/lib/libssl/src/crypto/evp/evp.h70
-rw-r--r--src/lib/libssl/src/crypto/evp/evp_enc.c61
-rw-r--r--src/lib/libssl/src/crypto/evp/evp_err.c9
-rw-r--r--src/lib/libssl/src/crypto/evp/evp_lib.c28
-rw-r--r--src/lib/libssl/src/crypto/evp/evp_locl.h29
-rw-r--r--src/lib/libssl/src/crypto/evp/evp_pkey.c124
-rw-r--r--src/lib/libssl/src/crypto/evp/evp_test.c34
-rw-r--r--src/lib/libssl/src/crypto/evp/evptests.txt107
-rw-r--r--src/lib/libssl/src/crypto/evp/m_dss.c2
-rw-r--r--src/lib/libssl/src/crypto/evp/m_md2.c1
-rw-r--r--src/lib/libssl/src/crypto/evp/m_md4.c1
-rw-r--r--src/lib/libssl/src/crypto/evp/m_md5.c1
-rw-r--r--src/lib/libssl/src/crypto/evp/m_mdc2.c1
-rw-r--r--src/lib/libssl/src/crypto/evp/m_sha.c3
-rw-r--r--src/lib/libssl/src/crypto/evp/m_sha1.c2
-rw-r--r--src/lib/libssl/src/crypto/evp/names.c3
-rw-r--r--src/lib/libssl/src/crypto/hmac/Makefile99
-rw-r--r--src/lib/libssl/src/crypto/hmac/hmac.c16
-rw-r--r--src/lib/libssl/src/crypto/hmac/hmac.h1
-rw-r--r--src/lib/libssl/src/crypto/idea/Makefile92
-rw-r--r--src/lib/libssl/src/crypto/idea/idea.h4
-rw-r--r--src/lib/libssl/src/crypto/krb5/Makefile88
-rw-r--r--src/lib/libssl/src/crypto/lhash/Makefile91
-rw-r--r--src/lib/libssl/src/crypto/md2/Makefile93
-rw-r--r--src/lib/libssl/src/crypto/md2/md2.h3
-rw-r--r--src/lib/libssl/src/crypto/md2/md2_dgst.c4
-rw-r--r--src/lib/libssl/src/crypto/md32_common.h14
-rw-r--r--src/lib/libssl/src/crypto/md4/Makefile92
-rw-r--r--src/lib/libssl/src/crypto/md4/md4.h3
-rw-r--r--src/lib/libssl/src/crypto/md4/md4_dgst.c2
-rw-r--r--src/lib/libssl/src/crypto/md5/Makefile128
-rw-r--r--src/lib/libssl/src/crypto/md5/md5.h3
-rw-r--r--src/lib/libssl/src/crypto/md5/md5_dgst.c2
-rw-r--r--src/lib/libssl/src/crypto/mdc2/Makefile98
-rw-r--r--src/lib/libssl/src/crypto/mdc2/mdc2.h4
-rw-r--r--src/lib/libssl/src/crypto/o_str.c96
-rw-r--r--src/lib/libssl/src/crypto/o_str.h67
-rw-r--r--src/lib/libssl/src/crypto/o_time.c21
-rw-r--r--src/lib/libssl/src/crypto/objects/Makefile122
-rw-r--r--src/lib/libssl/src/crypto/objects/o_names.c7
-rw-r--r--src/lib/libssl/src/crypto/objects/obj_dat.c12
-rw-r--r--src/lib/libssl/src/crypto/objects/obj_dat.h79
-rw-r--r--src/lib/libssl/src/crypto/objects/obj_err.c4
-rw-r--r--src/lib/libssl/src/crypto/objects/obj_mac.h72
-rw-r--r--src/lib/libssl/src/crypto/objects/obj_mac.num18
-rw-r--r--src/lib/libssl/src/crypto/objects/objects.h2
-rw-r--r--src/lib/libssl/src/crypto/objects/objects.txt22
-rw-r--r--src/lib/libssl/src/crypto/ocsp/Makefile291
-rw-r--r--src/lib/libssl/src/crypto/opensslv.h8
-rw-r--r--src/lib/libssl/src/crypto/pem/Makefile335
-rw-r--r--src/lib/libssl/src/crypto/pem/pem_all.c119
-rw-r--r--src/lib/libssl/src/crypto/pem/pem_lib.c15
-rw-r--r--src/lib/libssl/src/crypto/pem/pem_pkey.c1
-rw-r--r--src/lib/libssl/src/crypto/perlasm/x86asm.pl2
-rw-r--r--src/lib/libssl/src/crypto/perlasm/x86ms.pl1
-rw-r--r--src/lib/libssl/src/crypto/perlasm/x86nasm.pl8
-rw-r--r--src/lib/libssl/src/crypto/perlasm/x86unix.pl7
-rw-r--r--src/lib/libssl/src/crypto/pkcs12/Makefile415
-rw-r--r--src/lib/libssl/src/crypto/pkcs12/p12_crpt.c6
-rw-r--r--src/lib/libssl/src/crypto/pkcs12/p12_init.c12
-rw-r--r--src/lib/libssl/src/crypto/pkcs12/p12_kiss.c18
-rw-r--r--src/lib/libssl/src/crypto/pkcs12/p12_mutl.c5
-rw-r--r--src/lib/libssl/src/crypto/pkcs7/Makefile241
-rw-r--r--src/lib/libssl/src/crypto/pkcs7/pk7_attr.c9
-rw-r--r--src/lib/libssl/src/crypto/pkcs7/pk7_doit.c55
-rw-r--r--src/lib/libssl/src/crypto/pkcs7/pk7_lib.c44
-rw-r--r--src/lib/libssl/src/crypto/pkcs7/pk7_smime.c46
-rw-r--r--src/lib/libssl/src/crypto/rand/Makefile196
-rw-r--r--src/lib/libssl/src/crypto/rand/md_rand.c9
-rw-r--r--src/lib/libssl/src/crypto/rand/rand.h10
-rw-r--r--src/lib/libssl/src/crypto/rand/rand_egd.c10
-rw-r--r--src/lib/libssl/src/crypto/rand/rand_err.c8
-rw-r--r--src/lib/libssl/src/crypto/rand/rand_lib.c12
-rw-r--r--src/lib/libssl/src/crypto/rand/rand_unix.c35
-rw-r--r--src/lib/libssl/src/crypto/rand/rand_vms.c5
-rw-r--r--src/lib/libssl/src/crypto/rand/rand_win.c104
-rw-r--r--src/lib/libssl/src/crypto/rand/randfile.c2
-rw-r--r--src/lib/libssl/src/crypto/rc2/Makefile92
-rw-r--r--src/lib/libssl/src/crypto/rc2/rc2.h5
-rw-r--r--src/lib/libssl/src/crypto/rc2/rc2_skey.c13
-rw-r--r--src/lib/libssl/src/crypto/rc4/Makefile123
-rw-r--r--src/lib/libssl/src/crypto/rc4/asm/rc4-586.pl114
-rw-r--r--src/lib/libssl/src/crypto/rc4/asm/rc4-ia64.S157
-rw-r--r--src/lib/libssl/src/crypto/rc4/rc4.h7
-rw-r--r--src/lib/libssl/src/crypto/rc4/rc4_enc.c4
-rw-r--r--src/lib/libssl/src/crypto/rc4/rc4_locl.h1
-rw-r--r--src/lib/libssl/src/crypto/rc4/rc4_skey.c8
-rw-r--r--src/lib/libssl/src/crypto/rc5/Makefile110
-rw-r--r--src/lib/libssl/src/crypto/rc5/rc5.h5
-rw-r--r--src/lib/libssl/src/crypto/ripemd/Makefile111
-rw-r--r--src/lib/libssl/src/crypto/ripemd/ripemd.h3
-rw-r--r--src/lib/libssl/src/crypto/ripemd/rmd_dgst.c3
-rw-r--r--src/lib/libssl/src/crypto/rsa/Makefile239
-rw-r--r--src/lib/libssl/src/crypto/rsa/rsa.h4
-rw-r--r--src/lib/libssl/src/crypto/rsa/rsa_eay.c2
-rw-r--r--src/lib/libssl/src/crypto/rsa/rsa_gen.c3
-rw-r--r--src/lib/libssl/src/crypto/rsa/rsa_saos.c7
-rw-r--r--src/lib/libssl/src/crypto/rsa/rsa_sign.c9
-rw-r--r--src/lib/libssl/src/crypto/sha/Makefile127
-rw-r--r--src/lib/libssl/src/crypto/sha/asm/sha1-586.pl2
-rw-r--r--src/lib/libssl/src/crypto/sha/asm/sha1-ia64.pl549
-rw-r--r--src/lib/libssl/src/crypto/sha/sha.h7
-rw-r--r--src/lib/libssl/src/crypto/sha/sha1dgst.c8
-rw-r--r--src/lib/libssl/src/crypto/sha/sha_locl.h9
-rw-r--r--src/lib/libssl/src/crypto/sha/shatest.c4
-rw-r--r--src/lib/libssl/src/crypto/stack/Makefile86
-rw-r--r--src/lib/libssl/src/crypto/stack/safestack.h59
-rw-r--r--src/lib/libssl/src/crypto/stack/stack.c14
-rw-r--r--src/lib/libssl/src/crypto/stack/stack.h1
-rw-r--r--src/lib/libssl/src/crypto/txt_db/Makefile86
-rw-r--r--src/lib/libssl/src/crypto/ui/Makefile115
-rw-r--r--src/lib/libssl/src/crypto/x509/Makefile592
-rw-r--r--src/lib/libssl/src/crypto/x509/by_file.c4
-rw-r--r--src/lib/libssl/src/crypto/x509/x509.h11
-rw-r--r--src/lib/libssl/src/crypto/x509/x509_cmp.c48
-rw-r--r--src/lib/libssl/src/crypto/x509/x509_r2x.c6
-rw-r--r--src/lib/libssl/src/crypto/x509/x509_req.c35
-rw-r--r--src/lib/libssl/src/crypto/x509/x509_txt.c13
-rw-r--r--src/lib/libssl/src/crypto/x509/x509_vfy.c131
-rw-r--r--src/lib/libssl/src/crypto/x509/x509_vfy.h8
-rw-r--r--src/lib/libssl/src/crypto/x509/x509cset.c1
-rw-r--r--src/lib/libssl/src/crypto/x509/x509name.c10
-rw-r--r--src/lib/libssl/src/crypto/x509/x_all.c1
-rw-r--r--src/lib/libssl/src/crypto/x509v3/Makefile645
-rw-r--r--src/lib/libssl/src/crypto/x509v3/ext_dat.h11
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3_bitst.c7
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3_ia5.c5
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3_int.c19
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3_pci.c313
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3_pcia.c55
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3_purp.c75
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3err.c14
-rw-r--r--src/lib/libssl/src/crypto/x509v3/x509v3.h31
-rw-r--r--src/lib/libssl/src/demos/engines/rsaref/rsaref.c6
-rw-r--r--src/lib/libssl/src/doc/HOWTO/proxy_certificates.txt322
-rw-r--r--src/lib/libssl/src/doc/apps/asn1parse.pod2
-rw-r--r--src/lib/libssl/src/doc/apps/dgst.pod6
-rw-r--r--src/lib/libssl/src/doc/apps/enc.pod2
-rw-r--r--src/lib/libssl/src/doc/apps/errstr.pod39
-rw-r--r--src/lib/libssl/src/doc/crypto/ASN1_STRING_print_ex.pod6
-rw-r--r--src/lib/libssl/src/doc/crypto/BN_num_bytes.pod26
-rw-r--r--src/lib/libssl/src/doc/crypto/ERR_error_string.pod2
-rw-r--r--src/lib/libssl/src/doc/crypto/EVP_EncryptInit.pod2
-rw-r--r--src/lib/libssl/src/doc/crypto/EVP_SealInit.pod5
-rw-r--r--src/lib/libssl/src/doc/crypto/EVP_SignInit.pod9
-rw-r--r--src/lib/libssl/src/doc/crypto/RSA_public_encrypt.pod7
-rw-r--r--src/lib/libssl/src/doc/crypto/X509_NAME_ENTRY_get_object.pod6
-rw-r--r--src/lib/libssl/src/doc/crypto/X509_NAME_add_entry_by_txt.pod6
-rw-r--r--src/lib/libssl/src/doc/crypto/X509_NAME_print_ex.pod4
-rw-r--r--src/lib/libssl/src/doc/crypto/blowfish.pod2
-rw-r--r--src/lib/libssl/src/doc/crypto/pem.pod2
-rw-r--r--src/lib/libssl/src/doc/fingerprints.txt28
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_CIPHER_get_name.pod6
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_CTX_get_ex_new_index.pod2
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_CTX_get_verify_mode.pod12
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_CTX_set_cert_store.pod2
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_CTX_set_info_callback.pod4
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_CTX_set_options.pod2
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_CTX_set_quiet_shutdown.pod4
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_CTX_set_session_id_context.pod3
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_CTX_use_certificate.pod4
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_SESSION_get_ex_new_index.pod2
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_SESSION_get_time.pod8
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_get_SSL_CTX.pod2
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_get_ciphers.pod4
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_get_client_CA_list.pod4
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_get_current_cipher.pod2
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_get_default_timeout.pod2
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_get_error.pod2
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_get_ex_new_index.pod2
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_get_fd.pod6
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_get_peer_cert_chain.pod2
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_get_peer_certificate.pod2
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_get_session.pod4
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_get_verify_result.pod2
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_get_version.pod2
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_pending.pod2
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_set_shutdown.pod2
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_shutdown.pod2
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_state_string.pod4
-rw-r--r--src/lib/libssl/src/doc/ssl/SSL_want.pod10
-rw-r--r--src/lib/libssl/src/doc/ssl/d2i_SSL_SESSION.pod2
-rw-r--r--src/lib/libssl/src/doc/ssl/ssl.pod110
-rw-r--r--src/lib/libssl/src/doc/standards.txt4
-rw-r--r--src/lib/libssl/src/e_os.h22
-rw-r--r--src/lib/libssl/src/e_os2.h14
-rw-r--r--src/lib/libssl/src/fips/Makefile199
-rw-r--r--src/lib/libssl/src/fips/aes/Makefile131
-rw-r--r--src/lib/libssl/src/fips/aes/fips_aes_selftest.c112
-rw-r--r--src/lib/libssl/src/fips/aes/fips_aesavs.c1005
-rw-r--r--src/lib/libssl/src/fips/des/Makefile155
-rw-r--r--src/lib/libssl/src/fips/des/fips_des_selftest.c200
-rw-r--r--src/lib/libssl/src/fips/des/fips_desmovs.c833
-rw-r--r--src/lib/libssl/src/fips/dh/Makefile109
-rw-r--r--src/lib/libssl/src/fips/dh/fips_dh_check.c125
-rw-r--r--src/lib/libssl/src/fips/dh/fips_dh_gen.c186
-rw-r--r--src/lib/libssl/src/fips/dh/fips_dh_key.c230
-rw-r--r--src/lib/libssl/src/fips/dsa/Makefile158
-rw-r--r--src/lib/libssl/src/fips/dsa/fips_dsa_gen.c374
-rw-r--r--src/lib/libssl/src/fips/dsa/fips_dsa_ossl.c387
-rw-r--r--src/lib/libssl/src/fips/dsa/fips_dsa_selftest.c168
-rw-r--r--src/lib/libssl/src/fips/dsa/fips_dsatest.c257
-rw-r--r--src/lib/libssl/src/fips/dsa/fips_dssvs.c306
-rw-r--r--src/lib/libssl/src/fips/fips-lib.com1180
-rw-r--r--src/lib/libssl/src/fips/fips.c260
-rw-r--r--src/lib/libssl/src/fips/fips.h125
-rw-r--r--src/lib/libssl/src/fips/fips_locl.h67
-rw-r--r--src/lib/libssl/src/fips/fips_test_suite.c341
-rw-r--r--src/lib/libssl/src/fips/install.com55
-rwxr-xr-xsrc/lib/libssl/src/fips/openssl_fips_fingerprint30
-rw-r--r--src/lib/libssl/src/fips/rand/Makefile104
-rw-r--r--src/lib/libssl/src/fips/rand/fips_rand.c355
-rw-r--r--src/lib/libssl/src/fips/rand/fips_rand.h73
-rw-r--r--src/lib/libssl/src/fips/rand/fips_randtest.c369
-rw-r--r--src/lib/libssl/src/fips/rsa/Makefile111
-rw-r--r--src/lib/libssl/src/fips/rsa/fips_rsa_eay.c735
-rw-r--r--src/lib/libssl/src/fips/rsa/fips_rsa_gen.c249
-rw-r--r--src/lib/libssl/src/fips/rsa/fips_rsa_selftest.c251
-rw-r--r--src/lib/libssl/src/install.com12
-rw-r--r--src/lib/libssl/src/makevms.com45
-rw-r--r--src/lib/libssl/src/ms/do_masm.bat22
-rw-r--r--src/lib/libssl/src/ms/do_ms.bat22
-rw-r--r--src/lib/libssl/src/ms/do_nasm.bat23
-rw-r--r--src/lib/libssl/src/ms/do_nt.bat8
-rw-r--r--src/lib/libssl/src/ms/test.bat40
-rw-r--r--src/lib/libssl/src/ms/testss.bat2
-rw-r--r--src/lib/libssl/src/openssl.spec2
-rw-r--r--src/lib/libssl/src/shlib/hpux10-cc.sh6
-rw-r--r--src/lib/libssl/src/ssl/Makefile1020
-rw-r--r--src/lib/libssl/src/ssl/kssl.c18
-rw-r--r--src/lib/libssl/src/ssl/kssl.h6
-rw-r--r--src/lib/libssl/src/ssl/s23_clnt.c23
-rw-r--r--src/lib/libssl/src/ssl/s23_lib.c2
-rw-r--r--src/lib/libssl/src/ssl/s23_srvr.c9
-rw-r--r--src/lib/libssl/src/ssl/s2_clnt.c7
-rw-r--r--src/lib/libssl/src/ssl/s2_lib.c2
-rw-r--r--src/lib/libssl/src/ssl/s2_srvr.c9
-rw-r--r--src/lib/libssl/src/ssl/s3_clnt.c7
-rw-r--r--src/lib/libssl/src/ssl/s3_enc.c4
-rw-r--r--src/lib/libssl/src/ssl/s3_lib.c74
-rw-r--r--src/lib/libssl/src/ssl/s3_pkt.c12
-rw-r--r--src/lib/libssl/src/ssl/s3_srvr.c17
-rw-r--r--src/lib/libssl/src/ssl/ssl.h118
-rw-r--r--src/lib/libssl/src/ssl/ssl_asn1.c8
-rw-r--r--src/lib/libssl/src/ssl/ssl_cert.c104
-rw-r--r--src/lib/libssl/src/ssl/ssl_ciph.c21
-rw-r--r--src/lib/libssl/src/ssl/ssl_err.c4
-rw-r--r--src/lib/libssl/src/ssl/ssl_lib.c103
-rw-r--r--src/lib/libssl/src/ssl/ssl_locl.h12
-rw-r--r--src/lib/libssl/src/ssl/ssl_rsa.c2
-rw-r--r--src/lib/libssl/src/ssl/ssl_sess.c13
-rw-r--r--src/lib/libssl/src/ssl/ssl_txt.c4
-rw-r--r--src/lib/libssl/src/ssl/ssltest.c538
-rw-r--r--src/lib/libssl/src/ssl/t1_enc.c4
-rw-r--r--src/lib/libssl/src/test/CAss.cnf8
-rw-r--r--src/lib/libssl/src/test/Makefile788
-rw-r--r--src/lib/libssl/src/test/P1ss.cnf37
-rw-r--r--src/lib/libssl/src/test/P2ss.cnf45
-rw-r--r--src/lib/libssl/src/test/Uss.cnf8
-rw-r--r--src/lib/libssl/src/test/bctest2
-rw-r--r--src/lib/libssl/src/test/evptests.txt107
-rw-r--r--src/lib/libssl/src/test/maketests.com6
-rw-r--r--src/lib/libssl/src/test/tcrl2
-rw-r--r--src/lib/libssl/src/test/testca3
-rw-r--r--src/lib/libssl/src/test/testenc20
-rw-r--r--src/lib/libssl/src/test/testenc.com2
-rw-r--r--src/lib/libssl/src/test/testfipsssl113
-rw-r--r--src/lib/libssl/src/test/testgen6
-rw-r--r--src/lib/libssl/src/test/testss86
-rw-r--r--src/lib/libssl/src/test/testssl14
-rw-r--r--src/lib/libssl/src/test/testsslproxy10
-rw-r--r--src/lib/libssl/src/test/tpkcs72
-rw-r--r--src/lib/libssl/src/test/tpkcs7d2
-rw-r--r--src/lib/libssl/src/test/treq2
-rw-r--r--src/lib/libssl/src/test/trsa4
-rw-r--r--src/lib/libssl/src/test/tsid2
-rw-r--r--src/lib/libssl/src/test/tverify.com9
-rw-r--r--src/lib/libssl/src/test/tx5092
-rw-r--r--src/lib/libssl/src/tools/Makefile61
-rw-r--r--src/lib/libssl/src/tools/c_issuer2
-rw-r--r--src/lib/libssl/src/tools/c_rehash2
-rw-r--r--src/lib/libssl/src/util/cygwin.sh14
-rw-r--r--src/lib/libssl/src/util/domd10
-rw-r--r--src/lib/libssl/src/util/extract-names.pl8
-rw-r--r--src/lib/libssl/src/util/fixNT.sh6
-rw-r--r--src/lib/libssl/src/util/libeay.num86
-rw-r--r--src/lib/libssl/src/util/mk1mf.pl20
-rw-r--r--src/lib/libssl/src/util/mkdef.pl17
-rw-r--r--src/lib/libssl/src/util/mkerr.pl7
-rw-r--r--src/lib/libssl/src/util/mkfiles.pl10
-rw-r--r--src/lib/libssl/src/util/mklink.pl1
-rw-r--r--src/lib/libssl/src/util/mkstack.pl1
-rwxr-xr-xsrc/lib/libssl/src/util/opensslwrap.sh22
-rw-r--r--src/lib/libssl/src/util/pl/BC-16.pl15
-rw-r--r--src/lib/libssl/src/util/pl/BC-32.pl13
-rw-r--r--src/lib/libssl/src/util/pl/Mingw32.pl11
-rw-r--r--src/lib/libssl/src/util/pl/OS2-EMX.pl11
-rw-r--r--src/lib/libssl/src/util/pl/VC-16.pl13
-rw-r--r--src/lib/libssl/src/util/pl/VC-32.pl11
-rw-r--r--src/lib/libssl/src/util/pl/VC-CE.pl11
-rw-r--r--src/lib/libssl/src/util/pl/linux.pl9
-rw-r--r--src/lib/libssl/src/util/pl/ultrix.pl11
-rw-r--r--src/lib/libssl/src/util/pl/unix.pl9
-rw-r--r--src/lib/libssl/src/util/pod2mantest2
-rw-r--r--src/lib/libssl/src/util/selftest.pl4
-rwxr-xr-xsrc/lib/libssl/src/util/shlib_wrap.sh70
-rw-r--r--src/lib/libssl/test/Makefile788
-rw-r--r--src/lib/libssl/test/evptests.txt107
-rw-r--r--src/lib/libssl/test/maketests.com6
-rw-r--r--src/lib/libssl/test/testenc.com2
-rw-r--r--src/lib/libssl/test/testfipsssl113
-rw-r--r--src/lib/libssl/test/tverify.com9
566 files changed, 45602 insertions, 2253 deletions
diff --git a/src/lib/libcrypto/Attic/Makefile b/src/lib/libcrypto/Attic/Makefile
index eb49323ad5..cffaeedc5d 100644
--- a/src/lib/libcrypto/Attic/Makefile
+++ b/src/lib/libcrypto/Attic/Makefile
@@ -1,133 +1,218 @@
1LIB= crypto 1#
2CFLAGS+= -DNO_IDEA -DTERMIOS -DL_ENDIAN -DANSI_SOURCE 2# SSLeay/crypto/Makefile
3CFLAGS+= -I${.CURDIR}/../include 3#
4SRCS+= cryptlib.c mem.c cversion.c ex_data.c cpt_err.c
5CFLAGS+= -I${.CURDIR}/md2
6SRCS+= md2_dgst.c md2_one.c
7CFLAGS+= -I${.CURDIR}/md5
8SRCS+= md5_dgst.c md5_one.c
9CFLAGS+= -I${.CURDIR}/sha
10SRCS+= sha_dgst.c sha1dgst.c sha_one.c sha1_one.c
11CFLAGS+= -I${.CURDIR}/mdc2
12SRCS+= mdc2dgst.c mdc2_one.c
13CFLAGS+= -I${.CURDIR}/hmac
14SRCS+= hmac.c
15CFLAGS+= -I${.CURDIR}/ripemd
16SRCS+= rmd_dgst.c rmd_one.c
17CFLAGS+= -I${.CURDIR}/des
18SRCS+= set_key.c ecb_enc.c cbc_enc.c ecb3_enc.c
19SRCS+= cfb64enc.c cfb64ede.c cfb_enc.c ofb64ede.c
20SRCS+= enc_read.c enc_writ.c ofb64enc.c ofb_enc.c
21SRCS+= str2key.c pcbc_enc.c qud_cksm.c rand_key.c
22SRCS+= read2pwd.c fcrypt.c xcbc_enc.c read_pwd.c
23SRCS+= rpc_enc.c cbc_cksm.c supp.c
24CFLAGS+= -I${.CURDIR}/rc2
25SRCS+= rc2_ecb.c rc2_skey.c rc2_cbc.c rc2cfb64.c
26SRCS+= rc2ofb64.c
27CFLAGS+= -I${.CURDIR}/rc4
28SRCS+= rc4_skey.c
29CFLAGS+= -I${.CURDIR}/rc5
30SRCS+= rc5_skey.c rc5_ecb.c rc5cfb64.c rc5cfb64.c
31SRCS+= rc5ofb64.c
32CFLAGS+= -I${.CURDIR}/idea
33SRCS+= i_cbc.c i_cfb64.c i_ofb64.c i_ecb.c
34SRCS+= i_skey.c
35CFLAGS+= -I${.CURDIR}/bf
36SRCS+= bf_skey.c bf_ecb.c bf_cfb64.c bf_ofb64.c
37CFLAGS+= -I${.CURDIR}/cast
38SRCS+= c_skey.c c_ecb.c c_cfb64.c c_ofb64.c
39CFLAGS+= -I${.CURDIR}/bn
40SRCS+= bn_add.c bn_div.c bn_exp.c bn_lib.c bn_mod.c
41SRCS+= bn_mul.c bn_print.c bn_rand.c bn_shift.c bn_sub.c
42SRCS+= bn_word.c bn_blind.c bn_gcd.c bn_prime.c bn_err.c
43SRCS+= bn_sqr.c bn_recp.c bn_mont.c bn_mpi.c
44CFLAGS+= -I${.CURDIR}/rsa
45SRCS+= rsa_eay.c rsa_gen.c rsa_lib.c rsa_sign.c
46SRCS+= rsa_saos.c rsa_err.c rsa_pk1.c rsa_ssl.c
47SRCS+= rsa_none.c
48CFLAGS+= -I${.CURDIR}/dsa
49SRCS+= dsa_gen.c dsa_key.c dsa_lib.c dsa_vrf.c
50SRCS+= dsa_sign.c dsa_err.c
51CFLAGS+= -I${.CURDIR}/dh
52SRCS+= dh_gen.c dh_key.c dh_lib.c dh_check.c dh_err.c
53CFLAGS+= -I${.CURDIR}/buffer
54SRCS+= buffer.c buf_err.c
55CFLAGS+= -I${.CURDIR}/bio
56SRCS+= bio_lib.c bio_cb.c bio_err.c bss_mem.c
57SRCS+= bss_null.c bss_fd.c bss_file.c bss_sock.c
58SRCS+= bss_conn.c bf_null.c bf_buff.c
59SRCS+= b_print.c b_dump.c b_sock.c bss_acpt.c
60SRCS+= bf_nbio.c
61CFLAGS+= -I${.CURDIR}/stack
62SRCS+= stack.c
63CFLAGS+= -I${.CURDIR}/lhash
64SRCS+= lhash.c lh_stats.c
65CFLAGS+= -I${.CURDIR}/rand
66SRCS+= md_rand.c randfile.c
67CFLAGS+= -I${.CURDIR}/err
68SRCS+= err.c err_all.c err_prn.c
69CFLAGS+= -I${.CURDIR}/objects
70SRCS+= obj_dat.c obj_lib.c obj_err.c
71CFLAGS+= -I${.CURDIR}/evp
72SRCS+= encode.c digest.c evp_enc.c evp_key.c
73SRCS+= e_ecb_d.c e_cbc_d.c e_cfb_d.c e_ofb_d.c
74SRCS+= e_ecb_i.c e_cbc_i.c e_cfb_i.c e_ofb_i.c
75SRCS+= e_ecb_3d.c e_cbc_3d.c e_rc4.c names.c
76SRCS+= e_cfb_3d.c e_ofb_3d.c e_xcbc_d.c e_ecb_r2.c
77SRCS+= e_cbc_r2.c e_cfb_r2.c e_ofb_r2.c e_ecb_bf.c
78SRCS+= e_cbc_bf.c e_cfb_bf.c e_ofb_bf.c e_ecb_c.c
79SRCS+= e_cbc_c.c e_cfb_c.c e_ofb_c.c e_ecb_r5.c
80SRCS+= e_cbc_r5.c e_cfb_r5.c e_ofb_r5.c m_null.c
81SRCS+= m_md2.c m_md5.c m_sha.c m_sha1.c m_dss.c
82SRCS+= m_dss1.c m_mdc2.c m_ripemd.c p_open.c
83SRCS+= p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c
84SRCS+= p_dec.c bio_md.c bio_b64.c bio_enc.c
85SRCS+= evp_err.c e_null.c c_all.c evp_lib.c
86CFLAGS+= -I${.CURDIR}/pem
87SRCS+= pem_sign.c pem_seal.c pem_info.c pem_lib.c
88SRCS+= pem_all.c pem_err.c
89CFLAGS+= -I${.CURDIR}/asn1
90SRCS+= a_object.c a_bitstr.c a_utctm.c a_int.c
91SRCS+= a_octet.c a_print.c a_type.c a_set.c
92SRCS+= a_dup.c a_d2i_fp.c a_i2d_fp.c a_sign.c
93SRCS+= a_digest.c a_verify.c x_algor.c x_val.c
94SRCS+= x_pubkey.c x_sig.c x_req.c x_attrib.c
95SRCS+= x_name.c x_cinf.c x_x509.c x_crl.c
96SRCS+= x_info.c x_spki.c d2i_r_pr.c i2d_r_pr.c
97SRCS+= d2i_r_pu.c i2d_r_pu.c d2i_s_pr.c i2d_s_pr.c
98SRCS+= d2i_s_pu.c i2d_s_pu.c d2i_pu.c d2i_pr.c
99SRCS+= i2d_pu.c i2d_pr.c t_req.c t_x509.c
100SRCS+= t_pkey.c p7_i_s.c p7_signi.c p7_signd.c
101SRCS+= p7_recip.c p7_enc_c.c p7_evp.c p7_dgst.c
102SRCS+= p7_s_e.c p7_enc.c p7_lib.c f_int.c
103SRCS+= f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c
104SRCS+= d2i_dsap.c n_pkey.c a_hdr.c x_pkey.c
105SRCS+= a_bool.c x_exten.c asn1_par.c asn1_lib.c
106SRCS+= asn1_err.c a_meth.c a_bytes.c evp_asn1.c
107CFLAGS+= -I${.CURDIR}/x509
108SRCS+= x509_def.c x509_d2.c x509_r2x.c x509_cmp.c
109SRCS+= x509_obj.c x509_req.c x509_vfy.c x509_set.c
110SRCS+= x509rset.c x509_err.c x509name.c x509_v3.c
111SRCS+= x509_ext.c x509pack.c x509type.c x509_lu.c
112SRCS+= x_all.c x509_txt.c by_file.c by_dir.c
113SRCS+= v3_net.c v3_x509.c
114CFLAGS+= -I${.CURDIR}/conf
115SRCS+= conf.c conf_err.c
116CFLAGS+= -I${.CURDIR}/txt_db
117SRCS+= txt_db.c
118CFLAGS+= -I${.CURDIR}/pkcs7
119SRCS+= pk7_lib.c pkcs7err.c pk7_doit.c
120
121.PATH: ${.CURDIR}/md2 ${.CURDIR}/md5 ${.CURDIR}/sha ${.CURDIR}/mdc2 \
122 ${.CURDIR}/hmac ${.CURDIR}/ripemd ${.CURDIR}/des ${.CURDIR}/rc2 \
123 ${.CURDIR}/rc4 ${.CURDIR}/rc5 ${.CURDIR}/idea ${.CURDIR}/bf \
124 ${.CURDIR}/cast ${.CURDIR}/bn ${.CURDIR}/rsa ${.CURDIR}/dsa \
125 ${.CURDIR}/dh ${.CURDIR}/buffer ${.CURDIR}/bio ${.CURDIR}/stack \
126 ${.CURDIR}/lhash ${.CURDIR}/rand ${.CURDIR}/err ${.CURDIR}/objects \
127 ${.CURDIR}/evp ${.CURDIR}/pem ${.CURDIR}/asn1 ${.CURDIR}/asn1 \
128 ${.CURDIR}/x509 ${.CURDIR}/conf txt_db/txt_db.c ${.CURDIR}/pkcs7 \
129 ${.CURDIR}/txt_db
130
131.include <bsd.lib.mk>
132 4
5DIR= crypto
6TOP= ..
7CC= cc
8INCLUDE= -I. -I$(TOP) -I../include
9INCLUDES= -I.. -I../.. -I../../include
10CFLAG= -g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP= /usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17RM= rm -f
18AR= ar r
133 19
20PEX_LIBS=
21EX_LIBS=
22
23CFLAGS= $(INCLUDE) $(CFLAG)
24
25
26LIBS=
27
28SDIRS= md2 md5 sha mdc2 hmac ripemd \
29 des rc2 rc4 rc5 idea bf cast \
30 bn ec rsa dsa dh dso engine aes \
31 buffer bio stack lhash rand err objects \
32 evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5
33
34GENERAL=Makefile README crypto-lib.com install.com
35
36LIB= $(TOP)/libcrypto.a
37SHARED_LIB= libcrypto$(SHLIB_EXT)
38LIBSRC= 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
39LIBOBJ= 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
40
41SRC= $(LIBSRC)
42
43EXHEADER= crypto.h tmdiff.h opensslv.h opensslconf.h ebcdic.h symhacks.h \
44 ossl_typ.h
45HEADER= cryptlib.h buildinf.h md32_common.h o_time.h o_str.h $(EXHEADER)
46
47ALL= $(GENERAL) $(SRC) $(HEADER)
48
49top:
50 @(cd ..; $(MAKE) DIRS=$(DIR) all)
51
52all: shared
53
54buildinf.h: ../Makefile
55 ( echo "#ifndef MK1MF_BUILD"; \
56 echo ' /* auto-generated by crypto/Makefile for crypto/cversion.c */'; \
57 echo ' #define CFLAGS "$(CC) $(CFLAG)"'; \
58 echo ' #define PLATFORM "$(PLATFORM)"'; \
59 echo " #define DATE \"`LC_ALL=C LC_TIME=C date`\""; \
60 echo '#endif' ) >buildinf.h
61
62testapps:
63 if echo ${SDIRS} | fgrep ' des '; \
64 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
65 cd pkcs7 && $(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}' testapps
66
67subdirs:
68 @for i in $(SDIRS) ;\
69 do \
70 (cd $$i && echo "making all in crypto/$$i..." && \
71 $(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; \
72 done;
73
74files:
75 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
76 @for i in $(SDIRS) ;\
77 do \
78 (cd $$i && echo "making 'files' in crypto/$$i..." && \
79 $(MAKE) PERL='${PERL}' files ); \
80 done;
81
82links:
83 @$(PERL) $(TOP)/util/mklink.pl ../include/openssl $(EXHEADER)
84 @$(PERL) $(TOP)/util/mklink.pl ../test $(TEST)
85 @$(PERL) $(TOP)/util/mklink.pl ../apps $(APPS)
86 @for i in $(SDIRS); do \
87 (cd $$i && echo "making links in crypto/$$i..." && \
88 $(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}' PERL='${PERL}' links ); \
89 done;
90
91lib: $(LIBOBJ)
92 $(AR) $(LIB) $(LIBOBJ)
93 $(RANLIB) $(LIB) || echo Never mind.
94 @touch lib
95
96shared: buildinf.h lib subdirs
97 @if [ -n "$(SHARED_LIBS)" ]; then \
98 egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null || \
99 (cd ..; $(MAKE) $(SHARED_LIB)); \
100 fi
101
102libs:
103 @for i in $(SDIRS) ;\
104 do \
105 (cd $$i && echo "making libs in crypto/$$i..." && \
106 $(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALL_PREFIX='${INSTALL_PREFIX}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' AR='${AR}' lib ); \
107 done;
108
109tests:
110 @for i in $(SDIRS) ;\
111 do \
112 (cd $$i && echo "making tests in crypto/$$i..." && \
113 $(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' AR='${AR}' tests ); \
114 done;
115
116install:
117 @headerlist="$(EXHEADER)"; for i in $$headerlist ;\
118 do \
119 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
120 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
121 done;
122 @for i in $(SDIRS) ;\
123 do \
124 (cd $$i && echo "making install in crypto/$$i..." && \
125 $(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALL_PREFIX='${INSTALL_PREFIX}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' install ); \
126 done;
127
128lint:
129 @for i in $(SDIRS) ;\
130 do \
131 (cd $$i && echo "making lint in crypto/$$i..." && \
132 $(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' lint ); \
133 done;
134
135depend:
136 if [ ! -f buildinf.h ]; then touch buildinf.h; fi # fake buildinf.h if it does not exist
137 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDE) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
138 if [ ! -s buildinf.h ]; then rm buildinf.h; fi
139 @for i in $(SDIRS) ;\
140 do \
141 (cd $$i && echo "making depend in crypto/$$i..." && \
142 $(MAKE) MAKEFILE='${MAKEFILE}' INCLUDES='${INCLUDES}' CFLAG='${CFLAG}' DEPFLAG='${DEPFLAG}' MAKEDEPPROG='${MAKEDEPPROG}' KRB5_INCLUDES='${KRB5_INCLUDES}' PERL='${PERL}' depend ); \
143 done;
144
145clean:
146 rm -f buildinf.h *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
147 @for i in $(SDIRS) ;\
148 do \
149 (cd $$i && echo "making clean in crypto/$$i..." && \
150 $(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' clean ); \
151 done;
152
153dclean:
154 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
155 mv -f Makefile.new $(MAKEFILE)
156 @for i in $(SDIRS) ;\
157 do \
158 (cd $$i && echo "making dclean in crypto/$$i..." && \
159 $(MAKE) PERL='${PERL}' CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' dclean ); \
160 done;
161
162# DO NOT DELETE THIS LINE -- make depend depends on it.
163
164cpt_err.o: ../include/openssl/bio.h ../include/openssl/crypto.h
165cpt_err.o: ../include/openssl/e_os2.h ../include/openssl/err.h
166cpt_err.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
167cpt_err.o: ../include/openssl/opensslv.h ../include/openssl/safestack.h
168cpt_err.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cpt_err.c
169cryptlib.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
170cryptlib.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
171cryptlib.o: ../include/openssl/err.h ../include/openssl/lhash.h
172cryptlib.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
173cryptlib.o: ../include/openssl/safestack.h ../include/openssl/stack.h
174cryptlib.o: ../include/openssl/symhacks.h cryptlib.c cryptlib.h
175cversion.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
176cversion.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
177cversion.o: ../include/openssl/err.h ../include/openssl/lhash.h
178cversion.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
179cversion.o: ../include/openssl/safestack.h ../include/openssl/stack.h
180cversion.o: ../include/openssl/symhacks.h buildinf.h cryptlib.h cversion.c
181ebcdic.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h ebcdic.c
182ex_data.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
183ex_data.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
184ex_data.o: ../include/openssl/err.h ../include/openssl/lhash.h
185ex_data.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
186ex_data.o: ../include/openssl/safestack.h ../include/openssl/stack.h
187ex_data.o: ../include/openssl/symhacks.h cryptlib.h ex_data.c
188mem.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
189mem.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
190mem.o: ../include/openssl/err.h ../include/openssl/lhash.h
191mem.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
192mem.o: ../include/openssl/safestack.h ../include/openssl/stack.h
193mem.o: ../include/openssl/symhacks.h cryptlib.h mem.c
194mem_clr.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
195mem_clr.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
196mem_clr.o: ../include/openssl/safestack.h ../include/openssl/stack.h
197mem_clr.o: ../include/openssl/symhacks.h mem_clr.c
198mem_dbg.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
199mem_dbg.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
200mem_dbg.o: ../include/openssl/err.h ../include/openssl/lhash.h
201mem_dbg.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
202mem_dbg.o: ../include/openssl/safestack.h ../include/openssl/stack.h
203mem_dbg.o: ../include/openssl/symhacks.h cryptlib.h mem_dbg.c
204o_str.o: ../e_os.h ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
205o_str.o: o_str.c o_str.h
206o_time.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h o_time.c
207o_time.o: o_time.h
208tmdiff.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
209tmdiff.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
210tmdiff.o: ../include/openssl/err.h ../include/openssl/lhash.h
211tmdiff.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
212tmdiff.o: ../include/openssl/safestack.h ../include/openssl/stack.h
213tmdiff.o: ../include/openssl/symhacks.h ../include/openssl/tmdiff.h cryptlib.h
214tmdiff.o: tmdiff.c
215uid.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
216uid.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
217uid.o: ../include/openssl/safestack.h ../include/openssl/stack.h
218uid.o: ../include/openssl/symhacks.h uid.c
diff --git a/src/lib/libcrypto/aes/Makefile b/src/lib/libcrypto/aes/Makefile
new file mode 100644
index 0000000000..a37c6f66a2
--- /dev/null
+++ b/src/lib/libcrypto/aes/Makefile
@@ -0,0 +1,103 @@
1#
2# crypto/aes/Makefile
3#
4
5DIR= aes
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES=
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP= /usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18
19# CFLAGS= -mpentiumpro $(INCLUDES) $(CFLAG) -O3 -fexpensive-optimizations -funroll-loops -fforce-addr
20CFLAGS= $(INCLUDES) $(CFLAG)
21
22GENERAL=Makefile
23#TEST=aestest.c
24TEST=
25APPS=
26
27LIB=$(TOP)/libcrypto.a
28LIBSRC=aes_core.c aes_misc.c aes_ecb.c aes_cbc.c aes_cfb.c aes_ofb.c aes_ctr.c
29LIBOBJ=aes_core.o aes_misc.o aes_ecb.o aes_cbc.o aes_cfb.o aes_ofb.o aes_ctr.o
30
31SRC= $(LIBSRC)
32
33EXHEADER= aes.h
34HEADER= aes_locl.h $(EXHEADER)
35
36ALL= $(GENERAL) $(SRC) $(HEADER)
37
38top:
39 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
40
41all: lib
42
43lib: $(LIBOBJ)
44 $(AR) $(LIB) $(LIBOBJ)
45 $(RANLIB) $(LIB) || echo Never mind.
46 @touch lib
47
48$(LIBOBJ): $(LIBSRC)
49
50files:
51 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
52
53links:
54 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
55 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
56 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
57
58install: installs
59
60installs:
61 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
62 do \
63 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
64 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
65 done;
66
67tags:
68 ctags $(SRC)
69
70tests:
71
72lint:
73 lint -DLINT $(INCLUDES) $(SRC)>fluff
74
75depend:
76 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
77
78dclean:
79 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
80 mv -f Makefile.new $(MAKEFILE)
81
82clean:
83 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
84
85# DO NOT DELETE THIS LINE -- make depend depends on it.
86
87aes_cbc.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
88aes_cbc.o: ../../include/openssl/opensslconf.h aes_cbc.c aes_locl.h
89aes_cfb.o: ../../e_os.h ../../include/openssl/aes.h
90aes_cfb.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
91aes_cfb.o: aes_cfb.c aes_locl.h
92aes_core.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
93aes_core.o: ../../include/openssl/fips.h ../../include/openssl/opensslconf.h
94aes_core.o: aes_core.c aes_locl.h
95aes_ctr.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
96aes_ctr.o: ../../include/openssl/opensslconf.h aes_ctr.c aes_locl.h
97aes_ecb.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
98aes_ecb.o: ../../include/openssl/opensslconf.h aes_ecb.c aes_locl.h
99aes_misc.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
100aes_misc.o: ../../include/openssl/opensslconf.h
101aes_misc.o: ../../include/openssl/opensslv.h aes_locl.h aes_misc.c
102aes_ofb.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
103aes_ofb.o: ../../include/openssl/opensslconf.h aes_locl.h aes_ofb.c
diff --git a/src/lib/libcrypto/asn1/Makefile b/src/lib/libcrypto/asn1/Makefile
new file mode 100644
index 0000000000..b11298d621
--- /dev/null
+++ b/src/lib/libcrypto/asn1/Makefile
@@ -0,0 +1,1150 @@
1#
2# SSLeay/crypto/asn1/Makefile
3#
4
5DIR= asn1
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile README
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= a_object.c a_bitstr.c a_utctm.c a_gentm.c a_time.c a_int.c a_octet.c \
26 a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c \
27 a_enum.c a_utf8.c a_sign.c a_digest.c a_verify.c a_mbstr.c a_strex.c \
28 x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_bignum.c \
29 x_long.c x_name.c x_x509.c x_x509a.c x_crl.c x_info.c x_spki.c nsseq.c \
30 d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c\
31 t_req.c t_x509.c t_x509a.c t_crl.c t_pkey.c t_spki.c t_bitst.c \
32 tasn_new.c tasn_fre.c tasn_enc.c tasn_dec.c tasn_utl.c tasn_typ.c \
33 f_int.c f_string.c n_pkey.c \
34 f_enum.c a_hdr.c x_pkey.c a_bool.c x_exten.c \
35 asn1_par.c asn1_lib.c asn1_err.c a_meth.c a_bytes.c a_strnid.c \
36 evp_asn1.c asn_pack.c p5_pbe.c p5_pbev2.c p8_pkey.c asn_moid.c
37LIBOBJ= a_object.o a_bitstr.o a_utctm.o a_gentm.o a_time.o a_int.o a_octet.o \
38 a_print.o a_type.o a_set.o a_dup.o a_d2i_fp.o a_i2d_fp.o \
39 a_enum.o a_utf8.o a_sign.o a_digest.o a_verify.o a_mbstr.o a_strex.o \
40 x_algor.o x_val.o x_pubkey.o x_sig.o x_req.o x_attrib.o x_bignum.o \
41 x_long.o x_name.o x_x509.o x_x509a.o x_crl.o x_info.o x_spki.o nsseq.o \
42 d2i_pu.o d2i_pr.o i2d_pu.o i2d_pr.o \
43 t_req.o t_x509.o t_x509a.o t_crl.o t_pkey.o t_spki.o t_bitst.o \
44 tasn_new.o tasn_fre.o tasn_enc.o tasn_dec.o tasn_utl.o tasn_typ.o \
45 f_int.o f_string.o n_pkey.o \
46 f_enum.o a_hdr.o x_pkey.o a_bool.o x_exten.o \
47 asn1_par.o asn1_lib.o asn1_err.o a_meth.o a_bytes.o a_strnid.o \
48 evp_asn1.o asn_pack.o p5_pbe.o p5_pbev2.o p8_pkey.o asn_moid.o
49
50SRC= $(LIBSRC)
51
52EXHEADER= asn1.h asn1_mac.h asn1t.h
53HEADER= $(EXHEADER)
54
55ALL= $(GENERAL) $(SRC) $(HEADER)
56
57top:
58 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
59
60test: test.c
61 cc -g -I../../include -c test.c
62 cc -g -I../../include -o test test.o -L../.. -lcrypto
63
64pk: pk.c
65 cc -g -I../../include -c pk.c
66 cc -g -I../../include -o pk pk.o -L../.. -lcrypto
67
68all: lib
69
70lib: $(LIBOBJ)
71 $(AR) $(LIB) $(LIBOBJ)
72 $(RANLIB) $(LIB) || echo Never mind.
73 @touch lib
74
75files:
76 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
77
78links:
79 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
80 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
81 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
82
83install:
84 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
85 do \
86 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
87 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
88 done;
89
90tags:
91 ctags $(SRC)
92
93tests:
94
95lint:
96 lint -DLINT $(INCLUDES) $(SRC)>fluff
97
98depend:
99 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
100
101dclean:
102 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
103 mv -f Makefile.new $(MAKEFILE)
104
105clean:
106 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
107
108
109# DO NOT DELETE THIS LINE -- make depend depends on it.
110
111a_bitstr.o: ../../e_os.h ../../include/openssl/asn1.h
112a_bitstr.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
113a_bitstr.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
114a_bitstr.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
115a_bitstr.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
116a_bitstr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
117a_bitstr.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
118a_bitstr.o: ../../include/openssl/symhacks.h ../cryptlib.h a_bitstr.c
119a_bool.o: ../../e_os.h ../../include/openssl/asn1.h
120a_bool.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
121a_bool.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
122a_bool.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
123a_bool.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
124a_bool.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
125a_bool.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
126a_bool.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
127a_bool.o: ../cryptlib.h a_bool.c
128a_bytes.o: ../../e_os.h ../../include/openssl/asn1.h
129a_bytes.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
130a_bytes.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
131a_bytes.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
132a_bytes.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
133a_bytes.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
134a_bytes.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
135a_bytes.o: ../../include/openssl/symhacks.h ../cryptlib.h a_bytes.c
136a_d2i_fp.o: ../../e_os.h ../../include/openssl/asn1.h
137a_d2i_fp.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
138a_d2i_fp.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
139a_d2i_fp.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
140a_d2i_fp.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
141a_d2i_fp.o: ../../include/openssl/opensslconf.h
142a_d2i_fp.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
143a_d2i_fp.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
144a_d2i_fp.o: ../../include/openssl/symhacks.h ../cryptlib.h a_d2i_fp.c
145a_digest.o: ../../e_os.h ../../include/openssl/aes.h
146a_digest.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
147a_digest.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
148a_digest.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
149a_digest.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
150a_digest.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
151a_digest.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
152a_digest.o: ../../include/openssl/err.h ../../include/openssl/evp.h
153a_digest.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
154a_digest.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
155a_digest.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
156a_digest.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
157a_digest.o: ../../include/openssl/opensslconf.h
158a_digest.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
159a_digest.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
160a_digest.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
161a_digest.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
162a_digest.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
163a_digest.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
164a_digest.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
165a_digest.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
166a_digest.o: ../cryptlib.h a_digest.c
167a_dup.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
168a_dup.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
169a_dup.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
170a_dup.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
171a_dup.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
172a_dup.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
173a_dup.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
174a_dup.o: ../cryptlib.h a_dup.c
175a_enum.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
176a_enum.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
177a_enum.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
178a_enum.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
179a_enum.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
180a_enum.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
181a_enum.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
182a_enum.o: ../cryptlib.h a_enum.c
183a_gentm.o: ../../e_os.h ../../include/openssl/asn1.h
184a_gentm.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
185a_gentm.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
186a_gentm.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
187a_gentm.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
188a_gentm.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
189a_gentm.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
190a_gentm.o: ../../include/openssl/symhacks.h ../cryptlib.h ../o_time.h a_gentm.c
191a_hdr.o: ../../e_os.h ../../include/openssl/asn1.h
192a_hdr.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
193a_hdr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
194a_hdr.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
195a_hdr.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
196a_hdr.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
197a_hdr.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
198a_hdr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
199a_hdr.o: ../cryptlib.h a_hdr.c
200a_i2d_fp.o: ../../e_os.h ../../include/openssl/asn1.h
201a_i2d_fp.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
202a_i2d_fp.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
203a_i2d_fp.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
204a_i2d_fp.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
205a_i2d_fp.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
206a_i2d_fp.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
207a_i2d_fp.o: ../../include/openssl/symhacks.h ../cryptlib.h a_i2d_fp.c
208a_int.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
209a_int.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
210a_int.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
211a_int.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
212a_int.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
213a_int.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
214a_int.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
215a_int.o: ../cryptlib.h a_int.c
216a_mbstr.o: ../../e_os.h ../../include/openssl/asn1.h
217a_mbstr.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
218a_mbstr.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
219a_mbstr.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
220a_mbstr.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
221a_mbstr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
222a_mbstr.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
223a_mbstr.o: ../../include/openssl/symhacks.h ../cryptlib.h a_mbstr.c
224a_meth.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
225a_meth.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
226a_meth.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
227a_meth.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
228a_meth.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
229a_meth.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
230a_meth.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
231a_meth.o: ../cryptlib.h a_meth.c
232a_object.o: ../../e_os.h ../../include/openssl/asn1.h
233a_object.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
234a_object.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
235a_object.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
236a_object.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
237a_object.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
238a_object.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
239a_object.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
240a_object.o: ../../include/openssl/symhacks.h ../cryptlib.h a_object.c
241a_octet.o: ../../e_os.h ../../include/openssl/asn1.h
242a_octet.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
243a_octet.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
244a_octet.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
245a_octet.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
246a_octet.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
247a_octet.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
248a_octet.o: ../../include/openssl/symhacks.h ../cryptlib.h a_octet.c
249a_print.o: ../../e_os.h ../../include/openssl/asn1.h
250a_print.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
251a_print.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
252a_print.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
253a_print.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
254a_print.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
255a_print.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
256a_print.o: ../../include/openssl/symhacks.h ../cryptlib.h a_print.c
257a_set.o: ../../e_os.h ../../include/openssl/asn1.h
258a_set.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
259a_set.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
260a_set.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
261a_set.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
262a_set.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
263a_set.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
264a_set.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
265a_set.o: ../cryptlib.h a_set.c
266a_sign.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
267a_sign.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
268a_sign.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
269a_sign.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
270a_sign.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
271a_sign.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
272a_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
273a_sign.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
274a_sign.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
275a_sign.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
276a_sign.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
277a_sign.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
278a_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
279a_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
280a_sign.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
281a_sign.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
282a_sign.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
283a_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
284a_sign.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
285a_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
286a_sign.o: ../cryptlib.h a_sign.c
287a_strex.o: ../../e_os.h ../../include/openssl/aes.h
288a_strex.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
289a_strex.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
290a_strex.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
291a_strex.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
292a_strex.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
293a_strex.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
294a_strex.o: ../../include/openssl/err.h ../../include/openssl/evp.h
295a_strex.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
296a_strex.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
297a_strex.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
298a_strex.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
299a_strex.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
300a_strex.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
301a_strex.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
302a_strex.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
303a_strex.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
304a_strex.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
305a_strex.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
306a_strex.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
307a_strex.o: ../../include/openssl/x509_vfy.h ../cryptlib.h a_strex.c charmap.h
308a_strnid.o: ../../e_os.h ../../include/openssl/asn1.h
309a_strnid.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
310a_strnid.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
311a_strnid.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
312a_strnid.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
313a_strnid.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
314a_strnid.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
315a_strnid.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
316a_strnid.o: ../../include/openssl/symhacks.h ../cryptlib.h a_strnid.c
317a_time.o: ../../e_os.h ../../include/openssl/asn1.h
318a_time.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
319a_time.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
320a_time.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
321a_time.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
322a_time.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
323a_time.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
324a_time.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
325a_time.o: ../cryptlib.h ../o_time.h a_time.c
326a_type.o: ../../e_os.h ../../include/openssl/asn1.h
327a_type.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
328a_type.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
329a_type.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
330a_type.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
331a_type.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
332a_type.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
333a_type.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
334a_type.o: ../cryptlib.h a_type.c
335a_utctm.o: ../../e_os.h ../../include/openssl/asn1.h
336a_utctm.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
337a_utctm.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
338a_utctm.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
339a_utctm.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
340a_utctm.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
341a_utctm.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
342a_utctm.o: ../../include/openssl/symhacks.h ../cryptlib.h ../o_time.h a_utctm.c
343a_utf8.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
344a_utf8.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
345a_utf8.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
346a_utf8.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
347a_utf8.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
348a_utf8.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
349a_utf8.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
350a_utf8.o: ../cryptlib.h a_utf8.c
351a_verify.o: ../../e_os.h ../../include/openssl/aes.h
352a_verify.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
353a_verify.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
354a_verify.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
355a_verify.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
356a_verify.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
357a_verify.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
358a_verify.o: ../../include/openssl/err.h ../../include/openssl/evp.h
359a_verify.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
360a_verify.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
361a_verify.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
362a_verify.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
363a_verify.o: ../../include/openssl/opensslconf.h
364a_verify.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
365a_verify.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
366a_verify.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
367a_verify.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
368a_verify.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
369a_verify.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
370a_verify.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
371a_verify.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
372a_verify.o: ../cryptlib.h a_verify.c
373asn1_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
374asn1_err.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
375asn1_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
376asn1_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
377asn1_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
378asn1_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
379asn1_err.o: ../../include/openssl/symhacks.h asn1_err.c
380asn1_lib.o: ../../e_os.h ../../include/openssl/asn1.h
381asn1_lib.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
382asn1_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
383asn1_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
384asn1_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
385asn1_lib.o: ../../include/openssl/opensslconf.h
386asn1_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
387asn1_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
388asn1_lib.o: ../../include/openssl/symhacks.h ../cryptlib.h asn1_lib.c
389asn1_par.o: ../../e_os.h ../../include/openssl/asn1.h
390asn1_par.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
391asn1_par.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
392asn1_par.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
393asn1_par.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
394asn1_par.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
395asn1_par.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
396asn1_par.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
397asn1_par.o: ../../include/openssl/symhacks.h ../cryptlib.h asn1_par.c
398asn_moid.o: ../../e_os.h ../../include/openssl/aes.h
399asn_moid.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
400asn_moid.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
401asn_moid.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
402asn_moid.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
403asn_moid.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
404asn_moid.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
405asn_moid.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
406asn_moid.o: ../../include/openssl/err.h ../../include/openssl/evp.h
407asn_moid.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
408asn_moid.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
409asn_moid.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
410asn_moid.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
411asn_moid.o: ../../include/openssl/opensslconf.h
412asn_moid.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
413asn_moid.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
414asn_moid.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
415asn_moid.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
416asn_moid.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
417asn_moid.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
418asn_moid.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
419asn_moid.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
420asn_moid.o: ../cryptlib.h asn_moid.c
421asn_pack.o: ../../e_os.h ../../include/openssl/asn1.h
422asn_pack.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
423asn_pack.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
424asn_pack.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
425asn_pack.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
426asn_pack.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
427asn_pack.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
428asn_pack.o: ../../include/openssl/symhacks.h ../cryptlib.h asn_pack.c
429d2i_pr.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
430d2i_pr.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
431d2i_pr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
432d2i_pr.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
433d2i_pr.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
434d2i_pr.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
435d2i_pr.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
436d2i_pr.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
437d2i_pr.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
438d2i_pr.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
439d2i_pr.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
440d2i_pr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
441d2i_pr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
442d2i_pr.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
443d2i_pr.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
444d2i_pr.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
445d2i_pr.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
446d2i_pr.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
447d2i_pr.o: ../../include/openssl/ui_compat.h ../cryptlib.h d2i_pr.c
448d2i_pu.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
449d2i_pu.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
450d2i_pu.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
451d2i_pu.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
452d2i_pu.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
453d2i_pu.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
454d2i_pu.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
455d2i_pu.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
456d2i_pu.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
457d2i_pu.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
458d2i_pu.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
459d2i_pu.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
460d2i_pu.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
461d2i_pu.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
462d2i_pu.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
463d2i_pu.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
464d2i_pu.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
465d2i_pu.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
466d2i_pu.o: ../../include/openssl/ui_compat.h ../cryptlib.h d2i_pu.c
467evp_asn1.o: ../../e_os.h ../../include/openssl/asn1.h
468evp_asn1.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
469evp_asn1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
470evp_asn1.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
471evp_asn1.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
472evp_asn1.o: ../../include/openssl/opensslconf.h
473evp_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
474evp_asn1.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
475evp_asn1.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_asn1.c
476f_enum.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
477f_enum.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
478f_enum.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
479f_enum.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
480f_enum.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
481f_enum.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
482f_enum.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
483f_enum.o: ../cryptlib.h f_enum.c
484f_int.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
485f_int.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
486f_int.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
487f_int.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
488f_int.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
489f_int.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
490f_int.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
491f_int.o: ../cryptlib.h f_int.c
492f_string.o: ../../e_os.h ../../include/openssl/asn1.h
493f_string.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
494f_string.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
495f_string.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
496f_string.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
497f_string.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
498f_string.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
499f_string.o: ../../include/openssl/symhacks.h ../cryptlib.h f_string.c
500i2d_pr.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
501i2d_pr.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
502i2d_pr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
503i2d_pr.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
504i2d_pr.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
505i2d_pr.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
506i2d_pr.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
507i2d_pr.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
508i2d_pr.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
509i2d_pr.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
510i2d_pr.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
511i2d_pr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
512i2d_pr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
513i2d_pr.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
514i2d_pr.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
515i2d_pr.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
516i2d_pr.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
517i2d_pr.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
518i2d_pr.o: ../../include/openssl/ui_compat.h ../cryptlib.h i2d_pr.c
519i2d_pu.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
520i2d_pu.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
521i2d_pu.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
522i2d_pu.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
523i2d_pu.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
524i2d_pu.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
525i2d_pu.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
526i2d_pu.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
527i2d_pu.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
528i2d_pu.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
529i2d_pu.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
530i2d_pu.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
531i2d_pu.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
532i2d_pu.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
533i2d_pu.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
534i2d_pu.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
535i2d_pu.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
536i2d_pu.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
537i2d_pu.o: ../../include/openssl/ui_compat.h ../cryptlib.h i2d_pu.c
538n_pkey.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
539n_pkey.o: ../../include/openssl/asn1_mac.h ../../include/openssl/asn1t.h
540n_pkey.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
541n_pkey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
542n_pkey.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
543n_pkey.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
544n_pkey.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
545n_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
546n_pkey.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
547n_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
548n_pkey.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
549n_pkey.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
550n_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
551n_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
552n_pkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
553n_pkey.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
554n_pkey.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
555n_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
556n_pkey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
557n_pkey.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
558n_pkey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
559n_pkey.o: ../cryptlib.h n_pkey.c
560nsseq.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
561nsseq.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
562nsseq.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
563nsseq.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
564nsseq.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
565nsseq.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
566nsseq.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
567nsseq.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
568nsseq.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
569nsseq.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
570nsseq.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
571nsseq.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
572nsseq.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
573nsseq.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
574nsseq.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
575nsseq.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
576nsseq.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
577nsseq.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
578nsseq.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
579nsseq.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h nsseq.c
580p5_pbe.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
581p5_pbe.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
582p5_pbe.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
583p5_pbe.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
584p5_pbe.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
585p5_pbe.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
586p5_pbe.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
587p5_pbe.o: ../../include/openssl/err.h ../../include/openssl/evp.h
588p5_pbe.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
589p5_pbe.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
590p5_pbe.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
591p5_pbe.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
592p5_pbe.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
593p5_pbe.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
594p5_pbe.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
595p5_pbe.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
596p5_pbe.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
597p5_pbe.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
598p5_pbe.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
599p5_pbe.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
600p5_pbe.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
601p5_pbe.o: ../cryptlib.h p5_pbe.c
602p5_pbev2.o: ../../e_os.h ../../include/openssl/aes.h
603p5_pbev2.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
604p5_pbev2.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
605p5_pbev2.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
606p5_pbev2.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
607p5_pbev2.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
608p5_pbev2.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
609p5_pbev2.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
610p5_pbev2.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
611p5_pbev2.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
612p5_pbev2.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
613p5_pbev2.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
614p5_pbev2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
615p5_pbev2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
616p5_pbev2.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
617p5_pbev2.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
618p5_pbev2.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
619p5_pbev2.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
620p5_pbev2.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
621p5_pbev2.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
622p5_pbev2.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
623p5_pbev2.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p5_pbev2.c
624p8_pkey.o: ../../e_os.h ../../include/openssl/aes.h
625p8_pkey.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
626p8_pkey.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
627p8_pkey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
628p8_pkey.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
629p8_pkey.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
630p8_pkey.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
631p8_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
632p8_pkey.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
633p8_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
634p8_pkey.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
635p8_pkey.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
636p8_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
637p8_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
638p8_pkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
639p8_pkey.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
640p8_pkey.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
641p8_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
642p8_pkey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
643p8_pkey.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
644p8_pkey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
645p8_pkey.o: ../cryptlib.h p8_pkey.c
646t_bitst.o: ../../e_os.h ../../include/openssl/aes.h
647t_bitst.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
648t_bitst.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
649t_bitst.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
650t_bitst.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
651t_bitst.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
652t_bitst.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
653t_bitst.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
654t_bitst.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
655t_bitst.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
656t_bitst.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
657t_bitst.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
658t_bitst.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
659t_bitst.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
660t_bitst.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
661t_bitst.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
662t_bitst.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
663t_bitst.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
664t_bitst.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
665t_bitst.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
666t_bitst.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
667t_bitst.o: ../../include/openssl/x509v3.h ../cryptlib.h t_bitst.c
668t_crl.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
669t_crl.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
670t_crl.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
671t_crl.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
672t_crl.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
673t_crl.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
674t_crl.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
675t_crl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
676t_crl.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
677t_crl.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
678t_crl.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
679t_crl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
680t_crl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
681t_crl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
682t_crl.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
683t_crl.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
684t_crl.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
685t_crl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
686t_crl.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
687t_crl.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
688t_crl.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
689t_crl.o: ../cryptlib.h t_crl.c
690t_pkey.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
691t_pkey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
692t_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
693t_pkey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
694t_pkey.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
695t_pkey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
696t_pkey.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rsa.h
697t_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
698t_pkey.o: ../../include/openssl/symhacks.h ../cryptlib.h t_pkey.c
699t_req.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
700t_req.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
701t_req.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
702t_req.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
703t_req.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
704t_req.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
705t_req.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
706t_req.o: ../../include/openssl/err.h ../../include/openssl/evp.h
707t_req.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
708t_req.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
709t_req.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
710t_req.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
711t_req.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
712t_req.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
713t_req.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
714t_req.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
715t_req.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
716t_req.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
717t_req.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
718t_req.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
719t_req.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
720t_req.o: ../cryptlib.h t_req.c
721t_spki.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
722t_spki.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
723t_spki.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
724t_spki.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
725t_spki.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
726t_spki.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
727t_spki.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
728t_spki.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
729t_spki.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
730t_spki.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
731t_spki.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
732t_spki.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
733t_spki.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
734t_spki.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
735t_spki.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
736t_spki.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
737t_spki.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
738t_spki.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
739t_spki.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
740t_spki.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
741t_spki.o: ../cryptlib.h t_spki.c
742t_x509.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
743t_x509.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
744t_x509.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
745t_x509.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
746t_x509.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
747t_x509.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
748t_x509.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
749t_x509.o: ../../include/openssl/err.h ../../include/openssl/evp.h
750t_x509.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
751t_x509.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
752t_x509.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
753t_x509.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
754t_x509.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
755t_x509.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
756t_x509.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
757t_x509.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
758t_x509.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
759t_x509.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
760t_x509.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
761t_x509.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
762t_x509.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
763t_x509.o: ../cryptlib.h t_x509.c
764t_x509a.o: ../../e_os.h ../../include/openssl/aes.h
765t_x509a.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
766t_x509a.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
767t_x509a.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
768t_x509a.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
769t_x509a.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
770t_x509a.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
771t_x509a.o: ../../include/openssl/err.h ../../include/openssl/evp.h
772t_x509a.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
773t_x509a.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
774t_x509a.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
775t_x509a.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
776t_x509a.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
777t_x509a.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
778t_x509a.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
779t_x509a.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
780t_x509a.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
781t_x509a.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
782t_x509a.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
783t_x509a.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
784t_x509a.o: ../../include/openssl/x509_vfy.h ../cryptlib.h t_x509a.c
785tasn_dec.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
786tasn_dec.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
787tasn_dec.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
788tasn_dec.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
789tasn_dec.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
790tasn_dec.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
791tasn_dec.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
792tasn_dec.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
793tasn_dec.o: ../../include/openssl/symhacks.h tasn_dec.c
794tasn_enc.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
795tasn_enc.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
796tasn_enc.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
797tasn_enc.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
798tasn_enc.o: ../../include/openssl/opensslconf.h
799tasn_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
800tasn_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
801tasn_enc.o: ../../include/openssl/symhacks.h tasn_enc.c
802tasn_fre.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
803tasn_fre.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
804tasn_fre.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
805tasn_fre.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
806tasn_fre.o: ../../include/openssl/opensslconf.h
807tasn_fre.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
808tasn_fre.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
809tasn_fre.o: ../../include/openssl/symhacks.h tasn_fre.c
810tasn_new.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
811tasn_new.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
812tasn_new.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
813tasn_new.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
814tasn_new.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
815tasn_new.o: ../../include/openssl/opensslconf.h
816tasn_new.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
817tasn_new.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
818tasn_new.o: ../../include/openssl/symhacks.h tasn_new.c
819tasn_typ.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
820tasn_typ.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
821tasn_typ.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
822tasn_typ.o: ../../include/openssl/opensslconf.h
823tasn_typ.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
824tasn_typ.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
825tasn_typ.o: ../../include/openssl/symhacks.h tasn_typ.c
826tasn_utl.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
827tasn_utl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
828tasn_utl.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
829tasn_utl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
830tasn_utl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
831tasn_utl.o: ../../include/openssl/opensslconf.h
832tasn_utl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
833tasn_utl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
834tasn_utl.o: ../../include/openssl/symhacks.h tasn_utl.c
835x_algor.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
836x_algor.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
837x_algor.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
838x_algor.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
839x_algor.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
840x_algor.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
841x_algor.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
842x_algor.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
843x_algor.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
844x_algor.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
845x_algor.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
846x_algor.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
847x_algor.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
848x_algor.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
849x_algor.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
850x_algor.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
851x_algor.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
852x_algor.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
853x_algor.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
854x_algor.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
855x_algor.o: x_algor.c
856x_attrib.o: ../../e_os.h ../../include/openssl/aes.h
857x_attrib.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
858x_attrib.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
859x_attrib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
860x_attrib.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
861x_attrib.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
862x_attrib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
863x_attrib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
864x_attrib.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
865x_attrib.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
866x_attrib.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
867x_attrib.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
868x_attrib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
869x_attrib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
870x_attrib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
871x_attrib.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
872x_attrib.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
873x_attrib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
874x_attrib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
875x_attrib.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
876x_attrib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
877x_attrib.o: ../cryptlib.h x_attrib.c
878x_bignum.o: ../../e_os.h ../../include/openssl/asn1.h
879x_bignum.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
880x_bignum.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
881x_bignum.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
882x_bignum.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
883x_bignum.o: ../../include/openssl/opensslconf.h
884x_bignum.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
885x_bignum.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
886x_bignum.o: ../../include/openssl/symhacks.h ../cryptlib.h x_bignum.c
887x_crl.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
888x_crl.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
889x_crl.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
890x_crl.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
891x_crl.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
892x_crl.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
893x_crl.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
894x_crl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
895x_crl.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
896x_crl.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
897x_crl.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
898x_crl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
899x_crl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
900x_crl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
901x_crl.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
902x_crl.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
903x_crl.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
904x_crl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
905x_crl.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
906x_crl.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
907x_crl.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_crl.c
908x_exten.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
909x_exten.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
910x_exten.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
911x_exten.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
912x_exten.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
913x_exten.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
914x_exten.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
915x_exten.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
916x_exten.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
917x_exten.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
918x_exten.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
919x_exten.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
920x_exten.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
921x_exten.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
922x_exten.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
923x_exten.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
924x_exten.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
925x_exten.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
926x_exten.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
927x_exten.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
928x_exten.o: x_exten.c
929x_info.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
930x_info.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
931x_info.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
932x_info.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
933x_info.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
934x_info.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
935x_info.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
936x_info.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
937x_info.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
938x_info.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
939x_info.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
940x_info.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
941x_info.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
942x_info.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
943x_info.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
944x_info.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
945x_info.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
946x_info.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
947x_info.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
948x_info.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
949x_info.o: ../cryptlib.h x_info.c
950x_long.o: ../../e_os.h ../../include/openssl/asn1.h
951x_long.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
952x_long.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
953x_long.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
954x_long.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
955x_long.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
956x_long.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
957x_long.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
958x_long.o: ../cryptlib.h x_long.c
959x_name.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
960x_name.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
961x_name.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
962x_name.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
963x_name.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
964x_name.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
965x_name.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
966x_name.o: ../../include/openssl/err.h ../../include/openssl/evp.h
967x_name.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
968x_name.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
969x_name.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
970x_name.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
971x_name.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
972x_name.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
973x_name.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
974x_name.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
975x_name.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
976x_name.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
977x_name.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
978x_name.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
979x_name.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_name.c
980x_pkey.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
981x_pkey.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
982x_pkey.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
983x_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
984x_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
985x_pkey.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
986x_pkey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
987x_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
988x_pkey.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
989x_pkey.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
990x_pkey.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
991x_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
992x_pkey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
993x_pkey.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
994x_pkey.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
995x_pkey.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
996x_pkey.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
997x_pkey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
998x_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
999x_pkey.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
1000x_pkey.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_pkey.c
1001x_pubkey.o: ../../e_os.h ../../include/openssl/aes.h
1002x_pubkey.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
1003x_pubkey.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
1004x_pubkey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
1005x_pubkey.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
1006x_pubkey.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
1007x_pubkey.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
1008x_pubkey.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
1009x_pubkey.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
1010x_pubkey.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
1011x_pubkey.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
1012x_pubkey.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
1013x_pubkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
1014x_pubkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
1015x_pubkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
1016x_pubkey.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
1017x_pubkey.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
1018x_pubkey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
1019x_pubkey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
1020x_pubkey.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
1021x_pubkey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
1022x_pubkey.o: ../cryptlib.h x_pubkey.c
1023x_req.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
1024x_req.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
1025x_req.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
1026x_req.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
1027x_req.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
1028x_req.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
1029x_req.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
1030x_req.o: ../../include/openssl/err.h ../../include/openssl/evp.h
1031x_req.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
1032x_req.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
1033x_req.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
1034x_req.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
1035x_req.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
1036x_req.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
1037x_req.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
1038x_req.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
1039x_req.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
1040x_req.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
1041x_req.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
1042x_req.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
1043x_req.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_req.c
1044x_sig.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
1045x_sig.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
1046x_sig.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
1047x_sig.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
1048x_sig.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
1049x_sig.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
1050x_sig.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
1051x_sig.o: ../../include/openssl/err.h ../../include/openssl/evp.h
1052x_sig.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
1053x_sig.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
1054x_sig.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
1055x_sig.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
1056x_sig.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
1057x_sig.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
1058x_sig.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
1059x_sig.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
1060x_sig.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
1061x_sig.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
1062x_sig.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
1063x_sig.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
1064x_sig.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_sig.c
1065x_spki.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
1066x_spki.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
1067x_spki.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
1068x_spki.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
1069x_spki.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
1070x_spki.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
1071x_spki.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
1072x_spki.o: ../../include/openssl/err.h ../../include/openssl/evp.h
1073x_spki.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
1074x_spki.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
1075x_spki.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
1076x_spki.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
1077x_spki.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
1078x_spki.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
1079x_spki.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
1080x_spki.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
1081x_spki.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
1082x_spki.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
1083x_spki.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
1084x_spki.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
1085x_spki.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_spki.c
1086x_val.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
1087x_val.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
1088x_val.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
1089x_val.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
1090x_val.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
1091x_val.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
1092x_val.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
1093x_val.o: ../../include/openssl/err.h ../../include/openssl/evp.h
1094x_val.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
1095x_val.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
1096x_val.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
1097x_val.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
1098x_val.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
1099x_val.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
1100x_val.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
1101x_val.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
1102x_val.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
1103x_val.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
1104x_val.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
1105x_val.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
1106x_val.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_val.c
1107x_x509.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
1108x_x509.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
1109x_x509.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
1110x_x509.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
1111x_x509.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
1112x_x509.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
1113x_x509.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
1114x_x509.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
1115x_x509.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
1116x_x509.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
1117x_x509.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
1118x_x509.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
1119x_x509.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
1120x_x509.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
1121x_x509.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
1122x_x509.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
1123x_x509.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
1124x_x509.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
1125x_x509.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
1126x_x509.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
1127x_x509.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
1128x_x509.o: ../../include/openssl/x509v3.h ../cryptlib.h x_x509.c
1129x_x509a.o: ../../e_os.h ../../include/openssl/aes.h
1130x_x509a.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
1131x_x509a.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
1132x_x509a.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
1133x_x509a.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
1134x_x509a.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
1135x_x509a.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
1136x_x509a.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
1137x_x509a.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
1138x_x509a.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
1139x_x509a.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
1140x_x509a.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
1141x_x509a.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
1142x_x509a.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
1143x_x509a.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
1144x_x509a.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
1145x_x509a.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
1146x_x509a.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
1147x_x509a.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
1148x_x509a.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
1149x_x509a.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
1150x_x509a.o: ../cryptlib.h x_x509a.c
diff --git a/src/lib/libcrypto/asn1/a_gentm.c b/src/lib/libcrypto/asn1/a_gentm.c
index 8581007868..0dfd576211 100644
--- a/src/lib/libcrypto/asn1/a_gentm.c
+++ b/src/lib/libcrypto/asn1/a_gentm.c
@@ -192,8 +192,9 @@ int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, char *str)
192 { 192 {
193 if (s != NULL) 193 if (s != NULL)
194 { 194 {
195 ASN1_STRING_set((ASN1_STRING *)s, 195 if (!ASN1_STRING_set((ASN1_STRING *)s,
196 (unsigned char *)str,t.length); 196 (unsigned char *)str,t.length))
197 return 0;
197 s->type=V_ASN1_GENERALIZEDTIME; 198 s->type=V_ASN1_GENERALIZEDTIME;
198 } 199 }
199 return(1); 200 return(1);
@@ -223,7 +224,12 @@ ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s,
223 if ((p == NULL) || ((size_t)s->length < len)) 224 if ((p == NULL) || ((size_t)s->length < len))
224 { 225 {
225 p=OPENSSL_malloc(len); 226 p=OPENSSL_malloc(len);
226 if (p == NULL) return(NULL); 227 if (p == NULL)
228 {
229 ASN1err(ASN1_F_ASN1_GENERALIZEDTIME_SET,
230 ERR_R_MALLOC_FAILURE);
231 return(NULL);
232 }
227 if (s->data != NULL) 233 if (s->data != NULL)
228 OPENSSL_free(s->data); 234 OPENSSL_free(s->data);
229 s->data=(unsigned char *)p; 235 s->data=(unsigned char *)p;
diff --git a/src/lib/libcrypto/asn1/a_utctm.c b/src/lib/libcrypto/asn1/a_utctm.c
index 999852dae5..7b25fed331 100644
--- a/src/lib/libcrypto/asn1/a_utctm.c
+++ b/src/lib/libcrypto/asn1/a_utctm.c
@@ -173,8 +173,9 @@ int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, char *str)
173 { 173 {
174 if (s != NULL) 174 if (s != NULL)
175 { 175 {
176 ASN1_STRING_set((ASN1_STRING *)s, 176 if (!ASN1_STRING_set((ASN1_STRING *)s,
177 (unsigned char *)str,t.length); 177 (unsigned char *)str,t.length))
178 return 0;
178 s->type = V_ASN1_UTCTIME; 179 s->type = V_ASN1_UTCTIME;
179 } 180 }
180 return(1); 181 return(1);
@@ -203,7 +204,11 @@ ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t)
203 if ((p == NULL) || ((size_t)s->length < len)) 204 if ((p == NULL) || ((size_t)s->length < len))
204 { 205 {
205 p=OPENSSL_malloc(len); 206 p=OPENSSL_malloc(len);
206 if (p == NULL) return(NULL); 207 if (p == NULL)
208 {
209 ASN1err(ASN1_F_ASN1_UTCTIME_SET,ERR_R_MALLOC_FAILURE);
210 return(NULL);
211 }
207 if (s->data != NULL) 212 if (s->data != NULL)
208 OPENSSL_free(s->data); 213 OPENSSL_free(s->data);
209 s->data=(unsigned char *)p; 214 s->data=(unsigned char *)p;
diff --git a/src/lib/libcrypto/bf/Makefile b/src/lib/libcrypto/bf/Makefile
new file mode 100644
index 0000000000..0e2121efdc
--- /dev/null
+++ b/src/lib/libcrypto/bf/Makefile
@@ -0,0 +1,116 @@
1#
2# SSLeay/crypto/blowfish/Makefile
3#
4
5DIR= bf
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES=
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP=/usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18
19BF_ENC= bf_enc.o
20# or use
21#DES_ENC= bx86-elf.o
22
23CFLAGS= $(INCLUDES) $(CFLAG)
24ASFLAGS= $(INCLUDES) $(ASFLAG)
25
26GENERAL=Makefile
27TEST=bftest.c
28APPS=
29
30LIB=$(TOP)/libcrypto.a
31LIBSRC=bf_skey.c bf_ecb.c bf_enc.c bf_cfb64.c bf_ofb64.c
32LIBOBJ=bf_skey.o bf_ecb.o $(BF_ENC) bf_cfb64.o bf_ofb64.o
33
34SRC= $(LIBSRC)
35
36EXHEADER= blowfish.h
37HEADER= bf_pi.h bf_locl.h $(EXHEADER)
38
39ALL= $(GENERAL) $(SRC) $(HEADER)
40
41top:
42 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
43
44all: lib
45
46lib: $(LIBOBJ)
47 $(AR) $(LIB) $(LIBOBJ)
48 $(RANLIB) $(LIB) || echo Never mind.
49 @touch lib
50
51# elf
52asm/bx86-elf.s: asm/bf-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
53 (cd asm; $(PERL) bf-586.pl elf $(CFLAGS) $(PROCESSOR) > bx86-elf.s)
54
55# a.out
56asm/bx86-out.o: asm/bx86unix.cpp
57 $(CPP) -DOUT asm/bx86unix.cpp | as -o asm/bx86-out.o
58
59# bsdi
60asm/bx86bsdi.o: asm/bx86unix.cpp
61 $(CPP) -DBSDI asm/bx86unix.cpp | sed 's/ :/:/' | as -o asm/bx86bsdi.o
62
63asm/bx86unix.cpp: asm/bf-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
64 (cd asm; $(PERL) bf-586.pl cpp $(PROCESSOR) >bx86unix.cpp)
65
66files:
67 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
68
69links:
70 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
71 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
72 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
73
74install: installs
75
76installs:
77 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
78 do \
79 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
80 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
81 done;
82
83tags:
84 ctags $(SRC)
85
86tests:
87
88lint:
89 lint -DLINT $(INCLUDES) $(SRC)>fluff
90
91depend:
92 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
93
94dclean:
95 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
96 mv -f Makefile.new $(MAKEFILE)
97
98clean:
99 rm -f asm/bx86unix.cpp asm/*-elf.* *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
100
101# DO NOT DELETE THIS LINE -- make depend depends on it.
102
103bf_cfb64.o: ../../include/openssl/blowfish.h ../../include/openssl/e_os2.h
104bf_cfb64.o: ../../include/openssl/opensslconf.h bf_cfb64.c bf_locl.h
105bf_ecb.o: ../../include/openssl/blowfish.h ../../include/openssl/e_os2.h
106bf_ecb.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
107bf_ecb.o: bf_ecb.c bf_locl.h
108bf_enc.o: ../../include/openssl/blowfish.h ../../include/openssl/e_os2.h
109bf_enc.o: ../../include/openssl/opensslconf.h bf_enc.c bf_locl.h
110bf_ofb64.o: ../../include/openssl/blowfish.h ../../include/openssl/e_os2.h
111bf_ofb64.o: ../../include/openssl/opensslconf.h bf_locl.h bf_ofb64.c
112bf_skey.o: ../../include/openssl/blowfish.h ../../include/openssl/crypto.h
113bf_skey.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
114bf_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
115bf_skey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
116bf_skey.o: bf_locl.h bf_pi.h bf_skey.c
diff --git a/src/lib/libcrypto/bio/Makefile b/src/lib/libcrypto/bio/Makefile
new file mode 100644
index 0000000000..19d9350760
--- /dev/null
+++ b/src/lib/libcrypto/bio/Makefile
@@ -0,0 +1,214 @@
1#
2# SSLeay/crypto/bio/Makefile
3#
4
5DIR= bio
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= bio_lib.c bio_cb.c bio_err.c \
26 bss_mem.c bss_null.c bss_fd.c \
27 bss_file.c bss_sock.c bss_conn.c \
28 bf_null.c bf_buff.c b_print.c b_dump.c \
29 b_sock.c bss_acpt.c bf_nbio.c bss_log.c bss_bio.c
30# bf_lbuf.c
31LIBOBJ= bio_lib.o bio_cb.o bio_err.o \
32 bss_mem.o bss_null.o bss_fd.o \
33 bss_file.o bss_sock.o bss_conn.o \
34 bf_null.o bf_buff.o b_print.o b_dump.o \
35 b_sock.o bss_acpt.o bf_nbio.o bss_log.o bss_bio.o
36# bf_lbuf.o
37
38SRC= $(LIBSRC)
39
40EXHEADER= bio.h
41HEADER= bss_file.c $(EXHEADER)
42
43ALL= $(GENERAL) $(SRC) $(HEADER)
44
45top:
46 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
47
48all: lib
49
50lib: $(LIBOBJ)
51 $(AR) $(LIB) $(LIBOBJ)
52 $(RANLIB) $(LIB) || echo Never mind.
53 @touch lib
54
55files:
56 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
57
58links:
59 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
60 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
61 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
62
63install:
64 @headerlist="$(EXHEADER)"; for i in $$headerlist; \
65 do \
66 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
67 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
68 done;
69
70tags:
71 ctags $(SRC)
72
73tests:
74
75lint:
76 lint -DLINT $(INCLUDES) $(SRC)>fluff
77
78depend:
79 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
80
81dclean:
82 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
83 mv -f Makefile.new $(MAKEFILE)
84
85clean:
86 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
87
88# DO NOT DELETE THIS LINE -- make depend depends on it.
89
90b_dump.o: ../../e_os.h ../../include/openssl/bio.h
91b_dump.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
92b_dump.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
93b_dump.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
94b_dump.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
95b_dump.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
96b_dump.o: ../cryptlib.h b_dump.c
97b_print.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
98b_print.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
99b_print.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
100b_print.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
101b_print.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
102b_print.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
103b_print.o: ../cryptlib.h b_print.c
104b_sock.o: ../../e_os.h ../../include/openssl/bio.h
105b_sock.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
106b_sock.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
107b_sock.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
108b_sock.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
109b_sock.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
110b_sock.o: ../cryptlib.h b_sock.c
111bf_buff.o: ../../e_os.h ../../include/openssl/bio.h
112bf_buff.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
113bf_buff.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
114bf_buff.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
115bf_buff.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
116bf_buff.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
117bf_buff.o: ../cryptlib.h bf_buff.c
118bf_nbio.o: ../../e_os.h ../../include/openssl/bio.h
119bf_nbio.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
120bf_nbio.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
121bf_nbio.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
122bf_nbio.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
123bf_nbio.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
124bf_nbio.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
125bf_nbio.o: ../cryptlib.h bf_nbio.c
126bf_null.o: ../../e_os.h ../../include/openssl/bio.h
127bf_null.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
128bf_null.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
129bf_null.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
130bf_null.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
131bf_null.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
132bf_null.o: ../cryptlib.h bf_null.c
133bio_cb.o: ../../e_os.h ../../include/openssl/bio.h
134bio_cb.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
135bio_cb.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
136bio_cb.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
137bio_cb.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
138bio_cb.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
139bio_cb.o: ../cryptlib.h bio_cb.c
140bio_err.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
141bio_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
142bio_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
143bio_err.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
144bio_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
145bio_err.o: bio_err.c
146bio_lib.o: ../../e_os.h ../../include/openssl/bio.h
147bio_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
148bio_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
149bio_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
150bio_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
151bio_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
152bio_lib.o: ../cryptlib.h bio_lib.c
153bss_acpt.o: ../../e_os.h ../../include/openssl/bio.h
154bss_acpt.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
155bss_acpt.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
156bss_acpt.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
157bss_acpt.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
158bss_acpt.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
159bss_acpt.o: ../cryptlib.h bss_acpt.c
160bss_bio.o: ../../e_os.h ../../include/openssl/bio.h
161bss_bio.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
162bss_bio.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
163bss_bio.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
164bss_bio.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
165bss_bio.o: ../../include/openssl/symhacks.h bss_bio.c
166bss_conn.o: ../../e_os.h ../../include/openssl/bio.h
167bss_conn.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
168bss_conn.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
169bss_conn.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
170bss_conn.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
171bss_conn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
172bss_conn.o: ../cryptlib.h bss_conn.c
173bss_fd.o: ../../e_os.h ../../include/openssl/bio.h
174bss_fd.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
175bss_fd.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
176bss_fd.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
177bss_fd.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
178bss_fd.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
179bss_fd.o: ../cryptlib.h bss_fd.c
180bss_file.o: ../../e_os.h ../../include/openssl/bio.h
181bss_file.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
182bss_file.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
183bss_file.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
184bss_file.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
185bss_file.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
186bss_file.o: ../cryptlib.h bss_file.c
187bss_log.o: ../../e_os.h ../../include/openssl/bio.h
188bss_log.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
189bss_log.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
190bss_log.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
191bss_log.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
192bss_log.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
193bss_log.o: ../cryptlib.h bss_log.c
194bss_mem.o: ../../e_os.h ../../include/openssl/bio.h
195bss_mem.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
196bss_mem.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
197bss_mem.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
198bss_mem.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
199bss_mem.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
200bss_mem.o: ../cryptlib.h bss_mem.c
201bss_null.o: ../../e_os.h ../../include/openssl/bio.h
202bss_null.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
203bss_null.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
204bss_null.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
205bss_null.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
206bss_null.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
207bss_null.o: ../cryptlib.h bss_null.c
208bss_sock.o: ../../e_os.h ../../include/openssl/bio.h
209bss_sock.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
210bss_sock.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
211bss_sock.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
212bss_sock.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
213bss_sock.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
214bss_sock.o: ../cryptlib.h bss_sock.c
diff --git a/src/lib/libcrypto/bn/Makefile b/src/lib/libcrypto/bn/Makefile
new file mode 100644
index 0000000000..f693d35d87
--- /dev/null
+++ b/src/lib/libcrypto/bn/Makefile
@@ -0,0 +1,331 @@
1#
2# SSLeay/crypto/bn/Makefile
3#
4
5DIR= bn
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES= -I.. -I$(TOP) -I../../include
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP=/usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18
19BN_ASM= bn_asm.o
20# or use
21#BN_ASM= bn86-elf.o
22
23CFLAGS= $(INCLUDES) $(CFLAG)
24ASFLAGS= $(INCLUDES) $(ASFLAG)
25
26GENERAL=Makefile
27TEST=bntest.c exptest.c
28APPS=
29
30LIB=$(TOP)/libcrypto.a
31LIBSRC= bn_add.c bn_div.c bn_exp.c bn_lib.c bn_ctx.c bn_mul.c bn_mod.c \
32 bn_print.c bn_rand.c bn_shift.c bn_word.c bn_blind.c \
33 bn_kron.c bn_sqrt.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c bn_asm.c \
34 bn_recp.c bn_mont.c bn_mpi.c bn_exp2.c
35
36LIBOBJ= bn_add.o bn_div.o bn_exp.o bn_lib.o bn_ctx.o bn_mul.o bn_mod.o \
37 bn_print.o bn_rand.o bn_shift.o bn_word.o bn_blind.o \
38 bn_kron.o bn_sqrt.o bn_gcd.o bn_prime.o bn_err.o bn_sqr.o $(BN_ASM) \
39 bn_recp.o bn_mont.o bn_mpi.o bn_exp2.o
40
41SRC= $(LIBSRC)
42
43EXHEADER= bn.h
44HEADER= bn_lcl.h bn_prime.h $(EXHEADER)
45
46ALL= $(GENERAL) $(SRC) $(HEADER)
47
48top:
49 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
50
51all: lib
52
53bn_prime.h: bn_prime.pl
54 $(PERL) bn_prime.pl >bn_prime.h
55
56divtest: divtest.c ../../libcrypto.a
57 cc -I../../include divtest.c -o divtest ../../libcrypto.a
58
59bnbug: bnbug.c ../../libcrypto.a top
60 cc -g -I../../include bnbug.c -o bnbug ../../libcrypto.a
61
62lib: $(LIBOBJ)
63 $(AR) $(LIB) $(LIBOBJ)
64 $(RANLIB) $(LIB) || echo Never mind.
65 @touch lib
66
67# elf
68asm/bn86-elf.s: asm/bn-586.pl ../perlasm/x86asm.pl
69 (cd asm; $(PERL) bn-586.pl elf $(CFLAGS) > bn86-elf.s)
70
71asm/co86-elf.s: asm/co-586.pl ../perlasm/x86asm.pl
72 (cd asm; $(PERL) co-586.pl elf $(CFLAGS) > co86-elf.s)
73
74# a.out
75asm/bn86-out.o: asm/bn86unix.cpp
76 $(CPP) -DOUT asm/bn86unix.cpp | as -o asm/bn86-out.o
77
78asm/co86-out.o: asm/co86unix.cpp
79 $(CPP) -DOUT asm/co86unix.cpp | as -o asm/co86-out.o
80
81# bsdi
82asm/bn86bsdi.o: asm/bn86unix.cpp
83 $(CPP) -DBSDI asm/bn86unix.cpp | sed 's/ :/:/' | as -o asm/bn86bsdi.o
84
85asm/co86bsdi.o: asm/co86unix.cpp
86 $(CPP) -DBSDI asm/co86unix.cpp | sed 's/ :/:/' | as -o asm/co86bsdi.o
87
88asm/bn86unix.cpp: asm/bn-586.pl ../perlasm/x86asm.pl
89 (cd asm; $(PERL) bn-586.pl cpp >bn86unix.cpp )
90
91asm/co86unix.cpp: asm/co-586.pl ../perlasm/x86asm.pl
92 (cd asm; $(PERL) co-586.pl cpp >co86unix.cpp )
93
94asm/sparcv8.o: asm/sparcv8.S
95
96asm/sparcv8plus.o: asm/sparcv8plus.S
97
98# Old GNU assembler doesn't understand V9 instructions, so we
99# hire /usr/ccs/bin/as to do the job. Note that option is called
100# *-gcc27, but even gcc 2>=8 users may experience similar problem
101# if they didn't bother to upgrade GNU assembler. Such users should
102# not choose this option, but be adviced to *remove* GNU assembler
103# or upgrade it.
104asm/sparcv8plus-gcc27.o: asm/sparcv8plus.S
105 $(CC) $(ASFLAGS) -E asm/sparcv8plus.S | \
106 /usr/ccs/bin/as -xarch=v8plus - -o asm/sparcv8plus-gcc27.o
107
108
109asm/ia64.o: asm/ia64.S
110
111# Some compiler drivers (most notably HP-UX and Intel C++) don't
112# understand .S extension:-( I wish I could pipe output from cc -E,
113# but it's too compiler driver/ABI dependent to cover with a single
114# rule... <appro@fy.chalmers.se>
115asm/ia64-cpp.o: asm/ia64.S
116 $(CC) $(ASFLAGS) -E asm/ia64.S > /tmp/ia64.$$$$.s && \
117 $(CC) $(ASFLAGS) -c -o asm/ia64-cpp.o /tmp/ia64.$$$$.s; \
118 rm -f /tmp/ia64.$$$$.s
119
120asm/x86_64-gcc.o: asm/x86_64-gcc.c
121 $(CC) $(ASFLAGS) -c -o $@ $<
122
123asm/pa-risc2W.o: asm/pa-risc2W.s
124 /usr/ccs/bin/as -o asm/pa-risc2W.o asm/pa-risc2W.s
125
126asm/linux_ppc32.s: asm/ppc.pl; $(PERL) $< $@
127asm/linux_ppc64.s: asm/ppc.pl; $(PERL) $< $@
128asm/aix_ppc32.s: asm/ppc.pl; $(PERL) asm/ppc.pl $@
129asm/aix_ppc64.s: asm/ppc.pl; $(PERL) asm/ppc.pl $@
130asm/osx_ppc32.s: asm/ppc.pl; $(PERL) $< $@
131
132files:
133 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
134
135links:
136 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
137 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
138 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
139
140install:
141 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
142 do \
143 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
144 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
145 done;
146
147exptest:
148 rm -f exptest
149 gcc -I../../include -g2 -ggdb -o exptest exptest.c ../../libcrypto.a
150
151div:
152 rm -f a.out
153 gcc -I.. -g div.c ../../libcrypto.a
154
155tags:
156 ctags $(SRC)
157
158tests:
159
160lint:
161 lint -DLINT $(INCLUDES) $(SRC)>fluff
162
163depend:
164 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
165
166dclean:
167 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
168 mv -f Makefile.new $(MAKEFILE)
169
170clean:
171 rm -f asm/co86unix.cpp asm/bn86unix.cpp asm/*-elf.* *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff bn_asm.s
172
173# DO NOT DELETE THIS LINE -- make depend depends on it.
174
175bn_add.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
176bn_add.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
177bn_add.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
178bn_add.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
179bn_add.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
180bn_add.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
181bn_add.o: ../cryptlib.h bn_add.c bn_lcl.h
182bn_asm.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
183bn_asm.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
184bn_asm.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
185bn_asm.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
186bn_asm.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
187bn_asm.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
188bn_asm.o: ../cryptlib.h bn_asm.c bn_lcl.h
189bn_blind.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
190bn_blind.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
191bn_blind.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
192bn_blind.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
193bn_blind.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
194bn_blind.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
195bn_blind.o: ../cryptlib.h bn_blind.c bn_lcl.h
196bn_ctx.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
197bn_ctx.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
198bn_ctx.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
199bn_ctx.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
200bn_ctx.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
201bn_ctx.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
202bn_ctx.o: ../cryptlib.h bn_ctx.c bn_lcl.h
203bn_div.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
204bn_div.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
205bn_div.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
206bn_div.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
207bn_div.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
208bn_div.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
209bn_div.o: ../cryptlib.h bn_div.c bn_lcl.h
210bn_err.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
211bn_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
212bn_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
213bn_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
214bn_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
215bn_err.o: ../../include/openssl/symhacks.h bn_err.c
216bn_exp.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
217bn_exp.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
218bn_exp.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
219bn_exp.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
220bn_exp.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
221bn_exp.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
222bn_exp.o: ../cryptlib.h bn_exp.c bn_lcl.h
223bn_exp2.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
224bn_exp2.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
225bn_exp2.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
226bn_exp2.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
227bn_exp2.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
228bn_exp2.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
229bn_exp2.o: ../cryptlib.h bn_exp2.c bn_lcl.h
230bn_gcd.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
231bn_gcd.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
232bn_gcd.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
233bn_gcd.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
234bn_gcd.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
235bn_gcd.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
236bn_gcd.o: ../cryptlib.h bn_gcd.c bn_lcl.h
237bn_kron.o: ../../include/openssl/bn.h ../../include/openssl/e_os2.h
238bn_kron.o: ../../include/openssl/opensslconf.h bn_kron.c bn_lcl.h
239bn_lib.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
240bn_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
241bn_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
242bn_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
243bn_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
244bn_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
245bn_lib.o: ../cryptlib.h bn_lcl.h bn_lib.c
246bn_mod.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
247bn_mod.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
248bn_mod.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
249bn_mod.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
250bn_mod.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
251bn_mod.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
252bn_mod.o: ../cryptlib.h bn_lcl.h bn_mod.c
253bn_mont.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
254bn_mont.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
255bn_mont.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
256bn_mont.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
257bn_mont.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
258bn_mont.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
259bn_mont.o: ../cryptlib.h bn_lcl.h bn_mont.c
260bn_mpi.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
261bn_mpi.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
262bn_mpi.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
263bn_mpi.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
264bn_mpi.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
265bn_mpi.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
266bn_mpi.o: ../cryptlib.h bn_lcl.h bn_mpi.c
267bn_mul.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
268bn_mul.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
269bn_mul.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
270bn_mul.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
271bn_mul.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
272bn_mul.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
273bn_mul.o: ../cryptlib.h bn_lcl.h bn_mul.c
274bn_prime.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
275bn_prime.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
276bn_prime.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
277bn_prime.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
278bn_prime.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
279bn_prime.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
280bn_prime.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
281bn_prime.o: ../cryptlib.h bn_lcl.h bn_prime.c bn_prime.h
282bn_print.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
283bn_print.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
284bn_print.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
285bn_print.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
286bn_print.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
287bn_print.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
288bn_print.o: ../cryptlib.h bn_lcl.h bn_print.c
289bn_rand.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
290bn_rand.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
291bn_rand.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
292bn_rand.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
293bn_rand.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
294bn_rand.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
295bn_rand.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
296bn_rand.o: ../cryptlib.h bn_lcl.h bn_rand.c
297bn_recp.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
298bn_recp.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
299bn_recp.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
300bn_recp.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
301bn_recp.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
302bn_recp.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
303bn_recp.o: ../cryptlib.h bn_lcl.h bn_recp.c
304bn_shift.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
305bn_shift.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
306bn_shift.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
307bn_shift.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
308bn_shift.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
309bn_shift.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
310bn_shift.o: ../cryptlib.h bn_lcl.h bn_shift.c
311bn_sqr.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
312bn_sqr.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
313bn_sqr.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
314bn_sqr.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
315bn_sqr.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
316bn_sqr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
317bn_sqr.o: ../cryptlib.h bn_lcl.h bn_sqr.c
318bn_sqrt.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
319bn_sqrt.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
320bn_sqrt.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
321bn_sqrt.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
322bn_sqrt.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
323bn_sqrt.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
324bn_sqrt.o: ../cryptlib.h bn_lcl.h bn_sqrt.c
325bn_word.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
326bn_word.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
327bn_word.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
328bn_word.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
329bn_word.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
330bn_word.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
331bn_word.o: ../cryptlib.h bn_lcl.h bn_word.c
diff --git a/src/lib/libcrypto/bn/bntest.c b/src/lib/libcrypto/bn/bntest.c
index 3c8c540387..28cd3339da 100644
--- a/src/lib/libcrypto/bn/bntest.c
+++ b/src/lib/libcrypto/bn/bntest.c
@@ -232,7 +232,7 @@ int main(int argc, char *argv[])
232 EXIT(0); 232 EXIT(0);
233err: 233err:
234 BIO_puts(out,"1\n"); /* make sure the Perl script fed by bc notices 234 BIO_puts(out,"1\n"); /* make sure the Perl script fed by bc notices
235 * the failure, see test_bn in test/Makefile.ssl*/ 235 * the failure, see test_bn in test/Makefile */
236 BIO_flush(out); 236 BIO_flush(out);
237 ERR_load_crypto_strings(); 237 ERR_load_crypto_strings();
238 ERR_print_errors_fp(stderr); 238 ERR_print_errors_fp(stderr);
diff --git a/src/lib/libcrypto/buffer/Makefile b/src/lib/libcrypto/buffer/Makefile
new file mode 100644
index 0000000000..3911baf513
--- /dev/null
+++ b/src/lib/libcrypto/buffer/Makefile
@@ -0,0 +1,92 @@
1#
2# SSLeay/crypto/buffer/Makefile
3#
4
5DIR= buffer
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= buffer.c buf_err.c
26LIBOBJ= buffer.o buf_err.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= buffer.h
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80buf_err.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
81buf_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
82buf_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
83buf_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
84buf_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
85buf_err.o: ../../include/openssl/symhacks.h buf_err.c
86buffer.o: ../../e_os.h ../../include/openssl/bio.h
87buffer.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
88buffer.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
89buffer.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
90buffer.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
91buffer.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
92buffer.o: ../cryptlib.h buffer.c
diff --git a/src/lib/libcrypto/cast/Makefile b/src/lib/libcrypto/cast/Makefile
new file mode 100644
index 0000000000..8b0d04bb7c
--- /dev/null
+++ b/src/lib/libcrypto/cast/Makefile
@@ -0,0 +1,120 @@
1#
2# SSLeay/crypto/cast/Makefile
3#
4
5DIR= cast
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES=
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP=/usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18
19CAST_ENC=c_enc.o
20# or use
21#CAST_ENC=asm/cx86-elf.o
22#CAST_ENC=asm/cx86-out.o
23#CAST_ENC=asm/cx86-sol.o
24#CAST_ENC=asm/cx86bdsi.o
25
26CFLAGS= $(INCLUDES) $(CFLAG)
27ASFLAGS= $(INCLUDES) $(ASFLAG)
28
29GENERAL=Makefile
30TEST=casttest.c
31APPS=
32
33LIB=$(TOP)/libcrypto.a
34LIBSRC=c_skey.c c_ecb.c c_enc.c c_cfb64.c c_ofb64.c
35LIBOBJ=c_skey.o c_ecb.o $(CAST_ENC) c_cfb64.o c_ofb64.o
36
37SRC= $(LIBSRC)
38
39EXHEADER= cast.h
40HEADER= cast_s.h cast_lcl.h $(EXHEADER)
41
42ALL= $(GENERAL) $(SRC) $(HEADER)
43
44top:
45 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
46
47all: lib
48
49lib: $(LIBOBJ)
50 $(AR) $(LIB) $(LIBOBJ)
51 $(RANLIB) $(LIB) || echo Never mind.
52 @touch lib
53
54# elf
55asm/cx86-elf.s: asm/cast-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
56 (cd asm; $(PERL) cast-586.pl elf $(CLAGS) $(PROCESSOR) > cx86-elf.s)
57
58# a.out
59asm/cx86-out.o: asm/cx86unix.cpp
60 $(CPP) -DOUT asm/cx86unix.cpp | as -o asm/cx86-out.o
61
62# bsdi
63asm/cx86bsdi.o: asm/cx86unix.cpp
64 $(CPP) -DBSDI asm/cx86unix.cpp | sed 's/ :/:/' | as -o asm/cx86bsdi.o
65
66asm/cx86unix.cpp: asm/cast-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
67 (cd asm; $(PERL) cast-586.pl cpp $(PROCESSOR) >cx86unix.cpp)
68
69files:
70 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
71
72links:
73 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
74 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
75 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
76
77install:
78 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
79 do \
80 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
81 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
82 done;
83
84tags:
85 ctags $(SRC)
86
87tests:
88
89lint:
90 lint -DLINT $(INCLUDES) $(SRC)>fluff
91
92depend:
93 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
94
95dclean:
96 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
97 mv -f Makefile.new $(MAKEFILE)
98
99clean:
100 rm -f asm/cx86unix.cpp asm/*-elf.* *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
101
102# DO NOT DELETE THIS LINE -- make depend depends on it.
103
104c_cfb64.o: ../../e_os.h ../../include/openssl/cast.h
105c_cfb64.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
106c_cfb64.o: c_cfb64.c cast_lcl.h
107c_ecb.o: ../../e_os.h ../../include/openssl/cast.h
108c_ecb.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
109c_ecb.o: ../../include/openssl/opensslv.h c_ecb.c cast_lcl.h
110c_enc.o: ../../e_os.h ../../include/openssl/cast.h
111c_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
112c_enc.o: c_enc.c cast_lcl.h
113c_ofb64.o: ../../e_os.h ../../include/openssl/cast.h
114c_ofb64.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
115c_ofb64.o: c_ofb64.c cast_lcl.h
116c_skey.o: ../../e_os.h ../../include/openssl/cast.h
117c_skey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
118c_skey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
119c_skey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
120c_skey.o: ../../include/openssl/symhacks.h c_skey.c cast_lcl.h cast_s.h
diff --git a/src/lib/libcrypto/comp/Makefile b/src/lib/libcrypto/comp/Makefile
new file mode 100644
index 0000000000..68109a8013
--- /dev/null
+++ b/src/lib/libcrypto/comp/Makefile
@@ -0,0 +1,113 @@
1#
2# SSLeay/crypto/comp/Makefile
3#
4
5DIR= comp
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= comp_lib.c comp_err.c \
26 c_rle.c c_zlib.c
27
28LIBOBJ= comp_lib.o comp_err.o \
29 c_rle.o c_zlib.o
30
31SRC= $(LIBSRC)
32
33EXHEADER= comp.h
34HEADER= $(EXHEADER)
35
36ALL= $(GENERAL) $(SRC) $(HEADER)
37
38top:
39 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
40
41all: lib
42
43lib: $(LIBOBJ)
44 $(AR) $(LIB) $(LIBOBJ)
45 $(RANLIB) $(LIB) || echo Never mind.
46 @touch lib
47
48files:
49 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
50
51links:
52 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
53 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
54 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
55
56install:
57 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
58 do \
59 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
60 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
61 done;
62
63tags:
64 ctags $(SRC)
65
66tests:
67
68lint:
69 lint -DLINT $(INCLUDES) $(SRC)>fluff
70
71depend:
72 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(LIBSRC)
73
74dclean:
75 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
76 mv -f Makefile.new $(MAKEFILE)
77
78clean:
79 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
80
81# DO NOT DELETE THIS LINE -- make depend depends on it.
82
83c_rle.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
84c_rle.o: ../../include/openssl/bn.h ../../include/openssl/comp.h
85c_rle.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
86c_rle.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
87c_rle.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
88c_rle.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
89c_rle.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h c_rle.c
90c_zlib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
91c_zlib.o: ../../include/openssl/bn.h ../../include/openssl/comp.h
92c_zlib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
93c_zlib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
94c_zlib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
95c_zlib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
96c_zlib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
97c_zlib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
98c_zlib.o: c_zlib.c
99comp_err.o: ../../include/openssl/bio.h ../../include/openssl/comp.h
100comp_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
101comp_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
102comp_err.o: ../../include/openssl/opensslconf.h
103comp_err.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
104comp_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
105comp_err.o: comp_err.c
106comp_lib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
107comp_lib.o: ../../include/openssl/bn.h ../../include/openssl/comp.h
108comp_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
109comp_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
110comp_lib.o: ../../include/openssl/opensslconf.h
111comp_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
112comp_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
113comp_lib.o: ../../include/openssl/symhacks.h comp_lib.c
diff --git a/src/lib/libcrypto/conf/Makefile b/src/lib/libcrypto/conf/Makefile
new file mode 100644
index 0000000000..6d2f8ffd9a
--- /dev/null
+++ b/src/lib/libcrypto/conf/Makefile
@@ -0,0 +1,181 @@
1#
2# SSLeay/crypto/conf/Makefile
3#
4
5DIR= conf
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= conf_err.c conf_lib.c conf_api.c conf_def.c conf_mod.c \
26 conf_mall.c conf_sap.c
27
28LIBOBJ= conf_err.o conf_lib.o conf_api.o conf_def.o conf_mod.o \
29 conf_mall.o conf_sap.o
30
31SRC= $(LIBSRC)
32
33EXHEADER= conf.h conf_api.h
34HEADER= conf_def.h $(EXHEADER)
35
36ALL= $(GENERAL) $(SRC) $(HEADER)
37
38top:
39 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
40
41all: lib
42
43lib: $(LIBOBJ)
44 $(AR) $(LIB) $(LIBOBJ)
45 $(RANLIB) $(LIB) || echo Never mind.
46 @touch lib
47
48files:
49 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
50
51links:
52 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
53 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
54 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
55
56install:
57 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
58 do \
59 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
60 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
61 done;
62
63tags:
64 ctags $(SRC)
65
66tests:
67
68lint:
69 lint -DLINT $(INCLUDES) $(SRC)>fluff
70
71depend:
72 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(LIBSRC)
73
74dclean:
75 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
76 mv -f Makefile.new $(MAKEFILE)
77
78clean:
79 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
80
81# DO NOT DELETE THIS LINE -- make depend depends on it.
82
83conf_api.o: ../../e_os.h ../../include/openssl/bio.h
84conf_api.o: ../../include/openssl/conf.h ../../include/openssl/conf_api.h
85conf_api.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
86conf_api.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
87conf_api.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
88conf_api.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
89conf_api.o: conf_api.c
90conf_def.o: ../../e_os.h ../../include/openssl/bio.h
91conf_def.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
92conf_def.o: ../../include/openssl/conf_api.h ../../include/openssl/crypto.h
93conf_def.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
94conf_def.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
95conf_def.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
96conf_def.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
97conf_def.o: ../cryptlib.h conf_def.c conf_def.h
98conf_err.o: ../../include/openssl/bio.h ../../include/openssl/conf.h
99conf_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
100conf_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
101conf_err.o: ../../include/openssl/opensslconf.h
102conf_err.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
103conf_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
104conf_err.o: conf_err.c
105conf_lib.o: ../../include/openssl/bio.h ../../include/openssl/conf.h
106conf_lib.o: ../../include/openssl/conf_api.h ../../include/openssl/crypto.h
107conf_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
108conf_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
109conf_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
110conf_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
111conf_lib.o: conf_lib.c
112conf_mall.o: ../../e_os.h ../../include/openssl/aes.h
113conf_mall.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
114conf_mall.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
115conf_mall.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
116conf_mall.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
117conf_mall.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
118conf_mall.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
119conf_mall.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
120conf_mall.o: ../../include/openssl/engine.h ../../include/openssl/err.h
121conf_mall.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
122conf_mall.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
123conf_mall.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
124conf_mall.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
125conf_mall.o: ../../include/openssl/objects.h
126conf_mall.o: ../../include/openssl/opensslconf.h
127conf_mall.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
128conf_mall.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
129conf_mall.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
130conf_mall.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
131conf_mall.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
132conf_mall.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
133conf_mall.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
134conf_mall.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
135conf_mall.o: ../../include/openssl/x509_vfy.h ../cryptlib.h conf_mall.c
136conf_mod.o: ../../e_os.h ../../include/openssl/aes.h
137conf_mod.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
138conf_mod.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
139conf_mod.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
140conf_mod.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
141conf_mod.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
142conf_mod.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
143conf_mod.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
144conf_mod.o: ../../include/openssl/err.h ../../include/openssl/evp.h
145conf_mod.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
146conf_mod.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
147conf_mod.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
148conf_mod.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
149conf_mod.o: ../../include/openssl/opensslconf.h
150conf_mod.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
151conf_mod.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
152conf_mod.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
153conf_mod.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
154conf_mod.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
155conf_mod.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
156conf_mod.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
157conf_mod.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
158conf_mod.o: ../cryptlib.h conf_mod.c
159conf_sap.o: ../../e_os.h ../../include/openssl/aes.h
160conf_sap.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
161conf_sap.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
162conf_sap.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
163conf_sap.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
164conf_sap.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
165conf_sap.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
166conf_sap.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
167conf_sap.o: ../../include/openssl/engine.h ../../include/openssl/err.h
168conf_sap.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
169conf_sap.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
170conf_sap.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
171conf_sap.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
172conf_sap.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
173conf_sap.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
174conf_sap.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
175conf_sap.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
176conf_sap.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
177conf_sap.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
178conf_sap.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
179conf_sap.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
180conf_sap.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
181conf_sap.o: ../../include/openssl/x509_vfy.h ../cryptlib.h conf_sap.c
diff --git a/src/lib/libcrypto/crypto-lib.com b/src/lib/libcrypto/crypto-lib.com
index 39e78c69e5..c044ce0099 100644
--- a/src/lib/libcrypto/crypto-lib.com
+++ b/src/lib/libcrypto/crypto-lib.com
@@ -158,7 +158,7 @@ $!
158$ APPS_DES = "DES/DES,CBC3_ENC" 158$ APPS_DES = "DES/DES,CBC3_ENC"
159$ APPS_PKCS7 = "ENC/ENC;DEC/DEC;SIGN/SIGN;VERIFY/VERIFY,EXAMPLE" 159$ APPS_PKCS7 = "ENC/ENC;DEC/DEC;SIGN/SIGN;VERIFY/VERIFY,EXAMPLE"
160$ 160$
161$ LIB_ = "cryptlib,mem,mem_clr,mem_dbg,cversion,ex_data,tmdiff,cpt_err,ebcdic,uid,o_time" 161$ LIB_ = "cryptlib,mem,mem_clr,mem_dbg,cversion,ex_data,tmdiff,cpt_err,ebcdic,uid,o_time,o_str"
162$ LIB_MD2 = "md2_dgst,md2_one" 162$ LIB_MD2 = "md2_dgst,md2_one"
163$ LIB_MD4 = "md4_dgst,md4_one" 163$ LIB_MD4 = "md4_dgst,md4_one"
164$ LIB_MD5 = "md5_dgst,md5_one" 164$ LIB_MD5 = "md5_dgst,md5_one"
@@ -247,7 +247,7 @@ $ LIB_X509 = "x509_def,x509_d2,x509_r2x,x509_cmp,"+ -
247$ LIB_X509V3 = "v3_bcons,v3_bitst,v3_conf,v3_extku,v3_ia5,v3_lib,"+ - 247$ LIB_X509V3 = "v3_bcons,v3_bitst,v3_conf,v3_extku,v3_ia5,v3_lib,"+ -
248 "v3_prn,v3_utl,v3err,v3_genn,v3_alt,v3_skey,v3_akey,v3_pku,"+ - 248 "v3_prn,v3_utl,v3err,v3_genn,v3_alt,v3_skey,v3_akey,v3_pku,"+ -
249 "v3_int,v3_enum,v3_sxnet,v3_cpols,v3_crld,v3_purp,v3_info,"+ - 249 "v3_int,v3_enum,v3_sxnet,v3_cpols,v3_crld,v3_purp,v3_info,"+ -
250 "v3_ocsp,v3_akeya" 250 "v3_ocsp,v3_akeya,v3_pcia,v3_pci"
251$ LIB_CONF = "conf_err,conf_lib,conf_api,conf_def,conf_mod,conf_mall,conf_sap" 251$ LIB_CONF = "conf_err,conf_lib,conf_api,conf_def,conf_mod,conf_mall,conf_sap"
252$ LIB_TXT_DB = "txt_db" 252$ LIB_TXT_DB = "txt_db"
253$ LIB_PKCS7 = "pk7_asn1,pk7_lib,pkcs7err,pk7_doit,pk7_smime,pk7_attr,"+ - 253$ LIB_PKCS7 = "pk7_asn1,pk7_lib,pkcs7err,pk7_doit,pk7_smime,pk7_attr,"+ -
@@ -752,8 +752,8 @@ $ WRITE SYS$OUTPUT ""
752$ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:" 752$ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:"
753$ WRITE SYS$OUTPUT "" 753$ WRITE SYS$OUTPUT ""
754$ WRITE SYS$OUTPUT " ALL : Just Build Everything." 754$ WRITE SYS$OUTPUT " ALL : Just Build Everything."
755$ WRITE SYS$OUTPUT " LIBRARY : To Compile Just The [.xxx.EXE.SSL]LIBCRYPTO.OLB Library." 755$ WRITE SYS$OUTPUT " LIBRARY : To Compile Just The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library."
756$ WRITE SYS$OUTPUT " APPS : To Compile Just The [.xxx.EXE.SSL]*.EXE Programs." 756$ WRITE SYS$OUTPUT " APPS : To Compile Just The [.xxx.EXE.CRYPTO]*.EXE Programs."
757$ WRITE SYS$OUTPUT "" 757$ WRITE SYS$OUTPUT ""
758$ WRITE SYS$OUTPUT " Where 'xxx' Stands For:" 758$ WRITE SYS$OUTPUT " Where 'xxx' Stands For:"
759$ WRITE SYS$OUTPUT "" 759$ WRITE SYS$OUTPUT ""
diff --git a/src/lib/libcrypto/des/FILES0 b/src/lib/libcrypto/des/FILES0
index 4c7ea2de7a..1c2e1f75b9 100644
--- a/src/lib/libcrypto/des/FILES0
+++ b/src/lib/libcrypto/des/FILES0
@@ -8,7 +8,7 @@ README - What this package is.
8VERSION - Which version this is and what was changed. 8VERSION - Which version this is and what was changed.
9KERBEROS - Kerberos version 4 notes. 9KERBEROS - Kerberos version 4 notes.
10Makefile.PL - An old makefile to build with perl5, not current. 10Makefile.PL - An old makefile to build with perl5, not current.
11Makefile.ssl - The SSLeay makefile 11Makefile - The SSLeay makefile
12Makefile.uni - The normal unix makefile. 12Makefile.uni - The normal unix makefile.
13GNUmakefile - The makefile for use with glibc. 13GNUmakefile - The makefile for use with glibc.
14makefile.bc - A Borland C makefile 14makefile.bc - A Borland C makefile
diff --git a/src/lib/libcrypto/des/Makefile b/src/lib/libcrypto/des/Makefile
new file mode 100644
index 0000000000..655f2ea1a8
--- /dev/null
+++ b/src/lib/libcrypto/des/Makefile
@@ -0,0 +1,314 @@
1#
2# SSLeay/crypto/des/Makefile
3#
4
5DIR= des
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES=-I$(TOP) -I../../include
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP=/usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18RANLIB= ranlib
19DES_ENC= des_enc.o fcrypt_b.o
20# or use
21#DES_ENC= dx86-elf.o yx86-elf.o
22
23CFLAGS= $(INCLUDES) $(CFLAG)
24ASFLAGS= $(INCLUDES) $(ASFLAG)
25
26GENERAL=Makefile
27TEST=destest.c
28APPS=
29
30LIB=$(TOP)/libcrypto.a
31LIBSRC= cbc_cksm.c cbc_enc.c cfb64enc.c cfb_enc.c \
32 ecb3_enc.c ecb_enc.c enc_read.c enc_writ.c \
33 fcrypt.c ofb64enc.c ofb_enc.c pcbc_enc.c \
34 qud_cksm.c rand_key.c rpc_enc.c set_key.c \
35 des_enc.c fcrypt_b.c \
36 xcbc_enc.c \
37 str2key.c cfb64ede.c ofb64ede.c ede_cbcm_enc.c des_old.c des_old2.c \
38 read2pwd.c
39
40LIBOBJ= set_key.o ecb_enc.o cbc_enc.o \
41 ecb3_enc.o cfb64enc.o cfb64ede.o cfb_enc.o ofb64ede.o \
42 enc_read.o enc_writ.o ofb64enc.o \
43 ofb_enc.o str2key.o pcbc_enc.o qud_cksm.o rand_key.o \
44 ${DES_ENC} \
45 fcrypt.o xcbc_enc.o rpc_enc.o cbc_cksm.o \
46 ede_cbcm_enc.o des_old.o des_old2.o read2pwd.o
47
48SRC= $(LIBSRC)
49
50EXHEADER= des.h des_old.h
51HEADER= des_locl.h rpc_des.h spr.h des_ver.h $(EXHEADER)
52
53ALL= $(GENERAL) $(SRC) $(HEADER)
54
55top:
56 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
57
58all: lib
59
60lib: $(LIBOBJ)
61 $(AR) $(LIB) $(LIBOBJ)
62 $(RANLIB) $(LIB) || echo Never mind.
63 @touch lib
64
65des: des.o cbc3_enc.o lib
66 $(CC) $(CFLAGS) -o des des.o cbc3_enc.o $(LIB)
67
68# elf
69asm/dx86-elf.s: asm/des-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
70 (cd asm; $(PERL) des-586.pl elf $(CFLAGS) > dx86-elf.s)
71
72asm/yx86-elf.s: asm/crypt586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
73 (cd asm; $(PERL) crypt586.pl elf $(CFLAGS) > yx86-elf.s)
74
75# a.out
76asm/dx86-out.o: asm/dx86unix.cpp
77 $(CPP) -DOUT asm/dx86unix.cpp | as -o asm/dx86-out.o
78
79asm/yx86-out.o: asm/yx86unix.cpp
80 $(CPP) -DOUT asm/yx86unix.cpp | as -o asm/yx86-out.o
81
82# bsdi
83asm/dx86bsdi.o: asm/dx86unix.cpp
84 $(CPP) -DBSDI asm/dx86unix.cpp | sed 's/ :/:/' | as -o asm/dx86bsdi.o
85
86asm/yx86bsdi.o: asm/yx86unix.cpp
87 $(CPP) -DBSDI asm/yx86unix.cpp | sed 's/ :/:/' | as -o asm/yx86bsdi.o
88
89asm/dx86unix.cpp: asm/des-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
90 (cd asm; $(PERL) des-586.pl cpp >dx86unix.cpp)
91
92asm/yx86unix.cpp: asm/crypt586.pl ../perlasm/x86asm.pl
93 (cd asm; $(PERL) crypt586.pl cpp >yx86unix.cpp)
94
95files:
96 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
97
98links:
99 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
100 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
101 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
102
103install: installs
104
105installs:
106 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
107 do \
108 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
109 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
110 done;
111
112tags:
113 ctags $(SRC)
114
115tests:
116
117lint:
118 lint -DLINT $(INCLUDES) $(SRC)>fluff
119
120depend:
121 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
122
123dclean:
124 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
125 mv -f Makefile.new $(MAKEFILE)
126
127clean:
128 rm -f asm/dx86unix.cpp asm/yx86unix.cpp asm/*-elf.* *.o asm/*.o *.obj des lib tags core .pure .nfs* *.old *.bak fluff
129
130# DO NOT DELETE THIS LINE -- make depend depends on it.
131
132cbc_cksm.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
133cbc_cksm.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
134cbc_cksm.o: ../../include/openssl/opensslconf.h
135cbc_cksm.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
136cbc_cksm.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
137cbc_cksm.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
138cbc_cksm.o: cbc_cksm.c des_locl.h
139cbc_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
140cbc_enc.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
141cbc_enc.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
142cbc_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
143cbc_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
144cbc_enc.o: ../../include/openssl/ui_compat.h cbc_enc.c des_locl.h ncbc_enc.c
145cfb64ede.o: ../../e_os.h ../../include/openssl/crypto.h
146cfb64ede.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
147cfb64ede.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
148cfb64ede.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
149cfb64ede.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
150cfb64ede.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
151cfb64ede.o: cfb64ede.c des_locl.h
152cfb64enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
153cfb64enc.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
154cfb64enc.o: ../../include/openssl/opensslconf.h
155cfb64enc.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
156cfb64enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
157cfb64enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
158cfb64enc.o: cfb64enc.c des_locl.h
159cfb_enc.o: ../../e_os.h ../../include/openssl/crypto.h
160cfb_enc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
161cfb_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
162cfb_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
163cfb_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
164cfb_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
165cfb_enc.o: cfb_enc.c des_locl.h
166des_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
167des_enc.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
168des_enc.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
169des_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
170des_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
171des_enc.o: ../../include/openssl/ui_compat.h des_enc.c des_locl.h ncbc_enc.c
172des_old.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
173des_old.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
174des_old.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
175des_old.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
176des_old.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
177des_old.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
178des_old.o: ../../include/openssl/ui_compat.h des_old.c
179des_old2.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
180des_old2.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
181des_old2.o: ../../include/openssl/opensslconf.h
182des_old2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
183des_old2.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
184des_old2.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
185des_old2.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
186des_old2.o: des_old2.c
187ecb3_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
188ecb3_enc.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
189ecb3_enc.o: ../../include/openssl/opensslconf.h
190ecb3_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
191ecb3_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
192ecb3_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
193ecb3_enc.o: des_locl.h ecb3_enc.c
194ecb_enc.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
195ecb_enc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
196ecb_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
197ecb_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
198ecb_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
199ecb_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
200ecb_enc.o: des_locl.h des_ver.h ecb_enc.c spr.h
201ede_cbcm_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
202ede_cbcm_enc.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
203ede_cbcm_enc.o: ../../include/openssl/opensslconf.h
204ede_cbcm_enc.o: ../../include/openssl/opensslv.h
205ede_cbcm_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
206ede_cbcm_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
207ede_cbcm_enc.o: ../../include/openssl/ui_compat.h des_locl.h ede_cbcm_enc.c
208enc_read.o: ../../e_os.h ../../include/openssl/bio.h
209enc_read.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
210enc_read.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
211enc_read.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
212enc_read.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
213enc_read.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
214enc_read.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
215enc_read.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
216enc_read.o: ../cryptlib.h des_locl.h enc_read.c
217enc_writ.o: ../../e_os.h ../../include/openssl/bio.h
218enc_writ.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
219enc_writ.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
220enc_writ.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
221enc_writ.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
222enc_writ.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
223enc_writ.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
224enc_writ.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
225enc_writ.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
226enc_writ.o: ../cryptlib.h des_locl.h enc_writ.c
227fcrypt.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
228fcrypt.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
229fcrypt.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
230fcrypt.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
231fcrypt.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
232fcrypt.o: ../../include/openssl/ui_compat.h des_locl.h fcrypt.c
233fcrypt_b.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
234fcrypt_b.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
235fcrypt_b.o: ../../include/openssl/opensslconf.h
236fcrypt_b.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
237fcrypt_b.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
238fcrypt_b.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
239fcrypt_b.o: des_locl.h fcrypt_b.c
240ofb64ede.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
241ofb64ede.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
242ofb64ede.o: ../../include/openssl/opensslconf.h
243ofb64ede.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
244ofb64ede.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
245ofb64ede.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
246ofb64ede.o: des_locl.h ofb64ede.c
247ofb64enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
248ofb64enc.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
249ofb64enc.o: ../../include/openssl/opensslconf.h
250ofb64enc.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
251ofb64enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
252ofb64enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
253ofb64enc.o: des_locl.h ofb64enc.c
254ofb_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
255ofb_enc.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
256ofb_enc.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
257ofb_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
258ofb_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
259ofb_enc.o: ../../include/openssl/ui_compat.h des_locl.h ofb_enc.c
260pcbc_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
261pcbc_enc.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
262pcbc_enc.o: ../../include/openssl/opensslconf.h
263pcbc_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
264pcbc_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
265pcbc_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
266pcbc_enc.o: des_locl.h pcbc_enc.c
267qud_cksm.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
268qud_cksm.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
269qud_cksm.o: ../../include/openssl/opensslconf.h
270qud_cksm.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
271qud_cksm.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
272qud_cksm.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
273qud_cksm.o: des_locl.h qud_cksm.c
274rand_key.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
275rand_key.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
276rand_key.o: ../../include/openssl/opensslconf.h
277rand_key.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
278rand_key.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
279rand_key.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
280rand_key.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
281rand_key.o: rand_key.c
282read2pwd.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
283read2pwd.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
284read2pwd.o: ../../include/openssl/opensslconf.h
285read2pwd.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
286read2pwd.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
287read2pwd.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
288read2pwd.o: read2pwd.c
289rpc_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
290rpc_enc.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
291rpc_enc.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
292rpc_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
293rpc_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
294rpc_enc.o: ../../include/openssl/ui_compat.h des_locl.h des_ver.h rpc_des.h
295rpc_enc.o: rpc_enc.c
296set_key.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
297set_key.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
298set_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
299set_key.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
300set_key.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
301set_key.o: ../../include/openssl/ui_compat.h des_locl.h set_key.c
302str2key.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
303str2key.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
304str2key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
305str2key.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
306str2key.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
307str2key.o: ../../include/openssl/ui_compat.h des_locl.h str2key.c
308xcbc_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
309xcbc_enc.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
310xcbc_enc.o: ../../include/openssl/opensslconf.h
311xcbc_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
312xcbc_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
313xcbc_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
314xcbc_enc.o: des_locl.h xcbc_enc.c
diff --git a/src/lib/libcrypto/des/des_old.c b/src/lib/libcrypto/des/des_old.c
index 7e4cd7180d..88e9802aad 100644
--- a/src/lib/libcrypto/des/des_old.c
+++ b/src/lib/libcrypto/des/des_old.c
@@ -84,7 +84,7 @@ void _ossl_old_des_ecb3_encrypt(_ossl_old_des_cblock *input,_ossl_old_des_cblock
84 des_key_schedule ks1,des_key_schedule ks2, 84 des_key_schedule ks1,des_key_schedule ks2,
85 des_key_schedule ks3, int enc) 85 des_key_schedule ks3, int enc)
86 { 86 {
87 DES_ecb3_encrypt((const_DES_cblock *)input, output, 87 DES_ecb3_encrypt((const unsigned char *)input, (unsigned char *)output,
88 (DES_key_schedule *)ks1, (DES_key_schedule *)ks2, 88 (DES_key_schedule *)ks1, (DES_key_schedule *)ks2,
89 (DES_key_schedule *)ks3, enc); 89 (DES_key_schedule *)ks3, enc);
90 } 90 }
diff --git a/src/lib/libcrypto/des/destest.c b/src/lib/libcrypto/des/destest.c
index 3983ac8e5f..e3e9d77f14 100644
--- a/src/lib/libcrypto/des/destest.c
+++ b/src/lib/libcrypto/des/destest.c
@@ -439,8 +439,8 @@ int main(int argc, char *argv[])
439 memcpy(in,plain_data[i],8); 439 memcpy(in,plain_data[i],8);
440 memset(out,0,8); 440 memset(out,0,8);
441 memset(outin,0,8); 441 memset(outin,0,8);
442 des_ecb2_encrypt(&in,&out,ks,ks2,DES_ENCRYPT); 442 des_ecb2_encrypt(in,out,ks,ks2,DES_ENCRYPT);
443 des_ecb2_encrypt(&out,&outin,ks,ks2,DES_DECRYPT); 443 des_ecb2_encrypt(out,outin,ks,ks2,DES_DECRYPT);
444 444
445 if (memcmp(out,cipher_ecb2[i],8) != 0) 445 if (memcmp(out,cipher_ecb2[i],8) != 0)
446 { 446 {
diff --git a/src/lib/libcrypto/dh/Makefile b/src/lib/libcrypto/dh/Makefile
new file mode 100644
index 0000000000..c091a8130a
--- /dev/null
+++ b/src/lib/libcrypto/dh/Makefile
@@ -0,0 +1,131 @@
1#
2# SSLeay/crypto/dh/Makefile
3#
4
5DIR= dh
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST= dhtest.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= dh_asn1.c dh_gen.c dh_key.c dh_lib.c dh_check.c dh_err.c
26LIBOBJ= dh_asn1.o dh_gen.o dh_key.o dh_lib.o dh_check.o dh_err.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= dh.h
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80dh_asn1.o: ../../e_os.h ../../include/openssl/asn1.h
81dh_asn1.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
82dh_asn1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
83dh_asn1.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
84dh_asn1.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
85dh_asn1.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
86dh_asn1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
87dh_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
88dh_asn1.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
89dh_asn1.o: ../../include/openssl/symhacks.h ../cryptlib.h dh_asn1.c
90dh_check.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
91dh_check.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
92dh_check.o: ../../include/openssl/dh.h ../../include/openssl/e_os2.h
93dh_check.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
94dh_check.o: ../../include/openssl/opensslconf.h
95dh_check.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
96dh_check.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
97dh_check.o: ../../include/openssl/symhacks.h ../cryptlib.h dh_check.c
98dh_err.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
99dh_err.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
100dh_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
101dh_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
102dh_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
103dh_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
104dh_err.o: ../../include/openssl/symhacks.h dh_err.c
105dh_gen.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
106dh_gen.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
107dh_gen.o: ../../include/openssl/dh.h ../../include/openssl/e_os2.h
108dh_gen.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
109dh_gen.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
110dh_gen.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
111dh_gen.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
112dh_gen.o: ../cryptlib.h dh_gen.c
113dh_key.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
114dh_key.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
115dh_key.o: ../../include/openssl/dh.h ../../include/openssl/e_os2.h
116dh_key.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
117dh_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
118dh_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
119dh_key.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
120dh_key.o: ../../include/openssl/symhacks.h ../cryptlib.h dh_key.c
121dh_lib.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
122dh_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
123dh_lib.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
124dh_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
125dh_lib.o: ../../include/openssl/engine.h ../../include/openssl/err.h
126dh_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
127dh_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
128dh_lib.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
129dh_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
130dh_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
131dh_lib.o: ../cryptlib.h dh_lib.c
diff --git a/src/lib/libcrypto/dsa/Makefile b/src/lib/libcrypto/dsa/Makefile
new file mode 100644
index 0000000000..3a55058973
--- /dev/null
+++ b/src/lib/libcrypto/dsa/Makefile
@@ -0,0 +1,173 @@
1#
2# SSLeay/crypto/dsa/Makefile
3#
4
5DIR= dsa
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=dsatest.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= dsa_gen.c dsa_key.c dsa_lib.c dsa_asn1.c dsa_vrf.c dsa_sign.c \
26 dsa_err.c dsa_ossl.c
27LIBOBJ= dsa_gen.o dsa_key.o dsa_lib.o dsa_asn1.o dsa_vrf.o dsa_sign.o \
28 dsa_err.o dsa_ossl.o
29
30SRC= $(LIBSRC)
31
32EXHEADER= dsa.h
33HEADER= $(EXHEADER)
34
35ALL= $(GENERAL) $(SRC) $(HEADER)
36
37top:
38 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
39
40all: lib
41
42lib: $(LIBOBJ)
43 $(AR) $(LIB) $(LIBOBJ)
44 $(RANLIB) $(LIB) || echo Never mind.
45 @touch lib
46
47files:
48 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
49
50links:
51 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
52 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
53 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
54
55install:
56 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
57 do \
58 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
59 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
60 done;
61
62tags:
63 ctags $(SRC)
64
65tests:
66
67lint:
68 lint -DLINT $(INCLUDES) $(SRC)>fluff
69
70depend:
71 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
72
73dclean:
74 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
75 mv -f Makefile.new $(MAKEFILE)
76
77clean:
78 rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
79
80# DO NOT DELETE THIS LINE -- make depend depends on it.
81
82dsa_asn1.o: ../../e_os.h ../../include/openssl/asn1.h
83dsa_asn1.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
84dsa_asn1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
85dsa_asn1.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
86dsa_asn1.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
87dsa_asn1.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
88dsa_asn1.o: ../../include/openssl/opensslconf.h
89dsa_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
90dsa_asn1.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
91dsa_asn1.o: ../../include/openssl/symhacks.h ../cryptlib.h dsa_asn1.c
92dsa_err.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
93dsa_err.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
94dsa_err.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
95dsa_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
96dsa_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
97dsa_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
98dsa_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
99dsa_err.o: dsa_err.c
100dsa_gen.o: ../../e_os.h ../../include/openssl/aes.h
101dsa_gen.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
102dsa_gen.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
103dsa_gen.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
104dsa_gen.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
105dsa_gen.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
106dsa_gen.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
107dsa_gen.o: ../../include/openssl/err.h ../../include/openssl/evp.h
108dsa_gen.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
109dsa_gen.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
110dsa_gen.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
111dsa_gen.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
112dsa_gen.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
113dsa_gen.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
114dsa_gen.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
115dsa_gen.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
116dsa_gen.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
117dsa_gen.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
118dsa_gen.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
119dsa_gen.o: ../../include/openssl/ui_compat.h ../cryptlib.h dsa_gen.c
120dsa_key.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
121dsa_key.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
122dsa_key.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
123dsa_key.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
124dsa_key.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
125dsa_key.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
126dsa_key.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
127dsa_key.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
128dsa_key.o: ../cryptlib.h dsa_key.c
129dsa_lib.o: ../../e_os.h ../../include/openssl/asn1.h
130dsa_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
131dsa_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
132dsa_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
133dsa_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
134dsa_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
135dsa_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
136dsa_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
137dsa_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
138dsa_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
139dsa_lib.o: ../../include/openssl/ui.h ../cryptlib.h dsa_lib.c
140dsa_ossl.o: ../../e_os.h ../../include/openssl/asn1.h
141dsa_ossl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
142dsa_ossl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
143dsa_ossl.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
144dsa_ossl.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
145dsa_ossl.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
146dsa_ossl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
147dsa_ossl.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
148dsa_ossl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
149dsa_ossl.o: ../cryptlib.h dsa_ossl.c
150dsa_sign.o: ../../e_os.h ../../include/openssl/asn1.h
151dsa_sign.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
152dsa_sign.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
153dsa_sign.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
154dsa_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
155dsa_sign.o: ../../include/openssl/err.h ../../include/openssl/fips.h
156dsa_sign.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
157dsa_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
158dsa_sign.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
159dsa_sign.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
160dsa_sign.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
161dsa_sign.o: ../cryptlib.h dsa_sign.c
162dsa_vrf.o: ../../e_os.h ../../include/openssl/asn1.h
163dsa_vrf.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
164dsa_vrf.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
165dsa_vrf.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
166dsa_vrf.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
167dsa_vrf.o: ../../include/openssl/engine.h ../../include/openssl/err.h
168dsa_vrf.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
169dsa_vrf.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
170dsa_vrf.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
171dsa_vrf.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
172dsa_vrf.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
173dsa_vrf.o: ../../include/openssl/ui.h ../cryptlib.h dsa_vrf.c
diff --git a/src/lib/libcrypto/dso/Makefile b/src/lib/libcrypto/dso/Makefile
new file mode 100644
index 0000000000..168951bc3e
--- /dev/null
+++ b/src/lib/libcrypto/dso/Makefile
@@ -0,0 +1,140 @@
1#
2# SSLeay/crypto/dso/Makefile
3#
4
5DIR= dso
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= dso_dl.c dso_dlfcn.c dso_err.c dso_lib.c dso_null.c \
26 dso_openssl.c dso_win32.c dso_vms.c
27LIBOBJ= dso_dl.o dso_dlfcn.o dso_err.o dso_lib.o dso_null.o \
28 dso_openssl.o dso_win32.o dso_vms.o
29
30SRC= $(LIBSRC)
31
32EXHEADER= dso.h
33HEADER= $(EXHEADER)
34
35ALL= $(GENERAL) $(SRC) $(HEADER)
36
37top:
38 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
39
40all: lib
41
42lib: $(LIBOBJ)
43 $(AR) $(LIB) $(LIBOBJ)
44 $(RANLIB) $(LIB) || echo Never mind.
45 @touch lib
46
47files:
48 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
49
50links:
51 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
52 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
53 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
54
55install:
56 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
57 do \
58 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
59 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
60 done;
61
62tags:
63 ctags $(SRC)
64
65tests:
66
67lint:
68 lint -DLINT $(INCLUDES) $(SRC)>fluff
69
70depend:
71 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
72
73dclean:
74 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
75 mv -f Makefile.new $(MAKEFILE)
76
77clean:
78 rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
79
80# DO NOT DELETE THIS LINE -- make depend depends on it.
81
82dso_dl.o: ../../e_os.h ../../include/openssl/bio.h
83dso_dl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
84dso_dl.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
85dso_dl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
86dso_dl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
87dso_dl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
88dso_dl.o: ../../include/openssl/symhacks.h ../cryptlib.h dso_dl.c
89dso_dlfcn.o: ../../e_os.h ../../include/openssl/bio.h
90dso_dlfcn.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
91dso_dlfcn.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
92dso_dlfcn.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
93dso_dlfcn.o: ../../include/openssl/opensslconf.h
94dso_dlfcn.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
95dso_dlfcn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
96dso_dlfcn.o: ../cryptlib.h dso_dlfcn.c
97dso_err.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
98dso_err.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
99dso_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
100dso_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
101dso_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
102dso_err.o: ../../include/openssl/symhacks.h dso_err.c
103dso_lib.o: ../../e_os.h ../../include/openssl/bio.h
104dso_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
105dso_lib.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
106dso_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
107dso_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
108dso_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
109dso_lib.o: ../../include/openssl/symhacks.h ../cryptlib.h dso_lib.c
110dso_null.o: ../../e_os.h ../../include/openssl/bio.h
111dso_null.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
112dso_null.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
113dso_null.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
114dso_null.o: ../../include/openssl/opensslconf.h
115dso_null.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
116dso_null.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
117dso_null.o: ../cryptlib.h dso_null.c
118dso_openssl.o: ../../e_os.h ../../include/openssl/bio.h
119dso_openssl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
120dso_openssl.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
121dso_openssl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
122dso_openssl.o: ../../include/openssl/opensslconf.h
123dso_openssl.o: ../../include/openssl/opensslv.h
124dso_openssl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
125dso_openssl.o: ../../include/openssl/symhacks.h ../cryptlib.h dso_openssl.c
126dso_vms.o: ../../e_os.h ../../include/openssl/bio.h
127dso_vms.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
128dso_vms.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
129dso_vms.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
130dso_vms.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
131dso_vms.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
132dso_vms.o: ../../include/openssl/symhacks.h ../cryptlib.h dso_vms.c
133dso_win32.o: ../../e_os.h ../../include/openssl/bio.h
134dso_win32.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
135dso_win32.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
136dso_win32.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
137dso_win32.o: ../../include/openssl/opensslconf.h
138dso_win32.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
139dso_win32.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
140dso_win32.o: ../cryptlib.h dso_win32.c
diff --git a/src/lib/libcrypto/dso/dso_win32.c b/src/lib/libcrypto/dso/dso_win32.c
index 6c30deb250..3fa90eb27c 100644
--- a/src/lib/libcrypto/dso/dso_win32.c
+++ b/src/lib/libcrypto/dso/dso_win32.c
@@ -61,7 +61,7 @@
61#include "cryptlib.h" 61#include "cryptlib.h"
62#include <openssl/dso.h> 62#include <openssl/dso.h>
63 63
64#if !defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WINCE) 64#if !defined(DSO_WIN32)
65DSO_METHOD *DSO_METHOD_win32(void) 65DSO_METHOD *DSO_METHOD_win32(void)
66 { 66 {
67 return NULL; 67 return NULL;
diff --git a/src/lib/libcrypto/ec/Makefile b/src/lib/libcrypto/ec/Makefile
new file mode 100644
index 0000000000..8f03658ad4
--- /dev/null
+++ b/src/lib/libcrypto/ec/Makefile
@@ -0,0 +1,126 @@
1#
2# crypto/ec/Makefile
3#
4
5DIR= ec
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=ectest.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= ec_lib.c ecp_smpl.c ecp_mont.c ecp_recp.c ecp_nist.c ec_cvt.c ec_mult.c \
26 ec_err.c
27
28LIBOBJ= ec_lib.o ecp_smpl.o ecp_mont.o ecp_recp.o ecp_nist.o ec_cvt.o ec_mult.o \
29 ec_err.o
30
31SRC= $(LIBSRC)
32
33EXHEADER= ec.h
34HEADER= ec_lcl.h $(EXHEADER)
35
36ALL= $(GENERAL) $(SRC) $(HEADER)
37
38top:
39 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
40
41all: lib
42
43lib: $(LIBOBJ)
44 $(AR) $(LIB) $(LIBOBJ)
45 $(RANLIB) $(LIB) || echo Never mind.
46 @touch lib
47
48files:
49 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
50
51links:
52 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
53 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
54 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
55
56install:
57 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
58 do \
59 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
60 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
61 done;
62
63tags:
64 ctags $(SRC)
65
66tests:
67
68lint:
69 lint -DLINT $(INCLUDES) $(SRC)>fluff
70
71depend:
72 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
73
74dclean:
75 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
76 mv -f Makefile.new $(MAKEFILE)
77
78clean:
79 rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
80
81# DO NOT DELETE THIS LINE -- make depend depends on it.
82
83ec_cvt.o: ../../include/openssl/bn.h ../../include/openssl/e_os2.h
84ec_cvt.o: ../../include/openssl/ec.h ../../include/openssl/opensslconf.h
85ec_cvt.o: ../../include/openssl/symhacks.h ec_cvt.c ec_lcl.h
86ec_err.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
87ec_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
88ec_err.o: ../../include/openssl/ec.h ../../include/openssl/err.h
89ec_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
90ec_err.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
91ec_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
92ec_err.o: ec_err.c
93ec_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
94ec_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
95ec_lib.o: ../../include/openssl/ec.h ../../include/openssl/err.h
96ec_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
97ec_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
98ec_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
99ec_lib.o: ec_lcl.h ec_lib.c
100ec_mult.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
101ec_mult.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
102ec_mult.o: ../../include/openssl/ec.h ../../include/openssl/err.h
103ec_mult.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
104ec_mult.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
105ec_mult.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
106ec_mult.o: ec_lcl.h ec_mult.c
107ecp_mont.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
108ecp_mont.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
109ecp_mont.o: ../../include/openssl/ec.h ../../include/openssl/err.h
110ecp_mont.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
111ecp_mont.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
112ecp_mont.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
113ecp_mont.o: ec_lcl.h ecp_mont.c
114ecp_nist.o: ../../include/openssl/bn.h ../../include/openssl/e_os2.h
115ecp_nist.o: ../../include/openssl/ec.h ../../include/openssl/opensslconf.h
116ecp_nist.o: ../../include/openssl/symhacks.h ec_lcl.h ecp_nist.c
117ecp_recp.o: ../../include/openssl/bn.h ../../include/openssl/e_os2.h
118ecp_recp.o: ../../include/openssl/ec.h ../../include/openssl/opensslconf.h
119ecp_recp.o: ../../include/openssl/symhacks.h ec_lcl.h ecp_recp.c
120ecp_smpl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
121ecp_smpl.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
122ecp_smpl.o: ../../include/openssl/ec.h ../../include/openssl/err.h
123ecp_smpl.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
124ecp_smpl.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
125ecp_smpl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
126ecp_smpl.o: ec_lcl.h ecp_smpl.c
diff --git a/src/lib/libcrypto/engine/Makefile b/src/lib/libcrypto/engine/Makefile
new file mode 100644
index 0000000000..38f83f1654
--- /dev/null
+++ b/src/lib/libcrypto/engine/Makefile
@@ -0,0 +1,536 @@
1#
2# OpenSSL/crypto/engine/Makefile
3#
4
5DIR= engine
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST= enginetest.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= eng_err.c eng_lib.c eng_list.c eng_init.c eng_ctrl.c \
26 eng_table.c eng_pkey.c eng_fat.c eng_all.c \
27 tb_rsa.c tb_dsa.c tb_dh.c tb_rand.c tb_cipher.c tb_digest.c \
28 eng_openssl.c eng_dyn.c eng_cnf.c \
29 hw_atalla.c hw_cswift.c hw_ncipher.c hw_nuron.c hw_ubsec.c \
30 hw_cryptodev.c hw_aep.c hw_sureware.c hw_4758_cca.c
31LIBOBJ= eng_err.o eng_lib.o eng_list.o eng_init.o eng_ctrl.o \
32 eng_table.o eng_pkey.o eng_fat.o eng_all.o \
33 tb_rsa.o tb_dsa.o tb_dh.o tb_rand.o tb_cipher.o tb_digest.o \
34 eng_openssl.o eng_dyn.o eng_cnf.o \
35 hw_atalla.o hw_cswift.o hw_ncipher.o hw_nuron.o hw_ubsec.o \
36 hw_cryptodev.o hw_aep.o hw_sureware.o hw_4758_cca.o
37
38SRC= $(LIBSRC)
39
40EXHEADER= engine.h
41HEADER= $(EXHEADER)
42
43ALL= $(GENERAL) $(SRC) $(HEADER)
44
45top:
46 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
47
48all: lib
49
50lib: $(LIBOBJ)
51 $(AR) $(LIB) $(LIBOBJ)
52 $(RANLIB) $(LIB) || echo Never mind.
53 @touch lib
54
55files:
56 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
57
58links:
59 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
60 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
61 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
62
63install:
64 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
65 do \
66 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
67 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
68 done;
69
70tags:
71 ctags $(SRC)
72
73errors:
74 $(PERL) $(TOP)/util/mkerr.pl -conf hw.ec \
75 -nostatic -staticloader -write hw_*.c
76
77tests:
78
79lint:
80 lint -DLINT $(INCLUDES) $(SRC)>fluff
81
82depend:
83 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
84
85dclean:
86 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
87 mv -f Makefile.new $(MAKEFILE)
88
89clean:
90 rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
91
92# DO NOT DELETE THIS LINE -- make depend depends on it.
93
94eng_all.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
95eng_all.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
96eng_all.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
97eng_all.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
98eng_all.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
99eng_all.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
100eng_all.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
101eng_all.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
102eng_all.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
103eng_all.o: ../../include/openssl/ui.h eng_all.c eng_int.h
104eng_cnf.o: ../../e_os.h ../../include/openssl/asn1.h
105eng_cnf.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
106eng_cnf.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
107eng_cnf.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
108eng_cnf.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
109eng_cnf.o: ../../include/openssl/engine.h ../../include/openssl/err.h
110eng_cnf.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
111eng_cnf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
112eng_cnf.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
113eng_cnf.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
114eng_cnf.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
115eng_cnf.o: ../cryptlib.h eng_cnf.c
116eng_ctrl.o: ../../e_os.h ../../include/openssl/asn1.h
117eng_ctrl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
118eng_ctrl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
119eng_ctrl.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
120eng_ctrl.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
121eng_ctrl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
122eng_ctrl.o: ../../include/openssl/opensslconf.h
123eng_ctrl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
124eng_ctrl.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
125eng_ctrl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
126eng_ctrl.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
127eng_ctrl.o: ../cryptlib.h eng_ctrl.c eng_int.h
128eng_dyn.o: ../../e_os.h ../../include/openssl/asn1.h
129eng_dyn.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
130eng_dyn.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
131eng_dyn.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
132eng_dyn.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
133eng_dyn.o: ../../include/openssl/engine.h ../../include/openssl/err.h
134eng_dyn.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
135eng_dyn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
136eng_dyn.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
137eng_dyn.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
138eng_dyn.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
139eng_dyn.o: ../cryptlib.h eng_dyn.c eng_int.h
140eng_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
141eng_err.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
142eng_err.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
143eng_err.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
144eng_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
145eng_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
146eng_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
147eng_err.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
148eng_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
149eng_err.o: ../../include/openssl/ui.h eng_err.c
150eng_fat.o: ../../e_os.h ../../include/openssl/asn1.h
151eng_fat.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
152eng_fat.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
153eng_fat.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
154eng_fat.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
155eng_fat.o: ../../include/openssl/engine.h ../../include/openssl/err.h
156eng_fat.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
157eng_fat.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
158eng_fat.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
159eng_fat.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
160eng_fat.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
161eng_fat.o: ../cryptlib.h eng_fat.c eng_int.h
162eng_init.o: ../../e_os.h ../../include/openssl/asn1.h
163eng_init.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
164eng_init.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
165eng_init.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
166eng_init.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
167eng_init.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
168eng_init.o: ../../include/openssl/opensslconf.h
169eng_init.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
170eng_init.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
171eng_init.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
172eng_init.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
173eng_init.o: ../cryptlib.h eng_init.c eng_int.h
174eng_lib.o: ../../e_os.h ../../include/openssl/asn1.h
175eng_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
176eng_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
177eng_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
178eng_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
179eng_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
180eng_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
181eng_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
182eng_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
183eng_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
184eng_lib.o: ../../include/openssl/ui.h ../cryptlib.h eng_int.h eng_lib.c
185eng_list.o: ../../e_os.h ../../include/openssl/asn1.h
186eng_list.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
187eng_list.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
188eng_list.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
189eng_list.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
190eng_list.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
191eng_list.o: ../../include/openssl/opensslconf.h
192eng_list.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
193eng_list.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
194eng_list.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
195eng_list.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
196eng_list.o: ../cryptlib.h eng_int.h eng_list.c
197eng_openssl.o: ../../e_os.h ../../include/openssl/aes.h
198eng_openssl.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
199eng_openssl.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
200eng_openssl.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
201eng_openssl.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
202eng_openssl.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
203eng_openssl.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
204eng_openssl.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
205eng_openssl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
206eng_openssl.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
207eng_openssl.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
208eng_openssl.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
209eng_openssl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
210eng_openssl.o: ../../include/openssl/opensslconf.h
211eng_openssl.o: ../../include/openssl/opensslv.h
212eng_openssl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
213eng_openssl.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
214eng_openssl.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
215eng_openssl.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
216eng_openssl.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
217eng_openssl.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
218eng_openssl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
219eng_openssl.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
220eng_openssl.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
221eng_openssl.o: ../cryptlib.h eng_openssl.c
222eng_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
223eng_pkey.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
224eng_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
225eng_pkey.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
226eng_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
227eng_pkey.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
228eng_pkey.o: ../../include/openssl/opensslconf.h
229eng_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
230eng_pkey.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
231eng_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
232eng_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
233eng_pkey.o: ../cryptlib.h eng_int.h eng_pkey.c
234eng_table.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
235eng_table.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
236eng_table.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
237eng_table.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
238eng_table.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
239eng_table.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
240eng_table.o: ../../include/openssl/engine.h ../../include/openssl/err.h
241eng_table.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
242eng_table.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
243eng_table.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
244eng_table.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
245eng_table.o: ../../include/openssl/objects.h
246eng_table.o: ../../include/openssl/opensslconf.h
247eng_table.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
248eng_table.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
249eng_table.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
250eng_table.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
251eng_table.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
252eng_table.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
253eng_table.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
254eng_table.o: eng_int.h eng_table.c
255hw_4758_cca.o: ../../e_os.h ../../include/openssl/aes.h
256hw_4758_cca.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
257hw_4758_cca.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
258hw_4758_cca.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
259hw_4758_cca.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
260hw_4758_cca.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
261hw_4758_cca.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
262hw_4758_cca.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
263hw_4758_cca.o: ../../include/openssl/err.h ../../include/openssl/evp.h
264hw_4758_cca.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
265hw_4758_cca.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
266hw_4758_cca.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
267hw_4758_cca.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
268hw_4758_cca.o: ../../include/openssl/opensslconf.h
269hw_4758_cca.o: ../../include/openssl/opensslv.h
270hw_4758_cca.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
271hw_4758_cca.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
272hw_4758_cca.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
273hw_4758_cca.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
274hw_4758_cca.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
275hw_4758_cca.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
276hw_4758_cca.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
277hw_4758_cca.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
278hw_4758_cca.o: ../cryptlib.h hw_4758_cca.c hw_4758_cca_err.c hw_4758_cca_err.h
279hw_4758_cca.o: vendor_defns/hw_4758_cca.h
280hw_aep.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
281hw_aep.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
282hw_aep.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
283hw_aep.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
284hw_aep.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
285hw_aep.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
286hw_aep.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
287hw_aep.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
288hw_aep.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
289hw_aep.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
290hw_aep.o: ../../include/openssl/ui.h hw_aep.c hw_aep_err.c hw_aep_err.h
291hw_aep.o: vendor_defns/aep.h
292hw_atalla.o: ../../e_os.h ../../include/openssl/asn1.h
293hw_atalla.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
294hw_atalla.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
295hw_atalla.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
296hw_atalla.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
297hw_atalla.o: ../../include/openssl/engine.h ../../include/openssl/err.h
298hw_atalla.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
299hw_atalla.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
300hw_atalla.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
301hw_atalla.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
302hw_atalla.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
303hw_atalla.o: ../cryptlib.h hw_atalla.c hw_atalla_err.c hw_atalla_err.h
304hw_atalla.o: vendor_defns/atalla.h
305hw_cryptodev.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
306hw_cryptodev.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
307hw_cryptodev.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
308hw_cryptodev.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
309hw_cryptodev.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
310hw_cryptodev.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
311hw_cryptodev.o: ../../include/openssl/engine.h ../../include/openssl/err.h
312hw_cryptodev.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
313hw_cryptodev.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
314hw_cryptodev.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
315hw_cryptodev.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
316hw_cryptodev.o: ../../include/openssl/objects.h
317hw_cryptodev.o: ../../include/openssl/opensslconf.h
318hw_cryptodev.o: ../../include/openssl/opensslv.h
319hw_cryptodev.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
320hw_cryptodev.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
321hw_cryptodev.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
322hw_cryptodev.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
323hw_cryptodev.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
324hw_cryptodev.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
325hw_cryptodev.o: ../../include/openssl/ui_compat.h hw_cryptodev.c
326hw_cswift.o: ../../e_os.h ../../include/openssl/asn1.h
327hw_cswift.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
328hw_cswift.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
329hw_cswift.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
330hw_cswift.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
331hw_cswift.o: ../../include/openssl/engine.h ../../include/openssl/err.h
332hw_cswift.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
333hw_cswift.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
334hw_cswift.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
335hw_cswift.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
336hw_cswift.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
337hw_cswift.o: ../cryptlib.h hw_cswift.c hw_cswift_err.c hw_cswift_err.h
338hw_cswift.o: vendor_defns/cswift.h
339hw_ncipher.o: ../../e_os.h ../../include/openssl/aes.h
340hw_ncipher.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
341hw_ncipher.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
342hw_ncipher.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
343hw_ncipher.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
344hw_ncipher.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
345hw_ncipher.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
346hw_ncipher.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
347hw_ncipher.o: ../../include/openssl/err.h ../../include/openssl/evp.h
348hw_ncipher.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
349hw_ncipher.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
350hw_ncipher.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
351hw_ncipher.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
352hw_ncipher.o: ../../include/openssl/opensslconf.h
353hw_ncipher.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
354hw_ncipher.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
355hw_ncipher.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
356hw_ncipher.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
357hw_ncipher.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
358hw_ncipher.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
359hw_ncipher.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
360hw_ncipher.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
361hw_ncipher.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
362hw_ncipher.o: ../../include/openssl/x509_vfy.h ../cryptlib.h hw_ncipher.c
363hw_ncipher.o: hw_ncipher_err.c hw_ncipher_err.h vendor_defns/hwcryptohook.h
364hw_nuron.o: ../../e_os.h ../../include/openssl/asn1.h
365hw_nuron.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
366hw_nuron.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
367hw_nuron.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
368hw_nuron.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
369hw_nuron.o: ../../include/openssl/engine.h ../../include/openssl/err.h
370hw_nuron.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
371hw_nuron.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
372hw_nuron.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
373hw_nuron.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
374hw_nuron.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
375hw_nuron.o: ../cryptlib.h hw_nuron.c hw_nuron_err.c hw_nuron_err.h
376hw_sureware.o: ../../e_os.h ../../include/openssl/aes.h
377hw_sureware.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
378hw_sureware.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
379hw_sureware.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
380hw_sureware.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
381hw_sureware.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
382hw_sureware.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
383hw_sureware.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
384hw_sureware.o: ../../include/openssl/err.h ../../include/openssl/evp.h
385hw_sureware.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
386hw_sureware.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
387hw_sureware.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
388hw_sureware.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
389hw_sureware.o: ../../include/openssl/opensslconf.h
390hw_sureware.o: ../../include/openssl/opensslv.h
391hw_sureware.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
392hw_sureware.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
393hw_sureware.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
394hw_sureware.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
395hw_sureware.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
396hw_sureware.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
397hw_sureware.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
398hw_sureware.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
399hw_sureware.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
400hw_sureware.o: ../cryptlib.h eng_int.h engine.h hw_sureware.c hw_sureware_err.c
401hw_sureware.o: hw_sureware_err.h vendor_defns/sureware.h
402hw_ubsec.o: ../../e_os.h ../../include/openssl/asn1.h
403hw_ubsec.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
404hw_ubsec.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
405hw_ubsec.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
406hw_ubsec.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
407hw_ubsec.o: ../../include/openssl/engine.h ../../include/openssl/err.h
408hw_ubsec.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
409hw_ubsec.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
410hw_ubsec.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
411hw_ubsec.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
412hw_ubsec.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
413hw_ubsec.o: ../cryptlib.h hw_ubsec.c hw_ubsec_err.c hw_ubsec_err.h
414hw_ubsec.o: vendor_defns/hw_ubsec.h
415tb_cipher.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
416tb_cipher.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
417tb_cipher.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
418tb_cipher.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
419tb_cipher.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
420tb_cipher.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
421tb_cipher.o: ../../include/openssl/engine.h ../../include/openssl/err.h
422tb_cipher.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
423tb_cipher.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
424tb_cipher.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
425tb_cipher.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
426tb_cipher.o: ../../include/openssl/objects.h
427tb_cipher.o: ../../include/openssl/opensslconf.h
428tb_cipher.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
429tb_cipher.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
430tb_cipher.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
431tb_cipher.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
432tb_cipher.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
433tb_cipher.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
434tb_cipher.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
435tb_cipher.o: eng_int.h tb_cipher.c
436tb_dh.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
437tb_dh.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
438tb_dh.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
439tb_dh.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
440tb_dh.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
441tb_dh.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
442tb_dh.o: ../../include/openssl/engine.h ../../include/openssl/err.h
443tb_dh.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
444tb_dh.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
445tb_dh.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
446tb_dh.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
447tb_dh.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
448tb_dh.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
449tb_dh.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
450tb_dh.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
451tb_dh.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
452tb_dh.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
453tb_dh.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
454tb_dh.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h eng_int.h
455tb_dh.o: tb_dh.c
456tb_digest.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
457tb_digest.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
458tb_digest.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
459tb_digest.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
460tb_digest.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
461tb_digest.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
462tb_digest.o: ../../include/openssl/engine.h ../../include/openssl/err.h
463tb_digest.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
464tb_digest.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
465tb_digest.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
466tb_digest.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
467tb_digest.o: ../../include/openssl/objects.h
468tb_digest.o: ../../include/openssl/opensslconf.h
469tb_digest.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
470tb_digest.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
471tb_digest.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
472tb_digest.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
473tb_digest.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
474tb_digest.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
475tb_digest.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
476tb_digest.o: eng_int.h tb_digest.c
477tb_dsa.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
478tb_dsa.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
479tb_dsa.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
480tb_dsa.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
481tb_dsa.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
482tb_dsa.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
483tb_dsa.o: ../../include/openssl/engine.h ../../include/openssl/err.h
484tb_dsa.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
485tb_dsa.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
486tb_dsa.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
487tb_dsa.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
488tb_dsa.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
489tb_dsa.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
490tb_dsa.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
491tb_dsa.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
492tb_dsa.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
493tb_dsa.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
494tb_dsa.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
495tb_dsa.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
496tb_dsa.o: eng_int.h tb_dsa.c
497tb_rand.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
498tb_rand.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
499tb_rand.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
500tb_rand.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
501tb_rand.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
502tb_rand.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
503tb_rand.o: ../../include/openssl/engine.h ../../include/openssl/err.h
504tb_rand.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
505tb_rand.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
506tb_rand.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
507tb_rand.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
508tb_rand.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
509tb_rand.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
510tb_rand.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
511tb_rand.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
512tb_rand.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
513tb_rand.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
514tb_rand.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
515tb_rand.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
516tb_rand.o: eng_int.h tb_rand.c
517tb_rsa.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
518tb_rsa.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
519tb_rsa.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
520tb_rsa.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
521tb_rsa.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
522tb_rsa.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
523tb_rsa.o: ../../include/openssl/engine.h ../../include/openssl/err.h
524tb_rsa.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
525tb_rsa.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
526tb_rsa.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
527tb_rsa.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
528tb_rsa.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
529tb_rsa.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
530tb_rsa.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
531tb_rsa.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
532tb_rsa.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
533tb_rsa.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
534tb_rsa.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
535tb_rsa.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
536tb_rsa.o: eng_int.h tb_rsa.c
diff --git a/src/lib/libcrypto/engine/hw_cryptodev.c b/src/lib/libcrypto/engine/hw_cryptodev.c
index 467c0daa1b..3e7fff1c1e 100644
--- a/src/lib/libcrypto/engine/hw_cryptodev.c
+++ b/src/lib/libcrypto/engine/hw_cryptodev.c
@@ -77,7 +77,7 @@ static int cryptodev_max_iv(int cipher);
77static int cryptodev_key_length_valid(int cipher, int len); 77static int cryptodev_key_length_valid(int cipher, int len);
78static int cipher_nid_to_cryptodev(int nid); 78static int cipher_nid_to_cryptodev(int nid);
79static int get_cryptodev_ciphers(const int **cnids); 79static int get_cryptodev_ciphers(const int **cnids);
80static int get_cryptodev_digests(const int **cnids); 80/*static int get_cryptodev_digests(const int **cnids);*/
81static int cryptodev_usable_ciphers(const int **nids); 81static int cryptodev_usable_ciphers(const int **nids);
82static int cryptodev_usable_digests(const int **nids); 82static int cryptodev_usable_digests(const int **nids);
83static int cryptodev_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, 83static int cryptodev_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
@@ -137,6 +137,7 @@ static struct {
137 { 0, NID_undef, 0, 0, }, 137 { 0, NID_undef, 0, 0, },
138}; 138};
139 139
140#if 0 /* UNUSED */
140static struct { 141static struct {
141 int id; 142 int id;
142 int nid; 143 int nid;
@@ -149,6 +150,7 @@ static struct {
149 { CRYPTO_SHA1, NID_undef, }, 150 { CRYPTO_SHA1, NID_undef, },
150 { 0, NID_undef, }, 151 { 0, NID_undef, },
151}; 152};
153#endif
152 154
153/* 155/*
154 * Return a fd if /dev/crypto seems usable, 0 otherwise. 156 * Return a fd if /dev/crypto seems usable, 0 otherwise.
@@ -258,7 +260,7 @@ get_cryptodev_ciphers(const int **cnids)
258 int fd, i, count = 0; 260 int fd, i, count = 0;
259 261
260 if ((fd = get_dev_crypto()) < 0) { 262 if ((fd = get_dev_crypto()) < 0) {
261 *nids = NULL; 263 *cnids = NULL;
262 return (0); 264 return (0);
263 } 265 }
264 memset(&sess, 0, sizeof(sess)); 266 memset(&sess, 0, sizeof(sess));
@@ -289,6 +291,7 @@ get_cryptodev_ciphers(const int **cnids)
289 * returning them here is harmless, as long as we return NULL 291 * returning them here is harmless, as long as we return NULL
290 * when asked for a handler in the cryptodev_engine_digests routine 292 * when asked for a handler in the cryptodev_engine_digests routine
291 */ 293 */
294#if 0 /* UNUSED */
292static int 295static int
293get_cryptodev_digests(const int **cnids) 296get_cryptodev_digests(const int **cnids)
294{ 297{
@@ -297,7 +300,7 @@ get_cryptodev_digests(const int **cnids)
297 int fd, i, count = 0; 300 int fd, i, count = 0;
298 301
299 if ((fd = get_dev_crypto()) < 0) { 302 if ((fd = get_dev_crypto()) < 0) {
300 *nids = NULL; 303 *cnids = NULL;
301 return (0); 304 return (0);
302 } 305 }
303 memset(&sess, 0, sizeof(sess)); 306 memset(&sess, 0, sizeof(sess));
@@ -318,6 +321,7 @@ get_cryptodev_digests(const int **cnids)
318 *cnids = NULL; 321 *cnids = NULL;
319 return (count); 322 return (count);
320} 323}
324#endif
321 325
322/* 326/*
323 * Find the useable ciphers|digests from dev/crypto - this is the first 327 * Find the useable ciphers|digests from dev/crypto - this is the first
@@ -623,7 +627,7 @@ static int
623bn2crparam(const BIGNUM *a, struct crparam *crp) 627bn2crparam(const BIGNUM *a, struct crparam *crp)
624{ 628{
625 int i, j, k; 629 int i, j, k;
626 ssize_t words, bytes, bits; 630 ssize_t bytes, bits;
627 u_char *b; 631 u_char *b;
628 632
629 crp->crp_p = NULL; 633 crp->crp_p = NULL;
diff --git a/src/lib/libcrypto/engine/vendor_defns/sureware.h b/src/lib/libcrypto/engine/vendor_defns/sureware.h
index 1d3789219d..4bc22027f9 100644
--- a/src/lib/libcrypto/engine/vendor_defns/sureware.h
+++ b/src/lib/libcrypto/engine/vendor_defns/sureware.h
@@ -232,7 +232,7 @@ extern SW_EXPORT SureWareHook_Dsa_Sign_t SureWareHook_Dsa_Sign;
232* mlen,elen and dlen are all multiple of sizeof(unsigned long) 232* mlen,elen and dlen are all multiple of sizeof(unsigned long)
233*/ 233*/
234typedef int SureWareHook_Mod_Exp_t(char*const msg,int mlen,const unsigned long *mod, 234typedef int SureWareHook_Mod_Exp_t(char*const msg,int mlen,const unsigned long *mod,
235 int elen,const unsigned long *exp, 235 int elen,const unsigned long *exponent,
236 int dlen,unsigned long *data, 236 int dlen,unsigned long *data,
237 unsigned long *res); 237 unsigned long *res);
238extern SW_EXPORT SureWareHook_Mod_Exp_t SureWareHook_Mod_Exp; 238extern SW_EXPORT SureWareHook_Mod_Exp_t SureWareHook_Mod_Exp;
diff --git a/src/lib/libcrypto/err/Makefile b/src/lib/libcrypto/err/Makefile
new file mode 100644
index 0000000000..149f3e0eb9
--- /dev/null
+++ b/src/lib/libcrypto/err/Makefile
@@ -0,0 +1,118 @@
1#
2# SSLeay/crypto/err/Makefile
3#
4
5DIR= err
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=err.c err_all.c err_prn.c
26LIBOBJ=err.o err_all.o err_prn.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= err.h
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80err.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/buffer.h
81err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
82err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
83err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
84err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
85err.o: ../../include/openssl/symhacks.h ../cryptlib.h err.c
86err_all.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
87err_all.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
88err_all.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
89err_all.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
90err_all.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
91err_all.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
92err_all.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
93err_all.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
94err_all.o: ../../include/openssl/engine.h ../../include/openssl/err.h
95err_all.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
96err_all.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
97err_all.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
98err_all.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
99err_all.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
100err_all.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
101err_all.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
102err_all.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs12.h
103err_all.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
104err_all.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
105err_all.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
106err_all.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
107err_all.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
108err_all.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
109err_all.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
110err_all.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
111err_all.o: err_all.c
112err_prn.o: ../../e_os.h ../../include/openssl/bio.h
113err_prn.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
114err_prn.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
115err_prn.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
116err_prn.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
117err_prn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
118err_prn.o: ../cryptlib.h err_prn.c
diff --git a/src/lib/libcrypto/evp/Makefile b/src/lib/libcrypto/evp/Makefile
new file mode 100644
index 0000000000..5027a3855a
--- /dev/null
+++ b/src/lib/libcrypto/evp/Makefile
@@ -0,0 +1,1076 @@
1#
2# SSLeay/crypto/evp/Makefile
3#
4
5DIR= evp
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=evp_test.c
22TESTDATA=evptests.txt
23APPS=
24
25LIB=$(TOP)/libcrypto.a
26LIBSRC= encode.c digest.c evp_enc.c evp_key.c evp_acnf.c \
27 e_des.c e_bf.c e_idea.c e_des3.c \
28 e_rc4.c e_aes.c names.c \
29 e_xcbc_d.c e_rc2.c e_cast.c e_rc5.c \
30 m_null.c m_md2.c m_md4.c m_md5.c m_sha.c m_sha1.c \
31 m_dss.c m_dss1.c m_mdc2.c m_ripemd.c \
32 p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c p_dec.c \
33 bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c \
34 c_all.c c_allc.c c_alld.c evp_lib.c bio_ok.c \
35 evp_pkey.c evp_pbe.c p5_crpt.c p5_crpt2.c \
36 e_old.c
37
38LIBOBJ= encode.o digest.o evp_enc.o evp_key.o evp_acnf.o \
39 e_des.o e_bf.o e_idea.o e_des3.o \
40 e_rc4.o e_aes.o names.o \
41 e_xcbc_d.o e_rc2.o e_cast.o e_rc5.o \
42 m_null.o m_md2.o m_md4.o m_md5.o m_sha.o m_sha1.o \
43 m_dss.o m_dss1.o m_mdc2.o m_ripemd.o \
44 p_open.o p_seal.o p_sign.o p_verify.o p_lib.o p_enc.o p_dec.o \
45 bio_md.o bio_b64.o bio_enc.o evp_err.o e_null.o \
46 c_all.o c_allc.o c_alld.o evp_lib.o bio_ok.o \
47 evp_pkey.o evp_pbe.o p5_crpt.o p5_crpt2.o \
48 e_old.o
49
50SRC= $(LIBSRC)
51
52EXHEADER= evp.h
53HEADER= $(EXHEADER)
54
55ALL= $(GENERAL) $(SRC) $(HEADER)
56
57top:
58 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
59
60all: lib
61
62lib: $(LIBOBJ)
63 $(AR) $(LIB) $(LIBOBJ)
64 $(RANLIB) $(LIB) || echo Never mind.
65 @touch lib
66
67files:
68 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
69
70links:
71 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
72 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
73 cp $(TESTDATA) ../../test
74 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
75
76install:
77 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
78 do \
79 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
80 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
81 done;
82
83tags:
84 ctags $(SRC)
85
86tests:
87
88lint:
89 lint -DLINT $(INCLUDES) $(SRC)>fluff
90
91depend:
92 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(LIBSRC)
93
94dclean:
95 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
96 mv -f Makefile.new $(MAKEFILE)
97
98clean:
99 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
100
101# DO NOT DELETE THIS LINE -- make depend depends on it.
102
103bio_b64.o: ../../e_os.h ../../include/openssl/aes.h
104bio_b64.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
105bio_b64.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
106bio_b64.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
107bio_b64.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
108bio_b64.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
109bio_b64.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
110bio_b64.o: ../../include/openssl/err.h ../../include/openssl/evp.h
111bio_b64.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
112bio_b64.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
113bio_b64.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
114bio_b64.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
115bio_b64.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
116bio_b64.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc2.h
117bio_b64.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
118bio_b64.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
119bio_b64.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
120bio_b64.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
121bio_b64.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
122bio_b64.o: ../cryptlib.h bio_b64.c
123bio_enc.o: ../../e_os.h ../../include/openssl/aes.h
124bio_enc.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
125bio_enc.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
126bio_enc.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
127bio_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
128bio_enc.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
129bio_enc.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
130bio_enc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
131bio_enc.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
132bio_enc.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
133bio_enc.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
134bio_enc.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
135bio_enc.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
136bio_enc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc2.h
137bio_enc.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
138bio_enc.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
139bio_enc.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
140bio_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
141bio_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
142bio_enc.o: ../cryptlib.h bio_enc.c
143bio_md.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
144bio_md.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
145bio_md.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
146bio_md.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
147bio_md.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
148bio_md.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
149bio_md.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
150bio_md.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
151bio_md.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
152bio_md.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
153bio_md.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
154bio_md.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
155bio_md.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
156bio_md.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
157bio_md.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
158bio_md.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
159bio_md.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
160bio_md.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
161bio_md.o: ../../include/openssl/ui_compat.h ../cryptlib.h bio_md.c
162bio_ok.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
163bio_ok.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
164bio_ok.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
165bio_ok.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
166bio_ok.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
167bio_ok.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
168bio_ok.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
169bio_ok.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
170bio_ok.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
171bio_ok.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
172bio_ok.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
173bio_ok.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
174bio_ok.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
175bio_ok.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
176bio_ok.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
177bio_ok.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
178bio_ok.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
179bio_ok.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
180bio_ok.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
181bio_ok.o: ../cryptlib.h bio_ok.c
182c_all.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
183c_all.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
184c_all.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
185c_all.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
186c_all.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
187c_all.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
188c_all.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
189c_all.o: ../../include/openssl/err.h ../../include/openssl/evp.h
190c_all.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
191c_all.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
192c_all.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
193c_all.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
194c_all.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
195c_all.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
196c_all.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
197c_all.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
198c_all.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
199c_all.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
200c_all.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
201c_all.o: ../../include/openssl/ui_compat.h ../cryptlib.h c_all.c
202c_allc.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
203c_allc.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
204c_allc.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
205c_allc.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
206c_allc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
207c_allc.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
208c_allc.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
209c_allc.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
210c_allc.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
211c_allc.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
212c_allc.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
213c_allc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
214c_allc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
215c_allc.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
216c_allc.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
217c_allc.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
218c_allc.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
219c_allc.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
220c_allc.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
221c_allc.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
222c_allc.o: ../../include/openssl/x509_vfy.h ../cryptlib.h c_allc.c
223c_alld.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
224c_alld.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
225c_alld.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
226c_alld.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
227c_alld.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
228c_alld.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
229c_alld.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
230c_alld.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
231c_alld.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
232c_alld.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
233c_alld.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
234c_alld.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
235c_alld.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
236c_alld.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
237c_alld.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
238c_alld.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
239c_alld.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
240c_alld.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
241c_alld.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
242c_alld.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
243c_alld.o: ../../include/openssl/x509_vfy.h ../cryptlib.h c_alld.c
244digest.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
245digest.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
246digest.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
247digest.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
248digest.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
249digest.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
250digest.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
251digest.o: ../../include/openssl/err.h ../../include/openssl/evp.h
252digest.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
253digest.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
254digest.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
255digest.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
256digest.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
257digest.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
258digest.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
259digest.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
260digest.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
261digest.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
262digest.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
263digest.o: ../../include/openssl/ui_compat.h ../cryptlib.h digest.c
264e_aes.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
265e_aes.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
266e_aes.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
267e_aes.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
268e_aes.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
269e_aes.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
270e_aes.o: ../../include/openssl/err.h ../../include/openssl/evp.h
271e_aes.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
272e_aes.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
273e_aes.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
274e_aes.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
275e_aes.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
276e_aes.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc2.h
277e_aes.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
278e_aes.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
279e_aes.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
280e_aes.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
281e_aes.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h e_aes.c
282e_aes.o: evp_locl.h
283e_bf.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
284e_bf.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
285e_bf.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
286e_bf.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
287e_bf.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
288e_bf.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
289e_bf.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
290e_bf.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
291e_bf.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
292e_bf.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
293e_bf.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
294e_bf.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
295e_bf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
296e_bf.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
297e_bf.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
298e_bf.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
299e_bf.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
300e_bf.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
301e_bf.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_bf.c evp_locl.h
302e_cast.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
303e_cast.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
304e_cast.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
305e_cast.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
306e_cast.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
307e_cast.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
308e_cast.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
309e_cast.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
310e_cast.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
311e_cast.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
312e_cast.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
313e_cast.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
314e_cast.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
315e_cast.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
316e_cast.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
317e_cast.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
318e_cast.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
319e_cast.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
320e_cast.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_cast.c evp_locl.h
321e_des.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
322e_des.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
323e_des.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
324e_des.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
325e_des.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
326e_des.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
327e_des.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
328e_des.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
329e_des.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
330e_des.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
331e_des.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
332e_des.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
333e_des.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
334e_des.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
335e_des.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
336e_des.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
337e_des.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
338e_des.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
339e_des.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_des.c evp_locl.h
340e_des3.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
341e_des3.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
342e_des3.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
343e_des3.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
344e_des3.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
345e_des3.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
346e_des3.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
347e_des3.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
348e_des3.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
349e_des3.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
350e_des3.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
351e_des3.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
352e_des3.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
353e_des3.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
354e_des3.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
355e_des3.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
356e_des3.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
357e_des3.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
358e_des3.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_des3.c evp_locl.h
359e_idea.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
360e_idea.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
361e_idea.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
362e_idea.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
363e_idea.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
364e_idea.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
365e_idea.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
366e_idea.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
367e_idea.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
368e_idea.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
369e_idea.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
370e_idea.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
371e_idea.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
372e_idea.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
373e_idea.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
374e_idea.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
375e_idea.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
376e_idea.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
377e_idea.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_idea.c evp_locl.h
378e_null.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
379e_null.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
380e_null.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
381e_null.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
382e_null.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
383e_null.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
384e_null.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
385e_null.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
386e_null.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
387e_null.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
388e_null.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
389e_null.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
390e_null.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
391e_null.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
392e_null.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
393e_null.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
394e_null.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
395e_null.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
396e_null.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_null.c
397e_old.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
398e_old.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
399e_old.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
400e_old.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
401e_old.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
402e_old.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
403e_old.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
404e_old.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
405e_old.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
406e_old.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
407e_old.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
408e_old.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc2.h
409e_old.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
410e_old.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
411e_old.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
412e_old.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
413e_old.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h e_old.c
414e_rc2.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
415e_rc2.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
416e_rc2.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
417e_rc2.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
418e_rc2.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
419e_rc2.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
420e_rc2.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
421e_rc2.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
422e_rc2.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
423e_rc2.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
424e_rc2.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
425e_rc2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
426e_rc2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
427e_rc2.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
428e_rc2.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
429e_rc2.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
430e_rc2.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
431e_rc2.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
432e_rc2.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_rc2.c evp_locl.h
433e_rc4.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
434e_rc4.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
435e_rc4.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
436e_rc4.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
437e_rc4.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
438e_rc4.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
439e_rc4.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
440e_rc4.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
441e_rc4.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
442e_rc4.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
443e_rc4.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
444e_rc4.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
445e_rc4.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
446e_rc4.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
447e_rc4.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
448e_rc4.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
449e_rc4.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
450e_rc4.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
451e_rc4.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_rc4.c evp_locl.h
452e_rc5.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
453e_rc5.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
454e_rc5.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
455e_rc5.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
456e_rc5.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
457e_rc5.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
458e_rc5.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
459e_rc5.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
460e_rc5.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
461e_rc5.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
462e_rc5.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
463e_rc5.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
464e_rc5.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
465e_rc5.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
466e_rc5.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
467e_rc5.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
468e_rc5.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
469e_rc5.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
470e_rc5.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_rc5.c evp_locl.h
471e_xcbc_d.o: ../../e_os.h ../../include/openssl/aes.h
472e_xcbc_d.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
473e_xcbc_d.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
474e_xcbc_d.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
475e_xcbc_d.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
476e_xcbc_d.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
477e_xcbc_d.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
478e_xcbc_d.o: ../../include/openssl/err.h ../../include/openssl/evp.h
479e_xcbc_d.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
480e_xcbc_d.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
481e_xcbc_d.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
482e_xcbc_d.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
483e_xcbc_d.o: ../../include/openssl/opensslconf.h
484e_xcbc_d.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
485e_xcbc_d.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
486e_xcbc_d.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
487e_xcbc_d.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
488e_xcbc_d.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
489e_xcbc_d.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
490e_xcbc_d.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_xcbc_d.c
491encode.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
492encode.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
493encode.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
494encode.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
495encode.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
496encode.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
497encode.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
498encode.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
499encode.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
500encode.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
501encode.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
502encode.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
503encode.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
504encode.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
505encode.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
506encode.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
507encode.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
508encode.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
509encode.o: ../../include/openssl/ui_compat.h ../cryptlib.h encode.c
510evp_acnf.o: ../../e_os.h ../../include/openssl/aes.h
511evp_acnf.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
512evp_acnf.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
513evp_acnf.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
514evp_acnf.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
515evp_acnf.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
516evp_acnf.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
517evp_acnf.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
518evp_acnf.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
519evp_acnf.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
520evp_acnf.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
521evp_acnf.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
522evp_acnf.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
523evp_acnf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
524evp_acnf.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
525evp_acnf.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
526evp_acnf.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
527evp_acnf.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
528evp_acnf.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
529evp_acnf.o: ../../include/openssl/ui_compat.h ../cryptlib.h evp_acnf.c
530evp_enc.o: ../../e_os.h ../../include/openssl/aes.h
531evp_enc.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
532evp_enc.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
533evp_enc.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
534evp_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
535evp_enc.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
536evp_enc.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
537evp_enc.o: ../../include/openssl/engine.h ../../include/openssl/err.h
538evp_enc.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
539evp_enc.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
540evp_enc.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
541evp_enc.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
542evp_enc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
543evp_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
544evp_enc.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
545evp_enc.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
546evp_enc.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
547evp_enc.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
548evp_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
549evp_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
550evp_enc.o: ../cryptlib.h evp_enc.c evp_locl.h
551evp_err.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
552evp_err.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
553evp_err.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
554evp_err.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
555evp_err.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
556evp_err.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
557evp_err.o: ../../include/openssl/err.h ../../include/openssl/evp.h
558evp_err.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
559evp_err.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
560evp_err.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
561evp_err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
562evp_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
563evp_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc2.h
564evp_err.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
565evp_err.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
566evp_err.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
567evp_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
568evp_err.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
569evp_err.o: evp_err.c
570evp_key.o: ../../e_os.h ../../include/openssl/aes.h
571evp_key.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
572evp_key.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
573evp_key.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
574evp_key.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
575evp_key.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
576evp_key.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
577evp_key.o: ../../include/openssl/err.h ../../include/openssl/evp.h
578evp_key.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
579evp_key.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
580evp_key.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
581evp_key.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
582evp_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
583evp_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
584evp_key.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
585evp_key.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
586evp_key.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
587evp_key.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
588evp_key.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
589evp_key.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
590evp_key.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_key.c
591evp_lib.o: ../../e_os.h ../../include/openssl/aes.h
592evp_lib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
593evp_lib.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
594evp_lib.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
595evp_lib.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
596evp_lib.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
597evp_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
598evp_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
599evp_lib.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
600evp_lib.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
601evp_lib.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
602evp_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
603evp_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
604evp_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc2.h
605evp_lib.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
606evp_lib.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
607evp_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
608evp_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
609evp_lib.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
610evp_lib.o: ../cryptlib.h evp_lib.c
611evp_pbe.o: ../../e_os.h ../../include/openssl/aes.h
612evp_pbe.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
613evp_pbe.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
614evp_pbe.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
615evp_pbe.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
616evp_pbe.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
617evp_pbe.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
618evp_pbe.o: ../../include/openssl/err.h ../../include/openssl/evp.h
619evp_pbe.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
620evp_pbe.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
621evp_pbe.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
622evp_pbe.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
623evp_pbe.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
624evp_pbe.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
625evp_pbe.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
626evp_pbe.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
627evp_pbe.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
628evp_pbe.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
629evp_pbe.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
630evp_pbe.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
631evp_pbe.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_pbe.c
632evp_pkey.o: ../../e_os.h ../../include/openssl/aes.h
633evp_pkey.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
634evp_pkey.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
635evp_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
636evp_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
637evp_pkey.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
638evp_pkey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
639evp_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
640evp_pkey.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
641evp_pkey.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
642evp_pkey.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
643evp_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
644evp_pkey.o: ../../include/openssl/opensslconf.h
645evp_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
646evp_pkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
647evp_pkey.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
648evp_pkey.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
649evp_pkey.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
650evp_pkey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
651evp_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
652evp_pkey.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
653evp_pkey.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_pkey.c
654m_dss.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
655m_dss.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
656m_dss.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
657m_dss.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
658m_dss.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
659m_dss.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
660m_dss.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
661m_dss.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
662m_dss.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
663m_dss.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
664m_dss.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
665m_dss.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
666m_dss.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
667m_dss.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
668m_dss.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
669m_dss.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
670m_dss.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
671m_dss.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
672m_dss.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
673m_dss.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
674m_dss.o: ../cryptlib.h m_dss.c
675m_dss1.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
676m_dss1.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
677m_dss1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
678m_dss1.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
679m_dss1.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
680m_dss1.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
681m_dss1.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
682m_dss1.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
683m_dss1.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
684m_dss1.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
685m_dss1.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
686m_dss1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
687m_dss1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
688m_dss1.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
689m_dss1.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
690m_dss1.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
691m_dss1.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
692m_dss1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
693m_dss1.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
694m_dss1.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
695m_dss1.o: ../cryptlib.h m_dss1.c
696m_md2.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
697m_md2.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
698m_md2.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
699m_md2.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
700m_md2.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
701m_md2.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
702m_md2.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
703m_md2.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
704m_md2.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
705m_md2.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
706m_md2.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
707m_md2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
708m_md2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
709m_md2.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
710m_md2.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
711m_md2.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
712m_md2.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
713m_md2.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
714m_md2.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
715m_md2.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
716m_md2.o: ../cryptlib.h evp_locl.h m_md2.c
717m_md4.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
718m_md4.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
719m_md4.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
720m_md4.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
721m_md4.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
722m_md4.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
723m_md4.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
724m_md4.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
725m_md4.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
726m_md4.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
727m_md4.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
728m_md4.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
729m_md4.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
730m_md4.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
731m_md4.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
732m_md4.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
733m_md4.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
734m_md4.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
735m_md4.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
736m_md4.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
737m_md4.o: ../cryptlib.h evp_locl.h m_md4.c
738m_md5.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
739m_md5.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
740m_md5.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
741m_md5.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
742m_md5.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
743m_md5.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
744m_md5.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
745m_md5.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
746m_md5.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
747m_md5.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
748m_md5.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
749m_md5.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
750m_md5.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
751m_md5.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
752m_md5.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
753m_md5.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
754m_md5.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
755m_md5.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
756m_md5.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
757m_md5.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
758m_md5.o: ../cryptlib.h evp_locl.h m_md5.c
759m_mdc2.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
760m_mdc2.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
761m_mdc2.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
762m_mdc2.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
763m_mdc2.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
764m_mdc2.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
765m_mdc2.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
766m_mdc2.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
767m_mdc2.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
768m_mdc2.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
769m_mdc2.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
770m_mdc2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
771m_mdc2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
772m_mdc2.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
773m_mdc2.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
774m_mdc2.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
775m_mdc2.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
776m_mdc2.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
777m_mdc2.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
778m_mdc2.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
779m_mdc2.o: ../cryptlib.h evp_locl.h m_mdc2.c
780m_null.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
781m_null.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
782m_null.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
783m_null.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
784m_null.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
785m_null.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
786m_null.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
787m_null.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
788m_null.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
789m_null.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
790m_null.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
791m_null.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
792m_null.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
793m_null.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
794m_null.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
795m_null.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
796m_null.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
797m_null.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
798m_null.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
799m_null.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
800m_null.o: ../cryptlib.h m_null.c
801m_ripemd.o: ../../e_os.h ../../include/openssl/aes.h
802m_ripemd.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
803m_ripemd.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
804m_ripemd.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
805m_ripemd.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
806m_ripemd.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
807m_ripemd.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
808m_ripemd.o: ../../include/openssl/err.h ../../include/openssl/evp.h
809m_ripemd.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
810m_ripemd.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
811m_ripemd.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
812m_ripemd.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
813m_ripemd.o: ../../include/openssl/opensslconf.h
814m_ripemd.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
815m_ripemd.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
816m_ripemd.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
817m_ripemd.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
818m_ripemd.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
819m_ripemd.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
820m_ripemd.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
821m_ripemd.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
822m_ripemd.o: ../cryptlib.h m_ripemd.c
823m_sha.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
824m_sha.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
825m_sha.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
826m_sha.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
827m_sha.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
828m_sha.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
829m_sha.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
830m_sha.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
831m_sha.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
832m_sha.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
833m_sha.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
834m_sha.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
835m_sha.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
836m_sha.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
837m_sha.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
838m_sha.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
839m_sha.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
840m_sha.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
841m_sha.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
842m_sha.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
843m_sha.o: ../cryptlib.h evp_locl.h m_sha.c
844m_sha1.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
845m_sha1.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
846m_sha1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
847m_sha1.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
848m_sha1.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
849m_sha1.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
850m_sha1.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
851m_sha1.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
852m_sha1.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
853m_sha1.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
854m_sha1.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
855m_sha1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
856m_sha1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
857m_sha1.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
858m_sha1.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
859m_sha1.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
860m_sha1.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
861m_sha1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
862m_sha1.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
863m_sha1.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
864m_sha1.o: ../cryptlib.h m_sha1.c
865names.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
866names.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
867names.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
868names.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
869names.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
870names.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
871names.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
872names.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
873names.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
874names.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
875names.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
876names.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
877names.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
878names.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
879names.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
880names.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
881names.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
882names.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
883names.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
884names.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
885names.o: ../cryptlib.h names.c
886p5_crpt.o: ../../e_os.h ../../include/openssl/aes.h
887p5_crpt.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
888p5_crpt.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
889p5_crpt.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
890p5_crpt.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
891p5_crpt.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
892p5_crpt.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
893p5_crpt.o: ../../include/openssl/err.h ../../include/openssl/evp.h
894p5_crpt.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
895p5_crpt.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
896p5_crpt.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
897p5_crpt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
898p5_crpt.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
899p5_crpt.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
900p5_crpt.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
901p5_crpt.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
902p5_crpt.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
903p5_crpt.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
904p5_crpt.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
905p5_crpt.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
906p5_crpt.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p5_crpt.c
907p5_crpt2.o: ../../e_os.h ../../include/openssl/aes.h
908p5_crpt2.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
909p5_crpt2.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
910p5_crpt2.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
911p5_crpt2.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
912p5_crpt2.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
913p5_crpt2.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
914p5_crpt2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
915p5_crpt2.o: ../../include/openssl/hmac.h ../../include/openssl/idea.h
916p5_crpt2.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
917p5_crpt2.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
918p5_crpt2.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
919p5_crpt2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
920p5_crpt2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
921p5_crpt2.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
922p5_crpt2.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
923p5_crpt2.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
924p5_crpt2.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
925p5_crpt2.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
926p5_crpt2.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
927p5_crpt2.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
928p5_crpt2.o: ../cryptlib.h p5_crpt2.c
929p_dec.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
930p_dec.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
931p_dec.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
932p_dec.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
933p_dec.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
934p_dec.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
935p_dec.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
936p_dec.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
937p_dec.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
938p_dec.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
939p_dec.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
940p_dec.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
941p_dec.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
942p_dec.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
943p_dec.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
944p_dec.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
945p_dec.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
946p_dec.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
947p_dec.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
948p_dec.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
949p_dec.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_dec.c
950p_enc.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
951p_enc.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
952p_enc.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
953p_enc.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
954p_enc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
955p_enc.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
956p_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
957p_enc.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
958p_enc.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
959p_enc.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
960p_enc.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
961p_enc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
962p_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
963p_enc.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
964p_enc.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
965p_enc.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
966p_enc.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
967p_enc.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
968p_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
969p_enc.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
970p_enc.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_enc.c
971p_lib.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
972p_lib.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
973p_lib.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
974p_lib.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
975p_lib.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
976p_lib.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
977p_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
978p_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
979p_lib.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
980p_lib.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
981p_lib.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
982p_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
983p_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
984p_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
985p_lib.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
986p_lib.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
987p_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
988p_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
989p_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
990p_lib.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
991p_lib.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_lib.c
992p_open.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
993p_open.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
994p_open.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
995p_open.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
996p_open.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
997p_open.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
998p_open.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
999p_open.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
1000p_open.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
1001p_open.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
1002p_open.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
1003p_open.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
1004p_open.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
1005p_open.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
1006p_open.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
1007p_open.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
1008p_open.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
1009p_open.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
1010p_open.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
1011p_open.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
1012p_open.o: ../cryptlib.h p_open.c
1013p_seal.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
1014p_seal.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
1015p_seal.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
1016p_seal.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
1017p_seal.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
1018p_seal.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
1019p_seal.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
1020p_seal.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
1021p_seal.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
1022p_seal.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
1023p_seal.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
1024p_seal.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
1025p_seal.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
1026p_seal.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
1027p_seal.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
1028p_seal.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
1029p_seal.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
1030p_seal.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
1031p_seal.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
1032p_seal.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
1033p_seal.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_seal.c
1034p_sign.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
1035p_sign.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
1036p_sign.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
1037p_sign.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
1038p_sign.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
1039p_sign.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
1040p_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
1041p_sign.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
1042p_sign.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
1043p_sign.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
1044p_sign.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
1045p_sign.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
1046p_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
1047p_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
1048p_sign.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
1049p_sign.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
1050p_sign.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
1051p_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
1052p_sign.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
1053p_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
1054p_sign.o: ../cryptlib.h p_sign.c
1055p_verify.o: ../../e_os.h ../../include/openssl/aes.h
1056p_verify.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
1057p_verify.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
1058p_verify.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
1059p_verify.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
1060p_verify.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
1061p_verify.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
1062p_verify.o: ../../include/openssl/err.h ../../include/openssl/evp.h
1063p_verify.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
1064p_verify.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
1065p_verify.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
1066p_verify.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
1067p_verify.o: ../../include/openssl/opensslconf.h
1068p_verify.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
1069p_verify.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
1070p_verify.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
1071p_verify.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
1072p_verify.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
1073p_verify.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
1074p_verify.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
1075p_verify.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
1076p_verify.o: ../cryptlib.h p_verify.c
diff --git a/src/lib/libcrypto/evp/c_allc.c b/src/lib/libcrypto/evp/c_allc.c
index 341a958fd4..fc96812365 100644
--- a/src/lib/libcrypto/evp/c_allc.c
+++ b/src/lib/libcrypto/evp/c_allc.c
@@ -67,6 +67,8 @@ void OpenSSL_add_all_ciphers(void)
67 67
68#ifndef OPENSSL_NO_DES 68#ifndef OPENSSL_NO_DES
69 EVP_add_cipher(EVP_des_cfb()); 69 EVP_add_cipher(EVP_des_cfb());
70 EVP_add_cipher(EVP_des_cfb1());
71 EVP_add_cipher(EVP_des_cfb8());
70 EVP_add_cipher(EVP_des_ede_cfb()); 72 EVP_add_cipher(EVP_des_ede_cfb());
71 EVP_add_cipher(EVP_des_ede3_cfb()); 73 EVP_add_cipher(EVP_des_ede3_cfb());
72 74
@@ -150,6 +152,8 @@ void OpenSSL_add_all_ciphers(void)
150 EVP_add_cipher(EVP_aes_128_ecb()); 152 EVP_add_cipher(EVP_aes_128_ecb());
151 EVP_add_cipher(EVP_aes_128_cbc()); 153 EVP_add_cipher(EVP_aes_128_cbc());
152 EVP_add_cipher(EVP_aes_128_cfb()); 154 EVP_add_cipher(EVP_aes_128_cfb());
155 EVP_add_cipher(EVP_aes_128_cfb1());
156 EVP_add_cipher(EVP_aes_128_cfb8());
153 EVP_add_cipher(EVP_aes_128_ofb()); 157 EVP_add_cipher(EVP_aes_128_ofb());
154#if 0 158#if 0
155 EVP_add_cipher(EVP_aes_128_ctr()); 159 EVP_add_cipher(EVP_aes_128_ctr());
@@ -159,6 +163,8 @@ void OpenSSL_add_all_ciphers(void)
159 EVP_add_cipher(EVP_aes_192_ecb()); 163 EVP_add_cipher(EVP_aes_192_ecb());
160 EVP_add_cipher(EVP_aes_192_cbc()); 164 EVP_add_cipher(EVP_aes_192_cbc());
161 EVP_add_cipher(EVP_aes_192_cfb()); 165 EVP_add_cipher(EVP_aes_192_cfb());
166 EVP_add_cipher(EVP_aes_192_cfb1());
167 EVP_add_cipher(EVP_aes_192_cfb8());
162 EVP_add_cipher(EVP_aes_192_ofb()); 168 EVP_add_cipher(EVP_aes_192_ofb());
163#if 0 169#if 0
164 EVP_add_cipher(EVP_aes_192_ctr()); 170 EVP_add_cipher(EVP_aes_192_ctr());
@@ -168,6 +174,8 @@ void OpenSSL_add_all_ciphers(void)
168 EVP_add_cipher(EVP_aes_256_ecb()); 174 EVP_add_cipher(EVP_aes_256_ecb());
169 EVP_add_cipher(EVP_aes_256_cbc()); 175 EVP_add_cipher(EVP_aes_256_cbc());
170 EVP_add_cipher(EVP_aes_256_cfb()); 176 EVP_add_cipher(EVP_aes_256_cfb());
177 EVP_add_cipher(EVP_aes_256_cfb1());
178 EVP_add_cipher(EVP_aes_256_cfb8());
171 EVP_add_cipher(EVP_aes_256_ofb()); 179 EVP_add_cipher(EVP_aes_256_ofb());
172#if 0 180#if 0
173 EVP_add_cipher(EVP_aes_256_ctr()); 181 EVP_add_cipher(EVP_aes_256_ctr());
diff --git a/src/lib/libcrypto/evp/c_alld.c b/src/lib/libcrypto/evp/c_alld.c
index be91cdb037..aae7bf7482 100644
--- a/src/lib/libcrypto/evp/c_alld.c
+++ b/src/lib/libcrypto/evp/c_alld.c
@@ -75,7 +75,7 @@ void OpenSSL_add_all_digests(void)
75 EVP_add_digest_alias(SN_md5,"ssl2-md5"); 75 EVP_add_digest_alias(SN_md5,"ssl2-md5");
76 EVP_add_digest_alias(SN_md5,"ssl3-md5"); 76 EVP_add_digest_alias(SN_md5,"ssl3-md5");
77#endif 77#endif
78#ifndef OPENSSL_NO_SHA 78#if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA0)
79 EVP_add_digest(EVP_sha()); 79 EVP_add_digest(EVP_sha());
80#ifndef OPENSSL_NO_DSA 80#ifndef OPENSSL_NO_DSA
81 EVP_add_digest(EVP_dss()); 81 EVP_add_digest(EVP_dss());
diff --git a/src/lib/libcrypto/evp/evp_test.c b/src/lib/libcrypto/evp/evp_test.c
index 28460173f7..a624cfd248 100644
--- a/src/lib/libcrypto/evp/evp_test.c
+++ b/src/lib/libcrypto/evp/evp_test.c
@@ -136,7 +136,7 @@ static void test1(const EVP_CIPHER *c,const unsigned char *key,int kn,
136 const unsigned char *iv,int in, 136 const unsigned char *iv,int in,
137 const unsigned char *plaintext,int pn, 137 const unsigned char *plaintext,int pn,
138 const unsigned char *ciphertext,int cn, 138 const unsigned char *ciphertext,int cn,
139 int encdec) 139 int encdec,int multiplier)
140 { 140 {
141 EVP_CIPHER_CTX ctx; 141 EVP_CIPHER_CTX ctx;
142 unsigned char out[4096]; 142 unsigned char out[4096];
@@ -162,22 +162,25 @@ static void test1(const EVP_CIPHER *c,const unsigned char *key,int kn,
162 if(!EVP_EncryptInit_ex(&ctx,c,NULL,key,iv)) 162 if(!EVP_EncryptInit_ex(&ctx,c,NULL,key,iv))
163 { 163 {
164 fprintf(stderr,"EncryptInit failed\n"); 164 fprintf(stderr,"EncryptInit failed\n");
165 ERR_print_errors_fp(stderr);
165 test1_exit(10); 166 test1_exit(10);
166 } 167 }
167 EVP_CIPHER_CTX_set_padding(&ctx,0); 168 EVP_CIPHER_CTX_set_padding(&ctx,0);
168 169
169 if(!EVP_EncryptUpdate(&ctx,out,&outl,plaintext,pn)) 170 if(!EVP_EncryptUpdate(&ctx,out,&outl,plaintext,pn*multiplier))
170 { 171 {
171 fprintf(stderr,"Encrypt failed\n"); 172 fprintf(stderr,"Encrypt failed\n");
173 ERR_print_errors_fp(stderr);
172 test1_exit(6); 174 test1_exit(6);
173 } 175 }
174 if(!EVP_EncryptFinal_ex(&ctx,out+outl,&outl2)) 176 if(!EVP_EncryptFinal_ex(&ctx,out+outl,&outl2))
175 { 177 {
176 fprintf(stderr,"EncryptFinal failed\n"); 178 fprintf(stderr,"EncryptFinal failed\n");
179 ERR_print_errors_fp(stderr);
177 test1_exit(7); 180 test1_exit(7);
178 } 181 }
179 182
180 if(outl+outl2 != cn) 183 if(outl+outl2 != cn*multiplier)
181 { 184 {
182 fprintf(stderr,"Ciphertext length mismatch got %d expected %d\n", 185 fprintf(stderr,"Ciphertext length mismatch got %d expected %d\n",
183 outl+outl2,cn); 186 outl+outl2,cn);
@@ -198,22 +201,25 @@ static void test1(const EVP_CIPHER *c,const unsigned char *key,int kn,
198 if(!EVP_DecryptInit_ex(&ctx,c,NULL,key,iv)) 201 if(!EVP_DecryptInit_ex(&ctx,c,NULL,key,iv))
199 { 202 {
200 fprintf(stderr,"DecryptInit failed\n"); 203 fprintf(stderr,"DecryptInit failed\n");
204 ERR_print_errors_fp(stderr);
201 test1_exit(11); 205 test1_exit(11);
202 } 206 }
203 EVP_CIPHER_CTX_set_padding(&ctx,0); 207 EVP_CIPHER_CTX_set_padding(&ctx,0);
204 208
205 if(!EVP_DecryptUpdate(&ctx,out,&outl,ciphertext,cn)) 209 if(!EVP_DecryptUpdate(&ctx,out,&outl,ciphertext,cn*multiplier))
206 { 210 {
207 fprintf(stderr,"Decrypt failed\n"); 211 fprintf(stderr,"Decrypt failed\n");
212 ERR_print_errors_fp(stderr);
208 test1_exit(6); 213 test1_exit(6);
209 } 214 }
210 if(!EVP_DecryptFinal_ex(&ctx,out+outl,&outl2)) 215 if(!EVP_DecryptFinal_ex(&ctx,out+outl,&outl2))
211 { 216 {
212 fprintf(stderr,"DecryptFinal failed\n"); 217 fprintf(stderr,"DecryptFinal failed\n");
218 ERR_print_errors_fp(stderr);
213 test1_exit(7); 219 test1_exit(7);
214 } 220 }
215 221
216 if(outl+outl2 != cn) 222 if(outl+outl2 != cn*multiplier)
217 { 223 {
218 fprintf(stderr,"Plaintext length mismatch got %d expected %d\n", 224 fprintf(stderr,"Plaintext length mismatch got %d expected %d\n",
219 outl+outl2,cn); 225 outl+outl2,cn);
@@ -238,7 +244,7 @@ static int test_cipher(const char *cipher,const unsigned char *key,int kn,
238 const unsigned char *iv,int in, 244 const unsigned char *iv,int in,
239 const unsigned char *plaintext,int pn, 245 const unsigned char *plaintext,int pn,
240 const unsigned char *ciphertext,int cn, 246 const unsigned char *ciphertext,int cn,
241 int encdec) 247 int encdec,int multiplier)
242 { 248 {
243 const EVP_CIPHER *c; 249 const EVP_CIPHER *c;
244 250
@@ -246,7 +252,7 @@ static int test_cipher(const char *cipher,const unsigned char *key,int kn,
246 if(!c) 252 if(!c)
247 return 0; 253 return 0;
248 254
249 test1(c,key,kn,iv,in,plaintext,pn,ciphertext,cn,encdec); 255 test1(c,key,kn,iv,in,plaintext,pn,ciphertext,cn,encdec,multiplier);
250 256
251 return 1; 257 return 1;
252 } 258 }
@@ -272,16 +278,19 @@ static int test_digest(const char *digest,
272 if(!EVP_DigestInit_ex(&ctx,d, NULL)) 278 if(!EVP_DigestInit_ex(&ctx,d, NULL))
273 { 279 {
274 fprintf(stderr,"DigestInit failed\n"); 280 fprintf(stderr,"DigestInit failed\n");
281 ERR_print_errors_fp(stderr);
275 EXIT(100); 282 EXIT(100);
276 } 283 }
277 if(!EVP_DigestUpdate(&ctx,plaintext,pn)) 284 if(!EVP_DigestUpdate(&ctx,plaintext,pn))
278 { 285 {
279 fprintf(stderr,"DigestUpdate failed\n"); 286 fprintf(stderr,"DigestUpdate failed\n");
287 ERR_print_errors_fp(stderr);
280 EXIT(101); 288 EXIT(101);
281 } 289 }
282 if(!EVP_DigestFinal_ex(&ctx,md,&mdn)) 290 if(!EVP_DigestFinal_ex(&ctx,md,&mdn))
283 { 291 {
284 fprintf(stderr,"DigestFinal failed\n"); 292 fprintf(stderr,"DigestFinal failed\n");
293 ERR_print_errors_fp(stderr);
285 EXIT(101); 294 EXIT(101);
286 } 295 }
287 EVP_MD_CTX_cleanup(&ctx); 296 EVP_MD_CTX_cleanup(&ctx);
@@ -359,6 +368,7 @@ int main(int argc,char **argv)
359 unsigned char *iv,*key,*plaintext,*ciphertext; 368 unsigned char *iv,*key,*plaintext,*ciphertext;
360 int encdec; 369 int encdec;
361 int kn,in,pn,cn; 370 int kn,in,pn,cn;
371 int multiplier=1;
362 372
363 if(!fgets((char *)line,sizeof line,f)) 373 if(!fgets((char *)line,sizeof line,f))
364 break; 374 break;
@@ -383,7 +393,15 @@ int main(int argc,char **argv)
383 pn=convert(plaintext); 393 pn=convert(plaintext);
384 cn=convert(ciphertext); 394 cn=convert(ciphertext);
385 395
386 if(!test_cipher(cipher,key,kn,iv,in,plaintext,pn,ciphertext,cn,encdec) 396 if(strchr(cipher,'*'))
397 {
398 p=cipher;
399 sstrsep(&p,"*");
400 multiplier=atoi(sstrsep(&p,"*"));
401 }
402
403 if(!test_cipher(cipher,key,kn,iv,in,plaintext,pn,ciphertext,cn,encdec,
404 multiplier)
387 && !test_digest(cipher,plaintext,pn,ciphertext,cn)) 405 && !test_digest(cipher,plaintext,pn,ciphertext,cn))
388 { 406 {
389 fprintf(stderr,"Can't find %s\n",cipher); 407 fprintf(stderr,"Can't find %s\n",cipher);
diff --git a/src/lib/libcrypto/evp/evptests.txt b/src/lib/libcrypto/evp/evptests.txt
index 80bd9c7765..dfe91a5bc0 100644
--- a/src/lib/libcrypto/evp/evptests.txt
+++ b/src/lib/libcrypto/evp/evptests.txt
@@ -92,7 +92,102 @@ AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:000
92AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:F58C4C04D6E5F1BA779EABFB5F7BFBD6:AE2D8A571E03AC9C9EB76FAC45AF8E51:9CFC4E967EDB808D679F777BC6702C7D 92AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:F58C4C04D6E5F1BA779EABFB5F7BFBD6:AE2D8A571E03AC9C9EB76FAC45AF8E51:9CFC4E967EDB808D679F777BC6702C7D
93AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:9CFC4E967EDB808D679F777BC6702C7D:30C81C46A35CE411E5FBC1191A0A52EF:39F23369A9D9BACFA530E26304231461 93AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:9CFC4E967EDB808D679F777BC6702C7D:30C81C46A35CE411E5FBC1191A0A52EF:39F23369A9D9BACFA530E26304231461
94AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:39F23369A9D9BACFA530E26304231461:F69F2445DF4F9B17AD2B417BE66C3710:B2EB05E2C39BE9FCDA6C19078C6A9D1B 94AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:39F23369A9D9BACFA530E26304231461:F69F2445DF4F9B17AD2B417BE66C3710:B2EB05E2C39BE9FCDA6C19078C6A9D1B
95# We don't support CFB{1,8}-AESxxx.{En,De}crypt 95
96# CFB1-AES128.Encrypt
97
98AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:00:00:1
99AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:00020406080a0c0e10121416181a1c1e:80:80:1
100AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0004080c1014181c2024282c3034383d:80:80:1
101AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0008101820283038404850586068707b:00:00:1
102AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:00102030405060708090a0b0c0d0e0f6:80:80:1
103AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0020406080a0c0e10121416181a1c1ed:00:00:1
104AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:004080c1014181c2024282c3034383da:80:00:1
105AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:008101820283038404850586068707b4:80:00:1
106AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0102030405060708090a0b0c0d0e0f68:80:80:1
107AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:020406080a0c0e10121416181a1c1ed1:80:00:1
108AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:04080c1014181c2024282c3034383da2:00:80:1
109AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:08101820283038404850586068707b45:00:80:1
110AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:102030405060708090a0b0c0d0e0f68b:00:00:1
111AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:20406080a0c0e10121416181a1c1ed16:00:00:1
112AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:4080c1014181c2024282c3034383da2c:00:80:1
113AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:8101820283038404850586068707b459:80:80:1
114# all of the above packed into one...
115# in: 0110 1011 1100 0001 = 6bc1
116# out: 0110 1000 1011 0011 = 68b3
117AES-128-CFB1*8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6bc1:68b3:1
118
119# CFB1-AES128.Decrypt
120AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:00:00:0
121AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:00020406080a0c0e10121416181a1c1e:80:80:0
122AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0004080c1014181c2024282c3034383d:80:80:0
123AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0008101820283038404850586068707b:00:00:0
124AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:00102030405060708090a0b0c0d0e0f6:80:80:0
125AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0020406080a0c0e10121416181a1c1ed:00:00:0
126AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:004080c1014181c2024282c3034383da:80:00:0
127AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:008101820283038404850586068707b4:80:00:0
128AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0102030405060708090a0b0c0d0e0f68:80:80:0
129AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:020406080a0c0e10121416181a1c1ed1:80:00:0
130AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:04080c1014181c2024282c3034383da2:00:80:0
131AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:08101820283038404850586068707b45:00:80:0
132AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:102030405060708090a0b0c0d0e0f68b:00:00:0
133AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:20406080a0c0e10121416181a1c1ed16:00:00:0
134AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:4080c1014181c2024282c3034383da2c:00:80:0
135AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:8101820283038404850586068707b459:80:80:0
136# all of the above packed into one...
137# in: 0110 1000 1011 0011 = 68b3
138# out: 0110 1011 1100 0001 = 6bc1
139AES-128-CFB1*8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6bc1:68b3:0
140
141# TODO: CFB1-AES192 and 256
142
143# CFB8-AES128.Encrypt
144
145AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6b:3b:1
146AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0102030405060708090a0b0c0d0e0f3b:c1:79:1
147AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:02030405060708090a0b0c0d0e0f3b79:be:42:1
148AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:030405060708090a0b0c0d0e0f3b7942:e2:4c:1
149AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0405060708090a0b0c0d0e0f3b79424c:2e:9c:1
150AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:05060708090a0b0c0d0e0f3b79424c9c:40:0d:1
151AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:060708090a0b0c0d0e0f3b79424c9c0d:9f:d4:1
152AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0708090a0b0c0d0e0f3b79424c9c0dd4:96:36:1
153AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:08090a0b0c0d0e0f3b79424c9c0dd436:e9:ba:1
154AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:090a0b0c0d0e0f3b79424c9c0dd436ba:3d:ce:1
155AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0a0b0c0d0e0f3b79424c9c0dd436bace:7e:9e:1
156AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0b0c0d0e0f3b79424c9c0dd436bace9e:11:0e:1
157AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0c0d0e0f3b79424c9c0dd436bace9e0e:73:d4:1
158AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0d0e0f3b79424c9c0dd436bace9e0ed4:93:58:1
159AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0e0f3b79424c9c0dd436bace9e0ed458:17:6a:1
160AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0f3b79424c9c0dd436bace9e0ed4586a:2a:4f:1
161AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:3b79424c9c0dd436bace9e0ed4586a4f:ae:32:1
162AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:79424c9c0dd436bace9e0ed4586a4f32:2d:b9:1
163# all of the above packed into one
164AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6bc1bee22e409f96e93d7e117393172aae2d:3b79424c9c0dd436bace9e0ed4586a4f32b9:1
165
166# CFB8-AES128.Decrypt
167
168AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6b:3b:0
169AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0102030405060708090a0b0c0d0e0f3b:c1:79:0
170AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:02030405060708090a0b0c0d0e0f3b79:be:42:0
171AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:030405060708090a0b0c0d0e0f3b7942:e2:4c:0
172AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0405060708090a0b0c0d0e0f3b79424c:2e:9c:0
173AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:05060708090a0b0c0d0e0f3b79424c9c:40:0d:0
174AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:060708090a0b0c0d0e0f3b79424c9c0d:9f:d4:0
175AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0708090a0b0c0d0e0f3b79424c9c0dd4:96:36:0
176AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:08090a0b0c0d0e0f3b79424c9c0dd436:e9:ba:0
177AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:090a0b0c0d0e0f3b79424c9c0dd436ba:3d:ce:0
178AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0a0b0c0d0e0f3b79424c9c0dd436bace:7e:9e:0
179AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0b0c0d0e0f3b79424c9c0dd436bace9e:11:0e:0
180AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0c0d0e0f3b79424c9c0dd436bace9e0e:73:d4:0
181AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0d0e0f3b79424c9c0dd436bace9e0ed4:93:58:0
182AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0e0f3b79424c9c0dd436bace9e0ed458:17:6a:0
183AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0f3b79424c9c0dd436bace9e0ed4586a:2a:4f:0
184AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:3b79424c9c0dd436bace9e0ed4586a4f:ae:32:0
185AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:79424c9c0dd436bace9e0ed4586a4f32:2d:b9:0
186# all of the above packed into one
187AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6bc1bee22e409f96e93d7e117393172aae2d:3b79424c9c0dd436bace9e0ed4586a4f32b9:0
188
189# TODO: 192 and 256 bit keys
190
96# For all CFB128 encrypts and decrypts, the transformed sequence is 191# For all CFB128 encrypts and decrypts, the transformed sequence is
97# AES-bits-CFB:key:IV/ciphertext':plaintext:ciphertext:encdec 192# AES-bits-CFB:key:IV/ciphertext':plaintext:ciphertext:encdec
98# CFB128-AES128.Encrypt 193# CFB128-AES128.Encrypt
@@ -174,6 +269,16 @@ DESX-CBC:0123456789abcdeff1e0d3c2b5a49786fedcba9876543210:fedcba9876543210:37363
174# DES EDE3 CBC tests (from destest) 269# DES EDE3 CBC tests (from destest)
175DES-EDE3-CBC:0123456789abcdeff1e0d3c2b5a49786fedcba9876543210:fedcba9876543210:37363534333231204E6F77206973207468652074696D6520666F722000000000:3FE301C962AC01D02213763C1CBD4CDC799657C064ECF5D41C673812CFDE9675 270DES-EDE3-CBC:0123456789abcdeff1e0d3c2b5a49786fedcba9876543210:fedcba9876543210:37363534333231204E6F77206973207468652074696D6520666F722000000000:3FE301C962AC01D02213763C1CBD4CDC799657C064ECF5D41C673812CFDE9675
176 271
272# DES CFB1 from FIPS 81
273# plaintext: 0100 1110 0110 1111 0111 0111 = 4e6f77
274# ciphertext: 1100 1101 0001 1110 1100 1001 = cd1ec9
275
276DES-CFB1*8:0123456789abcdef:1234567890abcdef:4e6f77:cd1ec9
277
278# DES CFB8 from FIPS 81
279
280DES-CFB8:0123456789abcdef:1234567890abcdef:4e6f7720697320746865:f31fda07011462ee187f
281
177# RC4 tests (from rc4test) 282# RC4 tests (from rc4test)
178RC4:0123456789abcdef0123456789abcdef::0123456789abcdef:75b7878099e0c596 283RC4:0123456789abcdef0123456789abcdef::0123456789abcdef:75b7878099e0c596
179RC4:0123456789abcdef0123456789abcdef::0000000000000000:7494c2e7104b0879 284RC4:0123456789abcdef0123456789abcdef::0000000000000000:7494c2e7104b0879
diff --git a/src/lib/libcrypto/evp/m_md2.c b/src/lib/libcrypto/evp/m_md2.c
index 50914c83b3..0df48e5199 100644
--- a/src/lib/libcrypto/evp/m_md2.c
+++ b/src/lib/libcrypto/evp/m_md2.c
@@ -60,6 +60,7 @@
60#include <stdio.h> 60#include <stdio.h>
61#include "cryptlib.h" 61#include "cryptlib.h"
62#include <openssl/evp.h> 62#include <openssl/evp.h>
63#include "evp_locl.h"
63#include <openssl/objects.h> 64#include <openssl/objects.h>
64#include <openssl/x509.h> 65#include <openssl/x509.h>
65#include <openssl/md2.h> 66#include <openssl/md2.h>
diff --git a/src/lib/libcrypto/evp/m_mdc2.c b/src/lib/libcrypto/evp/m_mdc2.c
index 9f6467c931..62de1336b8 100644
--- a/src/lib/libcrypto/evp/m_mdc2.c
+++ b/src/lib/libcrypto/evp/m_mdc2.c
@@ -60,6 +60,7 @@
60#include <stdio.h> 60#include <stdio.h>
61#include "cryptlib.h" 61#include "cryptlib.h"
62#include <openssl/evp.h> 62#include <openssl/evp.h>
63#include "evp_locl.h"
63#include <openssl/objects.h> 64#include <openssl/objects.h>
64#include <openssl/x509.h> 65#include <openssl/x509.h>
65#include <openssl/mdc2.h> 66#include <openssl/mdc2.h>
diff --git a/src/lib/libcrypto/evp/m_sha.c b/src/lib/libcrypto/evp/m_sha.c
index 10697c7ed3..d1785e5f74 100644
--- a/src/lib/libcrypto/evp/m_sha.c
+++ b/src/lib/libcrypto/evp/m_sha.c
@@ -56,10 +56,11 @@
56 * [including the GNU Public Licence.] 56 * [including the GNU Public Licence.]
57 */ 57 */
58 58
59#ifndef OPENSSL_NO_SHA 59#if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA0)
60#include <stdio.h> 60#include <stdio.h>
61#include "cryptlib.h" 61#include "cryptlib.h"
62#include <openssl/evp.h> 62#include <openssl/evp.h>
63#include "evp_locl.h"
63#include <openssl/objects.h> 64#include <openssl/objects.h>
64#include <openssl/x509.h> 65#include <openssl/x509.h>
65 66
diff --git a/src/lib/libcrypto/hmac/Makefile b/src/lib/libcrypto/hmac/Makefile
new file mode 100644
index 0000000000..f634dab79d
--- /dev/null
+++ b/src/lib/libcrypto/hmac/Makefile
@@ -0,0 +1,99 @@
1#
2# SSLeay/crypto/md/Makefile
3#
4
5DIR= hmac
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=hmactest.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=hmac.c
26LIBOBJ=hmac.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= hmac.h
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80hmac.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
81hmac.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
82hmac.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
83hmac.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
84hmac.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
85hmac.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
86hmac.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
87hmac.o: ../../include/openssl/evp.h ../../include/openssl/hmac.h
88hmac.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
89hmac.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
90hmac.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
91hmac.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
92hmac.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
93hmac.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc2.h
94hmac.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
95hmac.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
96hmac.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
97hmac.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
98hmac.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
99hmac.o: ../cryptlib.h hmac.c
diff --git a/src/lib/libcrypto/idea/Makefile b/src/lib/libcrypto/idea/Makefile
new file mode 100644
index 0000000000..f652783027
--- /dev/null
+++ b/src/lib/libcrypto/idea/Makefile
@@ -0,0 +1,92 @@
1#
2# SSLeay/crypto/idea/Makefile
3#
4
5DIR= idea
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=ideatest.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=i_cbc.c i_cfb64.c i_ofb64.c i_ecb.c i_skey.c
26LIBOBJ=i_cbc.o i_cfb64.o i_ofb64.o i_ecb.o i_skey.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= idea.h
31HEADER= idea_lcl.h $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80i_cbc.o: ../../include/openssl/idea.h ../../include/openssl/opensslconf.h
81i_cbc.o: i_cbc.c idea_lcl.h
82i_cfb64.o: ../../include/openssl/idea.h ../../include/openssl/opensslconf.h
83i_cfb64.o: i_cfb64.c idea_lcl.h
84i_ecb.o: ../../include/openssl/idea.h ../../include/openssl/opensslconf.h
85i_ecb.o: ../../include/openssl/opensslv.h i_ecb.c idea_lcl.h
86i_ofb64.o: ../../include/openssl/idea.h ../../include/openssl/opensslconf.h
87i_ofb64.o: i_ofb64.c idea_lcl.h
88i_skey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
89i_skey.o: ../../include/openssl/idea.h ../../include/openssl/opensslconf.h
90i_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
91i_skey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
92i_skey.o: i_skey.c idea_lcl.h
diff --git a/src/lib/libcrypto/krb5/Makefile b/src/lib/libcrypto/krb5/Makefile
new file mode 100644
index 0000000000..25cc695e8d
--- /dev/null
+++ b/src/lib/libcrypto/krb5/Makefile
@@ -0,0 +1,88 @@
1#
2# OpenSSL/krb5/Makefile
3#
4
5DIR= krb5
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile README
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= krb5_asn.c
26
27LIBOBJ= krb5_asn.o
28
29SRC= $(LIBSRC)
30
31EXHEADER= krb5_asn.h
32HEADER= $(EXHEADER)
33
34ALL= $(GENERAL) $(SRC) $(HEADER)
35
36top:
37 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
38
39all: lib
40
41lib: $(LIBOBJ)
42 $(AR) $(LIB) $(LIBOBJ)
43 $(RANLIB) $(LIB) || echo Never mind.
44 @touch lib
45
46files:
47 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
48
49links:
50 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
51 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
52 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
53
54install:
55 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
56 do \
57 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
58 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
59 done;
60
61tags:
62 ctags $(SRC)
63
64tests:
65
66lint:
67 lint -DLINT $(INCLUDES) $(SRC)>fluff
68
69depend:
70 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(LIBSRC)
71
72dclean:
73 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
74 mv -f Makefile.new $(MAKEFILE)
75
76clean:
77 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
78
79# DO NOT DELETE THIS LINE -- make depend depends on it.
80
81krb5_asn.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
82krb5_asn.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
83krb5_asn.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
84krb5_asn.o: ../../include/openssl/krb5_asn.h
85krb5_asn.o: ../../include/openssl/opensslconf.h
86krb5_asn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
87krb5_asn.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
88krb5_asn.o: ../../include/openssl/symhacks.h krb5_asn.c
diff --git a/src/lib/libcrypto/lhash/Makefile b/src/lib/libcrypto/lhash/Makefile
new file mode 100644
index 0000000000..d325a1644d
--- /dev/null
+++ b/src/lib/libcrypto/lhash/Makefile
@@ -0,0 +1,91 @@
1#
2# SSLeay/crypto/lhash/Makefile
3#
4
5DIR= lhash
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=lhash.c lh_stats.c
26LIBOBJ=lhash.o lh_stats.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= lhash.h
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80lh_stats.o: ../../e_os.h ../../include/openssl/bio.h
81lh_stats.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
82lh_stats.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
83lh_stats.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
84lh_stats.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
85lh_stats.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
86lh_stats.o: ../cryptlib.h lh_stats.c
87lhash.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
88lhash.o: ../../include/openssl/e_os2.h ../../include/openssl/lhash.h
89lhash.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
90lhash.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
91lhash.o: ../../include/openssl/symhacks.h lhash.c
diff --git a/src/lib/libcrypto/md2/Makefile b/src/lib/libcrypto/md2/Makefile
new file mode 100644
index 0000000000..90628511da
--- /dev/null
+++ b/src/lib/libcrypto/md2/Makefile
@@ -0,0 +1,93 @@
1#
2# SSLeay/crypto/md/Makefile
3#
4
5DIR= md2
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=md2test.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=md2_dgst.c md2_one.c
26LIBOBJ=md2_dgst.o md2_one.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= md2.h
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80md2_dgst.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
81md2_dgst.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
82md2_dgst.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
83md2_dgst.o: ../../include/openssl/md2.h ../../include/openssl/opensslconf.h
84md2_dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
85md2_dgst.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
86md2_dgst.o: md2_dgst.c
87md2_one.o: ../../e_os.h ../../include/openssl/bio.h
88md2_one.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
89md2_one.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
90md2_one.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
91md2_one.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
92md2_one.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
93md2_one.o: ../../include/openssl/symhacks.h ../cryptlib.h md2_one.c
diff --git a/src/lib/libcrypto/md2/md2.h b/src/lib/libcrypto/md2/md2.h
index ad9241455c..d0ef9da08e 100644
--- a/src/lib/libcrypto/md2/md2.h
+++ b/src/lib/libcrypto/md2/md2.h
@@ -80,6 +80,9 @@ typedef struct MD2state_st
80 } MD2_CTX; 80 } MD2_CTX;
81 81
82const char *MD2_options(void); 82const char *MD2_options(void);
83#ifdef OPENSSL_FIPS
84int private_MD2_Init(MD2_CTX *c);
85#endif
83int MD2_Init(MD2_CTX *c); 86int MD2_Init(MD2_CTX *c);
84int MD2_Update(MD2_CTX *c, const unsigned char *data, unsigned long len); 87int MD2_Update(MD2_CTX *c, const unsigned char *data, unsigned long len);
85int MD2_Final(unsigned char *md, MD2_CTX *c); 88int MD2_Final(unsigned char *md, MD2_CTX *c);
diff --git a/src/lib/libcrypto/md2/md2_dgst.c b/src/lib/libcrypto/md2/md2_dgst.c
index ecb64f0ec4..8124acd687 100644
--- a/src/lib/libcrypto/md2/md2_dgst.c
+++ b/src/lib/libcrypto/md2/md2_dgst.c
@@ -62,6 +62,8 @@
62#include <openssl/md2.h> 62#include <openssl/md2.h>
63#include <openssl/opensslv.h> 63#include <openssl/opensslv.h>
64#include <openssl/crypto.h> 64#include <openssl/crypto.h>
65#include <openssl/fips.h>
66#include <openssl/err.h>
65 67
66const char *MD2_version="MD2" OPENSSL_VERSION_PTEXT; 68const char *MD2_version="MD2" OPENSSL_VERSION_PTEXT;
67 69
@@ -116,7 +118,7 @@ const char *MD2_options(void)
116 return("md2(int)"); 118 return("md2(int)");
117 } 119 }
118 120
119int MD2_Init(MD2_CTX *c) 121FIPS_NON_FIPS_MD_Init(MD2)
120 { 122 {
121 c->num=0; 123 c->num=0;
122 memset(c->state,0,sizeof c->state); 124 memset(c->state,0,sizeof c->state);
diff --git a/src/lib/libcrypto/md4/Makefile b/src/lib/libcrypto/md4/Makefile
new file mode 100644
index 0000000000..0b7c8d7ad8
--- /dev/null
+++ b/src/lib/libcrypto/md4/Makefile
@@ -0,0 +1,92 @@
1#
2# SSLeay/crypto/md4/Makefile
3#
4
5DIR= md4
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES=
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP=/usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18
19CFLAGS= $(INCLUDES) $(CFLAG)
20
21GENERAL=Makefile
22TEST=md4test.c
23APPS=md4.c
24
25LIB=$(TOP)/libcrypto.a
26LIBSRC=md4_dgst.c md4_one.c
27LIBOBJ=md4_dgst.o md4_one.o
28
29SRC= $(LIBSRC)
30
31EXHEADER= md4.h
32HEADER= md4_locl.h $(EXHEADER)
33
34ALL= $(GENERAL) $(SRC) $(HEADER)
35
36top:
37 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
38
39all: lib
40
41lib: $(LIBOBJ)
42 $(AR) $(LIB) $(LIBOBJ)
43 $(RANLIB) $(LIB) || echo Never mind.
44 @touch lib
45
46files:
47 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
48
49links:
50 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
51 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
52 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
53
54install:
55 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
56 do \
57 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
58 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
59 done;
60
61tags:
62 ctags $(SRC)
63
64tests:
65
66lint:
67 lint -DLINT $(INCLUDES) $(SRC)>fluff
68
69depend:
70 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
71
72dclean:
73 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
74 mv -f Makefile.new $(MAKEFILE)
75
76clean:
77 rm -f asm/mx86unix.cpp *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
78
79# DO NOT DELETE THIS LINE -- make depend depends on it.
80
81md4_dgst.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
82md4_dgst.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
83md4_dgst.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
84md4_dgst.o: ../../include/openssl/md4.h ../../include/openssl/opensslconf.h
85md4_dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
86md4_dgst.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
87md4_dgst.o: ../md32_common.h md4_dgst.c md4_locl.h
88md4_one.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
89md4_one.o: ../../include/openssl/md4.h ../../include/openssl/opensslconf.h
90md4_one.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
91md4_one.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
92md4_one.o: md4_one.c
diff --git a/src/lib/libcrypto/md5/Makefile b/src/lib/libcrypto/md5/Makefile
new file mode 100644
index 0000000000..832446fff2
--- /dev/null
+++ b/src/lib/libcrypto/md5/Makefile
@@ -0,0 +1,128 @@
1#
2# SSLeay/crypto/md5/Makefile
3#
4
5DIR= md5
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES=-I.. -I$(TOP) -I../../include
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP=/usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18
19MD5_ASM_OBJ=
20
21CFLAGS= $(INCLUDES) $(CFLAG)
22ASFLAGS= $(INCLUDES) $(ASFLAG)
23
24GENERAL=Makefile
25TEST=md5test.c
26APPS=
27
28LIB=$(TOP)/libcrypto.a
29LIBSRC=md5_dgst.c md5_one.c
30LIBOBJ=md5_dgst.o md5_one.o $(MD5_ASM_OBJ)
31
32SRC= $(LIBSRC)
33
34EXHEADER= md5.h
35HEADER= md5_locl.h $(EXHEADER)
36
37ALL= $(GENERAL) $(SRC) $(HEADER)
38
39top:
40 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
41
42all: lib
43
44lib: $(LIBOBJ)
45 $(AR) $(LIB) $(LIBOBJ)
46 $(RANLIB) $(LIB) || echo Never mind.
47 @touch lib
48
49# elf
50asm/mx86-elf.s: asm/md5-586.pl ../perlasm/x86asm.pl
51 (cd asm; $(PERL) md5-586.pl elf $(CFLAGS) > mx86-elf.s)
52
53# a.out
54asm/mx86-out.o: asm/mx86unix.cpp
55 $(CPP) -DOUT asm/mx86unix.cpp | as -o asm/mx86-out.o
56
57# bsdi
58asm/mx86bsdi.o: asm/mx86unix.cpp
59 $(CPP) -DBSDI asm/mx86unix.cpp | sed 's/ :/:/' | as -o asm/mx86bsdi.o
60
61asm/mx86unix.cpp: asm/md5-586.pl ../perlasm/x86asm.pl
62 (cd asm; $(PERL) md5-586.pl cpp >mx86unix.cpp)
63
64asm/md5-sparcv8plus.o: asm/md5-sparcv9.S
65 $(CC) $(ASFLAGS) -DMD5_BLOCK_DATA_ORDER -c \
66 -o asm/md5-sparcv8plus.o asm/md5-sparcv9.S
67
68# Old GNU assembler doesn't understand V9 instructions, so we
69# hire /usr/ccs/bin/as to do the job. Note that option is called
70# *-gcc27, but even gcc 2>=8 users may experience similar problem
71# if they didn't bother to upgrade GNU assembler. Such users should
72# not choose this option, but be adviced to *remove* GNU assembler
73# or upgrade it.
74asm/md5-sparcv8plus-gcc27.o: asm/md5-sparcv9.S
75 $(CC) $(ASFLAGS) -DMD5_BLOCK_DATA_ORDER -E asm/md5-sparcv9.S | \
76 /usr/ccs/bin/as -xarch=v8plus - -o asm/md5-sparcv8plus-gcc27.o
77
78asm/md5-sparcv9.o: asm/md5-sparcv9.S
79 $(CC) $(ASFLAGS) -DMD5_BLOCK_DATA_ORDER -c \
80 -o asm/md5-sparcv9.o asm/md5-sparcv9.S
81
82files:
83 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
84
85links:
86 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
87 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
88 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
89
90install:
91 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
92 do \
93 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
94 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
95 done;
96
97tags:
98 ctags $(SRC)
99
100tests:
101
102lint:
103 lint -DLINT $(INCLUDES) $(SRC)>fluff
104
105depend:
106 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
107
108dclean:
109 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
110 mv -f Makefile.new $(MAKEFILE)
111
112clean:
113 rm -f asm/mx86unix.cpp asm/*-elf.* *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
114
115# DO NOT DELETE THIS LINE -- make depend depends on it.
116
117md5_dgst.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
118md5_dgst.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
119md5_dgst.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
120md5_dgst.o: ../../include/openssl/md5.h ../../include/openssl/opensslconf.h
121md5_dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
122md5_dgst.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
123md5_dgst.o: ../md32_common.h md5_dgst.c md5_locl.h
124md5_one.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
125md5_one.o: ../../include/openssl/md5.h ../../include/openssl/opensslconf.h
126md5_one.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
127md5_one.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
128md5_one.o: md5_one.c
diff --git a/src/lib/libcrypto/mdc2/Makefile b/src/lib/libcrypto/mdc2/Makefile
new file mode 100644
index 0000000000..38c785bf95
--- /dev/null
+++ b/src/lib/libcrypto/mdc2/Makefile
@@ -0,0 +1,98 @@
1#
2# SSLeay/crypto/mdc2/Makefile
3#
4
5DIR= mdc2
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST= mdc2test.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=mdc2dgst.c mdc2_one.c
26LIBOBJ=mdc2dgst.o mdc2_one.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= mdc2.h
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80mdc2_one.o: ../../e_os.h ../../include/openssl/bio.h
81mdc2_one.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
82mdc2_one.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
83mdc2_one.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
84mdc2_one.o: ../../include/openssl/lhash.h ../../include/openssl/mdc2.h
85mdc2_one.o: ../../include/openssl/opensslconf.h
86mdc2_one.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
87mdc2_one.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
88mdc2_one.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
89mdc2_one.o: ../cryptlib.h mdc2_one.c
90mdc2dgst.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
91mdc2dgst.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
92mdc2dgst.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
93mdc2dgst.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
94mdc2dgst.o: ../../include/openssl/mdc2.h ../../include/openssl/opensslconf.h
95mdc2dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
96mdc2dgst.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
97mdc2dgst.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
98mdc2dgst.o: mdc2dgst.c
diff --git a/src/lib/libcrypto/mdc2/mdc2.h b/src/lib/libcrypto/mdc2/mdc2.h
index 793a8a0f13..4cba101f37 100644
--- a/src/lib/libcrypto/mdc2/mdc2.h
+++ b/src/lib/libcrypto/mdc2/mdc2.h
@@ -80,7 +80,9 @@ typedef struct mdc2_ctx_st
80 int pad_type; /* either 1 or 2, default 1 */ 80 int pad_type; /* either 1 or 2, default 1 */
81 } MDC2_CTX; 81 } MDC2_CTX;
82 82
83 83#ifdef OPENSSL_FIPS
84int private_MDC2_Init(MDC2_CTX *c);
85#endif
84int MDC2_Init(MDC2_CTX *c); 86int MDC2_Init(MDC2_CTX *c);
85int MDC2_Update(MDC2_CTX *c, const unsigned char *data, unsigned long len); 87int MDC2_Update(MDC2_CTX *c, const unsigned char *data, unsigned long len);
86int MDC2_Final(unsigned char *md, MDC2_CTX *c); 88int MDC2_Final(unsigned char *md, MDC2_CTX *c);
diff --git a/src/lib/libcrypto/o_str.h b/src/lib/libcrypto/o_str.h
new file mode 100644
index 0000000000..4a70a9e00b
--- /dev/null
+++ b/src/lib/libcrypto/o_str.h
@@ -0,0 +1,67 @@
1/* crypto/o_str.h -*- mode:C; c-file-style: "eay" -*- */
2/* Written by Richard Levitte (richard@levitte.org) for the OpenSSL
3 * project 2003.
4 */
5/* ====================================================================
6 * Copyright (c) 2003 The OpenSSL Project. All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 *
12 * 1. Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 *
15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in
17 * the documentation and/or other materials provided with the
18 * distribution.
19 *
20 * 3. All advertising materials mentioning features or use of this
21 * software must display the following acknowledgment:
22 * "This product includes software developed by the OpenSSL Project
23 * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
24 *
25 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
26 * endorse or promote products derived from this software without
27 * prior written permission. For written permission, please contact
28 * licensing@OpenSSL.org.
29 *
30 * 5. Products derived from this software may not be called "OpenSSL"
31 * nor may "OpenSSL" appear in their names without prior written
32 * permission of the OpenSSL Project.
33 *
34 * 6. Redistributions of any form whatsoever must retain the following
35 * acknowledgment:
36 * "This product includes software developed by the OpenSSL Project
37 * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
38 *
39 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
40 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
41 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
42 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
43 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
44 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
45 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
46 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
47 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
48 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
49 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
50 * OF THE POSSIBILITY OF SUCH DAMAGE.
51 * ====================================================================
52 *
53 * This product includes cryptographic software written by Eric Young
54 * (eay@cryptsoft.com). This product includes software written by Tim
55 * Hudson (tjh@cryptsoft.com).
56 *
57 */
58
59#ifndef HEADER_O_STR_H
60#define HEADER_O_STR_H
61
62#include <stddef.h> /* to get size_t */
63
64int OPENSSL_strcasecmp(const char *str1, const char *str2);
65int OPENSSL_strncasecmp(const char *str1, const char *str2, size_t n);
66
67#endif
diff --git a/src/lib/libcrypto/objects/Makefile b/src/lib/libcrypto/objects/Makefile
new file mode 100644
index 0000000000..e449147129
--- /dev/null
+++ b/src/lib/libcrypto/objects/Makefile
@@ -0,0 +1,122 @@
1#
2# SSLeay/crypto/objects/Makefile
3#
4
5DIR= objects
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17PERL= perl
18
19CFLAGS= $(INCLUDES) $(CFLAG)
20
21GENERAL=Makefile README
22TEST=
23APPS=
24
25LIB=$(TOP)/libcrypto.a
26LIBSRC= o_names.c obj_dat.c obj_lib.c obj_err.c
27LIBOBJ= o_names.o obj_dat.o obj_lib.o obj_err.o
28
29SRC= $(LIBSRC)
30
31EXHEADER= objects.h obj_mac.h
32HEADER= $(EXHEADER) obj_dat.h
33
34ALL= $(GENERAL) $(SRC) $(HEADER)
35
36top:
37 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
38
39all: obj_dat.h lib
40
41lib: $(LIBOBJ)
42 $(AR) $(LIB) $(LIBOBJ)
43 $(RANLIB) $(LIB) || echo Never mind.
44 @touch lib
45
46obj_dat.h: obj_dat.pl obj_mac.h
47 $(PERL) obj_dat.pl obj_mac.h obj_dat.h
48
49# objects.pl both reads and writes obj_mac.num
50obj_mac.h: objects.pl objects.txt obj_mac.num
51 $(PERL) objects.pl objects.txt obj_mac.num obj_mac.h
52 @sleep 1; touch obj_mac.h; sleep 1
53
54files:
55 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
56
57links:
58 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
59 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
60 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
61
62install:
63 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
64 do \
65 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
66 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
67 done;
68
69tags:
70 ctags $(SRC)
71
72tests:
73
74lint:
75 lint -DLINT $(INCLUDES) $(SRC)>fluff
76
77depend:
78 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
79
80dclean:
81 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
82 mv -f Makefile.new $(MAKEFILE)
83
84clean:
85 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
86
87# DO NOT DELETE THIS LINE -- make depend depends on it.
88
89o_names.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
90o_names.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
91o_names.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
92o_names.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
93o_names.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
94o_names.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
95o_names.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
96o_names.o: ../../include/openssl/symhacks.h o_names.c
97obj_dat.o: ../../e_os.h ../../include/openssl/asn1.h
98obj_dat.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
99obj_dat.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
100obj_dat.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
101obj_dat.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
102obj_dat.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
103obj_dat.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
104obj_dat.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
105obj_dat.o: ../../include/openssl/symhacks.h ../cryptlib.h obj_dat.c obj_dat.h
106obj_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
107obj_err.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
108obj_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
109obj_err.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
110obj_err.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
111obj_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
112obj_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
113obj_err.o: ../../include/openssl/symhacks.h obj_err.c
114obj_lib.o: ../../e_os.h ../../include/openssl/asn1.h
115obj_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
116obj_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
117obj_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
118obj_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
119obj_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
120obj_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
121obj_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
122obj_lib.o: ../../include/openssl/symhacks.h ../cryptlib.h obj_lib.c
diff --git a/src/lib/libcrypto/objects/obj_dat.h b/src/lib/libcrypto/objects/obj_dat.h
index 969b18a341..8785127055 100644
--- a/src/lib/libcrypto/objects/obj_dat.h
+++ b/src/lib/libcrypto/objects/obj_dat.h
@@ -62,12 +62,12 @@
62 * [including the GNU Public Licence.] 62 * [including the GNU Public Licence.]
63 */ 63 */
64 64
65#define NUM_NID 650 65#define NUM_NID 668
66#define NUM_SN 643 66#define NUM_SN 660
67#define NUM_LN 643 67#define NUM_LN 660
68#define NUM_OBJ 617 68#define NUM_OBJ 624
69 69
70static unsigned char lvalues[4455]={ 70static unsigned char lvalues[4500]={
710x00, /* [ 0] OBJ_undef */ 710x00, /* [ 0] OBJ_undef */
720x2A,0x86,0x48,0x86,0xF7,0x0D, /* [ 1] OBJ_rsadsi */ 720x2A,0x86,0x48,0x86,0xF7,0x0D, /* [ 1] OBJ_rsadsi */
730x2A,0x86,0x48,0x86,0xF7,0x0D,0x01, /* [ 7] OBJ_pkcs */ 730x2A,0x86,0x48,0x86,0xF7,0x0D,0x01, /* [ 7] OBJ_pkcs */
@@ -685,6 +685,13 @@ static unsigned char lvalues[4455]={
6850x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x06,/* [4425] OBJ_rsaOAEPEncryptionSET */ 6850x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x06,/* [4425] OBJ_rsaOAEPEncryptionSET */
6860x2B,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x02,/* [4434] OBJ_ms_smartcard_login */ 6860x2B,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x02,/* [4434] OBJ_ms_smartcard_login */
6870x2B,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x03,/* [4444] OBJ_ms_upn */ 6870x2B,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x03,/* [4444] OBJ_ms_upn */
6880x55,0x04,0x09, /* [4454] OBJ_streetAddress */
6890x55,0x04,0x11, /* [4457] OBJ_postalCode */
6900x2B,0x06,0x01,0x05,0x05,0x07,0x15, /* [4460] OBJ_id_ppl */
6910x2B,0x06,0x01,0x05,0x05,0x07,0x01,0x0E, /* [4467] OBJ_proxyCertInfo */
6920x2B,0x06,0x01,0x05,0x05,0x07,0x15,0x00, /* [4475] OBJ_id_ppl_anyLanguage */
6930x2B,0x06,0x01,0x05,0x05,0x07,0x15,0x01, /* [4483] OBJ_id_ppl_inheritAll */
6940x2B,0x06,0x01,0x05,0x05,0x07,0x15,0x02, /* [4491] OBJ_Independent */
688}; 695};
689 696
690static ASN1_OBJECT nid_objs[NUM_NID]={ 697static ASN1_OBJECT nid_objs[NUM_NID]={
@@ -1728,20 +1735,47 @@ static ASN1_OBJECT nid_objs[NUM_NID]={
1728 10,&(lvalues[4434]),0}, 1735 10,&(lvalues[4434]),0},
1729{"msUPN","Microsoft Universal Principal Name",NID_ms_upn,10, 1736{"msUPN","Microsoft Universal Principal Name",NID_ms_upn,10,
1730 &(lvalues[4444]),0}, 1737 &(lvalues[4444]),0},
1738{"AES-128-CFB1","aes-128-cfb1",NID_aes_128_cfb1,0,NULL},
1739{"AES-192-CFB1","aes-192-cfb1",NID_aes_192_cfb1,0,NULL},
1740{"AES-256-CFB1","aes-256-cfb1",NID_aes_256_cfb1,0,NULL},
1741{"AES-128-CFB8","aes-128-cfb8",NID_aes_128_cfb8,0,NULL},
1742{"AES-192-CFB8","aes-192-cfb8",NID_aes_192_cfb8,0,NULL},
1743{"AES-256-CFB8","aes-256-cfb8",NID_aes_256_cfb8,0,NULL},
1744{"DES-CFB1","des-cfb1",NID_des_cfb1,0,NULL},
1745{"DES-CFB8","des-cfb8",NID_des_cfb8,0,NULL},
1746{"DES-EDE3-CFB1","des-ede3-cfb1",NID_des_ede3_cfb1,0,NULL},
1747{"DES-EDE3-CFB8","des-ede3-cfb8",NID_des_ede3_cfb8,0,NULL},
1748{"streetAddress","streetAddress",NID_streetAddress,3,&(lvalues[4454]),0},
1749{"postalCode","postalCode",NID_postalCode,3,&(lvalues[4457]),0},
1750{"id-ppl","id-ppl",NID_id_ppl,7,&(lvalues[4460]),0},
1751{"proxyCertInfo","Proxy Certificate Information",NID_proxyCertInfo,8,
1752 &(lvalues[4467]),0},
1753{"id-ppl-anyLanguage","Any language",NID_id_ppl_anyLanguage,8,
1754 &(lvalues[4475]),0},
1755{"id-ppl-inheritAll","Inherit all",NID_id_ppl_inheritAll,8,
1756 &(lvalues[4483]),0},
1757{NULL,NULL,NID_undef,0,NULL},
1758{"id-ppl-independent","Independent",NID_Independent,8,&(lvalues[4491]),0},
1731}; 1759};
1732 1760
1733static ASN1_OBJECT *sn_objs[NUM_SN]={ 1761static ASN1_OBJECT *sn_objs[NUM_SN]={
1734&(nid_objs[364]),/* "AD_DVCS" */ 1762&(nid_objs[364]),/* "AD_DVCS" */
1735&(nid_objs[419]),/* "AES-128-CBC" */ 1763&(nid_objs[419]),/* "AES-128-CBC" */
1736&(nid_objs[421]),/* "AES-128-CFB" */ 1764&(nid_objs[421]),/* "AES-128-CFB" */
1765&(nid_objs[650]),/* "AES-128-CFB1" */
1766&(nid_objs[653]),/* "AES-128-CFB8" */
1737&(nid_objs[418]),/* "AES-128-ECB" */ 1767&(nid_objs[418]),/* "AES-128-ECB" */
1738&(nid_objs[420]),/* "AES-128-OFB" */ 1768&(nid_objs[420]),/* "AES-128-OFB" */
1739&(nid_objs[423]),/* "AES-192-CBC" */ 1769&(nid_objs[423]),/* "AES-192-CBC" */
1740&(nid_objs[425]),/* "AES-192-CFB" */ 1770&(nid_objs[425]),/* "AES-192-CFB" */
1771&(nid_objs[651]),/* "AES-192-CFB1" */
1772&(nid_objs[654]),/* "AES-192-CFB8" */
1741&(nid_objs[422]),/* "AES-192-ECB" */ 1773&(nid_objs[422]),/* "AES-192-ECB" */
1742&(nid_objs[424]),/* "AES-192-OFB" */ 1774&(nid_objs[424]),/* "AES-192-OFB" */
1743&(nid_objs[427]),/* "AES-256-CBC" */ 1775&(nid_objs[427]),/* "AES-256-CBC" */
1744&(nid_objs[429]),/* "AES-256-CFB" */ 1776&(nid_objs[429]),/* "AES-256-CFB" */
1777&(nid_objs[652]),/* "AES-256-CFB1" */
1778&(nid_objs[655]),/* "AES-256-CFB8" */
1745&(nid_objs[426]),/* "AES-256-ECB" */ 1779&(nid_objs[426]),/* "AES-256-ECB" */
1746&(nid_objs[428]),/* "AES-256-OFB" */ 1780&(nid_objs[428]),/* "AES-256-OFB" */
1747&(nid_objs[91]),/* "BF-CBC" */ 1781&(nid_objs[91]),/* "BF-CBC" */
@@ -1762,6 +1796,8 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
1762&(nid_objs[31]),/* "DES-CBC" */ 1796&(nid_objs[31]),/* "DES-CBC" */
1763&(nid_objs[643]),/* "DES-CDMF" */ 1797&(nid_objs[643]),/* "DES-CDMF" */
1764&(nid_objs[30]),/* "DES-CFB" */ 1798&(nid_objs[30]),/* "DES-CFB" */
1799&(nid_objs[656]),/* "DES-CFB1" */
1800&(nid_objs[657]),/* "DES-CFB8" */
1765&(nid_objs[29]),/* "DES-ECB" */ 1801&(nid_objs[29]),/* "DES-ECB" */
1766&(nid_objs[32]),/* "DES-EDE" */ 1802&(nid_objs[32]),/* "DES-EDE" */
1767&(nid_objs[43]),/* "DES-EDE-CBC" */ 1803&(nid_objs[43]),/* "DES-EDE-CBC" */
@@ -1770,6 +1806,8 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
1770&(nid_objs[33]),/* "DES-EDE3" */ 1806&(nid_objs[33]),/* "DES-EDE3" */
1771&(nid_objs[44]),/* "DES-EDE3-CBC" */ 1807&(nid_objs[44]),/* "DES-EDE3-CBC" */
1772&(nid_objs[61]),/* "DES-EDE3-CFB" */ 1808&(nid_objs[61]),/* "DES-EDE3-CFB" */
1809&(nid_objs[658]),/* "DES-EDE3-CFB1" */
1810&(nid_objs[659]),/* "DES-EDE3-CFB8" */
1773&(nid_objs[63]),/* "DES-EDE3-OFB" */ 1811&(nid_objs[63]),/* "DES-EDE3-OFB" */
1774&(nid_objs[45]),/* "DES-OFB" */ 1812&(nid_objs[45]),/* "DES-OFB" */
1775&(nid_objs[80]),/* "DESX-CBC" */ 1813&(nid_objs[80]),/* "DESX-CBC" */
@@ -2022,6 +2060,10 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
2022&(nid_objs[271]),/* "id-pkix1-explicit-93" */ 2060&(nid_objs[271]),/* "id-pkix1-explicit-93" */
2023&(nid_objs[270]),/* "id-pkix1-implicit-88" */ 2061&(nid_objs[270]),/* "id-pkix1-implicit-88" */
2024&(nid_objs[272]),/* "id-pkix1-implicit-93" */ 2062&(nid_objs[272]),/* "id-pkix1-implicit-93" */
2063&(nid_objs[662]),/* "id-ppl" */
2064&(nid_objs[664]),/* "id-ppl-anyLanguage" */
2065&(nid_objs[667]),/* "id-ppl-independent" */
2066&(nid_objs[665]),/* "id-ppl-inheritAll" */
2025&(nid_objs[267]),/* "id-qcs" */ 2067&(nid_objs[267]),/* "id-qcs" */
2026&(nid_objs[359]),/* "id-qcs-pkixQCSyntax-v1" */ 2068&(nid_objs[359]),/* "id-qcs-pkixQCSyntax-v1" */
2027&(nid_objs[259]),/* "id-qt" */ 2069&(nid_objs[259]),/* "id-qt" */
@@ -2186,6 +2228,7 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
2186&(nid_objs[151]),/* "pkcs8ShroudedKeyBag" */ 2228&(nid_objs[151]),/* "pkcs8ShroudedKeyBag" */
2187&(nid_objs[47]),/* "pkcs9" */ 2229&(nid_objs[47]),/* "pkcs9" */
2188&(nid_objs[401]),/* "policyConstraints" */ 2230&(nid_objs[401]),/* "policyConstraints" */
2231&(nid_objs[661]),/* "postalCode" */
2189&(nid_objs[406]),/* "prime-field" */ 2232&(nid_objs[406]),/* "prime-field" */
2190&(nid_objs[409]),/* "prime192v1" */ 2233&(nid_objs[409]),/* "prime192v1" */
2191&(nid_objs[410]),/* "prime192v2" */ 2234&(nid_objs[410]),/* "prime192v2" */
@@ -2196,6 +2239,7 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
2196&(nid_objs[415]),/* "prime256v1" */ 2239&(nid_objs[415]),/* "prime256v1" */
2197&(nid_objs[385]),/* "private" */ 2240&(nid_objs[385]),/* "private" */
2198&(nid_objs[84]),/* "privateKeyUsagePeriod" */ 2241&(nid_objs[84]),/* "privateKeyUsagePeriod" */
2242&(nid_objs[663]),/* "proxyCertInfo" */
2199&(nid_objs[510]),/* "pseudonym" */ 2243&(nid_objs[510]),/* "pseudonym" */
2200&(nid_objs[435]),/* "pss" */ 2244&(nid_objs[435]),/* "pss" */
2201&(nid_objs[286]),/* "qcStatements" */ 2245&(nid_objs[286]),/* "qcStatements" */
@@ -2355,6 +2399,7 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
2355&(nid_objs[454]),/* "simpleSecurityObject" */ 2399&(nid_objs[454]),/* "simpleSecurityObject" */
2356&(nid_objs[496]),/* "singleLevelQuality" */ 2400&(nid_objs[496]),/* "singleLevelQuality" */
2357&(nid_objs[387]),/* "snmpv2" */ 2401&(nid_objs[387]),/* "snmpv2" */
2402&(nid_objs[660]),/* "streetAddress" */
2358&(nid_objs[85]),/* "subjectAltName" */ 2403&(nid_objs[85]),/* "subjectAltName" */
2359&(nid_objs[398]),/* "subjectInfoAccess" */ 2404&(nid_objs[398]),/* "subjectInfoAccess" */
2360&(nid_objs[82]),/* "subjectKeyIdentifier" */ 2405&(nid_objs[82]),/* "subjectKeyIdentifier" */
@@ -2380,6 +2425,7 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
2380&(nid_objs[363]),/* "AD Time Stamping" */ 2425&(nid_objs[363]),/* "AD Time Stamping" */
2381&(nid_objs[405]),/* "ANSI X9.62" */ 2426&(nid_objs[405]),/* "ANSI X9.62" */
2382&(nid_objs[368]),/* "Acceptable OCSP Responses" */ 2427&(nid_objs[368]),/* "Acceptable OCSP Responses" */
2428&(nid_objs[664]),/* "Any language" */
2383&(nid_objs[177]),/* "Authority Information Access" */ 2429&(nid_objs[177]),/* "Authority Information Access" */
2384&(nid_objs[365]),/* "Basic OCSP Response" */ 2430&(nid_objs[365]),/* "Basic OCSP Response" */
2385&(nid_objs[285]),/* "Biometric Info" */ 2431&(nid_objs[285]),/* "Biometric Info" */
@@ -2402,6 +2448,8 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
2402&(nid_objs[296]),/* "IPSec User" */ 2448&(nid_objs[296]),/* "IPSec User" */
2403&(nid_objs[182]),/* "ISO Member Body" */ 2449&(nid_objs[182]),/* "ISO Member Body" */
2404&(nid_objs[183]),/* "ISO US Member Body" */ 2450&(nid_objs[183]),/* "ISO US Member Body" */
2451&(nid_objs[667]),/* "Independent" */
2452&(nid_objs[665]),/* "Inherit all" */
2405&(nid_objs[142]),/* "Invalidity Date" */ 2453&(nid_objs[142]),/* "Invalidity Date" */
2406&(nid_objs[504]),/* "MIME MHS" */ 2454&(nid_objs[504]),/* "MIME MHS" */
2407&(nid_objs[388]),/* "Mail" */ 2455&(nid_objs[388]),/* "Mail" */
@@ -2442,6 +2490,7 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
2442&(nid_objs[164]),/* "Policy Qualifier CPS" */ 2490&(nid_objs[164]),/* "Policy Qualifier CPS" */
2443&(nid_objs[165]),/* "Policy Qualifier User Notice" */ 2491&(nid_objs[165]),/* "Policy Qualifier User Notice" */
2444&(nid_objs[385]),/* "Private" */ 2492&(nid_objs[385]),/* "Private" */
2493&(nid_objs[663]),/* "Proxy Certificate Information" */
2445&(nid_objs[ 1]),/* "RSA Data Security, Inc." */ 2494&(nid_objs[ 1]),/* "RSA Data Security, Inc." */
2446&(nid_objs[ 2]),/* "RSA Data Security, Inc. PKCS" */ 2495&(nid_objs[ 2]),/* "RSA Data Security, Inc. PKCS" */
2447&(nid_objs[188]),/* "S/MIME" */ 2496&(nid_objs[188]),/* "S/MIME" */
@@ -2485,14 +2534,20 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
2485&(nid_objs[606]),/* "additional verification" */ 2534&(nid_objs[606]),/* "additional verification" */
2486&(nid_objs[419]),/* "aes-128-cbc" */ 2535&(nid_objs[419]),/* "aes-128-cbc" */
2487&(nid_objs[421]),/* "aes-128-cfb" */ 2536&(nid_objs[421]),/* "aes-128-cfb" */
2537&(nid_objs[650]),/* "aes-128-cfb1" */
2538&(nid_objs[653]),/* "aes-128-cfb8" */
2488&(nid_objs[418]),/* "aes-128-ecb" */ 2539&(nid_objs[418]),/* "aes-128-ecb" */
2489&(nid_objs[420]),/* "aes-128-ofb" */ 2540&(nid_objs[420]),/* "aes-128-ofb" */
2490&(nid_objs[423]),/* "aes-192-cbc" */ 2541&(nid_objs[423]),/* "aes-192-cbc" */
2491&(nid_objs[425]),/* "aes-192-cfb" */ 2542&(nid_objs[425]),/* "aes-192-cfb" */
2543&(nid_objs[651]),/* "aes-192-cfb1" */
2544&(nid_objs[654]),/* "aes-192-cfb8" */
2492&(nid_objs[422]),/* "aes-192-ecb" */ 2545&(nid_objs[422]),/* "aes-192-ecb" */
2493&(nid_objs[424]),/* "aes-192-ofb" */ 2546&(nid_objs[424]),/* "aes-192-ofb" */
2494&(nid_objs[427]),/* "aes-256-cbc" */ 2547&(nid_objs[427]),/* "aes-256-cbc" */
2495&(nid_objs[429]),/* "aes-256-cfb" */ 2548&(nid_objs[429]),/* "aes-256-cfb" */
2549&(nid_objs[652]),/* "aes-256-cfb1" */
2550&(nid_objs[655]),/* "aes-256-cfb8" */
2496&(nid_objs[426]),/* "aes-256-ecb" */ 2551&(nid_objs[426]),/* "aes-256-ecb" */
2497&(nid_objs[428]),/* "aes-256-ofb" */ 2552&(nid_objs[428]),/* "aes-256-ofb" */
2498&(nid_objs[376]),/* "algorithm" */ 2553&(nid_objs[376]),/* "algorithm" */
@@ -2531,6 +2586,8 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
2531&(nid_objs[31]),/* "des-cbc" */ 2586&(nid_objs[31]),/* "des-cbc" */
2532&(nid_objs[643]),/* "des-cdmf" */ 2587&(nid_objs[643]),/* "des-cdmf" */
2533&(nid_objs[30]),/* "des-cfb" */ 2588&(nid_objs[30]),/* "des-cfb" */
2589&(nid_objs[656]),/* "des-cfb1" */
2590&(nid_objs[657]),/* "des-cfb8" */
2534&(nid_objs[29]),/* "des-ecb" */ 2591&(nid_objs[29]),/* "des-ecb" */
2535&(nid_objs[32]),/* "des-ede" */ 2592&(nid_objs[32]),/* "des-ede" */
2536&(nid_objs[43]),/* "des-ede-cbc" */ 2593&(nid_objs[43]),/* "des-ede-cbc" */
@@ -2539,6 +2596,8 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
2539&(nid_objs[33]),/* "des-ede3" */ 2596&(nid_objs[33]),/* "des-ede3" */
2540&(nid_objs[44]),/* "des-ede3-cbc" */ 2597&(nid_objs[44]),/* "des-ede3-cbc" */
2541&(nid_objs[61]),/* "des-ede3-cfb" */ 2598&(nid_objs[61]),/* "des-ede3-cfb" */
2599&(nid_objs[658]),/* "des-ede3-cfb1" */
2600&(nid_objs[659]),/* "des-ede3-cfb8" */
2542&(nid_objs[63]),/* "des-ede3-ofb" */ 2601&(nid_objs[63]),/* "des-ede3-ofb" */
2543&(nid_objs[45]),/* "des-ofb" */ 2602&(nid_objs[45]),/* "des-ofb" */
2544&(nid_objs[107]),/* "description" */ 2603&(nid_objs[107]),/* "description" */
@@ -2668,6 +2727,7 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
2668&(nid_objs[271]),/* "id-pkix1-explicit-93" */ 2727&(nid_objs[271]),/* "id-pkix1-explicit-93" */
2669&(nid_objs[270]),/* "id-pkix1-implicit-88" */ 2728&(nid_objs[270]),/* "id-pkix1-implicit-88" */
2670&(nid_objs[272]),/* "id-pkix1-implicit-93" */ 2729&(nid_objs[272]),/* "id-pkix1-implicit-93" */
2730&(nid_objs[662]),/* "id-ppl" */
2671&(nid_objs[267]),/* "id-qcs" */ 2731&(nid_objs[267]),/* "id-qcs" */
2672&(nid_objs[359]),/* "id-qcs-pkixQCSyntax-v1" */ 2732&(nid_objs[359]),/* "id-qcs-pkixQCSyntax-v1" */
2673&(nid_objs[259]),/* "id-qt" */ 2733&(nid_objs[259]),/* "id-qt" */
@@ -2831,6 +2891,7 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
2831&(nid_objs[22]),/* "pkcs7-signedData" */ 2891&(nid_objs[22]),/* "pkcs7-signedData" */
2832&(nid_objs[151]),/* "pkcs8ShroudedKeyBag" */ 2892&(nid_objs[151]),/* "pkcs8ShroudedKeyBag" */
2833&(nid_objs[47]),/* "pkcs9" */ 2893&(nid_objs[47]),/* "pkcs9" */
2894&(nid_objs[661]),/* "postalCode" */
2834&(nid_objs[406]),/* "prime-field" */ 2895&(nid_objs[406]),/* "prime-field" */
2835&(nid_objs[409]),/* "prime192v1" */ 2896&(nid_objs[409]),/* "prime192v1" */
2836&(nid_objs[410]),/* "prime192v2" */ 2897&(nid_objs[410]),/* "prime192v2" */
@@ -3003,6 +3064,7 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
3003&(nid_objs[454]),/* "simpleSecurityObject" */ 3064&(nid_objs[454]),/* "simpleSecurityObject" */
3004&(nid_objs[496]),/* "singleLevelQuality" */ 3065&(nid_objs[496]),/* "singleLevelQuality" */
3005&(nid_objs[16]),/* "stateOrProvinceName" */ 3066&(nid_objs[16]),/* "stateOrProvinceName" */
3067&(nid_objs[660]),/* "streetAddress" */
3006&(nid_objs[498]),/* "subtreeMaximumQuality" */ 3068&(nid_objs[498]),/* "subtreeMaximumQuality" */
3007&(nid_objs[497]),/* "subtreeMinimumQuality" */ 3069&(nid_objs[497]),/* "subtreeMinimumQuality" */
3008&(nid_objs[100]),/* "surname" */ 3070&(nid_objs[100]),/* "surname" */
@@ -3046,10 +3108,12 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
3046&(nid_objs[14]),/* OBJ_countryName 2 5 4 6 */ 3108&(nid_objs[14]),/* OBJ_countryName 2 5 4 6 */
3047&(nid_objs[15]),/* OBJ_localityName 2 5 4 7 */ 3109&(nid_objs[15]),/* OBJ_localityName 2 5 4 7 */
3048&(nid_objs[16]),/* OBJ_stateOrProvinceName 2 5 4 8 */ 3110&(nid_objs[16]),/* OBJ_stateOrProvinceName 2 5 4 8 */
3111&(nid_objs[660]),/* OBJ_streetAddress 2 5 4 9 */
3049&(nid_objs[17]),/* OBJ_organizationName 2 5 4 10 */ 3112&(nid_objs[17]),/* OBJ_organizationName 2 5 4 10 */
3050&(nid_objs[18]),/* OBJ_organizationalUnitName 2 5 4 11 */ 3113&(nid_objs[18]),/* OBJ_organizationalUnitName 2 5 4 11 */
3051&(nid_objs[106]),/* OBJ_title 2 5 4 12 */ 3114&(nid_objs[106]),/* OBJ_title 2 5 4 12 */
3052&(nid_objs[107]),/* OBJ_description 2 5 4 13 */ 3115&(nid_objs[107]),/* OBJ_description 2 5 4 13 */
3116&(nid_objs[661]),/* OBJ_postalCode 2 5 4 17 */
3053&(nid_objs[173]),/* OBJ_name 2 5 4 41 */ 3117&(nid_objs[173]),/* OBJ_name 2 5 4 41 */
3054&(nid_objs[99]),/* OBJ_givenName 2 5 4 42 */ 3118&(nid_objs[99]),/* OBJ_givenName 2 5 4 42 */
3055&(nid_objs[101]),/* OBJ_initials 2 5 4 43 */ 3119&(nid_objs[101]),/* OBJ_initials 2 5 4 43 */
@@ -3270,6 +3334,7 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
3270&(nid_objs[266]),/* OBJ_id_aca 1 3 6 1 5 5 7 10 */ 3334&(nid_objs[266]),/* OBJ_id_aca 1 3 6 1 5 5 7 10 */
3271&(nid_objs[267]),/* OBJ_id_qcs 1 3 6 1 5 5 7 11 */ 3335&(nid_objs[267]),/* OBJ_id_qcs 1 3 6 1 5 5 7 11 */
3272&(nid_objs[268]),/* OBJ_id_cct 1 3 6 1 5 5 7 12 */ 3336&(nid_objs[268]),/* OBJ_id_cct 1 3 6 1 5 5 7 12 */
3337&(nid_objs[662]),/* OBJ_id_ppl 1 3 6 1 5 5 7 21 */
3273&(nid_objs[176]),/* OBJ_id_ad 1 3 6 1 5 5 7 48 */ 3338&(nid_objs[176]),/* OBJ_id_ad 1 3 6 1 5 5 7 48 */
3274&(nid_objs[507]),/* OBJ_id_hex_partial_message 1 3 6 1 7 1 1 1 */ 3339&(nid_objs[507]),/* OBJ_id_hex_partial_message 1 3 6 1 7 1 1 1 */
3275&(nid_objs[508]),/* OBJ_id_hex_multipart_message 1 3 6 1 7 1 1 2 */ 3340&(nid_objs[508]),/* OBJ_id_hex_multipart_message 1 3 6 1 7 1 1 2 */
@@ -3323,6 +3388,7 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
3323&(nid_objs[292]),/* OBJ_sbqp_routerIdentifier 1 3 6 1 5 5 7 1 9 */ 3388&(nid_objs[292]),/* OBJ_sbqp_routerIdentifier 1 3 6 1 5 5 7 1 9 */
3324&(nid_objs[397]),/* OBJ_ac_proxying 1 3 6 1 5 5 7 1 10 */ 3389&(nid_objs[397]),/* OBJ_ac_proxying 1 3 6 1 5 5 7 1 10 */
3325&(nid_objs[398]),/* OBJ_sinfo_access 1 3 6 1 5 5 7 1 11 */ 3390&(nid_objs[398]),/* OBJ_sinfo_access 1 3 6 1 5 5 7 1 11 */
3391&(nid_objs[663]),/* OBJ_proxyCertInfo 1 3 6 1 5 5 7 1 14 */
3326&(nid_objs[164]),/* OBJ_id_qt_cps 1 3 6 1 5 5 7 2 1 */ 3392&(nid_objs[164]),/* OBJ_id_qt_cps 1 3 6 1 5 5 7 2 1 */
3327&(nid_objs[165]),/* OBJ_id_qt_unotice 1 3 6 1 5 5 7 2 2 */ 3393&(nid_objs[165]),/* OBJ_id_qt_unotice 1 3 6 1 5 5 7 2 2 */
3328&(nid_objs[293]),/* OBJ_textNotice 1 3 6 1 5 5 7 2 3 */ 3394&(nid_objs[293]),/* OBJ_textNotice 1 3 6 1 5 5 7 2 3 */
@@ -3393,6 +3459,9 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
3393&(nid_objs[360]),/* OBJ_id_cct_crs 1 3 6 1 5 5 7 12 1 */ 3459&(nid_objs[360]),/* OBJ_id_cct_crs 1 3 6 1 5 5 7 12 1 */
3394&(nid_objs[361]),/* OBJ_id_cct_PKIData 1 3 6 1 5 5 7 12 2 */ 3460&(nid_objs[361]),/* OBJ_id_cct_PKIData 1 3 6 1 5 5 7 12 2 */
3395&(nid_objs[362]),/* OBJ_id_cct_PKIResponse 1 3 6 1 5 5 7 12 3 */ 3461&(nid_objs[362]),/* OBJ_id_cct_PKIResponse 1 3 6 1 5 5 7 12 3 */
3462&(nid_objs[664]),/* OBJ_id_ppl_anyLanguage 1 3 6 1 5 5 7 21 0 */
3463&(nid_objs[665]),/* OBJ_id_ppl_inheritAll 1 3 6 1 5 5 7 21 1 */
3464&(nid_objs[667]),/* OBJ_Independent 1 3 6 1 5 5 7 21 2 */
3396&(nid_objs[178]),/* OBJ_ad_OCSP 1 3 6 1 5 5 7 48 1 */ 3465&(nid_objs[178]),/* OBJ_ad_OCSP 1 3 6 1 5 5 7 48 1 */
3397&(nid_objs[179]),/* OBJ_ad_ca_issuers 1 3 6 1 5 5 7 48 2 */ 3466&(nid_objs[179]),/* OBJ_ad_ca_issuers 1 3 6 1 5 5 7 48 2 */
3398&(nid_objs[363]),/* OBJ_ad_timeStamping 1 3 6 1 5 5 7 48 3 */ 3467&(nid_objs[363]),/* OBJ_ad_timeStamping 1 3 6 1 5 5 7 48 3 */
diff --git a/src/lib/libcrypto/objects/obj_mac.h b/src/lib/libcrypto/objects/obj_mac.h
index 7645012298..d28894cf41 100644
--- a/src/lib/libcrypto/objects/obj_mac.h
+++ b/src/lib/libcrypto/objects/obj_mac.h
@@ -950,6 +950,10 @@
950#define NID_id_cct 268 950#define NID_id_cct 268
951#define OBJ_id_cct OBJ_id_pkix,12L 951#define OBJ_id_cct OBJ_id_pkix,12L
952 952
953#define SN_id_ppl "id-ppl"
954#define NID_id_ppl 662
955#define OBJ_id_ppl OBJ_id_pkix,21L
956
953#define SN_id_ad "id-ad" 957#define SN_id_ad "id-ad"
954#define NID_id_ad 176 958#define NID_id_ad 176
955#define OBJ_id_ad OBJ_id_pkix,48L 959#define OBJ_id_ad OBJ_id_pkix,48L
@@ -1065,6 +1069,11 @@
1065#define NID_sinfo_access 398 1069#define NID_sinfo_access 398
1066#define OBJ_sinfo_access OBJ_id_pe,11L 1070#define OBJ_sinfo_access OBJ_id_pe,11L
1067 1071
1072#define SN_proxyCertInfo "proxyCertInfo"
1073#define LN_proxyCertInfo "Proxy Certificate Information"
1074#define NID_proxyCertInfo 663
1075#define OBJ_proxyCertInfo OBJ_id_pe,14L
1076
1068#define SN_id_qt_cps "id-qt-cps" 1077#define SN_id_qt_cps "id-qt-cps"
1069#define LN_id_qt_cps "Policy Qualifier CPS" 1078#define LN_id_qt_cps "Policy Qualifier CPS"
1070#define NID_id_qt_cps 164 1079#define NID_id_qt_cps 164
@@ -1389,6 +1398,21 @@
1389#define NID_id_cct_PKIResponse 362 1398#define NID_id_cct_PKIResponse 362
1390#define OBJ_id_cct_PKIResponse OBJ_id_cct,3L 1399#define OBJ_id_cct_PKIResponse OBJ_id_cct,3L
1391 1400
1401#define SN_id_ppl_anyLanguage "id-ppl-anyLanguage"
1402#define LN_id_ppl_anyLanguage "Any language"
1403#define NID_id_ppl_anyLanguage 664
1404#define OBJ_id_ppl_anyLanguage OBJ_id_ppl,0L
1405
1406#define SN_id_ppl_inheritAll "id-ppl-inheritAll"
1407#define LN_id_ppl_inheritAll "Inherit all"
1408#define NID_id_ppl_inheritAll 665
1409#define OBJ_id_ppl_inheritAll OBJ_id_ppl,1L
1410
1411#define SN_Independent "id-ppl-independent"
1412#define LN_Independent "Independent"
1413#define NID_Independent 667
1414#define OBJ_Independent OBJ_id_ppl,2L
1415
1392#define SN_ad_OCSP "OCSP" 1416#define SN_ad_OCSP "OCSP"
1393#define LN_ad_OCSP "OCSP" 1417#define LN_ad_OCSP "OCSP"
1394#define NID_ad_OCSP 178 1418#define NID_ad_OCSP 178
@@ -1619,6 +1643,10 @@
1619#define NID_stateOrProvinceName 16 1643#define NID_stateOrProvinceName 16
1620#define OBJ_stateOrProvinceName OBJ_X509,8L 1644#define OBJ_stateOrProvinceName OBJ_X509,8L
1621 1645
1646#define LN_streetAddress "streetAddress"
1647#define NID_streetAddress 660
1648#define OBJ_streetAddress OBJ_X509,9L
1649
1622#define SN_organizationName "O" 1650#define SN_organizationName "O"
1623#define LN_organizationName "organizationName" 1651#define LN_organizationName "organizationName"
1624#define NID_organizationName 17 1652#define NID_organizationName 17
@@ -1637,6 +1665,10 @@
1637#define NID_description 107 1665#define NID_description 107
1638#define OBJ_description OBJ_X509,13L 1666#define OBJ_description OBJ_X509,13L
1639 1667
1668#define LN_postalCode "postalCode"
1669#define NID_postalCode 661
1670#define OBJ_postalCode OBJ_X509,17L
1671
1640#define SN_name "name" 1672#define SN_name "name"
1641#define LN_name "name" 1673#define LN_name "name"
1642#define NID_name 173 1674#define NID_name 173
@@ -2009,6 +2041,46 @@
2009#define NID_aes_256_cfb128 429 2041#define NID_aes_256_cfb128 429
2010#define OBJ_aes_256_cfb128 OBJ_aes,44L 2042#define OBJ_aes_256_cfb128 OBJ_aes,44L
2011 2043
2044#define SN_aes_128_cfb1 "AES-128-CFB1"
2045#define LN_aes_128_cfb1 "aes-128-cfb1"
2046#define NID_aes_128_cfb1 650
2047
2048#define SN_aes_192_cfb1 "AES-192-CFB1"
2049#define LN_aes_192_cfb1 "aes-192-cfb1"
2050#define NID_aes_192_cfb1 651
2051
2052#define SN_aes_256_cfb1 "AES-256-CFB1"
2053#define LN_aes_256_cfb1 "aes-256-cfb1"
2054#define NID_aes_256_cfb1 652
2055
2056#define SN_aes_128_cfb8 "AES-128-CFB8"
2057#define LN_aes_128_cfb8 "aes-128-cfb8"
2058#define NID_aes_128_cfb8 653
2059
2060#define SN_aes_192_cfb8 "AES-192-CFB8"
2061#define LN_aes_192_cfb8 "aes-192-cfb8"
2062#define NID_aes_192_cfb8 654
2063
2064#define SN_aes_256_cfb8 "AES-256-CFB8"
2065#define LN_aes_256_cfb8 "aes-256-cfb8"
2066#define NID_aes_256_cfb8 655
2067
2068#define SN_des_cfb1 "DES-CFB1"
2069#define LN_des_cfb1 "des-cfb1"
2070#define NID_des_cfb1 656
2071
2072#define SN_des_cfb8 "DES-CFB8"
2073#define LN_des_cfb8 "des-cfb8"
2074#define NID_des_cfb8 657
2075
2076#define SN_des_ede3_cfb1 "DES-EDE3-CFB1"
2077#define LN_des_ede3_cfb1 "des-ede3-cfb1"
2078#define NID_des_ede3_cfb1 658
2079
2080#define SN_des_ede3_cfb8 "DES-EDE3-CFB8"
2081#define LN_des_ede3_cfb8 "des-ede3-cfb8"
2082#define NID_des_ede3_cfb8 659
2083
2012#define SN_hold_instruction_code "holdInstructionCode" 2084#define SN_hold_instruction_code "holdInstructionCode"
2013#define LN_hold_instruction_code "Hold Instruction Code" 2085#define LN_hold_instruction_code "Hold Instruction Code"
2014#define NID_hold_instruction_code 430 2086#define NID_hold_instruction_code 430
diff --git a/src/lib/libcrypto/ocsp/Makefile b/src/lib/libcrypto/ocsp/Makefile
new file mode 100644
index 0000000000..59f7098d9e
--- /dev/null
+++ b/src/lib/libcrypto/ocsp/Makefile
@@ -0,0 +1,291 @@
1#
2# OpenSSL/ocsp/Makefile
3#
4
5DIR= ocsp
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile README
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= ocsp_asn.c ocsp_ext.c ocsp_ht.c ocsp_lib.c ocsp_cl.c \
26 ocsp_srv.c ocsp_prn.c ocsp_vfy.c ocsp_err.c
27
28LIBOBJ= ocsp_asn.o ocsp_ext.o ocsp_ht.o ocsp_lib.o ocsp_cl.o \
29 ocsp_srv.o ocsp_prn.o ocsp_vfy.o ocsp_err.o
30
31SRC= $(LIBSRC)
32
33EXHEADER= ocsp.h
34HEADER= $(EXHEADER)
35
36ALL= $(GENERAL) $(SRC) $(HEADER)
37
38top:
39 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
40
41all: lib
42
43lib: $(LIBOBJ)
44 $(AR) $(LIB) $(LIBOBJ)
45 $(RANLIB) $(LIB) || echo Never mind.
46 @touch lib
47
48files:
49 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
50
51links:
52 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
53 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
54 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
55
56install:
57 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
58 do \
59 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
60 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
61 done;
62
63tags:
64 ctags $(SRC)
65
66tests:
67
68lint:
69 lint -DLINT $(INCLUDES) $(SRC)>fluff
70
71depend:
72 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(LIBSRC)
73
74dclean:
75 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
76 mv -f Makefile.new $(MAKEFILE)
77
78clean:
79 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
80
81# DO NOT DELETE THIS LINE -- make depend depends on it.
82
83ocsp_asn.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
84ocsp_asn.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
85ocsp_asn.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
86ocsp_asn.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
87ocsp_asn.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
88ocsp_asn.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
89ocsp_asn.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
90ocsp_asn.o: ../../include/openssl/e_os2.h ../../include/openssl/evp.h
91ocsp_asn.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
92ocsp_asn.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
93ocsp_asn.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
94ocsp_asn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
95ocsp_asn.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
96ocsp_asn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
97ocsp_asn.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
98ocsp_asn.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
99ocsp_asn.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
100ocsp_asn.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
101ocsp_asn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
102ocsp_asn.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
103ocsp_asn.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
104ocsp_asn.o: ../../include/openssl/x509v3.h ocsp_asn.c
105ocsp_cl.o: ../../e_os.h ../../include/openssl/aes.h
106ocsp_cl.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
107ocsp_cl.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
108ocsp_cl.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
109ocsp_cl.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
110ocsp_cl.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
111ocsp_cl.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
112ocsp_cl.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
113ocsp_cl.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
114ocsp_cl.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
115ocsp_cl.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
116ocsp_cl.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
117ocsp_cl.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
118ocsp_cl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
119ocsp_cl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
120ocsp_cl.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
121ocsp_cl.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
122ocsp_cl.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
123ocsp_cl.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
124ocsp_cl.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
125ocsp_cl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
126ocsp_cl.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
127ocsp_cl.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
128ocsp_cl.o: ../../include/openssl/x509v3.h ../cryptlib.h ocsp_cl.c
129ocsp_err.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
130ocsp_err.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
131ocsp_err.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
132ocsp_err.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
133ocsp_err.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
134ocsp_err.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
135ocsp_err.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
136ocsp_err.o: ../../include/openssl/err.h ../../include/openssl/evp.h
137ocsp_err.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
138ocsp_err.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
139ocsp_err.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
140ocsp_err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
141ocsp_err.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
142ocsp_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
143ocsp_err.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
144ocsp_err.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
145ocsp_err.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
146ocsp_err.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
147ocsp_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
148ocsp_err.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
149ocsp_err.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
150ocsp_err.o: ../../include/openssl/x509v3.h ocsp_err.c
151ocsp_ext.o: ../../e_os.h ../../include/openssl/aes.h
152ocsp_ext.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
153ocsp_ext.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
154ocsp_ext.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
155ocsp_ext.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
156ocsp_ext.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
157ocsp_ext.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
158ocsp_ext.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
159ocsp_ext.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
160ocsp_ext.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
161ocsp_ext.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
162ocsp_ext.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
163ocsp_ext.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
164ocsp_ext.o: ../../include/openssl/opensslconf.h
165ocsp_ext.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
166ocsp_ext.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
167ocsp_ext.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
168ocsp_ext.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
169ocsp_ext.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
170ocsp_ext.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
171ocsp_ext.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
172ocsp_ext.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
173ocsp_ext.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
174ocsp_ext.o: ../cryptlib.h ocsp_ext.c
175ocsp_ht.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
176ocsp_ht.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
177ocsp_ht.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
178ocsp_ht.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
179ocsp_ht.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
180ocsp_ht.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
181ocsp_ht.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
182ocsp_ht.o: ../../include/openssl/err.h ../../include/openssl/evp.h
183ocsp_ht.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
184ocsp_ht.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
185ocsp_ht.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
186ocsp_ht.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
187ocsp_ht.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
188ocsp_ht.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
189ocsp_ht.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
190ocsp_ht.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
191ocsp_ht.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
192ocsp_ht.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
193ocsp_ht.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
194ocsp_ht.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
195ocsp_ht.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
196ocsp_ht.o: ../../include/openssl/x509v3.h ocsp_ht.c
197ocsp_lib.o: ../../e_os.h ../../include/openssl/aes.h
198ocsp_lib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
199ocsp_lib.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
200ocsp_lib.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
201ocsp_lib.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
202ocsp_lib.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
203ocsp_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
204ocsp_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
205ocsp_lib.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
206ocsp_lib.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
207ocsp_lib.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
208ocsp_lib.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
209ocsp_lib.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
210ocsp_lib.o: ../../include/openssl/opensslconf.h
211ocsp_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
212ocsp_lib.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
213ocsp_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
214ocsp_lib.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
215ocsp_lib.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
216ocsp_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
217ocsp_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
218ocsp_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
219ocsp_lib.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
220ocsp_lib.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
221ocsp_lib.o: ../cryptlib.h ocsp_lib.c
222ocsp_prn.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
223ocsp_prn.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
224ocsp_prn.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
225ocsp_prn.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
226ocsp_prn.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
227ocsp_prn.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
228ocsp_prn.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
229ocsp_prn.o: ../../include/openssl/err.h ../../include/openssl/evp.h
230ocsp_prn.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
231ocsp_prn.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
232ocsp_prn.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
233ocsp_prn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
234ocsp_prn.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
235ocsp_prn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
236ocsp_prn.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
237ocsp_prn.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
238ocsp_prn.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
239ocsp_prn.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
240ocsp_prn.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
241ocsp_prn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
242ocsp_prn.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
243ocsp_prn.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
244ocsp_prn.o: ../../include/openssl/x509v3.h ocsp_prn.c
245ocsp_srv.o: ../../e_os.h ../../include/openssl/aes.h
246ocsp_srv.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
247ocsp_srv.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
248ocsp_srv.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
249ocsp_srv.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
250ocsp_srv.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
251ocsp_srv.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
252ocsp_srv.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
253ocsp_srv.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
254ocsp_srv.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
255ocsp_srv.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
256ocsp_srv.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
257ocsp_srv.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
258ocsp_srv.o: ../../include/openssl/opensslconf.h
259ocsp_srv.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
260ocsp_srv.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
261ocsp_srv.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
262ocsp_srv.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
263ocsp_srv.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
264ocsp_srv.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
265ocsp_srv.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
266ocsp_srv.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
267ocsp_srv.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
268ocsp_srv.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
269ocsp_srv.o: ../cryptlib.h ocsp_srv.c
270ocsp_vfy.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
271ocsp_vfy.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
272ocsp_vfy.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
273ocsp_vfy.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
274ocsp_vfy.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
275ocsp_vfy.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
276ocsp_vfy.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
277ocsp_vfy.o: ../../include/openssl/err.h ../../include/openssl/evp.h
278ocsp_vfy.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
279ocsp_vfy.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
280ocsp_vfy.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
281ocsp_vfy.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
282ocsp_vfy.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
283ocsp_vfy.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
284ocsp_vfy.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
285ocsp_vfy.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
286ocsp_vfy.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
287ocsp_vfy.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
288ocsp_vfy.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
289ocsp_vfy.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
290ocsp_vfy.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
291ocsp_vfy.o: ../../include/openssl/x509v3.h ocsp_vfy.c
diff --git a/src/lib/libcrypto/pem/Makefile b/src/lib/libcrypto/pem/Makefile
new file mode 100644
index 0000000000..f3dfea2ac8
--- /dev/null
+++ b/src/lib/libcrypto/pem/Makefile
@@ -0,0 +1,335 @@
1#
2# SSLeay/crypto/pem/Makefile
3#
4
5DIR= pem
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= pem_sign.c pem_seal.c pem_info.c pem_lib.c pem_all.c pem_err.c \
26 pem_x509.c pem_xaux.c pem_oth.c pem_pk8.c pem_pkey.c
27
28LIBOBJ= pem_sign.o pem_seal.o pem_info.o pem_lib.o pem_all.o pem_err.o \
29 pem_x509.o pem_xaux.o pem_oth.o pem_pk8.o pem_pkey.o
30
31SRC= $(LIBSRC)
32
33EXHEADER= pem.h pem2.h
34HEADER= $(EXHEADER)
35
36ALL= $(GENERAL) $(SRC) $(HEADER)
37
38top:
39 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
40
41all: lib
42
43lib: $(LIBOBJ)
44 $(AR) $(LIB) $(LIBOBJ)
45 $(RANLIB) $(LIB) || echo Never mind.
46 @touch lib
47
48files:
49 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
50
51links: $(EXHEADER)
52 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
53 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
54 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
55
56install:
57 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
58 do \
59 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
60 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
61 done;
62
63tags:
64 ctags $(SRC)
65
66tests:
67
68lint:
69 lint -DLINT $(INCLUDES) $(SRC)>fluff
70
71depend:
72 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(LIBSRC)
73
74dclean:
75 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
76 mv -f Makefile.new $(MAKEFILE)
77
78clean:
79 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
80
81# DO NOT DELETE THIS LINE -- make depend depends on it.
82
83pem_all.o: ../../e_os.h ../../include/openssl/aes.h
84pem_all.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
85pem_all.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
86pem_all.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
87pem_all.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
88pem_all.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
89pem_all.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
90pem_all.o: ../../include/openssl/err.h ../../include/openssl/evp.h
91pem_all.o: ../../include/openssl/fips.h ../../include/openssl/idea.h
92pem_all.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
93pem_all.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
94pem_all.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
95pem_all.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
96pem_all.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
97pem_all.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
98pem_all.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
99pem_all.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
100pem_all.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
101pem_all.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
102pem_all.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
103pem_all.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
104pem_all.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
105pem_all.o: ../cryptlib.h pem_all.c
106pem_err.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
107pem_err.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
108pem_err.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
109pem_err.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
110pem_err.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
111pem_err.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
112pem_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
113pem_err.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
114pem_err.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
115pem_err.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
116pem_err.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
117pem_err.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
118pem_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
119pem_err.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
120pem_err.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
121pem_err.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
122pem_err.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
123pem_err.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
124pem_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
125pem_err.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
126pem_err.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
127pem_err.o: pem_err.c
128pem_info.o: ../../e_os.h ../../include/openssl/aes.h
129pem_info.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
130pem_info.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
131pem_info.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
132pem_info.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
133pem_info.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
134pem_info.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
135pem_info.o: ../../include/openssl/err.h ../../include/openssl/evp.h
136pem_info.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
137pem_info.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
138pem_info.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
139pem_info.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
140pem_info.o: ../../include/openssl/opensslconf.h
141pem_info.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
142pem_info.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
143pem_info.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
144pem_info.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
145pem_info.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
146pem_info.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
147pem_info.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
148pem_info.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
149pem_info.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
150pem_info.o: ../cryptlib.h pem_info.c
151pem_lib.o: ../../e_os.h ../../include/openssl/aes.h
152pem_lib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
153pem_lib.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
154pem_lib.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
155pem_lib.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
156pem_lib.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
157pem_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
158pem_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
159pem_lib.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
160pem_lib.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
161pem_lib.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
162pem_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
163pem_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
164pem_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
165pem_lib.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs12.h
166pem_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
167pem_lib.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
168pem_lib.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
169pem_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
170pem_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
171pem_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
172pem_lib.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
173pem_lib.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pem_lib.c
174pem_oth.o: ../../e_os.h ../../include/openssl/aes.h
175pem_oth.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
176pem_oth.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
177pem_oth.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
178pem_oth.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
179pem_oth.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
180pem_oth.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
181pem_oth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
182pem_oth.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
183pem_oth.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
184pem_oth.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
185pem_oth.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
186pem_oth.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
187pem_oth.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
188pem_oth.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
189pem_oth.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
190pem_oth.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
191pem_oth.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
192pem_oth.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
193pem_oth.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
194pem_oth.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
195pem_oth.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
196pem_oth.o: ../cryptlib.h pem_oth.c
197pem_pk8.o: ../../e_os.h ../../include/openssl/aes.h
198pem_pk8.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
199pem_pk8.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
200pem_pk8.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
201pem_pk8.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
202pem_pk8.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
203pem_pk8.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
204pem_pk8.o: ../../include/openssl/err.h ../../include/openssl/evp.h
205pem_pk8.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
206pem_pk8.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
207pem_pk8.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
208pem_pk8.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
209pem_pk8.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
210pem_pk8.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
211pem_pk8.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs12.h
212pem_pk8.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
213pem_pk8.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
214pem_pk8.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
215pem_pk8.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
216pem_pk8.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
217pem_pk8.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
218pem_pk8.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
219pem_pk8.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pem_pk8.c
220pem_pkey.o: ../../e_os.h ../../include/openssl/aes.h
221pem_pkey.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
222pem_pkey.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
223pem_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
224pem_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
225pem_pkey.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
226pem_pkey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
227pem_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
228pem_pkey.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
229pem_pkey.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
230pem_pkey.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
231pem_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
232pem_pkey.o: ../../include/openssl/opensslconf.h
233pem_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
234pem_pkey.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
235pem_pkey.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
236pem_pkey.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
237pem_pkey.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
238pem_pkey.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
239pem_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
240pem_pkey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
241pem_pkey.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
242pem_pkey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
243pem_pkey.o: ../cryptlib.h pem_pkey.c
244pem_seal.o: ../../e_os.h ../../include/openssl/aes.h
245pem_seal.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
246pem_seal.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
247pem_seal.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
248pem_seal.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
249pem_seal.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
250pem_seal.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
251pem_seal.o: ../../include/openssl/err.h ../../include/openssl/evp.h
252pem_seal.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
253pem_seal.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
254pem_seal.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
255pem_seal.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
256pem_seal.o: ../../include/openssl/opensslconf.h
257pem_seal.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
258pem_seal.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
259pem_seal.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
260pem_seal.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
261pem_seal.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
262pem_seal.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
263pem_seal.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
264pem_seal.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
265pem_seal.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
266pem_seal.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pem_seal.c
267pem_sign.o: ../../e_os.h ../../include/openssl/aes.h
268pem_sign.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
269pem_sign.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
270pem_sign.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
271pem_sign.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
272pem_sign.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
273pem_sign.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
274pem_sign.o: ../../include/openssl/err.h ../../include/openssl/evp.h
275pem_sign.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
276pem_sign.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
277pem_sign.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
278pem_sign.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
279pem_sign.o: ../../include/openssl/opensslconf.h
280pem_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
281pem_sign.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
282pem_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
283pem_sign.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
284pem_sign.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
285pem_sign.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
286pem_sign.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
287pem_sign.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
288pem_sign.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
289pem_sign.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pem_sign.c
290pem_x509.o: ../../e_os.h ../../include/openssl/aes.h
291pem_x509.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
292pem_x509.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
293pem_x509.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
294pem_x509.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
295pem_x509.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
296pem_x509.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
297pem_x509.o: ../../include/openssl/err.h ../../include/openssl/evp.h
298pem_x509.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
299pem_x509.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
300pem_x509.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
301pem_x509.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
302pem_x509.o: ../../include/openssl/opensslconf.h
303pem_x509.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
304pem_x509.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
305pem_x509.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
306pem_x509.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
307pem_x509.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
308pem_x509.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
309pem_x509.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
310pem_x509.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
311pem_x509.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
312pem_x509.o: ../cryptlib.h pem_x509.c
313pem_xaux.o: ../../e_os.h ../../include/openssl/aes.h
314pem_xaux.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
315pem_xaux.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
316pem_xaux.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
317pem_xaux.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
318pem_xaux.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
319pem_xaux.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
320pem_xaux.o: ../../include/openssl/err.h ../../include/openssl/evp.h
321pem_xaux.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
322pem_xaux.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
323pem_xaux.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
324pem_xaux.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
325pem_xaux.o: ../../include/openssl/opensslconf.h
326pem_xaux.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
327pem_xaux.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
328pem_xaux.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
329pem_xaux.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
330pem_xaux.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
331pem_xaux.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
332pem_xaux.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
333pem_xaux.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
334pem_xaux.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
335pem_xaux.o: ../cryptlib.h pem_xaux.c
diff --git a/src/lib/libcrypto/perlasm/x86ms.pl b/src/lib/libcrypto/perlasm/x86ms.pl
index fbb4afb9bd..b6bd744057 100644
--- a/src/lib/libcrypto/perlasm/x86ms.pl
+++ b/src/lib/libcrypto/perlasm/x86ms.pl
@@ -160,6 +160,7 @@ sub main'not { &out1("not",@_); }
160sub main'call { &out1("call",($_[0]=~/^\$L/?'':'_').$_[0]); } 160sub main'call { &out1("call",($_[0]=~/^\$L/?'':'_').$_[0]); }
161sub main'ret { &out0("ret"); } 161sub main'ret { &out0("ret"); }
162sub main'nop { &out0("nop"); } 162sub main'nop { &out0("nop"); }
163sub main'movz { &out2("movzx",@_); }
163 164
164sub out2 165sub out2
165 { 166 {
diff --git a/src/lib/libcrypto/perlasm/x86nasm.pl b/src/lib/libcrypto/perlasm/x86nasm.pl
index 30346af4ea..5009acb4b3 100644
--- a/src/lib/libcrypto/perlasm/x86nasm.pl
+++ b/src/lib/libcrypto/perlasm/x86nasm.pl
@@ -86,7 +86,7 @@ sub get_mem
86 { 86 {
87 my($size,$addr,$reg1,$reg2,$idx)=@_; 87 my($size,$addr,$reg1,$reg2,$idx)=@_;
88 my($t,$post); 88 my($t,$post);
89 my($ret)="["; 89 my($ret)="$size [";
90 $addr =~ s/^\s+//; 90 $addr =~ s/^\s+//;
91 if ($addr =~ /^(.+)\+(.+)$/) 91 if ($addr =~ /^(.+)\+(.+)$/)
92 { 92 {
@@ -169,6 +169,7 @@ sub main'not { &out1("not",@_); }
169sub main'call { &out1("call",($_[0]=~/^\$L/?'':'_').$_[0]); } 169sub main'call { &out1("call",($_[0]=~/^\$L/?'':'_').$_[0]); }
170sub main'ret { &out0("ret"); } 170sub main'ret { &out0("ret"); }
171sub main'nop { &out0("nop"); } 171sub main'nop { &out0("nop"); }
172sub main'movz { &out2("movzx",@_); }
172 173
173sub out2 174sub out2
174 { 175 {
@@ -176,6 +177,11 @@ sub out2
176 my($l,$t); 177 my($l,$t);
177 178
178 push(@out,"\t$name\t"); 179 push(@out,"\t$name\t");
180 if ($name eq "lea")
181 {
182 $p1 =~ s/^[^\[]*\[/\[/;
183 $p2 =~ s/^[^\[]*\[/\[/;
184 }
179 $t=&conv($p1).","; 185 $t=&conv($p1).",";
180 $l=length($t); 186 $l=length($t);
181 push(@out,$t); 187 push(@out,$t);
diff --git a/src/lib/libcrypto/perlasm/x86unix.pl b/src/lib/libcrypto/perlasm/x86unix.pl
index 10b669bf04..a31a25c12b 100644
--- a/src/lib/libcrypto/perlasm/x86unix.pl
+++ b/src/lib/libcrypto/perlasm/x86unix.pl
@@ -137,12 +137,12 @@ sub main'shl { &out2("sall",@_); }
137sub main'shr { &out2("shrl",@_); } 137sub main'shr { &out2("shrl",@_); }
138sub main'xor { &out2("xorl",@_); } 138sub main'xor { &out2("xorl",@_); }
139sub main'xorb { &out2("xorb",@_); } 139sub main'xorb { &out2("xorb",@_); }
140sub main'add { &out2("addl",@_); } 140sub main'add { &out2($_[0]=~/%[a-d][lh]/?"addb":"addl",@_); }
141sub main'adc { &out2("adcl",@_); } 141sub main'adc { &out2("adcl",@_); }
142sub main'sub { &out2("subl",@_); } 142sub main'sub { &out2("subl",@_); }
143sub main'rotl { &out2("roll",@_); } 143sub main'rotl { &out2("roll",@_); }
144sub main'rotr { &out2("rorl",@_); } 144sub main'rotr { &out2("rorl",@_); }
145sub main'exch { &out2("xchg",@_); } 145sub main'exch { &out2($_[0]=~/%[a-d][lh]/?"xchgb":"xchgl",@_); }
146sub main'cmp { &out2("cmpl",@_); } 146sub main'cmp { &out2("cmpl",@_); }
147sub main'lea { &out2("leal",@_); } 147sub main'lea { &out2("leal",@_); }
148sub main'mul { &out1("mull",@_); } 148sub main'mul { &out1("mull",@_); }
@@ -164,7 +164,7 @@ sub main'jc { &out1("jc",@_); }
164sub main'jnc { &out1("jnc",@_); } 164sub main'jnc { &out1("jnc",@_); }
165sub main'jno { &out1("jno",@_); } 165sub main'jno { &out1("jno",@_); }
166sub main'dec { &out1("decl",@_); } 166sub main'dec { &out1("decl",@_); }
167sub main'inc { &out1("incl",@_); } 167sub main'inc { &out1($_[0]=~/%[a-d][hl]/?"incb":"incl",@_); }
168sub main'push { &out1("pushl",@_); $stack+=4; } 168sub main'push { &out1("pushl",@_); $stack+=4; }
169sub main'pop { &out1("popl",@_); $stack-=4; } 169sub main'pop { &out1("popl",@_); $stack-=4; }
170sub main'pushf { &out0("pushf"); $stack+=4; } 170sub main'pushf { &out0("pushf"); $stack+=4; }
@@ -173,6 +173,7 @@ sub main'not { &out1("notl",@_); }
173sub main'call { &out1("call",($_[0]=~/^\.L/?'':$under).$_[0]); } 173sub main'call { &out1("call",($_[0]=~/^\.L/?'':$under).$_[0]); }
174sub main'ret { &out0("ret"); } 174sub main'ret { &out0("ret"); }
175sub main'nop { &out0("nop"); } 175sub main'nop { &out0("nop"); }
176sub main'movz { &out2("movzbl",@_); }
176 177
177# The bswapl instruction is new for the 486. Emulate if i386. 178# The bswapl instruction is new for the 486. Emulate if i386.
178sub main'bswap 179sub main'bswap
diff --git a/src/lib/libcrypto/pkcs12/Makefile b/src/lib/libcrypto/pkcs12/Makefile
new file mode 100644
index 0000000000..854b641f7c
--- /dev/null
+++ b/src/lib/libcrypto/pkcs12/Makefile
@@ -0,0 +1,415 @@
1#
2# SSLeay/crypto/pkcs12/Makefile
3#
4
5DIR= pkcs12
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= p12_add.c p12_asn.c p12_attr.c p12_crpt.c p12_crt.c p12_decr.c \
26 p12_init.c p12_key.c p12_kiss.c p12_mutl.c\
27 p12_utl.c p12_npas.c pk12err.c p12_p8d.c p12_p8e.c
28LIBOBJ= p12_add.o p12_asn.o p12_attr.o p12_crpt.o p12_crt.o p12_decr.o \
29 p12_init.o p12_key.o p12_kiss.o p12_mutl.o\
30 p12_utl.o p12_npas.o pk12err.o p12_p8d.o p12_p8e.o
31
32SRC= $(LIBSRC)
33
34EXHEADER= pkcs12.h
35HEADER= $(EXHEADER)
36
37ALL= $(GENERAL) $(SRC) $(HEADER)
38
39top:
40 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
41
42test:
43
44all: lib
45
46lib: $(LIBOBJ)
47 $(AR) $(LIB) $(LIBOBJ)
48 $(RANLIB) $(LIB) || echo Never mind.
49 @touch lib
50
51files:
52 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
53
54links:
55 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
56 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
57 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
58
59install:
60 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
61 do \
62 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
63 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
64 done;
65
66tags:
67 ctags $(SRC)
68
69tests:
70
71lint:
72 lint -DLINT $(INCLUDES) $(SRC)>fluff
73
74depend:
75 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
76
77dclean:
78 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
79 mv -f Makefile.new $(MAKEFILE)
80
81clean:
82 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
83
84# DO NOT DELETE THIS LINE -- make depend depends on it.
85
86p12_add.o: ../../e_os.h ../../include/openssl/aes.h
87p12_add.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
88p12_add.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
89p12_add.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
90p12_add.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
91p12_add.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
92p12_add.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
93p12_add.o: ../../include/openssl/err.h ../../include/openssl/evp.h
94p12_add.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
95p12_add.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
96p12_add.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
97p12_add.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
98p12_add.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
99p12_add.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
100p12_add.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
101p12_add.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
102p12_add.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
103p12_add.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
104p12_add.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
105p12_add.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
106p12_add.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
107p12_add.o: ../cryptlib.h p12_add.c
108p12_asn.o: ../../e_os.h ../../include/openssl/aes.h
109p12_asn.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
110p12_asn.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
111p12_asn.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
112p12_asn.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
113p12_asn.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
114p12_asn.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
115p12_asn.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
116p12_asn.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
117p12_asn.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
118p12_asn.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
119p12_asn.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
120p12_asn.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
121p12_asn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
122p12_asn.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
123p12_asn.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
124p12_asn.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
125p12_asn.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
126p12_asn.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
127p12_asn.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
128p12_asn.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
129p12_asn.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_asn.c
130p12_attr.o: ../../e_os.h ../../include/openssl/aes.h
131p12_attr.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
132p12_attr.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
133p12_attr.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
134p12_attr.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
135p12_attr.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
136p12_attr.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
137p12_attr.o: ../../include/openssl/err.h ../../include/openssl/evp.h
138p12_attr.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
139p12_attr.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
140p12_attr.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
141p12_attr.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
142p12_attr.o: ../../include/openssl/opensslconf.h
143p12_attr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
144p12_attr.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
145p12_attr.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
146p12_attr.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
147p12_attr.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
148p12_attr.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
149p12_attr.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
150p12_attr.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
151p12_attr.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_attr.c
152p12_crpt.o: ../../e_os.h ../../include/openssl/aes.h
153p12_crpt.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
154p12_crpt.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
155p12_crpt.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
156p12_crpt.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
157p12_crpt.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
158p12_crpt.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
159p12_crpt.o: ../../include/openssl/err.h ../../include/openssl/evp.h
160p12_crpt.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
161p12_crpt.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
162p12_crpt.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
163p12_crpt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
164p12_crpt.o: ../../include/openssl/opensslconf.h
165p12_crpt.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
166p12_crpt.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
167p12_crpt.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
168p12_crpt.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
169p12_crpt.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
170p12_crpt.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
171p12_crpt.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
172p12_crpt.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
173p12_crpt.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_crpt.c
174p12_crt.o: ../../e_os.h ../../include/openssl/aes.h
175p12_crt.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
176p12_crt.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
177p12_crt.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
178p12_crt.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
179p12_crt.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
180p12_crt.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
181p12_crt.o: ../../include/openssl/err.h ../../include/openssl/evp.h
182p12_crt.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
183p12_crt.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
184p12_crt.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
185p12_crt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
186p12_crt.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
187p12_crt.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
188p12_crt.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
189p12_crt.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
190p12_crt.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
191p12_crt.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
192p12_crt.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
193p12_crt.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
194p12_crt.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
195p12_crt.o: ../cryptlib.h p12_crt.c
196p12_decr.o: ../../e_os.h ../../include/openssl/aes.h
197p12_decr.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
198p12_decr.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
199p12_decr.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
200p12_decr.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
201p12_decr.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
202p12_decr.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
203p12_decr.o: ../../include/openssl/err.h ../../include/openssl/evp.h
204p12_decr.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
205p12_decr.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
206p12_decr.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
207p12_decr.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
208p12_decr.o: ../../include/openssl/opensslconf.h
209p12_decr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
210p12_decr.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
211p12_decr.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
212p12_decr.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
213p12_decr.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
214p12_decr.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
215p12_decr.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
216p12_decr.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
217p12_decr.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_decr.c
218p12_init.o: ../../e_os.h ../../include/openssl/aes.h
219p12_init.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
220p12_init.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
221p12_init.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
222p12_init.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
223p12_init.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
224p12_init.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
225p12_init.o: ../../include/openssl/err.h ../../include/openssl/evp.h
226p12_init.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
227p12_init.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
228p12_init.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
229p12_init.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
230p12_init.o: ../../include/openssl/opensslconf.h
231p12_init.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
232p12_init.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
233p12_init.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
234p12_init.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
235p12_init.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
236p12_init.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
237p12_init.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
238p12_init.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
239p12_init.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_init.c
240p12_key.o: ../../e_os.h ../../include/openssl/aes.h
241p12_key.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
242p12_key.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
243p12_key.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
244p12_key.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
245p12_key.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
246p12_key.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
247p12_key.o: ../../include/openssl/err.h ../../include/openssl/evp.h
248p12_key.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
249p12_key.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
250p12_key.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
251p12_key.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
252p12_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
253p12_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
254p12_key.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
255p12_key.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
256p12_key.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
257p12_key.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
258p12_key.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
259p12_key.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
260p12_key.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
261p12_key.o: ../cryptlib.h p12_key.c
262p12_kiss.o: ../../e_os.h ../../include/openssl/aes.h
263p12_kiss.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
264p12_kiss.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
265p12_kiss.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
266p12_kiss.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
267p12_kiss.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
268p12_kiss.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
269p12_kiss.o: ../../include/openssl/err.h ../../include/openssl/evp.h
270p12_kiss.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
271p12_kiss.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
272p12_kiss.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
273p12_kiss.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
274p12_kiss.o: ../../include/openssl/opensslconf.h
275p12_kiss.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
276p12_kiss.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
277p12_kiss.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
278p12_kiss.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
279p12_kiss.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
280p12_kiss.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
281p12_kiss.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
282p12_kiss.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
283p12_kiss.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_kiss.c
284p12_mutl.o: ../../e_os.h ../../include/openssl/aes.h
285p12_mutl.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
286p12_mutl.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
287p12_mutl.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
288p12_mutl.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
289p12_mutl.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
290p12_mutl.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
291p12_mutl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
292p12_mutl.o: ../../include/openssl/hmac.h ../../include/openssl/idea.h
293p12_mutl.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
294p12_mutl.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
295p12_mutl.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
296p12_mutl.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
297p12_mutl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
298p12_mutl.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
299p12_mutl.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
300p12_mutl.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
301p12_mutl.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
302p12_mutl.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
303p12_mutl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
304p12_mutl.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
305p12_mutl.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
306p12_mutl.o: ../cryptlib.h p12_mutl.c
307p12_npas.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
308p12_npas.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
309p12_npas.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
310p12_npas.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
311p12_npas.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
312p12_npas.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
313p12_npas.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
314p12_npas.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
315p12_npas.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
316p12_npas.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
317p12_npas.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
318p12_npas.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
319p12_npas.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
320p12_npas.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
321p12_npas.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
322p12_npas.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
323p12_npas.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
324p12_npas.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
325p12_npas.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
326p12_npas.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
327p12_npas.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
328p12_npas.o: ../../include/openssl/x509_vfy.h p12_npas.c
329p12_p8d.o: ../../e_os.h ../../include/openssl/aes.h
330p12_p8d.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
331p12_p8d.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
332p12_p8d.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
333p12_p8d.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
334p12_p8d.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
335p12_p8d.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
336p12_p8d.o: ../../include/openssl/err.h ../../include/openssl/evp.h
337p12_p8d.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
338p12_p8d.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
339p12_p8d.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
340p12_p8d.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
341p12_p8d.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
342p12_p8d.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
343p12_p8d.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
344p12_p8d.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
345p12_p8d.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
346p12_p8d.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
347p12_p8d.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
348p12_p8d.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
349p12_p8d.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
350p12_p8d.o: ../cryptlib.h p12_p8d.c
351p12_p8e.o: ../../e_os.h ../../include/openssl/aes.h
352p12_p8e.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
353p12_p8e.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
354p12_p8e.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
355p12_p8e.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
356p12_p8e.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
357p12_p8e.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
358p12_p8e.o: ../../include/openssl/err.h ../../include/openssl/evp.h
359p12_p8e.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
360p12_p8e.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
361p12_p8e.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
362p12_p8e.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
363p12_p8e.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
364p12_p8e.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
365p12_p8e.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
366p12_p8e.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
367p12_p8e.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
368p12_p8e.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
369p12_p8e.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
370p12_p8e.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
371p12_p8e.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
372p12_p8e.o: ../cryptlib.h p12_p8e.c
373p12_utl.o: ../../e_os.h ../../include/openssl/aes.h
374p12_utl.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
375p12_utl.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
376p12_utl.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
377p12_utl.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
378p12_utl.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
379p12_utl.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
380p12_utl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
381p12_utl.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
382p12_utl.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
383p12_utl.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
384p12_utl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
385p12_utl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
386p12_utl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
387p12_utl.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
388p12_utl.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
389p12_utl.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
390p12_utl.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
391p12_utl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
392p12_utl.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
393p12_utl.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
394p12_utl.o: ../cryptlib.h p12_utl.c
395pk12err.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
396pk12err.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
397pk12err.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
398pk12err.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
399pk12err.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
400pk12err.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
401pk12err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
402pk12err.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
403pk12err.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
404pk12err.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
405pk12err.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
406pk12err.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
407pk12err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
408pk12err.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
409pk12err.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
410pk12err.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
411pk12err.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
412pk12err.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
413pk12err.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
414pk12err.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
415pk12err.o: ../../include/openssl/x509_vfy.h pk12err.c
diff --git a/src/lib/libcrypto/pkcs7/Makefile b/src/lib/libcrypto/pkcs7/Makefile
new file mode 100644
index 0000000000..f15c65f690
--- /dev/null
+++ b/src/lib/libcrypto/pkcs7/Makefile
@@ -0,0 +1,241 @@
1#
2# SSLeay/crypto/pkcs7/Makefile
3#
4
5DIR= pkcs7
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18PEX_LIBS=
19EX_LIBS=
20
21CFLAGS= $(INCLUDES) $(CFLAG)
22
23GENERAL=Makefile README
24TEST=
25APPS=
26
27LIB=$(TOP)/libcrypto.a
28LIBSRC= pk7_asn1.c pk7_lib.c pkcs7err.c pk7_doit.c pk7_smime.c pk7_attr.c \
29 pk7_mime.c
30LIBOBJ= pk7_asn1.o pk7_lib.o pkcs7err.o pk7_doit.o pk7_smime.o pk7_attr.o \
31 pk7_mime.o
32
33SRC= $(LIBSRC)
34
35EXHEADER= pkcs7.h
36HEADER= $(EXHEADER)
37
38ALL= $(GENERAL) $(SRC) $(HEADER)
39
40top:
41 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
42
43test:
44
45all: lib
46
47testapps: enc dec sign verify
48
49enc: enc.o lib
50 $(CC) $(CFLAGS) -o enc enc.o $(PEX_LIBS) $(LIB) $(EX_LIBS)
51
52dec: dec.o lib
53 $(CC) $(CFLAGS) -o dec dec.o $(PEX_LIBS) $(LIB) $(EX_LIBS)
54
55sign: sign.o lib
56 $(CC) $(CFLAGS) -o sign sign.o $(PEX_LIBS) $(LIB) $(EX_LIBS)
57
58verify: verify.o example.o lib
59 $(CC) $(CFLAGS) -o verify verify.o $(PEX_LIBS) example.o $(LIB) $(EX_LIBS)
60
61lib: $(LIBOBJ)
62 $(AR) $(LIB) $(LIBOBJ)
63 $(RANLIB) $(LIB) || echo Never mind.
64 @touch lib
65
66files:
67 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
68
69links:
70 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
71 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
72 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
73
74install:
75 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
76 do \
77 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
78 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
79 done;
80
81tags:
82 ctags $(SRC)
83
84tests:
85
86lint:
87 lint -DLINT $(INCLUDES) $(SRC)>fluff
88
89depend:
90 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
91
92dclean:
93 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
94 mv -f Makefile.new $(MAKEFILE)
95
96clean:
97 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff enc dec sign verify
98
99# DO NOT DELETE THIS LINE -- make depend depends on it.
100
101pk7_asn1.o: ../../e_os.h ../../include/openssl/aes.h
102pk7_asn1.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
103pk7_asn1.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
104pk7_asn1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
105pk7_asn1.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
106pk7_asn1.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
107pk7_asn1.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
108pk7_asn1.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
109pk7_asn1.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
110pk7_asn1.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
111pk7_asn1.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
112pk7_asn1.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
113pk7_asn1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
114pk7_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
115pk7_asn1.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
116pk7_asn1.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
117pk7_asn1.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
118pk7_asn1.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
119pk7_asn1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
120pk7_asn1.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
121pk7_asn1.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
122pk7_asn1.o: ../cryptlib.h pk7_asn1.c
123pk7_attr.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
124pk7_attr.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
125pk7_attr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
126pk7_attr.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
127pk7_attr.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
128pk7_attr.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
129pk7_attr.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
130pk7_attr.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
131pk7_attr.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
132pk7_attr.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
133pk7_attr.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
134pk7_attr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
135pk7_attr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
136pk7_attr.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
137pk7_attr.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
138pk7_attr.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
139pk7_attr.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
140pk7_attr.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
141pk7_attr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
142pk7_attr.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
143pk7_attr.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
144pk7_attr.o: pk7_attr.c
145pk7_doit.o: ../../e_os.h ../../include/openssl/aes.h
146pk7_doit.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
147pk7_doit.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
148pk7_doit.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
149pk7_doit.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
150pk7_doit.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
151pk7_doit.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
152pk7_doit.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
153pk7_doit.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
154pk7_doit.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
155pk7_doit.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
156pk7_doit.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
157pk7_doit.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
158pk7_doit.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
159pk7_doit.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
160pk7_doit.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
161pk7_doit.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
162pk7_doit.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
163pk7_doit.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
164pk7_doit.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
165pk7_doit.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
166pk7_doit.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
167pk7_doit.o: ../cryptlib.h pk7_doit.c
168pk7_lib.o: ../../e_os.h ../../include/openssl/aes.h
169pk7_lib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
170pk7_lib.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
171pk7_lib.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
172pk7_lib.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
173pk7_lib.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
174pk7_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
175pk7_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
176pk7_lib.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
177pk7_lib.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
178pk7_lib.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
179pk7_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
180pk7_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
181pk7_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
182pk7_lib.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
183pk7_lib.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
184pk7_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
185pk7_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
186pk7_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
187pk7_lib.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
188pk7_lib.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pk7_lib.c
189pk7_mime.o: ../../e_os.h ../../include/openssl/aes.h
190pk7_mime.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
191pk7_mime.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
192pk7_mime.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
193pk7_mime.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
194pk7_mime.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
195pk7_mime.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
196pk7_mime.o: ../../include/openssl/err.h ../../include/openssl/evp.h
197pk7_mime.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
198pk7_mime.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
199pk7_mime.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
200pk7_mime.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
201pk7_mime.o: ../../include/openssl/opensslconf.h
202pk7_mime.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
203pk7_mime.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
204pk7_mime.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
205pk7_mime.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
206pk7_mime.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
207pk7_mime.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
208pk7_mime.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
209pk7_mime.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
210pk7_mime.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pk7_mime.c
211pk7_smime.o: ../../e_os.h ../../include/openssl/aes.h
212pk7_smime.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
213pk7_smime.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
214pk7_smime.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
215pk7_smime.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
216pk7_smime.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
217pk7_smime.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
218pk7_smime.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
219pk7_smime.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
220pk7_smime.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
221pk7_smime.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
222pk7_smime.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
223pk7_smime.o: ../../include/openssl/objects.h
224pk7_smime.o: ../../include/openssl/opensslconf.h
225pk7_smime.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
226pk7_smime.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
227pk7_smime.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
228pk7_smime.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
229pk7_smime.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
230pk7_smime.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
231pk7_smime.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
232pk7_smime.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
233pk7_smime.o: ../../include/openssl/x509v3.h ../cryptlib.h pk7_smime.c
234pkcs7err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
235pkcs7err.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
236pkcs7err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
237pkcs7err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
238pkcs7err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
239pkcs7err.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
240pkcs7err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
241pkcs7err.o: pkcs7err.c
diff --git a/src/lib/libcrypto/rand/Makefile b/src/lib/libcrypto/rand/Makefile
new file mode 100644
index 0000000000..665eaa18e5
--- /dev/null
+++ b/src/lib/libcrypto/rand/Makefile
@@ -0,0 +1,196 @@
1#
2# SSLeay/crypto/rand/Makefile
3#
4
5DIR= rand
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST= randtest.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=md_rand.c randfile.c rand_lib.c rand_err.c rand_egd.c \
26 rand_win.c rand_unix.c rand_os2.c
27LIBOBJ=md_rand.o randfile.o rand_lib.o rand_err.o rand_egd.o \
28 rand_win.o rand_unix.o rand_os2.o
29
30SRC= $(LIBSRC)
31
32EXHEADER= rand.h
33HEADER= $(EXHEADER)
34
35ALL= $(GENERAL) $(SRC) $(HEADER)
36
37top:
38 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
39
40all: lib
41
42lib: $(LIBOBJ)
43 $(AR) $(LIB) $(LIBOBJ)
44 $(RANLIB) $(LIB) || echo Never mind.
45 @touch lib
46
47files:
48 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
49
50links:
51 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
52 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
53 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
54
55install:
56 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
57 do \
58 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
59 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
60 done;
61
62tags:
63 ctags $(SRC)
64
65tests:
66
67lint:
68 lint -DLINT $(INCLUDES) $(SRC)>fluff
69
70depend:
71 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
72
73dclean:
74 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
75 mv -f Makefile.new $(MAKEFILE)
76
77clean:
78 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
79
80# DO NOT DELETE THIS LINE -- make depend depends on it.
81
82md_rand.o: ../../e_os.h ../../include/openssl/aes.h
83md_rand.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
84md_rand.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
85md_rand.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
86md_rand.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
87md_rand.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
88md_rand.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
89md_rand.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
90md_rand.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
91md_rand.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
92md_rand.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
93md_rand.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
94md_rand.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
95md_rand.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
96md_rand.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
97md_rand.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
98md_rand.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
99md_rand.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
100md_rand.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
101md_rand.o: ../../include/openssl/ui_compat.h md_rand.c rand_lcl.h
102rand_egd.o: ../../include/openssl/buffer.h ../../include/openssl/e_os2.h
103rand_egd.o: ../../include/openssl/opensslconf.h
104rand_egd.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
105rand_egd.o: rand_egd.c
106rand_err.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
107rand_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
108rand_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
109rand_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
110rand_err.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
111rand_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
112rand_err.o: rand_err.c
113rand_lib.o: ../../e_os.h ../../include/openssl/asn1.h
114rand_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
115rand_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
116rand_lib.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
117rand_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
118rand_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
119rand_lib.o: ../../include/openssl/err.h ../../include/openssl/fips.h
120rand_lib.o: ../../include/openssl/fips_rand.h ../../include/openssl/lhash.h
121rand_lib.o: ../../include/openssl/opensslconf.h
122rand_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
123rand_lib.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
124rand_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
125rand_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
126rand_lib.o: ../../include/openssl/ui_compat.h ../cryptlib.h rand_lib.c
127rand_os2.o: ../../e_os.h ../../include/openssl/aes.h
128rand_os2.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
129rand_os2.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
130rand_os2.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
131rand_os2.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
132rand_os2.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
133rand_os2.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
134rand_os2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
135rand_os2.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
136rand_os2.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
137rand_os2.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
138rand_os2.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
139rand_os2.o: ../../include/openssl/opensslconf.h
140rand_os2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
141rand_os2.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
142rand_os2.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
143rand_os2.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
144rand_os2.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
145rand_os2.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
146rand_os2.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
147rand_os2.o: ../cryptlib.h rand_lcl.h rand_os2.c
148rand_unix.o: ../../e_os.h ../../include/openssl/aes.h
149rand_unix.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
150rand_unix.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
151rand_unix.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
152rand_unix.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
153rand_unix.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
154rand_unix.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
155rand_unix.o: ../../include/openssl/err.h ../../include/openssl/evp.h
156rand_unix.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
157rand_unix.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
158rand_unix.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
159rand_unix.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
160rand_unix.o: ../../include/openssl/opensslconf.h
161rand_unix.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
162rand_unix.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
163rand_unix.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
164rand_unix.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
165rand_unix.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
166rand_unix.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
167rand_unix.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
168rand_unix.o: ../cryptlib.h rand_lcl.h rand_unix.c
169rand_win.o: ../../e_os.h ../../include/openssl/aes.h
170rand_win.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
171rand_win.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
172rand_win.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
173rand_win.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
174rand_win.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
175rand_win.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
176rand_win.o: ../../include/openssl/err.h ../../include/openssl/evp.h
177rand_win.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
178rand_win.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
179rand_win.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
180rand_win.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
181rand_win.o: ../../include/openssl/opensslconf.h
182rand_win.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
183rand_win.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
184rand_win.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
185rand_win.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
186rand_win.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
187rand_win.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
188rand_win.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
189rand_win.o: ../cryptlib.h rand_lcl.h rand_win.c
190randfile.o: ../../e_os.h ../../include/openssl/buffer.h
191randfile.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
192randfile.o: ../../include/openssl/opensslconf.h
193randfile.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
194randfile.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
195randfile.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
196randfile.o: randfile.c
diff --git a/src/lib/libcrypto/rand/md_rand.c b/src/lib/libcrypto/rand/md_rand.c
index eeffc0df4c..c84968df88 100644
--- a/src/lib/libcrypto/rand/md_rand.c
+++ b/src/lib/libcrypto/rand/md_rand.c
@@ -126,6 +126,7 @@
126 126
127#include <openssl/crypto.h> 127#include <openssl/crypto.h>
128#include <openssl/err.h> 128#include <openssl/err.h>
129#include <openssl/fips.h>
129 130
130#ifdef BN_DEBUG 131#ifdef BN_DEBUG
131# define PREDICT 132# define PREDICT
@@ -332,6 +333,14 @@ static int ssleay_rand_bytes(unsigned char *buf, int num)
332#endif 333#endif
333 int do_stir_pool = 0; 334 int do_stir_pool = 0;
334 335
336#ifdef OPENSSL_FIPS
337 if(FIPS_mode())
338 {
339 FIPSerr(FIPS_F_SSLEAY_RAND_BYTES,FIPS_R_NON_FIPS_METHOD);
340 return 0;
341 }
342#endif
343
335#ifdef PREDICT 344#ifdef PREDICT
336 if (rand_predictable) 345 if (rand_predictable)
337 { 346 {
diff --git a/src/lib/libcrypto/rand/rand_egd.c b/src/lib/libcrypto/rand/rand_egd.c
index 6f742900a0..cd666abfcb 100644
--- a/src/lib/libcrypto/rand/rand_egd.c
+++ b/src/lib/libcrypto/rand/rand_egd.c
@@ -95,7 +95,7 @@
95 * RAND_egd() is a wrapper for RAND_egd_bytes() with numbytes=255. 95 * RAND_egd() is a wrapper for RAND_egd_bytes() with numbytes=255.
96 */ 96 */
97 97
98#if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_VXWORKS) 98#if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_VOS)
99int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes) 99int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes)
100 { 100 {
101 return(-1); 101 return(-1);
@@ -216,7 +216,9 @@ int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes)
216 while (numbytes != 1) 216 while (numbytes != 1)
217 { 217 {
218 num = read(fd, egdbuf, 1); 218 num = read(fd, egdbuf, 1);
219 if (num >= 0) 219 if (num == 0)
220 goto err; /* descriptor closed */
221 else if (num > 0)
220 numbytes += num; 222 numbytes += num;
221 else 223 else
222 { 224 {
@@ -246,7 +248,9 @@ int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes)
246 while (numbytes != egdbuf[0]) 248 while (numbytes != egdbuf[0])
247 { 249 {
248 num = read(fd, retrievebuf + numbytes, egdbuf[0] - numbytes); 250 num = read(fd, retrievebuf + numbytes, egdbuf[0] - numbytes);
249 if (num >= 0) 251 if (num == 0)
252 goto err; /* descriptor closed */
253 else if (num > 0)
250 numbytes += num; 254 numbytes += num;
251 else 255 else
252 { 256 {
diff --git a/src/lib/libcrypto/rand/rand_unix.c b/src/lib/libcrypto/rand/rand_unix.c
index 0599719dd1..9376554fae 100644
--- a/src/lib/libcrypto/rand/rand_unix.c
+++ b/src/lib/libcrypto/rand/rand_unix.c
@@ -120,6 +120,7 @@
120#include <sys/types.h> 120#include <sys/types.h>
121#include <sys/time.h> 121#include <sys/time.h>
122#include <sys/times.h> 122#include <sys/times.h>
123#include <sys/stat.h>
123#include <fcntl.h> 124#include <fcntl.h>
124#include <unistd.h> 125#include <unistd.h>
125#include <time.h> 126#include <time.h>
@@ -151,9 +152,9 @@ int RAND_poll(void)
151 int n = 0; 152 int n = 0;
152#endif 153#endif
153#ifdef DEVRANDOM 154#ifdef DEVRANDOM
154 static const char *randomfiles[] = { DEVRANDOM, NULL }; 155 static const char *randomfiles[] = { DEVRANDOM };
155 const char **randomfile = NULL; 156 struct stat randomstats[sizeof(randomfiles)/sizeof(randomfiles[0])];
156 int fd; 157 int fd,i;
157#endif 158#endif
158#ifdef DEVRANDOM_EGD 159#ifdef DEVRANDOM_EGD
159 static const char *egdsockets[] = { DEVRANDOM_EGD, NULL }; 160 static const char *egdsockets[] = { DEVRANDOM_EGD, NULL };
@@ -161,26 +162,42 @@ int RAND_poll(void)
161#endif 162#endif
162 163
163#ifdef DEVRANDOM 164#ifdef DEVRANDOM
165 memset(randomstats,0,sizeof(randomstats));
164 /* Use a random entropy pool device. Linux, FreeBSD and OpenBSD 166 /* Use a random entropy pool device. Linux, FreeBSD and OpenBSD
165 * have this. Use /dev/urandom if you can as /dev/random may block 167 * have this. Use /dev/urandom if you can as /dev/random may block
166 * if it runs out of random entries. */ 168 * if it runs out of random entries. */
167 169
168 for (randomfile = randomfiles; *randomfile && n < ENTROPY_NEEDED; randomfile++) 170 for (i=0; i<sizeof(randomfiles)/sizeof(randomfiles[0]) && n < ENTROPY_NEEDED; i++)
169 { 171 {
170 if ((fd = open(*randomfile, O_RDONLY|O_NONBLOCK 172 if ((fd = open(randomfiles[i], O_RDONLY
173#ifdef O_NONBLOCK
174 |O_NONBLOCK
175#endif
176#ifdef O_BINARY
177 |O_BINARY
178#endif
171#ifdef O_NOCTTY /* If it happens to be a TTY (god forbid), do not make it 179#ifdef O_NOCTTY /* If it happens to be a TTY (god forbid), do not make it
172 our controlling tty */ 180 our controlling tty */
173 |O_NOCTTY 181 |O_NOCTTY
174#endif 182#endif
175#ifdef O_NOFOLLOW /* Fail if the file is a symbolic link */
176 |O_NOFOLLOW
177#endif
178 )) >= 0) 183 )) >= 0)
179 { 184 {
180 struct timeval t = { 0, 10*1000 }; /* Spend 10ms on 185 struct timeval t = { 0, 10*1000 }; /* Spend 10ms on
181 each file. */ 186 each file. */
182 int r; 187 int r,j;
183 fd_set fset; 188 fd_set fset;
189 struct stat *st=&randomstats[i];
190
191 /* Avoid using same input... Used to be O_NOFOLLOW
192 * above, but it's not universally appropriate... */
193 if (fstat(fd,st) != 0) { close(fd); continue; }
194 for (j=0;j<i;j++)
195 {
196 if (randomstats[j].st_ino==st->st_ino &&
197 randomstats[j].st_dev==st->st_dev)
198 break;
199 }
200 if (j<i) { close(fd); continue; }
184 201
185 do 202 do
186 { 203 {
diff --git a/src/lib/libcrypto/rand/rand_vms.c b/src/lib/libcrypto/rand/rand_vms.c
index 29b2d7af0b..1267a3acae 100644
--- a/src/lib/libcrypto/rand/rand_vms.c
+++ b/src/lib/libcrypto/rand/rand_vms.c
@@ -101,11 +101,12 @@ int RAND_poll(void)
101 pitem = item; 101 pitem = item;
102 102
103 /* Setup */ 103 /* Setup */
104 while (pitems_data->length) 104 while (pitems_data->length
105 && (total_length + pitems_data->length <= 256))
105 { 106 {
106 pitem->length = pitems_data->length; 107 pitem->length = pitems_data->length;
107 pitem->code = pitems_data->code; 108 pitem->code = pitems_data->code;
108 pitem->buffer = (long *)data_buffer[total_length]; 109 pitem->buffer = (long *)&data_buffer[total_length];
109 pitem->retlen = 0; 110 pitem->retlen = 0;
110 total_length += pitems_data->length; 111 total_length += pitems_data->length;
111 pitems_data++; 112 pitems_data++;
diff --git a/src/lib/libcrypto/rand/rand_win.c b/src/lib/libcrypto/rand/rand_win.c
index 3584842224..30c69161ef 100644
--- a/src/lib/libcrypto/rand/rand_win.c
+++ b/src/lib/libcrypto/rand/rand_win.c
@@ -125,7 +125,7 @@
125 * http://developer.intel.com/design/security/rng/redist_license.htm 125 * http://developer.intel.com/design/security/rng/redist_license.htm
126 */ 126 */
127#define PROV_INTEL_SEC 22 127#define PROV_INTEL_SEC 22
128#define INTEL_DEF_PROV TEXT("Intel Hardware Cryptographic Service Provider") 128#define INTEL_DEF_PROV L"Intel Hardware Cryptographic Service Provider"
129 129
130static void readtimer(void); 130static void readtimer(void);
131static void readscreen(void); 131static void readscreen(void);
@@ -152,7 +152,7 @@ typedef struct tagCURSORINFO
152#define CURSOR_SHOWING 0x00000001 152#define CURSOR_SHOWING 0x00000001
153#endif /* CURSOR_SHOWING */ 153#endif /* CURSOR_SHOWING */
154 154
155typedef BOOL (WINAPI *CRYPTACQUIRECONTEXT)(HCRYPTPROV *, LPCTSTR, LPCTSTR, 155typedef BOOL (WINAPI *CRYPTACQUIRECONTEXTW)(HCRYPTPROV *, LPCWSTR, LPCWSTR,
156 DWORD, DWORD); 156 DWORD, DWORD);
157typedef BOOL (WINAPI *CRYPTGENRANDOM)(HCRYPTPROV, DWORD, BYTE *); 157typedef BOOL (WINAPI *CRYPTGENRANDOM)(HCRYPTPROV, DWORD, BYTE *);
158typedef BOOL (WINAPI *CRYPTRELEASECONTEXT)(HCRYPTPROV, DWORD); 158typedef BOOL (WINAPI *CRYPTRELEASECONTEXT)(HCRYPTPROV, DWORD);
@@ -194,7 +194,7 @@ int RAND_poll(void)
194 HWND h; 194 HWND h;
195 195
196 HMODULE advapi, kernel, user, netapi; 196 HMODULE advapi, kernel, user, netapi;
197 CRYPTACQUIRECONTEXT acquire = 0; 197 CRYPTACQUIRECONTEXTW acquire = 0;
198 CRYPTGENRANDOM gen = 0; 198 CRYPTGENRANDOM gen = 0;
199 CRYPTRELEASECONTEXT release = 0; 199 CRYPTRELEASECONTEXT release = 0;
200#if 1 /* There was previously a problem with NETSTATGET. Currently, this 200#if 1 /* There was previously a problem with NETSTATGET. Currently, this
@@ -213,6 +213,9 @@ int RAND_poll(void)
213 GetVersionEx( &osverinfo ) ; 213 GetVersionEx( &osverinfo ) ;
214 214
215#if defined(OPENSSL_SYS_WINCE) && WCEPLATFORM!=MS_HPC_PRO 215#if defined(OPENSSL_SYS_WINCE) && WCEPLATFORM!=MS_HPC_PRO
216#ifndef CryptAcquireContext
217#define CryptAcquireContext CryptAcquireContextW
218#endif
216 /* poll the CryptoAPI PRNG */ 219 /* poll the CryptoAPI PRNG */
217 /* The CryptoAPI returns sizeof(buf) bytes of randomness */ 220 /* The CryptoAPI returns sizeof(buf) bytes of randomness */
218 if (CryptAcquireContext(&hProvider, 0, 0, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) 221 if (CryptAcquireContext(&hProvider, 0, 0, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
@@ -223,21 +226,35 @@ int RAND_poll(void)
223 } 226 }
224#endif 227#endif
225 228
229#ifndef OPENSSL_SYS_WINCE
230 /*
231 * None of below libraries are present on Windows CE, which is
232 * why we #ifndef the whole section. This also excuses us from
233 * handling the GetProcAddress issue. The trouble is that in
234 * real Win32 API GetProcAddress is available in ANSI flavor
235 * only. In WinCE on the other hand GetProcAddress is a macro
236 * most commonly defined as GetProcAddressW, which accepts
237 * Unicode argument. If we were to call GetProcAddress under
238 * WinCE, I'd recommend to either redefine GetProcAddress as
239 * GetProcAddressA (there seem to be one in common CE spec) or
240 * implement own shim routine, which would accept ANSI argument
241 * and expand it to Unicode.
242 */
243
226 /* load functions dynamically - not available on all systems */ 244 /* load functions dynamically - not available on all systems */
227 advapi = LoadLibrary(TEXT("ADVAPI32.DLL")); 245 advapi = LoadLibrary(TEXT("ADVAPI32.DLL"));
228 kernel = LoadLibrary(TEXT("KERNEL32.DLL")); 246 kernel = LoadLibrary(TEXT("KERNEL32.DLL"));
229 user = LoadLibrary(TEXT("USER32.DLL")); 247 user = LoadLibrary(TEXT("USER32.DLL"));
230 netapi = LoadLibrary(TEXT("NETAPI32.DLL")); 248 netapi = LoadLibrary(TEXT("NETAPI32.DLL"));
231 249
232#ifndef OPENSSL_SYS_WINCE
233#if 1 /* There was previously a problem with NETSTATGET. Currently, this 250#if 1 /* There was previously a problem with NETSTATGET. Currently, this
234 * section is still experimental, but if all goes well, this conditional 251 * section is still experimental, but if all goes well, this conditional
235 * will be removed 252 * will be removed
236 */ 253 */
237 if (netapi) 254 if (netapi)
238 { 255 {
239 netstatget = (NETSTATGET) GetProcAddress(netapi,TEXT("NetStatisticsGet")); 256 netstatget = (NETSTATGET) GetProcAddress(netapi,"NetStatisticsGet");
240 netfree = (NETFREE) GetProcAddress(netapi,TEXT("NetApiBufferFree")); 257 netfree = (NETFREE) GetProcAddress(netapi,"NetApiBufferFree");
241 } 258 }
242 259
243 if (netstatget && netfree) 260 if (netstatget && netfree)
@@ -264,9 +281,7 @@ int RAND_poll(void)
264 if (netapi) 281 if (netapi)
265 FreeLibrary(netapi); 282 FreeLibrary(netapi);
266#endif /* 1 */ 283#endif /* 1 */
267#endif /* !OPENSSL_SYS_WINCE */ 284
268
269#ifndef OPENSSL_SYS_WINCE
270 /* It appears like this can cause an exception deep within ADVAPI32.DLL 285 /* It appears like this can cause an exception deep within ADVAPI32.DLL
271 * at random times on Windows 2000. Reported by Jeffrey Altman. 286 * at random times on Windows 2000. Reported by Jeffrey Altman.
272 * Only use it on NT. 287 * Only use it on NT.
@@ -321,16 +336,20 @@ int RAND_poll(void)
321 free(buf); 336 free(buf);
322 } 337 }
323#endif 338#endif
324#endif /* !OPENSSL_SYS_WINCE */
325 339
326 if (advapi) 340 if (advapi)
327 { 341 {
328 acquire = (CRYPTACQUIRECONTEXT) GetProcAddress(advapi, 342 /*
329 TEXT("CryptAcquireContextA")); 343 * If it's available, then it's available in both ANSI
344 * and UNICODE flavors even in Win9x, documentation says.
345 * We favor Unicode...
346 */
347 acquire = (CRYPTACQUIRECONTEXTW) GetProcAddress(advapi,
348 "CryptAcquireContextW");
330 gen = (CRYPTGENRANDOM) GetProcAddress(advapi, 349 gen = (CRYPTGENRANDOM) GetProcAddress(advapi,
331 TEXT("CryptGenRandom")); 350 "CryptGenRandom");
332 release = (CRYPTRELEASECONTEXT) GetProcAddress(advapi, 351 release = (CRYPTRELEASECONTEXT) GetProcAddress(advapi,
333 TEXT("CryptReleaseContext")); 352 "CryptReleaseContext");
334 } 353 }
335 354
336 if (acquire && gen && release) 355 if (acquire && gen && release)
@@ -367,26 +386,15 @@ int RAND_poll(void)
367 if (advapi) 386 if (advapi)
368 FreeLibrary(advapi); 387 FreeLibrary(advapi);
369 388
370 /* timer data */
371 readtimer();
372
373 /* memory usage statistics */
374 GlobalMemoryStatus(&m);
375 RAND_add(&m, sizeof(m), 1);
376
377 /* process ID */
378 w = GetCurrentProcessId();
379 RAND_add(&w, sizeof(w), 1);
380
381 if (user) 389 if (user)
382 { 390 {
383 GETCURSORINFO cursor; 391 GETCURSORINFO cursor;
384 GETFOREGROUNDWINDOW win; 392 GETFOREGROUNDWINDOW win;
385 GETQUEUESTATUS queue; 393 GETQUEUESTATUS queue;
386 394
387 win = (GETFOREGROUNDWINDOW) GetProcAddress(user, TEXT("GetForegroundWindow")); 395 win = (GETFOREGROUNDWINDOW) GetProcAddress(user, "GetForegroundWindow");
388 cursor = (GETCURSORINFO) GetProcAddress(user, TEXT("GetCursorInfo")); 396 cursor = (GETCURSORINFO) GetProcAddress(user, "GetCursorInfo");
389 queue = (GETQUEUESTATUS) GetProcAddress(user, TEXT("GetQueueStatus")); 397 queue = (GETQUEUESTATUS) GetProcAddress(user, "GetQueueStatus");
390 398
391 if (win) 399 if (win)
392 { 400 {
@@ -458,19 +466,19 @@ int RAND_poll(void)
458 MODULEENTRY32 m; 466 MODULEENTRY32 m;
459 467
460 snap = (CREATETOOLHELP32SNAPSHOT) 468 snap = (CREATETOOLHELP32SNAPSHOT)
461 GetProcAddress(kernel, TEXT("CreateToolhelp32Snapshot")); 469 GetProcAddress(kernel, "CreateToolhelp32Snapshot");
462 close_snap = (CLOSETOOLHELP32SNAPSHOT) 470 close_snap = (CLOSETOOLHELP32SNAPSHOT)
463 GetProcAddress(kernel, TEXT("CloseToolhelp32Snapshot")); 471 GetProcAddress(kernel, "CloseToolhelp32Snapshot");
464 heap_first = (HEAP32FIRST) GetProcAddress(kernel, TEXT("Heap32First")); 472 heap_first = (HEAP32FIRST) GetProcAddress(kernel, "Heap32First");
465 heap_next = (HEAP32NEXT) GetProcAddress(kernel, TEXT("Heap32Next")); 473 heap_next = (HEAP32NEXT) GetProcAddress(kernel, "Heap32Next");
466 heaplist_first = (HEAP32LIST) GetProcAddress(kernel, TEXT("Heap32ListFirst")); 474 heaplist_first = (HEAP32LIST) GetProcAddress(kernel, "Heap32ListFirst");
467 heaplist_next = (HEAP32LIST) GetProcAddress(kernel, TEXT("Heap32ListNext")); 475 heaplist_next = (HEAP32LIST) GetProcAddress(kernel, "Heap32ListNext");
468 process_first = (PROCESS32) GetProcAddress(kernel, TEXT("Process32First")); 476 process_first = (PROCESS32) GetProcAddress(kernel, "Process32First");
469 process_next = (PROCESS32) GetProcAddress(kernel, TEXT("Process32Next")); 477 process_next = (PROCESS32) GetProcAddress(kernel, "Process32Next");
470 thread_first = (THREAD32) GetProcAddress(kernel, TEXT("Thread32First")); 478 thread_first = (THREAD32) GetProcAddress(kernel, "Thread32First");
471 thread_next = (THREAD32) GetProcAddress(kernel, TEXT("Thread32Next")); 479 thread_next = (THREAD32) GetProcAddress(kernel, "Thread32Next");
472 module_first = (MODULE32) GetProcAddress(kernel, TEXT("Module32First")); 480 module_first = (MODULE32) GetProcAddress(kernel, "Module32First");
473 module_next = (MODULE32) GetProcAddress(kernel, TEXT("Module32Next")); 481 module_next = (MODULE32) GetProcAddress(kernel, "Module32Next");
474 482
475 if (snap && heap_first && heap_next && heaplist_first && 483 if (snap && heap_first && heap_next && heaplist_first &&
476 heaplist_next && process_first && process_next && 484 heaplist_next && process_first && process_next &&
@@ -546,6 +554,18 @@ int RAND_poll(void)
546 554
547 FreeLibrary(kernel); 555 FreeLibrary(kernel);
548 } 556 }
557#endif /* !OPENSSL_SYS_WINCE */
558
559 /* timer data */
560 readtimer();
561
562 /* memory usage statistics */
563 GlobalMemoryStatus(&m);
564 RAND_add(&m, sizeof(m), 1);
565
566 /* process ID */
567 w = GetCurrentProcessId();
568 RAND_add(&w, sizeof(w), 1);
549 569
550#if 0 570#if 0
551 printf("Exiting RAND_poll\n"); 571 printf("Exiting RAND_poll\n");
@@ -607,7 +627,7 @@ static void readtimer(void)
607 DWORD w; 627 DWORD w;
608 LARGE_INTEGER l; 628 LARGE_INTEGER l;
609 static int have_perfc = 1; 629 static int have_perfc = 1;
610#if defined(_MSC_VER) && !defined(OPENSSL_SYS_WINCE) 630#if defined(_MSC_VER) && defined(_M_X86)
611 static int have_tsc = 1; 631 static int have_tsc = 1;
612 DWORD cyclecount; 632 DWORD cyclecount;
613 633
@@ -660,7 +680,7 @@ static void readtimer(void)
660 680
661static void readscreen(void) 681static void readscreen(void)
662{ 682{
663#ifndef OPENSSL_SYS_WINCE 683#if !defined(OPENSSL_SYS_WINCE) && !defined(OPENSSL_SYS_WIN32_CYGWIN)
664 HDC hScrDC; /* screen DC */ 684 HDC hScrDC; /* screen DC */
665 HDC hMemDC; /* memory DC */ 685 HDC hMemDC; /* memory DC */
666 HBITMAP hBitmap; /* handle for our bitmap */ 686 HBITMAP hBitmap; /* handle for our bitmap */
diff --git a/src/lib/libcrypto/rc2/Makefile b/src/lib/libcrypto/rc2/Makefile
new file mode 100644
index 0000000000..18edaca6c6
--- /dev/null
+++ b/src/lib/libcrypto/rc2/Makefile
@@ -0,0 +1,92 @@
1#
2# SSLeay/crypto/rc2/Makefile
3#
4
5DIR= rc2
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=rc2test.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=rc2_ecb.c rc2_skey.c rc2_cbc.c rc2cfb64.c rc2ofb64.c
26LIBOBJ=rc2_ecb.o rc2_skey.o rc2_cbc.o rc2cfb64.o rc2ofb64.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= rc2.h
31HEADER= rc2_locl.h $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80rc2_cbc.o: ../../include/openssl/opensslconf.h ../../include/openssl/rc2.h
81rc2_cbc.o: rc2_cbc.c rc2_locl.h
82rc2_ecb.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
83rc2_ecb.o: ../../include/openssl/rc2.h rc2_ecb.c rc2_locl.h
84rc2_skey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
85rc2_skey.o: ../../include/openssl/opensslconf.h
86rc2_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/rc2.h
87rc2_skey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
88rc2_skey.o: ../../include/openssl/symhacks.h rc2_locl.h rc2_skey.c
89rc2cfb64.o: ../../include/openssl/opensslconf.h ../../include/openssl/rc2.h
90rc2cfb64.o: rc2_locl.h rc2cfb64.c
91rc2ofb64.o: ../../include/openssl/opensslconf.h ../../include/openssl/rc2.h
92rc2ofb64.o: rc2_locl.h rc2ofb64.c
diff --git a/src/lib/libcrypto/rc4/Makefile b/src/lib/libcrypto/rc4/Makefile
new file mode 100644
index 0000000000..64e06924f4
--- /dev/null
+++ b/src/lib/libcrypto/rc4/Makefile
@@ -0,0 +1,123 @@
1#
2# SSLeay/crypto/rc4/Makefile
3#
4
5DIR= rc4
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES=
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP=/usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18
19RC4_ENC=rc4_enc.o
20# or use
21#RC4_ENC=asm/rx86-elf.o
22#RC4_ENC=asm/rx86-out.o
23#RC4_ENC=asm/rx86-sol.o
24#RC4_ENC=asm/rx86bdsi.o
25
26CFLAGS= $(INCLUDES) $(CFLAG)
27ASFLAGS= $(INCLUDES) $(ASFLAG)
28
29GENERAL=Makefile
30TEST=rc4test.c
31APPS=
32
33LIB=$(TOP)/libcrypto.a
34LIBSRC=rc4_skey.c rc4_enc.c
35LIBOBJ=rc4_skey.o $(RC4_ENC)
36
37SRC= $(LIBSRC)
38
39EXHEADER= rc4.h
40HEADER= $(EXHEADER) rc4_locl.h
41
42ALL= $(GENERAL) $(SRC) $(HEADER)
43
44top:
45 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
46
47all: lib
48
49lib: $(LIBOBJ)
50 $(AR) $(LIB) $(LIBOBJ)
51 $(RANLIB) $(LIB) || echo Never mind.
52 @touch lib
53
54# elf
55asm/rx86-elf.s: asm/rc4-586.pl ../perlasm/x86asm.pl
56 (cd asm; $(PERL) rc4-586.pl elf $(CFLAGS) > rx86-elf.s)
57
58# a.out
59asm/rx86-out.o: asm/rx86unix.cpp
60 $(CPP) -DOUT asm/rx86unix.cpp | as -o asm/rx86-out.o
61
62# bsdi
63asm/rx86bsdi.o: asm/rx86unix.cpp
64 $(CPP) -DBSDI asm/rx86unix.cpp | sed 's/ :/:/' | as -o asm/rx86bsdi.o
65
66asm/rx86unix.cpp: asm/rc4-586.pl ../perlasm/x86asm.pl
67 (cd asm; $(PERL) rc4-586.pl cpp >rx86unix.cpp)
68
69asm/rc4-amd64.s: asm/rc4-amd64.pl; $(PERL) asm/rc4-amd64.pl $@
70
71asm/rc4-ia64.s: asm/rc4-ia64.S
72 $(CC) $(CFLAGS) -E asm/rc4-ia64.S > $@
73
74files:
75 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
76
77links:
78 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
79 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
80 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
81
82install:
83 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
84 do \
85 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
86 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
87 done;
88
89tags:
90 ctags $(SRC)
91
92tests:
93
94lint:
95 lint -DLINT $(INCLUDES) $(SRC)>fluff
96
97depend:
98 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
99
100dclean:
101 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
102 mv -f Makefile.new $(MAKEFILE)
103
104clean:
105 rm -f asm/rx86unix.cpp asm/*-elf.* *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff asm/*.o
106
107# DO NOT DELETE THIS LINE -- make depend depends on it.
108
109rc4_enc.o: ../../e_os.h ../../include/openssl/bio.h
110rc4_enc.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
111rc4_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
112rc4_enc.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
113rc4_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/rc4.h
114rc4_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
115rc4_enc.o: ../../include/openssl/symhacks.h ../cryptlib.h rc4_enc.c rc4_locl.h
116rc4_skey.o: ../../e_os.h ../../include/openssl/bio.h
117rc4_skey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
118rc4_skey.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
119rc4_skey.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
120rc4_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/rc4.h
121rc4_skey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
122rc4_skey.o: ../../include/openssl/symhacks.h ../cryptlib.h rc4_locl.h
123rc4_skey.o: rc4_skey.c
diff --git a/src/lib/libcrypto/rc4/asm/rc4-ia64.S b/src/lib/libcrypto/rc4/asm/rc4-ia64.S
new file mode 100644
index 0000000000..b517d2e88f
--- /dev/null
+++ b/src/lib/libcrypto/rc4/asm/rc4-ia64.S
@@ -0,0 +1,157 @@
1// ====================================================================
2// Written by Andy Polyakov <appro@fy.chalmers.se> for the OpenSSL
3// project.
4//
5// Rights for redistribution and usage in source and binary forms are
6// granted according to the OpenSSL license. Warranty of any kind is
7// disclaimed.
8// ====================================================================
9
10.ident "rc4-ia64.S, Version 1.1"
11.ident "IA-64 ISA artwork by Andy Polyakov <appro@fy.chalmers.se>"
12
13// What's wrong with compiler generated code? Because of the nature of
14// C language, compiler doesn't [dare to] reorder load and stores. But
15// being memory-bound, RC4 should benefit from reorder [on in-order-
16// execution core such as IA-64]. But what can we reorder? At the very
17// least we can safely reorder references to key schedule in respect
18// to input and output streams. Secondly, from the first [close] glance
19// it appeared that it's possible to pull up some references to
20// elements of the key schedule itself. Original rationale ["prior
21// loads are not safe only for "degenerated" key schedule, when some
22// elements equal to the same value"] was kind of sloppy. I should have
23// formulated as it really was: if we assume that pulling up reference
24// to key[x+1] is not safe, then it would mean that key schedule would
25// "degenerate," which is never the case. The problem is that this
26// holds true in respect to references to key[x], but not to key[y].
27// Legitimate "collisions" do occur within every 256^2 bytes window.
28// Fortunately there're enough free instruction slots to keep prior
29// reference to key[x+1], detect "collision" and compensate for it.
30// All this without sacrificing a single clock cycle:-)
31// Furthermore. In order to compress loop body to the minimum, I chose
32// to deploy deposit instruction, which substitutes for the whole
33// key->data+((x&255)<<log2(sizeof(key->data[0]))). This unfortunately
34// requires key->data to be aligned at sizeof(key->data) boundary.
35// This is why you'll find "RC4_INT pad[512-256-2];" addenum to RC4_KEY
36// and "d=(RC4_INT *)(((size_t)(d+255))&~(sizeof(key->data)-1));" in
37// rc4_skey.c [and rc4_enc.c, where it's retained for debugging
38// purposes]. Throughput is ~210MBps on 900MHz CPU, which is is >3x
39// faster than gcc generated code and +30% - if compared to HP-UX C.
40// Unrolling loop below should give >30% on top of that...
41
42.text
43.explicit
44
45#if defined(_HPUX_SOURCE) && !defined(_LP64)
46# define ADDP addp4
47#else
48# define ADDP add
49#endif
50
51#define SZ 4 // this is set to sizeof(RC4_INT)
52// SZ==4 seems to be optimal. At least SZ==8 is not any faster, not for
53// assembler implementation, while SZ==1 code is ~30% slower.
54#if SZ==1 // RC4_INT is unsigned char
55# define LDKEY ld1
56# define STKEY st1
57# define OFF 0
58#elif SZ==4 // RC4_INT is unsigned int
59# define LDKEY ld4
60# define STKEY st4
61# define OFF 2
62#elif SZ==8 // RC4_INT is unsigned long
63# define LDKEY ld8
64# define STKEY st8
65# define OFF 3
66#endif
67
68out=r8; // [expanded] output pointer
69inp=r9; // [expanded] output pointer
70prsave=r10;
71key=r28; // [expanded] pointer to RC4_KEY
72ksch=r29; // (key->data+255)[&~(sizeof(key->data)-1)]
73xx=r30;
74yy=r31;
75
76// void RC4(RC4_KEY *key,size_t len,const void *inp,void *out);
77.global RC4#
78.proc RC4#
79.align 32
80.skip 16
81RC4:
82 .prologue
83 .fframe 0
84 .save ar.pfs,r2
85 .save ar.lc,r3
86 .save pr,prsave
87{ .mii; alloc r2=ar.pfs,4,12,0,16
88 mov prsave=pr
89 ADDP key=0,in0 };;
90{ .mib; cmp.eq p6,p0=0,in1 // len==0?
91 mov r3=ar.lc
92(p6) br.ret.spnt.many b0 };; // emergency exit
93
94 .body
95 .rotr dat[4],key_x[4],tx[2],rnd[2],key_y[2],ty[1];
96
97{ .mib; LDKEY xx=[key],SZ // load key->x
98 add in1=-1,in1 // adjust len for loop counter
99 nop.b 0 }
100{ .mib; ADDP inp=0,in2
101 ADDP out=0,in3
102 brp.loop.imp .Ltop,.Lexit-16 };;
103{ .mmi; LDKEY yy=[key] // load key->y
104 add ksch=(255+1)*SZ,key // as ksch will be used with
105 // deposit instruction only,
106 // I don't have to &~255...
107 mov ar.lc=in1 }
108{ .mmi; mov key_y[1]=r0 // guarantee inequality
109 // in first iteration
110 add xx=1,xx
111 mov pr.rot=1<<16 };;
112{ .mii; nop.m 0
113 dep key_x[1]=xx,ksch,OFF,8
114 mov ar.ec=3 };; // note that epilogue counter
115 // is off by 1. I compensate
116 // for this at exit...
117.Ltop:
118// The loop is scheduled for 3*(n+2) spin-rate on Itanium 2, which
119// theoretically gives asymptotic performance of clock frequency
120// divided by 3 bytes per seconds, or 500MBps on 1.5GHz CPU. Measured
121// performance however is distinctly lower than 1/4:-( The culplrit
122// seems to be *(out++)=dat, which inadvertently splits the bundle,
123// even though there is M-port available... Unrolling is due...
124// Unrolled loop should collect output with variable shift instruction
125// in order to avoid starvation for integer shifter... It should be
126// possible to get pretty close to theoretical peak...
127{ .mmi; (p16) LDKEY tx[0]=[key_x[1]] // tx=key[xx]
128 (p17) LDKEY ty[0]=[key_y[1]] // ty=key[yy]
129 (p18) dep rnd[1]=rnd[1],ksch,OFF,8} // &key[(tx+ty)&255]
130{ .mmi; (p19) st1 [out]=dat[3],1 // *(out++)=dat
131 (p16) add xx=1,xx // x++
132 (p16) cmp.ne.unc p20,p21=key_x[1],key_y[1] };;
133{ .mmi; (p18) LDKEY rnd[1]=[rnd[1]] // rnd=key[(tx+ty)&255]
134 (p16) ld1 dat[0]=[inp],1 // dat=*(inp++)
135 (p16) dep key_x[0]=xx,ksch,OFF,8 } // &key[xx&255]
136.pred.rel "mutex",p20,p21
137{ .mmi; (p21) add yy=yy,tx[1] // (p16)
138 (p20) add yy=yy,tx[0] // (p16) y+=tx
139 (p21) mov tx[0]=tx[1] };; // (p16)
140{ .mmi; (p17) STKEY [key_y[1]]=tx[1] // key[yy]=tx
141 (p17) STKEY [key_x[2]]=ty[0] // key[xx]=ty
142 (p16) dep key_y[0]=yy,ksch,OFF,8 } // &key[yy&255]
143{ .mmb; (p17) add rnd[0]=tx[1],ty[0] // tx+=ty
144 (p18) xor dat[2]=dat[2],rnd[1] // dat^=rnd
145 br.ctop.sptk .Ltop };;
146.Lexit:
147{ .mib; STKEY [key]=yy,-SZ // save key->y
148 mov pr=prsave,0x1ffff
149 nop.b 0 }
150{ .mib; st1 [out]=dat[3],1 // compensate for truncated
151 // epilogue counter
152 add xx=-1,xx
153 nop.b 0 };;
154{ .mib; STKEY [key]=xx // save key->x
155 mov ar.lc=r3
156 br.ret.sptk.many b0 };;
157.endp RC4#
diff --git a/src/lib/libcrypto/rc5/Makefile b/src/lib/libcrypto/rc5/Makefile
new file mode 100644
index 0000000000..3a8d309b29
--- /dev/null
+++ b/src/lib/libcrypto/rc5/Makefile
@@ -0,0 +1,110 @@
1#
2# SSLeay/crypto/rc5/Makefile
3#
4
5DIR= rc5
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES=
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP=/usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18
19RC5_ENC= rc5_enc.o
20# or use
21#DES_ENC= r586-elf.o
22
23CFLAGS= $(INCLUDES) $(CFLAG)
24ASFLAGS= $(INCLUDES) $(ASFLAG)
25
26GENERAL=Makefile
27TEST=rc5test.c
28APPS=
29
30LIB=$(TOP)/libcrypto.a
31LIBSRC=rc5_skey.c rc5_ecb.c rc5_enc.c rc5cfb64.c rc5ofb64.c
32LIBOBJ=rc5_skey.o rc5_ecb.o $(RC5_ENC) rc5cfb64.o rc5ofb64.o
33
34SRC= $(LIBSRC)
35
36EXHEADER= rc5.h
37HEADER= rc5_locl.h $(EXHEADER)
38
39ALL= $(GENERAL) $(SRC) $(HEADER)
40
41top:
42 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
43
44all: lib
45
46lib: $(LIBOBJ)
47 $(AR) $(LIB) $(LIBOBJ)
48 $(RANLIB) $(LIB) || echo Never mind.
49 @touch lib
50
51# elf
52asm/r586-elf.s: asm/rc5-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
53 (cd asm; $(PERL) rc5-586.pl elf $(CFLAGS) > r586-elf.s)
54
55# a.out
56asm/r586-out.o: asm/r586unix.cpp
57 $(CPP) -DOUT asm/r586unix.cpp | as -o asm/r586-out.o
58
59# bsdi
60asm/r586bsdi.o: asm/r586unix.cpp
61 $(CPP) -DBSDI asm/r586unix.cpp | sed 's/ :/:/' | as -o asm/r586bsdi.o
62
63asm/r586unix.cpp: asm/rc5-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
64 (cd asm; $(PERL) rc5-586.pl cpp >r586unix.cpp)
65
66files:
67 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
68
69links:
70 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
71 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
72 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
73
74install:
75 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
76 do \
77 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
78 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
79 done;
80
81tags:
82 ctags $(SRC)
83
84tests:
85
86lint:
87 lint -DLINT $(INCLUDES) $(SRC)>fluff
88
89depend:
90 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
91
92dclean:
93 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
94 mv -f Makefile.new $(MAKEFILE)
95
96clean:
97 rm -f asm/r586unix.cpp asm/*-elf.* *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
98
99# DO NOT DELETE THIS LINE -- make depend depends on it.
100
101rc5_ecb.o: ../../include/openssl/opensslv.h ../../include/openssl/rc5.h
102rc5_ecb.o: rc5_ecb.c rc5_locl.h
103rc5_enc.o: ../../include/openssl/rc5.h rc5_enc.c rc5_locl.h
104rc5_skey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
105rc5_skey.o: ../../include/openssl/opensslconf.h
106rc5_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/rc5.h
107rc5_skey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
108rc5_skey.o: ../../include/openssl/symhacks.h rc5_locl.h rc5_skey.c
109rc5cfb64.o: ../../include/openssl/rc5.h rc5_locl.h rc5cfb64.c
110rc5ofb64.o: ../../include/openssl/rc5.h rc5_locl.h rc5ofb64.c
diff --git a/src/lib/libcrypto/rc5/rc5.h b/src/lib/libcrypto/rc5/rc5.h
index 4adfd2db5a..aa3f26920b 100644
--- a/src/lib/libcrypto/rc5/rc5.h
+++ b/src/lib/libcrypto/rc5/rc5.h
@@ -92,7 +92,10 @@ typedef struct rc5_key_st
92 RC5_32_INT data[2*(RC5_16_ROUNDS+1)]; 92 RC5_32_INT data[2*(RC5_16_ROUNDS+1)];
93 } RC5_32_KEY; 93 } RC5_32_KEY;
94 94
95 95#ifdef OPENSSL_FIPS
96void private_RC5_32_set_key(RC5_32_KEY *key, int len, const unsigned char *data,
97 int rounds);
98#endif
96void RC5_32_set_key(RC5_32_KEY *key, int len, const unsigned char *data, 99void RC5_32_set_key(RC5_32_KEY *key, int len, const unsigned char *data,
97 int rounds); 100 int rounds);
98void RC5_32_ecb_encrypt(const unsigned char *in,unsigned char *out,RC5_32_KEY *key, 101void RC5_32_ecb_encrypt(const unsigned char *in,unsigned char *out,RC5_32_KEY *key,
diff --git a/src/lib/libcrypto/ripemd/Makefile b/src/lib/libcrypto/ripemd/Makefile
new file mode 100644
index 0000000000..dc086e3434
--- /dev/null
+++ b/src/lib/libcrypto/ripemd/Makefile
@@ -0,0 +1,111 @@
1#
2# SSLeay/crypto/ripemd/Makefile
3#
4
5DIR= ripemd
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES=
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP=/usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18
19RIP_ASM_OBJ=
20
21CFLAGS= $(INCLUDES) $(CFLAG)
22ASFLAGS= $(INCLUDES) $(ASFLAG)
23
24GENERAL=Makefile
25TEST=rmdtest.c
26APPS=
27
28LIB=$(TOP)/libcrypto.a
29LIBSRC=rmd_dgst.c rmd_one.c
30LIBOBJ=rmd_dgst.o rmd_one.o $(RMD160_ASM_OBJ)
31
32SRC= $(LIBSRC)
33
34EXHEADER= ripemd.h
35HEADER= rmd_locl.h rmdconst.h $(EXHEADER)
36
37ALL= $(GENERAL) $(SRC) $(HEADER)
38
39top:
40 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
41
42all: lib
43
44lib: $(LIBOBJ)
45 $(AR) $(LIB) $(LIBOBJ)
46 $(RANLIB) $(LIB) || echo Never mind.
47 @touch lib
48
49# elf
50asm/rm86-elf.s: asm/rmd-586.pl ../perlasm/x86asm.pl
51 (cd asm; $(PERL) rmd-586.pl elf $(CFLAGS) > rm86-elf.s)
52
53# a.out
54asm/rm86-out.o: asm/rm86unix.cpp
55 $(CPP) -DOUT asm/rm86unix.cpp | as -o asm/rm86-out.o
56
57# bsdi
58asm/rm86bsdi.o: asm/rm86unix.cpp
59 $(CPP) -DBSDI asm/rm86unix.cpp | sed 's/ :/:/' | as -o asm/rm86bsdi.o
60
61asm/rm86unix.cpp: asm/rmd-586.pl ../perlasm/x86asm.pl
62 (cd asm; $(PERL) rmd-586.pl cpp >rm86unix.cpp)
63
64files:
65 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
66
67links:
68 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
69 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
70 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
71
72install:
73 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
74 do \
75 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
76 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
77 done;
78
79tags:
80 ctags $(SRC)
81
82tests:
83
84lint:
85 lint -DLINT $(INCLUDES) $(SRC)>fluff
86
87depend:
88 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
89
90dclean:
91 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
92 mv -f Makefile.new $(MAKEFILE)
93
94clean:
95 rm -f asm/rm86unix.cpp asm/*-elf.* *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
96
97# DO NOT DELETE THIS LINE -- make depend depends on it.
98
99rmd_dgst.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
100rmd_dgst.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
101rmd_dgst.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
102rmd_dgst.o: ../../include/openssl/opensslconf.h
103rmd_dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/ripemd.h
104rmd_dgst.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
105rmd_dgst.o: ../../include/openssl/symhacks.h ../md32_common.h rmd_dgst.c
106rmd_dgst.o: rmd_locl.h rmdconst.h
107rmd_one.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
108rmd_one.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
109rmd_one.o: ../../include/openssl/ripemd.h ../../include/openssl/safestack.h
110rmd_one.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
111rmd_one.o: rmd_one.c
diff --git a/src/lib/libcrypto/rsa/Makefile b/src/lib/libcrypto/rsa/Makefile
new file mode 100644
index 0000000000..5748b0d3d0
--- /dev/null
+++ b/src/lib/libcrypto/rsa/Makefile
@@ -0,0 +1,239 @@
1#
2# SSLeay/crypto/rsa/Makefile
3#
4
5DIR= rsa
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=rsa_test.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= rsa_eay.c rsa_gen.c rsa_lib.c rsa_sign.c rsa_saos.c rsa_err.c \
26 rsa_pk1.c rsa_ssl.c rsa_none.c rsa_oaep.c rsa_chk.c rsa_null.c \
27 rsa_asn1.c
28LIBOBJ= rsa_eay.o rsa_gen.o rsa_lib.o rsa_sign.o rsa_saos.o rsa_err.o \
29 rsa_pk1.o rsa_ssl.o rsa_none.o rsa_oaep.o rsa_chk.o rsa_null.o \
30 rsa_asn1.o
31
32SRC= $(LIBSRC)
33
34EXHEADER= rsa.h
35HEADER= $(EXHEADER)
36
37ALL= $(GENERAL) $(SRC) $(HEADER)
38
39top:
40 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
41
42all: lib
43
44lib: $(LIBOBJ)
45 $(AR) $(LIB) $(LIBOBJ)
46 $(RANLIB) $(LIB) || echo Never mind.
47 @touch lib
48
49files:
50 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
51
52links:
53 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
54 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
55 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
56
57install:
58 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
59 do \
60 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
61 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
62 done;
63
64tags:
65 ctags $(SRC)
66
67tests:
68
69lint:
70 lint -DLINT $(INCLUDES) $(SRC)>fluff
71
72depend:
73 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
74
75dclean:
76 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
77 mv -f Makefile.new $(MAKEFILE)
78
79clean:
80 rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
81
82# DO NOT DELETE THIS LINE -- make depend depends on it.
83
84rsa_asn1.o: ../../e_os.h ../../include/openssl/asn1.h
85rsa_asn1.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
86rsa_asn1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
87rsa_asn1.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
88rsa_asn1.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
89rsa_asn1.o: ../../include/openssl/opensslconf.h
90rsa_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
91rsa_asn1.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
92rsa_asn1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
93rsa_asn1.o: ../cryptlib.h rsa_asn1.c
94rsa_chk.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
95rsa_chk.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
96rsa_chk.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
97rsa_chk.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
98rsa_chk.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
99rsa_chk.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
100rsa_chk.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
101rsa_chk.o: rsa_chk.c
102rsa_eay.o: ../../e_os.h ../../include/openssl/asn1.h
103rsa_eay.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
104rsa_eay.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
105rsa_eay.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
106rsa_eay.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
107rsa_eay.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
108rsa_eay.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
109rsa_eay.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
110rsa_eay.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_eay.c
111rsa_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
112rsa_err.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
113rsa_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
114rsa_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
115rsa_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
116rsa_err.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
117rsa_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
118rsa_err.o: rsa_err.c
119rsa_gen.o: ../../e_os.h ../../include/openssl/asn1.h
120rsa_gen.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
121rsa_gen.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
122rsa_gen.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
123rsa_gen.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
124rsa_gen.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
125rsa_gen.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
126rsa_gen.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
127rsa_gen.o: ../cryptlib.h rsa_gen.c
128rsa_lib.o: ../../e_os.h ../../include/openssl/asn1.h
129rsa_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
130rsa_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
131rsa_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
132rsa_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
133rsa_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
134rsa_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
135rsa_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
136rsa_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
137rsa_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
138rsa_lib.o: ../../include/openssl/ui.h ../cryptlib.h rsa_lib.c
139rsa_none.o: ../../e_os.h ../../include/openssl/asn1.h
140rsa_none.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
141rsa_none.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
142rsa_none.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
143rsa_none.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
144rsa_none.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
145rsa_none.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
146rsa_none.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
147rsa_none.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_none.c
148rsa_null.o: ../../e_os.h ../../include/openssl/asn1.h
149rsa_null.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
150rsa_null.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
151rsa_null.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
152rsa_null.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
153rsa_null.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
154rsa_null.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
155rsa_null.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
156rsa_null.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_null.c
157rsa_oaep.o: ../../e_os.h ../../include/openssl/aes.h
158rsa_oaep.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
159rsa_oaep.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
160rsa_oaep.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
161rsa_oaep.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
162rsa_oaep.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
163rsa_oaep.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
164rsa_oaep.o: ../../include/openssl/err.h ../../include/openssl/evp.h
165rsa_oaep.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
166rsa_oaep.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
167rsa_oaep.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
168rsa_oaep.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
169rsa_oaep.o: ../../include/openssl/opensslconf.h
170rsa_oaep.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
171rsa_oaep.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
172rsa_oaep.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
173rsa_oaep.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
174rsa_oaep.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
175rsa_oaep.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
176rsa_oaep.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
177rsa_oaep.o: ../cryptlib.h rsa_oaep.c
178rsa_pk1.o: ../../e_os.h ../../include/openssl/asn1.h
179rsa_pk1.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
180rsa_pk1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
181rsa_pk1.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
182rsa_pk1.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
183rsa_pk1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
184rsa_pk1.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
185rsa_pk1.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
186rsa_pk1.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_pk1.c
187rsa_saos.o: ../../e_os.h ../../include/openssl/aes.h
188rsa_saos.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
189rsa_saos.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
190rsa_saos.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
191rsa_saos.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
192rsa_saos.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
193rsa_saos.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
194rsa_saos.o: ../../include/openssl/err.h ../../include/openssl/evp.h
195rsa_saos.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
196rsa_saos.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
197rsa_saos.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
198rsa_saos.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
199rsa_saos.o: ../../include/openssl/opensslconf.h
200rsa_saos.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
201rsa_saos.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
202rsa_saos.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
203rsa_saos.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
204rsa_saos.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
205rsa_saos.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
206rsa_saos.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
207rsa_saos.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
208rsa_saos.o: ../cryptlib.h rsa_saos.c
209rsa_sign.o: ../../e_os.h ../../include/openssl/aes.h
210rsa_sign.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
211rsa_sign.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
212rsa_sign.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
213rsa_sign.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
214rsa_sign.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
215rsa_sign.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
216rsa_sign.o: ../../include/openssl/err.h ../../include/openssl/evp.h
217rsa_sign.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
218rsa_sign.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
219rsa_sign.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
220rsa_sign.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
221rsa_sign.o: ../../include/openssl/opensslconf.h
222rsa_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
223rsa_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
224rsa_sign.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
225rsa_sign.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
226rsa_sign.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
227rsa_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
228rsa_sign.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
229rsa_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
230rsa_sign.o: ../cryptlib.h rsa_sign.c
231rsa_ssl.o: ../../e_os.h ../../include/openssl/asn1.h
232rsa_ssl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
233rsa_ssl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
234rsa_ssl.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
235rsa_ssl.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
236rsa_ssl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
237rsa_ssl.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
238rsa_ssl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
239rsa_ssl.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_ssl.c
diff --git a/src/lib/libcrypto/sha/Makefile b/src/lib/libcrypto/sha/Makefile
new file mode 100644
index 0000000000..0426786aa0
--- /dev/null
+++ b/src/lib/libcrypto/sha/Makefile
@@ -0,0 +1,127 @@
1#
2# SSLeay/crypto/sha/Makefile
3#
4
5DIR= sha
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES=
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP=/usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18
19SHA1_ASM_OBJ=
20
21CFLAGS= $(INCLUDES) $(CFLAG)
22ASFLAGS= $(INCLUDES) $(ASFLAG)
23
24GENERAL=Makefile
25TEST=shatest.c sha1test.c
26APPS=
27
28LIB=$(TOP)/libcrypto.a
29LIBSRC=sha_dgst.c sha1dgst.c sha_one.c sha1_one.c
30LIBOBJ=sha_dgst.o sha1dgst.o sha_one.o sha1_one.o $(SHA1_ASM_OBJ)
31
32SRC= $(LIBSRC)
33
34EXHEADER= sha.h
35HEADER= sha_locl.h $(EXHEADER)
36
37ALL= $(GENERAL) $(SRC) $(HEADER)
38
39top:
40 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
41
42all: lib
43
44lib: $(LIBOBJ)
45 $(AR) $(LIB) $(LIBOBJ)
46 $(RANLIB) $(LIB) || echo Never mind.
47 @touch lib
48
49# elf
50asm/sx86-elf.s: asm/sha1-586.pl ../perlasm/x86asm.pl
51 (cd asm; $(PERL) sha1-586.pl elf $(CFLAGS) $(PROCESSOR) > sx86-elf.s)
52
53# a.out
54asm/sx86-out.o: asm/sx86unix.cpp
55 $(CPP) -DOUT asm/sx86unix.cpp | as -o asm/sx86-out.o
56
57# bsdi
58asm/sx86bsdi.o: asm/sx86unix.cpp
59 $(CPP) -DBSDI asm/sx86unix.cpp | sed 's/ :/:/' | as -o asm/sx86bsdi.o
60
61asm/sx86unix.cpp: asm/sha1-586.pl ../perlasm/x86asm.pl
62 (cd asm; $(PERL) sha1-586.pl cpp $(PROCESSOR) >sx86unix.cpp)
63
64asm/sha1-ia64.s: asm/sha1-ia64.pl
65 (cd asm; $(PERL) sha1-ia64.pl $(CFLAGS) ) > $@
66
67files:
68 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
69
70links:
71 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
72 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
73 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
74
75install:
76 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
77 do \
78 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
79 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
80 done;
81
82tags:
83 ctags $(SRC)
84
85tests:
86
87lint:
88 lint -DLINT $(INCLUDES) $(SRC)>fluff
89
90depend:
91 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
92
93dclean:
94 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
95 mv -f Makefile.new $(MAKEFILE)
96
97clean:
98 rm -f asm/sx86unix.cpp asm/*-elf.* *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff asm/*.o
99
100# DO NOT DELETE THIS LINE -- make depend depends on it.
101
102sha1_one.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
103sha1_one.o: ../../include/openssl/opensslconf.h
104sha1_one.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
105sha1_one.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
106sha1_one.o: ../../include/openssl/symhacks.h sha1_one.c
107sha1dgst.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
108sha1dgst.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
109sha1dgst.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
110sha1dgst.o: ../../include/openssl/opensslconf.h
111sha1dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
112sha1dgst.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
113sha1dgst.o: ../../include/openssl/symhacks.h ../md32_common.h sha1dgst.c
114sha1dgst.o: sha_locl.h
115sha_dgst.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
116sha_dgst.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
117sha_dgst.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
118sha_dgst.o: ../../include/openssl/opensslconf.h
119sha_dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
120sha_dgst.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
121sha_dgst.o: ../../include/openssl/symhacks.h ../md32_common.h sha_dgst.c
122sha_dgst.o: sha_locl.h
123sha_one.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
124sha_one.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
125sha_one.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
126sha_one.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
127sha_one.o: sha_one.c
diff --git a/src/lib/libcrypto/sha/shatest.c b/src/lib/libcrypto/sha/shatest.c
index 5d2b1d3b1a..ff702aa53e 100644
--- a/src/lib/libcrypto/sha/shatest.c
+++ b/src/lib/libcrypto/sha/shatest.c
@@ -62,10 +62,10 @@
62 62
63#include "../e_os.h" 63#include "../e_os.h"
64 64
65#ifdef OPENSSL_NO_SHA 65#if defined(OPENSSL_NO_SHA) || defined(OPENSSL_NO_SHA0)
66int main(int argc, char *argv[]) 66int main(int argc, char *argv[])
67{ 67{
68 printf("No SHA support\n"); 68 printf("No SHA0 support\n");
69 return(0); 69 return(0);
70} 70}
71#else 71#else
diff --git a/src/lib/libcrypto/stack/Makefile b/src/lib/libcrypto/stack/Makefile
new file mode 100644
index 0000000000..4d5199a000
--- /dev/null
+++ b/src/lib/libcrypto/stack/Makefile
@@ -0,0 +1,86 @@
1#
2# SSLeay/crypto/stack/Makefile
3#
4
5DIR= stack
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=stack.c
26LIBOBJ=stack.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= stack.h safestack.h
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80stack.o: ../../e_os.h ../../include/openssl/bio.h
81stack.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
82stack.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
83stack.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
84stack.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
85stack.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
86stack.o: ../cryptlib.h stack.c
diff --git a/src/lib/libcrypto/txt_db/Makefile b/src/lib/libcrypto/txt_db/Makefile
new file mode 100644
index 0000000000..f91a08f006
--- /dev/null
+++ b/src/lib/libcrypto/txt_db/Makefile
@@ -0,0 +1,86 @@
1#
2# SSLeay/crypto/txt_db/Makefile
3#
4
5DIR= txt_db
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=txt_db.c
26LIBOBJ=txt_db.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= txt_db.h
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80txt_db.o: ../../e_os.h ../../include/openssl/bio.h
81txt_db.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
82txt_db.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
83txt_db.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
84txt_db.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
85txt_db.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
86txt_db.o: ../../include/openssl/txt_db.h ../cryptlib.h txt_db.c
diff --git a/src/lib/libcrypto/ui/Makefile b/src/lib/libcrypto/ui/Makefile
new file mode 100644
index 0000000000..fcb2a66a39
--- /dev/null
+++ b/src/lib/libcrypto/ui/Makefile
@@ -0,0 +1,115 @@
1#
2# OpenSSL/crypto/ui/Makefile
3#
4
5DIR= ui
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21#TEST= uitest.c
22TEST=
23APPS=
24
25COMPATSRC= ui_compat.c
26COMPATOBJ= ui_compat.o
27
28LIB=$(TOP)/libcrypto.a
29LIBSRC= ui_err.c ui_lib.c ui_openssl.c ui_util.c $(COMPATSRC)
30LIBOBJ= ui_err.o ui_lib.o ui_openssl.o ui_util.o $(COMPATOBJ)
31
32SRC= $(LIBSRC)
33
34EXHEADER= ui.h ui_compat.h
35HEADER= $(EXHEADER) ui_locl.h
36
37ALL= $(GENERAL) $(SRC) $(HEADER)
38
39top:
40 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
41
42all: lib
43
44lib: $(LIBOBJ)
45 $(AR) $(LIB) $(LIBOBJ)
46 $(RANLIB) $(LIB) || echo Never mind.
47 @touch lib
48
49files:
50 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
51
52links:
53 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
54 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
55 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
56
57install:
58 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
59 do \
60 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
61 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
62 done;
63
64tags:
65 ctags $(SRC)
66
67tests:
68
69lint:
70 lint -DLINT $(INCLUDES) $(SRC)>fluff
71
72depend:
73 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
74
75dclean:
76 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
77 mv -f Makefile.new $(MAKEFILE)
78
79clean:
80 rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
81
82# DO NOT DELETE THIS LINE -- make depend depends on it.
83
84ui_compat.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
85ui_compat.o: ../../include/openssl/opensslconf.h
86ui_compat.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
87ui_compat.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
88ui_compat.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
89ui_compat.o: ui_compat.c
90ui_err.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
91ui_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
92ui_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
93ui_err.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
94ui_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
95ui_err.o: ../../include/openssl/ui.h ui_err.c
96ui_lib.o: ../../e_os.h ../../include/openssl/bio.h
97ui_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
98ui_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
99ui_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
100ui_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
101ui_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
102ui_lib.o: ../../include/openssl/ui.h ../cryptlib.h ui_lib.c ui_locl.h
103ui_openssl.o: ../../e_os.h ../../include/openssl/bio.h
104ui_openssl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
105ui_openssl.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
106ui_openssl.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
107ui_openssl.o: ../../include/openssl/opensslv.h
108ui_openssl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
109ui_openssl.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
110ui_openssl.o: ../cryptlib.h ui_locl.h ui_openssl.c
111ui_util.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
112ui_util.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
113ui_util.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
114ui_util.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
115ui_util.o: ui_util.c
diff --git a/src/lib/libcrypto/util/cygwin.sh b/src/lib/libcrypto/util/cygwin.sh
index 930f766b4f..7f791d47f4 100644
--- a/src/lib/libcrypto/util/cygwin.sh
+++ b/src/lib/libcrypto/util/cygwin.sh
@@ -21,11 +21,11 @@ function cleanup()
21 21
22function get_openssl_version() 22function get_openssl_version()
23{ 23{
24 eval `grep '^VERSION=' Makefile.ssl` 24 eval `grep '^VERSION=' Makefile`
25 if [ -z "${VERSION}" ] 25 if [ -z "${VERSION}" ]
26 then 26 then
27 echo "Error: Couldn't retrieve OpenSSL version from Makefile.ssl." 27 echo "Error: Couldn't retrieve OpenSSL version from Makefile."
28 echo " Check value of variable VERSION in Makefile.ssl." 28 echo " Check value of variable VERSION in Makefile."
29 exit 1 29 exit 1
30 fi 30 fi
31} 31}
@@ -39,7 +39,7 @@ function base_install()
39 39
40function doc_install() 40function doc_install()
41{ 41{
42 DOC_DIR=${INSTALL_PREFIX}/usr/doc/openssl 42 DOC_DIR=${INSTALL_PREFIX}/usr/share/doc/openssl
43 43
44 mkdir -p ${DOC_DIR} 44 mkdir -p ${DOC_DIR}
45 cp CHANGES CHANGES.SSLeay INSTALL LICENSE NEWS README ${DOC_DIR} 45 cp CHANGES CHANGES.SSLeay INSTALL LICENSE NEWS README ${DOC_DIR}
@@ -49,7 +49,7 @@ function doc_install()
49 49
50function create_cygwin_readme() 50function create_cygwin_readme()
51{ 51{
52 README_DIR=${INSTALL_PREFIX}/usr/doc/Cygwin 52 README_DIR=${INSTALL_PREFIX}/usr/share/doc/Cygwin
53 README_FILE=${README_DIR}/openssl-${VERSION}.README 53 README_FILE=${README_DIR}/openssl-${VERSION}.README
54 54
55 mkdir -p ${README_DIR} 55 mkdir -p ${README_DIR}
@@ -112,8 +112,8 @@ cd ${INSTALL_PREFIX}
112strip usr/bin/*.exe usr/bin/*.dll 112strip usr/bin/*.exe usr/bin/*.dll
113 113
114# Runtime package 114# Runtime package
115find etc usr/bin usr/doc usr/ssl/certs usr/ssl/man/man[157] usr/ssl/misc \ 115find etc usr/bin usr/share/doc usr/ssl/certs usr/ssl/man/man[157] \
116 usr/ssl/openssl.cnf usr/ssl/private -empty -o \! -type d | 116 usr/ssl/misc usr/ssl/openssl.cnf usr/ssl/private -empty -o \! -type d |
117tar cjfT openssl-${VERSION}-${SUBVERSION}.tar.bz2 - 117tar cjfT openssl-${VERSION}-${SUBVERSION}.tar.bz2 -
118# Development package 118# Development package
119find usr/include usr/lib usr/ssl/man/man3 -empty -o \! -type d | 119find usr/include usr/lib usr/ssl/man/man3 -empty -o \! -type d |
diff --git a/src/lib/libcrypto/util/domd b/src/lib/libcrypto/util/domd
index 49310bbdd1..5610521f0b 100644
--- a/src/lib/libcrypto/util/domd
+++ b/src/lib/libcrypto/util/domd
@@ -11,7 +11,7 @@ if [ "$1" = "-MD" ]; then
11fi 11fi
12if [ "$MAKEDEPEND" = "" ]; then MAKEDEPEND=makedepend; fi 12if [ "$MAKEDEPEND" = "" ]; then MAKEDEPEND=makedepend; fi
13 13
14cp Makefile.ssl Makefile.save 14cp Makefile Makefile.save
15# fake the presence of Kerberos 15# fake the presence of Kerberos
16touch $TOP/krb5.h 16touch $TOP/krb5.h
17if [ "$MAKEDEPEND" = "gcc" ]; then 17if [ "$MAKEDEPEND" = "gcc" ]; then
@@ -20,15 +20,15 @@ if [ "$MAKEDEPEND" = "gcc" ]; then
20 if [ "$1" != "--" ]; then args="$args $1"; fi 20 if [ "$1" != "--" ]; then args="$args $1"; fi
21 shift 21 shift
22 done 22 done
23 sed -e '/^# DO NOT DELETE.*/,$d' < Makefile.ssl > Makefile.tmp 23 sed -e '/^# DO NOT DELETE.*/,$d' < Makefile > Makefile.tmp
24 echo '# DO NOT DELETE THIS LINE -- make depend depends on it.' >> Makefile.tmp 24 echo '# DO NOT DELETE THIS LINE -- make depend depends on it.' >> Makefile.tmp
25 gcc -D OPENSSL_DOING_MAKEDEPEND -M $args >> Makefile.tmp 25 gcc -D OPENSSL_DOING_MAKEDEPEND -M $args >> Makefile.tmp
26 ${PERL} $TOP/util/clean-depend.pl < Makefile.tmp > Makefile.new 26 ${PERL} $TOP/util/clean-depend.pl < Makefile.tmp > Makefile.new
27 rm -f Makefile.tmp 27 rm -f Makefile.tmp
28else 28else
29 ${MAKEDEPEND} -D OPENSSL_DOING_MAKEDEPEND -f Makefile.ssl $@ 29 ${MAKEDEPEND} -D OPENSSL_DOING_MAKEDEPEND -f Makefile $@
30 ${PERL} $TOP/util/clean-depend.pl < Makefile.ssl > Makefile.new 30 ${PERL} $TOP/util/clean-depend.pl < Makefile > Makefile.new
31fi 31fi
32mv Makefile.new Makefile.ssl 32mv Makefile.new Makefile
33# unfake the presence of Kerberos 33# unfake the presence of Kerberos
34rm $TOP/krb5.h 34rm $TOP/krb5.h
diff --git a/src/lib/libcrypto/util/extract-names.pl b/src/lib/libcrypto/util/extract-names.pl
index 744a8e2324..35bd6ed843 100644
--- a/src/lib/libcrypto/util/extract-names.pl
+++ b/src/lib/libcrypto/util/extract-names.pl
@@ -9,9 +9,11 @@ while(<STDIN>) {
9 } elsif ($name) { 9 } elsif ($name) {
10 if (/ - /) { 10 if (/ - /) {
11 s/ - .*//; 11 s/ - .*//;
12 s/,[ \t]+/,/g; 12 s/,\s+/,/g;
13 s/^[ \t]+//g; 13 s/\s+,/,/g;
14 s/[ \t]+$//g; 14 s/^\s+//g;
15 s/\s+$//g;
16 s/\s/_/g;
15 push @words, split ','; 17 push @words, split ',';
16 } 18 }
17 } 19 }
diff --git a/src/lib/libcrypto/util/fixNT.sh b/src/lib/libcrypto/util/fixNT.sh
index ce4f19299b..ab9e766b86 100644
--- a/src/lib/libcrypto/util/fixNT.sh
+++ b/src/lib/libcrypto/util/fixNT.sh
@@ -3,12 +3,12 @@
3# clean up the mess that NT makes of my source tree 3# clean up the mess that NT makes of my source tree
4# 4#
5 5
6if [ -f makefile.ssl -a ! -f Makefile.ssl ]; then 6if [ -f makefile -a ! -f Makefile ]; then
7 /bin/mv makefile.ssl Makefile.ssl 7 /bin/mv makefile Makefile
8fi 8fi
9chmod +x Configure util/* 9chmod +x Configure util/*
10echo cleaning 10echo cleaning
11/bin/rm -f `find . -name '*.$$$' -print` 2>/dev/null >/dev/null 11/bin/rm -f `find . -name '*.$$$' -print` 2>/dev/null >/dev/null
12echo 'removing those damn ^M' 12echo 'removing those damn ^M'
13perl -pi -e 's/\015//' `find . -type 'f' -print |grep -v '.obj$' |grep -v '.der$' |grep -v '.gz'` 13perl -pi -e 's/\015//' `find . -type 'f' -print |grep -v '.obj$' |grep -v '.der$' |grep -v '.gz'`
14make -f Makefile.ssl links 14make -f Makefile links
diff --git a/src/lib/libcrypto/util/libeay.num b/src/lib/libcrypto/util/libeay.num
index 203c7713e7..56fb7446e0 100644
--- a/src/lib/libcrypto/util/libeay.num
+++ b/src/lib/libcrypto/util/libeay.num
@@ -284,20 +284,20 @@ EVP_add_alias 291 NOEXIST::FUNCTION:
284EVP_add_cipher 292 EXIST::FUNCTION: 284EVP_add_cipher 292 EXIST::FUNCTION:
285EVP_add_digest 293 EXIST::FUNCTION: 285EVP_add_digest 293 EXIST::FUNCTION:
286EVP_bf_cbc 294 EXIST::FUNCTION:BF 286EVP_bf_cbc 294 EXIST::FUNCTION:BF
287EVP_bf_cfb 295 EXIST::FUNCTION:BF 287EVP_bf_cfb64 295 EXIST::FUNCTION:BF
288EVP_bf_ecb 296 EXIST::FUNCTION:BF 288EVP_bf_ecb 296 EXIST::FUNCTION:BF
289EVP_bf_ofb 297 EXIST::FUNCTION:BF 289EVP_bf_ofb 297 EXIST::FUNCTION:BF
290EVP_cleanup 298 EXIST::FUNCTION: 290EVP_cleanup 298 EXIST::FUNCTION:
291EVP_des_cbc 299 EXIST::FUNCTION:DES 291EVP_des_cbc 299 EXIST::FUNCTION:DES
292EVP_des_cfb 300 EXIST::FUNCTION:DES 292EVP_des_cfb64 300 EXIST::FUNCTION:DES
293EVP_des_ecb 301 EXIST::FUNCTION:DES 293EVP_des_ecb 301 EXIST::FUNCTION:DES
294EVP_des_ede 302 EXIST::FUNCTION:DES 294EVP_des_ede 302 EXIST::FUNCTION:DES
295EVP_des_ede3 303 EXIST::FUNCTION:DES 295EVP_des_ede3 303 EXIST::FUNCTION:DES
296EVP_des_ede3_cbc 304 EXIST::FUNCTION:DES 296EVP_des_ede3_cbc 304 EXIST::FUNCTION:DES
297EVP_des_ede3_cfb 305 EXIST::FUNCTION:DES 297EVP_des_ede3_cfb64 305 EXIST::FUNCTION:DES
298EVP_des_ede3_ofb 306 EXIST::FUNCTION:DES 298EVP_des_ede3_ofb 306 EXIST::FUNCTION:DES
299EVP_des_ede_cbc 307 EXIST::FUNCTION:DES 299EVP_des_ede_cbc 307 EXIST::FUNCTION:DES
300EVP_des_ede_cfb 308 EXIST::FUNCTION:DES 300EVP_des_ede_cfb64 308 EXIST::FUNCTION:DES
301EVP_des_ede_ofb 309 EXIST::FUNCTION:DES 301EVP_des_ede_ofb 309 EXIST::FUNCTION:DES
302EVP_des_ofb 310 EXIST::FUNCTION:DES 302EVP_des_ofb 310 EXIST::FUNCTION:DES
303EVP_desx_cbc 311 EXIST::FUNCTION:DES 303EVP_desx_cbc 311 EXIST::FUNCTION:DES
@@ -308,14 +308,14 @@ EVP_get_cipherbyname 315 EXIST::FUNCTION:
308EVP_get_digestbyname 316 EXIST::FUNCTION: 308EVP_get_digestbyname 316 EXIST::FUNCTION:
309EVP_get_pw_prompt 317 EXIST::FUNCTION: 309EVP_get_pw_prompt 317 EXIST::FUNCTION:
310EVP_idea_cbc 318 EXIST::FUNCTION:IDEA 310EVP_idea_cbc 318 EXIST::FUNCTION:IDEA
311EVP_idea_cfb 319 EXIST::FUNCTION:IDEA 311EVP_idea_cfb64 319 EXIST::FUNCTION:IDEA
312EVP_idea_ecb 320 EXIST::FUNCTION:IDEA 312EVP_idea_ecb 320 EXIST::FUNCTION:IDEA
313EVP_idea_ofb 321 EXIST::FUNCTION:IDEA 313EVP_idea_ofb 321 EXIST::FUNCTION:IDEA
314EVP_md2 322 EXIST::FUNCTION:MD2 314EVP_md2 322 EXIST::FUNCTION:MD2
315EVP_md5 323 EXIST::FUNCTION:MD5 315EVP_md5 323 EXIST::FUNCTION:MD5
316EVP_md_null 324 EXIST::FUNCTION: 316EVP_md_null 324 EXIST::FUNCTION:
317EVP_rc2_cbc 325 EXIST::FUNCTION:RC2 317EVP_rc2_cbc 325 EXIST::FUNCTION:RC2
318EVP_rc2_cfb 326 EXIST::FUNCTION:RC2 318EVP_rc2_cfb64 326 EXIST::FUNCTION:RC2
319EVP_rc2_ecb 327 EXIST::FUNCTION:RC2 319EVP_rc2_ecb 327 EXIST::FUNCTION:RC2
320EVP_rc2_ofb 328 EXIST::FUNCTION:RC2 320EVP_rc2_ofb 328 EXIST::FUNCTION:RC2
321EVP_rc4 329 EXIST::FUNCTION:RC4 321EVP_rc4 329 EXIST::FUNCTION:RC4
@@ -962,7 +962,7 @@ i2t_ASN1_OBJECT 979 EXIST::FUNCTION:
962BN_BLINDING_new 980 EXIST::FUNCTION: 962BN_BLINDING_new 980 EXIST::FUNCTION:
963BN_BLINDING_free 981 EXIST::FUNCTION: 963BN_BLINDING_free 981 EXIST::FUNCTION:
964EVP_cast5_cbc 983 EXIST::FUNCTION:CAST 964EVP_cast5_cbc 983 EXIST::FUNCTION:CAST
965EVP_cast5_cfb 984 EXIST::FUNCTION:CAST 965EVP_cast5_cfb64 984 EXIST::FUNCTION:CAST
966EVP_cast5_ecb 985 EXIST::FUNCTION:CAST 966EVP_cast5_ecb 985 EXIST::FUNCTION:CAST
967EVP_cast5_ofb 986 EXIST::FUNCTION:CAST 967EVP_cast5_ofb 986 EXIST::FUNCTION:CAST
968BF_decrypt 987 EXIST::FUNCTION:BF 968BF_decrypt 987 EXIST::FUNCTION:BF
@@ -1057,7 +1057,7 @@ EVP_CIPHER_param_to_asn1 1084 EXIST::FUNCTION:
1057EVP_CIPHER_get_asn1_iv 1085 EXIST::FUNCTION: 1057EVP_CIPHER_get_asn1_iv 1085 EXIST::FUNCTION:
1058EVP_CIPHER_set_asn1_iv 1086 EXIST::FUNCTION: 1058EVP_CIPHER_set_asn1_iv 1086 EXIST::FUNCTION:
1059EVP_rc5_32_12_16_cbc 1087 EXIST::FUNCTION:RC5 1059EVP_rc5_32_12_16_cbc 1087 EXIST::FUNCTION:RC5
1060EVP_rc5_32_12_16_cfb 1088 EXIST::FUNCTION:RC5 1060EVP_rc5_32_12_16_cfb64 1088 EXIST::FUNCTION:RC5
1061EVP_rc5_32_12_16_ecb 1089 EXIST::FUNCTION:RC5 1061EVP_rc5_32_12_16_ecb 1089 EXIST::FUNCTION:RC5
1062EVP_rc5_32_12_16_ofb 1090 EXIST::FUNCTION:RC5 1062EVP_rc5_32_12_16_ofb 1090 EXIST::FUNCTION:RC5
1063asn1_add_error 1091 EXIST::FUNCTION: 1063asn1_add_error 1091 EXIST::FUNCTION:
@@ -2776,10 +2776,10 @@ ENGINE_load_4758cca 3218 EXIST::FUNCTION:ENGINE
2776_ossl_096_des_random_seed 3219 EXIST::FUNCTION:DES 2776_ossl_096_des_random_seed 3219 EXIST::FUNCTION:DES
2777EVP_aes_256_ofb 3220 EXIST::FUNCTION:AES 2777EVP_aes_256_ofb 3220 EXIST::FUNCTION:AES
2778EVP_aes_192_ofb 3221 EXIST::FUNCTION:AES 2778EVP_aes_192_ofb 3221 EXIST::FUNCTION:AES
2779EVP_aes_128_cfb 3222 EXIST::FUNCTION:AES 2779EVP_aes_128_cfb128 3222 EXIST::FUNCTION:AES
2780EVP_aes_256_cfb 3223 EXIST::FUNCTION:AES 2780EVP_aes_256_cfb128 3223 EXIST::FUNCTION:AES
2781EVP_aes_128_ofb 3224 EXIST::FUNCTION:AES 2781EVP_aes_128_ofb 3224 EXIST::FUNCTION:AES
2782EVP_aes_192_cfb 3225 EXIST::FUNCTION:AES 2782EVP_aes_192_cfb128 3225 EXIST::FUNCTION:AES
2783CONF_modules_free 3226 EXIST::FUNCTION: 2783CONF_modules_free 3226 EXIST::FUNCTION:
2784NCONF_default 3227 EXIST::FUNCTION: 2784NCONF_default 3227 EXIST::FUNCTION:
2785OPENSSL_no_config 3228 EXIST::FUNCTION: 2785OPENSSL_no_config 3228 EXIST::FUNCTION:
@@ -2803,3 +2803,67 @@ OpenSSLDie 3244 EXIST::FUNCTION:
2803OPENSSL_cleanse 3245 EXIST::FUNCTION: 2803OPENSSL_cleanse 3245 EXIST::FUNCTION:
2804ENGINE_setup_bsd_cryptodev 3246 EXIST:__FreeBSD__:FUNCTION:ENGINE 2804ENGINE_setup_bsd_cryptodev 3246 EXIST:__FreeBSD__:FUNCTION:ENGINE
2805ERR_release_err_state_table 3247 EXIST::FUNCTION:LHASH 2805ERR_release_err_state_table 3247 EXIST::FUNCTION:LHASH
2806EVP_aes_128_cfb8 3248 EXIST::FUNCTION:AES
2807FIPS_corrupt_rsa 3249 EXIST:OPENSSL_FIPS:FUNCTION:
2808FIPS_selftest_des 3250 EXIST:OPENSSL_FIPS:FUNCTION:
2809EVP_aes_128_cfb1 3251 EXIST::FUNCTION:AES
2810EVP_aes_192_cfb8 3252 EXIST::FUNCTION:AES
2811FIPS_mode_set 3253 EXIST:OPENSSL_FIPS:FUNCTION:
2812FIPS_selftest_dsa 3254 EXIST:OPENSSL_FIPS:FUNCTION:
2813EVP_aes_256_cfb8 3255 EXIST::FUNCTION:AES
2814FIPS_allow_md5 3256 EXIST:OPENSSL_FIPS:FUNCTION:
2815DES_ede3_cfb_encrypt 3257 EXIST::FUNCTION:DES
2816EVP_des_ede3_cfb8 3258 EXIST::FUNCTION:DES
2817FIPS_rand_seeded 3259 EXIST:OPENSSL_FIPS:FUNCTION:
2818AES_cfbr_encrypt_block 3260 EXIST::FUNCTION:AES
2819AES_cfb8_encrypt 3261 EXIST::FUNCTION:AES
2820FIPS_rand_seed 3262 EXIST:OPENSSL_FIPS:FUNCTION:
2821FIPS_corrupt_des 3263 EXIST:OPENSSL_FIPS:FUNCTION:
2822EVP_aes_192_cfb1 3264 EXIST::FUNCTION:AES
2823FIPS_selftest_aes 3265 EXIST:OPENSSL_FIPS:FUNCTION:
2824FIPS_set_prng_key 3266 EXIST:OPENSSL_FIPS:FUNCTION:
2825EVP_des_cfb8 3267 EXIST::FUNCTION:DES
2826FIPS_corrupt_dsa 3268 EXIST:OPENSSL_FIPS:FUNCTION:
2827FIPS_test_mode 3269 EXIST:OPENSSL_FIPS:FUNCTION:
2828FIPS_rand_method 3270 EXIST:OPENSSL_FIPS:FUNCTION:
2829EVP_aes_256_cfb1 3271 EXIST::FUNCTION:AES
2830ERR_load_FIPS_strings 3272 EXIST:OPENSSL_FIPS:FUNCTION:
2831FIPS_corrupt_aes 3273 EXIST:OPENSSL_FIPS:FUNCTION:
2832FIPS_selftest_sha1 3274 EXIST:OPENSSL_FIPS:FUNCTION:
2833FIPS_selftest_rsa 3275 EXIST:OPENSSL_FIPS:FUNCTION:
2834FIPS_corrupt_sha1 3276 EXIST:OPENSSL_FIPS:FUNCTION:
2835EVP_des_cfb1 3277 EXIST::FUNCTION:DES
2836FIPS_dsa_check 3278 EXIST:OPENSSL_FIPS:FUNCTION:
2837AES_cfb1_encrypt 3279 EXIST::FUNCTION:AES
2838EVP_des_ede3_cfb1 3280 EXIST::FUNCTION:DES
2839FIPS_rand_check 3281 EXIST:OPENSSL_FIPS:FUNCTION:
2840FIPS_md5_allowed 3282 EXIST:OPENSSL_FIPS:FUNCTION:
2841FIPS_mode 3283 EXIST:OPENSSL_FIPS:FUNCTION:
2842FIPS_selftest_failed 3284 EXIST:OPENSSL_FIPS:FUNCTION:
2843sk_is_sorted 3285 EXIST::FUNCTION:
2844X509_check_ca 3286 EXIST::FUNCTION:
2845private_idea_set_encrypt_key 3287 EXIST:OPENSSL_FIPS:FUNCTION:IDEA
2846HMAC_CTX_set_flags 3288 EXIST::FUNCTION:HMAC
2847private_SHA_Init 3289 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA0
2848private_CAST_set_key 3290 EXIST:OPENSSL_FIPS:FUNCTION:CAST
2849private_RIPEMD160_Init 3291 EXIST:OPENSSL_FIPS:FUNCTION:RIPEMD
2850private_RC5_32_set_key 3292 EXIST:OPENSSL_FIPS:FUNCTION:RC5
2851private_MD5_Init 3293 EXIST:OPENSSL_FIPS:FUNCTION:MD5
2852private_RC4_set_key 3294 EXIST:OPENSSL_FIPS:FUNCTION:RC4
2853private_MDC2_Init 3295 EXIST:OPENSSL_FIPS:FUNCTION:MDC2
2854private_RC2_set_key 3296 EXIST:OPENSSL_FIPS:FUNCTION:RC2
2855private_MD4_Init 3297 EXIST:OPENSSL_FIPS:FUNCTION:MD4
2856private_BF_set_key 3298 EXIST:OPENSSL_FIPS:FUNCTION:BF
2857private_MD2_Init 3299 EXIST:OPENSSL_FIPS:FUNCTION:MD2
2858d2i_PROXY_CERT_INFO_EXTENSION 3300 EXIST::FUNCTION:
2859PROXY_POLICY_it 3301 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2860PROXY_POLICY_it 3301 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2861i2d_PROXY_POLICY 3302 EXIST::FUNCTION:
2862i2d_PROXY_CERT_INFO_EXTENSION 3303 EXIST::FUNCTION:
2863d2i_PROXY_POLICY 3304 EXIST::FUNCTION:
2864PROXY_CERT_INFO_EXTENSION_new 3305 EXIST::FUNCTION:
2865PROXY_CERT_INFO_EXTENSION_free 3306 EXIST::FUNCTION:
2866PROXY_CERT_INFO_EXTENSION_it 3307 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2867PROXY_CERT_INFO_EXTENSION_it 3307 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2868PROXY_POLICY_free 3308 EXIST::FUNCTION:
2869PROXY_POLICY_new 3309 EXIST::FUNCTION:
diff --git a/src/lib/libcrypto/util/mk1mf.pl b/src/lib/libcrypto/util/mk1mf.pl
index b4bc0457e5..957264c6b5 100644
--- a/src/lib/libcrypto/util/mk1mf.pl
+++ b/src/lib/libcrypto/util/mk1mf.pl
@@ -10,7 +10,7 @@ $OPTIONS="";
10$ssl_version=""; 10$ssl_version="";
11$banner="\t\@echo Building OpenSSL"; 11$banner="\t\@echo Building OpenSSL";
12 12
13open(IN,"<Makefile.ssl") || die "unable to open Makefile.ssl!\n"; 13open(IN,"<Makefile") || die "unable to open Makefile!\n";
14while(<IN>) { 14while(<IN>) {
15 $ssl_version=$1 if (/^VERSION=(.*)$/); 15 $ssl_version=$1 if (/^VERSION=(.*)$/);
16 $OPTIONS=$1 if (/^OPTIONS=(.*)$/); 16 $OPTIONS=$1 if (/^OPTIONS=(.*)$/);
@@ -18,7 +18,7 @@ while(<IN>) {
18} 18}
19close(IN); 19close(IN);
20 20
21die "Makefile.ssl is not the toplevel Makefile!\n" if $ssl_version eq ""; 21die "Makefile is not the toplevel Makefile!\n" if $ssl_version eq "";
22 22
23$infile="MINFO"; 23$infile="MINFO";
24 24
@@ -222,7 +222,7 @@ $cflags.=" -DOPENSSL_NO_SHA" if $no_sha;
222$cflags.=" -DOPENSSL_NO_SHA1" if $no_sha1; 222$cflags.=" -DOPENSSL_NO_SHA1" if $no_sha1;
223$cflags.=" -DOPENSSL_NO_RIPEMD" if $no_ripemd; 223$cflags.=" -DOPENSSL_NO_RIPEMD" if $no_ripemd;
224$cflags.=" -DOPENSSL_NO_MDC2" if $no_mdc2; 224$cflags.=" -DOPENSSL_NO_MDC2" if $no_mdc2;
225$cflags.=" -DOPENSSL_NO_BF" if $no_bf; 225$cflags.=" -DOPENSSL_NO_BF" if $no_bf;
226$cflags.=" -DOPENSSL_NO_CAST" if $no_cast; 226$cflags.=" -DOPENSSL_NO_CAST" if $no_cast;
227$cflags.=" -DOPENSSL_NO_DES" if $no_des; 227$cflags.=" -DOPENSSL_NO_DES" if $no_des;
228$cflags.=" -DOPENSSL_NO_RSA" if $no_rsa; 228$cflags.=" -DOPENSSL_NO_RSA" if $no_rsa;
@@ -236,6 +236,7 @@ $cflags.=" -DOPENSSL_NO_KRB5" if $no_krb5;
236$cflags.=" -DOPENSSL_NO_EC" if $no_ec; 236$cflags.=" -DOPENSSL_NO_EC" if $no_ec;
237$cflags.=" -DOPENSSL_NO_ENGINE" if $no_engine; 237$cflags.=" -DOPENSSL_NO_ENGINE" if $no_engine;
238$cflags.=" -DOPENSSL_NO_HW" if $no_hw; 238$cflags.=" -DOPENSSL_NO_HW" if $no_hw;
239$cflags.=" -DOPENSSL_FIPS" if $fips;
239#$cflags.=" -DRSAref" if $rsaref ne ""; 240#$cflags.=" -DRSAref" if $rsaref ne "";
240 241
241## if ($unix) 242## if ($unix)
@@ -631,15 +632,21 @@ foreach (split(/\s+/,$test))
631$rules.= &do_lib_rule("\$(SSLOBJ)","\$(O_SSL)",$ssl,$shlib,"\$(SO_SSL)"); 632$rules.= &do_lib_rule("\$(SSLOBJ)","\$(O_SSL)",$ssl,$shlib,"\$(SO_SSL)");
632$rules.= &do_lib_rule("\$(CRYPTOOBJ)","\$(O_CRYPTO)",$crypto,$shlib,"\$(SO_CRYPTO)"); 633$rules.= &do_lib_rule("\$(CRYPTOOBJ)","\$(O_CRYPTO)",$crypto,$shlib,"\$(SO_CRYPTO)");
633 634
634$rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)"); 635if ($fips)
635 636 {
637 $rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)","\$(BIN_D)$o.sha1","\$(BIN_D)$o\$(E_EXE)$exep");
638 }
639else
640 {
641 $rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)");
642 }
636print $defs; 643print $defs;
637 644
638if ($platform eq "linux-elf") { 645if ($platform eq "linux-elf") {
639 print <<"EOF"; 646 print <<"EOF";
640# Generate perlasm output files 647# Generate perlasm output files
641%.cpp: 648%.cpp:
642 (cd \$(\@D)/..; PERL=perl make -f Makefile.ssl asm/\$(\@F)) 649 (cd \$(\@D)/..; PERL=perl make -f Makefile asm/\$(\@F))
643EOF 650EOF
644} 651}
645print "###################################################################\n"; 652print "###################################################################\n";
@@ -921,6 +928,7 @@ sub read_options
921 $no_aes=1; } 928 $no_aes=1; }
922 929
923 elsif (/^rsaref$/) { } 930 elsif (/^rsaref$/) { }
931 elsif (/^fips$/) { $fips=1; }
924 elsif (/^gcc$/) { $gcc=1; } 932 elsif (/^gcc$/) { $gcc=1; }
925 elsif (/^debug$/) { $debug=1; } 933 elsif (/^debug$/) { $debug=1; }
926 elsif (/^profile$/) { $profile=1; } 934 elsif (/^profile$/) { $profile=1; }
diff --git a/src/lib/libcrypto/util/mkdef.pl b/src/lib/libcrypto/util/mkdef.pl
index 01a1bfda19..9918c3d549 100644
--- a/src/lib/libcrypto/util/mkdef.pl
+++ b/src/lib/libcrypto/util/mkdef.pl
@@ -79,7 +79,7 @@ my $OS2=0;
79my $safe_stack_def = 0; 79my $safe_stack_def = 0;
80 80
81my @known_platforms = ( "__FreeBSD__", "PERL5", "NeXT", 81my @known_platforms = ( "__FreeBSD__", "PERL5", "NeXT",
82 "EXPORT_VAR_AS_FUNCTION" ); 82 "EXPORT_VAR_AS_FUNCTION", "OPENSSL_FIPS" );
83my @known_ossl_platforms = ( "VMS", "WIN16", "WIN32", "WINNT", "OS2" ); 83my @known_ossl_platforms = ( "VMS", "WIN16", "WIN32", "WINNT", "OS2" );
84my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF", 84my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF",
85 "CAST", "MD2", "MD4", "MD5", "SHA", "SHA0", "SHA1", 85 "CAST", "MD2", "MD4", "MD5", "SHA", "SHA0", "SHA1",
@@ -94,7 +94,7 @@ my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF",
94 "FP_API", "STDIO", "SOCK", "KRB5", "ENGINE", "HW" ); 94 "FP_API", "STDIO", "SOCK", "KRB5", "ENGINE", "HW" );
95 95
96my $options=""; 96my $options="";
97open(IN,"<Makefile.ssl") || die "unable to open Makefile.ssl!\n"; 97open(IN,"<Makefile") || die "unable to open Makefile!\n";
98while(<IN>) { 98while(<IN>) {
99 $options=$1 if (/^OPTIONS=(.*)$/); 99 $options=$1 if (/^OPTIONS=(.*)$/);
100} 100}
@@ -109,6 +109,7 @@ my $no_md2; my $no_md4; my $no_md5; my $no_sha; my $no_ripemd; my $no_mdc2;
109my $no_rsa; my $no_dsa; my $no_dh; my $no_hmac=0; my $no_aes; my $no_krb5; 109my $no_rsa; my $no_dsa; my $no_dh; my $no_hmac=0; my $no_aes; my $no_krb5;
110my $no_ec; my $no_engine; my $no_hw; 110my $no_ec; my $no_engine; my $no_hw;
111my $no_fp_api; 111my $no_fp_api;
112my $fips;
112 113
113foreach (@ARGV, split(/ /, $options)) 114foreach (@ARGV, split(/ /, $options))
114 { 115 {
@@ -129,6 +130,7 @@ foreach (@ARGV, split(/ /, $options))
129 } 130 }
130 $VMS=1 if $_ eq "VMS"; 131 $VMS=1 if $_ eq "VMS";
131 $OS2=1 if $_ eq "OS2"; 132 $OS2=1 if $_ eq "OS2";
133 $fips=1 if $_ eq "fips";
132 134
133 $do_ssl=1 if $_ eq "ssleay"; 135 $do_ssl=1 if $_ eq "ssleay";
134 if ($_ eq "ssl") { 136 if ($_ eq "ssl") {
@@ -265,6 +267,7 @@ $crypto.=" crypto/ocsp/ocsp.h";
265$crypto.=" crypto/ui/ui.h crypto/ui/ui_compat.h"; 267$crypto.=" crypto/ui/ui.h crypto/ui/ui_compat.h";
266$crypto.=" crypto/krb5/krb5_asn.h"; 268$crypto.=" crypto/krb5/krb5_asn.h";
267$crypto.=" crypto/tmdiff.h"; 269$crypto.=" crypto/tmdiff.h";
270$crypto.=" fips/fips.h fips/rand/fips_rand.h";
268 271
269my $symhacks="crypto/symhacks.h"; 272my $symhacks="crypto/symhacks.h";
270 273
@@ -469,7 +472,7 @@ sub do_defs
469 push(@tag,$1); 472 push(@tag,$1);
470 $tag{$1}=-1; 473 $tag{$1}=-1;
471 } 474 }
472 } elsif (/^\#\s*ifdef\s+(.*)/) { 475 } elsif (/^\#\s*ifdef\s+(\S*)/) {
473 push(@tag,"-"); 476 push(@tag,"-");
474 push(@tag,$1); 477 push(@tag,$1);
475 $tag{$1}=1; 478 $tag{$1}=1;
@@ -794,7 +797,7 @@ sub do_defs
794 } 797 }
795 close(IN); 798 close(IN);
796 799
797 my $algs; 800 my $algs = '';
798 my $plays; 801 my $plays;
799 802
800 print STDERR "DEBUG: postprocessing ----------\n" if $debug; 803 print STDERR "DEBUG: postprocessing ----------\n" if $debug;
@@ -864,6 +867,7 @@ sub do_defs
864 867
865 $platform{$s} = 868 $platform{$s} =
866 &reduce_platforms((defined($platform{$s})?$platform{$s}.',':"").$p); 869 &reduce_platforms((defined($platform{$s})?$platform{$s}.',':"").$p);
870 $algorithm{$s} = '' if !defined $algorithm{$s};
867 $algorithm{$s} .= ','.$a; 871 $algorithm{$s} .= ','.$a;
868 872
869 if (defined($variant{$s})) { 873 if (defined($variant{$s})) {
@@ -1028,6 +1032,9 @@ sub is_valid
1028 if ($keyword eq "EXPORT_VAR_AS_FUNCTION" && ($VMSVAX || $W32 || $W16)) { 1032 if ($keyword eq "EXPORT_VAR_AS_FUNCTION" && ($VMSVAX || $W32 || $W16)) {
1029 return 1; 1033 return 1;
1030 } 1034 }
1035 if ($keyword eq "OPENSSL_FIPS" && $fips) {
1036 return 1;
1037 }
1031 return 0; 1038 return 0;
1032 } else { 1039 } else {
1033 # algorithms 1040 # algorithms
@@ -1119,7 +1126,7 @@ sub print_test_file
1119sub get_version { 1126sub get_version {
1120 local *MF; 1127 local *MF;
1121 my $v = '?'; 1128 my $v = '?';
1122 open MF, 'Makefile.ssl' or return $v; 1129 open MF, 'Makefile' or return $v;
1123 while (<MF>) { 1130 while (<MF>) {
1124 $v = $1, last if /^VERSION=(.*?)\s*$/; 1131 $v = $1, last if /^VERSION=(.*?)\s*$/;
1125 } 1132 }
diff --git a/src/lib/libcrypto/util/mkfiles.pl b/src/lib/libcrypto/util/mkfiles.pl
index 29e1404c69..928a274303 100644
--- a/src/lib/libcrypto/util/mkfiles.pl
+++ b/src/lib/libcrypto/util/mkfiles.pl
@@ -51,6 +51,14 @@ my @dirs = (
51"crypto/ocsp", 51"crypto/ocsp",
52"crypto/ui", 52"crypto/ui",
53"crypto/krb5", 53"crypto/krb5",
54"fips",
55"fips/aes",
56"fips/des",
57"fips/dsa",
58"fips/dh",
59"fips/rand",
60"fips/rsa",
61"fips/sha1",
54"ssl", 62"ssl",
55"apps", 63"apps",
56"test", 64"test",
@@ -58,7 +66,7 @@ my @dirs = (
58); 66);
59 67
60foreach (@dirs) { 68foreach (@dirs) {
61 &files_dir ($_, "Makefile.ssl"); 69 &files_dir ($_, "Makefile");
62} 70}
63 71
64exit(0); 72exit(0);
diff --git a/src/lib/libcrypto/util/mklink.pl b/src/lib/libcrypto/util/mklink.pl
index 9386da7aa4..c8653cecc3 100644
--- a/src/lib/libcrypto/util/mklink.pl
+++ b/src/lib/libcrypto/util/mklink.pl
@@ -52,6 +52,7 @@ $symlink_exists=eval {symlink("",""); 1};
52foreach $file (@files) { 52foreach $file (@files) {
53 my $err = ""; 53 my $err = "";
54 if ($symlink_exists) { 54 if ($symlink_exists) {
55 unlink "$from/$file";
55 symlink("$to/$file", "$from/$file") or $err = " [$!]"; 56 symlink("$to/$file", "$from/$file") or $err = " [$!]";
56 } else { 57 } else {
57 unlink "$from/$file"; 58 unlink "$from/$file";
diff --git a/src/lib/libcrypto/util/opensslwrap.sh b/src/lib/libcrypto/util/opensslwrap.sh
new file mode 100755
index 0000000000..91d29e2b87
--- /dev/null
+++ b/src/lib/libcrypto/util/opensslwrap.sh
@@ -0,0 +1,22 @@
1#!/bin/sh
2
3HERE="`echo $0 | sed -e 's|[^/]*$||'`"
4OPENSSL="${HERE}../apps/openssl"
5
6if [ -x "${OPENSSL}.exe" ]; then
7 # The original reason for this script existence is to work around
8 # certain caveats in run-time linker behaviour. On Windows platforms
9 # adjusting $PATH used to be sufficient, but with introduction of
10 # SafeDllSearchMode in XP/2003 the only way to get it right in
11 # *all* possible situations is to copy newly built .DLLs to apps/
12 # and test/, which is now done elsewhere... The $PATH is adjusted
13 # for backward compatibility (and nostagical reasons:-).
14 if [ "$OSTYPE" != msdosdjgpp ]; then
15 PATH="${HERE}..:$PATH"; export PATH
16 fi
17 exec "${OPENSSL}.exe" "$@"
18elif [ -x "${OPENSSL}" -a -x "${HERE}shlib_wrap.sh" ]; then
19 exec "${HERE}shlib_wrap.sh" "${OPENSSL}" "$@"
20else
21 exec "${OPENSSL}" "$@" # hope for the best...
22fi
diff --git a/src/lib/libcrypto/util/pl/BC-16.pl b/src/lib/libcrypto/util/pl/BC-16.pl
index 2033f524ca..8030653daa 100644
--- a/src/lib/libcrypto/util/pl/BC-16.pl
+++ b/src/lib/libcrypto/util/pl/BC-16.pl
@@ -64,7 +64,7 @@ $lfile='';
64 64
65$asm='bcc -c -B -Tml'; 65$asm='bcc -c -B -Tml';
66$afile='/o'; 66$afile='/o';
67if ($no_asm) 67if ($no_asm || $fips)
68 { 68 {
69 $bn_asm_obj=''; 69 $bn_asm_obj='';
70 $bn_asm_src=''; 70 $bn_asm_src='';
@@ -119,11 +119,11 @@ sub do_lib_rule
119 119
120sub do_link_rule 120sub do_link_rule
121 { 121 {
122 local($target,$files,$dep_libs,$libs)=@_; 122 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
123 local($ret,$f,$_,@f); 123 local($ret,$f,$_,@f);
124 124
125 $file =~ s/\//$o/g if $o ne '/'; 125 $file =~ s/\//$o/g if $o ne '/';
126 $n=&bname($targer); 126 $n=&bname($target);
127 $ret.="$target: $files $dep_libs\n"; 127 $ret.="$target: $files $dep_libs\n";
128 $ret.=" \$(LINK) @&&|"; 128 $ret.=" \$(LINK) @&&|";
129 129
@@ -139,7 +139,12 @@ sub do_link_rule
139 } 139 }
140 else 140 else
141 { $ret.="\n $r \$(APP_EX_OBJ) $files\n"; } 141 { $ret.="\n $r \$(APP_EX_OBJ) $files\n"; }
142 $ret.=" $target\n\n $libs\n\n|\n\n"; 142 $ret.=" $target\n\n $libs\n\n|\n";
143 if (defined $sha1file)
144 {
145 $ret.=" $openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
146 }
147 $ret.="\n";
143 return($ret); 148 return($ret);
144 } 149 }
145 150
diff --git a/src/lib/libcrypto/util/pl/BC-32.pl b/src/lib/libcrypto/util/pl/BC-32.pl
index e83b336190..897ae9d824 100644
--- a/src/lib/libcrypto/util/pl/BC-32.pl
+++ b/src/lib/libcrypto/util/pl/BC-32.pl
@@ -62,7 +62,7 @@ $des_enc_src='';
62$bf_enc_obj=''; 62$bf_enc_obj='';
63$bf_enc_src=''; 63$bf_enc_src='';
64 64
65if (!$no_asm) 65if (!$no_asm && !$fips)
66 { 66 {
67 $bn_mulw_obj='crypto\bn\asm\bn_win32.obj'; 67 $bn_mulw_obj='crypto\bn\asm\bn_win32.obj';
68 $bn_mulw_src='crypto\bn\asm\bn_win32.asm'; 68 $bn_mulw_src='crypto\bn\asm\bn_win32.asm';
@@ -122,13 +122,18 @@ sub do_lib_rule
122 122
123sub do_link_rule 123sub do_link_rule
124 { 124 {
125 local($target,$files,$dep_libs,$libs)=@_; 125 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
126 local($ret,$_); 126 local($ret,$_);
127 127
128 $file =~ s/\//$o/g if $o ne '/'; 128 $file =~ s/\//$o/g if $o ne '/';
129 $n=&bname($targer); 129 $n=&bname($targer);
130 $ret.="$target: $files $dep_libs\n"; 130 $ret.="$target: $files $dep_libs\n";
131 $ret.="\t\$(LINK) \$(LFLAGS) $files \$(APP_EX_OBJ), $target,, $libs\n\n"; 131 $ret.="\t\$(LINK) \$(LFLAGS) $files \$(APP_EX_OBJ), $target,, $libs\n";
132 if (defined $sha1file)
133 {
134 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
135 }
136 $ret.="\n";
132 return($ret); 137 return($ret);
133 } 138 }
134 139
diff --git a/src/lib/libcrypto/util/pl/Mingw32.pl b/src/lib/libcrypto/util/pl/Mingw32.pl
index 4bee638c4a..b9bb24d21d 100644
--- a/src/lib/libcrypto/util/pl/Mingw32.pl
+++ b/src/lib/libcrypto/util/pl/Mingw32.pl
@@ -21,7 +21,7 @@ if ($debug)
21else 21else
22 { $cflags="-DL_ENDIAN -DDSO_WIN32 -fomit-frame-pointer -O3 -mcpu=i486 -Wall"; } 22 { $cflags="-DL_ENDIAN -DDSO_WIN32 -fomit-frame-pointer -O3 -mcpu=i486 -Wall"; }
23 23
24if ($gaswin and !$no_asm) 24if ($gaswin and !$no_asm and !$fips)
25 { 25 {
26 $bn_asm_obj='$(OBJ_D)\bn-win32.o'; 26 $bn_asm_obj='$(OBJ_D)\bn-win32.o';
27 $bn_asm_src='crypto/bn/asm/bn-win32.s'; 27 $bn_asm_src='crypto/bn/asm/bn-win32.s';
@@ -92,13 +92,18 @@ sub do_lib_rule
92 92
93sub do_link_rule 93sub do_link_rule
94 { 94 {
95 local($target,$files,$dep_libs,$libs)=@_; 95 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
96 local($ret,$_); 96 local($ret,$_);
97 97
98 $file =~ s/\//$o/g if $o ne '/'; 98 $file =~ s/\//$o/g if $o ne '/';
99 $n=&bname($target); 99 $n=&bname($target);
100 $ret.="$target: $files $dep_libs\n"; 100 $ret.="$target: $files $dep_libs\n";
101 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n\n"; 101 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n";
102 if (defined $sha1file)
103 {
104 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
105 }
106 $ret.="\n";
102 return($ret); 107 return($ret);
103 } 108 }
1041; 1091;
diff --git a/src/lib/libcrypto/util/pl/OS2-EMX.pl b/src/lib/libcrypto/util/pl/OS2-EMX.pl
index ddb3524210..75d72ebbcb 100644
--- a/src/lib/libcrypto/util/pl/OS2-EMX.pl
+++ b/src/lib/libcrypto/util/pl/OS2-EMX.pl
@@ -48,7 +48,7 @@ $des_enc_src="";
48$bf_enc_obj=""; 48$bf_enc_obj="";
49$bf_enc_src=""; 49$bf_enc_src="";
50 50
51if (!$no_asm) 51if (!$no_asm && !$fips)
52 { 52 {
53 $bn_asm_obj="crypto/bn/asm/bn-os2$obj crypto/bn/asm/co-os2$obj"; 53 $bn_asm_obj="crypto/bn/asm/bn-os2$obj crypto/bn/asm/co-os2$obj";
54 $bn_asm_src="crypto/bn/asm/bn-os2.asm crypto/bn/asm/co-os2.asm"; 54 $bn_asm_src="crypto/bn/asm/bn-os2.asm crypto/bn/asm/co-os2.asm";
@@ -106,13 +106,18 @@ sub do_lib_rule
106 106
107sub do_link_rule 107sub do_link_rule
108 { 108 {
109 local($target,$files,$dep_libs,$libs)=@_; 109 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
110 local($ret,$_); 110 local($ret,$_);
111 111
112 $file =~ s/\//$o/g if $o ne '/'; 112 $file =~ s/\//$o/g if $o ne '/';
113 $n=&bname($target); 113 $n=&bname($target);
114 $ret.="$target: $files $dep_libs\n"; 114 $ret.="$target: $files $dep_libs\n";
115 $ret.="\t\$(LINK) ${efile}$target \$(CFLAG) \$(LFLAGS) $files $libs\n\n"; 115 $ret.="\t\$(LINK) ${efile}$target \$(CFLAG) \$(LFLAGS) $files $libs\n";
116 if (defined $sha1file)
117 {
118 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
119 }
120 $ret.="\n";
116 return($ret); 121 return($ret);
117 } 122 }
118 123
diff --git a/src/lib/libcrypto/util/pl/VC-16.pl b/src/lib/libcrypto/util/pl/VC-16.pl
index 7cda5e67a9..564ba3fd08 100644
--- a/src/lib/libcrypto/util/pl/VC-16.pl
+++ b/src/lib/libcrypto/util/pl/VC-16.pl
@@ -61,7 +61,7 @@ if ($shlib)
61else 61else
62 { $mlflags=''; } 62 { $mlflags=''; }
63 63
64$app_ex_obj="setargv.obj"; 64$app_ex_obj="";
65 65
66$obj='.obj'; 66$obj='.obj';
67$ofile="/Fo"; 67$ofile="/Fo";
@@ -90,7 +90,7 @@ $des_enc_src='';
90$bf_enc_obj=''; 90$bf_enc_obj='';
91$bf_enc_src=''; 91$bf_enc_src='';
92 92
93if (!$no_asm) 93if (!$no_asm && !$fips)
94 { 94 {
95 if ($asmbits == 32) 95 if ($asmbits == 32)
96 { 96 {
@@ -147,7 +147,7 @@ sub do_lib_rule
147 147
148sub do_link_rule 148sub do_link_rule
149 { 149 {
150 local($target,$files,$dep_libs,$libs)=@_; 150 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
151 local($ret,$f,$_,@f); 151 local($ret,$f,$_,@f);
152 152
153 $file =~ s/\//$o/g if $o ne '/'; 153 $file =~ s/\//$o/g if $o ne '/';
@@ -165,7 +165,12 @@ sub do_link_rule
165 } 165 }
166 else 166 else
167 { $ret.=" \$(APP_EX_OBJ) $files"; } 167 { $ret.=" \$(APP_EX_OBJ) $files"; }
168 $ret.="\n $target\n\n $libs\n\n<<\n\n"; 168 $ret.="\n $target\n\n $libs\n\n<<\n";
169 if (defined $sha1file)
170 {
171 $ret.=" $openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
172 }
173 $ret.="\n";
169 return($ret); 174 return($ret);
170 } 175 }
171 176
diff --git a/src/lib/libcrypto/util/pl/VC-32.pl b/src/lib/libcrypto/util/pl/VC-32.pl
index 285990c589..cf689b9feb 100644
--- a/src/lib/libcrypto/util/pl/VC-32.pl
+++ b/src/lib/libcrypto/util/pl/VC-32.pl
@@ -64,7 +64,7 @@ $des_enc_src='';
64$bf_enc_obj=''; 64$bf_enc_obj='';
65$bf_enc_src=''; 65$bf_enc_src='';
66 66
67if (!$no_asm) 67if (!$no_asm && !$fips)
68 { 68 {
69 $bn_asm_obj='crypto\bn\asm\bn_win32.obj'; 69 $bn_asm_obj='crypto\bn\asm\bn_win32.obj';
70 $bn_asm_src='crypto\bn\asm\bn_win32.asm'; 70 $bn_asm_src='crypto\bn\asm\bn_win32.asm';
@@ -126,14 +126,19 @@ sub do_lib_rule
126 126
127sub do_link_rule 127sub do_link_rule
128 { 128 {
129 local($target,$files,$dep_libs,$libs)=@_; 129 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
130 local($ret,$_); 130 local($ret,$_);
131 131
132 $file =~ s/\//$o/g if $o ne '/'; 132 $file =~ s/\//$o/g if $o ne '/';
133 $n=&bname($targer); 133 $n=&bname($targer);
134 $ret.="$target: $files $dep_libs\n"; 134 $ret.="$target: $files $dep_libs\n";
135 $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n"; 135 $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n";
136 $ret.=" \$(APP_EX_OBJ) $files $libs\n<<\n\n"; 136 $ret.=" \$(APP_EX_OBJ) $files $libs\n<<\n";
137 if (defined $sha1file)
138 {
139 $ret.=" $openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
140 }
141 $ret.="\n";
137 return($ret); 142 return($ret);
138 } 143 }
139 144
diff --git a/src/lib/libcrypto/util/pl/VC-CE.pl b/src/lib/libcrypto/util/pl/VC-CE.pl
index 1805ef9d97..2fd0c4dd32 100644
--- a/src/lib/libcrypto/util/pl/VC-CE.pl
+++ b/src/lib/libcrypto/util/pl/VC-CE.pl
@@ -47,7 +47,7 @@ $shlibp=($shlib)?".dll":".lib";
47$lfile='/out:'; 47$lfile='/out:';
48 48
49$shlib_ex_obj=""; 49$shlib_ex_obj="";
50#$app_ex_obj="setargv.obj"; 50$app_ex_obj="";
51$app_ex_obj=""; 51$app_ex_obj="";
52 52
53$bn_asm_obj=''; 53$bn_asm_obj='';
@@ -97,14 +97,19 @@ sub do_lib_rule
97 97
98sub do_link_rule 98sub do_link_rule
99 { 99 {
100 local($target,$files,$dep_libs,$libs)=@_; 100 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
101 local($ret,$_); 101 local($ret,$_);
102 102
103 $file =~ s/\//$o/g if $o ne '/'; 103 $file =~ s/\//$o/g if $o ne '/';
104 $n=&bname($targer); 104 $n=&bname($targer);
105 $ret.="$target: $files $dep_libs\n"; 105 $ret.="$target: $files $dep_libs\n";
106 $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n"; 106 $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n";
107 $ret.=" \$(APP_EX_OBJ) $files $libs\n<<\n\n"; 107 $ret.=" \$(APP_EX_OBJ) $files $libs\n<<\n";
108 if (defined $sha1file)
109 {
110 $ret.=" $openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
111 }
112 $ret.="\n";
108 return($ret); 113 return($ret);
109 } 114 }
110 115
diff --git a/src/lib/libcrypto/util/pl/linux.pl b/src/lib/libcrypto/util/pl/linux.pl
index 8924ed5480..df05c40526 100644
--- a/src/lib/libcrypto/util/pl/linux.pl
+++ b/src/lib/libcrypto/util/pl/linux.pl
@@ -72,13 +72,18 @@ sub do_shlib_rule
72 72
73sub do_link_rule 73sub do_link_rule
74 { 74 {
75 local($target,$files,$dep_libs,$libs)=@_; 75 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
76 local($ret,$_); 76 local($ret,$_);
77 77
78 $file =~ s/\//$o/g if $o ne '/'; 78 $file =~ s/\//$o/g if $o ne '/';
79 $n=&bname($target); 79 $n=&bname($target);
80 $ret.="$target: $files $dep_libs\n"; 80 $ret.="$target: $files $dep_libs\n";
81 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n\n"; 81 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n";
82 if (defined $sha1file)
83 {
84 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
85 }
86 $ret.="\n";
82 return($ret); 87 return($ret);
83 } 88 }
84 89
diff --git a/src/lib/libcrypto/util/pl/ultrix.pl b/src/lib/libcrypto/util/pl/ultrix.pl
index ea370c71f9..447b854708 100644
--- a/src/lib/libcrypto/util/pl/ultrix.pl
+++ b/src/lib/libcrypto/util/pl/ultrix.pl
@@ -17,7 +17,7 @@ else
17 17
18$cflags.=" -std1 -DL_ENDIAN"; 18$cflags.=" -std1 -DL_ENDIAN";
19 19
20if (!$no_asm) 20if (!$no_asm && !$fips)
21 { 21 {
22 $bn_asm_obj='$(OBJ_D)/mips1.o'; 22 $bn_asm_obj='$(OBJ_D)/mips1.o';
23 $bn_asm_src='crypto/bn/asm/mips1.s'; 23 $bn_asm_src='crypto/bn/asm/mips1.s';
@@ -25,13 +25,18 @@ if (!$no_asm)
25 25
26sub do_link_rule 26sub do_link_rule
27 { 27 {
28 local($target,$files,$dep_libs,$libs)=@_; 28 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
29 local($ret,$_); 29 local($ret,$_);
30 30
31 $file =~ s/\//$o/g if $o ne '/'; 31 $file =~ s/\//$o/g if $o ne '/';
32 $n=&bname($target); 32 $n=&bname($target);
33 $ret.="$target: $files $dep_libs\n"; 33 $ret.="$target: $files $dep_libs\n";
34 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n\n"; 34 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n";
35 if (defined $sha1file)
36 {
37 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
38 }
39 $ret.="\n";
35 return($ret); 40 return($ret);
36 } 41 }
37 42
diff --git a/src/lib/libcrypto/util/pl/unix.pl b/src/lib/libcrypto/util/pl/unix.pl
index 146611ad99..bbd1798a2e 100644
--- a/src/lib/libcrypto/util/pl/unix.pl
+++ b/src/lib/libcrypto/util/pl/unix.pl
@@ -70,13 +70,18 @@ sub do_lib_rule
70 70
71sub do_link_rule 71sub do_link_rule
72 { 72 {
73 local($target,$files,$dep_libs,$libs)=@_; 73 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
74 local($ret,$_); 74 local($ret,$_);
75 75
76 $file =~ s/\//$o/g if $o ne '/'; 76 $file =~ s/\//$o/g if $o ne '/';
77 $n=&bname($target); 77 $n=&bname($target);
78 $ret.="$target: $files $dep_libs\n"; 78 $ret.="$target: $files $dep_libs\n";
79 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n\n"; 79 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n";
80 if (defined $sha1file)
81 {
82 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
83 }
84 $ret.="\n";
80 return($ret); 85 return($ret);
81 } 86 }
82 87
diff --git a/src/lib/libcrypto/util/pod2mantest b/src/lib/libcrypto/util/pod2mantest
index 412ca8d6d8..384e683df4 100644
--- a/src/lib/libcrypto/util/pod2mantest
+++ b/src/lib/libcrypto/util/pod2mantest
@@ -1,6 +1,6 @@
1#!/bin/sh 1#!/bin/sh
2 2
3# This script is used by test/Makefile.ssl to check whether a sane 'pod2man' 3# This script is used by test/Makefile to check whether a sane 'pod2man'
4# is installed. 4# is installed.
5# ('make install' should not try to run 'pod2man' if it does not exist or if 5# ('make install' should not try to run 'pod2man' if it does not exist or if
6# it is a broken 'pod2man' version that is known to cause trouble. if we find 6# it is a broken 'pod2man' version that is known to cause trouble. if we find
diff --git a/src/lib/libcrypto/util/selftest.pl b/src/lib/libcrypto/util/selftest.pl
index 276b81183d..e9d5aa8938 100644
--- a/src/lib/libcrypto/util/selftest.pl
+++ b/src/lib/libcrypto/util/selftest.pl
@@ -34,9 +34,9 @@ foreach $_ (split("\n",$c)) {
34 $platform0=$1 if (/Configuring for (.*)$/); 34 $platform0=$1 if (/Configuring for (.*)$/);
35} 35}
36 36
37system "sh config" if (! -f "Makefile.ssl"); 37system "sh config" if (! -f "Makefile");
38 38
39if (open(IN,"<Makefile.ssl")) { 39if (open(IN,"<Makefile")) {
40 while (<IN>) { 40 while (<IN>) {
41 $version=$1 if (/^VERSION=(.*)$/); 41 $version=$1 if (/^VERSION=(.*)$/);
42 $platform=$1 if (/^PLATFORM=(.*)$/); 42 $platform=$1 if (/^PLATFORM=(.*)$/);
diff --git a/src/lib/libcrypto/util/shlib_wrap.sh b/src/lib/libcrypto/util/shlib_wrap.sh
new file mode 100755
index 0000000000..dc5f5b1ce4
--- /dev/null
+++ b/src/lib/libcrypto/util/shlib_wrap.sh
@@ -0,0 +1,70 @@
1#!/bin/sh
2
3[ $# -ne 0 ] || set -x # debug mode without arguments:-)
4
5THERE="`echo $0 | sed -e 's|[^/]*$||' 2>/dev/null`.."
6[ -d "${THERE}" ] || exec "$@" # should never happen...
7
8# Alternative to this is to parse ${THERE}/Makefile...
9LIBCRYPTOSO="${THERE}/libcrypto.so"
10if [ -f "$LIBCRYPTOSO" ]; then
11 while [ -h "$LIBCRYPTOSO" ]; do
12 LIBCRYPTOSO="${THERE}/`ls -l "$LIBCRYPTOSO" | sed -e 's|.*\-> ||'`"
13 done
14 SOSUFFIX=`echo ${LIBCRYPTOSO} | sed -e 's|.*\.so||' 2>/dev/null`
15 LIBSSLSO="${THERE}/libssl.so${SOSUFFIX}"
16fi
17
18SYSNAME=`(uname -s) 2>/dev/null`;
19case "$SYSNAME" in
20SunOS|IRIX*)
21 # SunOS and IRIX run-time linkers evaluate alternative
22 # variables depending on target ABI...
23 rld_var=LD_LIBRARY_PATH
24 case "`(/usr/bin/file "$LIBCRYPTOSO") 2>/dev/null`" in
25 *ELF\ 64*SPARC*)
26 [ -n "$LD_LIBRARY_PATH_64" ] && rld_var=LD_LIBRARY_PATH_64
27 ;;
28 *ELF\ N32*MIPS*)
29 [ -n "$LD_LIBRARYN32_PATH" ] && rld_var=LD_LIBRARYN32_PATH
30 _RLDN32_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT"; export _RLDN32_LIST
31 ;;
32 *ELF\ 64*MIPS*)
33 [ -n "$LD_LIBRARY64_PATH" ] && rld_var=LD_LIBRARY64_PATH
34 _RLD64_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT"; export _RLD64_LIST
35 ;;
36 esac
37 eval $rld_var=\"${THERE}:'$'$rld_var\"; export $rld_var
38 unset rld_var
39 ;;
40*) LD_LIBRARY_PATH="${THERE}:$LD_LIBRARY_PATH" # Linux, ELF HP-UX
41 DYLD_LIBRARY_PATH="${THERE}:$DYLD_LIBRARY_PATH" # MacOS X
42 SHLIB_PATH="${THERE}:$SHLIB_PATH" # legacy HP-UX
43 LIBPATH="${THERE}:$LIBPATH" # AIX, OS/2
44 export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH
45 # Even though $PATH is adjusted [for Windows sake], it doesn't
46 # necessarily does the trick. Trouble is that with introduction
47 # of SafeDllSearchMode in XP/2003 it's more appropriate to copy
48 # .DLLs in vicinity of executable, which is done elsewhere...
49 if [ "$OSTYPE" != msdosdjgpp ]; then
50 PATH="${THERE}:$PATH"; export PATH
51 fi
52 ;;
53esac
54
55if [ -f "$LIBCRYPTOSO" ]; then
56 # Following three lines are major excuse for isolating them into
57 # this wrapper script. Original reason for setting LD_PRELOAD
58 # was to make it possible to pass 'make test' when user linked
59 # with -rpath pointing to previous version installation. Wrapping
60 # it into a script makes it possible to do so on multi-ABI
61 # platforms.
62 case "$SYSNAME" in
63 *BSD) LD_PRELOAD="$LIBCRYPTOSO:$LIBSSLSO" ;; # *BSD
64 *) LD_PRELOAD="$LIBCRYPTOSO $LIBSSLSO" ;; # SunOS, Linux, ELF HP-UX
65 esac
66 _RLD_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT" # Tru64, o32 IRIX
67 export LD_PRELOAD _RLD_LIST
68fi
69
70exec "$@"
diff --git a/src/lib/libcrypto/x509/Makefile b/src/lib/libcrypto/x509/Makefile
new file mode 100644
index 0000000000..5fb774f1c7
--- /dev/null
+++ b/src/lib/libcrypto/x509/Makefile
@@ -0,0 +1,592 @@
1#
2# SSLeay/crypto/x509/Makefile
3#
4
5DIR= x509
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile README
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= x509_def.c x509_d2.c x509_r2x.c x509_cmp.c \
26 x509_obj.c x509_req.c x509spki.c x509_vfy.c \
27 x509_set.c x509cset.c x509rset.c x509_err.c \
28 x509name.c x509_v3.c x509_ext.c x509_att.c \
29 x509type.c x509_lu.c x_all.c x509_txt.c \
30 x509_trs.c by_file.c by_dir.c
31LIBOBJ= x509_def.o x509_d2.o x509_r2x.o x509_cmp.o \
32 x509_obj.o x509_req.o x509spki.o x509_vfy.o \
33 x509_set.o x509cset.o x509rset.o x509_err.o \
34 x509name.o x509_v3.o x509_ext.o x509_att.o \
35 x509type.o x509_lu.o x_all.o x509_txt.o \
36 x509_trs.o by_file.o by_dir.o
37
38SRC= $(LIBSRC)
39
40EXHEADER= x509.h x509_vfy.h
41HEADER= $(EXHEADER)
42
43ALL= $(GENERAL) $(SRC) $(HEADER)
44
45top:
46 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
47
48all: lib
49
50lib: $(LIBOBJ)
51 $(AR) $(LIB) $(LIBOBJ)
52 $(RANLIB) $(LIB) || echo Never mind.
53 @touch lib
54
55files:
56 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
57
58links:
59 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
60 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
61 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
62
63install:
64 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
65 do \
66 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
67 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
68 done;
69
70tags:
71 ctags $(SRC)
72
73tests:
74
75lint:
76 lint -DLINT $(INCLUDES) $(SRC)>fluff
77
78depend:
79 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
80
81dclean:
82 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
83 mv -f Makefile.new $(MAKEFILE)
84
85clean:
86 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
87
88# DO NOT DELETE THIS LINE -- make depend depends on it.
89
90by_dir.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
91by_dir.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
92by_dir.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
93by_dir.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
94by_dir.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
95by_dir.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
96by_dir.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
97by_dir.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
98by_dir.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
99by_dir.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
100by_dir.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
101by_dir.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
102by_dir.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
103by_dir.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
104by_dir.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
105by_dir.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
106by_dir.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
107by_dir.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
108by_dir.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
109by_dir.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
110by_dir.o: ../cryptlib.h by_dir.c
111by_file.o: ../../e_os.h ../../include/openssl/aes.h
112by_file.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
113by_file.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
114by_file.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
115by_file.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
116by_file.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
117by_file.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
118by_file.o: ../../include/openssl/err.h ../../include/openssl/evp.h
119by_file.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
120by_file.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
121by_file.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
122by_file.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
123by_file.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
124by_file.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
125by_file.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
126by_file.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
127by_file.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
128by_file.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
129by_file.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
130by_file.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
131by_file.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
132by_file.o: ../../include/openssl/x509_vfy.h ../cryptlib.h by_file.c
133x509_att.o: ../../e_os.h ../../include/openssl/aes.h
134x509_att.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
135x509_att.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
136x509_att.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
137x509_att.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
138x509_att.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
139x509_att.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
140x509_att.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
141x509_att.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
142x509_att.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
143x509_att.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
144x509_att.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
145x509_att.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
146x509_att.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
147x509_att.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
148x509_att.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
149x509_att.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
150x509_att.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
151x509_att.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
152x509_att.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
153x509_att.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
154x509_att.o: ../../include/openssl/x509v3.h ../cryptlib.h x509_att.c
155x509_cmp.o: ../../e_os.h ../../include/openssl/aes.h
156x509_cmp.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
157x509_cmp.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
158x509_cmp.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
159x509_cmp.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
160x509_cmp.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
161x509_cmp.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
162x509_cmp.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
163x509_cmp.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
164x509_cmp.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
165x509_cmp.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
166x509_cmp.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
167x509_cmp.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
168x509_cmp.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
169x509_cmp.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
170x509_cmp.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
171x509_cmp.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
172x509_cmp.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
173x509_cmp.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
174x509_cmp.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
175x509_cmp.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
176x509_cmp.o: ../../include/openssl/x509v3.h ../cryptlib.h x509_cmp.c
177x509_d2.o: ../../e_os.h ../../include/openssl/aes.h
178x509_d2.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
179x509_d2.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
180x509_d2.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
181x509_d2.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
182x509_d2.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
183x509_d2.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
184x509_d2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
185x509_d2.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
186x509_d2.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
187x509_d2.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
188x509_d2.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
189x509_d2.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
190x509_d2.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
191x509_d2.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
192x509_d2.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
193x509_d2.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
194x509_d2.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
195x509_d2.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
196x509_d2.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
197x509_d2.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x509_d2.c
198x509_def.o: ../../e_os.h ../../include/openssl/aes.h
199x509_def.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
200x509_def.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
201x509_def.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
202x509_def.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
203x509_def.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
204x509_def.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
205x509_def.o: ../../include/openssl/err.h ../../include/openssl/evp.h
206x509_def.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
207x509_def.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
208x509_def.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
209x509_def.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
210x509_def.o: ../../include/openssl/opensslconf.h
211x509_def.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
212x509_def.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
213x509_def.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
214x509_def.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
215x509_def.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
216x509_def.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
217x509_def.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
218x509_def.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
219x509_def.o: ../cryptlib.h x509_def.c
220x509_err.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
221x509_err.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
222x509_err.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
223x509_err.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
224x509_err.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
225x509_err.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
226x509_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
227x509_err.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
228x509_err.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
229x509_err.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
230x509_err.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
231x509_err.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
232x509_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
233x509_err.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
234x509_err.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
235x509_err.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
236x509_err.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
237x509_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
238x509_err.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
239x509_err.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
240x509_err.o: x509_err.c
241x509_ext.o: ../../e_os.h ../../include/openssl/aes.h
242x509_ext.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
243x509_ext.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
244x509_ext.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
245x509_ext.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
246x509_ext.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
247x509_ext.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
248x509_ext.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
249x509_ext.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
250x509_ext.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
251x509_ext.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
252x509_ext.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
253x509_ext.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
254x509_ext.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
255x509_ext.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
256x509_ext.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
257x509_ext.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
258x509_ext.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
259x509_ext.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
260x509_ext.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
261x509_ext.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
262x509_ext.o: ../../include/openssl/x509v3.h ../cryptlib.h x509_ext.c
263x509_lu.o: ../../e_os.h ../../include/openssl/aes.h
264x509_lu.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
265x509_lu.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
266x509_lu.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
267x509_lu.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
268x509_lu.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
269x509_lu.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
270x509_lu.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
271x509_lu.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
272x509_lu.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
273x509_lu.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
274x509_lu.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
275x509_lu.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
276x509_lu.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
277x509_lu.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
278x509_lu.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
279x509_lu.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
280x509_lu.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
281x509_lu.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
282x509_lu.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
283x509_lu.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
284x509_lu.o: ../../include/openssl/x509v3.h ../cryptlib.h x509_lu.c
285x509_obj.o: ../../e_os.h ../../include/openssl/aes.h
286x509_obj.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
287x509_obj.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
288x509_obj.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
289x509_obj.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
290x509_obj.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
291x509_obj.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
292x509_obj.o: ../../include/openssl/err.h ../../include/openssl/evp.h
293x509_obj.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
294x509_obj.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
295x509_obj.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
296x509_obj.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
297x509_obj.o: ../../include/openssl/opensslconf.h
298x509_obj.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
299x509_obj.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
300x509_obj.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
301x509_obj.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
302x509_obj.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
303x509_obj.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
304x509_obj.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
305x509_obj.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
306x509_obj.o: ../cryptlib.h x509_obj.c
307x509_r2x.o: ../../e_os.h ../../include/openssl/aes.h
308x509_r2x.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
309x509_r2x.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
310x509_r2x.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
311x509_r2x.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
312x509_r2x.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
313x509_r2x.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
314x509_r2x.o: ../../include/openssl/err.h ../../include/openssl/evp.h
315x509_r2x.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
316x509_r2x.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
317x509_r2x.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
318x509_r2x.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
319x509_r2x.o: ../../include/openssl/opensslconf.h
320x509_r2x.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
321x509_r2x.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
322x509_r2x.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
323x509_r2x.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
324x509_r2x.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
325x509_r2x.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
326x509_r2x.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
327x509_r2x.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
328x509_r2x.o: ../cryptlib.h x509_r2x.c
329x509_req.o: ../../e_os.h ../../include/openssl/aes.h
330x509_req.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
331x509_req.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
332x509_req.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
333x509_req.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
334x509_req.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
335x509_req.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
336x509_req.o: ../../include/openssl/err.h ../../include/openssl/evp.h
337x509_req.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
338x509_req.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
339x509_req.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
340x509_req.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
341x509_req.o: ../../include/openssl/opensslconf.h
342x509_req.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
343x509_req.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
344x509_req.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
345x509_req.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
346x509_req.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
347x509_req.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
348x509_req.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
349x509_req.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
350x509_req.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
351x509_req.o: ../cryptlib.h x509_req.c
352x509_set.o: ../../e_os.h ../../include/openssl/aes.h
353x509_set.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
354x509_set.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
355x509_set.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
356x509_set.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
357x509_set.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
358x509_set.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
359x509_set.o: ../../include/openssl/err.h ../../include/openssl/evp.h
360x509_set.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
361x509_set.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
362x509_set.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
363x509_set.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
364x509_set.o: ../../include/openssl/opensslconf.h
365x509_set.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
366x509_set.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
367x509_set.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
368x509_set.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
369x509_set.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
370x509_set.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
371x509_set.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
372x509_set.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
373x509_set.o: ../cryptlib.h x509_set.c
374x509_trs.o: ../../e_os.h ../../include/openssl/aes.h
375x509_trs.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
376x509_trs.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
377x509_trs.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
378x509_trs.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
379x509_trs.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
380x509_trs.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
381x509_trs.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
382x509_trs.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
383x509_trs.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
384x509_trs.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
385x509_trs.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
386x509_trs.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
387x509_trs.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
388x509_trs.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
389x509_trs.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
390x509_trs.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
391x509_trs.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
392x509_trs.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
393x509_trs.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
394x509_trs.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
395x509_trs.o: ../../include/openssl/x509v3.h ../cryptlib.h x509_trs.c
396x509_txt.o: ../../e_os.h ../../include/openssl/aes.h
397x509_txt.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
398x509_txt.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
399x509_txt.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
400x509_txt.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
401x509_txt.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
402x509_txt.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
403x509_txt.o: ../../include/openssl/err.h ../../include/openssl/evp.h
404x509_txt.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
405x509_txt.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
406x509_txt.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
407x509_txt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
408x509_txt.o: ../../include/openssl/opensslconf.h
409x509_txt.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
410x509_txt.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
411x509_txt.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
412x509_txt.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
413x509_txt.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
414x509_txt.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
415x509_txt.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
416x509_txt.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
417x509_txt.o: ../cryptlib.h x509_txt.c
418x509_v3.o: ../../e_os.h ../../include/openssl/aes.h
419x509_v3.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
420x509_v3.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
421x509_v3.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
422x509_v3.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
423x509_v3.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
424x509_v3.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
425x509_v3.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
426x509_v3.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
427x509_v3.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
428x509_v3.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
429x509_v3.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
430x509_v3.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
431x509_v3.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
432x509_v3.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
433x509_v3.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
434x509_v3.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
435x509_v3.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
436x509_v3.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
437x509_v3.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
438x509_v3.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
439x509_v3.o: ../../include/openssl/x509v3.h ../cryptlib.h x509_v3.c
440x509_vfy.o: ../../e_os.h ../../include/openssl/aes.h
441x509_vfy.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
442x509_vfy.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
443x509_vfy.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
444x509_vfy.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
445x509_vfy.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
446x509_vfy.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
447x509_vfy.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
448x509_vfy.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
449x509_vfy.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
450x509_vfy.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
451x509_vfy.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
452x509_vfy.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
453x509_vfy.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
454x509_vfy.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
455x509_vfy.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
456x509_vfy.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
457x509_vfy.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
458x509_vfy.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
459x509_vfy.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
460x509_vfy.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
461x509_vfy.o: ../../include/openssl/x509v3.h ../cryptlib.h x509_vfy.c
462x509cset.o: ../../e_os.h ../../include/openssl/aes.h
463x509cset.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
464x509cset.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
465x509cset.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
466x509cset.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
467x509cset.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
468x509cset.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
469x509cset.o: ../../include/openssl/err.h ../../include/openssl/evp.h
470x509cset.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
471x509cset.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
472x509cset.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
473x509cset.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
474x509cset.o: ../../include/openssl/opensslconf.h
475x509cset.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
476x509cset.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
477x509cset.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
478x509cset.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
479x509cset.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
480x509cset.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
481x509cset.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
482x509cset.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
483x509cset.o: ../cryptlib.h x509cset.c
484x509name.o: ../../e_os.h ../../include/openssl/aes.h
485x509name.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
486x509name.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
487x509name.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
488x509name.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
489x509name.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
490x509name.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
491x509name.o: ../../include/openssl/err.h ../../include/openssl/evp.h
492x509name.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
493x509name.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
494x509name.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
495x509name.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
496x509name.o: ../../include/openssl/opensslconf.h
497x509name.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
498x509name.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
499x509name.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
500x509name.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
501x509name.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
502x509name.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
503x509name.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
504x509name.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
505x509name.o: ../cryptlib.h x509name.c
506x509rset.o: ../../e_os.h ../../include/openssl/aes.h
507x509rset.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
508x509rset.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
509x509rset.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
510x509rset.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
511x509rset.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
512x509rset.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
513x509rset.o: ../../include/openssl/err.h ../../include/openssl/evp.h
514x509rset.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
515x509rset.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
516x509rset.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
517x509rset.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
518x509rset.o: ../../include/openssl/opensslconf.h
519x509rset.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
520x509rset.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
521x509rset.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
522x509rset.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
523x509rset.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
524x509rset.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
525x509rset.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
526x509rset.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
527x509rset.o: ../cryptlib.h x509rset.c
528x509spki.o: ../../e_os.h ../../include/openssl/aes.h
529x509spki.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
530x509spki.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
531x509spki.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
532x509spki.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
533x509spki.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
534x509spki.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
535x509spki.o: ../../include/openssl/err.h ../../include/openssl/evp.h
536x509spki.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
537x509spki.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
538x509spki.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
539x509spki.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
540x509spki.o: ../../include/openssl/opensslconf.h
541x509spki.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
542x509spki.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
543x509spki.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
544x509spki.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
545x509spki.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
546x509spki.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
547x509spki.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
548x509spki.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
549x509spki.o: ../cryptlib.h x509spki.c
550x509type.o: ../../e_os.h ../../include/openssl/aes.h
551x509type.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
552x509type.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
553x509type.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
554x509type.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
555x509type.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
556x509type.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
557x509type.o: ../../include/openssl/err.h ../../include/openssl/evp.h
558x509type.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
559x509type.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
560x509type.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
561x509type.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
562x509type.o: ../../include/openssl/opensslconf.h
563x509type.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
564x509type.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
565x509type.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
566x509type.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
567x509type.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
568x509type.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
569x509type.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
570x509type.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
571x509type.o: ../cryptlib.h x509type.c
572x_all.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
573x_all.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
574x_all.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
575x_all.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
576x_all.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
577x_all.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
578x_all.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
579x_all.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
580x_all.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
581x_all.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
582x_all.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
583x_all.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
584x_all.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
585x_all.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
586x_all.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
587x_all.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
588x_all.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
589x_all.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
590x_all.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
591x_all.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
592x_all.o: ../cryptlib.h x_all.c
diff --git a/src/lib/libcrypto/x509v3/Makefile b/src/lib/libcrypto/x509v3/Makefile
new file mode 100644
index 0000000000..ed2f91cbb3
--- /dev/null
+++ b/src/lib/libcrypto/x509v3/Makefile
@@ -0,0 +1,645 @@
1#
2# SSLeay/crypto/x509v3/Makefile
3#
4
5DIR= x509v3
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile README
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= v3_bcons.c v3_bitst.c v3_conf.c v3_extku.c v3_ia5.c v3_lib.c \
26v3_prn.c v3_utl.c v3err.c v3_genn.c v3_alt.c v3_skey.c v3_akey.c v3_pku.c \
27v3_int.c v3_enum.c v3_sxnet.c v3_cpols.c v3_crld.c v3_purp.c v3_info.c \
28v3_ocsp.c v3_akeya.c v3_pcia.c v3_pci.c
29LIBOBJ= v3_bcons.o v3_bitst.o v3_conf.o v3_extku.o v3_ia5.o v3_lib.o \
30v3_prn.o v3_utl.o v3err.o v3_genn.o v3_alt.o v3_skey.o v3_akey.o v3_pku.o \
31v3_int.o v3_enum.o v3_sxnet.o v3_cpols.o v3_crld.o v3_purp.o v3_info.o \
32v3_ocsp.o v3_akeya.o v3_pcia.o v3_pci.o
33
34SRC= $(LIBSRC)
35
36EXHEADER= x509v3.h
37HEADER= $(EXHEADER)
38
39ALL= $(GENERAL) $(SRC) $(HEADER)
40
41top:
42 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
43
44all: lib
45
46lib: $(LIBOBJ)
47 $(AR) $(LIB) $(LIBOBJ)
48 $(RANLIB) $(LIB) || echo Never mind.
49 @touch lib
50
51files:
52 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
53
54links:
55 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
56 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
57 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
58
59install:
60 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
61 do \
62 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
63 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
64 done;
65
66tags:
67 ctags $(SRC)
68
69tests:
70
71lint:
72 lint -DLINT $(INCLUDES) $(SRC)>fluff
73
74depend:
75 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
76
77dclean:
78 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
79 mv -f Makefile.new $(MAKEFILE)
80
81clean:
82 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
83
84# DO NOT DELETE THIS LINE -- make depend depends on it.
85
86v3_akey.o: ../../e_os.h ../../include/openssl/aes.h
87v3_akey.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
88v3_akey.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
89v3_akey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
90v3_akey.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
91v3_akey.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
92v3_akey.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
93v3_akey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
94v3_akey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
95v3_akey.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
96v3_akey.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
97v3_akey.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
98v3_akey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
99v3_akey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
100v3_akey.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
101v3_akey.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
102v3_akey.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
103v3_akey.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
104v3_akey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
105v3_akey.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
106v3_akey.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
107v3_akey.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
108v3_akey.o: ../cryptlib.h v3_akey.c
109v3_akeya.o: ../../e_os.h ../../include/openssl/aes.h
110v3_akeya.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
111v3_akeya.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
112v3_akeya.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
113v3_akeya.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
114v3_akeya.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
115v3_akeya.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
116v3_akeya.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
117v3_akeya.o: ../../include/openssl/err.h ../../include/openssl/evp.h
118v3_akeya.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
119v3_akeya.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
120v3_akeya.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
121v3_akeya.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
122v3_akeya.o: ../../include/openssl/opensslconf.h
123v3_akeya.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
124v3_akeya.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
125v3_akeya.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
126v3_akeya.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
127v3_akeya.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
128v3_akeya.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
129v3_akeya.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
130v3_akeya.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
131v3_akeya.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_akeya.c
132v3_alt.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
133v3_alt.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
134v3_alt.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
135v3_alt.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
136v3_alt.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
137v3_alt.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
138v3_alt.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
139v3_alt.o: ../../include/openssl/err.h ../../include/openssl/evp.h
140v3_alt.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
141v3_alt.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
142v3_alt.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
143v3_alt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
144v3_alt.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
145v3_alt.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
146v3_alt.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
147v3_alt.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
148v3_alt.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
149v3_alt.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
150v3_alt.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
151v3_alt.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
152v3_alt.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
153v3_alt.o: ../cryptlib.h v3_alt.c
154v3_bcons.o: ../../e_os.h ../../include/openssl/aes.h
155v3_bcons.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
156v3_bcons.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
157v3_bcons.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
158v3_bcons.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
159v3_bcons.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
160v3_bcons.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
161v3_bcons.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
162v3_bcons.o: ../../include/openssl/err.h ../../include/openssl/evp.h
163v3_bcons.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
164v3_bcons.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
165v3_bcons.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
166v3_bcons.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
167v3_bcons.o: ../../include/openssl/opensslconf.h
168v3_bcons.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
169v3_bcons.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
170v3_bcons.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
171v3_bcons.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
172v3_bcons.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
173v3_bcons.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
174v3_bcons.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
175v3_bcons.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
176v3_bcons.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_bcons.c
177v3_bitst.o: ../../e_os.h ../../include/openssl/aes.h
178v3_bitst.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
179v3_bitst.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
180v3_bitst.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
181v3_bitst.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
182v3_bitst.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
183v3_bitst.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
184v3_bitst.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
185v3_bitst.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
186v3_bitst.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
187v3_bitst.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
188v3_bitst.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
189v3_bitst.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
190v3_bitst.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
191v3_bitst.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
192v3_bitst.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
193v3_bitst.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
194v3_bitst.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
195v3_bitst.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
196v3_bitst.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
197v3_bitst.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
198v3_bitst.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_bitst.c
199v3_conf.o: ../../e_os.h ../../include/openssl/aes.h
200v3_conf.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
201v3_conf.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
202v3_conf.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
203v3_conf.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
204v3_conf.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
205v3_conf.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
206v3_conf.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
207v3_conf.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
208v3_conf.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
209v3_conf.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
210v3_conf.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
211v3_conf.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
212v3_conf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
213v3_conf.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
214v3_conf.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
215v3_conf.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
216v3_conf.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
217v3_conf.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
218v3_conf.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
219v3_conf.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
220v3_conf.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_conf.c
221v3_cpols.o: ../../e_os.h ../../include/openssl/aes.h
222v3_cpols.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
223v3_cpols.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
224v3_cpols.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
225v3_cpols.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
226v3_cpols.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
227v3_cpols.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
228v3_cpols.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
229v3_cpols.o: ../../include/openssl/err.h ../../include/openssl/evp.h
230v3_cpols.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
231v3_cpols.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
232v3_cpols.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
233v3_cpols.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
234v3_cpols.o: ../../include/openssl/opensslconf.h
235v3_cpols.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
236v3_cpols.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
237v3_cpols.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
238v3_cpols.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
239v3_cpols.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
240v3_cpols.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
241v3_cpols.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
242v3_cpols.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
243v3_cpols.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_cpols.c
244v3_crld.o: ../../e_os.h ../../include/openssl/aes.h
245v3_crld.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
246v3_crld.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
247v3_crld.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
248v3_crld.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
249v3_crld.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
250v3_crld.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
251v3_crld.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
252v3_crld.o: ../../include/openssl/err.h ../../include/openssl/evp.h
253v3_crld.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
254v3_crld.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
255v3_crld.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
256v3_crld.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
257v3_crld.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
258v3_crld.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
259v3_crld.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
260v3_crld.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
261v3_crld.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
262v3_crld.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
263v3_crld.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
264v3_crld.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
265v3_crld.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
266v3_crld.o: ../cryptlib.h v3_crld.c
267v3_enum.o: ../../e_os.h ../../include/openssl/aes.h
268v3_enum.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
269v3_enum.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
270v3_enum.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
271v3_enum.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
272v3_enum.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
273v3_enum.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
274v3_enum.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
275v3_enum.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
276v3_enum.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
277v3_enum.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
278v3_enum.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
279v3_enum.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
280v3_enum.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
281v3_enum.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
282v3_enum.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
283v3_enum.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
284v3_enum.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
285v3_enum.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
286v3_enum.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
287v3_enum.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
288v3_enum.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_enum.c
289v3_extku.o: ../../e_os.h ../../include/openssl/aes.h
290v3_extku.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
291v3_extku.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
292v3_extku.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
293v3_extku.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
294v3_extku.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
295v3_extku.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
296v3_extku.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
297v3_extku.o: ../../include/openssl/err.h ../../include/openssl/evp.h
298v3_extku.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
299v3_extku.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
300v3_extku.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
301v3_extku.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
302v3_extku.o: ../../include/openssl/opensslconf.h
303v3_extku.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
304v3_extku.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
305v3_extku.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
306v3_extku.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
307v3_extku.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
308v3_extku.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
309v3_extku.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
310v3_extku.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
311v3_extku.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_extku.c
312v3_genn.o: ../../e_os.h ../../include/openssl/aes.h
313v3_genn.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
314v3_genn.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
315v3_genn.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
316v3_genn.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
317v3_genn.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
318v3_genn.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
319v3_genn.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
320v3_genn.o: ../../include/openssl/err.h ../../include/openssl/evp.h
321v3_genn.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
322v3_genn.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
323v3_genn.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
324v3_genn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
325v3_genn.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
326v3_genn.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
327v3_genn.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
328v3_genn.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
329v3_genn.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
330v3_genn.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
331v3_genn.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
332v3_genn.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
333v3_genn.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
334v3_genn.o: ../cryptlib.h v3_genn.c
335v3_ia5.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
336v3_ia5.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
337v3_ia5.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
338v3_ia5.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
339v3_ia5.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
340v3_ia5.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
341v3_ia5.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
342v3_ia5.o: ../../include/openssl/err.h ../../include/openssl/evp.h
343v3_ia5.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
344v3_ia5.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
345v3_ia5.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
346v3_ia5.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
347v3_ia5.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
348v3_ia5.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
349v3_ia5.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
350v3_ia5.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
351v3_ia5.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
352v3_ia5.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
353v3_ia5.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
354v3_ia5.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
355v3_ia5.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
356v3_ia5.o: ../cryptlib.h v3_ia5.c
357v3_info.o: ../../e_os.h ../../include/openssl/aes.h
358v3_info.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
359v3_info.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
360v3_info.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
361v3_info.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
362v3_info.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
363v3_info.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
364v3_info.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
365v3_info.o: ../../include/openssl/err.h ../../include/openssl/evp.h
366v3_info.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
367v3_info.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
368v3_info.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
369v3_info.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
370v3_info.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
371v3_info.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
372v3_info.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
373v3_info.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
374v3_info.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
375v3_info.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
376v3_info.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
377v3_info.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
378v3_info.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
379v3_info.o: ../cryptlib.h v3_info.c
380v3_int.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
381v3_int.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
382v3_int.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
383v3_int.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
384v3_int.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
385v3_int.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
386v3_int.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
387v3_int.o: ../../include/openssl/err.h ../../include/openssl/evp.h
388v3_int.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
389v3_int.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
390v3_int.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
391v3_int.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
392v3_int.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
393v3_int.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
394v3_int.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
395v3_int.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
396v3_int.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
397v3_int.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
398v3_int.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
399v3_int.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
400v3_int.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
401v3_int.o: ../cryptlib.h v3_int.c
402v3_lib.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
403v3_lib.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
404v3_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
405v3_lib.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
406v3_lib.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
407v3_lib.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
408v3_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
409v3_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
410v3_lib.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
411v3_lib.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
412v3_lib.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
413v3_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
414v3_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
415v3_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
416v3_lib.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
417v3_lib.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
418v3_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
419v3_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
420v3_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
421v3_lib.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
422v3_lib.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
423v3_lib.o: ../cryptlib.h ext_dat.h v3_lib.c
424v3_ocsp.o: ../../e_os.h ../../include/openssl/aes.h
425v3_ocsp.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
426v3_ocsp.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
427v3_ocsp.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
428v3_ocsp.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
429v3_ocsp.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
430v3_ocsp.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
431v3_ocsp.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
432v3_ocsp.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
433v3_ocsp.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
434v3_ocsp.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
435v3_ocsp.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
436v3_ocsp.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
437v3_ocsp.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
438v3_ocsp.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
439v3_ocsp.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
440v3_ocsp.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
441v3_ocsp.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
442v3_ocsp.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
443v3_ocsp.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
444v3_ocsp.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
445v3_ocsp.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
446v3_ocsp.o: ../cryptlib.h v3_ocsp.c
447v3_pci.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
448v3_pci.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
449v3_pci.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
450v3_pci.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
451v3_pci.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
452v3_pci.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
453v3_pci.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
454v3_pci.o: ../../include/openssl/err.h ../../include/openssl/evp.h
455v3_pci.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
456v3_pci.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
457v3_pci.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
458v3_pci.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
459v3_pci.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
460v3_pci.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
461v3_pci.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
462v3_pci.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
463v3_pci.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
464v3_pci.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
465v3_pci.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
466v3_pci.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
467v3_pci.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
468v3_pci.o: ../cryptlib.h v3_pci.c
469v3_pcia.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
470v3_pcia.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
471v3_pcia.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
472v3_pcia.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
473v3_pcia.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
474v3_pcia.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
475v3_pcia.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
476v3_pcia.o: ../../include/openssl/e_os2.h ../../include/openssl/evp.h
477v3_pcia.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
478v3_pcia.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
479v3_pcia.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
480v3_pcia.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
481v3_pcia.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
482v3_pcia.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
483v3_pcia.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
484v3_pcia.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
485v3_pcia.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
486v3_pcia.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
487v3_pcia.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
488v3_pcia.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
489v3_pcia.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
490v3_pcia.o: v3_pcia.c
491v3_pku.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
492v3_pku.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
493v3_pku.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
494v3_pku.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
495v3_pku.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
496v3_pku.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
497v3_pku.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
498v3_pku.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
499v3_pku.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
500v3_pku.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
501v3_pku.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
502v3_pku.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
503v3_pku.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
504v3_pku.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
505v3_pku.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
506v3_pku.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
507v3_pku.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
508v3_pku.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
509v3_pku.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
510v3_pku.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
511v3_pku.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
512v3_pku.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_pku.c
513v3_prn.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
514v3_prn.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
515v3_prn.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
516v3_prn.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
517v3_prn.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
518v3_prn.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
519v3_prn.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
520v3_prn.o: ../../include/openssl/err.h ../../include/openssl/evp.h
521v3_prn.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
522v3_prn.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
523v3_prn.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
524v3_prn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
525v3_prn.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
526v3_prn.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
527v3_prn.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
528v3_prn.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
529v3_prn.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
530v3_prn.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
531v3_prn.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
532v3_prn.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
533v3_prn.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
534v3_prn.o: ../cryptlib.h v3_prn.c
535v3_purp.o: ../../e_os.h ../../include/openssl/aes.h
536v3_purp.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
537v3_purp.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
538v3_purp.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
539v3_purp.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
540v3_purp.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
541v3_purp.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
542v3_purp.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
543v3_purp.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
544v3_purp.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
545v3_purp.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
546v3_purp.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
547v3_purp.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
548v3_purp.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
549v3_purp.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
550v3_purp.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
551v3_purp.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
552v3_purp.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
553v3_purp.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
554v3_purp.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
555v3_purp.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
556v3_purp.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_purp.c
557v3_skey.o: ../../e_os.h ../../include/openssl/aes.h
558v3_skey.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
559v3_skey.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
560v3_skey.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
561v3_skey.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
562v3_skey.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
563v3_skey.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
564v3_skey.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
565v3_skey.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
566v3_skey.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
567v3_skey.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
568v3_skey.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
569v3_skey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
570v3_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
571v3_skey.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
572v3_skey.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
573v3_skey.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
574v3_skey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
575v3_skey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
576v3_skey.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
577v3_skey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
578v3_skey.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_skey.c
579v3_sxnet.o: ../../e_os.h ../../include/openssl/aes.h
580v3_sxnet.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
581v3_sxnet.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
582v3_sxnet.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
583v3_sxnet.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
584v3_sxnet.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
585v3_sxnet.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
586v3_sxnet.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
587v3_sxnet.o: ../../include/openssl/err.h ../../include/openssl/evp.h
588v3_sxnet.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
589v3_sxnet.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
590v3_sxnet.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
591v3_sxnet.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
592v3_sxnet.o: ../../include/openssl/opensslconf.h
593v3_sxnet.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
594v3_sxnet.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
595v3_sxnet.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
596v3_sxnet.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
597v3_sxnet.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
598v3_sxnet.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
599v3_sxnet.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
600v3_sxnet.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
601v3_sxnet.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_sxnet.c
602v3_utl.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
603v3_utl.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
604v3_utl.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
605v3_utl.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
606v3_utl.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
607v3_utl.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
608v3_utl.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
609v3_utl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
610v3_utl.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
611v3_utl.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
612v3_utl.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
613v3_utl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
614v3_utl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
615v3_utl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
616v3_utl.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
617v3_utl.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
618v3_utl.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
619v3_utl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
620v3_utl.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
621v3_utl.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
622v3_utl.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
623v3_utl.o: ../cryptlib.h v3_utl.c
624v3err.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
625v3err.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
626v3err.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
627v3err.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
628v3err.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
629v3err.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
630v3err.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
631v3err.o: ../../include/openssl/err.h ../../include/openssl/evp.h
632v3err.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
633v3err.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
634v3err.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
635v3err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
636v3err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
637v3err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
638v3err.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
639v3err.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
640v3err.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
641v3err.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
642v3err.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
643v3err.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
644v3err.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
645v3err.o: v3err.c
diff --git a/src/lib/libssl/src/CHANGES b/src/lib/libssl/src/CHANGES
index 4a0363a1c2..cccc4f812f 100644
--- a/src/lib/libssl/src/CHANGES
+++ b/src/lib/libssl/src/CHANGES
@@ -2,6 +2,112 @@
2 OpenSSL CHANGES 2 OpenSSL CHANGES
3 _______________ 3 _______________
4 4
5 Changes between 0.9.7f and 0.9.7g [11 Apr 2005]
6
7 *) Fixes for newer kerberos headers. NB: the casts are needed because
8 the 'length' field is signed on one version and unsigned on another
9 with no (?) obvious way to tell the difference, without these VC++
10 complains. Also the "definition" of FAR (blank) is no longer included
11 nor is the error ENOMEM. KRB5_PRIVATE has to be set to 1 to pick up
12 some needed definitions.
13 [Steve Henson]
14
15 *) Undo Cygwin change.
16 [Ulf Möller]
17
18 *) Added support for proxy certificates according to RFC 3820.
19 Because they may be a security thread to unaware applications,
20 they must be explicitely allowed in run-time. See
21 docs/HOWTO/proxy_certificates.txt for further information.
22 [Richard Levitte]
23
24 Changes between 0.9.7e and 0.9.7f [22 Mar 2005]
25
26 *) Use (SSL_RANDOM_VALUE - 4) bytes of pseudo random data when generating
27 server and client random values. Previously
28 (SSL_RANDOM_VALUE - sizeof(time_t)) would be used which would result in
29 less random data when sizeof(time_t) > 4 (some 64 bit platforms).
30
31 This change has negligible security impact because:
32
33 1. Server and client random values still have 24 bytes of pseudo random
34 data.
35
36 2. Server and client random values are sent in the clear in the initial
37 handshake.
38
39 3. The master secret is derived using the premaster secret (48 bytes in
40 size for static RSA ciphersuites) as well as client server and random
41 values.
42
43 The OpenSSL team would like to thank the UK NISCC for bringing this issue
44 to our attention.
45
46 [Stephen Henson, reported by UK NISCC]
47
48 *) Use Windows randomness collection on Cygwin.
49 [Ulf Möller]
50
51 *) Fix hang in EGD/PRNGD query when communication socket is closed
52 prematurely by EGD/PRNGD.
53 [Darren Tucker <dtucker@zip.com.au> via Lutz Jänicke, resolves #1014]
54
55 *) Prompt for pass phrases when appropriate for PKCS12 input format.
56 [Steve Henson]
57
58 *) Back-port of selected performance improvements from development
59 branch, as well as improved support for PowerPC platforms.
60 [Andy Polyakov]
61
62 *) Add lots of checks for memory allocation failure, error codes to indicate
63 failure and freeing up memory if a failure occurs.
64 [Nauticus Networks SSL Team <openssl@nauticusnet.com>, Steve Henson]
65
66 *) Add new -passin argument to dgst.
67 [Steve Henson]
68
69 *) Perform some character comparisons of different types in X509_NAME_cmp:
70 this is needed for some certificates that reencode DNs into UTF8Strings
71 (in violation of RFC3280) and can't or wont issue name rollover
72 certificates.
73 [Steve Henson]
74
75 *) Make an explicit check during certificate validation to see that
76 the CA setting in each certificate on the chain is correct. As a
77 side effect always do the following basic checks on extensions,
78 not just when there's an associated purpose to the check:
79
80 - if there is an unhandled critical extension (unless the user
81 has chosen to ignore this fault)
82 - if the path length has been exceeded (if one is set at all)
83 - that certain extensions fit the associated purpose (if one has
84 been given)
85 [Richard Levitte]
86
87 Changes between 0.9.7d and 0.9.7e [25 Oct 2004]
88
89 *) Avoid a race condition when CRLs are checked in a multi threaded
90 environment. This would happen due to the reordering of the revoked
91 entries during signature checking and serial number lookup. Now the
92 encoding is cached and the serial number sort performed under a lock.
93 Add new STACK function sk_is_sorted().
94 [Steve Henson]
95
96 *) Add Delta CRL to the extension code.
97 [Steve Henson]
98
99 *) Various fixes to s3_pkt.c so alerts are sent properly.
100 [David Holmes <d.holmes@f5.com>]
101
102 *) Reduce the chances of duplicate issuer name and serial numbers (in
103 violation of RFC3280) using the OpenSSL certificate creation utilities.
104 This is done by creating a random 64 bit value for the initial serial
105 number when a serial number file is created or when a self signed
106 certificate is created using 'openssl req -x509'. The initial serial
107 number file is created using 'openssl x509 -next_serial' in CA.pl
108 rather than being initialized to 1.
109 [Steve Henson]
110
5 Changes between 0.9.7c and 0.9.7d [17 Mar 2004] 111 Changes between 0.9.7c and 0.9.7d [17 Mar 2004]
6 112
7 *) Fix null-pointer assignment in do_change_cipher_spec() revealed 113 *) Fix null-pointer assignment in do_change_cipher_spec() revealed
@@ -2037,6 +2143,20 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
2037 *) Clean old EAY MD5 hack from e_os.h. 2143 *) Clean old EAY MD5 hack from e_os.h.
2038 [Richard Levitte] 2144 [Richard Levitte]
2039 2145
2146 Changes between 0.9.6l and 0.9.6m [17 Mar 2004]
2147
2148 *) Fix null-pointer assignment in do_change_cipher_spec() revealed
2149 by using the Codenomicon TLS Test Tool (CAN-2004-0079)
2150 [Joe Orton, Steve Henson]
2151
2152 Changes between 0.9.6k and 0.9.6l [04 Nov 2003]
2153
2154 *) Fix additional bug revealed by the NISCC test suite:
2155
2156 Stop bug triggering large recursion when presented with
2157 certain ASN.1 tags (CAN-2003-0851)
2158 [Steve Henson]
2159
2040 Changes between 0.9.6j and 0.9.6k [30 Sep 2003] 2160 Changes between 0.9.6j and 0.9.6k [30 Sep 2003]
2041 2161
2042 *) Fix various bugs revealed by running the NISCC test suite: 2162 *) Fix various bugs revealed by running the NISCC test suite:
diff --git a/src/lib/libssl/src/Configure b/src/lib/libssl/src/Configure
index 4e7883c17a..e0e732c445 100644
--- a/src/lib/libssl/src/Configure
+++ b/src/lib/libssl/src/Configure
@@ -10,7 +10,7 @@ use strict;
10 10
11# see INSTALL for instructions. 11# see INSTALL for instructions.
12 12
13my $usage="Usage: Configure [no-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-engine] [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"; 13my $usage="Usage: Configure [no-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-engine] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-dso] [no-krb5] [386] [[no-]fips] [debug] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--test-sanity] os/compiler[:flags]\n";
14 14
15# Options: 15# Options:
16# 16#
@@ -135,15 +135,16 @@ my %table=(
135# Our development configs 135# Our development configs
136"purify", "purify gcc:-g -DPURIFY -Wall::(unknown)::-lsocket -lnsl::::", 136"purify", "purify gcc:-g -DPURIFY -Wall::(unknown)::-lsocket -lnsl::::",
137"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::::", 137"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::::",
138"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", 138"debug-ben", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -O2 -Wall -Wshadow -Werror -pipe::(unknown)::::asm/bn86-elf.o asm/co86-elf.o",
139"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)::::", 139"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)::::",
140"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)::::", 140"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)::::",
141"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)::::::", 141"debug-ben-debug", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -g3 -O2 -Wall -Wshadow -Werror -pipe::(unknown)::::::",
142"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)::::::", 142"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)::::::",
143"debug-ben-fips-debug","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_FIPS -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::asm/bn86-elf.o asm/co86-elf.o",
143"debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}", 144"debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
144"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}", 145"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}",
145"debug-ulf", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -g -O2 -m486 -Wall -Werror -Wshadow -pipe::-D_REENTRANT:::${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}", 146"debug-ulf", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -g -O2 -m486 -Wall -Werror -Wshadow -pipe::-D_REENTRANT:::${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
146"debug-steve", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -g -mcpu=i486 -pedantic -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn", 147"debug-steve", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -g -mcpu=i486 -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
147"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", 148"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",
148"debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wmissing-prototypes -Wno-long-long -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", 149"debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wmissing-prototypes -Wno-long-long -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
149"debug-levitte-linux-noasm","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wmissing-prototypes -Wno-long-long -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", 150"debug-levitte-linux-noasm","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wmissing-prototypes -Wno-long-long -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
@@ -155,6 +156,12 @@ my %table=(
155"gcc", "gcc:-O3::(unknown):::BN_LLONG:::", 156"gcc", "gcc:-O3::(unknown):::BN_LLONG:::",
156"cc", "cc:-O::(unknown)::::::", 157"cc", "cc:-O::(unknown)::::::",
157 158
159####VOS Configurations
160"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:",
161"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:",
162"vos-vcc","vcc:-b i386-stratus-vos -O3 -D_POSIX_C_SOURCE=200112L -D_BSD::(unknown):VOS:-Wl,-map::::::::::::::.so:",
163"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:",
164
158#### Solaris x86 with GNU C setups 165#### Solaris x86 with GNU C setups
159# -DOPENSSL_NO_INLINE_ASM switches off inline assembler. We have to do it 166# -DOPENSSL_NO_INLINE_ASM switches off inline assembler. We have to do it
160# here because whenever GNU C instantiates an assembler template it 167# here because whenever GNU C instantiates an assembler template it
@@ -162,9 +169,19 @@ my %table=(
162# 7_x86) /usr/ccs/bin/as fails to assemble with "Illegal mnemonic" 169# 7_x86) /usr/ccs/bin/as fails to assemble with "Illegal mnemonic"
163# error message. 170# error message.
164"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)", 171"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)",
172# -shared -static-libgcc might appear controversial, but modules taken
173# from static libgcc do not have relocations and linking them into our
174# shared objects doesn't have any negative side-effects. On the contrary,
175# doing so makes it possible to use gcc shared build with Sun C. Given
176# that gcc generates faster code [thanks to inline assembler], I would
177# actually recommend to consider using gcc shared build even with vendor
178# compiler:-)
179# <appro@fy.chalmers.se>
180"solaris64-x86_64-gcc","gcc:-m64 -O3 -Wall -DL_ENDIAN -DMD32_REG_T=int::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:asm/x86_64-gcc.o::::::asm/rc4-amd64.o:::dlfcn:solaris-shared:-fPIC:-m64 -shared -static-libgcc:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
165 181
166#### Solaris x86 with Sun C setups 182#### Solaris x86 with Sun C setups
167"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)", 183"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)",
184"solaris64-x86_64-cc","cc:-fast -xarch=amd64 -xstrconst -Xa -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL::::::::::dlfcn:solaris-shared:-KPIC:-xarch=amd64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
168 185
169#### SPARC Solaris with GNU C setups 186#### SPARC Solaris with GNU C setups
170"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)", 187"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)",
@@ -263,10 +280,10 @@ my %table=(
263"hpux64-parisc2-gcc","gcc:-O3 -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:hpux64-shared:-fpic::.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", 280"hpux64-parisc2-gcc","gcc:-O3 -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:hpux64-shared:-fpic::.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
264 281
265# IA-64 targets 282# IA-64 targets
266"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::.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", 283"hpux-ia64-cc","cc:-Ae +DD32 +O3 +Olit=all -z -DB_ENDIAN::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:asm/ia64-cpp.o::::asm/sha1-ia64.o::asm/rc4-ia64.o:::dlfcn:hpux-shared:+Z::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
267# Frank Geurts <frank.geurts@nl.abnamro.com> has patiently assisted with 284# Frank Geurts <frank.geurts@nl.abnamro.com> has patiently assisted with
268# with debugging of the following config. 285# with debugging of the following config.
269"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:hpux64-shared:+Z::.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", 286"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:asm/ia64-cpp.o::::asm/sha1-ia64.o::asm/rc4-ia64.o:::dlfcn:hpux64-shared:+Z::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
270 287
271# More attempts at unified 10.X and 11.X targets for HP C compiler. 288# More attempts at unified 10.X and 11.X targets for HP C compiler.
272# 289#
@@ -382,17 +399,20 @@ my %table=(
382"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", 399"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",
383"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", 400"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",
384"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)", 401"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)",
385"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", 402"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)",
386"linux-aout", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}", 403"linux-aout", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}",
387"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)", 404"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)",
388"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)", 405"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)",
389"linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", 406"linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -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)",
407# -bpowerpc64-linux is transient option, -m64 should be the one to use...
408"linux-ppc64", "gcc:-bpowerpc64-linux -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:asm/linux_ppc64.o:::::::::dlfcn:linux-shared:-fPIC:-bpowerpc64-linux:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
390"linux-m68k", "gcc:-DB_ENDIAN -DTERMIO -O2 -fomit-frame-pointer -Wall::-D_REENTRANT:::BN_LLONG::", 409"linux-m68k", "gcc:-DB_ENDIAN -DTERMIO -O2 -fomit-frame-pointer -Wall::-D_REENTRANT:::BN_LLONG::",
391"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)", 410"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)",
392"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)", 411"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)",
393"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)", 412"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK:asm/ia64.o::::asm/sha1-ia64.o::asm/rc4-ia64.o:::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
394"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)", 413"linux-ia64-ecc", "ecc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK:asm/ia64.o::::asm/sha1-ia64.o::asm/rc4-ia64.o:::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
395"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR BF_PTR2 DES_INT DES_UNROLL:asm/x86_64-gcc.o:::::::::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", 414"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)",
415"linux-em64t", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR BF_PTR2 DES_INT DES_UNROLL:asm/x86_64-gcc.o:::::::::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
396"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)", 416"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)",
397"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)", 417"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)",
398"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)", 418"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)",
@@ -415,7 +435,9 @@ my %table=(
415"qnx6", "cc:-DL_ENDIAN -DTERMIOS::(unknown)::-lsocket:${x86_gcc_des} ${x86_gcc_opts}:", 435"qnx6", "cc:-DL_ENDIAN -DTERMIOS::(unknown)::-lsocket:${x86_gcc_des} ${x86_gcc_opts}:",
416 436
417# Linux on ARM 437# Linux on ARM
418"linux-elf-arm","gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:::BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", 438# ARM comes in both little- and big-endian flavors. The following line is
439# endian neutral, but ./config is free to throw in -D[BL]_ENDIAN...
440"linux-elf-arm","gcc:-DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
419 441
420# SCO/Caldera targets. 442# SCO/Caldera targets.
421# 443#
@@ -442,11 +464,10 @@ my %table=(
442 464
443 465
444# IBM's AIX. 466# IBM's AIX.
445"aix-cc", "cc:-O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::BN_LLONG RC4_CHAR:::", 467"aix3-cc", "cc:-O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::BN_LLONG RC4_CHAR:::",
446"aix-gcc", "gcc:-O3 -DB_ENDIAN::(unknown):AIX::BN_LLONG RC4_CHAR:::", 468"aix-gcc", "gcc:-O3 -DB_ENDIAN::-D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR:asm/aix_ppc32.o:::::::::dlfcn:",
447"aix43-cc", "cc:-O -DAIX -DB_ENDIAN -qmaxmem=16384::(unknown):::BN_LLONG RC4_CHAR::::::::::dlfcn:aix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::", 469"aix-cc", "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384::-qthreaded:AIX::BN_LLONG RC4_CHAR:asm/aix_ppc32.o:::::::::dlfcn:aix-shared::-q32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
448"aix43-gcc", "gcc:-O1 -DAIX -DB_ENDIAN::(unknown):::BN_LLONG RC4_CHAR::::::::::dlfcn:", 470"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384::-qthreaded:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:asm/aix_ppc64.o:::::::::dlfcn:aix-shared::-q64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
449"aix64-cc", "cc:-O -DAIX -DB_ENDIAN -qmaxmem=16384 -q64::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHAR::::::::::dlfcn:aix-shared::-q64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
450 471
451# 472#
452# Cray T90 and similar (SDSC) 473# Cray T90 and similar (SDSC)
@@ -509,17 +530,17 @@ my %table=(
509"BC-16","bcc:::(unknown):WIN16::BN_LLONG DES_PTR RC4_INDEX SIXTEEN_BIT:::", 530"BC-16","bcc:::(unknown):WIN16::BN_LLONG DES_PTR RC4_INDEX SIXTEEN_BIT:::",
510 531
511# MinGW 532# MinGW
512"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", 533"mingw", "gcc:-DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -mno-cygwin -Wall:::MINGW32:-lwsock32 -lgdi32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:win32:cygwin-shared:-D_WINDLL:-mno-cygwin:.dll",
513 534
514# UWIN 535# UWIN
515"UWIN", "cc:-DTERMIOS -DL_ENDIAN -O -Wall:::UWIN::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::win32", 536"UWIN", "cc:-DTERMIOS -DL_ENDIAN -O -Wall:::UWIN::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::win32",
516 537
517# Cygwin 538# Cygwin
518"Cygwin-pre1.3", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown):CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::win32", 539"Cygwin-pre1.3", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown):CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::win32",
519"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", 540"Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall:::CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:dlfcn:cygwin-shared:-D_WINDLL::.dll",
520 541
521# DJGPP 542# DJGPP
522"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}::::::::::", 543"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}::::::::::",
523 544
524# Ultrix from Bernhard Simon <simon@zid.tuwien.ac.at> 545# Ultrix from Bernhard Simon <simon@zid.tuwien.ac.at>
525"ultrix-cc","cc:-std1 -O -Olimit 2500 -DL_ENDIAN::(unknown):::::::", 546"ultrix-cc","cc:-std1 -O -Olimit 2500 -DL_ENDIAN::(unknown):::::::",
@@ -542,7 +563,7 @@ my %table=(
542 563
543##### MacOS X (a.k.a. Rhapsody or Darwin) setup 564##### MacOS X (a.k.a. Rhapsody or Darwin) setup
544"rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::", 565"rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
545"darwin-ppc-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", 566"darwin-ppc-cc","cc:-O3 -fomit-frame-pointer -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",
546"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", 567"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",
547 568
548##### A/UX 569##### A/UX
@@ -609,7 +630,7 @@ my $threads=0;
609my $no_asm=0; 630my $no_asm=0;
610my $no_dso=0; 631my $no_dso=0;
611my @skip=(); 632my @skip=();
612my $Makefile="Makefile.ssl"; 633my $Makefile="Makefile";
613my $des_locl="crypto/des/des_locl.h"; 634my $des_locl="crypto/des/des_locl.h";
614my $des ="crypto/des/des.h"; 635my $des ="crypto/des/des.h";
615my $bn ="crypto/bn/bn.h"; 636my $bn ="crypto/bn/bn.h";
@@ -621,6 +642,7 @@ my $rc2 ="crypto/rc2/rc2.h";
621my $bf ="crypto/bf/bf_locl.h"; 642my $bf ="crypto/bf/bf_locl.h";
622my $bn_asm ="bn_asm.o"; 643my $bn_asm ="bn_asm.o";
623my $des_enc="des_enc.o fcrypt_b.o"; 644my $des_enc="des_enc.o fcrypt_b.o";
645my $fips_des_enc="fips_des_enc.o";
624my $bf_enc ="bf_enc.o"; 646my $bf_enc ="bf_enc.o";
625my $cast_enc="c_enc.o"; 647my $cast_enc="c_enc.o";
626my $rc4_enc="rc4_enc.o"; 648my $rc4_enc="rc4_enc.o";
@@ -631,6 +653,8 @@ my $rmd160_obj="";
631my $processor=""; 653my $processor="";
632my $default_ranlib; 654my $default_ranlib;
633my $perl; 655my $perl;
656my $fips=0;
657my $debug=0;
634 658
635my $no_ssl2=0; 659my $no_ssl2=0;
636my $no_ssl3=0; 660my $no_ssl3=0;
@@ -640,10 +664,6 @@ my $no_sha=0;
640my $no_rsa=0; 664my $no_rsa=0;
641my $no_dh=0; 665my $no_dh=0;
642 666
643$default_ranlib= &which("ranlib") or $default_ranlib="true";
644$perl=$ENV{'PERL'} or $perl=&which("perl5") or $perl=&which("perl")
645 or $perl="perl";
646
647&usage if ($#ARGV < 0); 667&usage if ($#ARGV < 0);
648 668
649my $flags; 669my $flags;
@@ -739,6 +759,8 @@ PROCESS_ARGS:
739 { $no_ssl3 = 1; } 759 { $no_ssl3 = 1; }
740 elsif (/^no-tls1?$/) 760 elsif (/^no-tls1?$/)
741 { $no_tls1 = 1; } 761 { $no_tls1 = 1; }
762 elsif (/^no-fips$/)
763 { $fips = 0; }
742 elsif (/^no-(.+)$/) 764 elsif (/^no-(.+)$/)
743 { 765 {
744 my $algo=$1; 766 my $algo=$1;
@@ -804,6 +826,14 @@ PROCESS_ARGS:
804 } 826 }
805 elsif (/^386$/) 827 elsif (/^386$/)
806 { $processor=386; } 828 { $processor=386; }
829 elsif (/^fips$/)
830 {
831 $fips=1;
832 }
833 elsif (/^debug$/)
834 {
835 $debug=1;
836 }
807 elsif (/^rsaref$/) 837 elsif (/^rsaref$/)
808 { 838 {
809 # No RSAref support any more since it's not needed. 839 # No RSAref support any more since it's not needed.
@@ -920,11 +950,15 @@ print "Configuring for $target\n";
920 950
921my $IsWindows=scalar grep /^$target$/,@WinTargets; 951my $IsWindows=scalar grep /^$target$/,@WinTargets;
922 952
923$exe_ext=".exe" if ($target eq "Cygwin"); 953$exe_ext=".exe" if ($target eq "Cygwin" || $target eq "DJGPP" || $target eq "mingw");
924$exe_ext=".exe" if ($target eq "DJGPP"); 954$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");
925$openssldir="/usr/local/ssl" if ($openssldir eq "" and $prefix eq ""); 955$openssldir="/usr/local/ssl" if ($openssldir eq "" and $prefix eq "");
926$prefix=$openssldir if $prefix eq ""; 956$prefix=$openssldir if $prefix eq "";
927 957
958$default_ranlib= &which("ranlib") or $default_ranlib="true";
959$perl=$ENV{'PERL'} or $perl=&which("perl5") or $perl=&which("perl")
960 or $perl="perl";
961
928chop $openssldir if $openssldir =~ /\/$/; 962chop $openssldir if $openssldir =~ /\/$/;
929chop $prefix if $prefix =~ /\/$/; 963chop $prefix if $prefix =~ /\/$/;
930 964
@@ -1139,12 +1173,26 @@ if ($ranlib eq "")
1139 1173
1140$bn_obj = $bn_asm unless $bn_obj ne ""; 1174$bn_obj = $bn_asm unless $bn_obj ne "";
1141 1175
1176my $fips_des_obj;
1177my $fips_sha1_obj;
1178if ($fips)
1179 {
1180 if ($des_obj =~ /\-elf\.o$/ && $no_shared) # FIPS DES module is not PIC
1181 {
1182 $fips_des_obj='asm/fips-dx86-elf.o';
1183 $openssl_other_defines.="#define OPENSSL_FIPS_DES_ASM\n";
1184 }
1185 else { $fips_des_obj=$fips_des_enc; }
1186 $fips_sha1_obj='asm/sx86-elf.o' if ($sha1_obj =~ /\-elf\.o$/);
1187 $des_obj=$sha1_obj="";
1188 $openssl_other_defines.="#define OPENSSL_FIPS\n";
1189 }
1142$des_obj=$des_enc unless ($des_obj =~ /\.o$/); 1190$des_obj=$des_enc unless ($des_obj =~ /\.o$/);
1143$bf_obj=$bf_enc unless ($bf_obj =~ /\.o$/); 1191$bf_obj=$bf_enc unless ($bf_obj =~ /\.o$/);
1144$cast_obj=$cast_enc unless ($cast_obj =~ /\.o$/); 1192$cast_obj=$cast_enc unless ($cast_obj =~ /\.o$/);
1145$rc4_obj=$rc4_enc unless ($rc4_obj =~ /\.o$/); 1193$rc4_obj=$rc4_enc unless ($rc4_obj =~ /\.o$/);
1146$rc5_obj=$rc5_enc unless ($rc5_obj =~ /\.o$/); 1194$rc5_obj=$rc5_enc unless ($rc5_obj =~ /\.o$/);
1147if ($sha1_obj =~ /\.o$/) 1195if ($sha1_obj =~ /\.o$/ || $fips_sha1_obj =~ /\.o$/)
1148 { 1196 {
1149# $sha1_obj=$sha1_enc; 1197# $sha1_obj=$sha1_enc;
1150 $cflags.=" -DSHA1_ASM"; 1198 $cflags.=" -DSHA1_ASM";
@@ -1160,6 +1208,12 @@ if ($rmd160_obj =~ /\.o$/)
1160 $cflags.=" -DRMD160_ASM"; 1208 $cflags.=" -DRMD160_ASM";
1161 } 1209 }
1162 1210
1211if ($debug)
1212 {
1213 $cflags.=" -g";
1214 $cflags=~s/-fomit-frame-pointer//;
1215 }
1216
1163# "Stringify" the C flags string. This permits it to be made part of a string 1217# "Stringify" the C flags string. This permits it to be made part of a string
1164# and works as well on command lines. 1218# and works as well on command lines.
1165$cflags =~ s/([\\\"])/\\\1/g; 1219$cflags =~ s/([\\\"])/\\\1/g;
@@ -1232,12 +1286,14 @@ while (<IN>)
1232 s/^EXE_EXT=.*$/EXE_EXT= $exe_ext/; 1286 s/^EXE_EXT=.*$/EXE_EXT= $exe_ext/;
1233 s/^BN_ASM=.*$/BN_ASM= $bn_obj/; 1287 s/^BN_ASM=.*$/BN_ASM= $bn_obj/;
1234 s/^DES_ENC=.*$/DES_ENC= $des_obj/; 1288 s/^DES_ENC=.*$/DES_ENC= $des_obj/;
1289 s/^FIPS_DES_ENC=.*$/FIPS_DES_ENC= $fips_des_obj/;
1235 s/^BF_ENC=.*$/BF_ENC= $bf_obj/; 1290 s/^BF_ENC=.*$/BF_ENC= $bf_obj/;
1236 s/^CAST_ENC=.*$/CAST_ENC= $cast_obj/; 1291 s/^CAST_ENC=.*$/CAST_ENC= $cast_obj/;
1237 s/^RC4_ENC=.*$/RC4_ENC= $rc4_obj/; 1292 s/^RC4_ENC=.*$/RC4_ENC= $rc4_obj/;
1238 s/^RC5_ENC=.*$/RC5_ENC= $rc5_obj/; 1293 s/^RC5_ENC=.*$/RC5_ENC= $rc5_obj/;
1239 s/^MD5_ASM_OBJ=.*$/MD5_ASM_OBJ= $md5_obj/; 1294 s/^MD5_ASM_OBJ=.*$/MD5_ASM_OBJ= $md5_obj/;
1240 s/^SHA1_ASM_OBJ=.*$/SHA1_ASM_OBJ= $sha1_obj/; 1295 s/^SHA1_ASM_OBJ=.*$/SHA1_ASM_OBJ= $sha1_obj/;
1296 s/^FIPS_SHA1_ASM_OBJ=.*$/FIPS_SHA1_ASM_OBJ= $fips_sha1_obj/;
1241 s/^RMD160_ASM_OBJ=.*$/RMD160_ASM_OBJ= $rmd160_obj/; 1297 s/^RMD160_ASM_OBJ=.*$/RMD160_ASM_OBJ= $rmd160_obj/;
1242 s/^PROCESSOR=.*/PROCESSOR= $processor/; 1298 s/^PROCESSOR=.*/PROCESSOR= $processor/;
1243 s/^RANLIB=.*/RANLIB= $ranlib/; 1299 s/^RANLIB=.*/RANLIB= $ranlib/;
@@ -1470,7 +1526,7 @@ if($IsWindows) {
1470 printf OUT <<EOF; 1526 printf OUT <<EOF;
1471#ifndef MK1MF_BUILD 1527#ifndef MK1MF_BUILD
1472 /* auto-generated by Configure for crypto/cversion.c: 1528 /* auto-generated by Configure for crypto/cversion.c:
1473 * for Unix builds, crypto/Makefile.ssl generates functional definitions; 1529 * for Unix builds, crypto/Makefile generates functional definitions;
1474 * Windows builds (and other mk1mf builds) compile cversion.c with 1530 * Windows builds (and other mk1mf builds) compile cversion.c with
1475 * -DMK1MF_BUILD and use definitions added to this file by util/mk1mf.pl. */ 1531 * -DMK1MF_BUILD and use definitions added to this file by util/mk1mf.pl. */
1476 #error "Windows builds (PLATFORM=$target) use mk1mf.pl-created Makefiles" 1532 #error "Windows builds (PLATFORM=$target) use mk1mf.pl-created Makefiles"
@@ -1478,7 +1534,7 @@ if($IsWindows) {
1478EOF 1534EOF
1479 close(OUT); 1535 close(OUT);
1480} else { 1536} else {
1481 my $make_command = "make -f Makefile.ssl PERL=\'$perl\'"; 1537 my $make_command = "make PERL=\'$perl\'";
1482 my $make_targets = ""; 1538 my $make_targets = "";
1483 $make_targets .= " links" if $symlink; 1539 $make_targets .= " links" if $symlink;
1484 $make_targets .= " depend" if $depflags ne "" && $make_depend; 1540 $make_targets .= " depend" if $depflags ne "" && $make_depend;
@@ -1487,12 +1543,10 @@ EOF
1487 if $make_targets ne ""; 1543 if $make_targets ne "";
1488 if ( $perl =~ m@^/@) { 1544 if ( $perl =~ m@^/@) {
1489 &dofile("tools/c_rehash",$perl,'^#!/', '#!%s','^my \$dir;$', 'my $dir = "' . $openssldir . '";'); 1545 &dofile("tools/c_rehash",$perl,'^#!/', '#!%s','^my \$dir;$', 'my $dir = "' . $openssldir . '";');
1490 &dofile("apps/der_chop",$perl,'^#!/', '#!%s');
1491 &dofile("apps/CA.pl",$perl,'^#!/', '#!%s'); 1546 &dofile("apps/CA.pl",$perl,'^#!/', '#!%s');
1492 } else { 1547 } else {
1493 # No path for Perl known ... 1548 # No path for Perl known ...
1494 &dofile("tools/c_rehash",'/usr/local/bin/perl','^#!/', '#!%s','^my \$dir;$', 'my $dir = "' . $openssldir . '";'); 1549 &dofile("tools/c_rehash",'/usr/local/bin/perl','^#!/', '#!%s','^my \$dir;$', 'my $dir = "' . $openssldir . '";');
1495 &dofile("apps/der_chop",'/usr/local/bin/perl','^#!/', '#!%s');
1496 &dofile("apps/CA.pl",'/usr/local/bin/perl','^#!/', '#!%s'); 1550 &dofile("apps/CA.pl",'/usr/local/bin/perl','^#!/', '#!%s');
1497 } 1551 }
1498 if ($depflags ne "" && !$make_depend) { 1552 if ($depflags ne "" && !$make_depend) {
@@ -1569,10 +1623,10 @@ sub which
1569 my $path; 1623 my $path;
1570 foreach $path (split /:/, $ENV{PATH}) 1624 foreach $path (split /:/, $ENV{PATH})
1571 { 1625 {
1572 if (-f "$path/$name" and -x _) 1626 if (-f "$path/$name$exe_ext" and -x _)
1573 { 1627 {
1574 return "$path/$name" unless ($name eq "perl" and 1628 return "$path/$name$exe_ext" unless ($name eq "perl" and
1575 system("$path/$name -e " . '\'exit($]<5.0);\'')); 1629 system("$path/$name$exe_ext -e " . '\'exit($]<5.0);\''));
1576 } 1630 }
1577 } 1631 }
1578 } 1632 }
diff --git a/src/lib/libssl/src/FAQ b/src/lib/libssl/src/FAQ
index 0b40039ef8..943fc9d4a3 100644
--- a/src/lib/libssl/src/FAQ
+++ b/src/lib/libssl/src/FAQ
@@ -52,6 +52,7 @@ OpenSSL - Frequently Asked Questions
52* Is OpenSSL thread-safe? 52* Is OpenSSL thread-safe?
53* I've compiled a program under Windows and it crashes: why? 53* I've compiled a program under Windows and it crashes: why?
54* How do I read or write a DER encoded buffer using the ASN1 functions? 54* How do I read or write a DER encoded buffer using the ASN1 functions?
55* OpenSSL uses DER but I need BER format: does OpenSSL support BER?
55* I've tried using <M_some_evil_pkcs12_macro> and I get errors why? 56* I've tried using <M_some_evil_pkcs12_macro> and I get errors why?
56* I've called <some function> and it fails, why? 57* I've called <some function> and it fails, why?
57* I just get a load of numbers for the error output, what do they mean? 58* I just get a load of numbers for the error output, what do they mean?
@@ -60,6 +61,7 @@ OpenSSL - Frequently Asked Questions
60* Can I use OpenSSL's SSL library with non-blocking I/O? 61* Can I use OpenSSL's SSL library with non-blocking I/O?
61* Why doesn't my server application receive a client certificate? 62* Why doesn't my server application receive a client certificate?
62* Why does compilation fail due to an undefined symbol NID_uniqueIdentifier? 63* Why does compilation fail due to an undefined symbol NID_uniqueIdentifier?
64* I think I've detected a memory leak, is this a bug?
63 65
64=============================================================================== 66===============================================================================
65 67
@@ -68,7 +70,7 @@ OpenSSL - Frequently Asked Questions
68* Which is the current version of OpenSSL? 70* Which is the current version of OpenSSL?
69 71
70The current version is available from <URL: http://www.openssl.org>. 72The current version is available from <URL: http://www.openssl.org>.
71OpenSSL 0.9.7d was released on March 17, 2004. 73OpenSSL 0.9.7g was released on April 11, 2005.
72 74
73In addition to the current stable release, you can also access daily 75In addition to the current stable release, you can also access daily
74snapshots of the OpenSSL development version at <URL: 76snapshots of the OpenSSL development version at <URL:
@@ -460,7 +462,7 @@ get the best result from OpenSSL. A bit more complicated solution is the
460following: 462following:
461 463
462----- snip:start ----- 464----- snip:start -----
463 make DIRS=crypto SDIRS=sha "`grep '^CFLAG=' Makefile.ssl | \ 465 make DIRS=crypto SDIRS=sha "`grep '^CFLAG=' Makefile | \
464 sed -e 's/ -O[0-9] / -O0 /'`" 466 sed -e 's/ -O[0-9] / -O0 /'`"
465 rm `ls crypto/*.o crypto/sha/*.o | grep -v 'sha_dgst\.o'` 467 rm `ls crypto/*.o crypto/sha/*.o | grep -v 'sha_dgst\.o'`
466 make 468 make
@@ -470,6 +472,10 @@ This will only compile sha_dgst.c with -O0, the rest with the optimization
470level chosen by the configuration process. When the above is done, do the 472level chosen by the configuration process. When the above is done, do the
471test and installation and you're set. 473test and installation and you're set.
472 474
4753. Reconfigure the toolkit with no-sha0 option to leave out SHA0. It
476should not be used and is not used in SSL/TLS nor any other recognized
477protocol in either case.
478
473 479
474* Why does the OpenSSL compilation fail with "ar: command not found"? 480* Why does the OpenSSL compilation fail with "ar: command not found"?
475 481
@@ -683,6 +689,20 @@ and attempts to free the buffer will have unpredictable results
683because it no longer points to the same address. 689because it no longer points to the same address.
684 690
685 691
692* OpenSSL uses DER but I need BER format: does OpenSSL support BER?
693
694The short answer is yes, because DER is a special case of BER and OpenSSL
695ASN1 decoders can process BER.
696
697The longer answer is that ASN1 structures can be encoded in a number of
698different ways. One set of ways is the Basic Encoding Rules (BER) with various
699permissible encodings. A restriction of BER is the Distinguished Encoding
700Rules (DER): these uniquely specify how a given structure is encoded.
701
702Therefore, because DER is a special case of BER, DER is an acceptable encoding
703for BER.
704
705
686* I've tried using <M_some_evil_pkcs12_macro> and I get errors why? 706* I've tried using <M_some_evil_pkcs12_macro> and I get errors why?
687 707
688This usually happens when you try compiling something using the PKCS#12 708This usually happens when you try compiling something using the PKCS#12
@@ -765,5 +785,28 @@ The correct name according to RFC2256 (LDAP) is x500UniqueIdentifier.
765Change your code to use the new name when compiling against OpenSSL 0.9.7. 785Change your code to use the new name when compiling against OpenSSL 0.9.7.
766 786
767 787
788* I think I've detected a memory leak, is this a bug?
789
790In most cases the cause of an apparent memory leak is an OpenSSL internal table
791that is allocated when an application starts up. Since such tables do not grow
792in size over time they are harmless.
793
794These internal tables can be freed up when an application closes using various
795functions. Currently these include following:
796
797Thread-local cleanup functions:
798
799 ERR_remove_state()
800
801Application-global cleanup functions that are aware of usage (and therefore
802thread-safe):
803
804 ENGINE_cleanup() and CONF_modules_unload()
805
806"Brutal" (thread-unsafe) Application-global cleanup functions:
807
808 ERR_free_strings(), EVP_cleanup() and CRYPTO_cleanup_all_ex_data().
809
810
768=============================================================================== 811===============================================================================
769 812
diff --git a/src/lib/libssl/src/INSTALL b/src/lib/libssl/src/INSTALL
index 1c3f3c3fe9..503474f2e4 100644
--- a/src/lib/libssl/src/INSTALL
+++ b/src/lib/libssl/src/INSTALL
@@ -123,7 +123,7 @@
123 generic configurations "cc" or "gcc" should usually work on 32 bit 123 generic configurations "cc" or "gcc" should usually work on 32 bit
124 systems. 124 systems.
125 125
126 Configure creates the file Makefile.ssl from Makefile.org and 126 Configure creates the file Makefile from Makefile.org and
127 defines various macros in crypto/opensslconf.h (generated from 127 defines various macros in crypto/opensslconf.h (generated from
128 crypto/opensslconf.h.in). 128 crypto/opensslconf.h.in).
129 129
@@ -159,7 +159,7 @@
159 the failure that isn't a problem in OpenSSL itself (like a missing 159 the failure that isn't a problem in OpenSSL itself (like a missing
160 or malfunctioning bc). If it is a problem with OpenSSL itself, 160 or malfunctioning bc). If it is a problem with OpenSSL itself,
161 try removing any compiler optimization flags from the CFLAG line 161 try removing any compiler optimization flags from the CFLAG line
162 in Makefile.ssl and run "make clean; make". Please send a bug 162 in Makefile and run "make clean; make". Please send a bug
163 report to <openssl-bugs@openssl.org>, including the output of 163 report to <openssl-bugs@openssl.org>, including the output of
164 "make report" in order to be added to the request tracker at 164 "make report" in order to be added to the request tracker at
165 http://www.openssl.org/support/rt2.html. 165 http://www.openssl.org/support/rt2.html.
diff --git a/src/lib/libssl/src/INSTALL.DJGPP b/src/lib/libssl/src/INSTALL.DJGPP
index cdeac222b2..1047ec90a5 100644
--- a/src/lib/libssl/src/INSTALL.DJGPP
+++ b/src/lib/libssl/src/INSTALL.DJGPP
@@ -3,32 +3,45 @@
3 INSTALLATION ON THE DOS PLATFORM WITH DJGPP 3 INSTALLATION ON THE DOS PLATFORM WITH DJGPP
4 ------------------------------------------- 4 -------------------------------------------
5 5
6 Openssl has been ported to DOS, but only with long filename support. If 6 OpenSSL has been ported to DJGPP, a Unix look-alike 32-bit run-time
7 you wish to compile on native DOS with 8+3 filenames, you will have to 7 environment for 16-bit DOS, but only with long filename support.
8 tweak the installation yourself, including renaming files with illegal 8 If you wish to compile on native DOS with 8+3 filenames, you will
9 or duplicate names. 9 have to tweak the installation yourself, including renaming files
10 with illegal or duplicate names.
10 11
11 You should have a full DJGPP environment installed, including the 12 You should have a full DJGPP environment installed, including the
12 latest versions of DJGPP, GCC, BINUTILS, BASH, etc. This package 13 latest versions of DJGPP, GCC, BINUTILS, BASH, etc. This package
13 requires that PERL and BC also be installed. 14 requires that PERL and BC also be installed.
14 15
15 All of these can be obtained from the usual DJGPP mirror sites, such 16 All of these can be obtained from the usual DJGPP mirror sites or
16 as "ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp". You also need to 17 directly at "http://www.delorie.com/pub/djgpp". For help on which
17 have the WATT-32 networking package installed before you try to compile 18 files to download, see the DJGPP "ZIP PICKER" page at
18 openssl. This can be obtained from "http://www.bgnett.no/~giva/". 19 "http://www.delorie.com/djgpp/zip-picker.html". You also need to have
20 the WATT-32 networking package installed before you try to compile
21 OpenSSL. This can be obtained from "http://www.bgnett.no/~giva/".
19 The Makefile assumes that the WATT-32 code is in the directory 22 The Makefile assumes that the WATT-32 code is in the directory
20 specified by the environment variable WATT_ROOT. If you have watt-32 23 specified by the environment variable WATT_ROOT. If you have watt-32
21 in directory "watt32" under your main DJGPP directory, specify 24 in directory "watt32" under your main DJGPP directory, specify
22 WATT_ROOT="/dev/env/DJDIR/watt32". 25 WATT_ROOT="/dev/env/DJDIR/watt32".
23 26
24 To compile openssl, start your BASH shell. Then configure for DOS by 27 To compile OpenSSL, start your BASH shell, then configure for DJGPP by
25 running "./Configure" with appropriate arguments. The basic syntax for 28 running "./Configure" with appropriate arguments:
26 DOS is: 29
27 ./Configure no-threads --prefix=/dev/env/DJDIR DJGPP 30 ./Configure no-threads --prefix=/dev/env/DJDIR DJGPP
28 31
29 You may run out of DPMI selectors when running in a DOS box under 32 And finally fire up "make". You may run out of DPMI selectors when
30 Windows. If so, just close the BASH shell, go back to Windows, and 33 running in a DOS box under Windows. If so, just close the BASH
31 restart BASH. Then run "make" again. 34 shell, go back to Windows, and restart BASH. Then run "make" again.
35
36 RUN-TIME CAVEAT LECTOR
37 --------------
38
39 Quoting FAQ:
40
41 "Cryptographic software needs a source of unpredictable data to work
42 correctly. Many open source operating systems provide a "randomness
43 device" (/dev/urandom or /dev/random) that serves this purpose."
32 44
33 Building openssl under DJGPP has been tested with DJGPP 2.03, 45 As of version 0.9.7f DJGPP port checks upon /dev/urandom$ for a 3rd
34 GCC 2.952, GCC 2.953, perl 5.005_02 and perl 5.006_01. 46 party "randomness" DOS driver. One such driver, NOISE.SYS, can be
47 obtained from "http://www.rahul.net/dkaufman/index.html".
diff --git a/src/lib/libssl/src/INSTALL.W32 b/src/lib/libssl/src/INSTALL.W32
index 0f6c302f0d..c277efa18b 100644
--- a/src/lib/libssl/src/INSTALL.W32
+++ b/src/lib/libssl/src/INSTALL.W32
@@ -46,12 +46,13 @@
46 http://www.kernel.org/pub/software/devel/nasm/binaries/win32/ 46 http://www.kernel.org/pub/software/devel/nasm/binaries/win32/
47 The NASM binary nasmw.exe needs to be installed anywhere on your PATH. 47 The NASM binary nasmw.exe needs to be installed anywhere on your PATH.
48 48
49 Firstly you should run Configure: 49 Firstly you should run Configure (to build a FIPS-certified variant of
50 OpenSSL, add the option "fips"):
50 51
51 > perl Configure VC-WIN32 52 > perl Configure VC-WIN32
52 53
53 Next you need to build the Makefiles and optionally the assembly language 54 Next you need to build the Makefiles and optionally the assembly language
54 files: 55 files (to build a FIPS-certified variant of OpenSSL, add the argument "fips"):
55 56
56 - If you are using MASM then run: 57 - If you are using MASM then run:
57 58
@@ -100,10 +101,12 @@
100 Borland C++ builder 5 101 Borland C++ builder 5
101 --------------------- 102 ---------------------
102 103
103 * Configure for building with Borland Builder: 104 * Configure for building with Borland Builder (to build a FIPS-certified
105 variant of OpenSSL, add the option "fips"):
104 > perl Configure BC-32 106 > perl Configure BC-32
105 107
106 * Create the appropriate makefile 108 * Create the appropriate makefile (to build a FIPS-certified variant of
109 OpenSSL, add the argument "fips")
107 > ms\do_nasm 110 > ms\do_nasm
108 111
109 * Build 112 * Build
@@ -194,6 +197,8 @@
194 occur, try 197 occur, try
195 > ms\mingw32 no-asm 198 > ms\mingw32 no-asm
196 instead. 199 instead.
200 If you want to build a FIPS-certified variant of OpenSSL, add the argument
201 "fips"
197 202
198 libcrypto.a and libssl.a are the static libraries. To use the DLLs, 203 libcrypto.a and libssl.a are the static libraries. To use the DLLs,
199 link with libeay32.a and libssl32.a instead. 204 link with libeay32.a and libssl32.a instead.
diff --git a/src/lib/libssl/src/Makefile b/src/lib/libssl/src/Makefile
new file mode 100644
index 0000000000..45d2befa5c
--- /dev/null
+++ b/src/lib/libssl/src/Makefile
@@ -0,0 +1,930 @@
1### Generated automatically from Makefile.org by Configure.
2
3##
4## Makefile for OpenSSL
5##
6
7VERSION=0.9.7g
8MAJOR=0
9MINOR=9.7
10SHLIB_VERSION_NUMBER=0.9.7
11SHLIB_VERSION_HISTORY=
12SHLIB_MAJOR=0
13SHLIB_MINOR=9.7
14SHLIB_EXT=
15PLATFORM=dist
16OPTIONS= no-krb5
17CONFIGURE_ARGS=dist
18SHLIB_TARGET=
19
20# HERE indicates where this Makefile lives. This can be used to indicate
21# where sub-Makefiles are expected to be. Currently has very limited usage,
22# and should probably not be bothered with at all.
23HERE=.
24
25# INSTALL_PREFIX is for package builders so that they can configure
26# for, say, /usr/ and yet have everything installed to /tmp/somedir/usr/.
27# Normally it is left empty.
28INSTALL_PREFIX=
29INSTALLTOP=/usr/local/ssl
30
31# Do not edit this manually. Use Configure --openssldir=DIR do change this!
32OPENSSLDIR=/usr/local/ssl
33
34# NO_IDEA - Define to build without the IDEA algorithm
35# NO_RC4 - Define to build without the RC4 algorithm
36# NO_RC2 - Define to build without the RC2 algorithm
37# THREADS - Define when building with threads, you will probably also need any
38# system defines as well, i.e. _REENTERANT for Solaris 2.[34]
39# TERMIO - Define the termio terminal subsystem, needed if sgtty is missing.
40# TERMIOS - Define the termios terminal subsystem, Silicon Graphics.
41# LONGCRYPT - Define to use HPUX 10.x's long password modification to crypt(3).
42# DEVRANDOM - Give this the value of the 'random device' if your OS supports
43# one. 32 bytes will be read from this when the random
44# number generator is initalised.
45# SSL_FORBID_ENULL - define if you want the server to be not able to use the
46# NULL encryption ciphers.
47#
48# LOCK_DEBUG - turns on lots of lock debug output :-)
49# REF_CHECK - turn on some xyz_free() assertions.
50# REF_PRINT - prints some stuff on structure free.
51# CRYPTO_MDEBUG - turns on my 'memory leak' detecting stuff
52# MFUNC - Make all Malloc/Free/Realloc calls call
53# CRYPTO_malloc/CRYPTO_free/CRYPTO_realloc which can be setup to
54# call application defined callbacks via CRYPTO_set_mem_functions()
55# MD5_ASM needs to be defined to use the x86 assembler for MD5
56# SHA1_ASM needs to be defined to use the x86 assembler for SHA1
57# RMD160_ASM needs to be defined to use the x86 assembler for RIPEMD160
58# Do not define B_ENDIAN or L_ENDIAN if 'unsigned long' == 8. It must
59# equal 4.
60# PKCS1_CHECK - pkcs1 tests.
61
62CC= cc
63#CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
64CFLAG= -DOPENSSL_NO_KRB5 -O
65DEPFLAG=
66PEX_LIBS=
67EX_LIBS=
68EXE_EXT=
69ARFLAGS=
70AR=ar $(ARFLAGS) r
71RANLIB= /usr/bin/ranlib
72PERL= /usr/bin/perl
73TAR= tar
74TARFLAGS= --no-recursion
75MAKEDEPPROG=makedepend
76
77# We let the C compiler driver to take care of .s files. This is done in
78# order to be excused from maintaining a separate set of architecture
79# dependent assembler flags. E.g. if you throw -mcpu=ultrasparc at SPARC
80# gcc, then the driver will automatically translate it to -xarch=v8plus
81# and pass it down to assembler.
82AS=$(CC) -c
83ASFLAG=$(CFLAG)
84
85# Set BN_ASM to bn_asm.o if you want to use the C version
86BN_ASM= bn_asm.o
87#BN_ASM= bn_asm.o
88#BN_ASM= asm/bn86-elf.o # elf, linux-elf
89#BN_ASM= asm/bn86-sol.o # solaris
90#BN_ASM= asm/bn86-out.o # a.out, FreeBSD
91#BN_ASM= asm/bn86bsdi.o # bsdi
92#BN_ASM= asm/alpha.o # DEC Alpha
93#BN_ASM= asm/pa-risc2.o # HP-UX PA-RISC
94#BN_ASM= asm/r3000.o # SGI MIPS cpu
95#BN_ASM= asm/sparc.o # Sun solaris/SunOS
96#BN_ASM= asm/bn-win32.o # Windows 95/NT
97#BN_ASM= asm/x86w16.o # 16 bit code for Windows 3.1/DOS
98#BN_ASM= asm/x86w32.o # 32 bit code for Windows 3.1
99
100# For x86 assembler: Set PROCESSOR to 386 if you want to support
101# the 80386.
102PROCESSOR=
103
104# Set DES_ENC to des_enc.o if you want to use the C version
105#There are 4 x86 assember options.
106FIPS_DES_ENC=
107DES_ENC= des_enc.o fcrypt_b.o
108#DES_ENC= des_enc.o fcrypt_b.o # C
109#DES_ENC= asm/dx86-elf.o asm/yx86-elf.o # elf
110#DES_ENC= asm/dx86-sol.o asm/yx86-sol.o # solaris
111#DES_ENC= asm/dx86-out.o asm/yx86-out.o # a.out, FreeBSD
112#DES_ENC= asm/dx86bsdi.o asm/yx86bsdi.o # bsdi
113
114# Set BF_ENC to bf_enc.o if you want to use the C version
115#There are 4 x86 assember options.
116BF_ENC= bf_enc.o
117#BF_ENC= bf_enc.o
118#BF_ENC= asm/bx86-elf.o # elf
119#BF_ENC= asm/bx86-sol.o # solaris
120#BF_ENC= asm/bx86-out.o # a.out, FreeBSD
121#BF_ENC= asm/bx86bsdi.o # bsdi
122
123# Set CAST_ENC to c_enc.o if you want to use the C version
124#There are 4 x86 assember options.
125CAST_ENC= c_enc.o
126#CAST_ENC= c_enc.o
127#CAST_ENC= asm/cx86-elf.o # elf
128#CAST_ENC= asm/cx86-sol.o # solaris
129#CAST_ENC= asm/cx86-out.o # a.out, FreeBSD
130#CAST_ENC= asm/cx86bsdi.o # bsdi
131
132# Set RC4_ENC to rc4_enc.o if you want to use the C version
133#There are 4 x86 assember options.
134RC4_ENC= rc4_enc.o
135#RC4_ENC= rc4_enc.o
136#RC4_ENC= asm/rx86-elf.o # elf
137#RC4_ENC= asm/rx86-sol.o # solaris
138#RC4_ENC= asm/rx86-out.o # a.out, FreeBSD
139#RC4_ENC= asm/rx86bsdi.o # bsdi
140
141# Set RC5_ENC to rc5_enc.o if you want to use the C version
142#There are 4 x86 assember options.
143RC5_ENC= rc5_enc.o
144#RC5_ENC= rc5_enc.o
145#RC5_ENC= asm/r586-elf.o # elf
146#RC5_ENC= asm/r586-sol.o # solaris
147#RC5_ENC= asm/r586-out.o # a.out, FreeBSD
148#RC5_ENC= asm/r586bsdi.o # bsdi
149
150# Also need MD5_ASM defined
151MD5_ASM_OBJ=
152#MD5_ASM_OBJ= asm/mx86-elf.o # elf
153#MD5_ASM_OBJ= asm/mx86-sol.o # solaris
154#MD5_ASM_OBJ= asm/mx86-out.o # a.out, FreeBSD
155#MD5_ASM_OBJ= asm/mx86bsdi.o # bsdi
156
157# Also need SHA1_ASM defined
158SHA1_ASM_OBJ=
159FIPS_SHA1_ASM_OBJ=
160#SHA1_ASM_OBJ= asm/sx86-elf.o # elf
161#SHA1_ASM_OBJ= asm/sx86-sol.o # solaris
162#SHA1_ASM_OBJ= asm/sx86-out.o # a.out, FreeBSD
163#SHA1_ASM_OBJ= asm/sx86bsdi.o # bsdi
164
165# Also need RMD160_ASM defined
166RMD160_ASM_OBJ=
167#RMD160_ASM_OBJ= asm/rm86-elf.o # elf
168#RMD160_ASM_OBJ= asm/rm86-sol.o # solaris
169#RMD160_ASM_OBJ= asm/rm86-out.o # a.out, FreeBSD
170#RMD160_ASM_OBJ= asm/rm86bsdi.o # bsdi
171
172# KRB5 stuff
173KRB5_INCLUDES=
174LIBKRB5=
175
176# When we're prepared to use shared libraries in the programs we link here
177# we might set SHLIB_MARK to '$(SHARED_LIBS)'.
178SHLIB_MARK=
179
180DIRS= crypto fips ssl $(SHLIB_MARK) sigs apps test tools
181SHLIBDIRS= crypto ssl
182
183# dirs in crypto to build
184SDIRS= objects \
185 md2 md4 md5 sha mdc2 hmac ripemd \
186 des rc2 rc4 rc5 idea bf cast \
187 bn ec rsa dsa dh dso engine aes \
188 buffer bio stack lhash rand err \
189 evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5
190
191FDIRS= sha1 rand des aes dsa rsa dh
192
193# tests to perform. "alltests" is a special word indicating that all tests
194# should be performed.
195TESTS = alltests
196
197MAKEFILE= Makefile
198
199MANDIR=$(OPENSSLDIR)/man
200MAN1=1
201MAN3=3
202MANSUFFIX=
203SHELL=/bin/sh
204
205TOP= .
206ONEDIRS=out tmp
207EDIRS= times doc bugs util include certs ms shlib mt demos perl sf dep VMS
208WDIRS= windows
209LIBS= libcrypto.a libssl.a
210SIGS= libcrypto.a.sha1
211SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
212SHARED_SSL=libssl$(SHLIB_EXT)
213SHARED_LIBS=
214SHARED_LIBS_LINK_EXTS=
215SHARED_LDFLAGS=
216
217GENERAL= Makefile
218BASENAME= openssl
219NAME= $(BASENAME)-$(VERSION)
220TARFILE= $(NAME).tar
221WTARFILE= $(NAME)-win.tar
222EXHEADER= e_os2.h
223HEADER= e_os.h
224
225# When we're prepared to use shared libraries in the programs we link here
226# we might remove 'clean-shared' from the targets to perform at this stage
227
228all: Makefile sub_all openssl.pc
229
230sigs: $(SIGS)
231libcrypto.a.sha1: libcrypto.a
232 @if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
233 $(RANLIB) libcrypto.a; \
234 fips/sha1/fips_standalone_sha1 libcrypto.a > libcrypto.a.sha1; \
235 fi
236
237sub_all:
238 @for i in $(DIRS); \
239 do \
240 if [ -d "$$i" ]; then \
241 (cd $$i && echo "making all in $$i..." && \
242 $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' AS='${AS}' ASFLAG='${ASFLAG}' SDIRS='$(SDIRS)' FDIRS='$(FDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' FIPS_DES_ENC='${FIPS_DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_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}' all ) || exit 1; \
243 else \
244 $(MAKE) $$i; \
245 fi; \
246 done;
247
248sub_target:
249 @for i in $(DIRS); \
250 do \
251 if [ -d "$$i" ]; then \
252 (cd $$i && echo "making $(TARGET) in $$i..." && \
253 $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' AS='${AS}' ASFLAG='${ASFLAG}' SDIRS='$(SDIRS)' FDIRS='$(FDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' FIPS_DES_ENC='${FIPS_DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_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}' TARGET='$(TARGET)' sub_target ) || exit 1; \
254 else \
255 $(MAKE) $$i; \
256 fi; \
257 done;
258
259libcrypto$(SHLIB_EXT): libcrypto.a
260 @if [ "$(SHLIB_TARGET)" != "" ]; then \
261 $(MAKE) SHLIBDIRS=crypto build-shared; \
262 else \
263 echo "There's no support for shared libraries on this platform" >&2; \
264 fi
265
266libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
267 @if [ "$(SHLIB_TARGET)" != "" ]; then \
268 $(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \
269 else \
270 echo "There's no support for shared libraries on this platform" >&2; \
271 fi
272
273clean-shared:
274 @for i in $(SHLIBDIRS); do \
275 if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
276 tmp="$(SHARED_LIBS_LINK_EXTS)"; \
277 for j in $${tmp:-x}; do \
278 ( set -x; rm -f lib$$i$$j ); \
279 done; \
280 fi; \
281 ( set -x; rm -f lib$$i$(SHLIB_EXT) ); \
282 if [ "$(PLATFORM)" = "Cygwin" ]; then \
283 ( set -x; rm -f cyg$$i-$(SHLIB_VERSION_NUMBER)$(SHLIB_EXT) lib$$i$(SHLIB_EXT).a ); \
284 fi; \
285 done
286
287link-shared:
288 @if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
289 tmp="$(SHARED_LIBS_LINK_EXTS)"; \
290 for i in $(SHLIBDIRS); do \
291 prev=lib$$i$(SHLIB_EXT); \
292 for j in $${tmp:-x}; do \
293 ( set -x; \
294 rm -f lib$$i$$j; ln -s $$prev lib$$i$$j ); \
295 prev=lib$$i$$j; \
296 done; \
297 done; \
298 fi
299
300build-shared: clean-shared do_$(SHLIB_TARGET) link-shared
301
302do_bsd-gcc-shared: do_gnu-shared
303do_linux-shared: do_gnu-shared
304do_gnu-shared:
305 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
306 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
307 libs="$(LIBKRB5) $$libs"; \
308 fi; \
309 ( set -x; ${CC} ${SHARED_LDFLAGS} \
310 -shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
311 -Wl,-soname=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
312 -Wl,-Bsymbolic \
313 -Wl,--whole-archive lib$$i.a \
314 -Wl,--no-whole-archive $$libs ${EX_LIBS} -lc ) || exit 1; \
315 libs="-l$$i $$libs"; \
316 done
317
318DETECT_GNU_LD=(${CC} -Wl,-V /dev/null 2>&1 | grep '^GNU ld' )>/dev/null
319
320# For Darwin AKA Mac OS/X (dyld)
321do_darwin-shared:
322 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
323 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
324 libs="$(LIBKRB5) $$libs"; \
325 fi; \
326 ( set -x; ${CC} --verbose -dynamiclib -o lib$$i${SHLIB_EXT} \
327 lib$$i.a $$libs -all_load -current_version ${SHLIB_MAJOR}.${SHLIB_MINOR} \
328 -compatibility_version ${SHLIB_MAJOR}.`echo ${SHLIB_MINOR} | cut -d. -f1` \
329 -install_name ${INSTALLTOP}/lib/lib$$i${SHLIB_EXT} ) || exit 1; \
330 libs="-l`basename $$i${SHLIB_EXT} .dylib` $$libs"; \
331 echo "" ; \
332 done
333
334do_cygwin-shared:
335 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
336 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
337 libs="$(LIBKRB5) $$libs"; \
338 fi; \
339 shlib=cyg$${i}-$(SHLIB_VERSION_NUMBER).dll; \
340 [ "$(PLATFORM)" = "mingw" ] && shlib=$${i}eay32.dll; \
341 [ -f apps/$$shlib ] && rm apps/$$shlib; \
342 [ -f test/$$shlib ] && rm test/$$shlib; \
343 base=; [ $$i = "crypto" ] && base=-Wl,--image-base,0xFE00000; \
344 ( set -x; ${CC} ${SHARED_LDFLAGS} \
345 -shared $$base -o $$shlib \
346 -Wl,-Bsymbolic \
347 -Wl,--whole-archive lib$$i.a \
348 -Wl,--out-implib,lib$$i.dll.a \
349 -Wl,--no-whole-archive $$libs ${EX_LIBS} ) || exit 1; \
350 cp -p $$shlib apps/; cp -p $$shlib test/; \
351 libs="-l$$i $$libs"; \
352 done
353
354# This assumes that GNU utilities are *not* used
355do_alpha-osf1-shared:
356 if ${DETECT_GNU_LD}; then \
357 $(MAKE) do_gnu-shared; \
358 else \
359 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
360 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
361 libs="$(LIBKRB5) $$libs"; \
362 fi; \
363 ( set -x; ${CC} ${SHARED_LDFLAGS} \
364 -shared -o lib$$i.so \
365 -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
366 -all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \
367 libs="-l$$i $$libs"; \
368 done; \
369 fi
370
371# This assumes that GNU utilities are *not* used
372# The difference between alpha-osf1-shared and tru64-shared is the `-msym'
373# option passed to the linker.
374do_tru64-shared:
375 if ${DETECT_GNU_LD}; then \
376 $(MAKE) do_gnu-shared; \
377 else \
378 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
379 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
380 libs="$(LIBKRB5) $$libs"; \
381 fi; \
382 ( set -x; ${CC} ${SHARED_LDFLAGS} \
383 -shared -msym -o lib$$i.so \
384 -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
385 -all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \
386 libs="-l$$i $$libs"; \
387 done; \
388 fi
389
390# This assumes that GNU utilities are *not* used
391# The difference between tru64-shared and tru64-shared-rpath is the
392# -rpath ${INSTALLTOP}/lib passed to the linker.
393do_tru64-shared-rpath:
394 if ${DETECT_GNU_LD}; then \
395 $(MAKE) do_gnu-shared; \
396 else \
397 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
398 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
399 libs="$(LIBKRB5) $$libs"; \
400 fi; \
401 ( set -x; ${CC} ${SHARED_LDFLAGS} \
402 -shared -msym -o lib$$i.so \
403 -rpath ${INSTALLTOP}/lib \
404 -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
405 -all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \
406 libs="-l$$i $$libs"; \
407 done; \
408 fi
409
410
411# This assumes that GNU utilities are *not* used
412do_solaris-shared:
413 if ${DETECT_GNU_LD}; then \
414 $(MAKE) do_gnu-shared; \
415 else \
416 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
417 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
418 libs="$(LIBKRB5) $$libs"; \
419 fi; \
420 ( PATH=/usr/ccs/bin:$$PATH ; export PATH; \
421 MINUSZ='-z '; \
422 (${CC} -v 2>&1 | grep gcc) > /dev/null && MINUSZ='-Wl,-z,'; \
423 set -x; ${CC} ${SHARED_LDFLAGS} -G -dy -z text \
424 -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
425 -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
426 -Wl,-Bsymbolic \
427 $${MINUSZ}allextract lib$$i.a $${MINUSZ}defaultextract \
428 $$libs ${EX_LIBS} -lc ) || exit 1; \
429 libs="-l$$i $$libs"; \
430 done; \
431 fi
432
433# OpenServer 5 native compilers used
434do_svr3-shared:
435 if ${DETECT_GNU_LD}; then \
436 $(MAKE) do_gnu-shared; \
437 else \
438 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
439 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
440 libs="$(LIBKRB5) $$libs"; \
441 fi; \
442 ( PATH=/usr/ccs/bin:$$PATH ; export PATH; \
443 find . -name "*.o" -print > allobjs ; \
444 OBJS= ; export OBJS ; \
445 for obj in `ar t lib$$i.a` ; do \
446 OBJS="$${OBJS} `grep /$$obj allobjs`" ; \
447 done ; \
448 set -x; ${CC} ${SHARED_LDFLAGS} \
449 -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
450 -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
451 $${OBJS} $$libs ${EX_LIBS} ) || exit 1; \
452 libs="-l$$i $$libs"; \
453 done; \
454 fi
455
456# UnixWare 7 and OpenUNIX 8 native compilers used
457do_svr5-shared:
458 if ${DETECT_GNU_LD}; then \
459 $(MAKE) do_gnu-shared; \
460 else \
461 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
462 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
463 libs="$(LIBKRB5) $$libs"; \
464 fi; \
465 ( PATH=/usr/ccs/bin:$$PATH ; export PATH; \
466 SHARE_FLAG='-G'; \
467 (${CC} -v 2>&1 | grep gcc) > /dev/null && SHARE_FLAG='-shared'; \
468 find . -name "*.o" -print > allobjs ; \
469 OBJS= ; export OBJS ; \
470 for obj in `ar t lib$$i.a` ; do \
471 OBJS="$${OBJS} `grep /$$obj allobjs`" ; \
472 done ; \
473 set -x; LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH \
474 ${CC} ${SHARED_LDFLAGS} \
475 $${SHARE_FLAG} -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
476 -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
477 $${OBJS} $$libs ${EX_LIBS} ) || exit 1; \
478 libs="-l$$i $$libs"; \
479 done; \
480 fi
481
482# This assumes that GNU utilities are *not* used
483do_irix-shared:
484 if ${DETECT_GNU_LD}; then \
485 $(MAKE) do_gnu-shared; \
486 else \
487 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
488 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
489 libs="$(LIBKRB5) $$libs"; \
490 fi; \
491 ( WHOLELIB="-all lib$$i.a -none"; \
492 (${CC} -v 2>&1 | grep gcc) > /dev/null && WHOLELIB="-Wl,-all,lib$$i.a,-none"; \
493 set -x; ${CC} ${SHARED_LDFLAGS} \
494 -shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
495 -Wl,-soname,lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
496 $${WHOLELIB} $$libs ${EX_LIBS} -lc) || exit 1; \
497 libs="-l$$i $$libs"; \
498 done; \
499 fi
500
501# This assumes that GNU utilities are *not* used
502# HP-UX includes the full pathname of libs we depend on, so we would get
503# ./libcrypto (with ./ as path information) compiled into libssl, hence
504# we omit the SHLIBDEPS. Applications must be linked with -lssl -lcrypto
505# anyway.
506# The object modules are loaded from lib$i.a using the undocumented -Fl
507# option.
508#
509# WARNING: Until DSO is fixed to support a search path, we support SHLIB_PATH
510# by temporarily specifying "+s"!
511#
512do_hpux-shared:
513 for i in ${SHLIBDIRS}; do \
514 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
515 libs="$(LIBKRB5) $$libs"; \
516 fi; \
517 if expr $(PLATFORM) : '.*ia64' > /dev/null; then \
518 shlib=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
519 else \
520 shlib=lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
521 fi; \
522 [ -f $$shlib ] && rm -f $$shlib; \
523 ( set -x; /usr/ccs/bin/ld ${SHARED_LDFLAGS} \
524 +vnocompatwarnings \
525 -b -z +s \
526 -o $$shlib +h $$shlib \
527 -Fl lib$$i.a -ldld -lc ) || exit 1; \
528 chmod a=rx $$shlib; \
529 done
530
531# This assumes that GNU utilities are *not* used
532# HP-UX includes the full pathname of libs we depend on, so we would get
533# ./libcrypto (with ./ as path information) compiled into libssl, hence
534# we omit the SHLIBDEPS. Applications must be linked with -lssl -lcrypto
535# anyway.
536#
537# HP-UX in 64bit mode has "+s" enabled by default; it will search for
538# shared libraries along LD_LIBRARY_PATH _and_ SHLIB_PATH.
539#
540do_hpux64-shared:
541 for i in ${SHLIBDIRS}; do \
542 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
543 libs="$(LIBKRB5) $$libs"; \
544 fi; \
545 if expr $(PLATFORM) : '.*ia64' > /dev/null; then \
546 shlib=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
547 else \
548 shlib=lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
549 fi; \
550 [ -f $$shlib ] && rm -f $$shlib; \
551 ( set -x; /usr/ccs/bin/ld ${SHARED_LDFLAGS} \
552 -b -z \
553 -o $$shlib +h $$shlib \
554 +forceload lib$$i.a -ldl -lc ) || exit 1; \
555 chmod a=rx $$shlib; \
556 done
557
558# The following method is said to work on all platforms. Tests will
559# determine if that's how it's gong to be used.
560# This assumes that for all but GNU systems, GNU utilities are *not* used.
561# ALLSYMSFLAGS would be:
562# GNU systems: --whole-archive
563# Tru64 Unix: -all
564# Solaris: -z allextract
565# Irix: -all
566# HP/UX-32bit: -Fl
567# HP/UX-64bit: +forceload
568# AIX: -bnogc
569# SHAREDFLAGS would be:
570# GNU systems: -shared -Wl,-soname=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
571# Tru64 Unix: -shared \
572# -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}"
573# Solaris: -G -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
574# Irix: -shared -Wl,-soname,lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
575# HP/UX-32bit: +vnocompatwarnings -b -z +s \
576# +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}
577# HP/UX-64bit: -b -z +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}
578# AIX: -G -bE:lib$$i.exp -bM:SRE
579# SHAREDCMD would be:
580# GNU systems: $(CC)
581# Tru64 Unix: $(CC)
582# Solaris: $(CC)
583# Irix: $(CC)
584# HP/UX-32bit: /usr/ccs/bin/ld
585# HP/UX-64bit: /usr/ccs/bin/ld
586# AIX: $(CC)
587ALLSYMSFLAG=-bnogc
588SHAREDFLAGS=${SHARED_LDFLAGS} -G -bE:lib$$i.exp -bM:SRE
589SHAREDCMD=$(CC)
590do_aix-shared:
591 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
592 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
593 libs="$(LIBKRB5) $$libs"; \
594 fi; \
595 ( set -x; \
596 OBJECT_MODE=`expr x${SHARED_LDFLAGS} : 'x\-[a-z]\([0-9]*\)'`; \
597 OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \
598 ld -r -o lib$$i.o $(ALLSYMSFLAG) lib$$i.a && \
599 ( nm -Pg lib$$i.o | grep ' [BD] ' | cut -f1 -d' ' > lib$$i.exp; \
600 $(SHAREDCMD) $(SHAREDFLAGS) \
601 -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} lib$$i.o \
602 $$libs ${EX_LIBS} ) ) \
603 || exit 1; \
604 libs="-l$$i $$libs"; \
605 done
606
607do_reliantunix-shared:
608 libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
609 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
610 libs="$(LIBKRB5) $$libs"; \
611 fi; \
612 tmpdir=/tmp/openssl.$$$$ ; rm -rf $$tmpdir ; \
613 ( set -x; \
614 ( Opwd=`pwd` ; mkdir $$tmpdir || exit 1; \
615 cd $$tmpdir || exit 1 ; ar x $$Opwd/lib$$i.a ; \
616 ${CC} -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} *.o \
617 ) || exit 1; \
618 cp $$tmpdir/lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} . ; \
619 ) || exit 1; \
620 rm -rf $$tmpdir ; \
621 libs="-l$$i $$libs"; \
622 done
623
624openssl.pc: Makefile
625 @ ( echo 'prefix=$(INSTALLTOP)'; \
626 echo 'exec_prefix=$${prefix}'; \
627 echo 'libdir=$${exec_prefix}/lib'; \
628 echo 'includedir=$${prefix}/include'; \
629 echo ''; \
630 echo 'Name: OpenSSL'; \
631 echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \
632 echo 'Version: '$(VERSION); \
633 echo 'Requires: '; \
634 echo 'Libs: -L$${libdir} -lssl -lcrypto $(LIBKRB5) $(EX_LIBS)'; \
635 echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc
636
637Makefile: Makefile.org
638 @echo "Makefile is older than Makefile.org."
639 @echo "Reconfigure the source tree (via './config' or 'perl Configure'), please."
640 @false
641
642libclean:
643 rm -f *.map *.so *.so.* engines/*.so *.a */lib */*/lib
644
645clean: libclean
646 rm -f shlib/*.o *.o core a.out fluff rehash.time testlog make.log cctest cctest.c
647 @for i in $(DIRS) ;\
648 do \
649 if [ -d "$$i" ]; then \
650 (cd $$i && echo "making clean in $$i..." && \
651 $(MAKE) EXE_EXT='${EXE_EXT}' SDIRS='${SDIRS}' clean ) || exit 1; \
652 rm -f $(LIBS); \
653 fi; \
654 done;
655 rm -f openssl.pc
656 rm -f speed.* .pure
657 rm -f $(TARFILE)
658 @for i in $(ONEDIRS) ;\
659 do \
660 rm -fr $$i/*; \
661 done
662
663makefile.one: files
664 $(PERL) util/mk1mf.pl >makefile.one; \
665 sh util/do_ms.sh
666
667files:
668 $(PERL) $(TOP)/util/files.pl Makefile > $(TOP)/MINFO
669 @for i in $(DIRS) ;\
670 do \
671 if [ -d "$$i" ]; then \
672 (cd $$i && echo "making 'files' in $$i..." && \
673 $(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' files ) || exit 1; \
674 fi; \
675 done;
676
677links:
678 @$(PERL) $(TOP)/util/mkdir-p.pl include/openssl
679 @$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER)
680 @for i in $(DIRS); do \
681 if [ -d "$$i" ]; then \
682 (cd $$i && echo "making links in $$i..." && \
683 $(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}' FIPS_DES_ENC='${FIPS_DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PERL='${PERL}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' links ) || exit 1; \
684 fi; \
685 done;
686
687gentests:
688 @(cd test && echo "generating dummy tests (if needed)..." && \
689 $(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}' FIPS_DES_ENC='${FIPS_DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_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 );
690
691dclean:
692 rm -f *.bak
693 @for i in $(DIRS) ;\
694 do \
695 if [ -d "$$i" ]; then \
696 (cd $$i && echo "making dclean in $$i..." && \
697 $(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' dclean ) || exit 1; \
698 fi; \
699 done;
700
701rehash: rehash.time
702rehash.time: certs
703 @(OPENSSL="`pwd`/util/opensslwrap.sh"; \
704 OPENSSL_DEBUG_MEMORY=on; \
705 export OPENSSL OPENSSL_DEBUG_MEMORY; \
706 $(PERL) tools/c_rehash certs)
707 touch rehash.time
708
709test: tests
710
711tests: rehash
712 @(cd test && echo "testing..." && \
713 $(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}' FIPS_DES_ENC='${FIPS_DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_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 );
714 util/shlib_wrap.sh apps/openssl version -a
715
716report:
717 @$(PERL) util/selftest.pl
718
719depend:
720 @for i in $(DIRS) ;\
721 do \
722 if [ -d "$$i" ]; then \
723 (cd $$i && echo "making dependencies $$i..." && \
724 $(MAKE) SDIRS='${SDIRS}' CFLAG='${CFLAG}' DEPFLAG='${DEPFLAG}' MAKEDEPPROG='${MAKEDEPPROG}' KRB5_INCLUDES='${KRB5_INCLUDES}' PERL='${PERL}' depend ) || exit 1; \
725 fi; \
726 done;
727
728lint:
729 @for i in $(DIRS) ;\
730 do \
731 if [ -d "$$i" ]; then \
732 (cd $$i && echo "making lint $$i..." && \
733 $(MAKE) SDIRS='${SDIRS}' lint ) || exit 1; \
734 fi; \
735 done;
736
737tags:
738 rm -f TAGS
739 find . -name '[^.]*.[ch]' | xargs etags -a
740
741errors:
742 $(PERL) util/mkerr.pl -recurse -write
743 (cd crypto/engine; $(MAKE) PERL=$(PERL) errors)
744
745stacks:
746 $(PERL) util/mkstack.pl -write
747
748util/libeay.num::
749 $(PERL) util/mkdef.pl crypto update
750
751util/ssleay.num::
752 $(PERL) util/mkdef.pl ssl update
753
754crypto/objects/obj_dat.h: crypto/objects/obj_dat.pl crypto/objects/obj_mac.h
755 $(PERL) crypto/objects/obj_dat.pl crypto/objects/obj_mac.h crypto/objects/obj_dat.h
756crypto/objects/obj_mac.h: crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num
757 $(PERL) crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num crypto/objects/obj_mac.h
758
759apps/openssl-vms.cnf: apps/openssl.cnf
760 $(PERL) VMS/VMSify-conf.pl < apps/openssl.cnf > apps/openssl-vms.cnf
761
762TABLE: Configure
763 (echo 'Output of `Configure TABLE'"':"; \
764 $(PERL) Configure TABLE) > TABLE
765
766update: depend errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_dat.h apps/openssl-vms.cnf TABLE
767
768# Build distribution tar-file. As the list of files returned by "find" is
769# pretty long, on several platforms a "too many arguments" error or similar
770# would occur. Therefore the list of files is temporarily stored into a file
771# and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal
772# tar does not support the --files-from option.
773tar:
774 find . -type d -print | xargs chmod 755
775 find . -type f -print | xargs chmod a+r
776 find . -type f -perm -0100 -print | xargs chmod a+x
777 find * \! -path CVS/\* \! -path \*/CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE | sort > ../$(TARFILE).list; \
778 $(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list -cvf - | \
779 tardy --user_number=0 --user_name=openssl \
780 --group_number=0 --group_name=openssl \
781 --prefix=openssl-$(VERSION) - |\
782 gzip --best >../$(TARFILE).gz; \
783 rm -f ../$(TARFILE).list; \
784 ls -l ../$(TARFILE).gz
785
786tar-snap:
787 @$(TAR) $(TARFLAGS) -cvf - \
788 `find * \! -path CVS/\* \! -path \*/CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE \! -name '*.o' \! -name '*.a' \! -name '*.so' \! -name '*.so.*' \! -name 'openssl' \! -name '*test' \! -name '.#*' \! -name '*~' | sort` |\
789 tardy --user_number=0 --user_name=openssl \
790 --group_number=0 --group_name=openssl \
791 --prefix=openssl-$(VERSION) - > ../$(TARFILE);\
792 ls -l ../$(TARFILE)
793
794dist:
795 $(PERL) Configure dist
796 @$(MAKE) dist_pem_h
797 @$(MAKE) SDIRS='${SDIRS}' clean
798 @$(MAKE) TAR='${TAR}' TARFLAGS='${TARFLAGS}' tar
799
800dist_pem_h:
801 (cd crypto/pem; $(MAKE) CC='${CC}' SDIRS='${SDIRS}' CFLAG='${CFLAG}' pem.h; $(MAKE) clean)
802
803install: all install_docs install_sw
804
805install_sw:
806 @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
807 $(INSTALL_PREFIX)$(INSTALLTOP)/lib \
808 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig \
809 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \
810 $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
811 $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \
812 $(INSTALL_PREFIX)$(OPENSSLDIR)/private
813 @headerlist="$(EXHEADER)"; for i in $$headerlist ;\
814 do \
815 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
816 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
817 done;
818 @for i in $(DIRS) ;\
819 do \
820 if [ -d "$$i" ]; then \
821 (cd $$i; echo "installing $$i..."; \
822 $(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}' install ); \
823 fi; \
824 done
825 @for i in $(LIBS) ;\
826 do \
827 if [ -f "$$i" ]; then \
828 ( echo installing $$i; \
829 cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
830 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
831 : ; \
832 else \
833 $(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
834 fi; \
835 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
836 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \
837 fi; \
838 done;
839 @if [ -n "$(SHARED_LIBS)" ]; then \
840 tmp="$(SHARED_LIBS)"; \
841 for i in $${tmp:-x}; \
842 do \
843 if [ -f "$$i" -o -f "$$i.a" ]; then \
844 ( echo installing $$i; \
845 if [ "$(PLATFORM)" != "Cygwin" ]; then \
846 cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
847 chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
848 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
849 else \
850 c=`echo $$i | sed 's/^lib\(.*\)\.dll/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \
851 cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
852 chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
853 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
854 cp $$i.a $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \
855 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \
856 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \
857 fi ); \
858 fi; \
859 done; \
860 ( here="`pwd`"; \
861 cd $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
862 set $(MAKE); \
863 $$1 -f $$here/Makefile link-shared ); \
864 if [ "$(INSTALLTOP)" != "/usr" ]; then \
865 echo 'OpenSSL shared libraries have been installed in:'; \
866 echo ' $(INSTALLTOP)'; \
867 echo ''; \
868 sed -e '1,/^$$/d' doc/openssl-shared.txt; \
869 fi; \
870 fi
871 @for i in $(SIGS) ;\
872 do \
873 if [ -f "$$i" ]; then \
874 ( echo installing $$i; \
875 cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
876 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
877 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \
878 fi; \
879 done;
880 cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig
881 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig/openssl.pc
882
883install_docs:
884 @$(PERL) $(TOP)/util/mkdir-p.pl \
885 $(INSTALL_PREFIX)$(MANDIR)/man1 \
886 $(INSTALL_PREFIX)$(MANDIR)/man3 \
887 $(INSTALL_PREFIX)$(MANDIR)/man5 \
888 $(INSTALL_PREFIX)$(MANDIR)/man7
889 @pod2man="`cd util; ./pod2mantest $(PERL)`"; \
890 here="`pwd`"; \
891 filecase=; \
892 if [ "$(PLATFORM)" = "DJGPP" -o "$(PLATFORM)" = "Cygwin" -o "$(PLATFORM)" = "mingw" ]; then \
893 filecase=-i; \
894 fi; \
895 for i in doc/apps/*.pod; do \
896 fn=`basename $$i .pod`; \
897 if [ "$$fn" = "config" ]; then sec=5; else sec=1; fi; \
898 echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \
899 (cd `$(PERL) util/dirname.pl $$i`; \
900 sh -c "$$pod2man \
901 --section=$$sec --center=OpenSSL \
902 --release=$(VERSION) `basename $$i`") \
903 > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
904 $(PERL) util/extract-names.pl < $$i | \
905 grep -v $$filecase "^$$fn\$$" | \
906 grep -v "[ ]" | \
907 (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
908 while read n; do \
909 $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
910 done); \
911 done; \
912 for i in doc/crypto/*.pod doc/ssl/*.pod; do \
913 fn=`basename $$i .pod`; \
914 if [ "$$fn" = "des_modes" ]; then sec=7; else sec=3; fi; \
915 echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \
916 (cd `$(PERL) util/dirname.pl $$i`; \
917 sh -c "$$pod2man \
918 --section=$$sec --center=OpenSSL \
919 --release=$(VERSION) `basename $$i`") \
920 > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
921 $(PERL) util/extract-names.pl < $$i | \
922 grep -v $$filecase "^$$fn\$$" | \
923 grep -v "[ ]" | \
924 (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
925 while read n; do \
926 $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
927 done); \
928 done
929
930# DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/src/lib/libssl/src/Makefile.org b/src/lib/libssl/src/Makefile.org
index a987a0298b..cc4000b148 100644
--- a/src/lib/libssl/src/Makefile.org
+++ b/src/lib/libssl/src/Makefile.org
@@ -101,6 +101,7 @@ PROCESSOR=
101 101
102# Set DES_ENC to des_enc.o if you want to use the C version 102# Set DES_ENC to des_enc.o if you want to use the C version
103#There are 4 x86 assember options. 103#There are 4 x86 assember options.
104FIPS_DES_ENC= des_enc.o fcrypt_b.o
104DES_ENC= asm/dx86-out.o asm/yx86-out.o 105DES_ENC= asm/dx86-out.o asm/yx86-out.o
105#DES_ENC= des_enc.o fcrypt_b.o # C 106#DES_ENC= des_enc.o fcrypt_b.o # C
106#DES_ENC= asm/dx86-elf.o asm/yx86-elf.o # elf 107#DES_ENC= asm/dx86-elf.o asm/yx86-elf.o # elf
@@ -153,6 +154,7 @@ MD5_ASM_OBJ= asm/mx86-out.o
153 154
154# Also need SHA1_ASM defined 155# Also need SHA1_ASM defined
155SHA1_ASM_OBJ= asm/sx86-out.o 156SHA1_ASM_OBJ= asm/sx86-out.o
157FIPS_SHA1_ASM_OBJ= asm/sx86-out.o
156#SHA1_ASM_OBJ= asm/sx86-elf.o # elf 158#SHA1_ASM_OBJ= asm/sx86-elf.o # elf
157#SHA1_ASM_OBJ= asm/sx86-sol.o # solaris 159#SHA1_ASM_OBJ= asm/sx86-sol.o # solaris
158#SHA1_ASM_OBJ= asm/sx86-out.o # a.out, FreeBSD 160#SHA1_ASM_OBJ= asm/sx86-out.o # a.out, FreeBSD
@@ -173,23 +175,24 @@ LIBKRB5=
173# we might set SHLIB_MARK to '$(SHARED_LIBS)'. 175# we might set SHLIB_MARK to '$(SHARED_LIBS)'.
174SHLIB_MARK= 176SHLIB_MARK=
175 177
176DIRS= crypto ssl $(SHLIB_MARK) apps test tools 178DIRS= crypto fips ssl $(SHLIB_MARK) sigs apps test tools
177SHLIBDIRS= crypto ssl 179SHLIBDIRS= crypto ssl
178 180
179# dirs in crypto to build 181# dirs in crypto to build
180SDIRS= \ 182SDIRS= objects \
181 md2 md4 md5 sha mdc2 hmac ripemd \ 183 md2 md4 md5 sha mdc2 hmac ripemd \
182 des rc2 rc4 rc5 idea bf cast \ 184 des rc2 rc4 rc5 idea bf cast \
183 bn ec rsa dsa dh dso engine aes \ 185 bn ec rsa dsa dh dso engine aes \
184 buffer bio stack lhash rand err objects \ 186 buffer bio stack lhash rand err \
185 evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 187 evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5
186 188
189FDIRS= sha1 rand des aes dsa rsa dh
190
187# tests to perform. "alltests" is a special word indicating that all tests 191# tests to perform. "alltests" is a special word indicating that all tests
188# should be performed. 192# should be performed.
189TESTS = alltests 193TESTS = alltests
190 194
191MAKEFILE= Makefile.ssl 195MAKEFILE= Makefile
192MAKE= make -f Makefile.ssl
193 196
194MANDIR=$(OPENSSLDIR)/man 197MANDIR=$(OPENSSLDIR)/man
195MAN1=1 198MAN1=1
@@ -202,6 +205,7 @@ ONEDIRS=out tmp
202EDIRS= times doc bugs util include certs ms shlib mt demos perl sf dep VMS 205EDIRS= times doc bugs util include certs ms shlib mt demos perl sf dep VMS
203WDIRS= windows 206WDIRS= windows
204LIBS= libcrypto.a libssl.a 207LIBS= libcrypto.a libssl.a
208SIGS= libcrypto.a.sha1
205SHARED_CRYPTO=libcrypto$(SHLIB_EXT) 209SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
206SHARED_SSL=libssl$(SHLIB_EXT) 210SHARED_SSL=libssl$(SHLIB_EXT)
207SHARED_LIBS= 211SHARED_LIBS=
@@ -219,14 +223,32 @@ HEADER= e_os.h
219# When we're prepared to use shared libraries in the programs we link here 223# When we're prepared to use shared libraries in the programs we link here
220# we might remove 'clean-shared' from the targets to perform at this stage 224# we might remove 'clean-shared' from the targets to perform at this stage
221 225
222all: Makefile.ssl sub_all openssl.pc 226all: Makefile sub_all openssl.pc
227
228sigs: $(SIGS)
229libcrypto.a.sha1: libcrypto.a
230 @if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
231 $(RANLIB) libcrypto.a; \
232 fips/sha1/fips_standalone_sha1 libcrypto.a > libcrypto.a.sha1; \
233 fi
223 234
224sub_all: 235sub_all:
225 @for i in $(DIRS); \ 236 @for i in $(DIRS); \
226 do \ 237 do \
227 if [ -d "$$i" ]; then \ 238 if [ -d "$$i" ]; then \
228 (cd $$i && echo "making all in $$i..." && \ 239 (cd $$i && echo "making all in $$i..." && \
229 $(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}' all ) || exit 1; \ 240 $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' AS='${AS}' ASFLAG='${ASFLAG}' SDIRS='$(SDIRS)' FDIRS='$(FDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' FIPS_DES_ENC='${FIPS_DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_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}' all ) || exit 1; \
241 else \
242 $(MAKE) $$i; \
243 fi; \
244 done;
245
246sub_target:
247 @for i in $(DIRS); \
248 do \
249 if [ -d "$$i" ]; then \
250 (cd $$i && echo "making $(TARGET) in $$i..." && \
251 $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' AS='${AS}' ASFLAG='${ASFLAG}' SDIRS='$(SDIRS)' FDIRS='$(FDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' FIPS_DES_ENC='${FIPS_DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_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}' TARGET='$(TARGET)' sub_target ) || exit 1; \
230 else \ 252 else \
231 $(MAKE) $$i; \ 253 $(MAKE) $$i; \
232 fi; \ 254 fi; \
@@ -312,11 +334,18 @@ do_cygwin-shared:
312 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 334 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
313 libs="$(LIBKRB5) $$libs"; \ 335 libs="$(LIBKRB5) $$libs"; \
314 fi; \ 336 fi; \
315 ( set -x; ${CC} -shared -o cyg$$i-$(SHLIB_VERSION_NUMBER).dll \ 337 shlib=cyg$${i}-$(SHLIB_VERSION_NUMBER).dll; \
338 [ "$(PLATFORM)" = "mingw" ] && shlib=$${i}eay32.dll; \
339 [ -f apps/$$shlib ] && rm apps/$$shlib; \
340 [ -f test/$$shlib ] && rm test/$$shlib; \
341 base=; [ $$i = "crypto" ] && base=-Wl,--image-base,0xFE00000; \
342 ( set -x; ${CC} ${SHARED_LDFLAGS} \
343 -shared $$base -o $$shlib \
316 -Wl,-Bsymbolic \ 344 -Wl,-Bsymbolic \
317 -Wl,--whole-archive lib$$i.a \ 345 -Wl,--whole-archive lib$$i.a \
318 -Wl,--out-implib,lib$$i.dll.a \ 346 -Wl,--out-implib,lib$$i.dll.a \
319 -Wl,--no-whole-archive $$libs ) || exit 1; \ 347 -Wl,--no-whole-archive $$libs ${EX_LIBS} ) || exit 1; \
348 cp -p $$shlib apps/; cp -p $$shlib test/; \
320 libs="-l$$i $$libs"; \ 349 libs="-l$$i $$libs"; \
321 done 350 done
322 351
@@ -392,6 +421,7 @@ do_solaris-shared:
392 set -x; ${CC} ${SHARED_LDFLAGS} -G -dy -z text \ 421 set -x; ${CC} ${SHARED_LDFLAGS} -G -dy -z text \
393 -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 422 -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
394 -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 423 -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
424 -Wl,-Bsymbolic \
395 $${MINUSZ}allextract lib$$i.a $${MINUSZ}defaultextract \ 425 $${MINUSZ}allextract lib$$i.a $${MINUSZ}defaultextract \
396 $$libs ${EX_LIBS} -lc ) || exit 1; \ 426 $$libs ${EX_LIBS} -lc ) || exit 1; \
397 libs="-l$$i $$libs"; \ 427 libs="-l$$i $$libs"; \
@@ -456,8 +486,8 @@ do_irix-shared:
456 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 486 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
457 libs="$(LIBKRB5) $$libs"; \ 487 libs="$(LIBKRB5) $$libs"; \
458 fi; \ 488 fi; \
459 ( WHOLELIB="-all lib$$i.a -notall"; \ 489 ( WHOLELIB="-all lib$$i.a -none"; \
460 (${CC} -v 2>&1 | grep gcc) > /dev/null && WHOLELIB="-Wl,-all,lib$$i.a,-notall"; \ 490 (${CC} -v 2>&1 | grep gcc) > /dev/null && WHOLELIB="-Wl,-all,lib$$i.a,-none"; \
461 set -x; ${CC} ${SHARED_LDFLAGS} \ 491 set -x; ${CC} ${SHARED_LDFLAGS} \
462 -shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 492 -shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
463 -Wl,-soname,lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 493 -Wl,-soname,lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
@@ -482,13 +512,18 @@ do_hpux-shared:
482 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 512 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
483 libs="$(LIBKRB5) $$libs"; \ 513 libs="$(LIBKRB5) $$libs"; \
484 fi; \ 514 fi; \
515 if expr $(PLATFORM) : '.*ia64' > /dev/null; then \
516 shlib=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
517 else \
518 shlib=lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
519 fi; \
520 [ -f $$shlib ] && rm -f $$shlib; \
485 ( set -x; /usr/ccs/bin/ld ${SHARED_LDFLAGS} \ 521 ( set -x; /usr/ccs/bin/ld ${SHARED_LDFLAGS} \
486 +vnocompatwarnings \ 522 +vnocompatwarnings \
487 -b -z +s \ 523 -b -z +s \
488 -o lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 524 -o $$shlib +h $$shlib \
489 +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \
490 -Fl lib$$i.a -ldld -lc ) || exit 1; \ 525 -Fl lib$$i.a -ldld -lc ) || exit 1; \
491 chmod a=rx lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}; \ 526 chmod a=rx $$shlib; \
492 done 527 done
493 528
494# This assumes that GNU utilities are *not* used 529# This assumes that GNU utilities are *not* used
@@ -505,12 +540,17 @@ do_hpux64-shared:
505 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \ 540 if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
506 libs="$(LIBKRB5) $$libs"; \ 541 libs="$(LIBKRB5) $$libs"; \
507 fi; \ 542 fi; \
543 if expr $(PLATFORM) : '.*ia64' > /dev/null; then \
544 shlib=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
545 else \
546 shlib=lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
547 fi; \
548 [ -f $$shlib ] && rm -f $$shlib; \
508 ( set -x; /usr/ccs/bin/ld ${SHARED_LDFLAGS} \ 549 ( set -x; /usr/ccs/bin/ld ${SHARED_LDFLAGS} \
509 -b -z \ 550 -b -z \
510 -o lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \ 551 -o $$shlib +h $$shlib \
511 +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \
512 +forceload lib$$i.a -ldl -lc ) || exit 1; \ 552 +forceload lib$$i.a -ldl -lc ) || exit 1; \
513 chmod a=rx lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}; \ 553 chmod a=rx $$shlib; \
514 done 554 done
515 555
516# The following method is said to work on all platforms. Tests will 556# The following method is said to work on all platforms. Tests will
@@ -551,6 +591,8 @@ do_aix-shared:
551 libs="$(LIBKRB5) $$libs"; \ 591 libs="$(LIBKRB5) $$libs"; \
552 fi; \ 592 fi; \
553 ( set -x; \ 593 ( set -x; \
594 OBJECT_MODE=`expr x${SHARED_LDFLAGS} : 'x\-[a-z]\([0-9]*\)'`; \
595 OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \
554 ld -r -o lib$$i.o $(ALLSYMSFLAG) lib$$i.a && \ 596 ld -r -o lib$$i.o $(ALLSYMSFLAG) lib$$i.a && \
555 ( nm -Pg lib$$i.o | grep ' [BD] ' | cut -f1 -d' ' > lib$$i.exp; \ 597 ( nm -Pg lib$$i.o | grep ' [BD] ' | cut -f1 -d' ' > lib$$i.exp; \
556 $(SHAREDCMD) $(SHAREDFLAGS) \ 598 $(SHAREDCMD) $(SHAREDFLAGS) \
@@ -577,7 +619,7 @@ do_reliantunix-shared:
577 libs="-l$$i $$libs"; \ 619 libs="-l$$i $$libs"; \
578 done 620 done
579 621
580openssl.pc: Makefile.ssl 622openssl.pc: Makefile
581 @ ( echo 'prefix=$(INSTALLTOP)'; \ 623 @ ( echo 'prefix=$(INSTALLTOP)'; \
582 echo 'exec_prefix=$${prefix}'; \ 624 echo 'exec_prefix=$${prefix}'; \
583 echo 'libdir=$${exec_prefix}/lib'; \ 625 echo 'libdir=$${exec_prefix}/lib'; \
@@ -590,8 +632,8 @@ openssl.pc: Makefile.ssl
590 echo 'Libs: -L$${libdir} -lssl -lcrypto $(LIBKRB5) $(EX_LIBS)'; \ 632 echo 'Libs: -L$${libdir} -lssl -lcrypto $(LIBKRB5) $(EX_LIBS)'; \
591 echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc 633 echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc
592 634
593Makefile.ssl: Makefile.org 635Makefile: Makefile.org
594 @echo "Makefile.ssl is older than Makefile.org." 636 @echo "Makefile is older than Makefile.org."
595 @echo "Reconfigure the source tree (via './config' or 'perl Configure'), please." 637 @echo "Reconfigure the source tree (via './config' or 'perl Configure'), please."
596 @false 638 @false
597 639
@@ -604,7 +646,7 @@ clean: libclean
604 do \ 646 do \
605 if [ -d "$$i" ]; then \ 647 if [ -d "$$i" ]; then \
606 (cd $$i && echo "making clean in $$i..." && \ 648 (cd $$i && echo "making clean in $$i..." && \
607 $(MAKE) SDIRS='${SDIRS}' clean ) || exit 1; \ 649 $(MAKE) EXE_EXT='${EXE_EXT}' SDIRS='${SDIRS}' clean ) || exit 1; \
608 rm -f $(LIBS); \ 650 rm -f $(LIBS); \
609 fi; \ 651 fi; \
610 done; 652 done;
@@ -621,7 +663,7 @@ makefile.one: files
621 sh util/do_ms.sh 663 sh util/do_ms.sh
622 664
623files: 665files:
624 $(PERL) $(TOP)/util/files.pl Makefile.ssl > $(TOP)/MINFO 666 $(PERL) $(TOP)/util/files.pl Makefile > $(TOP)/MINFO
625 @for i in $(DIRS) ;\ 667 @for i in $(DIRS) ;\
626 do \ 668 do \
627 if [ -d "$$i" ]; then \ 669 if [ -d "$$i" ]; then \
@@ -631,19 +673,18 @@ files:
631 done; 673 done;
632 674
633links: 675links:
634 @$(TOP)/util/point.sh Makefile.ssl Makefile
635 @$(PERL) $(TOP)/util/mkdir-p.pl include/openssl 676 @$(PERL) $(TOP)/util/mkdir-p.pl include/openssl
636 @$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER) 677 @$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER)
637 @for i in $(DIRS); do \ 678 @for i in $(DIRS); do \
638 if [ -d "$$i" ]; then \ 679 if [ -d "$$i" ]; then \
639 (cd $$i && echo "making links in $$i..." && \ 680 (cd $$i && echo "making links in $$i..." && \
640 $(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}' PERL='${PERL}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' links ) || exit 1; \ 681 $(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}' FIPS_DES_ENC='${FIPS_DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PERL='${PERL}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' links ) || exit 1; \
641 fi; \ 682 fi; \
642 done; 683 done;
643 684
644gentests: 685gentests:
645 @(cd test && echo "generating dummy tests (if needed)..." && \ 686 @(cd test && echo "generating dummy tests (if needed)..." && \
646 $(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 ); 687 $(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}' FIPS_DES_ENC='${FIPS_DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_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 );
647 688
648dclean: 689dclean:
649 rm -f *.bak 690 rm -f *.bak
@@ -657,29 +698,18 @@ dclean:
657 698
658rehash: rehash.time 699rehash: rehash.time
659rehash.time: certs 700rehash.time: certs
660 @(OPENSSL="`pwd`/apps/openssl"; OPENSSL_DEBUG_MEMORY=on; \ 701 @(OPENSSL="`pwd`/util/opensslwrap.sh"; \
661 export OPENSSL OPENSSL_DEBUG_MEMORY; \ 702 OPENSSL_DEBUG_MEMORY=on; \
662 LD_LIBRARY_PATH="`pwd`:$$LD_LIBRARY_PATH"; \ 703 export OPENSSL OPENSSL_DEBUG_MEMORY; \
663 DYLD_LIBRARY_PATH="`pwd`:$$DYLD_LIBRARY_PATH"; \ 704 $(PERL) tools/c_rehash certs)
664 SHLIB_PATH="`pwd`:$$SHLIB_PATH"; \
665 LIBPATH="`pwd`:$$LIBPATH"; \
666 if [ "$(PLATFORM)" = "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \
667 export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \
668 $(PERL) tools/c_rehash certs)
669 touch rehash.time 705 touch rehash.time
670 706
671test: tests 707test: tests
672 708
673tests: rehash 709tests: rehash
674 @(cd test && echo "testing..." && \ 710 @(cd test && echo "testing..." && \
675 $(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 ); 711 $(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}' FIPS_DES_ENC='${FIPS_DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_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 );
676 @LD_LIBRARY_PATH="`pwd`:$$LD_LIBRARY_PATH"; \ 712 util/shlib_wrap.sh apps/openssl version -a
677 DYLD_LIBRARY_PATH="`pwd`:$$DYLD_LIBRARY_PATH"; \
678 SHLIB_PATH="`pwd`:$$SHLIB_PATH"; \
679 LIBPATH="`pwd`:$$LIBPATH"; \
680 if [ "$(PLATFORM)" = "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \
681 export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \
682 apps/openssl version -a
683 713
684report: 714report:
685 @$(PERL) util/selftest.pl 715 @$(PERL) util/selftest.pl
@@ -703,13 +733,8 @@ lint:
703 done; 733 done;
704 734
705tags: 735tags:
706 @for i in $(DIRS) ;\ 736 rm -f TAGS
707 do \ 737 find . -name '[^.]*.[ch]' | xargs etags -a
708 if [ -d "$$i" ]; then \
709 (cd $$i && echo "making tags $$i..." && \
710 $(MAKE) SDIRS='${SDIRS}' tags ) || exit 1; \
711 fi; \
712 done;
713 738
714errors: 739errors:
715 $(PERL) util/mkerr.pl -recurse -write 740 $(PERL) util/mkerr.pl -recurse -write
@@ -729,11 +754,14 @@ crypto/objects/obj_dat.h: crypto/objects/obj_dat.pl crypto/objects/obj_mac.h
729crypto/objects/obj_mac.h: crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num 754crypto/objects/obj_mac.h: crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num
730 $(PERL) crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num crypto/objects/obj_mac.h 755 $(PERL) crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num crypto/objects/obj_mac.h
731 756
757apps/openssl-vms.cnf: apps/openssl.cnf
758 $(PERL) VMS/VMSify-conf.pl < apps/openssl.cnf > apps/openssl-vms.cnf
759
732TABLE: Configure 760TABLE: Configure
733 (echo 'Output of `Configure TABLE'"':"; \ 761 (echo 'Output of `Configure TABLE'"':"; \
734 $(PERL) Configure TABLE) > TABLE 762 $(PERL) Configure TABLE) > TABLE
735 763
736update: depend errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_dat.h TABLE 764update: depend errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_dat.h apps/openssl-vms.cnf TABLE
737 765
738# Build distribution tar-file. As the list of files returned by "find" is 766# Build distribution tar-file. As the list of files returned by "find" is
739# pretty long, on several platforms a "too many arguments" error or similar 767# pretty long, on several platforms a "too many arguments" error or similar
@@ -770,16 +798,17 @@ dist:
770dist_pem_h: 798dist_pem_h:
771 (cd crypto/pem; $(MAKE) CC='${CC}' SDIRS='${SDIRS}' CFLAG='${CFLAG}' pem.h; $(MAKE) clean) 799 (cd crypto/pem; $(MAKE) CC='${CC}' SDIRS='${SDIRS}' CFLAG='${CFLAG}' pem.h; $(MAKE) clean)
772 800
773install: all install_docs 801install: all install_docs install_sw
802
803install_sw:
774 @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \ 804 @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
775 $(INSTALL_PREFIX)$(INSTALLTOP)/lib \ 805 $(INSTALL_PREFIX)$(INSTALLTOP)/lib \
776 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig \ 806 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig \
777 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \ 807 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \
778 $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \ 808 $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
779 $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \ 809 $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \
780 $(INSTALL_PREFIX)$(OPENSSLDIR)/private \ 810 $(INSTALL_PREFIX)$(OPENSSLDIR)/private
781 $(INSTALL_PREFIX)$(OPENSSLDIR)/lib 811 @headerlist="$(EXHEADER)"; for i in $$headerlist ;\
782 @for i in $(EXHEADER) ;\
783 do \ 812 do \
784 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ 813 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
785 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ 814 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
@@ -796,7 +825,11 @@ install: all install_docs
796 if [ -f "$$i" ]; then \ 825 if [ -f "$$i" ]; then \
797 ( echo installing $$i; \ 826 ( echo installing $$i; \
798 cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 827 cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
799 $(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 828 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
829 : ; \
830 else \
831 $(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
832 fi; \
800 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ 833 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
801 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \ 834 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \
802 fi; \ 835 fi; \
@@ -833,6 +866,15 @@ install: all install_docs
833 sed -e '1,/^$$/d' doc/openssl-shared.txt; \ 866 sed -e '1,/^$$/d' doc/openssl-shared.txt; \
834 fi; \ 867 fi; \
835 fi 868 fi
869 @for i in $(SIGS) ;\
870 do \
871 if [ -f "$$i" ]; then \
872 ( echo installing $$i; \
873 cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
874 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
875 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \
876 fi; \
877 done;
836 cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig 878 cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig
837 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig/openssl.pc 879 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig/openssl.pc
838 880
@@ -845,7 +887,7 @@ install_docs:
845 @pod2man="`cd util; ./pod2mantest $(PERL)`"; \ 887 @pod2man="`cd util; ./pod2mantest $(PERL)`"; \
846 here="`pwd`"; \ 888 here="`pwd`"; \
847 filecase=; \ 889 filecase=; \
848 if [ "$(PLATFORM)" = "DJGPP" -o "$(PLATFORM)" = "Cygwin" ]; then \ 890 if [ "$(PLATFORM)" = "DJGPP" -o "$(PLATFORM)" = "Cygwin" -o "$(PLATFORM)" = "mingw" ]; then \
849 filecase=-i; \ 891 filecase=-i; \
850 fi; \ 892 fi; \
851 for i in doc/apps/*.pod; do \ 893 for i in doc/apps/*.pod; do \
diff --git a/src/lib/libssl/src/NEWS b/src/lib/libssl/src/NEWS
index 4c1ba0a241..8e1ce65a5f 100644
--- a/src/lib/libssl/src/NEWS
+++ b/src/lib/libssl/src/NEWS
@@ -5,12 +5,34 @@
5 This file gives a brief overview of the major changes between each OpenSSL 5 This file gives a brief overview of the major changes between each OpenSSL
6 release. For more details please read the CHANGES file. 6 release. For more details please read the CHANGES file.
7 7
8 Major changes between OpenSSL 0.9.7f and OpenSSL 0.9.7g:
9
10 o More compilation issues fixed.
11 o Adaptation to more modern Kerberos API.
12 o Enhanced or corrected configuration for Solaris64, Mingw and Cygwin.
13 o Enhanced x86_64 assembler BIGNUM module.
14 o More constification.
15 o Added processing of proxy certificates (RFC 3820).
16
17 Major changes between OpenSSL 0.9.7e and OpenSSL 0.9.7f:
18
19 o Several compilation issues fixed.
20 o Many memory allocation failure checks added.
21 o Improved comparison of X509 Name type.
22 o Mandatory basic checks on certificates.
23 o Performance improvements.
24
25 Major changes between OpenSSL 0.9.7d and OpenSSL 0.9.7e:
26
27 o Fix race condition in CRL checking code.
28 o Fixes to PKCS#7 (S/MIME) code.
29
8 Major changes between OpenSSL 0.9.7c and OpenSSL 0.9.7d: 30 Major changes between OpenSSL 0.9.7c and OpenSSL 0.9.7d:
9 31
10 o Security: Fix Kerberos ciphersuite SSL/TLS handshaking bug 32 o Security: Fix Kerberos ciphersuite SSL/TLS handshaking bug
11 o Security: Fix null-pointer assignment in do_change_cipher_spec() 33 o Security: Fix null-pointer assignment in do_change_cipher_spec()
12 o Allow multiple active certificates with same subject in CA index 34 o Allow multiple active certificates with same subject in CA index
13 o Multiple X590 verification fixes 35 o Multiple X509 verification fixes
14 o Speed up HMAC and other operations 36 o Speed up HMAC and other operations
15 37
16 Major changes between OpenSSL 0.9.7b and OpenSSL 0.9.7c: 38 Major changes between OpenSSL 0.9.7b and OpenSSL 0.9.7c:
diff --git a/src/lib/libssl/src/PROBLEMS b/src/lib/libssl/src/PROBLEMS
index 85e96a5ebe..cbefadb40e 100644
--- a/src/lib/libssl/src/PROBLEMS
+++ b/src/lib/libssl/src/PROBLEMS
@@ -12,8 +12,8 @@ along the whole library path before it bothers looking for .a libraries. This
12means that -L switches won't matter unless OpenSSL is built with shared 12means that -L switches won't matter unless OpenSSL is built with shared
13library support. 13library support.
14 14
15The workaround may be to change the following lines in apps/Makefile.ssl and 15The workaround may be to change the following lines in apps/Makefile and
16test/Makefile.ssl: 16test/Makefile:
17 17
18 LIBCRYPTO=-L.. -lcrypto 18 LIBCRYPTO=-L.. -lcrypto
19 LIBSSL=-L.. -lssl 19 LIBSSL=-L.. -lssl
@@ -90,15 +90,6 @@ failures in other parts of the code.
90 90
91Workaround: modify the target to +O2 when building with no-asm. 91Workaround: modify the target to +O2 when building with no-asm.
92 92
93* Poor support for AIX shared builds.
94
95do_aix-shared rule is not flexible enough to parameterize through a
96config-line. './Configure aix43-cc shared' is working, but not
97'./Configure aix64-gcc shared'. In latter case make fails to create shared
98libraries. It's possible to build 64-bit shared libraries by running
99'env OBJECT_MODE=64 make', but we need more elegant solution. Preferably one
100supporting even gcc shared builds. See RT#463 for background information.
101
102* Problems building shared libraries on SCO OpenServer Release 5.0.6 93* Problems building shared libraries on SCO OpenServer Release 5.0.6
103 with gcc 2.95.3 94 with gcc 2.95.3
104 95
diff --git a/src/lib/libssl/src/README b/src/lib/libssl/src/README
index f72a21036f..c52c2d94bd 100644
--- a/src/lib/libssl/src/README
+++ b/src/lib/libssl/src/README
@@ -1,7 +1,7 @@
1 1
2 OpenSSL 0.9.7d 17 Mar 2004 2 OpenSSL 0.9.7g 11 April 2005
3 3
4 Copyright (c) 1998-2004 The OpenSSL Project 4 Copyright (c) 1998-2005 The OpenSSL Project
5 Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson 5 Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
6 All rights reserved. 6 All rights reserved.
7 7
@@ -173,11 +173,17 @@
173 textual explanation of what your patch does. 173 textual explanation of what your patch does.
174 174
175 Note: For legal reasons, contributions from the US can be accepted only 175 Note: For legal reasons, contributions from the US can be accepted only
176 if a TSA notification and a copy of the patch is sent to crypt@bis.doc.gov; 176 if a TSU notification and a copy of the patch are sent to crypt@bis.doc.gov
177 see http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic] 177 (formerly BXA) with a copy to the ENC Encryption Request Coordinator;
178 and http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (EAR Section 740.13(e)). 178 please take some time to look at
179 179 http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic]
180 The preferred format for changes is "diff -u" output. You might 180 and
181 http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (EAR Section 740.13(e))
182 for the details. If "your encryption source code is too large to serve as
183 an email attachment", they are glad to receive it by fax instead; hope you
184 have a cheap long-distance plan.
185
186 Our preferred format for changes is "diff -u" output. You might
181 generate it like this: 187 generate it like this:
182 188
183 # cd openssl-work 189 # cd openssl-work
diff --git a/src/lib/libssl/src/VMS/VMSify-conf.pl b/src/lib/libssl/src/VMS/VMSify-conf.pl
new file mode 100644
index 0000000000..d3be6a29e7
--- /dev/null
+++ b/src/lib/libssl/src/VMS/VMSify-conf.pl
@@ -0,0 +1,34 @@
1#! /usr/bin/perl
2
3use strict;
4use warnings;
5
6my @directory_vars = ( "dir", "certs", "crl_dir", "new_certs_dir" );
7my @file_vars = ( "database", "certificate", "serial", "crlnumber",
8 "crl", "private_key", "RANDFILE" );
9while(<STDIN>) {
10 chomp;
11 foreach my $d (@directory_vars) {
12 if (/^(\s*\#?\s*${d}\s*=\s*)\.\/([^\s\#]*)([\s\#].*)$/) {
13 $_ = "$1sys\\\$disk:\[.$2$3";
14 } elsif (/^(\s*\#?\s*${d}\s*=\s*)(\w[^\s\#]*)([\s\#].*)$/) {
15 $_ = "$1sys\\\$disk:\[.$2$3";
16 }
17 s/^(\s*\#?\s*${d}\s*=\s*\$\w+)\/([^\s\#]*)([\s\#].*)$/$1.$2\]$3/;
18 while(/^(\s*\#?\s*${d}\s*=\s*(\$\w+\.|sys\\\$disk:\[\.)[\w\.]+)\/([^\]]*)\](.*)$/) {
19 $_ = "$1.$3]$4";
20 }
21 }
22 foreach my $f (@file_vars) {
23 s/^(\s*\#?\s*${f}\s*=\s*)\.\/(.*)$/$1sys\\\$disk:\[\/$2/;
24 while(/^(\s*\#?\s*${f}\s*=\s*(\$\w+|sys\\\$disk:\[)[^\/]*)\/(\w+\/[^\s\#]*)([\s\#].*)$/) {
25 $_ = "$1.$3$4";
26 }
27 if (/^(\s*\#?\s*${f}\s*=\s*(\$\w+|sys\\\$disk:\[)[^\/]*)\/(\w+)([\s\#].*)$/) {
28 $_ = "$1]$3.$4";
29 } elsif (/^(\s*\#?\s*${f}\s*=\s*(\$\w+|sys\\\$disk:\[)[^\/]*)\/([^\s\#]*)([\s\#].*)$/) {
30 $_ = "$1]$3$4";
31 }
32 }
33 print $_,"\n";
34}
diff --git a/src/lib/libssl/src/VMS/mkshared.com b/src/lib/libssl/src/VMS/mkshared.com
index afdc85bbe0..19f3821bc6 100644
--- a/src/lib/libssl/src/VMS/mkshared.com
+++ b/src/lib/libssl/src/VMS/mkshared.com
@@ -266,6 +266,14 @@ $ falsesum = falsesum + 1
266$ endif 266$ endif
267$ if plat_entry .eqs. "VMS" then truesum = truesum + 1 267$ if plat_entry .eqs. "VMS" then truesum = truesum + 1
268$ if plat_entry .eqs. "!VMS" then falsesum = falsesum + 1 268$ if plat_entry .eqs. "!VMS" then falsesum = falsesum + 1
269$ if f$trnlnm("OPENSSL_FIPS") .nes. ""
270$ then
271$ if plat_entry .eqs. "OPENSSL_FIPS" then truesum = truesum + 1
272$ if plat_entry .eqs. "!OPENSSL_FIPS" then falsesum = falsesum + 1
273$ else
274$ if plat_entry .eqs. "OPENSSL_FIPS" then falsesum = falsesum + 1
275$ if plat_entry .eqs. "!OPENSSL_FIPS" then truesum = truesum + 1
276$ endif
269$ goto loop1 277$ goto loop1
270$ endif 278$ endif
271$ endloop1: 279$ endloop1:
diff --git a/src/lib/libssl/src/apps/CA.pl b/src/lib/libssl/src/apps/CA.pl
index 8b2ce7ea42..4f3ba0f08c 100644
--- a/src/lib/libssl/src/apps/CA.pl
+++ b/src/lib/libssl/src/apps/CA.pl
@@ -1,4 +1,4 @@
1#!/usr/local/bin/perl 1#!/usr/bin/perl
2# 2#
3# CA - wrapper around ca to make it easier to use ... basically ca requires 3# CA - wrapper around ca to make it easier to use ... basically ca requires
4# some setup stuff to be done before you can use it and this makes 4# some setup stuff to be done before you can use it and this makes
@@ -36,13 +36,21 @@
36# default openssl.cnf file has setup as per the following 36# default openssl.cnf file has setup as per the following
37# demoCA ... where everything is stored 37# demoCA ... where everything is stored
38 38
39my $openssl;
40if(defined $ENV{OPENSSL}) {
41 $openssl = $ENV{OPENSSL};
42} else {
43 $openssl = "openssl";
44 $ENV{OPENSSL} = $openssl;
45}
46
39$SSLEAY_CONFIG=$ENV{"SSLEAY_CONFIG"}; 47$SSLEAY_CONFIG=$ENV{"SSLEAY_CONFIG"};
40$DAYS="-days 365"; 48$DAYS="-days 365";
41$REQ="openssl req $SSLEAY_CONFIG"; 49$REQ="$openssl req $SSLEAY_CONFIG";
42$CA="openssl ca $SSLEAY_CONFIG"; 50$CA="$openssl ca $SSLEAY_CONFIG";
43$VERIFY="openssl verify"; 51$VERIFY="$openssl verify";
44$X509="openssl x509"; 52$X509="$openssl x509";
45$PKCS12="openssl pkcs12"; 53$PKCS12="$openssl pkcs12";
46 54
47$CATOP="./demoCA"; 55$CATOP="./demoCA";
48$CAKEY="cakey.pem"; 56$CAKEY="cakey.pem";
@@ -82,9 +90,6 @@ foreach (@ARGV) {
82 mkdir "${CATOP}/crl", $DIRMODE ; 90 mkdir "${CATOP}/crl", $DIRMODE ;
83 mkdir "${CATOP}/newcerts", $DIRMODE; 91 mkdir "${CATOP}/newcerts", $DIRMODE;
84 mkdir "${CATOP}/private", $DIRMODE; 92 mkdir "${CATOP}/private", $DIRMODE;
85 open OUT, ">${CATOP}/serial";
86 print OUT "01\n";
87 close OUT;
88 open OUT, ">${CATOP}/index.txt"; 93 open OUT, ">${CATOP}/index.txt";
89 close OUT; 94 close OUT;
90 } 95 }
@@ -106,6 +111,10 @@ foreach (@ARGV) {
106 $RET=$?; 111 $RET=$?;
107 } 112 }
108 } 113 }
114 if (! -f "${CATOP}/serial" ) {
115 system ("$X509 -in ${CATOP}/$CACERT -noout "
116 . "-next_serial -out ${CATOP}/serial");
117 }
109 } elsif (/^-pkcs12$/) { 118 } elsif (/^-pkcs12$/) {
110 my $cname = $ARGV[1]; 119 my $cname = $ARGV[1];
111 $cname = "My Certificate" unless defined $cname; 120 $cname = "My Certificate" unless defined $cname;
diff --git a/src/lib/libssl/src/apps/CA.pl.in b/src/lib/libssl/src/apps/CA.pl.in
index 8b2ce7ea42..39f267d313 100644
--- a/src/lib/libssl/src/apps/CA.pl.in
+++ b/src/lib/libssl/src/apps/CA.pl.in
@@ -36,13 +36,21 @@
36# default openssl.cnf file has setup as per the following 36# default openssl.cnf file has setup as per the following
37# demoCA ... where everything is stored 37# demoCA ... where everything is stored
38 38
39my $openssl;
40if(defined $ENV{OPENSSL}) {
41 $openssl = $ENV{OPENSSL};
42} else {
43 $openssl = "openssl";
44 $ENV{OPENSSL} = $openssl;
45}
46
39$SSLEAY_CONFIG=$ENV{"SSLEAY_CONFIG"}; 47$SSLEAY_CONFIG=$ENV{"SSLEAY_CONFIG"};
40$DAYS="-days 365"; 48$DAYS="-days 365";
41$REQ="openssl req $SSLEAY_CONFIG"; 49$REQ="$openssl req $SSLEAY_CONFIG";
42$CA="openssl ca $SSLEAY_CONFIG"; 50$CA="$openssl ca $SSLEAY_CONFIG";
43$VERIFY="openssl verify"; 51$VERIFY="$openssl verify";
44$X509="openssl x509"; 52$X509="$openssl x509";
45$PKCS12="openssl pkcs12"; 53$PKCS12="$openssl pkcs12";
46 54
47$CATOP="./demoCA"; 55$CATOP="./demoCA";
48$CAKEY="cakey.pem"; 56$CAKEY="cakey.pem";
@@ -82,9 +90,6 @@ foreach (@ARGV) {
82 mkdir "${CATOP}/crl", $DIRMODE ; 90 mkdir "${CATOP}/crl", $DIRMODE ;
83 mkdir "${CATOP}/newcerts", $DIRMODE; 91 mkdir "${CATOP}/newcerts", $DIRMODE;
84 mkdir "${CATOP}/private", $DIRMODE; 92 mkdir "${CATOP}/private", $DIRMODE;
85 open OUT, ">${CATOP}/serial";
86 print OUT "01\n";
87 close OUT;
88 open OUT, ">${CATOP}/index.txt"; 93 open OUT, ">${CATOP}/index.txt";
89 close OUT; 94 close OUT;
90 } 95 }
@@ -106,6 +111,10 @@ foreach (@ARGV) {
106 $RET=$?; 111 $RET=$?;
107 } 112 }
108 } 113 }
114 if (! -f "${CATOP}/serial" ) {
115 system ("$X509 -in ${CATOP}/$CACERT -noout "
116 . "-next_serial -out ${CATOP}/serial");
117 }
109 } elsif (/^-pkcs12$/) { 118 } elsif (/^-pkcs12$/) {
110 my $cname = $ARGV[1]; 119 my $cname = $ARGV[1];
111 $cname = "My Certificate" unless defined $cname; 120 $cname = "My Certificate" unless defined $cname;
diff --git a/src/lib/libssl/src/apps/CA.sh b/src/lib/libssl/src/apps/CA.sh
index d9f3069fb2..030a11fc25 100644
--- a/src/lib/libssl/src/apps/CA.sh
+++ b/src/lib/libssl/src/apps/CA.sh
@@ -30,11 +30,13 @@
30# default openssl.cnf file has setup as per the following 30# default openssl.cnf file has setup as per the following
31# demoCA ... where everything is stored 31# demoCA ... where everything is stored
32 32
33if [ -z "$OPENSSL" ]; then OPENSSL=openssl; fi
34
33DAYS="-days 365" 35DAYS="-days 365"
34REQ="openssl req $SSLEAY_CONFIG" 36REQ="$OPENSSL req $SSLEAY_CONFIG"
35CA="openssl ca $SSLEAY_CONFIG" 37CA="$OPENSSL ca $SSLEAY_CONFIG"
36VERIFY="openssl verify" 38VERIFY="$OPENSSL verify"
37X509="openssl x509" 39X509="$OPENSSL x509"
38 40
39CATOP=./demoCA 41CATOP=./demoCA
40CAKEY=./cakey.pem 42CAKEY=./cakey.pem
diff --git a/src/lib/libssl/src/apps/Makefile b/src/lib/libssl/src/apps/Makefile
new file mode 100644
index 0000000000..93dcf765e6
--- /dev/null
+++ b/src/lib/libssl/src/apps/Makefile
@@ -0,0 +1,1168 @@
1#
2# apps/Makefile
3#
4
5DIR= apps
6TOP= ..
7CC= cc
8INCLUDES= -I$(TOP) -I../include $(KRB5_INCLUDES)
9CFLAG= -g -static
10INSTALL_PREFIX=
11INSTALLTOP= /usr/local/ssl
12OPENSSLDIR= /usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16PERL= perl
17RM= rm -f
18# KRB5 stuff
19KRB5_INCLUDES=
20LIBKRB5=
21
22PEX_LIBS=
23EX_LIBS=
24EXE_EXT=
25
26SHLIB_TARGET=
27
28CFLAGS= -DMONOLITH $(INCLUDES) $(CFLAG)
29
30GENERAL=Makefile makeapps.com install.com
31
32DLIBCRYPTO=../libcrypto.a
33DLIBSSL=../libssl.a
34LIBCRYPTO=-L.. -lcrypto
35LIBSSL=-L.. -lssl
36
37PROGRAM= openssl
38
39SCRIPTS=CA.sh CA.pl
40
41EXE= $(PROGRAM)$(EXE_EXT)
42
43E_EXE= verify asn1pars req dgst dh dhparam enc passwd gendh errstr \
44 ca crl rsa rsautl dsa dsaparam \
45 x509 genrsa gendsa s_server s_client speed \
46 s_time version pkcs7 crl2pkcs7 sess_id ciphers nseq pkcs12 \
47 pkcs8 spkac smime rand engine ocsp prime
48
49PROGS= $(PROGRAM).c
50
51A_OBJ=apps.o
52A_SRC=apps.c
53S_OBJ= s_cb.o s_socket.o
54S_SRC= s_cb.c s_socket.c
55RAND_OBJ=app_rand.o
56RAND_SRC=app_rand.c
57
58E_OBJ= verify.o asn1pars.o req.o dgst.o dh.o dhparam.o enc.o passwd.o gendh.o errstr.o \
59 ca.o pkcs7.o crl2p7.o crl.o \
60 rsa.o rsautl.o dsa.o dsaparam.o \
61 x509.o genrsa.o gendsa.o s_server.o s_client.o speed.o \
62 s_time.o $(A_OBJ) $(S_OBJ) $(RAND_OBJ) version.o sess_id.o \
63 ciphers.o nseq.o pkcs12.o pkcs8.o spkac.o smime.o rand.o engine.o ocsp.o prime.o
64
65E_SRC= verify.c asn1pars.c req.c dgst.c dh.c enc.c passwd.c gendh.c errstr.c ca.c \
66 pkcs7.c crl2p7.c crl.c \
67 rsa.c rsautl.c dsa.c dsaparam.c \
68 x509.c genrsa.c gendsa.c s_server.c s_client.c speed.c \
69 s_time.c $(A_SRC) $(S_SRC) $(RAND_SRC) version.c sess_id.c \
70 ciphers.c nseq.c pkcs12.c pkcs8.c spkac.c smime.c rand.c engine.c ocsp.c prime.c
71
72SRC=$(E_SRC)
73
74EXHEADER=
75HEADER= apps.h progs.h s_apps.h \
76 testdsa.h testrsa.h \
77 $(EXHEADER)
78
79ALL= $(GENERAL) $(SRC) $(HEADER)
80
81top:
82 @(cd ..; $(MAKE) DIRS=$(DIR) all)
83
84all: exe
85
86exe: $(EXE)
87
88req: sreq.o $(A_OBJ) $(DLIBCRYPTO)
89 LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
90 $(CC) -o req $(CFLAG) sreq.o $(A_OBJ) $(RAND_OBJ) $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS)
91
92sreq.o: req.c
93 $(CC) -c $(INCLUDES) $(CFLAG) -o sreq.o req.c
94
95files:
96 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
97
98install:
99 @for i in $(EXE); \
100 do \
101 (echo installing $$i; \
102 cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
103 chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
104 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i ); \
105 done;
106 @for i in $(SCRIPTS); \
107 do \
108 (echo installing $$i; \
109 cp $$i $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$i.new; \
110 chmod 755 $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$i.new; \
111 mv -f $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$i.new $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$i ); \
112 done
113 @cp openssl.cnf $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf.new; \
114 chmod 644 $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf.new; \
115 mv -f $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf.new $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf
116
117tags:
118 ctags $(SRC)
119
120tests:
121
122links:
123
124lint:
125 lint -DLINT $(INCLUDES) $(SRC)>fluff
126
127depend:
128 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(SRC)
129
130dclean:
131 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
132 mv -f Makefile.new $(MAKEFILE)
133
134clean:
135 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff $(EXE)
136 rm -f req
137
138$(DLIBSSL):
139 (cd ..; $(MAKE) DIRS=ssl all)
140
141$(DLIBCRYPTO):
142 (cd ..; $(MAKE) DIRS=crypto all)
143
144$(EXE): progs.h $(E_OBJ) $(PROGRAM).o $(DLIBCRYPTO) $(DLIBSSL)
145 $(RM) $(EXE)
146 if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
147 set -x; $${CC:-$(CC)} -o $(EXE) $(CFLAGS) $(PROGRAM).o $(E_OBJ) $(PEX_LIBS) $(DLIBSSL) $(LIBKRB5) $(DLIBCRYPTO) $(EX_LIBS) ; \
148 elif [ -z "$(SHARED_LIBS)" ]; then \
149 set -x; $${CC:-$(CC)} -o $(EXE) $(CFLAGS) $(PROGRAM).o $(E_OBJ) $(PEX_LIBS) $(LIBSSL) $(LIBKRB5) $(LIBCRYPTO) $(EX_LIBS) ; \
150 else \
151 set -x; LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
152 $(CC) -o $(EXE) $(CFLAGS) $(PROGRAM).o $(E_OBJ) $(PEX_LIBS) $(LIBSSL) $(LIBKRB5) $(LIBCRYPTO) $(EX_LIBS) ; \
153 fi
154 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
155 TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a $(EXE); \
156 fi
157 -(cd ..; \
158 OPENSSL="`pwd`/util/opensslwrap.sh"; export OPENSSL; \
159 $(PERL) tools/c_rehash certs)
160
161progs.h: progs.pl
162 $(PERL) progs.pl $(E_EXE) >progs.h
163 $(RM) $(PROGRAM).o
164
165# DO NOT DELETE THIS LINE -- make depend depends on it.
166
167app_rand.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
168app_rand.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
169app_rand.o: ../include/openssl/bn.h ../include/openssl/buffer.h
170app_rand.o: ../include/openssl/cast.h ../include/openssl/conf.h
171app_rand.o: ../include/openssl/crypto.h ../include/openssl/des.h
172app_rand.o: ../include/openssl/des_old.h ../include/openssl/dh.h
173app_rand.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
174app_rand.o: ../include/openssl/engine.h ../include/openssl/err.h
175app_rand.o: ../include/openssl/evp.h ../include/openssl/idea.h
176app_rand.o: ../include/openssl/lhash.h ../include/openssl/md2.h
177app_rand.o: ../include/openssl/md4.h ../include/openssl/md5.h
178app_rand.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
179app_rand.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
180app_rand.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
181app_rand.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
182app_rand.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
183app_rand.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
184app_rand.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
185app_rand.o: ../include/openssl/sha.h ../include/openssl/stack.h
186app_rand.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
187app_rand.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
188app_rand.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h app_rand.c
189app_rand.o: apps.h
190apps.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
191apps.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
192apps.o: ../include/openssl/bn.h ../include/openssl/buffer.h
193apps.o: ../include/openssl/cast.h ../include/openssl/conf.h
194apps.o: ../include/openssl/crypto.h ../include/openssl/des.h
195apps.o: ../include/openssl/des_old.h ../include/openssl/dh.h
196apps.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
197apps.o: ../include/openssl/engine.h ../include/openssl/err.h
198apps.o: ../include/openssl/evp.h ../include/openssl/idea.h
199apps.o: ../include/openssl/lhash.h ../include/openssl/md2.h
200apps.o: ../include/openssl/md4.h ../include/openssl/md5.h
201apps.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
202apps.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
203apps.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
204apps.o: ../include/openssl/pem.h ../include/openssl/pem2.h
205apps.o: ../include/openssl/pkcs12.h ../include/openssl/pkcs7.h
206apps.o: ../include/openssl/rand.h ../include/openssl/rc2.h
207apps.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
208apps.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
209apps.o: ../include/openssl/safestack.h ../include/openssl/sha.h
210apps.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
211apps.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
212apps.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
213apps.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.c apps.h
214asn1pars.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
215asn1pars.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
216asn1pars.o: ../include/openssl/bn.h ../include/openssl/buffer.h
217asn1pars.o: ../include/openssl/cast.h ../include/openssl/conf.h
218asn1pars.o: ../include/openssl/crypto.h ../include/openssl/des.h
219asn1pars.o: ../include/openssl/des_old.h ../include/openssl/dh.h
220asn1pars.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
221asn1pars.o: ../include/openssl/engine.h ../include/openssl/err.h
222asn1pars.o: ../include/openssl/evp.h ../include/openssl/idea.h
223asn1pars.o: ../include/openssl/lhash.h ../include/openssl/md2.h
224asn1pars.o: ../include/openssl/md4.h ../include/openssl/md5.h
225asn1pars.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
226asn1pars.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
227asn1pars.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
228asn1pars.o: ../include/openssl/pem.h ../include/openssl/pem2.h
229asn1pars.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
230asn1pars.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
231asn1pars.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
232asn1pars.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
233asn1pars.o: ../include/openssl/sha.h ../include/openssl/stack.h
234asn1pars.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
235asn1pars.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
236asn1pars.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
237asn1pars.o: asn1pars.c
238ca.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
239ca.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
240ca.o: ../include/openssl/bn.h ../include/openssl/buffer.h
241ca.o: ../include/openssl/cast.h ../include/openssl/conf.h
242ca.o: ../include/openssl/crypto.h ../include/openssl/des.h
243ca.o: ../include/openssl/des_old.h ../include/openssl/dh.h
244ca.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
245ca.o: ../include/openssl/engine.h ../include/openssl/err.h
246ca.o: ../include/openssl/evp.h ../include/openssl/idea.h
247ca.o: ../include/openssl/lhash.h ../include/openssl/md2.h
248ca.o: ../include/openssl/md4.h ../include/openssl/md5.h
249ca.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
250ca.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
251ca.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
252ca.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
253ca.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
254ca.o: ../include/openssl/rand.h ../include/openssl/rc2.h
255ca.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
256ca.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
257ca.o: ../include/openssl/safestack.h ../include/openssl/sha.h
258ca.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
259ca.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
260ca.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
261ca.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h ca.c
262ciphers.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
263ciphers.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
264ciphers.o: ../include/openssl/bn.h ../include/openssl/buffer.h
265ciphers.o: ../include/openssl/cast.h ../include/openssl/comp.h
266ciphers.o: ../include/openssl/conf.h ../include/openssl/crypto.h
267ciphers.o: ../include/openssl/des.h ../include/openssl/des_old.h
268ciphers.o: ../include/openssl/dh.h ../include/openssl/dsa.h
269ciphers.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
270ciphers.o: ../include/openssl/err.h ../include/openssl/evp.h
271ciphers.o: ../include/openssl/idea.h ../include/openssl/kssl.h
272ciphers.o: ../include/openssl/lhash.h ../include/openssl/md2.h
273ciphers.o: ../include/openssl/md4.h ../include/openssl/md5.h
274ciphers.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
275ciphers.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
276ciphers.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
277ciphers.o: ../include/openssl/pem.h ../include/openssl/pem2.h
278ciphers.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
279ciphers.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
280ciphers.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
281ciphers.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
282ciphers.o: ../include/openssl/sha.h ../include/openssl/ssl.h
283ciphers.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
284ciphers.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
285ciphers.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
286ciphers.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
287ciphers.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
288ciphers.o: ../include/openssl/x509_vfy.h apps.h ciphers.c
289crl.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
290crl.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
291crl.o: ../include/openssl/bn.h ../include/openssl/buffer.h
292crl.o: ../include/openssl/cast.h ../include/openssl/conf.h
293crl.o: ../include/openssl/crypto.h ../include/openssl/des.h
294crl.o: ../include/openssl/des_old.h ../include/openssl/dh.h
295crl.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
296crl.o: ../include/openssl/engine.h ../include/openssl/err.h
297crl.o: ../include/openssl/evp.h ../include/openssl/idea.h
298crl.o: ../include/openssl/lhash.h ../include/openssl/md2.h
299crl.o: ../include/openssl/md4.h ../include/openssl/md5.h
300crl.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
301crl.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
302crl.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
303crl.o: ../include/openssl/pem.h ../include/openssl/pem2.h
304crl.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
305crl.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
306crl.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
307crl.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
308crl.o: ../include/openssl/sha.h ../include/openssl/stack.h
309crl.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
310crl.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
311crl.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
312crl.o: ../include/openssl/x509v3.h apps.h crl.c
313crl2p7.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
314crl2p7.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
315crl2p7.o: ../include/openssl/bn.h ../include/openssl/buffer.h
316crl2p7.o: ../include/openssl/cast.h ../include/openssl/conf.h
317crl2p7.o: ../include/openssl/crypto.h ../include/openssl/des.h
318crl2p7.o: ../include/openssl/des_old.h ../include/openssl/dh.h
319crl2p7.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
320crl2p7.o: ../include/openssl/engine.h ../include/openssl/err.h
321crl2p7.o: ../include/openssl/evp.h ../include/openssl/idea.h
322crl2p7.o: ../include/openssl/lhash.h ../include/openssl/md2.h
323crl2p7.o: ../include/openssl/md4.h ../include/openssl/md5.h
324crl2p7.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
325crl2p7.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
326crl2p7.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
327crl2p7.o: ../include/openssl/pem.h ../include/openssl/pem2.h
328crl2p7.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
329crl2p7.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
330crl2p7.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
331crl2p7.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
332crl2p7.o: ../include/openssl/sha.h ../include/openssl/stack.h
333crl2p7.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
334crl2p7.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
335crl2p7.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
336crl2p7.o: crl2p7.c
337dgst.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
338dgst.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
339dgst.o: ../include/openssl/bn.h ../include/openssl/buffer.h
340dgst.o: ../include/openssl/cast.h ../include/openssl/conf.h
341dgst.o: ../include/openssl/crypto.h ../include/openssl/des.h
342dgst.o: ../include/openssl/des_old.h ../include/openssl/dh.h
343dgst.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
344dgst.o: ../include/openssl/engine.h ../include/openssl/err.h
345dgst.o: ../include/openssl/evp.h ../include/openssl/hmac.h
346dgst.o: ../include/openssl/idea.h ../include/openssl/lhash.h
347dgst.o: ../include/openssl/md2.h ../include/openssl/md4.h
348dgst.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
349dgst.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
350dgst.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
351dgst.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
352dgst.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
353dgst.o: ../include/openssl/rand.h ../include/openssl/rc2.h
354dgst.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
355dgst.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
356dgst.o: ../include/openssl/safestack.h ../include/openssl/sha.h
357dgst.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
358dgst.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
359dgst.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
360dgst.o: ../include/openssl/x509_vfy.h apps.h dgst.c
361dh.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
362dh.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
363dh.o: ../include/openssl/bn.h ../include/openssl/buffer.h
364dh.o: ../include/openssl/cast.h ../include/openssl/conf.h
365dh.o: ../include/openssl/crypto.h ../include/openssl/des.h
366dh.o: ../include/openssl/des_old.h ../include/openssl/dh.h
367dh.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
368dh.o: ../include/openssl/engine.h ../include/openssl/err.h
369dh.o: ../include/openssl/evp.h ../include/openssl/idea.h
370dh.o: ../include/openssl/lhash.h ../include/openssl/md2.h
371dh.o: ../include/openssl/md4.h ../include/openssl/md5.h
372dh.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
373dh.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
374dh.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
375dh.o: ../include/openssl/pem.h ../include/openssl/pem2.h
376dh.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
377dh.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
378dh.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
379dh.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
380dh.o: ../include/openssl/sha.h ../include/openssl/stack.h
381dh.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
382dh.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
383dh.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h dh.c
384dsa.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
385dsa.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
386dsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
387dsa.o: ../include/openssl/cast.h ../include/openssl/conf.h
388dsa.o: ../include/openssl/crypto.h ../include/openssl/des.h
389dsa.o: ../include/openssl/des_old.h ../include/openssl/dh.h
390dsa.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
391dsa.o: ../include/openssl/engine.h ../include/openssl/err.h
392dsa.o: ../include/openssl/evp.h ../include/openssl/idea.h
393dsa.o: ../include/openssl/lhash.h ../include/openssl/md2.h
394dsa.o: ../include/openssl/md4.h ../include/openssl/md5.h
395dsa.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
396dsa.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
397dsa.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
398dsa.o: ../include/openssl/pem.h ../include/openssl/pem2.h
399dsa.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
400dsa.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
401dsa.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
402dsa.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
403dsa.o: ../include/openssl/sha.h ../include/openssl/stack.h
404dsa.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
405dsa.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
406dsa.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h dsa.c
407dsaparam.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
408dsaparam.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
409dsaparam.o: ../include/openssl/bn.h ../include/openssl/buffer.h
410dsaparam.o: ../include/openssl/cast.h ../include/openssl/conf.h
411dsaparam.o: ../include/openssl/crypto.h ../include/openssl/des.h
412dsaparam.o: ../include/openssl/des_old.h ../include/openssl/dh.h
413dsaparam.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
414dsaparam.o: ../include/openssl/engine.h ../include/openssl/err.h
415dsaparam.o: ../include/openssl/evp.h ../include/openssl/idea.h
416dsaparam.o: ../include/openssl/lhash.h ../include/openssl/md2.h
417dsaparam.o: ../include/openssl/md4.h ../include/openssl/md5.h
418dsaparam.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
419dsaparam.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
420dsaparam.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
421dsaparam.o: ../include/openssl/pem.h ../include/openssl/pem2.h
422dsaparam.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
423dsaparam.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
424dsaparam.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
425dsaparam.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
426dsaparam.o: ../include/openssl/sha.h ../include/openssl/stack.h
427dsaparam.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
428dsaparam.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
429dsaparam.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
430dsaparam.o: dsaparam.c
431enc.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
432enc.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
433enc.o: ../include/openssl/bn.h ../include/openssl/buffer.h
434enc.o: ../include/openssl/cast.h ../include/openssl/conf.h
435enc.o: ../include/openssl/crypto.h ../include/openssl/des.h
436enc.o: ../include/openssl/des_old.h ../include/openssl/dh.h
437enc.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
438enc.o: ../include/openssl/engine.h ../include/openssl/err.h
439enc.o: ../include/openssl/evp.h ../include/openssl/idea.h
440enc.o: ../include/openssl/lhash.h ../include/openssl/md2.h
441enc.o: ../include/openssl/md4.h ../include/openssl/md5.h
442enc.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
443enc.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
444enc.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
445enc.o: ../include/openssl/pem.h ../include/openssl/pem2.h
446enc.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
447enc.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
448enc.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
449enc.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
450enc.o: ../include/openssl/sha.h ../include/openssl/stack.h
451enc.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
452enc.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
453enc.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h enc.c
454engine.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
455engine.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
456engine.o: ../include/openssl/bn.h ../include/openssl/buffer.h
457engine.o: ../include/openssl/cast.h ../include/openssl/comp.h
458engine.o: ../include/openssl/conf.h ../include/openssl/crypto.h
459engine.o: ../include/openssl/des.h ../include/openssl/des_old.h
460engine.o: ../include/openssl/dh.h ../include/openssl/dsa.h
461engine.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
462engine.o: ../include/openssl/err.h ../include/openssl/evp.h
463engine.o: ../include/openssl/idea.h ../include/openssl/kssl.h
464engine.o: ../include/openssl/lhash.h ../include/openssl/md2.h
465engine.o: ../include/openssl/md4.h ../include/openssl/md5.h
466engine.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
467engine.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
468engine.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
469engine.o: ../include/openssl/pem.h ../include/openssl/pem2.h
470engine.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
471engine.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
472engine.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
473engine.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
474engine.o: ../include/openssl/sha.h ../include/openssl/ssl.h
475engine.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
476engine.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
477engine.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
478engine.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
479engine.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
480engine.o: ../include/openssl/x509_vfy.h apps.h engine.c
481errstr.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
482errstr.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
483errstr.o: ../include/openssl/bn.h ../include/openssl/buffer.h
484errstr.o: ../include/openssl/cast.h ../include/openssl/comp.h
485errstr.o: ../include/openssl/conf.h ../include/openssl/crypto.h
486errstr.o: ../include/openssl/des.h ../include/openssl/des_old.h
487errstr.o: ../include/openssl/dh.h ../include/openssl/dsa.h
488errstr.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
489errstr.o: ../include/openssl/err.h ../include/openssl/evp.h
490errstr.o: ../include/openssl/idea.h ../include/openssl/kssl.h
491errstr.o: ../include/openssl/lhash.h ../include/openssl/md2.h
492errstr.o: ../include/openssl/md4.h ../include/openssl/md5.h
493errstr.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
494errstr.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
495errstr.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
496errstr.o: ../include/openssl/pem.h ../include/openssl/pem2.h
497errstr.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
498errstr.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
499errstr.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
500errstr.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
501errstr.o: ../include/openssl/sha.h ../include/openssl/ssl.h
502errstr.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
503errstr.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
504errstr.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
505errstr.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
506errstr.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
507errstr.o: ../include/openssl/x509_vfy.h apps.h errstr.c
508gendh.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
509gendh.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
510gendh.o: ../include/openssl/bn.h ../include/openssl/buffer.h
511gendh.o: ../include/openssl/cast.h ../include/openssl/conf.h
512gendh.o: ../include/openssl/crypto.h ../include/openssl/des.h
513gendh.o: ../include/openssl/des_old.h ../include/openssl/dh.h
514gendh.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
515gendh.o: ../include/openssl/engine.h ../include/openssl/err.h
516gendh.o: ../include/openssl/evp.h ../include/openssl/idea.h
517gendh.o: ../include/openssl/lhash.h ../include/openssl/md2.h
518gendh.o: ../include/openssl/md4.h ../include/openssl/md5.h
519gendh.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
520gendh.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
521gendh.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
522gendh.o: ../include/openssl/pem.h ../include/openssl/pem2.h
523gendh.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
524gendh.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
525gendh.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
526gendh.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
527gendh.o: ../include/openssl/sha.h ../include/openssl/stack.h
528gendh.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
529gendh.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
530gendh.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h gendh.c
531gendsa.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
532gendsa.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
533gendsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
534gendsa.o: ../include/openssl/cast.h ../include/openssl/conf.h
535gendsa.o: ../include/openssl/crypto.h ../include/openssl/des.h
536gendsa.o: ../include/openssl/des_old.h ../include/openssl/dh.h
537gendsa.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
538gendsa.o: ../include/openssl/engine.h ../include/openssl/err.h
539gendsa.o: ../include/openssl/evp.h ../include/openssl/idea.h
540gendsa.o: ../include/openssl/lhash.h ../include/openssl/md2.h
541gendsa.o: ../include/openssl/md4.h ../include/openssl/md5.h
542gendsa.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
543gendsa.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
544gendsa.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
545gendsa.o: ../include/openssl/pem.h ../include/openssl/pem2.h
546gendsa.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
547gendsa.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
548gendsa.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
549gendsa.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
550gendsa.o: ../include/openssl/sha.h ../include/openssl/stack.h
551gendsa.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
552gendsa.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
553gendsa.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
554gendsa.o: gendsa.c
555genrsa.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
556genrsa.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
557genrsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
558genrsa.o: ../include/openssl/cast.h ../include/openssl/conf.h
559genrsa.o: ../include/openssl/crypto.h ../include/openssl/des.h
560genrsa.o: ../include/openssl/des_old.h ../include/openssl/dh.h
561genrsa.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
562genrsa.o: ../include/openssl/engine.h ../include/openssl/err.h
563genrsa.o: ../include/openssl/evp.h ../include/openssl/idea.h
564genrsa.o: ../include/openssl/lhash.h ../include/openssl/md2.h
565genrsa.o: ../include/openssl/md4.h ../include/openssl/md5.h
566genrsa.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
567genrsa.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
568genrsa.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
569genrsa.o: ../include/openssl/pem.h ../include/openssl/pem2.h
570genrsa.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
571genrsa.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
572genrsa.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
573genrsa.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
574genrsa.o: ../include/openssl/sha.h ../include/openssl/stack.h
575genrsa.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
576genrsa.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
577genrsa.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
578genrsa.o: genrsa.c
579nseq.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
580nseq.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
581nseq.o: ../include/openssl/bn.h ../include/openssl/buffer.h
582nseq.o: ../include/openssl/cast.h ../include/openssl/conf.h
583nseq.o: ../include/openssl/crypto.h ../include/openssl/des.h
584nseq.o: ../include/openssl/des_old.h ../include/openssl/dh.h
585nseq.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
586nseq.o: ../include/openssl/engine.h ../include/openssl/err.h
587nseq.o: ../include/openssl/evp.h ../include/openssl/idea.h
588nseq.o: ../include/openssl/lhash.h ../include/openssl/md2.h
589nseq.o: ../include/openssl/md4.h ../include/openssl/md5.h
590nseq.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
591nseq.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
592nseq.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
593nseq.o: ../include/openssl/pem.h ../include/openssl/pem2.h
594nseq.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
595nseq.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
596nseq.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
597nseq.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
598nseq.o: ../include/openssl/sha.h ../include/openssl/stack.h
599nseq.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
600nseq.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
601nseq.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h nseq.c
602ocsp.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
603ocsp.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
604ocsp.o: ../include/openssl/bn.h ../include/openssl/buffer.h
605ocsp.o: ../include/openssl/cast.h ../include/openssl/comp.h
606ocsp.o: ../include/openssl/conf.h ../include/openssl/crypto.h
607ocsp.o: ../include/openssl/des.h ../include/openssl/des_old.h
608ocsp.o: ../include/openssl/dh.h ../include/openssl/dsa.h
609ocsp.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
610ocsp.o: ../include/openssl/err.h ../include/openssl/evp.h
611ocsp.o: ../include/openssl/idea.h ../include/openssl/kssl.h
612ocsp.o: ../include/openssl/lhash.h ../include/openssl/md2.h
613ocsp.o: ../include/openssl/md4.h ../include/openssl/md5.h
614ocsp.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
615ocsp.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
616ocsp.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
617ocsp.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
618ocsp.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
619ocsp.o: ../include/openssl/rand.h ../include/openssl/rc2.h
620ocsp.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
621ocsp.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
622ocsp.o: ../include/openssl/safestack.h ../include/openssl/sha.h
623ocsp.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
624ocsp.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
625ocsp.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
626ocsp.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
627ocsp.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
628ocsp.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
629ocsp.o: ../include/openssl/x509v3.h apps.h ocsp.c
630openssl.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
631openssl.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
632openssl.o: ../include/openssl/bn.h ../include/openssl/buffer.h
633openssl.o: ../include/openssl/cast.h ../include/openssl/comp.h
634openssl.o: ../include/openssl/conf.h ../include/openssl/crypto.h
635openssl.o: ../include/openssl/des.h ../include/openssl/des_old.h
636openssl.o: ../include/openssl/dh.h ../include/openssl/dsa.h
637openssl.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
638openssl.o: ../include/openssl/err.h ../include/openssl/evp.h
639openssl.o: ../include/openssl/fips.h ../include/openssl/idea.h
640openssl.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
641openssl.o: ../include/openssl/md2.h ../include/openssl/md4.h
642openssl.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
643openssl.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
644openssl.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
645openssl.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
646openssl.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
647openssl.o: ../include/openssl/rand.h ../include/openssl/rc2.h
648openssl.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
649openssl.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
650openssl.o: ../include/openssl/safestack.h ../include/openssl/sha.h
651openssl.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
652openssl.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
653openssl.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
654openssl.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
655openssl.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
656openssl.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
657openssl.o: openssl.c progs.h s_apps.h
658passwd.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
659passwd.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
660passwd.o: ../include/openssl/bn.h ../include/openssl/buffer.h
661passwd.o: ../include/openssl/cast.h ../include/openssl/conf.h
662passwd.o: ../include/openssl/crypto.h ../include/openssl/des.h
663passwd.o: ../include/openssl/des_old.h ../include/openssl/dh.h
664passwd.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
665passwd.o: ../include/openssl/engine.h ../include/openssl/err.h
666passwd.o: ../include/openssl/evp.h ../include/openssl/idea.h
667passwd.o: ../include/openssl/lhash.h ../include/openssl/md2.h
668passwd.o: ../include/openssl/md4.h ../include/openssl/md5.h
669passwd.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
670passwd.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
671passwd.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
672passwd.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
673passwd.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
674passwd.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
675passwd.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
676passwd.o: ../include/openssl/sha.h ../include/openssl/stack.h
677passwd.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
678passwd.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
679passwd.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
680passwd.o: passwd.c
681pkcs12.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
682pkcs12.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
683pkcs12.o: ../include/openssl/bn.h ../include/openssl/buffer.h
684pkcs12.o: ../include/openssl/cast.h ../include/openssl/conf.h
685pkcs12.o: ../include/openssl/crypto.h ../include/openssl/des.h
686pkcs12.o: ../include/openssl/des_old.h ../include/openssl/dh.h
687pkcs12.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
688pkcs12.o: ../include/openssl/engine.h ../include/openssl/err.h
689pkcs12.o: ../include/openssl/evp.h ../include/openssl/idea.h
690pkcs12.o: ../include/openssl/lhash.h ../include/openssl/md2.h
691pkcs12.o: ../include/openssl/md4.h ../include/openssl/md5.h
692pkcs12.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
693pkcs12.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
694pkcs12.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
695pkcs12.o: ../include/openssl/pem.h ../include/openssl/pem2.h
696pkcs12.o: ../include/openssl/pkcs12.h ../include/openssl/pkcs7.h
697pkcs12.o: ../include/openssl/rand.h ../include/openssl/rc2.h
698pkcs12.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
699pkcs12.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
700pkcs12.o: ../include/openssl/safestack.h ../include/openssl/sha.h
701pkcs12.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
702pkcs12.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
703pkcs12.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
704pkcs12.o: ../include/openssl/x509_vfy.h apps.h pkcs12.c
705pkcs7.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
706pkcs7.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
707pkcs7.o: ../include/openssl/bn.h ../include/openssl/buffer.h
708pkcs7.o: ../include/openssl/cast.h ../include/openssl/conf.h
709pkcs7.o: ../include/openssl/crypto.h ../include/openssl/des.h
710pkcs7.o: ../include/openssl/des_old.h ../include/openssl/dh.h
711pkcs7.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
712pkcs7.o: ../include/openssl/engine.h ../include/openssl/err.h
713pkcs7.o: ../include/openssl/evp.h ../include/openssl/idea.h
714pkcs7.o: ../include/openssl/lhash.h ../include/openssl/md2.h
715pkcs7.o: ../include/openssl/md4.h ../include/openssl/md5.h
716pkcs7.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
717pkcs7.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
718pkcs7.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
719pkcs7.o: ../include/openssl/pem.h ../include/openssl/pem2.h
720pkcs7.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
721pkcs7.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
722pkcs7.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
723pkcs7.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
724pkcs7.o: ../include/openssl/sha.h ../include/openssl/stack.h
725pkcs7.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
726pkcs7.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
727pkcs7.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h pkcs7.c
728pkcs8.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
729pkcs8.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
730pkcs8.o: ../include/openssl/bn.h ../include/openssl/buffer.h
731pkcs8.o: ../include/openssl/cast.h ../include/openssl/conf.h
732pkcs8.o: ../include/openssl/crypto.h ../include/openssl/des.h
733pkcs8.o: ../include/openssl/des_old.h ../include/openssl/dh.h
734pkcs8.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
735pkcs8.o: ../include/openssl/engine.h ../include/openssl/err.h
736pkcs8.o: ../include/openssl/evp.h ../include/openssl/idea.h
737pkcs8.o: ../include/openssl/lhash.h ../include/openssl/md2.h
738pkcs8.o: ../include/openssl/md4.h ../include/openssl/md5.h
739pkcs8.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
740pkcs8.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
741pkcs8.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
742pkcs8.o: ../include/openssl/pem.h ../include/openssl/pem2.h
743pkcs8.o: ../include/openssl/pkcs12.h ../include/openssl/pkcs7.h
744pkcs8.o: ../include/openssl/rand.h ../include/openssl/rc2.h
745pkcs8.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
746pkcs8.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
747pkcs8.o: ../include/openssl/safestack.h ../include/openssl/sha.h
748pkcs8.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
749pkcs8.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
750pkcs8.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
751pkcs8.o: ../include/openssl/x509_vfy.h apps.h pkcs8.c
752prime.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
753prime.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
754prime.o: ../include/openssl/bn.h ../include/openssl/buffer.h
755prime.o: ../include/openssl/cast.h ../include/openssl/conf.h
756prime.o: ../include/openssl/crypto.h ../include/openssl/des.h
757prime.o: ../include/openssl/des_old.h ../include/openssl/dh.h
758prime.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
759prime.o: ../include/openssl/engine.h ../include/openssl/err.h
760prime.o: ../include/openssl/evp.h ../include/openssl/idea.h
761prime.o: ../include/openssl/lhash.h ../include/openssl/md2.h
762prime.o: ../include/openssl/md4.h ../include/openssl/md5.h
763prime.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
764prime.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
765prime.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
766prime.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
767prime.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
768prime.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
769prime.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
770prime.o: ../include/openssl/sha.h ../include/openssl/stack.h
771prime.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
772prime.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
773prime.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h prime.c
774rand.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
775rand.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
776rand.o: ../include/openssl/bn.h ../include/openssl/buffer.h
777rand.o: ../include/openssl/cast.h ../include/openssl/conf.h
778rand.o: ../include/openssl/crypto.h ../include/openssl/des.h
779rand.o: ../include/openssl/des_old.h ../include/openssl/dh.h
780rand.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
781rand.o: ../include/openssl/engine.h ../include/openssl/err.h
782rand.o: ../include/openssl/evp.h ../include/openssl/idea.h
783rand.o: ../include/openssl/lhash.h ../include/openssl/md2.h
784rand.o: ../include/openssl/md4.h ../include/openssl/md5.h
785rand.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
786rand.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
787rand.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
788rand.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
789rand.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
790rand.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
791rand.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
792rand.o: ../include/openssl/sha.h ../include/openssl/stack.h
793rand.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
794rand.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
795rand.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h rand.c
796req.o: ../crypto/cryptlib.h ../e_os.h ../include/openssl/aes.h
797req.o: ../include/openssl/asn1.h ../include/openssl/bio.h
798req.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
799req.o: ../include/openssl/buffer.h ../include/openssl/cast.h
800req.o: ../include/openssl/conf.h ../include/openssl/crypto.h
801req.o: ../include/openssl/des.h ../include/openssl/des_old.h
802req.o: ../include/openssl/dh.h ../include/openssl/dsa.h
803req.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
804req.o: ../include/openssl/err.h ../include/openssl/evp.h
805req.o: ../include/openssl/idea.h ../include/openssl/lhash.h
806req.o: ../include/openssl/md2.h ../include/openssl/md4.h
807req.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
808req.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
809req.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
810req.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
811req.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
812req.o: ../include/openssl/rand.h ../include/openssl/rc2.h
813req.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
814req.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
815req.o: ../include/openssl/safestack.h ../include/openssl/sha.h
816req.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
817req.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
818req.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
819req.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h req.c
820rsa.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
821rsa.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
822rsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
823rsa.o: ../include/openssl/cast.h ../include/openssl/conf.h
824rsa.o: ../include/openssl/crypto.h ../include/openssl/des.h
825rsa.o: ../include/openssl/des_old.h ../include/openssl/dh.h
826rsa.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
827rsa.o: ../include/openssl/engine.h ../include/openssl/err.h
828rsa.o: ../include/openssl/evp.h ../include/openssl/idea.h
829rsa.o: ../include/openssl/lhash.h ../include/openssl/md2.h
830rsa.o: ../include/openssl/md4.h ../include/openssl/md5.h
831rsa.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
832rsa.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
833rsa.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
834rsa.o: ../include/openssl/pem.h ../include/openssl/pem2.h
835rsa.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
836rsa.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
837rsa.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
838rsa.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
839rsa.o: ../include/openssl/sha.h ../include/openssl/stack.h
840rsa.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
841rsa.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
842rsa.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h rsa.c
843rsautl.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
844rsautl.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
845rsautl.o: ../include/openssl/bn.h ../include/openssl/buffer.h
846rsautl.o: ../include/openssl/cast.h ../include/openssl/conf.h
847rsautl.o: ../include/openssl/crypto.h ../include/openssl/des.h
848rsautl.o: ../include/openssl/des_old.h ../include/openssl/dh.h
849rsautl.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
850rsautl.o: ../include/openssl/engine.h ../include/openssl/err.h
851rsautl.o: ../include/openssl/evp.h ../include/openssl/idea.h
852rsautl.o: ../include/openssl/lhash.h ../include/openssl/md2.h
853rsautl.o: ../include/openssl/md4.h ../include/openssl/md5.h
854rsautl.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
855rsautl.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
856rsautl.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
857rsautl.o: ../include/openssl/pem.h ../include/openssl/pem2.h
858rsautl.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
859rsautl.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
860rsautl.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
861rsautl.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
862rsautl.o: ../include/openssl/sha.h ../include/openssl/stack.h
863rsautl.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
864rsautl.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
865rsautl.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
866rsautl.o: rsautl.c
867s_cb.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
868s_cb.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
869s_cb.o: ../include/openssl/bn.h ../include/openssl/buffer.h
870s_cb.o: ../include/openssl/cast.h ../include/openssl/comp.h
871s_cb.o: ../include/openssl/conf.h ../include/openssl/crypto.h
872s_cb.o: ../include/openssl/des.h ../include/openssl/des_old.h
873s_cb.o: ../include/openssl/dh.h ../include/openssl/dsa.h
874s_cb.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
875s_cb.o: ../include/openssl/err.h ../include/openssl/evp.h
876s_cb.o: ../include/openssl/idea.h ../include/openssl/kssl.h
877s_cb.o: ../include/openssl/lhash.h ../include/openssl/md2.h
878s_cb.o: ../include/openssl/md4.h ../include/openssl/md5.h
879s_cb.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
880s_cb.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
881s_cb.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
882s_cb.o: ../include/openssl/pem.h ../include/openssl/pem2.h
883s_cb.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
884s_cb.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
885s_cb.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
886s_cb.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
887s_cb.o: ../include/openssl/sha.h ../include/openssl/ssl.h
888s_cb.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
889s_cb.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
890s_cb.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
891s_cb.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
892s_cb.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
893s_cb.o: ../include/openssl/x509_vfy.h apps.h s_apps.h s_cb.c
894s_client.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
895s_client.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
896s_client.o: ../include/openssl/bn.h ../include/openssl/buffer.h
897s_client.o: ../include/openssl/cast.h ../include/openssl/comp.h
898s_client.o: ../include/openssl/conf.h ../include/openssl/crypto.h
899s_client.o: ../include/openssl/des.h ../include/openssl/des_old.h
900s_client.o: ../include/openssl/dh.h ../include/openssl/dsa.h
901s_client.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
902s_client.o: ../include/openssl/err.h ../include/openssl/evp.h
903s_client.o: ../include/openssl/idea.h ../include/openssl/kssl.h
904s_client.o: ../include/openssl/lhash.h ../include/openssl/md2.h
905s_client.o: ../include/openssl/md4.h ../include/openssl/md5.h
906s_client.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
907s_client.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
908s_client.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
909s_client.o: ../include/openssl/pem.h ../include/openssl/pem2.h
910s_client.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
911s_client.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
912s_client.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
913s_client.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
914s_client.o: ../include/openssl/sha.h ../include/openssl/ssl.h
915s_client.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
916s_client.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
917s_client.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
918s_client.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
919s_client.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
920s_client.o: ../include/openssl/x509_vfy.h apps.h s_apps.h s_client.c
921s_server.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
922s_server.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
923s_server.o: ../include/openssl/bn.h ../include/openssl/buffer.h
924s_server.o: ../include/openssl/cast.h ../include/openssl/comp.h
925s_server.o: ../include/openssl/conf.h ../include/openssl/crypto.h
926s_server.o: ../include/openssl/des.h ../include/openssl/des_old.h
927s_server.o: ../include/openssl/dh.h ../include/openssl/dsa.h
928s_server.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
929s_server.o: ../include/openssl/err.h ../include/openssl/evp.h
930s_server.o: ../include/openssl/idea.h ../include/openssl/kssl.h
931s_server.o: ../include/openssl/lhash.h ../include/openssl/md2.h
932s_server.o: ../include/openssl/md4.h ../include/openssl/md5.h
933s_server.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
934s_server.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
935s_server.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
936s_server.o: ../include/openssl/pem.h ../include/openssl/pem2.h
937s_server.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
938s_server.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
939s_server.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
940s_server.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
941s_server.o: ../include/openssl/sha.h ../include/openssl/ssl.h
942s_server.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
943s_server.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
944s_server.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
945s_server.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
946s_server.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
947s_server.o: ../include/openssl/x509_vfy.h apps.h s_apps.h s_server.c
948s_socket.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
949s_socket.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
950s_socket.o: ../include/openssl/bn.h ../include/openssl/buffer.h
951s_socket.o: ../include/openssl/cast.h ../include/openssl/comp.h
952s_socket.o: ../include/openssl/conf.h ../include/openssl/crypto.h
953s_socket.o: ../include/openssl/des.h ../include/openssl/des_old.h
954s_socket.o: ../include/openssl/dh.h ../include/openssl/dsa.h
955s_socket.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
956s_socket.o: ../include/openssl/err.h ../include/openssl/evp.h
957s_socket.o: ../include/openssl/idea.h ../include/openssl/kssl.h
958s_socket.o: ../include/openssl/lhash.h ../include/openssl/md2.h
959s_socket.o: ../include/openssl/md4.h ../include/openssl/md5.h
960s_socket.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
961s_socket.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
962s_socket.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
963s_socket.o: ../include/openssl/pem.h ../include/openssl/pem2.h
964s_socket.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
965s_socket.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
966s_socket.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
967s_socket.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
968s_socket.o: ../include/openssl/sha.h ../include/openssl/ssl.h
969s_socket.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
970s_socket.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
971s_socket.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
972s_socket.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
973s_socket.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
974s_socket.o: ../include/openssl/x509_vfy.h apps.h s_apps.h s_socket.c
975s_time.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
976s_time.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
977s_time.o: ../include/openssl/bn.h ../include/openssl/buffer.h
978s_time.o: ../include/openssl/cast.h ../include/openssl/comp.h
979s_time.o: ../include/openssl/conf.h ../include/openssl/crypto.h
980s_time.o: ../include/openssl/des.h ../include/openssl/des_old.h
981s_time.o: ../include/openssl/dh.h ../include/openssl/dsa.h
982s_time.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
983s_time.o: ../include/openssl/err.h ../include/openssl/evp.h
984s_time.o: ../include/openssl/idea.h ../include/openssl/kssl.h
985s_time.o: ../include/openssl/lhash.h ../include/openssl/md2.h
986s_time.o: ../include/openssl/md4.h ../include/openssl/md5.h
987s_time.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
988s_time.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
989s_time.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
990s_time.o: ../include/openssl/pem.h ../include/openssl/pem2.h
991s_time.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
992s_time.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
993s_time.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
994s_time.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
995s_time.o: ../include/openssl/sha.h ../include/openssl/ssl.h
996s_time.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
997s_time.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
998s_time.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
999s_time.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
1000s_time.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
1001s_time.o: ../include/openssl/x509_vfy.h apps.h s_apps.h s_time.c
1002sess_id.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
1003sess_id.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
1004sess_id.o: ../include/openssl/bn.h ../include/openssl/buffer.h
1005sess_id.o: ../include/openssl/cast.h ../include/openssl/comp.h
1006sess_id.o: ../include/openssl/conf.h ../include/openssl/crypto.h
1007sess_id.o: ../include/openssl/des.h ../include/openssl/des_old.h
1008sess_id.o: ../include/openssl/dh.h ../include/openssl/dsa.h
1009sess_id.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
1010sess_id.o: ../include/openssl/err.h ../include/openssl/evp.h
1011sess_id.o: ../include/openssl/idea.h ../include/openssl/kssl.h
1012sess_id.o: ../include/openssl/lhash.h ../include/openssl/md2.h
1013sess_id.o: ../include/openssl/md4.h ../include/openssl/md5.h
1014sess_id.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
1015sess_id.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
1016sess_id.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
1017sess_id.o: ../include/openssl/pem.h ../include/openssl/pem2.h
1018sess_id.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
1019sess_id.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
1020sess_id.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
1021sess_id.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
1022sess_id.o: ../include/openssl/sha.h ../include/openssl/ssl.h
1023sess_id.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
1024sess_id.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
1025sess_id.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
1026sess_id.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
1027sess_id.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
1028sess_id.o: ../include/openssl/x509_vfy.h apps.h sess_id.c
1029smime.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
1030smime.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
1031smime.o: ../include/openssl/bn.h ../include/openssl/buffer.h
1032smime.o: ../include/openssl/cast.h ../include/openssl/conf.h
1033smime.o: ../include/openssl/crypto.h ../include/openssl/des.h
1034smime.o: ../include/openssl/des_old.h ../include/openssl/dh.h
1035smime.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
1036smime.o: ../include/openssl/engine.h ../include/openssl/err.h
1037smime.o: ../include/openssl/evp.h ../include/openssl/idea.h
1038smime.o: ../include/openssl/lhash.h ../include/openssl/md2.h
1039smime.o: ../include/openssl/md4.h ../include/openssl/md5.h
1040smime.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
1041smime.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
1042smime.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
1043smime.o: ../include/openssl/pem.h ../include/openssl/pem2.h
1044smime.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
1045smime.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
1046smime.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
1047smime.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
1048smime.o: ../include/openssl/sha.h ../include/openssl/stack.h
1049smime.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
1050smime.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
1051smime.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h smime.c
1052speed.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
1053speed.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
1054speed.o: ../include/openssl/bn.h ../include/openssl/buffer.h
1055speed.o: ../include/openssl/cast.h ../include/openssl/conf.h
1056speed.o: ../include/openssl/crypto.h ../include/openssl/des.h
1057speed.o: ../include/openssl/des_old.h ../include/openssl/dh.h
1058speed.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
1059speed.o: ../include/openssl/engine.h ../include/openssl/err.h
1060speed.o: ../include/openssl/evp.h ../include/openssl/hmac.h
1061speed.o: ../include/openssl/idea.h ../include/openssl/lhash.h
1062speed.o: ../include/openssl/md2.h ../include/openssl/md4.h
1063speed.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
1064speed.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
1065speed.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
1066speed.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
1067speed.o: ../include/openssl/rand.h ../include/openssl/rc2.h
1068speed.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
1069speed.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
1070speed.o: ../include/openssl/safestack.h ../include/openssl/sha.h
1071speed.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
1072speed.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
1073speed.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
1074speed.o: ../include/openssl/x509_vfy.h apps.h speed.c testdsa.h testrsa.h
1075spkac.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
1076spkac.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
1077spkac.o: ../include/openssl/bn.h ../include/openssl/buffer.h
1078spkac.o: ../include/openssl/cast.h ../include/openssl/conf.h
1079spkac.o: ../include/openssl/crypto.h ../include/openssl/des.h
1080spkac.o: ../include/openssl/des_old.h ../include/openssl/dh.h
1081spkac.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
1082spkac.o: ../include/openssl/engine.h ../include/openssl/err.h
1083spkac.o: ../include/openssl/evp.h ../include/openssl/idea.h
1084spkac.o: ../include/openssl/lhash.h ../include/openssl/md2.h
1085spkac.o: ../include/openssl/md4.h ../include/openssl/md5.h
1086spkac.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
1087spkac.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
1088spkac.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
1089spkac.o: ../include/openssl/pem.h ../include/openssl/pem2.h
1090spkac.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
1091spkac.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
1092spkac.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
1093spkac.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
1094spkac.o: ../include/openssl/sha.h ../include/openssl/stack.h
1095spkac.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
1096spkac.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
1097spkac.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h spkac.c
1098verify.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
1099verify.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
1100verify.o: ../include/openssl/bn.h ../include/openssl/buffer.h
1101verify.o: ../include/openssl/cast.h ../include/openssl/conf.h
1102verify.o: ../include/openssl/crypto.h ../include/openssl/des.h
1103verify.o: ../include/openssl/des_old.h ../include/openssl/dh.h
1104verify.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
1105verify.o: ../include/openssl/engine.h ../include/openssl/err.h
1106verify.o: ../include/openssl/evp.h ../include/openssl/idea.h
1107verify.o: ../include/openssl/lhash.h ../include/openssl/md2.h
1108verify.o: ../include/openssl/md4.h ../include/openssl/md5.h
1109verify.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
1110verify.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
1111verify.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
1112verify.o: ../include/openssl/pem.h ../include/openssl/pem2.h
1113verify.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
1114verify.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
1115verify.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
1116verify.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
1117verify.o: ../include/openssl/sha.h ../include/openssl/stack.h
1118verify.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
1119verify.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
1120verify.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
1121verify.o: ../include/openssl/x509v3.h apps.h verify.c
1122version.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
1123version.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
1124version.o: ../include/openssl/bn.h ../include/openssl/buffer.h
1125version.o: ../include/openssl/cast.h ../include/openssl/conf.h
1126version.o: ../include/openssl/crypto.h ../include/openssl/des.h
1127version.o: ../include/openssl/des_old.h ../include/openssl/dh.h
1128version.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
1129version.o: ../include/openssl/engine.h ../include/openssl/err.h
1130version.o: ../include/openssl/evp.h ../include/openssl/idea.h
1131version.o: ../include/openssl/lhash.h ../include/openssl/md2.h
1132version.o: ../include/openssl/md4.h ../include/openssl/md5.h
1133version.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
1134version.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
1135version.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
1136version.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
1137version.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
1138version.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
1139version.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
1140version.o: ../include/openssl/sha.h ../include/openssl/stack.h
1141version.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
1142version.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
1143version.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
1144version.o: version.c
1145x509.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
1146x509.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
1147x509.o: ../include/openssl/bn.h ../include/openssl/buffer.h
1148x509.o: ../include/openssl/cast.h ../include/openssl/conf.h
1149x509.o: ../include/openssl/crypto.h ../include/openssl/des.h
1150x509.o: ../include/openssl/des_old.h ../include/openssl/dh.h
1151x509.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
1152x509.o: ../include/openssl/engine.h ../include/openssl/err.h
1153x509.o: ../include/openssl/evp.h ../include/openssl/idea.h
1154x509.o: ../include/openssl/lhash.h ../include/openssl/md2.h
1155x509.o: ../include/openssl/md4.h ../include/openssl/md5.h
1156x509.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
1157x509.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
1158x509.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
1159x509.o: ../include/openssl/pem.h ../include/openssl/pem2.h
1160x509.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
1161x509.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
1162x509.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
1163x509.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
1164x509.o: ../include/openssl/sha.h ../include/openssl/stack.h
1165x509.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
1166x509.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
1167x509.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
1168x509.o: ../include/openssl/x509v3.h apps.h x509.c
diff --git a/src/lib/libssl/src/apps/apps.c b/src/lib/libssl/src/apps/apps.c
index 93a665e788..9157cdfcdc 100644
--- a/src/lib/libssl/src/apps/apps.c
+++ b/src/lib/libssl/src/apps/apps.c
@@ -126,16 +126,6 @@
126#include <openssl/engine.h> 126#include <openssl/engine.h>
127#endif 127#endif
128 128
129#ifdef OPENSSL_SYS_WINDOWS
130#define strcasecmp _stricmp
131#else
132# ifdef NO_STRINGS_H
133 int strcasecmp();
134# else
135# include <strings.h>
136# endif /* NO_STRINGS_H */
137#endif
138
139#define NON_MAIN 129#define NON_MAIN
140#include "apps.h" 130#include "apps.h"
141#undef NON_MAIN 131#undef NON_MAIN
@@ -340,60 +330,6 @@ void program_name(char *in, char *out, int size)
340#endif 330#endif
341#endif 331#endif
342 332
343#ifdef OPENSSL_SYS_WIN32
344int WIN32_rename(char *from, char *to)
345 {
346#ifndef OPENSSL_SYS_WINCE
347 /* Windows rename gives an error if 'to' exists, so delete it
348 * first and ignore file not found errror
349 */
350 if((remove(to) != 0) && (errno != ENOENT))
351 return -1;
352#undef rename
353 return rename(from, to);
354#else
355 /* convert strings to UNICODE */
356 {
357 BOOL result = FALSE;
358 WCHAR* wfrom;
359 WCHAR* wto;
360 int i;
361 wfrom = malloc((strlen(from)+1)*2);
362 wto = malloc((strlen(to)+1)*2);
363 if (wfrom != NULL && wto != NULL)
364 {
365 for (i=0; i<(int)strlen(from)+1; i++)
366 wfrom[i] = (short)from[i];
367 for (i=0; i<(int)strlen(to)+1; i++)
368 wto[i] = (short)to[i];
369 result = MoveFile(wfrom, wto);
370 }
371 if (wfrom != NULL)
372 free(wfrom);
373 if (wto != NULL)
374 free(wto);
375 return result;
376 }
377#endif
378 }
379#endif
380
381#ifdef OPENSSL_SYS_VMS
382int VMS_strcasecmp(const char *str1, const char *str2)
383 {
384 while (*str1 && *str2)
385 {
386 int res = toupper(*str1) - toupper(*str2);
387 if (res) return res < 0 ? -1 : 1;
388 }
389 if (*str1)
390 return 1;
391 if (*str2)
392 return -1;
393 return 0;
394 }
395#endif
396
397int chopup_args(ARGS *arg, char *buf, int *argc, char **argv[]) 333int chopup_args(ARGS *arg, char *buf, int *argc, char **argv[])
398 { 334 {
399 int num,len,i; 335 int num,len,i;
@@ -590,7 +526,7 @@ int password_callback(char *buf, int bufsiz, int verify,
590 char *prompt = NULL; 526 char *prompt = NULL;
591 527
592 prompt = UI_construct_prompt(ui, "pass phrase", 528 prompt = UI_construct_prompt(ui, "pass phrase",
593 cb_data->prompt_info); 529 prompt_info);
594 530
595 ui_flags |= UI_INPUT_FLAG_DEFAULT_PWD; 531 ui_flags |= UI_INPUT_FLAG_DEFAULT_PWD;
596 UI_ctrl(ui, UI_CTRL_PRINT_ERRORS, 1, 0, 0); 532 UI_ctrl(ui, UI_CTRL_PRINT_ERRORS, 1, 0, 0);
@@ -739,6 +675,51 @@ int add_oid_section(BIO *err, CONF *conf)
739 return 1; 675 return 1;
740} 676}
741 677
678static int load_pkcs12(BIO *err, BIO *in, const char *desc,
679 pem_password_cb *pem_cb, void *cb_data,
680 EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca)
681 {
682 const char *pass;
683 char tpass[PEM_BUFSIZE];
684 int len, ret = 0;
685 PKCS12 *p12;
686 p12 = d2i_PKCS12_bio(in, NULL);
687 if (p12 == NULL)
688 {
689 BIO_printf(err, "Error loading PKCS12 file for %s\n", desc);
690 goto die;
691 }
692 /* See if an empty password will do */
693 if (PKCS12_verify_mac(p12, "", 0) || PKCS12_verify_mac(p12, NULL, 0))
694 pass = "";
695 else
696 {
697 if (!pem_cb)
698 pem_cb = (pem_password_cb *)password_callback;
699 len = pem_cb(tpass, PEM_BUFSIZE, 0, cb_data);
700 if (len < 0)
701 {
702 BIO_printf(err, "Passpharse callback error for %s\n",
703 desc);
704 goto die;
705 }
706 if (len < PEM_BUFSIZE)
707 tpass[len] = 0;
708 if (!PKCS12_verify_mac(p12, tpass, len))
709 {
710 BIO_printf(err,
711 "Mac verify error (wrong password?) in PKCS12 file for %s\n", desc);
712 goto die;
713 }
714 pass = tpass;
715 }
716 ret = PKCS12_parse(p12, pass, pkey, cert, ca);
717 die:
718 if (p12)
719 PKCS12_free(p12);
720 return ret;
721 }
722
742X509 *load_cert(BIO *err, const char *file, int format, 723X509 *load_cert(BIO *err, const char *file, int format,
743 const char *pass, ENGINE *e, const char *cert_descrip) 724 const char *pass, ENGINE *e, const char *cert_descrip)
744 { 725 {
@@ -819,11 +800,9 @@ X509 *load_cert(BIO *err, const char *file, int format,
819 (pem_password_cb *)password_callback, NULL); 800 (pem_password_cb *)password_callback, NULL);
820 else if (format == FORMAT_PKCS12) 801 else if (format == FORMAT_PKCS12)
821 { 802 {
822 PKCS12 *p12 = d2i_PKCS12_bio(cert, NULL); 803 if (!load_pkcs12(err, cert,cert_descrip, NULL, NULL,
823 804 NULL, &x, NULL))
824 PKCS12_parse(p12, NULL, NULL, &x, NULL); 805 goto end;
825 PKCS12_free(p12);
826 p12 = NULL;
827 } 806 }
828 else { 807 else {
829 BIO_printf(err,"bad input format specified for %s\n", 808 BIO_printf(err,"bad input format specified for %s\n",
@@ -902,11 +881,10 @@ EVP_PKEY *load_key(BIO *err, const char *file, int format, int maybe_stdin,
902#endif 881#endif
903 else if (format == FORMAT_PKCS12) 882 else if (format == FORMAT_PKCS12)
904 { 883 {
905 PKCS12 *p12 = d2i_PKCS12_bio(key, NULL); 884 if (!load_pkcs12(err, key, key_descrip,
906 885 (pem_password_cb *)password_callback, &cb_data,
907 PKCS12_parse(p12, pass, &pkey, NULL, NULL); 886 &pkey, NULL, NULL))
908 PKCS12_free(p12); 887 goto end;
909 p12 = NULL;
910 } 888 }
911 else 889 else
912 { 890 {
@@ -1486,12 +1464,9 @@ BIGNUM *load_serial(char *serialfile, int create, ASN1_INTEGER **retai)
1486 } 1464 }
1487 else 1465 else
1488 { 1466 {
1489 ASN1_INTEGER_set(ai,1);
1490 ret=BN_new(); 1467 ret=BN_new();
1491 if (ret == NULL) 1468 if (ret == NULL || !rand_serial(ret, ai))
1492 BIO_printf(bio_err, "Out of memory\n"); 1469 BIO_printf(bio_err, "Out of memory\n");
1493 else
1494 BN_one(ret);
1495 } 1470 }
1496 } 1471 }
1497 else 1472 else
@@ -1653,6 +1628,33 @@ int rotate_serial(char *serialfile, char *new_suffix, char *old_suffix)
1653 return 0; 1628 return 0;
1654 } 1629 }
1655 1630
1631int rand_serial(BIGNUM *b, ASN1_INTEGER *ai)
1632 {
1633 BIGNUM *btmp;
1634 int ret = 0;
1635 if (b)
1636 btmp = b;
1637 else
1638 btmp = BN_new();
1639
1640 if (!btmp)
1641 return 0;
1642
1643 if (!BN_pseudo_rand(btmp, SERIAL_RAND_BITS, 0, 0))
1644 goto error;
1645 if (ai && !BN_to_ASN1_INTEGER(btmp, ai))
1646 goto error;
1647
1648 ret = 1;
1649
1650 error:
1651
1652 if (!b)
1653 BN_free(btmp);
1654
1655 return ret;
1656 }
1657
1656CA_DB *load_index(char *dbfile, DB_ATTR *db_attr) 1658CA_DB *load_index(char *dbfile, DB_ATTR *db_attr)
1657 { 1659 {
1658 CA_DB *retdb = NULL; 1660 CA_DB *retdb = NULL;
@@ -1970,6 +1972,48 @@ int rotate_index(char *dbfile, char *new_suffix, char *old_suffix)
1970 1972
1971void free_index(CA_DB *db) 1973void free_index(CA_DB *db)
1972 { 1974 {
1973 TXT_DB_free(db->db); 1975 if (db)
1974 OPENSSL_free(db); 1976 {
1977 if (db->db) TXT_DB_free(db->db);
1978 OPENSSL_free(db);
1979 }
1975 } 1980 }
1981
1982/* This code MUST COME AFTER anything that uses rename() */
1983#ifdef OPENSSL_SYS_WIN32
1984int WIN32_rename(char *from, char *to)
1985 {
1986#ifndef OPENSSL_SYS_WINCE
1987 /* Windows rename gives an error if 'to' exists, so delete it
1988 * first and ignore file not found errror
1989 */
1990 if((remove(to) != 0) && (errno != ENOENT))
1991 return -1;
1992#undef rename
1993 return rename(from, to);
1994#else
1995 /* convert strings to UNICODE */
1996 {
1997 BOOL result = FALSE;
1998 WCHAR* wfrom;
1999 WCHAR* wto;
2000 int i;
2001 wfrom = malloc((strlen(from)+1)*2);
2002 wto = malloc((strlen(to)+1)*2);
2003 if (wfrom != NULL && wto != NULL)
2004 {
2005 for (i=0; i<(int)strlen(from)+1; i++)
2006 wfrom[i] = (short)from[i];
2007 for (i=0; i<(int)strlen(to)+1; i++)
2008 wto[i] = (short)to[i];
2009 result = MoveFile(wfrom, wto);
2010 }
2011 if (wfrom != NULL)
2012 free(wfrom);
2013 if (wto != NULL)
2014 free(wto);
2015 return result;
2016 }
2017#endif
2018 }
2019#endif
diff --git a/src/lib/libssl/src/apps/apps.h b/src/lib/libssl/src/apps/apps.h
index 8a9c4ab0a0..4320410dad 100644
--- a/src/lib/libssl/src/apps/apps.h
+++ b/src/lib/libssl/src/apps/apps.h
@@ -141,12 +141,6 @@ long app_RAND_load_files(char *file); /* `file' is a list of files to read,
141int WIN32_rename(char *oldname,char *newname); 141int WIN32_rename(char *oldname,char *newname);
142#endif 142#endif
143 143
144/* VMS below version 7.0 doesn't have strcasecmp() */
145#ifdef OPENSSL_SYS_VMS
146#define strcasecmp(str1,str2) VMS_strcasecmp((str1),(str2))
147int VMS_strcasecmp(const char *str1, const char *str2);
148#endif
149
150#ifndef MONOLITH 144#ifndef MONOLITH
151 145
152#define MAIN(a,v) main(a,v) 146#define MAIN(a,v) main(a,v)
@@ -154,9 +148,11 @@ int VMS_strcasecmp(const char *str1, const char *str2);
154#ifndef NON_MAIN 148#ifndef NON_MAIN
155CONF *config=NULL; 149CONF *config=NULL;
156BIO *bio_err=NULL; 150BIO *bio_err=NULL;
151int in_FIPS_mode=0;
157#else 152#else
158extern CONF *config; 153extern CONF *config;
159extern BIO *bio_err; 154extern BIO *bio_err;
155extern int in_FIPS_mode;
160#endif 156#endif
161 157
162#else 158#else
@@ -165,6 +161,7 @@ extern BIO *bio_err;
165extern CONF *config; 161extern CONF *config;
166extern char *default_config_file; 162extern char *default_config_file;
167extern BIO *bio_err; 163extern BIO *bio_err;
164extern int in_FIPS_mode;
168 165
169#endif 166#endif
170 167
@@ -313,6 +310,7 @@ typedef struct ca_db_st
313BIGNUM *load_serial(char *serialfile, int create, ASN1_INTEGER **retai); 310BIGNUM *load_serial(char *serialfile, int create, ASN1_INTEGER **retai);
314int save_serial(char *serialfile, char *suffix, BIGNUM *serial, ASN1_INTEGER **retai); 311int save_serial(char *serialfile, char *suffix, BIGNUM *serial, ASN1_INTEGER **retai);
315int rotate_serial(char *serialfile, char *new_suffix, char *old_suffix); 312int rotate_serial(char *serialfile, char *new_suffix, char *old_suffix);
313int rand_serial(BIGNUM *b, ASN1_INTEGER *ai);
316CA_DB *load_index(char *dbfile, DB_ATTR *dbattr); 314CA_DB *load_index(char *dbfile, DB_ATTR *dbattr);
317int index_index(CA_DB *db); 315int index_index(CA_DB *db);
318int save_index(char *dbfile, char *suffix, CA_DB *db); 316int save_index(char *dbfile, char *suffix, CA_DB *db);
@@ -341,4 +339,6 @@ X509_NAME *do_subject(char *str, long chtype);
341 339
342#define APP_PASS_LEN 1024 340#define APP_PASS_LEN 1024
343 341
342#define SERIAL_RAND_BITS 64
343
344#endif 344#endif
diff --git a/src/lib/libssl/src/apps/asn1pars.c b/src/lib/libssl/src/apps/asn1pars.c
index 7db40adf04..c89b358b23 100644
--- a/src/lib/libssl/src/apps/asn1pars.c
+++ b/src/lib/libssl/src/apps/asn1pars.c
@@ -278,6 +278,7 @@ bad:
278 tmplen=num; 278 tmplen=num;
279 for (i=0; i<sk_num(osk); i++) 279 for (i=0; i<sk_num(osk); i++)
280 { 280 {
281 int typ;
281 ASN1_TYPE *atmp; 282 ASN1_TYPE *atmp;
282 j=atoi(sk_value(osk,i)); 283 j=atoi(sk_value(osk,i));
283 if (j == 0) 284 if (j == 0)
@@ -296,6 +297,15 @@ bad:
296 ERR_print_errors(bio_err); 297 ERR_print_errors(bio_err);
297 goto end; 298 goto end;
298 } 299 }
300 typ = ASN1_TYPE_get(at);
301 if ((typ == V_ASN1_OBJECT)
302 || (typ == V_ASN1_NULL))
303 {
304 BIO_printf(bio_err, "Can't parse %s type\n",
305 typ == V_ASN1_NULL ? "NULL" : "OBJECT");
306 ERR_print_errors(bio_err);
307 goto end;
308 }
299 /* hmm... this is a little evil but it works */ 309 /* hmm... this is a little evil but it works */
300 tmpbuf=at->value.asn1_string->data; 310 tmpbuf=at->value.asn1_string->data;
301 tmplen=at->value.asn1_string->length; 311 tmplen=at->value.asn1_string->length;
diff --git a/src/lib/libssl/src/apps/ca.c b/src/lib/libssl/src/apps/ca.c
index 2db61b1eae..e98885d7e3 100644
--- a/src/lib/libssl/src/apps/ca.c
+++ b/src/lib/libssl/src/apps/ca.c
@@ -76,16 +76,6 @@
76#include <openssl/ocsp.h> 76#include <openssl/ocsp.h>
77#include <openssl/pem.h> 77#include <openssl/pem.h>
78 78
79#ifdef OPENSSL_SYS_WINDOWS
80#define strcasecmp _stricmp
81#else
82# ifdef NO_STRINGS_H
83 int strcasecmp();
84# else
85# include <strings.h>
86# endif /* NO_STRINGS_H */
87#endif
88
89#ifndef W_OK 79#ifndef W_OK
90# ifdef OPENSSL_SYS_VMS 80# ifdef OPENSSL_SYS_VMS
91# if defined(__DECC) 81# if defined(__DECC)
@@ -248,6 +238,7 @@ int MAIN(int argc, char **argv)
248 { 238 {
249 ENGINE *e = NULL; 239 ENGINE *e = NULL;
250 char *key=NULL,*passargin=NULL; 240 char *key=NULL,*passargin=NULL;
241 int create_ser = 0;
251 int free_key = 0; 242 int free_key = 0;
252 int total=0; 243 int total=0;
253 int total_done=0; 244 int total_done=0;
@@ -547,10 +538,6 @@ bad:
547 538
548 ERR_load_crypto_strings(); 539 ERR_load_crypto_strings();
549 540
550#ifndef OPENSSL_NO_ENGINE
551 e = setup_engine(bio_err, engine, 0);
552#endif
553
554 /*****************************************************************/ 541 /*****************************************************************/
555 tofree=NULL; 542 tofree=NULL;
556 if (configfile == NULL) configfile = getenv("OPENSSL_CONF"); 543 if (configfile == NULL) configfile = getenv("OPENSSL_CONF");
@@ -595,6 +582,10 @@ bad:
595 if (!load_config(bio_err, conf)) 582 if (!load_config(bio_err, conf))
596 goto err; 583 goto err;
597 584
585#ifndef OPENSSL_NO_ENGINE
586 e = setup_engine(bio_err, engine, 0);
587#endif
588
598 /* Lets get the config section we are using */ 589 /* Lets get the config section we are using */
599 if (section == NULL) 590 if (section == NULL)
600 { 591 {
@@ -666,8 +657,10 @@ bad:
666 break; 657 break;
667 } 658 }
668 } 659 }
669#ifdef RL_DEBUG
670 else 660 else
661 ERR_clear_error();
662#ifdef RL_DEBUG
663 if (!p)
671 BIO_printf(bio_err, "DEBUG: unique_subject undefined\n", p); 664 BIO_printf(bio_err, "DEBUG: unique_subject undefined\n", p);
672#endif 665#endif
673#ifdef RL_DEBUG 666#ifdef RL_DEBUG
@@ -1001,25 +994,27 @@ bad:
1001 } 994 }
1002 } 995 }
1003 996
997 if ((md == NULL) && ((md=NCONF_get_string(conf,
998 section,ENV_DEFAULT_MD)) == NULL))
999 {
1000 lookup_fail(section,ENV_DEFAULT_MD);
1001 goto err;
1002 }
1003
1004 if ((dgst=EVP_get_digestbyname(md)) == NULL)
1005 {
1006 BIO_printf(bio_err,"%s is an unsupported message digest type\n",md);
1007 goto err;
1008 }
1009
1004 if (req) 1010 if (req)
1005 { 1011 {
1006 if ((md == NULL) && ((md=NCONF_get_string(conf,
1007 section,ENV_DEFAULT_MD)) == NULL))
1008 {
1009 lookup_fail(section,ENV_DEFAULT_MD);
1010 goto err;
1011 }
1012 if ((email_dn == 1) && ((tmp_email_dn=NCONF_get_string(conf, 1012 if ((email_dn == 1) && ((tmp_email_dn=NCONF_get_string(conf,
1013 section,ENV_DEFAULT_EMAIL_DN)) != NULL )) 1013 section,ENV_DEFAULT_EMAIL_DN)) != NULL ))
1014 { 1014 {
1015 if(strcmp(tmp_email_dn,"no") == 0) 1015 if(strcmp(tmp_email_dn,"no") == 0)
1016 email_dn=0; 1016 email_dn=0;
1017 } 1017 }
1018 if ((dgst=EVP_get_digestbyname(md)) == NULL)
1019 {
1020 BIO_printf(bio_err,"%s is an unsupported message digest type\n",md);
1021 goto err;
1022 }
1023 if (verbose) 1018 if (verbose)
1024 BIO_printf(bio_err,"message digest is %s\n", 1019 BIO_printf(bio_err,"message digest is %s\n",
1025 OBJ_nid2ln(dgst->type)); 1020 OBJ_nid2ln(dgst->type));
@@ -1106,7 +1101,7 @@ bad:
1106 goto err; 1101 goto err;
1107 } 1102 }
1108 1103
1109 if ((serial=load_serial(serialfile, 0, NULL)) == NULL) 1104 if ((serial=load_serial(serialfile, create_ser, NULL)) == NULL)
1110 { 1105 {
1111 BIO_printf(bio_err,"error while loading serial number\n"); 1106 BIO_printf(bio_err,"error while loading serial number\n");
1112 goto err; 1107 goto err;
@@ -1402,23 +1397,10 @@ bad:
1402 1397
1403 /* we now have a CRL */ 1398 /* we now have a CRL */
1404 if (verbose) BIO_printf(bio_err,"signing CRL\n"); 1399 if (verbose) BIO_printf(bio_err,"signing CRL\n");
1405 if (md != NULL)
1406 {
1407 if ((dgst=EVP_get_digestbyname(md)) == NULL)
1408 {
1409 BIO_printf(bio_err,"%s is an unsupported message digest type\n",md);
1410 goto err;
1411 }
1412 }
1413 else
1414 {
1415#ifndef OPENSSL_NO_DSA 1400#ifndef OPENSSL_NO_DSA
1416 if (pkey->type == EVP_PKEY_DSA) 1401 if (pkey->type == EVP_PKEY_DSA)
1417 dgst=EVP_dss1(); 1402 dgst=EVP_dss1();
1418 else
1419#endif 1403#endif
1420 dgst=EVP_md5();
1421 }
1422 1404
1423 /* Add any extensions asked for */ 1405 /* Add any extensions asked for */
1424 1406
diff --git a/src/lib/libssl/src/apps/crl.c b/src/lib/libssl/src/apps/crl.c
index 81d66587c1..878f65468e 100644
--- a/src/lib/libssl/src/apps/crl.c
+++ b/src/lib/libssl/src/apps/crl.c
@@ -355,7 +355,11 @@ bad:
355 355
356 if (text) X509_CRL_print(out, x); 356 if (text) X509_CRL_print(out, x);
357 357
358 if (noout) goto end; 358 if (noout)
359 {
360 ret = 0;
361 goto end;
362 }
359 363
360 if (outformat == FORMAT_ASN1) 364 if (outformat == FORMAT_ASN1)
361 i=(int)i2d_X509_CRL_bio(out,x); 365 i=(int)i2d_X509_CRL_bio(out,x);
diff --git a/src/lib/libssl/src/apps/dgst.c b/src/lib/libssl/src/apps/dgst.c
index be25dafef7..17fb87b77c 100644
--- a/src/lib/libssl/src/apps/dgst.c
+++ b/src/lib/libssl/src/apps/dgst.c
@@ -66,6 +66,7 @@
66#include <openssl/objects.h> 66#include <openssl/objects.h>
67#include <openssl/x509.h> 67#include <openssl/x509.h>
68#include <openssl/pem.h> 68#include <openssl/pem.h>
69#include <openssl/hmac.h>
69 70
70#undef BUFSIZE 71#undef BUFSIZE
71#define BUFSIZE 1024*8 72#define BUFSIZE 1024*8
@@ -73,9 +74,11 @@
73#undef PROG 74#undef PROG
74#define PROG dgst_main 75#define PROG dgst_main
75 76
77static HMAC_CTX hmac_ctx;
78
76int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout, 79int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
77 EVP_PKEY *key, unsigned char *sigin, int siglen, const char *title, 80 EVP_PKEY *key, unsigned char *sigin, int siglen, const char *title,
78 const char *file); 81 const char *file,BIO *bmd,const char *hmac_key, int non_fips_allow);
79 82
80int MAIN(int, char **); 83int MAIN(int, char **);
81 84
@@ -100,9 +103,12 @@ int MAIN(int argc, char **argv)
100 EVP_PKEY *sigkey = NULL; 103 EVP_PKEY *sigkey = NULL;
101 unsigned char *sigbuf = NULL; 104 unsigned char *sigbuf = NULL;
102 int siglen = 0; 105 int siglen = 0;
106 char *passargin = NULL, *passin = NULL;
103#ifndef OPENSSL_NO_ENGINE 107#ifndef OPENSSL_NO_ENGINE
104 char *engine=NULL; 108 char *engine=NULL;
105#endif 109#endif
110 char *hmac_key=NULL;
111 int non_fips_allow = 0;
106 112
107 apps_startup(); 113 apps_startup();
108 114
@@ -145,6 +151,12 @@ int MAIN(int argc, char **argv)
145 if (--argc < 1) break; 151 if (--argc < 1) break;
146 keyfile=*(++argv); 152 keyfile=*(++argv);
147 } 153 }
154 else if (!strcmp(*argv,"-passin"))
155 {
156 if (--argc < 1)
157 break;
158 passargin=*++argv;
159 }
148 else if (strcmp(*argv,"-verify") == 0) 160 else if (strcmp(*argv,"-verify") == 0)
149 { 161 {
150 if (--argc < 1) break; 162 if (--argc < 1) break;
@@ -181,6 +193,14 @@ int MAIN(int argc, char **argv)
181 out_bin = 1; 193 out_bin = 1;
182 else if (strcmp(*argv,"-d") == 0) 194 else if (strcmp(*argv,"-d") == 0)
183 debug=1; 195 debug=1;
196 else if (strcmp(*argv,"-non-fips-allow") == 0)
197 non_fips_allow=1;
198 else if (!strcmp(*argv,"-hmac"))
199 {
200 if (--argc < 1)
201 break;
202 hmac_key=*++argv;
203 }
184 else if ((m=EVP_get_digestbyname(&((*argv)[1]))) != NULL) 204 else if ((m=EVP_get_digestbyname(&((*argv)[1]))) != NULL)
185 md=m; 205 md=m;
186 else 206 else
@@ -235,7 +255,7 @@ int MAIN(int argc, char **argv)
235 } 255 }
236 256
237#ifndef OPENSSL_NO_ENGINE 257#ifndef OPENSSL_NO_ENGINE
238 e = setup_engine(bio_err, engine, 0); 258 e = setup_engine(bio_err, engine, 0);
239#endif 259#endif
240 260
241 in=BIO_new(BIO_s_file()); 261 in=BIO_new(BIO_s_file());
@@ -247,6 +267,12 @@ int MAIN(int argc, char **argv)
247 BIO_set_callback_arg(in,bio_err); 267 BIO_set_callback_arg(in,bio_err);
248 } 268 }
249 269
270 if(!app_passwd(bio_err, passargin, NULL, &passin, NULL))
271 {
272 BIO_printf(bio_err, "Error getting password\n");
273 goto end;
274 }
275
250 if ((in == NULL) || (bmd == NULL)) 276 if ((in == NULL) || (bmd == NULL))
251 { 277 {
252 ERR_print_errors(bio_err); 278 ERR_print_errors(bio_err);
@@ -288,7 +314,7 @@ int MAIN(int argc, char **argv)
288 sigkey = load_pubkey(bio_err, keyfile, keyform, 0, NULL, 314 sigkey = load_pubkey(bio_err, keyfile, keyform, 0, NULL,
289 e, "key file"); 315 e, "key file");
290 else 316 else
291 sigkey = load_key(bio_err, keyfile, keyform, 0, NULL, 317 sigkey = load_key(bio_err, keyfile, keyform, 0, passin,
292 e, "key file"); 318 e, "key file");
293 if (!sigkey) 319 if (!sigkey)
294 { 320 {
@@ -318,18 +344,30 @@ int MAIN(int argc, char **argv)
318 goto end; 344 goto end;
319 } 345 }
320 } 346 }
321
322 347
348 if (non_fips_allow)
349 {
350 EVP_MD_CTX *md_ctx;
351 BIO_get_md_ctx(bmd,&md_ctx);
352 EVP_MD_CTX_set_flags(md_ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
353 }
323 354
324 /* we use md as a filter, reading from 'in' */ 355 /* we use md as a filter, reading from 'in' */
325 BIO_set_md(bmd,md); 356 if (!BIO_set_md(bmd,md))
357 {
358 BIO_printf(bio_err, "Error setting digest %s\n",
359 EVP_MD_name(md));
360 ERR_print_errors(bio_err);
361 goto end;
362 }
363
326 inp=BIO_push(bmd,in); 364 inp=BIO_push(bmd,in);
327 365
328 if (argc == 0) 366 if (argc == 0)
329 { 367 {
330 BIO_set_fp(in,stdin,BIO_NOCLOSE); 368 BIO_set_fp(in,stdin,BIO_NOCLOSE);
331 err=do_fp(out, buf,inp,separator, out_bin, sigkey, sigbuf, 369 err=do_fp(out, buf,inp,separator, out_bin, sigkey, sigbuf,
332 siglen,"","(stdin)"); 370 siglen,"","(stdin)",bmd,hmac_key, non_fips_allow);
333 } 371 }
334 else 372 else
335 { 373 {
@@ -347,14 +385,15 @@ int MAIN(int argc, char **argv)
347 } 385 }
348 if(!out_bin) 386 if(!out_bin)
349 { 387 {
350 size_t len = strlen(name)+strlen(argv[i])+5; 388 size_t len = strlen(name)+strlen(argv[i])+(hmac_key ? 5 : 0)+5;
351 tmp=tofree=OPENSSL_malloc(len); 389 tmp=tofree=OPENSSL_malloc(len);
352 BIO_snprintf(tmp,len,"%s(%s)= ",name,argv[i]); 390 BIO_snprintf(tmp,len,"%s%s(%s)= ",
391 hmac_key ? "HMAC-" : "",name,argv[i]);
353 } 392 }
354 else 393 else
355 tmp=""; 394 tmp="";
356 r=do_fp(out,buf,inp,separator,out_bin,sigkey,sigbuf, 395 r=do_fp(out,buf,inp,separator,out_bin,sigkey,sigbuf,
357 siglen,tmp,argv[i]); 396 siglen,tmp,argv[i],bmd,hmac_key,non_fips_allow);
358 if(r) 397 if(r)
359 err=r; 398 err=r;
360 if(tofree) 399 if(tofree)
@@ -369,6 +408,8 @@ end:
369 OPENSSL_free(buf); 408 OPENSSL_free(buf);
370 } 409 }
371 if (in != NULL) BIO_free(in); 410 if (in != NULL) BIO_free(in);
411 if (passin)
412 OPENSSL_free(passin);
372 BIO_free_all(out); 413 BIO_free_all(out);
373 EVP_PKEY_free(sigkey); 414 EVP_PKEY_free(sigkey);
374 if(sigbuf) OPENSSL_free(sigbuf); 415 if(sigbuf) OPENSSL_free(sigbuf);
@@ -379,11 +420,25 @@ end:
379 420
380int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout, 421int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
381 EVP_PKEY *key, unsigned char *sigin, int siglen, const char *title, 422 EVP_PKEY *key, unsigned char *sigin, int siglen, const char *title,
382 const char *file) 423 const char *file,BIO *bmd,const char *hmac_key, int non_fips_allow)
383 { 424 {
384 int len; 425 unsigned int len;
385 int i; 426 int i;
427 EVP_MD_CTX *md_ctx;
386 428
429 if (hmac_key)
430 {
431 EVP_MD *md;
432
433 BIO_get_md(bmd,&md);
434 HMAC_CTX_init(&hmac_ctx);
435 if (non_fips_allow)
436 HMAC_CTX_set_flags(&hmac_ctx,
437 EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
438 HMAC_Init_ex(&hmac_ctx,hmac_key,strlen(hmac_key),md, NULL);
439 BIO_get_md_ctx(bmd,&md_ctx);
440 BIO_set_md_ctx(bmd,&hmac_ctx.md_ctx);
441 }
387 for (;;) 442 for (;;)
388 { 443 {
389 i=BIO_read(bp,(char *)buf,BUFSIZE); 444 i=BIO_read(bp,(char *)buf,BUFSIZE);
@@ -426,6 +481,11 @@ int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
426 return 1; 481 return 1;
427 } 482 }
428 } 483 }
484 else if(hmac_key)
485 {
486 HMAC_Final(&hmac_ctx,buf,&len);
487 HMAC_CTX_cleanup(&hmac_ctx);
488 }
429 else 489 else
430 len=BIO_gets(bp,(char *)buf,BUFSIZE); 490 len=BIO_gets(bp,(char *)buf,BUFSIZE);
431 491
@@ -433,7 +493,7 @@ int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
433 else 493 else
434 { 494 {
435 BIO_write(out,title,strlen(title)); 495 BIO_write(out,title,strlen(title));
436 for (i=0; i<len; i++) 496 for (i=0; (unsigned int)i<len; i++)
437 { 497 {
438 if (sep && (i != 0)) 498 if (sep && (i != 0))
439 BIO_printf(out, ":"); 499 BIO_printf(out, ":");
@@ -441,6 +501,10 @@ int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
441 } 501 }
442 BIO_printf(out, "\n"); 502 BIO_printf(out, "\n");
443 } 503 }
504 if (hmac_key)
505 {
506 BIO_set_md_ctx(bmd,md_ctx);
507 }
444 return 0; 508 return 0;
445 } 509 }
446 510
diff --git a/src/lib/libssl/src/apps/enc.c b/src/lib/libssl/src/apps/enc.c
index 30378a9542..6f3161395e 100644
--- a/src/lib/libssl/src/apps/enc.c
+++ b/src/lib/libssl/src/apps/enc.c
@@ -114,9 +114,11 @@ int MAIN(int argc, char **argv)
114 unsigned char salt[PKCS5_SALT_LEN]; 114 unsigned char salt[PKCS5_SALT_LEN];
115 char *str=NULL, *passarg = NULL, *pass = NULL; 115 char *str=NULL, *passarg = NULL, *pass = NULL;
116 char *hkey=NULL,*hiv=NULL,*hsalt = NULL; 116 char *hkey=NULL,*hiv=NULL,*hsalt = NULL;
117 char *md=NULL;
117 int enc=1,printkey=0,i,base64=0; 118 int enc=1,printkey=0,i,base64=0;
118 int debug=0,olb64=0,nosalt=0; 119 int debug=0,olb64=0,nosalt=0;
119 const EVP_CIPHER *cipher=NULL,*c; 120 const EVP_CIPHER *cipher=NULL,*c;
121 EVP_CIPHER_CTX *ctx = NULL;
120 char *inf=NULL,*outf=NULL; 122 char *inf=NULL,*outf=NULL;
121 BIO *in=NULL,*out=NULL,*b64=NULL,*benc=NULL,*rbio=NULL,*wbio=NULL; 123 BIO *in=NULL,*out=NULL,*b64=NULL,*benc=NULL,*rbio=NULL,*wbio=NULL;
122#define PROG_NAME_SIZE 39 124#define PROG_NAME_SIZE 39
@@ -124,6 +126,8 @@ int MAIN(int argc, char **argv)
124#ifndef OPENSSL_NO_ENGINE 126#ifndef OPENSSL_NO_ENGINE
125 char *engine = NULL; 127 char *engine = NULL;
126#endif 128#endif
129 const EVP_MD *dgst=NULL;
130 int non_fips_allow = 0;
127 131
128 apps_startup(); 132 apps_startup();
129 133
@@ -253,6 +257,13 @@ int MAIN(int argc, char **argv)
253 if (--argc < 1) goto bad; 257 if (--argc < 1) goto bad;
254 hiv= *(++argv); 258 hiv= *(++argv);
255 } 259 }
260 else if (strcmp(*argv,"-md") == 0)
261 {
262 if (--argc < 1) goto bad;
263 md= *(++argv);
264 }
265 else if (strcmp(*argv,"-non-fips-allow") == 0)
266 non_fips_allow = 1;
256 else if ((argv[0][0] == '-') && 267 else if ((argv[0][0] == '-') &&
257 ((c=EVP_get_cipherbyname(&(argv[0][1]))) != NULL)) 268 ((c=EVP_get_cipherbyname(&(argv[0][1]))) != NULL))
258 { 269 {
@@ -271,8 +282,10 @@ bad:
271 BIO_printf(bio_err,"%-14s encrypt\n","-e"); 282 BIO_printf(bio_err,"%-14s encrypt\n","-e");
272 BIO_printf(bio_err,"%-14s decrypt\n","-d"); 283 BIO_printf(bio_err,"%-14s decrypt\n","-d");
273 BIO_printf(bio_err,"%-14s base64 encode/decode, depending on encryption flag\n","-a/-base64"); 284 BIO_printf(bio_err,"%-14s base64 encode/decode, depending on encryption flag\n","-a/-base64");
274 BIO_printf(bio_err,"%-14s key is the next argument\n","-k"); 285 BIO_printf(bio_err,"%-14s passphrase is the next argument\n","-k");
275 BIO_printf(bio_err,"%-14s key is the first line of the file argument\n","-kfile"); 286 BIO_printf(bio_err,"%-14s passphrase is the first line of the file argument\n","-kfile");
287 BIO_printf(bio_err,"%-14s the next argument is the md to use to create a key\n","-md");
288 BIO_printf(bio_err,"%-14s from a passphrase. One of md2, md5, sha or sha1\n","");
276 BIO_printf(bio_err,"%-14s key/iv in hex is the next argument\n","-K/-iv"); 289 BIO_printf(bio_err,"%-14s key/iv in hex is the next argument\n","-K/-iv");
277 BIO_printf(bio_err,"%-14s print the iv/key (then exit if -P)\n","-[pP]"); 290 BIO_printf(bio_err,"%-14s print the iv/key (then exit if -P)\n","-[pP]");
278 BIO_printf(bio_err,"%-14s buffer size\n","-bufsize <n>"); 291 BIO_printf(bio_err,"%-14s buffer size\n","-bufsize <n>");
@@ -296,6 +309,20 @@ bad:
296 e = setup_engine(bio_err, engine, 0); 309 e = setup_engine(bio_err, engine, 0);
297#endif 310#endif
298 311
312 if (md && (dgst=EVP_get_digestbyname(md)) == NULL)
313 {
314 BIO_printf(bio_err,"%s is an unsupported message digest type\n",md);
315 goto end;
316 }
317
318 if (dgst == NULL)
319 {
320 if (in_FIPS_mode)
321 dgst = EVP_sha1();
322 else
323 dgst = EVP_md5();
324 }
325
299 if (bufsize != NULL) 326 if (bufsize != NULL)
300 { 327 {
301 unsigned long n; 328 unsigned long n;
@@ -483,7 +510,7 @@ bad:
483 sptr = salt; 510 sptr = salt;
484 } 511 }
485 512
486 EVP_BytesToKey(cipher,EVP_md5(),sptr, 513 EVP_BytesToKey(cipher,dgst,sptr,
487 (unsigned char *)str, 514 (unsigned char *)str,
488 strlen(str),1,key,iv); 515 strlen(str),1,key,iv);
489 /* zero the complete buffer or the string 516 /* zero the complete buffer or the string
@@ -516,13 +543,43 @@ bad:
516 543
517 if ((benc=BIO_new(BIO_f_cipher())) == NULL) 544 if ((benc=BIO_new(BIO_f_cipher())) == NULL)
518 goto end; 545 goto end;
519 BIO_set_cipher(benc,cipher,key,iv,enc); 546
520 if (nopad) 547 /* Since we may be changing parameters work on the encryption
548 * context rather than calling BIO_set_cipher().
549 */
550
551 BIO_get_cipher_ctx(benc, &ctx);
552 if (!EVP_CipherInit_ex(ctx, cipher, NULL, NULL, NULL, enc))
521 { 553 {
522 EVP_CIPHER_CTX *ctx; 554 BIO_printf(bio_err, "Error setting cipher %s\n",
523 BIO_get_cipher_ctx(benc, &ctx); 555 EVP_CIPHER_name(cipher));
556 ERR_print_errors(bio_err);
557 goto end;
558 }
559
560 if (non_fips_allow)
561 EVP_CIPHER_CTX_set_flags(ctx,
562 EVP_CIPH_FLAG_NON_FIPS_ALLOW);
563
564 if (!EVP_CipherInit_ex(ctx, NULL, NULL, key, iv, enc))
565 {
566 BIO_printf(bio_err, "Error setting cipher %s\n",
567 EVP_CIPHER_name(cipher));
568 ERR_print_errors(bio_err);
569 goto end;
570 }
571
572 if (nopad)
524 EVP_CIPHER_CTX_set_padding(ctx, 0); 573 EVP_CIPHER_CTX_set_padding(ctx, 0);
574
575 if (!EVP_CipherInit_ex(ctx, NULL, NULL, key, iv, enc))
576 {
577 BIO_printf(bio_err, "Error setting cipher %s\n",
578 EVP_CIPHER_name(cipher));
579 ERR_print_errors(bio_err);
580 goto end;
525 } 581 }
582
526 if (debug) 583 if (debug)
527 { 584 {
528 BIO_set_callback(benc,BIO_debug_callback); 585 BIO_set_callback(benc,BIO_debug_callback);
diff --git a/src/lib/libssl/src/apps/makeapps.com b/src/lib/libssl/src/apps/makeapps.com
index 0197c8a171..2f1af9ec94 100644
--- a/src/lib/libssl/src/apps/makeapps.com
+++ b/src/lib/libssl/src/apps/makeapps.com
@@ -142,13 +142,13 @@ $ LIB_FILES = "VERIFY;ASN1PARS;REQ;DGST;DH;DHPARAM;ENC;PASSWD;GENDH;ERRSTR;"+-
142 "RSA;RSAUTL;DSA;DSAPARAM;"+- 142 "RSA;RSAUTL;DSA;DSAPARAM;"+-
143 "X509;GENRSA;GENDSA;S_SERVER;S_CLIENT;SPEED;"+- 143 "X509;GENRSA;GENDSA;S_SERVER;S_CLIENT;SPEED;"+-
144 "S_TIME;APPS;S_CB;S_SOCKET;APP_RAND;VERSION;SESS_ID;"+- 144 "S_TIME;APPS;S_CB;S_SOCKET;APP_RAND;VERSION;SESS_ID;"+-
145 "CIPHERS;NSEQ;PKCS12;PKCS8;SPKAC;SMIME;RAND;ENGINE;OCSP" 145 "CIPHERS;NSEQ;PKCS12;PKCS8;SPKAC;SMIME;RAND;ENGINE;OCSP;PRIME"
146$ APP_FILES := OPENSSL,'OBJ_DIR'VERIFY.OBJ,ASN1PARS.OBJ,REQ.OBJ,DGST.OBJ,DH.OBJ,DHPARAM.OBJ,ENC.OBJ,PASSWD.OBJ,GENDH.OBJ,ERRSTR.OBJ,- 146$ APP_FILES := OPENSSL,'OBJ_DIR'VERIFY.OBJ,ASN1PARS.OBJ,REQ.OBJ,DGST.OBJ,DH.OBJ,DHPARAM.OBJ,ENC.OBJ,PASSWD.OBJ,GENDH.OBJ,ERRSTR.OBJ,-
147 CA.OBJ,PKCS7.OBJ,CRL2P7.OBJ,CRL.OBJ,- 147 CA.OBJ,PKCS7.OBJ,CRL2P7.OBJ,CRL.OBJ,-
148 RSA.OBJ,RSAUTL.OBJ,DSA.OBJ,DSAPARAM.OBJ,- 148 RSA.OBJ,RSAUTL.OBJ,DSA.OBJ,DSAPARAM.OBJ,-
149 X509.OBJ,GENRSA.OBJ,GENDSA.OBJ,S_SERVER.OBJ,S_CLIENT.OBJ,SPEED.OBJ,- 149 X509.OBJ,GENRSA.OBJ,GENDSA.OBJ,S_SERVER.OBJ,S_CLIENT.OBJ,SPEED.OBJ,-
150 S_TIME.OBJ,APPS.OBJ,S_CB.OBJ,S_SOCKET.OBJ,APP_RAND.OBJ,VERSION.OBJ,SESS_ID.OBJ,- 150 S_TIME.OBJ,APPS.OBJ,S_CB.OBJ,S_SOCKET.OBJ,APP_RAND.OBJ,VERSION.OBJ,SESS_ID.OBJ,-
151 CIPHERS.OBJ,NSEQ.OBJ,PKCS12.OBJ,PKCS8.OBJ,SPKAC.OBJ,SMIME.OBJ,RAND.OBJ,ENGINE.OBJ,OCSP.OBJ 151 CIPHERS.OBJ,NSEQ.OBJ,PKCS12.OBJ,PKCS8.OBJ,SPKAC.OBJ,SMIME.OBJ,RAND.OBJ,ENGINE.OBJ,OCSP.OBJ,PRIME.OBJ
152$ TCPIP_PROGRAMS = ",," 152$ TCPIP_PROGRAMS = ",,"
153$ IF COMPILER .EQS. "VAXC" THEN - 153$ IF COMPILER .EQS. "VAXC" THEN -
154 TCPIP_PROGRAMS = ",OPENSSL," 154 TCPIP_PROGRAMS = ",OPENSSL,"
@@ -679,7 +679,7 @@ $ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
679 THEN CC = "CC/DECC" 679 THEN CC = "CC/DECC"
680$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89" + - 680$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89" + -
681 "/NOLIST/PREFIX=ALL" + - 681 "/NOLIST/PREFIX=ALL" + -
682 "/INCLUDE=(SYS$DISK:[-])" + CCEXTRAFLAGS 682 "/INCLUDE=(SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + CCEXTRAFLAGS
683$! 683$!
684$! Define The Linker Options File Name. 684$! Define The Linker Options File Name.
685$! 685$!
@@ -711,7 +711,7 @@ $ EXIT
711$ ENDIF 711$ ENDIF
712$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC" 712$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC"
713$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - 713$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
714 "/INCLUDE=(SYS$DISK:[-])" + CCEXTRAFLAGS 714 "/INCLUDE=(SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + CCEXTRAFLAGS
715$ CCDEFS = CCDEFS + ",""VAXC""" 715$ CCDEFS = CCDEFS + ",""VAXC"""
716$! 716$!
717$! Define <sys> As SYS$COMMON:[SYSLIB] 717$! Define <sys> As SYS$COMMON:[SYSLIB]
@@ -743,7 +743,7 @@ $! Use GNU C...
743$! 743$!
744$ IF F$TYPE(GCC) .EQS. "" THEN GCC := GCC 744$ IF F$TYPE(GCC) .EQS. "" THEN GCC := GCC
745$ CC = GCC+"/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - 745$ CC = GCC+"/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
746 "/INCLUDE=(SYS$DISK:[-])" + CCEXTRAFLAGS 746 "/INCLUDE=(SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + CCEXTRAFLAGS
747$! 747$!
748$! Define The Linker Options File Name. 748$! Define The Linker Options File Name.
749$! 749$!
diff --git a/src/lib/libssl/src/apps/openssl-vms.cnf b/src/lib/libssl/src/apps/openssl-vms.cnf
index d4498713fa..878467ce98 100644
--- a/src/lib/libssl/src/apps/openssl-vms.cnf
+++ b/src/lib/libssl/src/apps/openssl-vms.cnf
@@ -3,8 +3,13 @@
3# This is mostly being used for generation of certificate requests. 3# This is mostly being used for generation of certificate requests.
4# 4#
5 5
6# This definition stops the following lines choking if HOME isn't
7# defined.
8HOME = .
6RANDFILE = $ENV::HOME/.rnd 9RANDFILE = $ENV::HOME/.rnd
7oid_file = $ENV::HOME/.oid 10
11# Extra OBJECT IDENTIFIER info:
12#oid_file = $ENV::HOME/.oid
8oid_section = new_oids 13oid_section = new_oids
9 14
10# To use this configuration file with the "-extfile" option of the 15# To use this configuration file with the "-extfile" option of the
@@ -29,22 +34,35 @@ default_ca = CA_default # The default ca section
29#################################################################### 34####################################################################
30[ CA_default ] 35[ CA_default ]
31 36
32dir = sys\$disk:[.demoCA # Where everything is kept 37dir = sys\$disk:[.demoCA # Where everything is kept
33certs = $dir.certs] # Where the issued certs are kept 38certs = $dir.certs] # Where the issued certs are kept
34crl_dir = $dir.crl] # Where the issued crl are kept 39crl_dir = $dir.crl] # Where the issued crl are kept
35database = $dir]index.txt # database index file. 40database = $dir]index.txt # database index file.
36new_certs_dir = $dir.newcerts] # default place for new certs. 41#unique_subject = no # Set to 'no' to allow creation of
42 # several ctificates with same subject.
43new_certs_dir = $dir.newcerts] # default place for new certs.
37 44
38certificate = $dir]cacert.pem # The CA certificate 45certificate = $dir]cacert.pem # The CA certificate
39serial = $dir]serial. # The current serial number 46serial = $dir]serial. # The current serial number
47#crlnumber = $dir]crlnumber. # the current crl number must be
48 # commented out to leave a V1 CRL
40crl = $dir]crl.pem # The current CRL 49crl = $dir]crl.pem # The current CRL
41private_key = $dir.private]cakey.pem# The private key 50private_key = $dir.private]cakey.pem# The private key
42RANDFILE = $dir.private].rand # private random number file 51RANDFILE = $dir.private].rand # private random number file
43 52
44x509_extensions = usr_cert # The extentions to add to the cert 53x509_extensions = usr_cert # The extentions to add to the cert
45 54
55# Comment out the following two lines for the "traditional"
56# (and highly broken) format.
57name_opt = ca_default # Subject Name options
58cert_opt = ca_default # Certificate field options
59
60# Extension copying option: use with caution.
61# copy_extensions = copy
62
46# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs 63# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs
47# so this is commented out by default to leave a V1 CRL. 64# so this is commented out by default to leave a V1 CRL.
65# crlnumber must also be commented out to leave a V1 CRL.
48# crl_extensions = crl_ext 66# crl_extensions = crl_ext
49 67
50default_days = 365 # how long to certify for 68default_days = 365 # how long to certify for
@@ -86,16 +104,19 @@ distinguished_name = req_distinguished_name
86attributes = req_attributes 104attributes = req_attributes
87x509_extensions = v3_ca # The extentions to add to the self signed cert 105x509_extensions = v3_ca # The extentions to add to the self signed cert
88 106
89# This sets the permitted types in a DirectoryString. There are several 107# Passwords for private keys if not present they will be prompted for
90# options. 108# input_password = secret
109# output_password = secret
110
111# This sets a mask for permitted string types. There are several options.
91# default: PrintableString, T61String, BMPString. 112# default: PrintableString, T61String, BMPString.
92# pkix : PrintableString, BMPString. 113# pkix : PrintableString, BMPString.
93# utf8only: only UTF8Strings. 114# utf8only: only UTF8Strings.
94# nobmp : PrintableString, T61String (no BMPStrings). 115# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings).
95# MASK:XXXX a literal mask value. 116# MASK:XXXX a literal mask value.
96# WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings 117# WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings
97# so use this option with caution! 118# so use this option with caution!
98dirstring_type = nobmp 119string_mask = nombstr
99 120
100# req_extensions = v3_req # The extensions to add to a certificate request 121# req_extensions = v3_req # The extensions to add to a certificate request
101 122
@@ -124,7 +145,7 @@ commonName = Common Name (eg, YOUR name)
124commonName_max = 64 145commonName_max = 64
125 146
126emailAddress = Email Address 147emailAddress = Email Address
127emailAddress_max = 40 148emailAddress_max = 64
128 149
129# SET-ex3 = SET extension number 3 150# SET-ex3 = SET extension number 3
130 151
@@ -172,6 +193,9 @@ authorityKeyIdentifier=keyid,issuer:always
172# This stuff is for subjectAltName and issuerAltname. 193# This stuff is for subjectAltName and issuerAltname.
173# Import the email address. 194# Import the email address.
174# subjectAltName=email:copy 195# subjectAltName=email:copy
196# An alternative to produce certificates that aren't
197# deprecated according to PKIX.
198# subjectAltName=email:move
175 199
176# Copy subject details 200# Copy subject details
177# issuerAltName=issuer:copy 201# issuerAltName=issuer:copy
@@ -234,3 +258,56 @@ basicConstraints = CA:true
234 258
235# issuerAltName=issuer:copy 259# issuerAltName=issuer:copy
236authorityKeyIdentifier=keyid:always,issuer:always 260authorityKeyIdentifier=keyid:always,issuer:always
261
262[ proxy_cert_ext ]
263# These extensions should be added when creating a proxy certificate
264
265# This goes against PKIX guidelines but some CAs do it and some software
266# requires this to avoid interpreting an end user certificate as a CA.
267
268basicConstraints=CA:FALSE
269
270# Here are some examples of the usage of nsCertType. If it is omitted
271# the certificate can be used for anything *except* object signing.
272
273# This is OK for an SSL server.
274# nsCertType = server
275
276# For an object signing certificate this would be used.
277# nsCertType = objsign
278
279# For normal client use this is typical
280# nsCertType = client, email
281
282# and for everything including object signing:
283# nsCertType = client, email, objsign
284
285# This is typical in keyUsage for a client certificate.
286# keyUsage = nonRepudiation, digitalSignature, keyEncipherment
287
288# This will be displayed in Netscape's comment listbox.
289nsComment = "OpenSSL Generated Certificate"
290
291# PKIX recommendations harmless if included in all certificates.
292subjectKeyIdentifier=hash
293authorityKeyIdentifier=keyid,issuer:always
294
295# This stuff is for subjectAltName and issuerAltname.
296# Import the email address.
297# subjectAltName=email:copy
298# An alternative to produce certificates that aren't
299# deprecated according to PKIX.
300# subjectAltName=email:move
301
302# Copy subject details
303# issuerAltName=issuer:copy
304
305#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem
306#nsBaseUrl
307#nsRevocationUrl
308#nsRenewalUrl
309#nsCaPolicyUrl
310#nsSslServerName
311
312# This really needs to be in place for it to be a proxy certificate.
313proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo
diff --git a/src/lib/libssl/src/apps/openssl.c b/src/lib/libssl/src/apps/openssl.c
index e0d89d4ab4..65a9ee8a66 100644
--- a/src/lib/libssl/src/apps/openssl.c
+++ b/src/lib/libssl/src/apps/openssl.c
@@ -129,6 +129,7 @@
129#include "progs.h" 129#include "progs.h"
130#include "s_apps.h" 130#include "s_apps.h"
131#include <openssl/err.h> 131#include <openssl/err.h>
132#include <openssl/fips.h>
132 133
133/* The LHASH callbacks ("hash" & "cmp") have been replaced by functions with the 134/* The LHASH callbacks ("hash" & "cmp") have been replaced by functions with the
134 * base prototypes (we cast each variable inside the function to the required 135 * base prototypes (we cast each variable inside the function to the required
@@ -147,6 +148,7 @@ char *default_config_file=NULL;
147#ifdef MONOLITH 148#ifdef MONOLITH
148CONF *config=NULL; 149CONF *config=NULL;
149BIO *bio_err=NULL; 150BIO *bio_err=NULL;
151int in_FIPS_mode=0;
150#endif 152#endif
151 153
152 154
@@ -227,10 +229,31 @@ int main(int Argc, char *Argv[])
227 char **argv,*p; 229 char **argv,*p;
228 LHASH *prog=NULL; 230 LHASH *prog=NULL;
229 long errline; 231 long errline;
230 232
231 arg.data=NULL; 233 arg.data=NULL;
232 arg.count=0; 234 arg.count=0;
233 235
236 in_FIPS_mode = 0;
237
238#ifdef OPENSSL_FIPS
239 if(getenv("OPENSSL_FIPS")) {
240#if defined(_WIN32)
241 char filename[MAX_PATH] = "";
242 GetModuleFileNameA( NULL, filename, MAX_PATH) ;
243 p = filename;
244#else
245 p = Argv[0];
246#endif
247 if (!FIPS_mode_set(1,p)) {
248 ERR_load_crypto_strings();
249 ERR_print_errors(BIO_new_fp(stderr,BIO_NOCLOSE));
250 EXIT(1);
251 }
252 in_FIPS_mode = 1;
253 if (getenv("OPENSSL_FIPS_MD5"))
254 FIPS_allow_md5(1);
255 }
256#endif
234 if (bio_err == NULL) 257 if (bio_err == NULL)
235 if ((bio_err=BIO_new(BIO_s_file())) != NULL) 258 if ((bio_err=BIO_new(BIO_s_file())) != NULL)
236 BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT); 259 BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
diff --git a/src/lib/libssl/src/apps/openssl.cnf b/src/lib/libssl/src/apps/openssl.cnf
index 854d1f164e..4c1d595b0a 100644
--- a/src/lib/libssl/src/apps/openssl.cnf
+++ b/src/lib/libssl/src/apps/openssl.cnf
@@ -44,8 +44,8 @@ new_certs_dir = $dir/newcerts # default place for new certs.
44 44
45certificate = $dir/cacert.pem # The CA certificate 45certificate = $dir/cacert.pem # The CA certificate
46serial = $dir/serial # The current serial number 46serial = $dir/serial # The current serial number
47#crlnumber = $dir/crlnumber # the current crl number 47#crlnumber = $dir/crlnumber # the current crl number must be
48 # must be commented out to leave a V1 CRL 48 # commented out to leave a V1 CRL
49crl = $dir/crl.pem # The current CRL 49crl = $dir/crl.pem # The current CRL
50private_key = $dir/private/cakey.pem# The private key 50private_key = $dir/private/cakey.pem# The private key
51RANDFILE = $dir/private/.rand # private random number file 51RANDFILE = $dir/private/.rand # private random number file
@@ -258,3 +258,56 @@ basicConstraints = CA:true
258 258
259# issuerAltName=issuer:copy 259# issuerAltName=issuer:copy
260authorityKeyIdentifier=keyid:always,issuer:always 260authorityKeyIdentifier=keyid:always,issuer:always
261
262[ proxy_cert_ext ]
263# These extensions should be added when creating a proxy certificate
264
265# This goes against PKIX guidelines but some CAs do it and some software
266# requires this to avoid interpreting an end user certificate as a CA.
267
268basicConstraints=CA:FALSE
269
270# Here are some examples of the usage of nsCertType. If it is omitted
271# the certificate can be used for anything *except* object signing.
272
273# This is OK for an SSL server.
274# nsCertType = server
275
276# For an object signing certificate this would be used.
277# nsCertType = objsign
278
279# For normal client use this is typical
280# nsCertType = client, email
281
282# and for everything including object signing:
283# nsCertType = client, email, objsign
284
285# This is typical in keyUsage for a client certificate.
286# keyUsage = nonRepudiation, digitalSignature, keyEncipherment
287
288# This will be displayed in Netscape's comment listbox.
289nsComment = "OpenSSL Generated Certificate"
290
291# PKIX recommendations harmless if included in all certificates.
292subjectKeyIdentifier=hash
293authorityKeyIdentifier=keyid,issuer:always
294
295# This stuff is for subjectAltName and issuerAltname.
296# Import the email address.
297# subjectAltName=email:copy
298# An alternative to produce certificates that aren't
299# deprecated according to PKIX.
300# subjectAltName=email:move
301
302# Copy subject details
303# issuerAltName=issuer:copy
304
305#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem
306#nsBaseUrl
307#nsRevocationUrl
308#nsRenewalUrl
309#nsCaPolicyUrl
310#nsSslServerName
311
312# This really needs to be in place for it to be a proxy certificate.
313proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo
diff --git a/src/lib/libssl/src/apps/pkcs12.c b/src/lib/libssl/src/apps/pkcs12.c
index 71192bdf74..c961e6b57b 100644
--- a/src/lib/libssl/src/apps/pkcs12.c
+++ b/src/lib/libssl/src/apps/pkcs12.c
@@ -109,7 +109,7 @@ int MAIN(int argc, char **argv)
109 int maciter = PKCS12_DEFAULT_ITER; 109 int maciter = PKCS12_DEFAULT_ITER;
110 int twopass = 0; 110 int twopass = 0;
111 int keytype = 0; 111 int keytype = 0;
112 int cert_pbe = NID_pbe_WithSHA1And40BitRC2_CBC; 112 int cert_pbe;
113 int key_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC; 113 int key_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
114 int ret = 1; 114 int ret = 1;
115 int macver = 1; 115 int macver = 1;
@@ -126,6 +126,13 @@ int MAIN(int argc, char **argv)
126 126
127 apps_startup(); 127 apps_startup();
128 128
129#ifdef OPENSSL_FIPS
130 if (FIPS_mode())
131 cert_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
132 else
133#endif
134 cert_pbe = NID_pbe_WithSHA1And40BitRC2_CBC;
135
129 enc = EVP_des_ede3_cbc(); 136 enc = EVP_des_ede3_cbc();
130 if (bio_err == NULL ) bio_err = BIO_new_fp (stderr, BIO_NOCLOSE); 137 if (bio_err == NULL ) bio_err = BIO_new_fp (stderr, BIO_NOCLOSE);
131 138
@@ -666,7 +673,7 @@ int MAIN(int argc, char **argv)
666 CRYPTO_push_info("verify MAC"); 673 CRYPTO_push_info("verify MAC");
667#endif 674#endif
668 /* If we enter empty password try no password first */ 675 /* If we enter empty password try no password first */
669 if(!macpass[0] && PKCS12_verify_mac(p12, NULL, 0)) { 676 if(!mpass[0] && PKCS12_verify_mac(p12, NULL, 0)) {
670 /* If mac and crypto pass the same set it to NULL too */ 677 /* If mac and crypto pass the same set it to NULL too */
671 if(!twopass) cpass = NULL; 678 if(!twopass) cpass = NULL;
672 } else if (!PKCS12_verify_mac(p12, mpass, -1)) { 679 } else if (!PKCS12_verify_mac(p12, mpass, -1)) {
@@ -710,9 +717,10 @@ int MAIN(int argc, char **argv)
710int dump_certs_keys_p12 (BIO *out, PKCS12 *p12, char *pass, 717int dump_certs_keys_p12 (BIO *out, PKCS12 *p12, char *pass,
711 int passlen, int options, char *pempass) 718 int passlen, int options, char *pempass)
712{ 719{
713 STACK_OF(PKCS7) *asafes; 720 STACK_OF(PKCS7) *asafes = NULL;
714 STACK_OF(PKCS12_SAFEBAG) *bags; 721 STACK_OF(PKCS12_SAFEBAG) *bags;
715 int i, bagnid; 722 int i, bagnid;
723 int ret = 0;
716 PKCS7 *p7; 724 PKCS7 *p7;
717 725
718 if (!( asafes = PKCS12_unpack_authsafes(p12))) return 0; 726 if (!( asafes = PKCS12_unpack_authsafes(p12))) return 0;
@@ -730,16 +738,22 @@ int dump_certs_keys_p12 (BIO *out, PKCS12 *p12, char *pass,
730 } 738 }
731 bags = PKCS12_unpack_p7encdata(p7, pass, passlen); 739 bags = PKCS12_unpack_p7encdata(p7, pass, passlen);
732 } else continue; 740 } else continue;
733 if (!bags) return 0; 741 if (!bags) goto err;
734 if (!dump_certs_pkeys_bags (out, bags, pass, passlen, 742 if (!dump_certs_pkeys_bags (out, bags, pass, passlen,
735 options, pempass)) { 743 options, pempass)) {
736 sk_PKCS12_SAFEBAG_pop_free (bags, PKCS12_SAFEBAG_free); 744 sk_PKCS12_SAFEBAG_pop_free (bags, PKCS12_SAFEBAG_free);
737 return 0; 745 goto err;
738 } 746 }
739 sk_PKCS12_SAFEBAG_pop_free (bags, PKCS12_SAFEBAG_free); 747 sk_PKCS12_SAFEBAG_pop_free (bags, PKCS12_SAFEBAG_free);
748 bags = NULL;
740 } 749 }
741 sk_PKCS7_pop_free (asafes, PKCS7_free); 750 ret = 1;
742 return 1; 751
752 err:
753
754 if (asafes)
755 sk_PKCS7_pop_free (asafes, PKCS7_free);
756 return ret;
743} 757}
744 758
745int dump_certs_pkeys_bags (BIO *out, STACK_OF(PKCS12_SAFEBAG) *bags, 759int dump_certs_pkeys_bags (BIO *out, STACK_OF(PKCS12_SAFEBAG) *bags,
diff --git a/src/lib/libssl/src/apps/pkcs8.c b/src/lib/libssl/src/apps/pkcs8.c
index ee8cf02813..d5085444e2 100644
--- a/src/lib/libssl/src/apps/pkcs8.c
+++ b/src/lib/libssl/src/apps/pkcs8.c
@@ -1,6 +1,6 @@
1/* pkcs8.c */ 1/* pkcs8.c */
2/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL 2/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
3 * project 1999. 3 * project 1999-2004.
4 */ 4 */
5/* ==================================================================== 5/* ====================================================================
6 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 6 * Copyright (c) 1999 The OpenSSL Project. All rights reserved.
@@ -68,7 +68,7 @@
68int MAIN(int, char **); 68int MAIN(int, char **);
69 69
70int MAIN(int argc, char **argv) 70int MAIN(int argc, char **argv)
71{ 71 {
72 ENGINE *e = NULL; 72 ENGINE *e = NULL;
73 char **args, *infile = NULL, *outfile = NULL; 73 char **args, *infile = NULL, *outfile = NULL;
74 char *passargin = NULL, *passargout = NULL; 74 char *passargin = NULL, *passargout = NULL;
@@ -100,43 +100,70 @@ int MAIN(int argc, char **argv)
100 ERR_load_crypto_strings(); 100 ERR_load_crypto_strings();
101 OpenSSL_add_all_algorithms(); 101 OpenSSL_add_all_algorithms();
102 args = argv + 1; 102 args = argv + 1;
103 while (!badarg && *args && *args[0] == '-') { 103 while (!badarg && *args && *args[0] == '-')
104 if (!strcmp(*args,"-v2")) { 104 {
105 if (args[1]) { 105 if (!strcmp(*args,"-v2"))
106 {
107 if (args[1])
108 {
106 args++; 109 args++;
107 cipher=EVP_get_cipherbyname(*args); 110 cipher=EVP_get_cipherbyname(*args);
108 if(!cipher) { 111 if (!cipher)
112 {
109 BIO_printf(bio_err, 113 BIO_printf(bio_err,
110 "Unknown cipher %s\n", *args); 114 "Unknown cipher %s\n", *args);
111 badarg = 1; 115 badarg = 1;
116 }
112 } 117 }
113 } else badarg = 1; 118 else
114 } else if (!strcmp(*args,"-v1")) { 119 badarg = 1;
115 if (args[1]) { 120 }
121 else if (!strcmp(*args,"-v1"))
122 {
123 if (args[1])
124 {
116 args++; 125 args++;
117 pbe_nid=OBJ_txt2nid(*args); 126 pbe_nid=OBJ_txt2nid(*args);
118 if(pbe_nid == NID_undef) { 127 if (pbe_nid == NID_undef)
128 {
119 BIO_printf(bio_err, 129 BIO_printf(bio_err,
120 "Unknown PBE algorithm %s\n", *args); 130 "Unknown PBE algorithm %s\n", *args);
121 badarg = 1; 131 badarg = 1;
132 }
122 } 133 }
123 } else badarg = 1; 134 else
124 } else if (!strcmp(*args,"-inform")) { 135 badarg = 1;
125 if (args[1]) { 136 }
137 else if (!strcmp(*args,"-inform"))
138 {
139 if (args[1])
140 {
126 args++; 141 args++;
127 informat=str2fmt(*args); 142 informat=str2fmt(*args);
128 } else badarg = 1; 143 }
129 } else if (!strcmp(*args,"-outform")) { 144 else badarg = 1;
130 if (args[1]) { 145 }
146 else if (!strcmp(*args,"-outform"))
147 {
148 if (args[1])
149 {
131 args++; 150 args++;
132 outformat=str2fmt(*args); 151 outformat=str2fmt(*args);
133 } else badarg = 1; 152 }
134 } else if (!strcmp (*args, "-topk8")) topk8 = 1; 153 else badarg = 1;
135 else if (!strcmp (*args, "-noiter")) iter = 1; 154 }
136 else if (!strcmp (*args, "-nocrypt")) nocrypt = 1; 155 else if (!strcmp (*args, "-topk8"))
137 else if (!strcmp (*args, "-nooct")) p8_broken = PKCS8_NO_OCTET; 156 topk8 = 1;
138 else if (!strcmp (*args, "-nsdb")) p8_broken = PKCS8_NS_DB; 157 else if (!strcmp (*args, "-noiter"))
139 else if (!strcmp (*args, "-embed")) p8_broken = PKCS8_EMBEDDED_PARAM; 158 iter = 1;
159 else if (!strcmp (*args, "-nocrypt"))
160 nocrypt = 1;
161 else if (!strcmp (*args, "-nooct"))
162 p8_broken = PKCS8_NO_OCTET;
163 else if (!strcmp (*args, "-nsdb"))
164 p8_broken = PKCS8_NS_DB;
165 else if (!strcmp (*args, "-embed"))
166 p8_broken = PKCS8_EMBEDDED_PARAM;
140 else if (!strcmp(*args,"-passin")) 167 else if (!strcmp(*args,"-passin"))
141 { 168 {
142 if (!args[1]) goto bad; 169 if (!args[1]) goto bad;
@@ -154,21 +181,30 @@ int MAIN(int argc, char **argv)
154 engine= *(++args); 181 engine= *(++args);
155 } 182 }
156#endif 183#endif
157 else if (!strcmp (*args, "-in")) { 184 else if (!strcmp (*args, "-in"))
158 if (args[1]) { 185 {
186 if (args[1])
187 {
159 args++; 188 args++;
160 infile = *args; 189 infile = *args;
161 } else badarg = 1; 190 }
162 } else if (!strcmp (*args, "-out")) { 191 else badarg = 1;
163 if (args[1]) { 192 }
193 else if (!strcmp (*args, "-out"))
194 {
195 if (args[1])
196 {
164 args++; 197 args++;
165 outfile = *args; 198 outfile = *args;
166 } else badarg = 1; 199 }
167 } else badarg = 1; 200 else badarg = 1;
201 }
202 else badarg = 1;
168 args++; 203 args++;
169 } 204 }
170 205
171 if (badarg) { 206 if (badarg)
207 {
172 bad: 208 bad:
173 BIO_printf(bio_err, "Usage pkcs8 [options]\n"); 209 BIO_printf(bio_err, "Usage pkcs8 [options]\n");
174 BIO_printf(bio_err, "where options are\n"); 210 BIO_printf(bio_err, "where options are\n");
@@ -189,147 +225,199 @@ int MAIN(int argc, char **argv)
189#ifndef OPENSSL_NO_ENGINE 225#ifndef OPENSSL_NO_ENGINE
190 BIO_printf(bio_err," -engine e use engine e, possibly a hardware device.\n"); 226 BIO_printf(bio_err," -engine e use engine e, possibly a hardware device.\n");
191#endif 227#endif
192 return (1); 228 return 1;
193 } 229 }
194 230
195#ifndef OPENSSL_NO_ENGINE 231#ifndef OPENSSL_NO_ENGINE
196 e = setup_engine(bio_err, engine, 0); 232 e = setup_engine(bio_err, engine, 0);
197#endif 233#endif
198 234
199 if(!app_passwd(bio_err, passargin, passargout, &passin, &passout)) { 235 if (!app_passwd(bio_err, passargin, passargout, &passin, &passout))
236 {
200 BIO_printf(bio_err, "Error getting passwords\n"); 237 BIO_printf(bio_err, "Error getting passwords\n");
201 return (1); 238 return 1;
202 } 239 }
203 240
204 if ((pbe_nid == -1) && !cipher) pbe_nid = NID_pbeWithMD5AndDES_CBC; 241 if ((pbe_nid == -1) && !cipher)
242 pbe_nid = NID_pbeWithMD5AndDES_CBC;
205 243
206 if (infile) { 244 if (infile)
207 if (!(in = BIO_new_file(infile, "rb"))) { 245 {
246 if (!(in = BIO_new_file(infile, "rb")))
247 {
208 BIO_printf(bio_err, 248 BIO_printf(bio_err,
209 "Can't open input file %s\n", infile); 249 "Can't open input file %s\n", infile);
210 return (1); 250 return (1);
251 }
211 } 252 }
212 } else in = BIO_new_fp (stdin, BIO_NOCLOSE); 253 else
254 in = BIO_new_fp (stdin, BIO_NOCLOSE);
213 255
214 if (outfile) { 256 if (outfile)
215 if (!(out = BIO_new_file (outfile, "wb"))) { 257 {
258 if (!(out = BIO_new_file (outfile, "wb")))
259 {
216 BIO_printf(bio_err, 260 BIO_printf(bio_err,
217 "Can't open output file %s\n", outfile); 261 "Can't open output file %s\n", outfile);
218 return (1); 262 return (1);
263 }
219 } 264 }
220 } else { 265 else
266 {
221 out = BIO_new_fp (stdout, BIO_NOCLOSE); 267 out = BIO_new_fp (stdout, BIO_NOCLOSE);
222#ifdef OPENSSL_SYS_VMS 268#ifdef OPENSSL_SYS_VMS
223 { 269 {
224 BIO *tmpbio = BIO_new(BIO_f_linebuffer()); 270 BIO *tmpbio = BIO_new(BIO_f_linebuffer());
225 out = BIO_push(tmpbio, out); 271 out = BIO_push(tmpbio, out);
226 } 272 }
227#endif 273#endif
228 } 274 }
229 if (topk8) 275 if (topk8)
230 { 276 {
231 BIO_free(in); /* Not needed in this section */ 277 BIO_free(in); /* Not needed in this section */
232 pkey = load_key(bio_err, infile, informat, 1, 278 pkey = load_key(bio_err, infile, informat, 1,
233 passin, e, "key"); 279 passin, e, "key");
234 if (!pkey) { 280 if (!pkey)
235 return (1); 281 {
236 } 282 BIO_free_all(out);
237 if (!(p8inf = EVP_PKEY2PKCS8_broken(pkey, p8_broken))) { 283 return 1;
284 }
285 if (!(p8inf = EVP_PKEY2PKCS8_broken(pkey, p8_broken)))
286 {
238 BIO_printf(bio_err, "Error converting key\n"); 287 BIO_printf(bio_err, "Error converting key\n");
239 ERR_print_errors(bio_err); 288 ERR_print_errors(bio_err);
240 return (1); 289 EVP_PKEY_free(pkey);
241 } 290 BIO_free_all(out);
242 if(nocrypt) { 291 return 1;
243 if(outformat == FORMAT_PEM) 292 }
293 if (nocrypt)
294 {
295 if (outformat == FORMAT_PEM)
244 PEM_write_bio_PKCS8_PRIV_KEY_INFO(out, p8inf); 296 PEM_write_bio_PKCS8_PRIV_KEY_INFO(out, p8inf);
245 else if(outformat == FORMAT_ASN1) 297 else if (outformat == FORMAT_ASN1)
246 i2d_PKCS8_PRIV_KEY_INFO_bio(out, p8inf); 298 i2d_PKCS8_PRIV_KEY_INFO_bio(out, p8inf);
247 else { 299 else
300 {
248 BIO_printf(bio_err, "Bad format specified for key\n"); 301 BIO_printf(bio_err, "Bad format specified for key\n");
302 PKCS8_PRIV_KEY_INFO_free(p8inf);
303 EVP_PKEY_free(pkey);
304 BIO_free_all(out);
249 return (1); 305 return (1);
306 }
250 } 307 }
251 } else { 308 else
252 if(passout) p8pass = passout; 309 {
253 else { 310 if (passout)
311 p8pass = passout;
312 else
313 {
254 p8pass = pass; 314 p8pass = pass;
255 if (EVP_read_pw_string(pass, sizeof pass, "Enter Encryption Password:", 1)) 315 if (EVP_read_pw_string(pass, sizeof pass, "Enter Encryption Password:", 1))
316 {
317 PKCS8_PRIV_KEY_INFO_free(p8inf);
318 EVP_PKEY_free(pkey);
319 BIO_free_all(out);
256 return (1); 320 return (1);
257 } 321 }
322 }
258 app_RAND_load_file(NULL, bio_err, 0); 323 app_RAND_load_file(NULL, bio_err, 0);
259 if (!(p8 = PKCS8_encrypt(pbe_nid, cipher, 324 if (!(p8 = PKCS8_encrypt(pbe_nid, cipher,
260 p8pass, strlen(p8pass), 325 p8pass, strlen(p8pass),
261 NULL, 0, iter, p8inf))) { 326 NULL, 0, iter, p8inf)))
327 {
262 BIO_printf(bio_err, "Error encrypting key\n"); 328 BIO_printf(bio_err, "Error encrypting key\n");
263 ERR_print_errors(bio_err); 329 ERR_print_errors(bio_err);
330 PKCS8_PRIV_KEY_INFO_free(p8inf);
331 EVP_PKEY_free(pkey);
332 BIO_free_all(out);
264 return (1); 333 return (1);
265 } 334 }
266 app_RAND_write_file(NULL, bio_err); 335 app_RAND_write_file(NULL, bio_err);
267 if(outformat == FORMAT_PEM) 336 if (outformat == FORMAT_PEM)
268 PEM_write_bio_PKCS8(out, p8); 337 PEM_write_bio_PKCS8(out, p8);
269 else if(outformat == FORMAT_ASN1) 338 else if (outformat == FORMAT_ASN1)
270 i2d_PKCS8_bio(out, p8); 339 i2d_PKCS8_bio(out, p8);
271 else { 340 else
341 {
272 BIO_printf(bio_err, "Bad format specified for key\n"); 342 BIO_printf(bio_err, "Bad format specified for key\n");
343 PKCS8_PRIV_KEY_INFO_free(p8inf);
344 EVP_PKEY_free(pkey);
345 BIO_free_all(out);
273 return (1); 346 return (1);
274 } 347 }
275 X509_SIG_free(p8); 348 X509_SIG_free(p8);
276 } 349 }
350
277 PKCS8_PRIV_KEY_INFO_free (p8inf); 351 PKCS8_PRIV_KEY_INFO_free (p8inf);
278 EVP_PKEY_free(pkey); 352 EVP_PKEY_free(pkey);
279 BIO_free_all(out); 353 BIO_free_all(out);
280 if(passin) OPENSSL_free(passin); 354 if (passin)
281 if(passout) OPENSSL_free(passout); 355 OPENSSL_free(passin);
356 if (passout)
357 OPENSSL_free(passout);
282 return (0); 358 return (0);
283 } 359 }
284 360
285 if(nocrypt) { 361 if (nocrypt)
286 if(informat == FORMAT_PEM) 362 {
363 if (informat == FORMAT_PEM)
287 p8inf = PEM_read_bio_PKCS8_PRIV_KEY_INFO(in,NULL,NULL, NULL); 364 p8inf = PEM_read_bio_PKCS8_PRIV_KEY_INFO(in,NULL,NULL, NULL);
288 else if(informat == FORMAT_ASN1) 365 else if (informat == FORMAT_ASN1)
289 p8inf = d2i_PKCS8_PRIV_KEY_INFO_bio(in, NULL); 366 p8inf = d2i_PKCS8_PRIV_KEY_INFO_bio(in, NULL);
290 else { 367 else
368 {
291 BIO_printf(bio_err, "Bad format specified for key\n"); 369 BIO_printf(bio_err, "Bad format specified for key\n");
292 return (1); 370 return (1);
371 }
293 } 372 }
294 } else { 373 else
295 if(informat == FORMAT_PEM) 374 {
375 if (informat == FORMAT_PEM)
296 p8 = PEM_read_bio_PKCS8(in, NULL, NULL, NULL); 376 p8 = PEM_read_bio_PKCS8(in, NULL, NULL, NULL);
297 else if(informat == FORMAT_ASN1) 377 else if (informat == FORMAT_ASN1)
298 p8 = d2i_PKCS8_bio(in, NULL); 378 p8 = d2i_PKCS8_bio(in, NULL);
299 else { 379 else
380 {
300 BIO_printf(bio_err, "Bad format specified for key\n"); 381 BIO_printf(bio_err, "Bad format specified for key\n");
301 return (1); 382 return (1);
302 } 383 }
303 384
304 if (!p8) { 385 if (!p8)
386 {
305 BIO_printf (bio_err, "Error reading key\n"); 387 BIO_printf (bio_err, "Error reading key\n");
306 ERR_print_errors(bio_err); 388 ERR_print_errors(bio_err);
307 return (1); 389 return (1);
308 } 390 }
309 if(passin) p8pass = passin; 391 if (passin)
310 else { 392 p8pass = passin;
393 else
394 {
311 p8pass = pass; 395 p8pass = pass;
312 EVP_read_pw_string(pass, sizeof pass, "Enter Password:", 0); 396 EVP_read_pw_string(pass, sizeof pass, "Enter Password:", 0);
313 } 397 }
314 p8inf = PKCS8_decrypt(p8, p8pass, strlen(p8pass)); 398 p8inf = PKCS8_decrypt(p8, p8pass, strlen(p8pass));
315 X509_SIG_free(p8); 399 X509_SIG_free(p8);
316 } 400 }
317 401
318 if (!p8inf) { 402 if (!p8inf)
403 {
319 BIO_printf(bio_err, "Error decrypting key\n"); 404 BIO_printf(bio_err, "Error decrypting key\n");
320 ERR_print_errors(bio_err); 405 ERR_print_errors(bio_err);
321 return (1); 406 return (1);
322 } 407 }
323 408
324 if (!(pkey = EVP_PKCS82PKEY(p8inf))) { 409 if (!(pkey = EVP_PKCS82PKEY(p8inf)))
410 {
325 BIO_printf(bio_err, "Error converting key\n"); 411 BIO_printf(bio_err, "Error converting key\n");
326 ERR_print_errors(bio_err); 412 ERR_print_errors(bio_err);
327 return (1); 413 return (1);
328 } 414 }
329 415
330 if (p8inf->broken) { 416 if (p8inf->broken)
417 {
331 BIO_printf(bio_err, "Warning: broken key encoding: "); 418 BIO_printf(bio_err, "Warning: broken key encoding: ");
332 switch (p8inf->broken) { 419 switch (p8inf->broken)
420 {
333 case PKCS8_NO_OCTET: 421 case PKCS8_NO_OCTET:
334 BIO_printf(bio_err, "No Octet String in PrivateKey\n"); 422 BIO_printf(bio_err, "No Octet String in PrivateKey\n");
335 break; 423 break;
@@ -349,21 +437,24 @@ int MAIN(int argc, char **argv)
349 } 437 }
350 438
351 PKCS8_PRIV_KEY_INFO_free(p8inf); 439 PKCS8_PRIV_KEY_INFO_free(p8inf);
352 if(outformat == FORMAT_PEM) 440 if (outformat == FORMAT_PEM)
353 PEM_write_bio_PrivateKey(out, pkey, NULL, NULL, 0, NULL, passout); 441 PEM_write_bio_PrivateKey(out, pkey, NULL, NULL, 0, NULL, passout);
354 else if(outformat == FORMAT_ASN1) 442 else if (outformat == FORMAT_ASN1)
355 i2d_PrivateKey_bio(out, pkey); 443 i2d_PrivateKey_bio(out, pkey);
356 else { 444 else
445 {
357 BIO_printf(bio_err, "Bad format specified for key\n"); 446 BIO_printf(bio_err, "Bad format specified for key\n");
358 return (1); 447 return (1);
359 } 448 }
360 449
361 end: 450 end:
362 EVP_PKEY_free(pkey); 451 EVP_PKEY_free(pkey);
363 BIO_free_all(out); 452 BIO_free_all(out);
364 BIO_free(in); 453 BIO_free(in);
365 if(passin) OPENSSL_free(passin); 454 if (passin)
366 if(passout) OPENSSL_free(passout); 455 OPENSSL_free(passin);
456 if (passout)
457 OPENSSL_free(passout);
367 458
368 return (0); 459 return (0);
369} 460 }
diff --git a/src/lib/libssl/src/apps/prime.c b/src/lib/libssl/src/apps/prime.c
new file mode 100644
index 0000000000..1753b3ebc1
--- /dev/null
+++ b/src/lib/libssl/src/apps/prime.c
@@ -0,0 +1,128 @@
1/* ====================================================================
2 * Copyright (c) 2004 The OpenSSL Project. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * 3. All advertising materials mentioning features or use of this
17 * software must display the following acknowledgment:
18 * "This product includes software developed by the OpenSSL Project
19 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
20 *
21 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
22 * endorse or promote products derived from this software without
23 * prior written permission. For written permission, please contact
24 * openssl-core@openssl.org.
25 *
26 * 5. Products derived from this software may not be called "OpenSSL"
27 * nor may "OpenSSL" appear in their names without prior written
28 * permission of the OpenSSL Project.
29 *
30 * 6. Redistributions of any form whatsoever must retain the following
31 * acknowledgment:
32 * "This product includes software developed by the OpenSSL Project
33 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
34 *
35 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
36 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
38 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
41 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
42 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
43 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
44 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
45 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
46 * OF THE POSSIBILITY OF SUCH DAMAGE.
47 *
48 */
49
50#include <string.h>
51
52#include "apps.h"
53#include <openssl/bn.h>
54
55
56#undef PROG
57#define PROG prime_main
58
59int MAIN(int argc, char **argv)
60 {
61 int hex=0;
62 int checks=20;
63 BIGNUM *bn=NULL;
64 BIO *bio_out;
65
66 apps_startup();
67
68 if (bio_err == NULL)
69 if ((bio_err=BIO_new(BIO_s_file())) != NULL)
70 BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
71
72 --argc;
73 ++argv;
74 while (argc >= 1 && **argv == '-')
75 {
76 if(!strcmp(*argv,"-hex"))
77 hex=1;
78 else if(!strcmp(*argv,"-checks"))
79 if(--argc < 1)
80 goto bad;
81 else
82 checks=atoi(*++argv);
83 else
84 {
85 BIO_printf(bio_err,"Unknown option '%s'\n",*argv);
86 goto bad;
87 }
88 --argc;
89 ++argv;
90 }
91
92 if (argv[0] == NULL)
93 {
94 BIO_printf(bio_err,"No prime specified\n");
95 goto bad;
96 }
97
98 if ((bio_out=BIO_new(BIO_s_file())) != NULL)
99 {
100 BIO_set_fp(bio_out,stdout,BIO_NOCLOSE);
101#ifdef OPENSSL_SYS_VMS
102 {
103 BIO *tmpbio = BIO_new(BIO_f_linebuffer());
104 bio_out = BIO_push(tmpbio, bio_out);
105 }
106#endif
107 }
108
109 if(hex)
110 BN_hex2bn(&bn,argv[0]);
111 else
112 BN_dec2bn(&bn,argv[0]);
113
114 BN_print(bio_out,bn);
115 BIO_printf(bio_out," is %sprime\n",
116 BN_is_prime(bn,checks,NULL,NULL,NULL) ? "" : "not ");
117
118 BN_free(bn);
119 BIO_free_all(bio_out);
120
121 return 0;
122
123 bad:
124 BIO_printf(bio_err,"options are\n");
125 BIO_printf(bio_err,"%-14s hex\n","-hex");
126 BIO_printf(bio_err,"%-14s number of checks\n","-checks <n>");
127 return 1;
128 }
diff --git a/src/lib/libssl/src/apps/progs.h b/src/lib/libssl/src/apps/progs.h
index 70e4dbac07..0493257bde 100644
--- a/src/lib/libssl/src/apps/progs.h
+++ b/src/lib/libssl/src/apps/progs.h
@@ -35,6 +35,7 @@ extern int pkcs8_main(int argc,char *argv[]);
35extern int spkac_main(int argc,char *argv[]); 35extern int spkac_main(int argc,char *argv[]);
36extern int smime_main(int argc,char *argv[]); 36extern int smime_main(int argc,char *argv[]);
37extern int rand_main(int argc,char *argv[]); 37extern int rand_main(int argc,char *argv[]);
38extern int prime_main(int argc,char *argv[]);
38#ifndef OPENSSL_NO_ENGINE 39#ifndef OPENSSL_NO_ENGINE
39extern int engine_main(int argc,char *argv[]); 40extern int engine_main(int argc,char *argv[]);
40#endif 41#endif
@@ -115,6 +116,7 @@ FUNCTION functions[] = {
115 {FUNC_TYPE_GENERAL,"spkac",spkac_main}, 116 {FUNC_TYPE_GENERAL,"spkac",spkac_main},
116 {FUNC_TYPE_GENERAL,"smime",smime_main}, 117 {FUNC_TYPE_GENERAL,"smime",smime_main},
117 {FUNC_TYPE_GENERAL,"rand",rand_main}, 118 {FUNC_TYPE_GENERAL,"rand",rand_main},
119 {FUNC_TYPE_GENERAL,"prime",prime_main},
118#ifndef OPENSSL_NO_ENGINE 120#ifndef OPENSSL_NO_ENGINE
119 {FUNC_TYPE_GENERAL,"engine",engine_main}, 121 {FUNC_TYPE_GENERAL,"engine",engine_main},
120#endif 122#endif
diff --git a/src/lib/libssl/src/apps/req.c b/src/lib/libssl/src/apps/req.c
index 1a3d1d0dfa..eebe71b15e 100644
--- a/src/lib/libssl/src/apps/req.c
+++ b/src/lib/libssl/src/apps/req.c
@@ -175,7 +175,7 @@ int MAIN(int argc, char **argv)
175 char *passin = NULL, *passout = NULL; 175 char *passin = NULL, *passout = NULL;
176 char *p; 176 char *p;
177 char *subj = NULL; 177 char *subj = NULL;
178 const EVP_MD *md_alg=NULL,*digest=EVP_md5(); 178 const EVP_MD *md_alg=NULL,*digest;
179 unsigned long chtype = MBSTRING_ASC; 179 unsigned long chtype = MBSTRING_ASC;
180#ifndef MONOLITH 180#ifndef MONOLITH
181 char *to_free; 181 char *to_free;
@@ -197,6 +197,13 @@ int MAIN(int argc, char **argv)
197 informat=FORMAT_PEM; 197 informat=FORMAT_PEM;
198 outformat=FORMAT_PEM; 198 outformat=FORMAT_PEM;
199 199
200#ifdef OPENSSL_FIPS
201 if (FIPS_mode())
202 digest = EVP_sha1();
203 else
204#endif
205 digest = EVP_md5();
206
200 prog=argv[0]; 207 prog=argv[0];
201 argc--; 208 argc--;
202 argv++; 209 argv++;
@@ -499,13 +506,16 @@ bad:
499 else 506 else
500 { 507 {
501 req_conf=config; 508 req_conf=config;
502 if( verbose ) 509
503 BIO_printf(bio_err,"Using configuration from %s\n",
504 default_config_file);
505 if (req_conf == NULL) 510 if (req_conf == NULL)
506 { 511 {
507 BIO_printf(bio_err,"Unable to load config info\n"); 512 BIO_printf(bio_err,"Unable to load config info from %s\n", default_config_file);
513 if (newreq)
514 goto end;
508 } 515 }
516 else if( verbose )
517 BIO_printf(bio_err,"Using configuration from %s\n",
518 default_config_file);
509 } 519 }
510 520
511 if (req_conf != NULL) 521 if (req_conf != NULL)
@@ -831,7 +841,9 @@ loop:
831 } 841 }
832 else 842 else
833 { 843 {
834 if (!ASN1_INTEGER_set(X509_get_serialNumber(x509ss),0L)) goto end; 844 if (!rand_serial(NULL,
845 X509_get_serialNumber(x509ss)))
846 goto end;
835 } 847 }
836 848
837 if (!X509_set_issuer_name(x509ss, X509_REQ_get_subject_name(req))) goto end; 849 if (!X509_set_issuer_name(x509ss, X509_REQ_get_subject_name(req))) goto end;
diff --git a/src/lib/libssl/src/apps/s_client.c b/src/lib/libssl/src/apps/s_client.c
index eb6fd7c1c3..f72195e02d 100644
--- a/src/lib/libssl/src/apps/s_client.c
+++ b/src/lib/libssl/src/apps/s_client.c
@@ -197,6 +197,9 @@ static void sc_usage(void)
197 BIO_printf(bio_err," -pause - sleep(1) after each read(2) and write(2) system call\n"); 197 BIO_printf(bio_err," -pause - sleep(1) after each read(2) and write(2) system call\n");
198 BIO_printf(bio_err," -showcerts - show all certificates in the chain\n"); 198 BIO_printf(bio_err," -showcerts - show all certificates in the chain\n");
199 BIO_printf(bio_err," -debug - extra output\n"); 199 BIO_printf(bio_err," -debug - extra output\n");
200#ifdef WATT32
201 BIO_printf(bio_err," -wdebug - WATT-32 tcp debugging\n");
202#endif
200 BIO_printf(bio_err," -msg - Show protocol messages\n"); 203 BIO_printf(bio_err," -msg - Show protocol messages\n");
201 BIO_printf(bio_err," -nbio_test - more ssl protocol testing\n"); 204 BIO_printf(bio_err," -nbio_test - more ssl protocol testing\n");
202 BIO_printf(bio_err," -state - print the 'ssl' states\n"); 205 BIO_printf(bio_err," -state - print the 'ssl' states\n");
@@ -348,6 +351,10 @@ int MAIN(int argc, char **argv)
348 c_Pause=1; 351 c_Pause=1;
349 else if (strcmp(*argv,"-debug") == 0) 352 else if (strcmp(*argv,"-debug") == 0)
350 c_debug=1; 353 c_debug=1;
354#ifdef WATT32
355 else if (strcmp(*argv,"-wdebug") == 0)
356 dbug_init();
357#endif
351 else if (strcmp(*argv,"-msg") == 0) 358 else if (strcmp(*argv,"-msg") == 0)
352 c_msg=1; 359 c_msg=1;
353 else if (strcmp(*argv,"-showcerts") == 0) 360 else if (strcmp(*argv,"-showcerts") == 0)
@@ -588,6 +595,8 @@ re_start:
588 if (starttls_proto == 1) 595 if (starttls_proto == 1)
589 { 596 {
590 BIO_read(sbio,mbuf,BUFSIZZ); 597 BIO_read(sbio,mbuf,BUFSIZZ);
598 BIO_printf(sbio,"EHLO some.host.name\r\n");
599 BIO_read(sbio,mbuf,BUFSIZZ);
591 BIO_printf(sbio,"STARTTLS\r\n"); 600 BIO_printf(sbio,"STARTTLS\r\n");
592 BIO_read(sbio,sbuf,BUFSIZZ); 601 BIO_read(sbio,sbuf,BUFSIZZ);
593 } 602 }
diff --git a/src/lib/libssl/src/apps/s_socket.c b/src/lib/libssl/src/apps/s_socket.c
index 1867890966..9c441b0200 100644
--- a/src/lib/libssl/src/apps/s_socket.c
+++ b/src/lib/libssl/src/apps/s_socket.c
@@ -153,7 +153,6 @@ static int ssl_sock_init(void)
153#ifdef WATT32 153#ifdef WATT32
154 extern int _watt_do_exit; 154 extern int _watt_do_exit;
155 _watt_do_exit = 0; 155 _watt_do_exit = 0;
156 dbug_init();
157 if (sock_init()) 156 if (sock_init())
158 return (0); 157 return (0);
159#elif defined(OPENSSL_SYS_WINDOWS) 158#elif defined(OPENSSL_SYS_WINDOWS)
diff --git a/src/lib/libssl/src/apps/speed.c b/src/lib/libssl/src/apps/speed.c
index 2412200009..5ed510ced6 100644
--- a/src/lib/libssl/src/apps/speed.c
+++ b/src/lib/libssl/src/apps/speed.c
@@ -1395,6 +1395,7 @@ int MAIN(int argc, char **argv)
1395 EVP_DecryptInit_ex(&ctx,evp_cipher,NULL,key16,iv); 1395 EVP_DecryptInit_ex(&ctx,evp_cipher,NULL,key16,iv);
1396 else 1396 else
1397 EVP_EncryptInit_ex(&ctx,evp_cipher,NULL,key16,iv); 1397 EVP_EncryptInit_ex(&ctx,evp_cipher,NULL,key16,iv);
1398 EVP_CIPHER_CTX_set_padding(&ctx, 0);
1398 1399
1399 Time_F(START); 1400 Time_F(START);
1400 if(decrypt) 1401 if(decrypt)
diff --git a/src/lib/libssl/src/apps/verify.c b/src/lib/libssl/src/apps/verify.c
index 6a93c018b8..d73280cdd0 100644
--- a/src/lib/libssl/src/apps/verify.c
+++ b/src/lib/libssl/src/apps/verify.c
@@ -354,6 +354,7 @@ static int MS_CALLBACK cb(int ok, X509_STORE_CTX *ctx)
354 if (ctx->error == X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT) ok=1; 354 if (ctx->error == X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT) ok=1;
355 /* Continue after extension errors too */ 355 /* Continue after extension errors too */
356 if (ctx->error == X509_V_ERR_INVALID_CA) ok=1; 356 if (ctx->error == X509_V_ERR_INVALID_CA) ok=1;
357 if (ctx->error == X509_V_ERR_INVALID_NON_CA) ok=1;
357 if (ctx->error == X509_V_ERR_PATH_LENGTH_EXCEEDED) ok=1; 358 if (ctx->error == X509_V_ERR_PATH_LENGTH_EXCEEDED) ok=1;
358 if (ctx->error == X509_V_ERR_INVALID_PURPOSE) ok=1; 359 if (ctx->error == X509_V_ERR_INVALID_PURPOSE) ok=1;
359 if (ctx->error == X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT) ok=1; 360 if (ctx->error == X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT) ok=1;
diff --git a/src/lib/libssl/src/apps/x509.c b/src/lib/libssl/src/apps/x509.c
index 9b95f7bd3f..e7115cac67 100644
--- a/src/lib/libssl/src/apps/x509.c
+++ b/src/lib/libssl/src/apps/x509.c
@@ -168,7 +168,7 @@ int MAIN(int argc, char **argv)
168 char *CAkeyfile=NULL,*CAserial=NULL; 168 char *CAkeyfile=NULL,*CAserial=NULL;
169 char *alias=NULL; 169 char *alias=NULL;
170 int text=0,serial=0,hash=0,subject=0,issuer=0,startdate=0,enddate=0; 170 int text=0,serial=0,hash=0,subject=0,issuer=0,startdate=0,enddate=0;
171 int ocspid=0; 171 int next_serial=0,ocspid=0;
172 int noout=0,sign_flag=0,CA_flag=0,CA_createserial=0,email=0; 172 int noout=0,sign_flag=0,CA_flag=0,CA_createserial=0,email=0;
173 int trustout=0,clrtrust=0,clrreject=0,aliasout=0,clrext=0; 173 int trustout=0,clrtrust=0,clrreject=0,aliasout=0,clrext=0;
174 int C=0; 174 int C=0;
@@ -179,7 +179,7 @@ int MAIN(int argc, char **argv)
179 X509_REQ *rq=NULL; 179 X509_REQ *rq=NULL;
180 int fingerprint=0; 180 int fingerprint=0;
181 char buf[256]; 181 char buf[256];
182 const EVP_MD *md_alg,*digest=EVP_md5(); 182 const EVP_MD *md_alg,*digest;
183 CONF *extconf = NULL; 183 CONF *extconf = NULL;
184 char *extsect = NULL, *extfile = NULL, *passin = NULL, *passargin = NULL; 184 char *extsect = NULL, *extfile = NULL, *passin = NULL, *passargin = NULL;
185 int need_rand = 0; 185 int need_rand = 0;
@@ -216,6 +216,13 @@ int MAIN(int argc, char **argv)
216 if (ctx == NULL) goto end; 216 if (ctx == NULL) goto end;
217 X509_STORE_set_verify_cb_func(ctx,callb); 217 X509_STORE_set_verify_cb_func(ctx,callb);
218 218
219#ifdef OPENSSL_FIPS
220 if (FIPS_mode())
221 digest = EVP_sha1();
222 else
223#endif
224 digest = EVP_md5();
225
219 argc--; 226 argc--;
220 argv++; 227 argv++;
221 num=0; 228 num=0;
@@ -371,6 +378,8 @@ int MAIN(int argc, char **argv)
371 email= ++num; 378 email= ++num;
372 else if (strcmp(*argv,"-serial") == 0) 379 else if (strcmp(*argv,"-serial") == 0)
373 serial= ++num; 380 serial= ++num;
381 else if (strcmp(*argv,"-next_serial") == 0)
382 next_serial= ++num;
374 else if (strcmp(*argv,"-modulus") == 0) 383 else if (strcmp(*argv,"-modulus") == 0)
375 modulus= ++num; 384 modulus= ++num;
376 else if (strcmp(*argv,"-pubkey") == 0) 385 else if (strcmp(*argv,"-pubkey") == 0)
@@ -591,12 +600,19 @@ bad:
591 if ((x=X509_new()) == NULL) goto end; 600 if ((x=X509_new()) == NULL) goto end;
592 ci=x->cert_info; 601 ci=x->cert_info;
593 602
594 if (sno) 603 if (sno == NULL)
595 { 604 {
596 if (!X509_set_serialNumber(x, sno)) 605 sno = ASN1_INTEGER_new();
606 if (!sno || !rand_serial(NULL, sno))
607 goto end;
608 if (!X509_set_serialNumber(x, sno))
597 goto end; 609 goto end;
610 ASN1_INTEGER_free(sno);
611 sno = NULL;
598 } 612 }
599 else if (!ASN1_INTEGER_set(X509_get_serialNumber(x),0)) goto end; 613 else if (!X509_set_serialNumber(x, sno))
614 goto end;
615
600 if (!X509_set_issuer_name(x,req->req_info->subject)) goto end; 616 if (!X509_set_issuer_name(x,req->req_info->subject)) goto end;
601 if (!X509_set_subject_name(x,req->req_info->subject)) goto end; 617 if (!X509_set_subject_name(x,req->req_info->subject)) goto end;
602 618
@@ -617,7 +633,7 @@ bad:
617 if (xca == NULL) goto end; 633 if (xca == NULL) goto end;
618 } 634 }
619 635
620 if (!noout || text) 636 if (!noout || text || next_serial)
621 { 637 {
622 OBJ_create("2.99999.3", 638 OBJ_create("2.99999.3",
623 "SET.ex3","SET x509v3 extension 3"); 639 "SET.ex3","SET x509v3 extension 3");
@@ -691,6 +707,24 @@ bad:
691 i2a_ASN1_INTEGER(STDout,x->cert_info->serialNumber); 707 i2a_ASN1_INTEGER(STDout,x->cert_info->serialNumber);
692 BIO_printf(STDout,"\n"); 708 BIO_printf(STDout,"\n");
693 } 709 }
710 else if (next_serial == i)
711 {
712 BIGNUM *bnser;
713 ASN1_INTEGER *ser;
714 ser = X509_get_serialNumber(x);
715 bnser = ASN1_INTEGER_to_BN(ser, NULL);
716 if (!bnser)
717 goto end;
718 if (!BN_add_word(bnser, 1))
719 goto end;
720 ser = BN_to_ASN1_INTEGER(bnser, NULL);
721 if (!ser)
722 goto end;
723 BN_free(bnser);
724 i2a_ASN1_INTEGER(out, ser);
725 ASN1_INTEGER_free(ser);
726 BIO_puts(out, "\n");
727 }
694 else if (email == i) 728 else if (email == i)
695 { 729 {
696 int j; 730 int j;
@@ -947,9 +981,9 @@ bad:
947 981
948 if (checkend) 982 if (checkend)
949 { 983 {
950 time_t tnow=time(NULL); 984 time_t tcheck=time(NULL) + checkoffset;
951 985
952 if (ASN1_UTCTIME_cmp_time_t(X509_get_notAfter(x), tnow+checkoffset) == -1) 986 if (X509_cmp_time(X509_get_notAfter(x), &tcheck) < 0)
953 { 987 {
954 BIO_printf(out,"Certificate will expire\n"); 988 BIO_printf(out,"Certificate will expire\n");
955 ret=1; 989 ret=1;
@@ -1047,13 +1081,6 @@ static ASN1_INTEGER *x509_load_serial(char *CAfile, char *serialfile, int create
1047 } 1081 }
1048 else 1082 else
1049 BUF_strlcpy(buf,serialfile,len); 1083 BUF_strlcpy(buf,serialfile,len);
1050 serial=BN_new();
1051 bs=ASN1_INTEGER_new();
1052 if ((serial == NULL) || (bs == NULL))
1053 {
1054 ERR_print_errors(bio_err);
1055 goto end;
1056 }
1057 1084
1058 serial = load_serial(buf, create, NULL); 1085 serial = load_serial(buf, create, NULL);
1059 if (serial == NULL) goto end; 1086 if (serial == NULL) goto end;
diff --git a/src/lib/libssl/src/certs/demo/ca-cert.pem b/src/lib/libssl/src/certs/demo/ca-cert.pem
new file mode 100644
index 0000000000..bcba68aefa
--- /dev/null
+++ b/src/lib/libssl/src/certs/demo/ca-cert.pem
@@ -0,0 +1,33 @@
1-----BEGIN CERTIFICATE-----
2MIIC5TCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQQFADBcMQswCQYDVQQGEwJBVTET
3MBEGA1UECBMKUXVlZW5zbGFuZDEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQx
4HDAaBgNVBAMTE1Rlc3QgUENBICgxMDI0IGJpdCkwHhcNOTkxMjAyMjEzODUxWhcN
5MDUwNzEwMjEzODUxWjBbMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFu
6ZDEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxGzAZBgNVBAMTElRlc3QgQ0Eg
7KDEwMjQgYml0KTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAo7ujy3XXpU/p
8yDJtOxkMJmGv3mdiVm7JrdoKLUgqjO2rBaeNuYMUiuI6oYU+tlD6agwRML0Pn2JF
9b90VdK/UXrmRr9djaEuH17EIKjte5RwOzndCndsjcCYyoeODMTyg7dqPIkDMmRNM
105R5xBTabD+Aji0wzQupYxBLuW5PLj7ECAwEAAaOBtzCBtDAdBgNVHQ4EFgQU1WWA
11U42mkhi3ecgey1dsJjU61+UwgYQGA1UdIwR9MHuAFE0RaEcrj18q1dw+G6nJbsTW
12R213oWCkXjBcMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDEaMBgG
13A1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxHDAaBgNVBAMTE1Rlc3QgUENBICgxMDI0
14IGJpdCmCAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBb39BRphHL
156aRAQyymsvBvPSCiG9+kR0R1L23aTpNbhXp2BebyFjbEQYZc2kWGiKKcHkNECA35
163d4LoqUlVey8DFyafOIJd9hxdZfg+rxlHMxnL7uCJRmx9+xB411Jtsol9/wg1uCK
17sleGpgB4j8cG2SVCz7V2MNZNK+d5QCnR7A==
18-----END CERTIFICATE-----
19-----BEGIN RSA PRIVATE KEY-----
20MIICXQIBAAKBgQCju6PLddelT+nIMm07GQwmYa/eZ2JWbsmt2gotSCqM7asFp425
21gxSK4jqhhT62UPpqDBEwvQ+fYkVv3RV0r9ReuZGv12NoS4fXsQgqO17lHA7Od0Kd
222yNwJjKh44MxPKDt2o8iQMyZE0zlHnEFNpsP4COLTDNC6ljEEu5bk8uPsQIDAQAB
23AoGAVZmpFZsDZfr0l2S9tLLwpjRWNOlKATQkno6q2WesT0eGLQufTciY+c8ypfU6
24hyio8r5iUl/VhhdjhAtKx1mRpiotftHo/eYf8rtsrnprOnWG0bWjLjtIoMbcxGn2
25J3bN6LJmbJMjDs0eJ3KnTu646F3nDUw2oGAwmpzKXA1KAP0CQQDRvQhxk2D3Pehs
26HvG665u2pB5ipYQngEFlZO7RHJZzJOZEWSLuuMqaF/7pTfA5jiBvWqCgJeCRRInL
2721ru4dlPAkEAx9jj7BgKn5TYnMoBSSe0afjsV9oApVpN1Nacb1YDtCwy+scp3++s
28nFxlv98wxIlSdpwMUn+AUWfjiWR7Tu/G/wJBAJ/KjwZIrFVxewP0x2ILYsTRYLzz
29MS4PDsO7FB+I0i7DbBOifXS2oNSpd3I0CNMwrxFnUHzynpbOStVfN3ZL5w0CQQCa
30pwFahxBRhkJKsxhjoFJBX9yl75JoY4Wvm5Tbo9ih6UJaRx3kqfkN14L2BKYcsZgb
31KY9vmDOYy6iNfjDeWTfJAkBkfPUb8oTJ/nSP5zN6sqGxSY4krc4xLxpRmxoJ8HL2
32XfhqXkTzbU13RX9JJ/NZ8vQN9Vm2NhxRGJocQkmcdVtJ
33-----END RSA PRIVATE KEY-----
diff --git a/src/lib/libssl/src/certs/demo/dsa-ca.pem b/src/lib/libssl/src/certs/demo/dsa-ca.pem
new file mode 100644
index 0000000000..9eb08f3ddd
--- /dev/null
+++ b/src/lib/libssl/src/certs/demo/dsa-ca.pem
@@ -0,0 +1,43 @@
1-----BEGIN DSA PRIVATE KEY-----
2Proc-Type: 4,ENCRYPTED
3DEK-Info: DES-EDE3-CBC,C5B6C7CC9E1FE2C0
4
5svCXBcBRhMuU22UXOfiKZA+thmz6KYXpt1Yg5Rd+TYQcQ1MdvNy0B0tkP1SxzDq0
6Xh1eMeTML9/9/0rKakgNXXXbpi5RB8t6BmwRSyej89F7nn1mtR3qzoyPRpp15SDl
7Tn67C+2v+HDF3MFk88hiNCYkNbcmi7TWvChsl8N1r7wdZwtIox56yXdgxw6ZIpa/
8par0oUCzN7fiavPgCWz1kfPNSaBQSdxwH7TZi5tMHAr0J3C7a7QRnZfE09R59Uqr
9zslrq+ndIw1BZAxoY0SlBu+iFOVaBVlwToC4AsHkv7j7l8ITtr7f42YbBa44D9TO
10uOhONmkk/v3Fso4RaOEzdKZC+hnmmzvHs6TiTWm6yzJgSFwyOUK0eGmKEeVxpcH5
11rUOlHOwzen+FFtocZDZAfdFnb7QY7L/boQvyA5A+ZbRG4DUpmBQeQsSaICHM5Rxx
121QaLF413VNPXTLPbW0ilSc2H8x2iZTIVKfd33oSO6NhXPtSYQgfecEF4BvNHY5c4
13HovjT4mckbK95bcBzoCHu43vuSQkmZzdYo/ydSZt6zoPavbBLueTpgSbdXiDi827
14MVqOsYxGCb+kez0FoDSTgw==
15-----END DSA PRIVATE KEY-----
16-----BEGIN CERTIFICATE REQUEST-----
17MIICUjCCAhECAQAwUjELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUx
18ITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDELMAkGA1UEAxMCQ0Ew
19ggG0MIIBKQYFKw4DAgwwggEeAoGBAKc/boW/QWopffCfRxkwkJoJHdpqMx7FPYaW
20sxXgUy6P4FmCc5A+dTGZR3pS+4Xk2aZ7OJtoioSbh8YetX6GS1NbWc9xZRmIbs5m
21rmuINvvsKNzC16W75Sw5JkvamnAYlTeVEFYj9hXtugRe3jlP/bdDH7WkZW/NgBHk
22cJVbUM1JAhUA9wcx7fpsBgPVhYocrJxl51BmZW8CgYBN30wDppGK9RlvUEYlmeVo
23bzDjaeHls12YuyiGSPzemQQ/X4gMnHMkDSBduSqaPxiWJ+Rih8F7dGJT/GEnqHqR
24CZ228U2cVA9YBu5JdAfOVX4jzhb2ytxaYQF+yXG1TfbcNCmHaPZeIJOz2/XkCWxB
25F5WS6wG1c6Vqftgy7Q4CuAOBhAACgYAapll6iqz9XrZFlk2GCVcB+KihxWnH7IuH
26vSLw9YUrJahcBHmbpvt494lF4gC5w3WPM+vXJofbusk4GoQEEsQNMDaah4m49uUq
27AylOVFJJJXuirVJ+o+0TtOFDITEAl+YZZariXOD7tdOSOl9RLMPC6+daHKS9e68u
283enxhqnDGaAAMAkGBSsOAwIbBQADMAAwLQIVAJGVuFsG/0DBuSZ0jF7ypdU0/G0v
29AhQfeF5BoMMDbX/kidUVpQ6gadPlZA==
30-----END CERTIFICATE REQUEST-----
31-----BEGIN CERTIFICATE-----
32MIIBrjCCAWwCAQswCQYFKw4DAhsFADBTMQswCQYDVQQGEwJBVTETMBEGA1UECBMK
33U29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMQww
34CgYDVQQDEwNQQ0EwHhcNOTcwNjE1MDIxNDI5WhcNOTcwNzE1MDIxNDI5WjBSMQsw
35CQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJu
36ZXQgV2lkZ2l0cyBQdHkgTHRkMQswCQYDVQQDEwJDQTCBkjAJBgUrDgMCDAUAA4GE
37AAKBgBqmWXqKrP1etkWWTYYJVwH4qKHFacfsi4e9IvD1hSslqFwEeZum+3j3iUXi
38ALnDdY8z69cmh9u6yTgahAQSxA0wNpqHibj25SoDKU5UUkkle6KtUn6j7RO04UMh
39MQCX5hllquJc4Pu105I6X1Esw8Lr51ocpL17ry7d6fGGqcMZMAkGBSsOAwIbBQAD
40MQAwLgIVAJ4wtQsANPxHo7Q4IQZYsL12SKdbAhUAjJ9n38zxT+iai2164xS+LIfa
41C1Q=
42-----END CERTIFICATE-----
43
diff --git a/src/lib/libssl/src/certs/demo/dsa-pca.pem b/src/lib/libssl/src/certs/demo/dsa-pca.pem
new file mode 100644
index 0000000000..e3641ad47e
--- /dev/null
+++ b/src/lib/libssl/src/certs/demo/dsa-pca.pem
@@ -0,0 +1,49 @@
1-----BEGIN DSA PRIVATE KEY-----
2Proc-Type: 4,ENCRYPTED
3DEK-Info: DES-EDE3-CBC,F80EEEBEEA7386C4
4
5GZ9zgFcHOlnhPoiSbVi/yXc9mGoj44A6IveD4UlpSEUt6Xbse3Fr0KHIUyQ3oGnS
6mClKoAp/eOTb5Frhto85SzdsxYtac+X1v5XwdzAMy2KowHVk1N8A5jmE2OlkNPNt
7of132MNlo2cyIRYaa35PPYBGNCmUm7YcYS8O90YtkrQZZTf4+2C4kllhMcdkQwkr
8FWSWC8YOQ7w0LHb4cX1FejHHom9Nd/0PN3vn3UyySvfOqoR7nbXkrpHXmPIr0hxX
9RcF0aXcV/CzZ1/nfXWQf4o3+oD0T22SDoVcZY60IzI0oIc3pNCbDV3uKNmgekrFd
10qOUJ+QW8oWp7oefRx62iBfIeC8DZunohMXaWAQCU0sLQOR4yEdeUCnzCSywe0bG1
11diD0KYaEe+Yub1BQH4aLsBgDjardgpJRTQLq0DUvw0/QGO1irKTJzegEDNVBKrVn
12V4AHOKT1CUKqvGNRP1UnccUDTF6miOAtaj/qpzra7sSk7dkGBvIEeFoAg84kfh9h
13hVvF1YyzC9bwZepruoqoUwke/WdNIR5ymOVZ/4Liw0JdIOcq+atbdRX08niqIRkf
14dsZrUj4leo3zdefYUQ7w4N2Ns37yDFq7
15-----END DSA PRIVATE KEY-----
16-----BEGIN CERTIFICATE REQUEST-----
17MIICVTCCAhMCAQAwUzELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUx
18ITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEMMAoGA1UEAxMDUENB
19MIIBtTCCASkGBSsOAwIMMIIBHgKBgQCnP26Fv0FqKX3wn0cZMJCaCR3aajMexT2G
20lrMV4FMuj+BZgnOQPnUxmUd6UvuF5NmmezibaIqEm4fGHrV+hktTW1nPcWUZiG7O
21Zq5riDb77Cjcwtelu+UsOSZL2ppwGJU3lRBWI/YV7boEXt45T/23Qx+1pGVvzYAR
225HCVW1DNSQIVAPcHMe36bAYD1YWKHKycZedQZmVvAoGATd9MA6aRivUZb1BGJZnl
23aG8w42nh5bNdmLsohkj83pkEP1+IDJxzJA0gXbkqmj8YlifkYofBe3RiU/xhJ6h6
24kQmdtvFNnFQPWAbuSXQHzlV+I84W9srcWmEBfslxtU323DQph2j2XiCTs9v15Als
25QReVkusBtXOlan7YMu0OArgDgYUAAoGBAKbtuR5AdW+ICjCFe2ixjUiJJzM2IKwe
266NZEMXg39+HQ1UTPTmfLZLps+rZfolHDXuRKMXbGFdSF0nXYzotPCzi7GauwEJTZ
27yr27ZZjA1C6apGSQ9GzuwNvZ4rCXystVEagAS8OQ4H3D4dWS17Zg31ICb5o4E5r0
28z09o/Uz46u0VoAAwCQYFKw4DAhsFAAMxADAuAhUArRubTxsbIXy3AhtjQ943AbNB
29nSICFQCu+g1iW3jwF+gOcbroD4S/ZcvB3w==
30-----END CERTIFICATE REQUEST-----
31-----BEGIN CERTIFICATE-----
32MIIC0zCCApECAQAwCQYFKw4DAhsFADBTMQswCQYDVQQGEwJBVTETMBEGA1UECBMK
33U29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMQww
34CgYDVQQDEwNQQ0EwHhcNOTcwNjE0MjI1NDQ1WhcNOTcwNzE0MjI1NDQ1WjBTMQsw
35CQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJu
36ZXQgV2lkZ2l0cyBQdHkgTHRkMQwwCgYDVQQDEwNQQ0EwggG1MIIBKQYFKw4DAgww
37ggEeAoGBAKc/boW/QWopffCfRxkwkJoJHdpqMx7FPYaWsxXgUy6P4FmCc5A+dTGZ
38R3pS+4Xk2aZ7OJtoioSbh8YetX6GS1NbWc9xZRmIbs5mrmuINvvsKNzC16W75Sw5
39JkvamnAYlTeVEFYj9hXtugRe3jlP/bdDH7WkZW/NgBHkcJVbUM1JAhUA9wcx7fps
40BgPVhYocrJxl51BmZW8CgYBN30wDppGK9RlvUEYlmeVobzDjaeHls12YuyiGSPze
41mQQ/X4gMnHMkDSBduSqaPxiWJ+Rih8F7dGJT/GEnqHqRCZ228U2cVA9YBu5JdAfO
42VX4jzhb2ytxaYQF+yXG1TfbcNCmHaPZeIJOz2/XkCWxBF5WS6wG1c6Vqftgy7Q4C
43uAOBhQACgYEApu25HkB1b4gKMIV7aLGNSIknMzYgrB7o1kQxeDf34dDVRM9OZ8tk
44umz6tl+iUcNe5EoxdsYV1IXSddjOi08LOLsZq7AQlNnKvbtlmMDULpqkZJD0bO7A
4529nisJfKy1URqABLw5DgfcPh1ZLXtmDfUgJvmjgTmvTPT2j9TPjq7RUwCQYFKw4D
46AhsFAAMxADAuAhUAvtv6AkMolix1Jvy3UnVEIUqdCUICFQC+jq8P49mwrY9oJ24n
475rKUjNBhSg==
48-----END CERTIFICATE-----
49
diff --git a/src/lib/libssl/src/certs/demo/nortelCA.pem b/src/lib/libssl/src/certs/demo/nortelCA.pem
new file mode 100644
index 0000000000..207f34ab3a
--- /dev/null
+++ b/src/lib/libssl/src/certs/demo/nortelCA.pem
@@ -0,0 +1,16 @@
1-----BEGIN CERTIFICATE-----
2MIICajCCAdMCBDGA0QUwDQYJKoZIhvcNAQEEBQAwfTELMAkGA1UEBhMCQ2ExDzAN
3BgNVBAcTBk5lcGVhbjEeMBwGA1UECxMVTm8gTGlhYmlsaXR5IEFjY2VwdGVkMR8w
4HQYDVQQKExZGb3IgRGVtbyBQdXJwb3NlcyBPbmx5MRwwGgYDVQQDExNFbnRydXN0
5IERlbW8gV2ViIENBMB4XDTk2MDQyNjEzMzUwMVoXDTA2MDQyNjEzMzUwMVowfTEL
6MAkGA1UEBhMCQ2ExDzANBgNVBAcTBk5lcGVhbjEeMBwGA1UECxMVTm8gTGlhYmls
7aXR5IEFjY2VwdGVkMR8wHQYDVQQKExZGb3IgRGVtbyBQdXJwb3NlcyBPbmx5MRww
8GgYDVQQDExNFbnRydXN0IERlbW8gV2ViIENBMIGdMA0GCSqGSIb3DQEBAQUAA4GL
9ADCBhwKBgQCaroS7O1DA0hm4IefNYU1cx/nqOmzEnk291d1XqznDeF4wEgakbkCc
10zTKxK791yNpXG5RmngqH7cygDRTHZJ6mfCRn0wGC+AI00F2vYTGqPGRQL1N3lZT0
11YDKFC0SQeMMjFIZ1aeQigroFQnHo0VB3zWIMpNkka8PY9lxHZAmWwQIBAzANBgkq
12hkiG9w0BAQQFAAOBgQBAx0UMVA1s54lMQyXjMX5kj99FJN5itb8bK1Rk+cegPQPF
13cWO9SEWyEjjBjIkjjzAwBkaEszFsNGxemxtXvwjIm1xEUMTVlPEWTs2qnDvAUA9W
14YqhWbhH0toGT36236QAsqCZ76rbTRVSSX2BHyJwJMG2tCRv7kRJ//NIgxj3H4w==
15-----END CERTIFICATE-----
16
diff --git a/src/lib/libssl/src/certs/demo/pca-cert.pem b/src/lib/libssl/src/certs/demo/pca-cert.pem
new file mode 100644
index 0000000000..9d754d460d
--- /dev/null
+++ b/src/lib/libssl/src/certs/demo/pca-cert.pem
@@ -0,0 +1,33 @@
1-----BEGIN CERTIFICATE-----
2MIIC5jCCAk+gAwIBAgIBADANBgkqhkiG9w0BAQQFADBcMQswCQYDVQQGEwJBVTET
3MBEGA1UECBMKUXVlZW5zbGFuZDEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQx
4HDAaBgNVBAMTE1Rlc3QgUENBICgxMDI0IGJpdCkwHhcNOTkxMjAyMjEzNTQ4WhcN
5MDUwNzExMjEzNTQ4WjBcMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFu
6ZDEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxHDAaBgNVBAMTE1Rlc3QgUENB
7ICgxMDI0IGJpdCkwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJ2haT/f5Zwy
8V+MiuSDjSR62adBoSiBB7Usty44lXqsp9RICw+DCCxpsn/CfxPEDXLLd4olsWXc6
9JRcxGynbYmnzk+Z6aIPPJQhK3CTvaqGnWKZsA1m+WaUIUqJCuNTK4N+7hMAGaf6S
10S3e9HVgEQ4a34gXJ7VQFVIBNV1EnZRWHAgMBAAGjgbcwgbQwHQYDVR0OBBYEFE0R
11aEcrj18q1dw+G6nJbsTWR213MIGEBgNVHSMEfTB7gBRNEWhHK49fKtXcPhupyW7E
121kdtd6FgpF4wXDELMAkGA1UEBhMCQVUxEzARBgNVBAgTClF1ZWVuc2xhbmQxGjAY
13BgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRwwGgYDVQQDExNUZXN0IFBDQSAoMTAy
14NCBiaXQpggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAUa8B3pho
15+Mvxeq9HsEzJxHIFQla05S5J/e/V+DQTYoKiRFchKPrDAdrzYSEvP3h4QJEtsNqQ
16JfOxg5M42uLFq7aPGWkF6ZZqZsYS+zA9IVT14g7gNA6Ne+5QtJqQtH9HA24st0T0
17Tga/lZ9M2ovImovaxSL/kRHbpCWcqWVxpOw=
18-----END CERTIFICATE-----
19-----BEGIN RSA PRIVATE KEY-----
20MIICXAIBAAKBgQCdoWk/3+WcMlfjIrkg40ketmnQaEogQe1LLcuOJV6rKfUSAsPg
21wgsabJ/wn8TxA1yy3eKJbFl3OiUXMRsp22Jp85PmemiDzyUIStwk72qhp1imbANZ
22vlmlCFKiQrjUyuDfu4TABmn+kkt3vR1YBEOGt+IFye1UBVSATVdRJ2UVhwIDAQAB
23AoGAba4fTtuap5l7/8ZsbE7Z1O32KJY4ZcOZukLOLUUhXxXduT+FTgGWujc0/rgc
24z9qYCLlNZHOouMYTgtSfYvuMuLZ11VIt0GYH+nRioLShE59Yy+zCRyC+gPigS1kz
25xvo14AsOIPYV14Tk/SsHyq6E0eTk7VzaIE197giiINUERPECQQDSKmtPTh/lRKw7
26HSZSM0I1mFWn/1zqrAbontRQY5w98QWIOe5qmzYyFbPXYT3d9BzlsMyhgiRNoBbD
27yvohSHXJAkEAwAHx6ezAZeWWzD5yXD36nyjpkVCw7Tk7TSmOceLJMWt1QcrCfqlS
28xA5jjpQ6Z8suU5DdtWAryM2sAir1WisYzwJAd6Zcx56jvAQ3xcPXsE6scBTVFzrj
297FqZ6E+cclPzfLQ+QQsyOBE7bpI6e/FJppY26XGZXo3YGzV8IGXrt40oOQJALETG
30h86EFXo3qGOFbmsDy4pdP5nBERCu8X1xUCSfintiD4c2DInxgS5oGclnJeMcjTvL
31QjQoJCX3UJCi/OUO1QJBAKgcDHWjMvt+l1pjJBsSEZ0HX9AAIIVx0RQmbFGS+F2Q
32hhu5l77WnnZOQ9vvhV5u7NPCUF9nhU3jh60qWWO8mkc=
33-----END RSA PRIVATE KEY-----
diff --git a/src/lib/libssl/src/certs/demo/timCA.pem b/src/lib/libssl/src/certs/demo/timCA.pem
new file mode 100644
index 0000000000..9c8d5bf9c6
--- /dev/null
+++ b/src/lib/libssl/src/certs/demo/timCA.pem
@@ -0,0 +1,16 @@
1Tims test GCI CA
2
3-----BEGIN CERTIFICATE-----
4MIIB8DCCAZoCAQAwDQYJKoZIhvcNAQEEBQAwgYIxCzAJBgNVBAYTAkFVMRMwEQYD
5VQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5
6cHRTb2Z0IFB0eSBMdGQxFDASBgNVBAsTC2RldmVsb3BtZW50MRkwFwYDVQQDExBD
7cnlwdFNvZnQgRGV2IENBMB4XDTk3MDMyMjEzMzQwNFoXDTk4MDMyMjEzMzQwNFow
8gYIxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhC
9cmlzYmFuZTEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxFDASBgNVBAsTC2Rl
10dmVsb3BtZW50MRkwFwYDVQQDExBDcnlwdFNvZnQgRGV2IENBMFwwDQYJKoZIhvcN
11AQEBBQADSwAwSAJBAOAOAqogG5QwAmLhzyO4CoRnx/wVy4NZP4dxJy83O1EnL0rw
12OdsamJKvPOLHgSXo3gDu9uVyvCf/QJmZAmC5ml8CAwEAATANBgkqhkiG9w0BAQQF
13AANBADRRS/GVdd7rAqRW6SdmgLJduOU2yq3avBu99kRqbp9A/dLu6r6jU+eP4oOA
14TfdbFZtAAD2Hx9jUtY3tfdrJOb8=
15-----END CERTIFICATE-----
16
diff --git a/src/lib/libssl/src/certs/demo/tjhCA.pem b/src/lib/libssl/src/certs/demo/tjhCA.pem
new file mode 100644
index 0000000000..67bee1b200
--- /dev/null
+++ b/src/lib/libssl/src/certs/demo/tjhCA.pem
@@ -0,0 +1,15 @@
1-----BEGIN CERTIFICATE-----
2MIICVjCCAgACAQAwDQYJKoZIhvcNAQEEBQAwgbUxCzAJBgNVBAYTAkFVMRMwEQYD
3VQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5
4cHRTb2Z0IFB0eSBMdGQxLDAqBgNVBAsTI1dPUlRITEVTUyBDRVJUSUZJQ0FUSU9O
5IEFVVEhPUklUSUVTMTQwMgYDVQQDEytaRVJPIFZBTFVFIENBIC0gREVNT05TVFJB
6VElPTiBQVVJQT1NFUyBPTkxZMB4XDTk3MDQwMzEzMjI1NFoXDTk4MDQwMzEzMjI1
7NFowgbUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQH
8EwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxLDAqBgNVBAsT
9I1dPUlRITEVTUyBDRVJUSUZJQ0FUSU9OIEFVVEhPUklUSUVTMTQwMgYDVQQDEyta
10RVJPIFZBTFVFIENBIC0gREVNT05TVFJBVElPTiBQVVJQT1NFUyBPTkxZMFwwDQYJ
11KoZIhvcNAQEBBQADSwAwSAJBAOZ7T7yqP/tyspcko3yPY1y0Cm2EmwNvzW4QgVXR
12Fjs3HmJ4xtSpXdo6mwcGezL3Abt/aQXaxv9PU8xt+Jr0OFUCAwEAATANBgkqhkiG
139w0BAQQFAANBAOQpYmGgyCqCy1OljgJhCqQOu627oVlHzK1L+t9vBaMfn40AVUR4
14WzQVWO31KTgi5vTK1U+3h46fgUWqQ0h+6rU=
15-----END CERTIFICATE-----
diff --git a/src/lib/libssl/src/certs/demo/vsigntca.pem b/src/lib/libssl/src/certs/demo/vsigntca.pem
new file mode 100644
index 0000000000..05acf76e66
--- /dev/null
+++ b/src/lib/libssl/src/certs/demo/vsigntca.pem
@@ -0,0 +1,18 @@
1subject=/O=VeriSign, Inc/OU=www.verisign.com/repository/TestCPS Incorp. By Ref. Liab. LTD./OU=For VeriSign authorized testing only. No assurances (C)VS1997
2notBefore=Mar 4 00:00:00 1997 GMT
3notAfter=Mar 4 23:59:59 2025 GMT
4-----BEGIN CERTIFICATE-----
5MIICTTCCAfcCEEdoCqpuXxnoK27q7d58Qc4wDQYJKoZIhvcNAQEEBQAwgakxFjAU
6BgNVBAoTDVZlcmlTaWduLCBJbmMxRzBFBgNVBAsTPnd3dy52ZXJpc2lnbi5jb20v
7cmVwb3NpdG9yeS9UZXN0Q1BTIEluY29ycC4gQnkgUmVmLiBMaWFiLiBMVEQuMUYw
8RAYDVQQLEz1Gb3IgVmVyaVNpZ24gYXV0aG9yaXplZCB0ZXN0aW5nIG9ubHkuIE5v
9IGFzc3VyYW5jZXMgKEMpVlMxOTk3MB4XDTk3MDMwNDAwMDAwMFoXDTI1MDMwNDIz
10NTk1OVowgakxFjAUBgNVBAoTDVZlcmlTaWduLCBJbmMxRzBFBgNVBAsTPnd3dy52
11ZXJpc2lnbi5jb20vcmVwb3NpdG9yeS9UZXN0Q1BTIEluY29ycC4gQnkgUmVmLiBM
12aWFiLiBMVEQuMUYwRAYDVQQLEz1Gb3IgVmVyaVNpZ24gYXV0aG9yaXplZCB0ZXN0
13aW5nIG9ubHkuIE5vIGFzc3VyYW5jZXMgKEMpVlMxOTk3MFwwDQYJKoZIhvcNAQEB
14BQADSwAwSAJBAMak6xImJx44jMKcbkACy5/CyMA2fqXK4PlzTtCxRq5tFkDzne7s
15cI8oFK/J+gFZNE3bjidDxf07O3JOYG9RGx8CAwEAATANBgkqhkiG9w0BAQQFAANB
16ADT523tENOKrEheZFpsJx1UUjPrG7TwYc/C4NBHrZI4gZJcKVFIfNulftVS6UMYW
17ToLEMaUojc3DuNXHG21PDG8=
18-----END CERTIFICATE-----
diff --git a/src/lib/libssl/src/certs/eng1.pem b/src/lib/libssl/src/certs/eng1.pem
new file mode 100644
index 0000000000..7ed8b1b5e6
--- /dev/null
+++ b/src/lib/libssl/src/certs/eng1.pem
@@ -0,0 +1,23 @@
1-----BEGIN CERTIFICATE-----
2MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBqDELMAkGA1UEBhMCQ0Ex
3CzAJBgNVBAgTAk9OMRAwDgYDVQQHEwdUb3JvbnRvMRgwFgYDVQQKEw9CYW5rRW5n
4aW5lIEluYy4xKTAnBgNVBAsTIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IERpdmlz
5aW9uMRMwEQYDVQQDEwpiYW5rZW5naW5lMSAwHgYJKoZIhvcNAQkBFhFjYUBiYW5r
6ZW5naW5lLmNvbTAeFw05ODAxMDEwMDAwMDBaFw0zODAxMTcwMDAwMDBaMIGoMQsw
7CQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rvcm9udG8xGDAWBgNV
8BAoTD0JhbmtFbmdpbmUgSW5jLjEpMCcGA1UECxMgQ2VydGlmaWNhdGlvbiBBdXRo
9b3JpdHkgRGl2aXNpb24xEzARBgNVBAMTCmJhbmtlbmdpbmUxIDAeBgkqhkiG9w0B
10CQEWEWNhQGJhbmtlbmdpbmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
11CgKCAQEA14LoTUAl1/hEy+Kh1kLHiBdW2zD3V4IhM7xxTVKsYsIH56nr69ATTIxU
12P36eRzeZ137qt1AxHFjDCidk3m1Ul6l59ProPexdslLLM2npM3f2cteg+toyiYiS
13EJKjyzIu1xF1j9qzGkymSY/4DsXLZNk9FaczxMk/Ooc6Os1M3AverL4VG4rYIb6f
14eR32cIKJ9Q1fGuyKk7ipq1XQfPW8a8TgZdbHbe7U9Gk3iasGMHHvpR9Ep3mGbgdT
15uQ98SBEuIwe1BUCGg/MXpVy48MNXfAMotBgGw4pl9yqSjMni2FB+E9Q9DHFs2RgX
16MqzKuo8zcPxKx2kZ6Arj8+27dw2clQIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0G
17CSqGSIb3DQEBBQUAA4IBAQBauupHX9EhpC/r57d6b5kkeWvognxIP9//TO4iw3qb
18zIXEkPXmJmwVzlzoKJWqiya+aw19SP0+G6CzsFOBo/9ehmz+hZ8bhYX4MjlWzX5u
19Tnkhz172j9fOBUmrTVPkcRIs6zjCD5PQAGoBPP1/Zdy2N36lZ0U7lg07Opirj/yJ
20PSJeM2j0fwIFAroiVckvdT0BVwB6S/cPaAQGPghbbr1YGSmYrMriSv825ILJUfxz
21rJYunGR9FiY9Ob7+jwJwiZMS4CxSPktutxr/3hOvr1+ALS7IcVakhhA3PuZAJbdH
22FRclR9qMM8aBnBZmf+Uv3K3uhT+UBzzY654U9Yi1JYnA
23-----END CERTIFICATE-----
diff --git a/src/lib/libssl/src/certs/eng2.pem b/src/lib/libssl/src/certs/eng2.pem
new file mode 100644
index 0000000000..73066309b1
--- /dev/null
+++ b/src/lib/libssl/src/certs/eng2.pem
@@ -0,0 +1,23 @@
1-----BEGIN CERTIFICATE-----
2MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBqDELMAkGA1UEBhMCQ0Ex
3CzAJBgNVBAgTAk9OMRAwDgYDVQQHEwdUb3JvbnRvMRgwFgYDVQQKEw9DZXJ0RW5n
4aW5lIEluYy4xKTAnBgNVBAsTIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IERpdmlz
5aW9uMRMwEQYDVQQDEwpjZXJ0ZW5naW5lMSAwHgYJKoZIhvcNAQkBFhFjYUBjZXJ0
6ZW5naW5lLmNvbTAeFw05ODAxMDEwMDAwMDBaFw0zODAxMTcwMDAwMDBaMIGoMQsw
7CQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rvcm9udG8xGDAWBgNV
8BAoTD0NlcnRFbmdpbmUgSW5jLjEpMCcGA1UECxMgQ2VydGlmaWNhdGlvbiBBdXRo
9b3JpdHkgRGl2aXNpb24xEzARBgNVBAMTCmNlcnRlbmdpbmUxIDAeBgkqhkiG9w0B
10CQEWEWNhQGNlcnRlbmdpbmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
11CgKCAQEA7aTXURShaeVt9u/dP3Q2dVib3jTCZvEyc6yfpGgaYWewXWuP4HOSfI4h
12GZblbpl+dzJc6RjhR+pguIRtbT5FJB8SJGjRqoujBEOQOxtVtc2fjM9Dqh0iOvMW
13WS6buxHG55GVrHAQaO5HXEScKQBa9ZyNmpSXPTEBrDMej1OAGOkc524/TZrgFPF4
14AiJLLkxCcP8NuzUKlW3WzNMSSoCtjkUKy4wjSLlAWCFM0T9Df6/+Z8ZUQTzHoKCD
15ncH5Qnynd7DlOwKQ2JwwxRhYGiGVTUN0GUq7qA11kW3+vnbFesKQXoF6o2PVx9s2
16YXviI2NXXUjZ0pVnsnFCc45Pm8XojwIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0G
17CSqGSIb3DQEBBQUAA4IBAQBP/aHOKJ00Akzc9HWM1X30hlWZFBaQi4pqD4Uhk8+p
18KzzwFP5DRLBOz8TYBbtdXrS6hxVMr2sqWmhVkuyepWhHZazKGyHY/y0FbOXsewAV
191QxxSyx7ve89pCKv4/w0rQcP916iHc8Y/TCpmz7eITa3GId+8H/XTaBi8GBp9X9O
20w8m25FmEB1NT+eJwefvfdKowjy4tSorKdW/eJspxNuTSRGmUy8G71W5dYvgpAlx6
21mdnHyzxEGvRYNNI2bS0ifXgbEFNWqSas9q34ea5KOpkJu8T/KyXfSb6rPOsBSb0t
22wMowwGtCVH2C4Lw/8zo0EjhMpTOsPaub408PrZ+NQ2bl
23-----END CERTIFICATE-----
diff --git a/src/lib/libssl/src/certs/eng3.pem b/src/lib/libssl/src/certs/eng3.pem
new file mode 100644
index 0000000000..28bcce2dfd
--- /dev/null
+++ b/src/lib/libssl/src/certs/eng3.pem
@@ -0,0 +1,34 @@
1-----BEGIN CERTIFICATE-----
2MIIF3TCCA8WgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBqDELMAkGA1UEBhMCQ0Ex
3CzAJBgNVBAgTAk9OMRAwDgYDVQQHEwdUb3JvbnRvMRgwFgYDVQQKEw9Gb3J0RW5n
4aW5lIEluYy4xKTAnBgNVBAsTIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IERpdmlz
5aW9uMRMwEQYDVQQDEwpmb3J0ZW5naW5lMSAwHgYJKoZIhvcNAQkBFhFjYUBmb3J0
6ZW5naW5lLmNvbTAeFw05ODAxMDEwMDAwMDBaFw0zODAxMTcwMDAwMDBaMIGoMQsw
7CQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rvcm9udG8xGDAWBgNV
8BAoTD0ZvcnRFbmdpbmUgSW5jLjEpMCcGA1UECxMgQ2VydGlmaWNhdGlvbiBBdXRo
9b3JpdHkgRGl2aXNpb24xEzARBgNVBAMTCmZvcnRlbmdpbmUxIDAeBgkqhkiG9w0B
10CQEWEWNhQGZvcnRlbmdpbmUuY29tMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
11CgKCAgEAyr7GbpwDxx1v3EYbo0gcO+ligEhlDqG2e7u/AbWGoVAqc8+q6auUJUtz
124i7oh0yNadu1o9kpXW+znkgO0zlrgjGskqqMO1ooppzTJdFy/P8gR6x1Iuv3kWtX
13OuzwPPEjv09LWlhyJsN+oU4ztTVf07I0Q9zYupcoDQ58XKRheI9KdDB2DYSmxywA
14WSLQwIeG0Qa7gvokeQlpkgkEC7viEecJ3752KXBJHnh7As51mxnlpmG6sDy67Eli
15HDw5tHETRqbtnscGBjskGQBqR5xt7+QnnthZrN8HJHDoa9zgGephwizhkL44lXLF
16YK9W5XhFbblw2c+mAcHkokRiwD7CPeIoyD2a/Jcw3n5hegKTlNhd4BFGVF6JR7gF
17OFk2QfHXit5uthsij9Xhl7WAgQUqLgggD9MphqPf4nY66OZUJV9ZsmB+Qfp8UizB
180WAOegactKVyRqHtRa+KIEXQXNtZgjcmMk9CYkP0nIbKtgKXaH6+9VMHNOryCnFE
197pSsuPUkypncFWCHGSeiFO3w4w4J4csltxBADQzxfRu5KZnlToQN7bVpI/Q31tVX
20E5bjrJcq6Oj/OTqZ3ID+OqbkUdAg0ggjRKcTgxnLHd/AbMzJ6PsclDDf7cLs0WSl
21xMxQR/z5bNST1rNtT9rsiv2TOhfvCBxO9AOjBioO8PLO032HTNECAwEAAaMQMA4w
22DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAgEAVyBpPWfT2VOyvVpslGKx
238h0+CWP8cilygGRtZJ5dAJzc//1REAHdvK+TgZ4Foz3dqHhXI+RNN0FpzuWaYMjW
24ZTS0kAmcOQuGY1Oo4PGlPHI21pNz29oFDTJr0ZmLBJ4JKVsE2soJg55jdk9MZHA7
25K//7HH9RsmrWZOE5DZDlrxp6+naixhMwnlPKKisIy9GNZUPqGdUWABMdB/BUVVNl
26NU5TtWpIXUClMd8a+eoKcItBeYXowkHOBpinPkDX3clFDIUfWiw0Ro08s8SrrFqR
278Szwbrj52Xv1RM56oGqCjnkvJctxihODV7NcpxoAFjIZokDom0q6zPrrTUsLFQov
28Plovc3w5hmALiDMshaTvE1nm3Psn4yQ+FlRE8epTZrQiIGypZkZC6lcz0mYawueW
29cThYWGFhVG4ktQzOjjNRsNxopW+W7cF1zQTxiWUDnxIKSj7gtdQ2jiubxEEhfVag
30r8DMtAccNVTZVURpGi56TptOOuotrTqqC+2GviW4hlxvdvmuQN0OlXlUwzz2Trxc
31FamNnuA54lZw/8arLtxsFmHrcnPw53+1spumLD0S5UkxHNu40h6LIVpZz3H+0rLz
32uFofTfiyMjcfK2AyHQTgUCbsrvgNuLDQUbyFGVchdFUkhztX3DhEVnxnnrpY4BVj
33QdTqWIvw7lGlSuDCjxEQAOc=
34-----END CERTIFICATE-----
diff --git a/src/lib/libssl/src/certs/eng4.pem b/src/lib/libssl/src/certs/eng4.pem
new file mode 100644
index 0000000000..9a7b156226
--- /dev/null
+++ b/src/lib/libssl/src/certs/eng4.pem
@@ -0,0 +1,23 @@
1-----BEGIN CERTIFICATE-----
2MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBqDELMAkGA1UEBhMCQ0Ex
3CzAJBgNVBAgTAk9OMRAwDgYDVQQHEwdUb3JvbnRvMRgwFgYDVQQKEw9NYWlsRW5n
4aW5lIEluYy4xKTAnBgNVBAsTIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IERpdmlz
5aW9uMRMwEQYDVQQDEwptYWlsZW5naW5lMSAwHgYJKoZIhvcNAQkBFhFjYUBtYWls
6ZW5naW5lLmNvbTAeFw05ODAxMDEwMDAwMDBaFw0zODAxMTcwMDAwMDBaMIGoMQsw
7CQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rvcm9udG8xGDAWBgNV
8BAoTD01haWxFbmdpbmUgSW5jLjEpMCcGA1UECxMgQ2VydGlmaWNhdGlvbiBBdXRo
9b3JpdHkgRGl2aXNpb24xEzARBgNVBAMTCm1haWxlbmdpbmUxIDAeBgkqhkiG9w0B
10CQEWEWNhQG1haWxlbmdpbmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
11CgKCAQEAqXmfsU+lx+NFmn6tN17RTOyaddHqLnr/3rzEDIyT9TN+tF9TG7jmK7lJ
12Jrj5arQ3nTFaLF8JuND2U1z/cLPw6/TX+1tE3v3CNUDSjaisyUDiUyp3TE8hMMMz
13zfZQn0JsGgNhhWxqyzjhRQGtKL4+xtn8VsF/8zGgZYke7nlmVKz/FslDFTnNoodL
14BAEGiu9JQS9qqpbSs20NdZ6LXPL2A4iTjnsNFBW3jIMVIn/JVVyaycU7ue2oFviD
15vLNpkVZcR7A+jjIdIumOc5VSF0y7y74cQC5YwkR2mLK7UBYDK6NCY3ta/C4M8NsM
160FpmvRl0+A1ivZtVwqI98dxDtp7HeQIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0G
17CSqGSIb3DQEBBQUAA4IBAQAjfNn5BCzxylBDakFQGWKE/P43PRibMOEzfd7+DzbY
18WIekoz3i00DwoH3b6j4gwlDJRAOq4dF6/Pt/uBOHDo/op+ef+9ErmKPd+ehXN9h3
197QbccTgz7DtVwA4iRlDRLru+JuXzT+OsCHuFZMOLJ+KD2JAGh3W68JjdcLkrlcpt
20AU0wc5aOHPPfEBdIah8y8QtNzXRVzoBt8zzvgCARkXxTS2u/9QaXR1hML0JtDgQS
21SdZ6Kd8SN6yzqxD+buYD5sOfJmjBF/n3lqFHNMHnnGXy2TAXZtIAWzffU3A0cGPB
22N6FZ026a86HbF1X4k+xszhbJu/ikczyuWnCJIg3fTYSD
23-----END CERTIFICATE-----
diff --git a/src/lib/libssl/src/certs/eng5.pem b/src/lib/libssl/src/certs/eng5.pem
new file mode 100644
index 0000000000..3416ccad24
--- /dev/null
+++ b/src/lib/libssl/src/certs/eng5.pem
@@ -0,0 +1,23 @@
1-----BEGIN CERTIFICATE-----
2MIID6TCCAtGgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBrjELMAkGA1UEBhMCQ0Ex
3CzAJBgNVBAgTAk9OMRAwDgYDVQQHEwdUb3JvbnRvMRowGAYDVQQKExFUcmFkZXJF
4bmdpbmUgSW5jLjEpMCcGA1UECxMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRGl2
5aXNpb24xFTATBgNVBAMTDHRyYWRlcmVuZ2luZTEiMCAGCSqGSIb3DQEJARYTY2FA
6dHJhZGVyZW5naW5lLmNvbTAeFw05ODAxMDEwMDAwMDBaFw0zODAxMTcwMDAwMDBa
7MIGuMQswCQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rvcm9udG8x
8GjAYBgNVBAoTEVRyYWRlckVuZ2luZSBJbmMuMSkwJwYDVQQLEyBDZXJ0aWZpY2F0
9aW9uIEF1dGhvcml0eSBEaXZpc2lvbjEVMBMGA1UEAxMMdHJhZGVyZW5naW5lMSIw
10IAYJKoZIhvcNAQkBFhNjYUB0cmFkZXJlbmdpbmUuY29tMIIBIjANBgkqhkiG9w0B
11AQEFAAOCAQ8AMIIBCgKCAQEAzyX5QE+5SN+zgNn1v3zp9HmP4hQOWW8WuEVItZVP
129bt/xj5NeJd1kyPL/SqnF2qHcL3o/74r0Ga55aKHniwKYgQTlp5ELGfQ568QQeN9
13xNIHtUXeStI9zCNZyZC+4YqObdMR/ivKA/WsLfUVMl2lV5JzJJz1BOE0gKEYiEyz
14gIq5oLzkP/mOXoHRvWSZD2D0eHYIO7ovV2epVFK7g7p+dC4QoeIUEli+GF/Myg88
15dV/qmi+Sybck2RLPXa8Nh27/ETVQ7kE1Eafmx7EyCqIhG+5lwJAy3HwHUBwAYuzj
16iuZz5lD8aQmr8SKuvy3eOH9SVN5wh3YBlrNGwTStkESVLwIDAQABoxAwDjAMBgNV
17HRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAWOPAUhZd3x9EQiFJcuxFTMd9q
18axgcriCzJsM6D96sYGko9xTeLhX/lr1bliVYI5AlupoLXAdMzGHJkOgaTirKjQXr
19F9nymDdUWKe3TmwGob5016nQlH7qRKvGO3hka0rOGRK2U/2JT/4Qp8iH/DFi6cyM
20uP0q8n64SAkxZXLzUuFQXqf7U/SNjzb9XJQEIAdjp7eYd3Qb4jDsDcX0FrKMF1aV
21r0dCDnS7am7WTXPYCDGdSkPgEHEtLYIYH3lZp5sKdVZ9wl4F0WNFkRWRUr7AXPjw
2250uLmUNmKCd8JZLMGA1TRNSTi7U9EcrWt0OkMWm74T2WVnAgNsDv2WrWsGfj
23-----END CERTIFICATE-----
diff --git a/src/lib/libssl/src/certs/expired/RegTP-4R.pem b/src/lib/libssl/src/certs/expired/RegTP-4R.pem
new file mode 100644
index 0000000000..6f2c6abccd
--- /dev/null
+++ b/src/lib/libssl/src/certs/expired/RegTP-4R.pem
@@ -0,0 +1,19 @@
1issuer= 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
2notBefore=Jan 21 16:04:53 1999 GMT
3notAfter=Jan 21 16:04:53 2004 GMT
4subject= 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
5-----BEGIN CERTIFICATE-----
6MIICZzCCAdOgAwIBAgIEOwVn1DAKBgYrJAMDAQIFADBvMQswCQYDVQQGEwJERTE9
7MDsGA1UEChQ0UmVndWxpZXJ1bmdzYmVoyG9yZGUgZsh1ciBUZWxla29tbXVuaWth
8dGlvbiB1bmQgUG9zdDEhMAwGBwKCBgEKBxQTATEwEQYDVQQDFAo0Ui1DQSAxOlBO
9MCIYDzE5OTkwMTIxMTYwNDUzWhgPMjAwNDAxMjExNjA0NTNaMG8xCzAJBgNVBAYT
10AkRFMT0wOwYDVQQKFDRSZWd1bGllcnVuZ3NiZWjIb3JkZSBmyHVyIFRlbGVrb21t
11dW5pa2F0aW9uIHVuZCBQb3N0MSEwDAYHAoIGAQoHFBMBMTARBgNVBAMUCjRSLUNB
12IDE6UE4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGAjzHbq2asUlqeWbXTQHso
13aVF6YIPVH3c/B2cbuy9HJ/lnE6x0asOzM2DGDqi47xkdAxPc0LZ0fxO87rkmz7xs
14jJObnVrMXpyUSDSp5Y0wqKJdsFdr6mGFOQZteIti8AJnr8xMkwnWVyuOlEXsFe1h
155gxwQXrOcPinE6qu1t/3PmECBMAAAAGjEjAQMA4GA1UdDwEB/wQEAwIBBjAKBgYr
16JAMDAQIFAAOBgQA+RdocBmA2VV9E5aKPBcp01tdZAvvW9Tve3docArVKR/4/yvSX
17Z+wvzzk+uu4qBp49HN3nqPYMrzbTmjBFu4ce5fkZ7dHF0W1sSBL0rox5z36Aq2re
18JjfEOEmSnNe0+opuh4FSVOssXblXTE8lEQU0FhhItgDx2ADnWZibaxLG4w==
19-----END CERTIFICATE-----
diff --git a/src/lib/libssl/src/certs/expired/factory.pem b/src/lib/libssl/src/certs/expired/factory.pem
new file mode 100644
index 0000000000..8e28b391b2
--- /dev/null
+++ b/src/lib/libssl/src/certs/expired/factory.pem
@@ -0,0 +1,15 @@
1-----BEGIN CERTIFICATE-----
2MIICTTCCAbagAwIBAgIBADANBgkqhkiG9w0BAQQFADBMMQswCQYDVQQGEwJHQjEM
3MAoGA1UEChMDVUNMMRgwFgYDVQQLEw9JQ0UtVEVMIFByb2plY3QxFTATBgNVBAMT
4DFRydXN0RmFjdG9yeTAeFw05NzA0MjIxNDM5MTRaFw05ODA0MjIxNDM5MTRaMEwx
5CzAJBgNVBAYTAkdCMQwwCgYDVQQKEwNVQ0wxGDAWBgNVBAsTD0lDRS1URUwgUHJv
6amVjdDEVMBMGA1UEAxMMVHJ1c3RGYWN0b3J5MIGcMAoGBFUIAQECAgQAA4GNADCB
7iQKBgQCEieR8NcXkUW1f0G6aC6u0i8q/98JqS6RxK5YmHIGKCkuTWAUjzLfUa4dt
8U9igGCjTuxaDqlzEim+t/02pmiBZT9HaX++35MjQPUWmsChcYU5WyzGErXi+rQaw
9zlwS73zM8qiPj/97lXYycWhgL0VaiDSPxRXEUdWoaGruom4mNQIDAQABo0IwQDAd
10BgNVHQ4EFgQUHal1LZr7oVg5z6lYzrhTgZRCmcUwDgYDVR0PAQH/BAQDAgH2MA8G
11A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAfaggfl6FZoioecjv0dq8
12/DXo/u11iMZvXn08gjX/zl2b4wtPbShOSY5FhkSm8GeySasz+/Nwb/uzfnIhokWi
13lfPZHtlCWtXbIy/TN51eJyq04ceDCQDWvLC2enVg9KB+GJ34b5c5VaPRzq8MBxsA
14S7ELuYGtmYgYm9NZOIr7yU0=
15-----END CERTIFICATE-----
diff --git a/src/lib/libssl/src/certs/expired/rsa-cca.pem b/src/lib/libssl/src/certs/expired/rsa-cca.pem
new file mode 100644
index 0000000000..69f5c1c84c
--- /dev/null
+++ b/src/lib/libssl/src/certs/expired/rsa-cca.pem
@@ -0,0 +1,19 @@
1subject=/C=US/O=RSA Data Security, Inc./OU=Commercial Certification Authority
2issuer= /C=US/O=RSA Data Security, Inc./OU=Commercial Certification Authority
3notBefore=941104185834Z
4notAfter =991103185834Z
5-----BEGIN X509 CERTIFICATE-----
6
7MIICIzCCAZACBQJBAAAWMA0GCSqGSIb3DQEBAgUAMFwxCzAJBgNVBAYTAlVTMSAw
8HgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjErMCkGA1UECxMiQ29tbWVy
9Y2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NDExMDQxODU4MzRaFw05
10OTExMDMxODU4MzRaMFwxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdSU0EgRGF0YSBT
11ZWN1cml0eSwgSW5jLjErMCkGA1UECxMiQ29tbWVyY2lhbCBDZXJ0aWZpY2F0aW9u
12IEF1dGhvcml0eTCBmzANBgkqhkiG9w0BAQEFAAOBiQAwgYUCfgCk+4Fie84QJ93o
13975sbsZwmdu41QUDaSiCnHJ/lj+O7Kwpkj+KFPhCdr69XQO5kNTQvAayUTNfxMK/
14touPmbZiImDd298ggrTKoi8tUO2UMt7gVY3UaOLgTNLNBRYulWZcYVI4HlGogqHE
157yXpCuaLK44xZtn42f29O2nZ6wIDAQABMA0GCSqGSIb3DQEBAgUAA34AdrW2EP4j
169/dZYkuwX5zBaLxJu7NJbyFHXSudVMQAKD+YufKKg5tgf+tQx6sFEC097TgCwaVI
170v5loMC86qYjFmZsGySp8+x5NRhPJsjjr1BKx6cxa9B8GJ1Qv6km+iYrRpwUqbtb
18MJhCKLVLU7tDCZJAuqiqWqTGtotXTcU=
19-----END X509 CERTIFICATE-----
diff --git a/src/lib/libssl/src/certs/expired/vsign2.pem b/src/lib/libssl/src/certs/expired/vsign2.pem
new file mode 100644
index 0000000000..d8bdd8c812
--- /dev/null
+++ b/src/lib/libssl/src/certs/expired/vsign2.pem
@@ -0,0 +1,18 @@
1subject=/C=US/O=VeriSign, Inc./OU=Class 2 Public Primary Certification Authority
2notBefore=Jan 29 00:00:00 1996 GMT
3notAfter=Jan 7 23:59:59 2004 GMT
4-----BEGIN CERTIFICATE-----
5MIICPTCCAaYCEQC6WslMBTuS1qe2307QU5INMA0GCSqGSIb3DQEBAgUAMF8xCzAJ
6BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xh
7c3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05
8NjAxMjkwMDAwMDBaFw0wNDAxMDcyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYD
9VQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMiBQdWJsaWMgUHJp
10bWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOB
11jQAwgYkCgYEAtlqLow1qI4OAa885h/QhEzMGTCWi7VUSl8WngLn6g8EgoPovFQ18
12oWBrfnks+gYPOq72G2+x0v8vKFJfg31LxHq3+GYfgFT8t8KOWUoUV0bRmpO+QZED
13uxWAk1zr58wIbD8+s0r8/0tsI9VQgiZEGY4jw3HqGSRHBJ51v8imAB8CAwEAATAN
14BgkqhkiG9w0BAQIFAAOBgQC2AB+TV6QHp0DOZUA/VV7t7/pUSaUw1iF8YYfug5ML
15v7Qz8pisnwa/TqjOFIFMywROWMPPX+5815pvy0GKt3+BuP+EYcYnQ2UdDOyxAArd
16G6S7x3ggKLKi3TaVLuFUT79guXdoEZkj6OpS6KoATmdOu5C1RZtG644W78QzWzM9
171Q==
18-----END CERTIFICATE-----
diff --git a/src/lib/libssl/src/certs/wellsfgo.pem b/src/lib/libssl/src/certs/wellsfgo.pem
new file mode 100644
index 0000000000..2ba88cdda7
--- /dev/null
+++ b/src/lib/libssl/src/certs/wellsfgo.pem
@@ -0,0 +1,23 @@
1-----BEGIN CERTIFICATE-----
2MIID5TCCAs2gAwIBAgIEOeSXnjANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UEBhMC
3VVMxFDASBgNVBAoTC1dlbGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBD
4ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEvMC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9v
5dCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDAxMDExMTY0MTI4WhcNMjEwMTE0
6MTY0MTI4WjCBgjELMAkGA1UEBhMCVVMxFDASBgNVBAoTC1dlbGxzIEZhcmdvMSww
7KgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEvMC0G
8A1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEi
9MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVqDM7Jvk0/82bfuUER84A4n13
105zHCLielTWi5MbqNQ1mXx3Oqfz1cQJ4F5aHiidlMuD+b+Qy0yGIZLEWukR5zcUHE
11SxP9cMIlrCL1dQu3U+SlK93OvRw6esP3E48mVJwWa2uv+9iWsWCaSOAlIiR5NM4O
12JgALTqv9i86C1y8IcGjBqAr5dE8Hq6T54oN+J3N0Prj5OEL8pahbSCOz6+MlsoCu
13ltQKnMJ4msZoGK43YjdeUXWoWGPAUe5AeH6orxqg4bB4nVCMe+ez/I4jsNtlAHCE
14AQgAFG5Uhpq6zPk3EPbg3oQtnaSFN9OH4xXQwReQfhkhahKpdv0SAulPIV4XAgMB
15AAGjYTBfMA8GA1UdEwEB/wQFMAMBAf8wTAYDVR0gBEUwQzBBBgtghkgBhvt7hwcB
16CzAyMDAGCCsGAQUFBwIBFiRodHRwOi8vd3d3LndlbGxzZmFyZ28uY29tL2NlcnRw
17b2xpY3kwDQYJKoZIhvcNAQEFBQADggEBANIn3ZwKdyu7IvICtUpKkfnRLb7kuxpo
187w6kAOnu5+/u9vnldKTC2FJYxHT7zmu1Oyl5GFrvm+0fazbuSCUlFLZWohDo7qd/
190D+j0MNdJu4HzMPBJCGHHt8qElNvQRbn7a6U+oxy+hNH8Dx+rn0ROhPs7fpvcmR7
20nX1/Jv16+yWt6j4pf0zjAFcysLPp7VMX2YuyFA4w6OXVE8Zkr8QA1dhYJPz1j+zx
21x32l2w8n0cbyQIjmH/ZhqPRCyLk306m+LFZ4wnKbWV01QIroTmMatukgalHizqSQ
2233ZwmVxwQ023tqcZZE6St8WRPH9IFmV7Fv3L/PvZ1dZPIWU7Sn9Ho/s=
23-----END CERTIFICATE-----
diff --git a/src/lib/libssl/src/config b/src/lib/libssl/src/config
index 25a3703c1f..0715d378d9 100644
--- a/src/lib/libssl/src/config
+++ b/src/lib/libssl/src/config
@@ -23,6 +23,7 @@
23PREFIX="" 23PREFIX=""
24SUFFIX="" 24SUFFIX=""
25TEST="false" 25TEST="false"
26EXE=""
26 27
27# pick up any command line args to config 28# pick up any command line args to config
28for i 29for i
@@ -110,16 +111,16 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
110 echo "m68k-apple-aux3"; exit 0 111 echo "m68k-apple-aux3"; exit 0
111 ;; 112 ;;
112 113
113 AIX:[3456789]:4:*) 114 AIX:[3-9]:4:*)
114 echo "${MACHINE}-ibm-aix43"; exit 0 115 echo "${MACHINE}-ibm-aix"; exit 0
115 ;; 116 ;;
116 117
117 AIX:*:[56789]:*) 118 AIX:*:[5-9]:*)
118 echo "${MACHINE}-ibm-aix43"; exit 0 119 echo "${MACHINE}-ibm-aix"; exit 0
119 ;; 120 ;;
120 121
121 AIX:*) 122 AIX:*)
122 echo "${MACHINE}-ibm-aix"; exit 0 123 echo "${MACHINE}-ibm-aix3"; exit 0
123 ;; 124 ;;
124 125
125 dgux:*) 126 dgux:*)
@@ -288,6 +289,14 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
288 echo "${MACHINE}-whatever-sysv4"; exit 0 289 echo "${MACHINE}-whatever-sysv4"; exit 0
289 ;; 290 ;;
290 291
292 VOS:*:*:i786)
293 echo "i386-stratus-vos"; exit 0
294 ;;
295
296 VOS:*:*:*)
297 echo "hppa1.1-stratus-vos"; exit 0
298 ;;
299
291 *:4*:R4*:m88k) 300 *:4*:R4*:m88k)
292 echo "${MACHINE}-whatever-sysv4"; exit 0 301 echo "${MACHINE}-whatever-sysv4"; exit 0
293 ;; 302 ;;
@@ -328,6 +337,9 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
328 echo "mips-sony-newsos4"; exit 0; 337 echo "mips-sony-newsos4"; exit 0;
329 ;; 338 ;;
330 339
340 MINGW*)
341 echo "${MACHINE}-whatever-mingw"; echo 0;
342 ;;
331 CYGWIN*) 343 CYGWIN*)
332 case "$RELEASE" in 344 case "$RELEASE" in
333 [bB]*|1.0|1.[12].*) 345 [bB]*|1.0|1.[12].*)
@@ -433,7 +445,7 @@ if [ "$SYSTEM" = "SunOS" ]; then
433 egrep -e '^cc: .* C [0-9]\.[0-9]' | \ 445 egrep -e '^cc: .* C [0-9]\.[0-9]' | \
434 sed 's/.* C \([0-9]\)\.\([0-9]\).*/\1\2/'` 446 sed 's/.* C \([0-9]\)\.\([0-9]\).*/\1\2/'`
435 CCVER=${CCVER:-0} 447 CCVER=${CCVER:-0}
436 if [ $CCVER -gt 40 ]; then 448 if [ $MACHINE != i86pc -a $CCVER -gt 40 ]; then
437 CC=cc # overrides gcc!!! 449 CC=cc # overrides gcc!!!
438 if [ $CCVER -eq 50 ]; then 450 if [ $CCVER -eq 50 ]; then
439 echo "WARNING! Detected WorkShop C 5.0. Do make sure you have" 451 echo "WARNING! Detected WorkShop C 5.0. Do make sure you have"
@@ -482,29 +494,29 @@ case "$GUESSOS" in
482 OUT="irix-$CC" 494 OUT="irix-$CC"
483 ;; 495 ;;
484 mips3-sgi-irix) 496 mips3-sgi-irix)
485 CPU=`(hinv -t cpu) 2>/dev/null | head -1 | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'` 497 #CPU=`(hinv -t cpu) 2>/dev/null | head -1 | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'`
486 CPU=${CPU:-0} 498 #CPU=${CPU:-0}
487 if [ $CPU -ge 5000 ]; then 499 #if [ $CPU -ge 5000 ]; then
488 options="$options -mips4" 500 # options="$options -mips4"
489 else 501 #else
490 options="$options -mips3" 502 # options="$options -mips3"
491 fi 503 #fi
492 OUT="irix-mips3-$CC" 504 OUT="irix-mips3-$CC"
493 ;; 505 ;;
494 mips4-sgi-irix64) 506 mips4-sgi-irix64)
495 echo "WARNING! If you wish to build 64-bit library, then you have to" 507 echo "WARNING! If you wish to build 64-bit library, then you have to"
496 echo " invoke './Configure irix64-mips4-$CC' *manually*." 508 echo " invoke './Configure irix64-mips4-$CC' *manually*."
497 if [ "$TEST" = "false" ]; then 509 if [ "$TEST" = "false" -a -t 1 ]; then
498 echo " You have about 5 seconds to press Ctrl-C to abort." 510 echo " You have about 5 seconds to press Ctrl-C to abort."
499 (stty -icanon min 0 time 50; read waste) < /dev/tty 511 (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
500 fi 512 fi
501 CPU=`(hinv -t cpu) 2>/dev/null | head -1 | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'` 513 #CPU=`(hinv -t cpu) 2>/dev/null | head -1 | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'`
502 CPU=${CPU:-0} 514 #CPU=${CPU:-0}
503 if [ $CPU -ge 5000 ]; then 515 #if [ $CPU -ge 5000 ]; then
504 options="$options -mips4" 516 # options="$options -mips4"
505 else 517 #else
506 options="$options -mips3" 518 # options="$options -mips3"
507 fi 519 #fi
508 OUT="irix-mips3-$CC" 520 OUT="irix-mips3-$CC"
509 ;; 521 ;;
510 alpha-*-linux2) 522 alpha-*-linux2)
@@ -538,9 +550,14 @@ EOF
538 rm dummy dummy.c 550 rm dummy dummy.c
539 ;; 551 ;;
540 ppc64-*-linux2) 552 ppc64-*-linux2)
541 #Use the standard target for PPC architecture until we create a 553 echo "WARNING! If you wish to build 64-bit library, then you have to"
542 #special one for the 64bit architecture. 554 echo " invoke './Configure linux-ppc64' *manually*."
543 OUT="linux-ppc" ;; 555 if [ "$TEST" = "false" -a -t 1 ]; then
556 echo " You have about 5 seconds to press Ctrl-C to abort."
557 (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
558 fi
559 OUT="linux-ppc"
560 ;;
544 ppc-*-linux2) OUT="linux-ppc" ;; 561 ppc-*-linux2) OUT="linux-ppc" ;;
545 m68k-*-linux*) OUT="linux-m68k" ;; 562 m68k-*-linux*) OUT="linux-m68k" ;;
546 ia64-*-linux?) OUT="linux-ia64" ;; 563 ia64-*-linux?) OUT="linux-ia64" ;;
@@ -551,9 +568,9 @@ EOF
551 echo "WARNING! If you *know* that your GNU C supports 64-bit/V9 ABI" 568 echo "WARNING! If you *know* that your GNU C supports 64-bit/V9 ABI"
552 echo " and wish to build 64-bit library, then you have to" 569 echo " and wish to build 64-bit library, then you have to"
553 echo " invoke './Configure linux64-sparcv9' *manually*." 570 echo " invoke './Configure linux64-sparcv9' *manually*."
554 if [ "$TEST" = "false" ]; then 571 if [ "$TEST" = "false" -a -t 1 ]; then
555 echo " You have about 5 seconds to press Ctrl-C to abort." 572 echo " You have about 5 seconds to press Ctrl-C to abort."
556 (stty -icanon min 0 time 50; read waste) < /dev/tty 573 (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
557 fi 574 fi
558 OUT="linux-sparcv9" ;; 575 OUT="linux-sparcv9" ;;
559 sparc-*-linux2) 576 sparc-*-linux2)
@@ -584,7 +601,9 @@ EOF
584 601
585 options="$options -mschedule=$CPUSCHEDULE -march=$CPUARCH" 602 options="$options -mschedule=$CPUSCHEDULE -march=$CPUARCH"
586 OUT="linux-parisc" ;; 603 OUT="linux-parisc" ;;
587 arm*-*-linux2) OUT="linux-elf-arm" ;; 604 arm*b-*-linux2) OUT="linux-elf-arm"; options="$options -DB_ENDIAN" ;;
605 arm*l-*-linux2) OUT="linux-elf-arm"; options="$options -DL_ENDIAN" ;;
606 arm*-*-linux2) OUT="linux-elf-arm" ;;
588 s390-*-linux2) OUT="linux-s390" ;; 607 s390-*-linux2) OUT="linux-s390" ;;
589 s390x-*-linux?) OUT="linux-s390x" ;; 608 s390x-*-linux?) OUT="linux-s390x" ;;
590 x86_64-*-linux?) OUT="linux-x86_64" ;; 609 x86_64-*-linux?) OUT="linux-x86_64" ;;
@@ -608,9 +627,9 @@ EOF
608 if [ "$CC" = "cc" -a $CCVER -ge 50 ]; then 627 if [ "$CC" = "cc" -a $CCVER -ge 50 ]; then
609 echo "WARNING! If you wish to build 64-bit library, then you have to" 628 echo "WARNING! If you wish to build 64-bit library, then you have to"
610 echo " invoke './Configure solaris64-sparcv9-cc' *manually*." 629 echo " invoke './Configure solaris64-sparcv9-cc' *manually*."
611 if [ "$TEST" = "false" ]; then 630 if [ "$TEST" = "false" -a -t 1 ]; then
612 echo " You have about 5 seconds to press Ctrl-C to abort." 631 echo " You have about 5 seconds to press Ctrl-C to abort."
613 (stty -icanon min 0 time 50; read waste) < /dev/tty 632 (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
614 fi 633 fi
615 elif [ "$CC" = "gcc" -a "$GCC_ARCH" = "-m64" ]; then 634 elif [ "$CC" = "gcc" -a "$GCC_ARCH" = "-m64" ]; then
616 # $GCC_ARCH denotes default ABI chosen by compiler driver 635 # $GCC_ARCH denotes default ABI chosen by compiler driver
@@ -620,17 +639,17 @@ EOF
620 OUT="solaris64-sparcv9-gcc" 639 OUT="solaris64-sparcv9-gcc"
621 echo "WARNING! If you wish to build 32-bit library, then you have to" 640 echo "WARNING! If you wish to build 32-bit library, then you have to"
622 echo " invoke './Configure solaris-sparcv9-gcc' *manually*." 641 echo " invoke './Configure solaris-sparcv9-gcc' *manually*."
623 if [ "$TEST" = "false" ]; then 642 if [ "$TEST" = "false" -a -t 1 ]; then
624 echo " You have about 5 seconds to press Ctrl-C to abort." 643 echo " You have about 5 seconds to press Ctrl-C to abort."
625 (stty -icanon min 0 time 50; read waste) < /dev/tty 644 (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
626 fi 645 fi
627 elif [ "$GCC_ARCH" = "-m32" ]; then 646 elif [ "$GCC_ARCH" = "-m32" ]; then
628 echo "NOTICE! If you *know* that your GNU C supports 64-bit/V9 ABI" 647 echo "NOTICE! If you *know* that your GNU C supports 64-bit/V9 ABI"
629 echo " and wish to build 64-bit library, then you have to" 648 echo " and wish to build 64-bit library, then you have to"
630 echo " invoke './Configure solaris64-sparcv9-gcc' *manually*." 649 echo " invoke './Configure solaris64-sparcv9-gcc' *manually*."
631 if [ "$TEST" = "false" ]; then 650 if [ "$TEST" = "false" -a -t 1 ]; then
632 echo " You have about 5 seconds to press Ctrl-C to abort." 651 echo " You have about 5 seconds to press Ctrl-C to abort."
633 (stty -icanon min 0 time 50; read waste) < /dev/tty 652 (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
634 fi 653 fi
635 fi 654 fi
636 fi 655 fi
@@ -638,7 +657,14 @@ EOF
638 sun4m-*-solaris2) OUT="solaris-sparcv8-$CC" ;; 657 sun4m-*-solaris2) OUT="solaris-sparcv8-$CC" ;;
639 sun4d-*-solaris2) OUT="solaris-sparcv8-$CC" ;; 658 sun4d-*-solaris2) OUT="solaris-sparcv8-$CC" ;;
640 sun4*-*-solaris2) OUT="solaris-sparcv7-$CC" ;; 659 sun4*-*-solaris2) OUT="solaris-sparcv7-$CC" ;;
641 *86*-*-solaris2) OUT="solaris-x86-$CC" ;; 660 *86*-*-solaris2)
661 ISA64=`(isalist) 2>/dev/null | grep amd64`
662 if [ "$ISA64" != "" ]; then
663 OUT="solaris64-x86_64-$CC"
664 else
665 OUT="solaris-x86-$CC"
666 fi
667 ;;
642 *-*-sunos4) OUT="sunos-$CC" ;; 668 *-*-sunos4) OUT="sunos-$CC" ;;
643 alpha*-*-freebsd*) OUT="FreeBSD-alpha" ;; 669 alpha*-*-freebsd*) OUT="FreeBSD-alpha" ;;
644 sparc64-*-freebsd*) OUT="FreeBSD-sparc64" ;; 670 sparc64-*-freebsd*) OUT="FreeBSD-sparc64" ;;
@@ -679,6 +705,10 @@ EOF
679 *-*-UnixWare21*) OUT="unixware-2.1" ;; 705 *-*-UnixWare21*) OUT="unixware-2.1" ;;
680 *-*-Unixware20*) OUT="unixware-2.0" ;; 706 *-*-Unixware20*) OUT="unixware-2.0" ;;
681 *-*-Unixware21*) OUT="unixware-2.1" ;; 707 *-*-Unixware21*) OUT="unixware-2.1" ;;
708 *-*-vos)
709 options="$options no-threads no-shared no-asm no-dso"
710 EXE=".pm"
711 OUT="vos-$CC" ;;
682 BS2000-siemens-sysv4) OUT="BS2000-OSD" ;; 712 BS2000-siemens-sysv4) OUT="BS2000-OSD" ;;
683 RM*-siemens-sysv4) OUT="ReliantUNIX" ;; 713 RM*-siemens-sysv4) OUT="ReliantUNIX" ;;
684 *-siemens-sysv4) OUT="SINIX" ;; 714 *-siemens-sysv4) OUT="SINIX" ;;
@@ -702,9 +732,9 @@ EOF
702 echo "WARNING! 64-bit ABI is the default configured ABI on HP-UXi." 732 echo "WARNING! 64-bit ABI is the default configured ABI on HP-UXi."
703 echo " If you wish to build 32-bit library, the you have to" 733 echo " If you wish to build 32-bit library, the you have to"
704 echo " invoke './Configure hpux-ia64-cc' *manually*." 734 echo " invoke './Configure hpux-ia64-cc' *manually*."
705 if [ "$TEST" = "false" ]; then 735 if [ "$TEST" = "false" -a -t 1 ]; then
706 echo " You have about 5 seconds to press Ctrl-C to abort." 736 echo " You have about 5 seconds to press Ctrl-C to abort."
707 (stty -icanon min 0 time 50; read waste) < /dev/tty 737 (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
708 fi 738 fi
709 OUT="hpux64-ia64-cc" 739 OUT="hpux64-ia64-cc"
710 elif [ $CPU_VERSION -ge 532 ]; then # PA-RISC 2.x CPU 740 elif [ $CPU_VERSION -ge 532 ]; then # PA-RISC 2.x CPU
@@ -714,9 +744,9 @@ EOF
714 if [ $KERNEL_BITS -eq 64 -a "$CC" = "cc" ]; then 744 if [ $KERNEL_BITS -eq 64 -a "$CC" = "cc" ]; then
715 echo "WARNING! If you wish to build 64-bit library then you have to" 745 echo "WARNING! If you wish to build 64-bit library then you have to"
716 echo " invoke './Configure hpux64-parisc2-cc' *manually*." 746 echo " invoke './Configure hpux64-parisc2-cc' *manually*."
717 if [ "$TEST" = "false" ]; then 747 if [ "$TEST" = "false" -a -t 1 ]; then
718 echo " You have about 5 seconds to press Ctrl-C to abort." 748 echo " You have about 5 seconds to press Ctrl-C to abort."
719 (stty -icanon min 0 time 50; read waste) < /dev/tty 749 (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
720 fi 750 fi
721 fi 751 fi
722 elif [ $CPU_VERSION -ge 528 ]; then # PA-RISC 1.1+ CPU 752 elif [ $CPU_VERSION -ge 528 ]; then # PA-RISC 1.1+ CPU
@@ -728,8 +758,28 @@ EOF
728 fi 758 fi
729 options="$options -D_REENTRANT" ;; 759 options="$options -D_REENTRANT" ;;
730 *-hpux) OUT="hpux-parisc-$CC" ;; 760 *-hpux) OUT="hpux-parisc-$CC" ;;
761 *-aix)
762 KERNEL_BITS=`(getconf KERNEL_BITMODE) 2>/dev/null`
763 KERNEL_BITS=${KERNEL_BITS:-32}
764 OBJECT_MODE=${OBJECT_MODE:-32}
765 if [ "$CC" = "gcc" ]; then
766 OUT="aix-gcc"
767 elif [ $OBJECT_MODE -eq 64 ]; then
768 echo 'Your $OBJECT_MODE was found to be set to 64'
769 OUT="aix64-cc"
770 else
771 OUT="aix-cc"
772 if [ $KERNEL_BITS -eq 64 ]; then
773 echo "WARNING! If you wish to build 64-bit kit, then you have to"
774 echo " invoke './Configure aix64-cc' *manually*."
775 if [ "$TEST" = "false" -a -t 1 ]; then
776 echo " You have ~5 seconds to press Ctrl-C to abort."
777 (trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
778 fi
779 fi
780 fi
781 ;;
731 # these are all covered by the catchall below 782 # these are all covered by the catchall below
732 # *-aix) OUT="aix-$CC" ;;
733 # *-dgux) OUT="dgux" ;; 783 # *-dgux) OUT="dgux" ;;
734 mips-sony-newsos4) OUT="newsos4-gcc" ;; 784 mips-sony-newsos4) OUT="newsos4-gcc" ;;
735 *-*-cygwin_pre1.3) OUT="Cygwin-pre1.3" ;; 785 *-*-cygwin_pre1.3) OUT="Cygwin-pre1.3" ;;
@@ -806,8 +856,8 @@ fi
806 856
807if [ ".$PERL" = . ] ; then 857if [ ".$PERL" = . ] ; then
808 for i in . `echo $PATH | sed 's/:/ /g'`; do 858 for i in . `echo $PATH | sed 's/:/ /g'`; do
809 if [ -f "$i/perl5" ] ; then 859 if [ -f "$i/perl5$EXE" ] ; then
810 PERL="$i/perl5" 860 PERL="$i/perl5$EXE"
811 break; 861 break;
812 fi; 862 fi;
813 done 863 done
@@ -815,9 +865,9 @@ fi
815 865
816if [ ".$PERL" = . ] ; then 866if [ ".$PERL" = . ] ; then
817 for i in . `echo $PATH | sed 's/:/ /g'`; do 867 for i in . `echo $PATH | sed 's/:/ /g'`; do
818 if [ -f "$i/perl" ] ; then 868 if [ -f "$i/perl$EXE" ] ; then
819 if "$i/perl" -e 'exit($]<5.0)'; then 869 if "$i/perl$EXE" -e 'exit($]<5.0)'; then
820 PERL="$i/perl" 870 PERL="$i/perl$EXE"
821 break; 871 break;
822 fi; 872 fi;
823 fi; 873 fi;
diff --git a/src/lib/libssl/src/crypto/Makefile b/src/lib/libssl/src/crypto/Makefile
index eb49323ad5..cffaeedc5d 100644
--- a/src/lib/libssl/src/crypto/Makefile
+++ b/src/lib/libssl/src/crypto/Makefile
@@ -1,133 +1,218 @@
1LIB= crypto 1#
2CFLAGS+= -DNO_IDEA -DTERMIOS -DL_ENDIAN -DANSI_SOURCE 2# SSLeay/crypto/Makefile
3CFLAGS+= -I${.CURDIR}/../include 3#
4SRCS+= cryptlib.c mem.c cversion.c ex_data.c cpt_err.c
5CFLAGS+= -I${.CURDIR}/md2
6SRCS+= md2_dgst.c md2_one.c
7CFLAGS+= -I${.CURDIR}/md5
8SRCS+= md5_dgst.c md5_one.c
9CFLAGS+= -I${.CURDIR}/sha
10SRCS+= sha_dgst.c sha1dgst.c sha_one.c sha1_one.c
11CFLAGS+= -I${.CURDIR}/mdc2
12SRCS+= mdc2dgst.c mdc2_one.c
13CFLAGS+= -I${.CURDIR}/hmac
14SRCS+= hmac.c
15CFLAGS+= -I${.CURDIR}/ripemd
16SRCS+= rmd_dgst.c rmd_one.c
17CFLAGS+= -I${.CURDIR}/des
18SRCS+= set_key.c ecb_enc.c cbc_enc.c ecb3_enc.c
19SRCS+= cfb64enc.c cfb64ede.c cfb_enc.c ofb64ede.c
20SRCS+= enc_read.c enc_writ.c ofb64enc.c ofb_enc.c
21SRCS+= str2key.c pcbc_enc.c qud_cksm.c rand_key.c
22SRCS+= read2pwd.c fcrypt.c xcbc_enc.c read_pwd.c
23SRCS+= rpc_enc.c cbc_cksm.c supp.c
24CFLAGS+= -I${.CURDIR}/rc2
25SRCS+= rc2_ecb.c rc2_skey.c rc2_cbc.c rc2cfb64.c
26SRCS+= rc2ofb64.c
27CFLAGS+= -I${.CURDIR}/rc4
28SRCS+= rc4_skey.c
29CFLAGS+= -I${.CURDIR}/rc5
30SRCS+= rc5_skey.c rc5_ecb.c rc5cfb64.c rc5cfb64.c
31SRCS+= rc5ofb64.c
32CFLAGS+= -I${.CURDIR}/idea
33SRCS+= i_cbc.c i_cfb64.c i_ofb64.c i_ecb.c
34SRCS+= i_skey.c
35CFLAGS+= -I${.CURDIR}/bf
36SRCS+= bf_skey.c bf_ecb.c bf_cfb64.c bf_ofb64.c
37CFLAGS+= -I${.CURDIR}/cast
38SRCS+= c_skey.c c_ecb.c c_cfb64.c c_ofb64.c
39CFLAGS+= -I${.CURDIR}/bn
40SRCS+= bn_add.c bn_div.c bn_exp.c bn_lib.c bn_mod.c
41SRCS+= bn_mul.c bn_print.c bn_rand.c bn_shift.c bn_sub.c
42SRCS+= bn_word.c bn_blind.c bn_gcd.c bn_prime.c bn_err.c
43SRCS+= bn_sqr.c bn_recp.c bn_mont.c bn_mpi.c
44CFLAGS+= -I${.CURDIR}/rsa
45SRCS+= rsa_eay.c rsa_gen.c rsa_lib.c rsa_sign.c
46SRCS+= rsa_saos.c rsa_err.c rsa_pk1.c rsa_ssl.c
47SRCS+= rsa_none.c
48CFLAGS+= -I${.CURDIR}/dsa
49SRCS+= dsa_gen.c dsa_key.c dsa_lib.c dsa_vrf.c
50SRCS+= dsa_sign.c dsa_err.c
51CFLAGS+= -I${.CURDIR}/dh
52SRCS+= dh_gen.c dh_key.c dh_lib.c dh_check.c dh_err.c
53CFLAGS+= -I${.CURDIR}/buffer
54SRCS+= buffer.c buf_err.c
55CFLAGS+= -I${.CURDIR}/bio
56SRCS+= bio_lib.c bio_cb.c bio_err.c bss_mem.c
57SRCS+= bss_null.c bss_fd.c bss_file.c bss_sock.c
58SRCS+= bss_conn.c bf_null.c bf_buff.c
59SRCS+= b_print.c b_dump.c b_sock.c bss_acpt.c
60SRCS+= bf_nbio.c
61CFLAGS+= -I${.CURDIR}/stack
62SRCS+= stack.c
63CFLAGS+= -I${.CURDIR}/lhash
64SRCS+= lhash.c lh_stats.c
65CFLAGS+= -I${.CURDIR}/rand
66SRCS+= md_rand.c randfile.c
67CFLAGS+= -I${.CURDIR}/err
68SRCS+= err.c err_all.c err_prn.c
69CFLAGS+= -I${.CURDIR}/objects
70SRCS+= obj_dat.c obj_lib.c obj_err.c
71CFLAGS+= -I${.CURDIR}/evp
72SRCS+= encode.c digest.c evp_enc.c evp_key.c
73SRCS+= e_ecb_d.c e_cbc_d.c e_cfb_d.c e_ofb_d.c
74SRCS+= e_ecb_i.c e_cbc_i.c e_cfb_i.c e_ofb_i.c
75SRCS+= e_ecb_3d.c e_cbc_3d.c e_rc4.c names.c
76SRCS+= e_cfb_3d.c e_ofb_3d.c e_xcbc_d.c e_ecb_r2.c
77SRCS+= e_cbc_r2.c e_cfb_r2.c e_ofb_r2.c e_ecb_bf.c
78SRCS+= e_cbc_bf.c e_cfb_bf.c e_ofb_bf.c e_ecb_c.c
79SRCS+= e_cbc_c.c e_cfb_c.c e_ofb_c.c e_ecb_r5.c
80SRCS+= e_cbc_r5.c e_cfb_r5.c e_ofb_r5.c m_null.c
81SRCS+= m_md2.c m_md5.c m_sha.c m_sha1.c m_dss.c
82SRCS+= m_dss1.c m_mdc2.c m_ripemd.c p_open.c
83SRCS+= p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c
84SRCS+= p_dec.c bio_md.c bio_b64.c bio_enc.c
85SRCS+= evp_err.c e_null.c c_all.c evp_lib.c
86CFLAGS+= -I${.CURDIR}/pem
87SRCS+= pem_sign.c pem_seal.c pem_info.c pem_lib.c
88SRCS+= pem_all.c pem_err.c
89CFLAGS+= -I${.CURDIR}/asn1
90SRCS+= a_object.c a_bitstr.c a_utctm.c a_int.c
91SRCS+= a_octet.c a_print.c a_type.c a_set.c
92SRCS+= a_dup.c a_d2i_fp.c a_i2d_fp.c a_sign.c
93SRCS+= a_digest.c a_verify.c x_algor.c x_val.c
94SRCS+= x_pubkey.c x_sig.c x_req.c x_attrib.c
95SRCS+= x_name.c x_cinf.c x_x509.c x_crl.c
96SRCS+= x_info.c x_spki.c d2i_r_pr.c i2d_r_pr.c
97SRCS+= d2i_r_pu.c i2d_r_pu.c d2i_s_pr.c i2d_s_pr.c
98SRCS+= d2i_s_pu.c i2d_s_pu.c d2i_pu.c d2i_pr.c
99SRCS+= i2d_pu.c i2d_pr.c t_req.c t_x509.c
100SRCS+= t_pkey.c p7_i_s.c p7_signi.c p7_signd.c
101SRCS+= p7_recip.c p7_enc_c.c p7_evp.c p7_dgst.c
102SRCS+= p7_s_e.c p7_enc.c p7_lib.c f_int.c
103SRCS+= f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c
104SRCS+= d2i_dsap.c n_pkey.c a_hdr.c x_pkey.c
105SRCS+= a_bool.c x_exten.c asn1_par.c asn1_lib.c
106SRCS+= asn1_err.c a_meth.c a_bytes.c evp_asn1.c
107CFLAGS+= -I${.CURDIR}/x509
108SRCS+= x509_def.c x509_d2.c x509_r2x.c x509_cmp.c
109SRCS+= x509_obj.c x509_req.c x509_vfy.c x509_set.c
110SRCS+= x509rset.c x509_err.c x509name.c x509_v3.c
111SRCS+= x509_ext.c x509pack.c x509type.c x509_lu.c
112SRCS+= x_all.c x509_txt.c by_file.c by_dir.c
113SRCS+= v3_net.c v3_x509.c
114CFLAGS+= -I${.CURDIR}/conf
115SRCS+= conf.c conf_err.c
116CFLAGS+= -I${.CURDIR}/txt_db
117SRCS+= txt_db.c
118CFLAGS+= -I${.CURDIR}/pkcs7
119SRCS+= pk7_lib.c pkcs7err.c pk7_doit.c
120
121.PATH: ${.CURDIR}/md2 ${.CURDIR}/md5 ${.CURDIR}/sha ${.CURDIR}/mdc2 \
122 ${.CURDIR}/hmac ${.CURDIR}/ripemd ${.CURDIR}/des ${.CURDIR}/rc2 \
123 ${.CURDIR}/rc4 ${.CURDIR}/rc5 ${.CURDIR}/idea ${.CURDIR}/bf \
124 ${.CURDIR}/cast ${.CURDIR}/bn ${.CURDIR}/rsa ${.CURDIR}/dsa \
125 ${.CURDIR}/dh ${.CURDIR}/buffer ${.CURDIR}/bio ${.CURDIR}/stack \
126 ${.CURDIR}/lhash ${.CURDIR}/rand ${.CURDIR}/err ${.CURDIR}/objects \
127 ${.CURDIR}/evp ${.CURDIR}/pem ${.CURDIR}/asn1 ${.CURDIR}/asn1 \
128 ${.CURDIR}/x509 ${.CURDIR}/conf txt_db/txt_db.c ${.CURDIR}/pkcs7 \
129 ${.CURDIR}/txt_db
130
131.include <bsd.lib.mk>
132 4
5DIR= crypto
6TOP= ..
7CC= cc
8INCLUDE= -I. -I$(TOP) -I../include
9INCLUDES= -I.. -I../.. -I../../include
10CFLAG= -g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP= /usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17RM= rm -f
18AR= ar r
133 19
20PEX_LIBS=
21EX_LIBS=
22
23CFLAGS= $(INCLUDE) $(CFLAG)
24
25
26LIBS=
27
28SDIRS= md2 md5 sha mdc2 hmac ripemd \
29 des rc2 rc4 rc5 idea bf cast \
30 bn ec rsa dsa dh dso engine aes \
31 buffer bio stack lhash rand err objects \
32 evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5
33
34GENERAL=Makefile README crypto-lib.com install.com
35
36LIB= $(TOP)/libcrypto.a
37SHARED_LIB= libcrypto$(SHLIB_EXT)
38LIBSRC= 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
39LIBOBJ= 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
40
41SRC= $(LIBSRC)
42
43EXHEADER= crypto.h tmdiff.h opensslv.h opensslconf.h ebcdic.h symhacks.h \
44 ossl_typ.h
45HEADER= cryptlib.h buildinf.h md32_common.h o_time.h o_str.h $(EXHEADER)
46
47ALL= $(GENERAL) $(SRC) $(HEADER)
48
49top:
50 @(cd ..; $(MAKE) DIRS=$(DIR) all)
51
52all: shared
53
54buildinf.h: ../Makefile
55 ( echo "#ifndef MK1MF_BUILD"; \
56 echo ' /* auto-generated by crypto/Makefile for crypto/cversion.c */'; \
57 echo ' #define CFLAGS "$(CC) $(CFLAG)"'; \
58 echo ' #define PLATFORM "$(PLATFORM)"'; \
59 echo " #define DATE \"`LC_ALL=C LC_TIME=C date`\""; \
60 echo '#endif' ) >buildinf.h
61
62testapps:
63 if echo ${SDIRS} | fgrep ' des '; \
64 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
65 cd pkcs7 && $(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}' testapps
66
67subdirs:
68 @for i in $(SDIRS) ;\
69 do \
70 (cd $$i && echo "making all in crypto/$$i..." && \
71 $(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; \
72 done;
73
74files:
75 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
76 @for i in $(SDIRS) ;\
77 do \
78 (cd $$i && echo "making 'files' in crypto/$$i..." && \
79 $(MAKE) PERL='${PERL}' files ); \
80 done;
81
82links:
83 @$(PERL) $(TOP)/util/mklink.pl ../include/openssl $(EXHEADER)
84 @$(PERL) $(TOP)/util/mklink.pl ../test $(TEST)
85 @$(PERL) $(TOP)/util/mklink.pl ../apps $(APPS)
86 @for i in $(SDIRS); do \
87 (cd $$i && echo "making links in crypto/$$i..." && \
88 $(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}' PERL='${PERL}' links ); \
89 done;
90
91lib: $(LIBOBJ)
92 $(AR) $(LIB) $(LIBOBJ)
93 $(RANLIB) $(LIB) || echo Never mind.
94 @touch lib
95
96shared: buildinf.h lib subdirs
97 @if [ -n "$(SHARED_LIBS)" ]; then \
98 egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null || \
99 (cd ..; $(MAKE) $(SHARED_LIB)); \
100 fi
101
102libs:
103 @for i in $(SDIRS) ;\
104 do \
105 (cd $$i && echo "making libs in crypto/$$i..." && \
106 $(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALL_PREFIX='${INSTALL_PREFIX}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' AR='${AR}' lib ); \
107 done;
108
109tests:
110 @for i in $(SDIRS) ;\
111 do \
112 (cd $$i && echo "making tests in crypto/$$i..." && \
113 $(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' AR='${AR}' tests ); \
114 done;
115
116install:
117 @headerlist="$(EXHEADER)"; for i in $$headerlist ;\
118 do \
119 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
120 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
121 done;
122 @for i in $(SDIRS) ;\
123 do \
124 (cd $$i && echo "making install in crypto/$$i..." && \
125 $(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALL_PREFIX='${INSTALL_PREFIX}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' install ); \
126 done;
127
128lint:
129 @for i in $(SDIRS) ;\
130 do \
131 (cd $$i && echo "making lint in crypto/$$i..." && \
132 $(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' lint ); \
133 done;
134
135depend:
136 if [ ! -f buildinf.h ]; then touch buildinf.h; fi # fake buildinf.h if it does not exist
137 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDE) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
138 if [ ! -s buildinf.h ]; then rm buildinf.h; fi
139 @for i in $(SDIRS) ;\
140 do \
141 (cd $$i && echo "making depend in crypto/$$i..." && \
142 $(MAKE) MAKEFILE='${MAKEFILE}' INCLUDES='${INCLUDES}' CFLAG='${CFLAG}' DEPFLAG='${DEPFLAG}' MAKEDEPPROG='${MAKEDEPPROG}' KRB5_INCLUDES='${KRB5_INCLUDES}' PERL='${PERL}' depend ); \
143 done;
144
145clean:
146 rm -f buildinf.h *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
147 @for i in $(SDIRS) ;\
148 do \
149 (cd $$i && echo "making clean in crypto/$$i..." && \
150 $(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' clean ); \
151 done;
152
153dclean:
154 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
155 mv -f Makefile.new $(MAKEFILE)
156 @for i in $(SDIRS) ;\
157 do \
158 (cd $$i && echo "making dclean in crypto/$$i..." && \
159 $(MAKE) PERL='${PERL}' CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' dclean ); \
160 done;
161
162# DO NOT DELETE THIS LINE -- make depend depends on it.
163
164cpt_err.o: ../include/openssl/bio.h ../include/openssl/crypto.h
165cpt_err.o: ../include/openssl/e_os2.h ../include/openssl/err.h
166cpt_err.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
167cpt_err.o: ../include/openssl/opensslv.h ../include/openssl/safestack.h
168cpt_err.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cpt_err.c
169cryptlib.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
170cryptlib.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
171cryptlib.o: ../include/openssl/err.h ../include/openssl/lhash.h
172cryptlib.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
173cryptlib.o: ../include/openssl/safestack.h ../include/openssl/stack.h
174cryptlib.o: ../include/openssl/symhacks.h cryptlib.c cryptlib.h
175cversion.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
176cversion.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
177cversion.o: ../include/openssl/err.h ../include/openssl/lhash.h
178cversion.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
179cversion.o: ../include/openssl/safestack.h ../include/openssl/stack.h
180cversion.o: ../include/openssl/symhacks.h buildinf.h cryptlib.h cversion.c
181ebcdic.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h ebcdic.c
182ex_data.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
183ex_data.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
184ex_data.o: ../include/openssl/err.h ../include/openssl/lhash.h
185ex_data.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
186ex_data.o: ../include/openssl/safestack.h ../include/openssl/stack.h
187ex_data.o: ../include/openssl/symhacks.h cryptlib.h ex_data.c
188mem.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
189mem.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
190mem.o: ../include/openssl/err.h ../include/openssl/lhash.h
191mem.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
192mem.o: ../include/openssl/safestack.h ../include/openssl/stack.h
193mem.o: ../include/openssl/symhacks.h cryptlib.h mem.c
194mem_clr.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
195mem_clr.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
196mem_clr.o: ../include/openssl/safestack.h ../include/openssl/stack.h
197mem_clr.o: ../include/openssl/symhacks.h mem_clr.c
198mem_dbg.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
199mem_dbg.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
200mem_dbg.o: ../include/openssl/err.h ../include/openssl/lhash.h
201mem_dbg.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
202mem_dbg.o: ../include/openssl/safestack.h ../include/openssl/stack.h
203mem_dbg.o: ../include/openssl/symhacks.h cryptlib.h mem_dbg.c
204o_str.o: ../e_os.h ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
205o_str.o: o_str.c o_str.h
206o_time.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h o_time.c
207o_time.o: o_time.h
208tmdiff.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
209tmdiff.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
210tmdiff.o: ../include/openssl/err.h ../include/openssl/lhash.h
211tmdiff.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
212tmdiff.o: ../include/openssl/safestack.h ../include/openssl/stack.h
213tmdiff.o: ../include/openssl/symhacks.h ../include/openssl/tmdiff.h cryptlib.h
214tmdiff.o: tmdiff.c
215uid.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
216uid.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
217uid.o: ../include/openssl/safestack.h ../include/openssl/stack.h
218uid.o: ../include/openssl/symhacks.h uid.c
diff --git a/src/lib/libssl/src/crypto/aes/Makefile b/src/lib/libssl/src/crypto/aes/Makefile
new file mode 100644
index 0000000000..a37c6f66a2
--- /dev/null
+++ b/src/lib/libssl/src/crypto/aes/Makefile
@@ -0,0 +1,103 @@
1#
2# crypto/aes/Makefile
3#
4
5DIR= aes
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES=
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP= /usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18
19# CFLAGS= -mpentiumpro $(INCLUDES) $(CFLAG) -O3 -fexpensive-optimizations -funroll-loops -fforce-addr
20CFLAGS= $(INCLUDES) $(CFLAG)
21
22GENERAL=Makefile
23#TEST=aestest.c
24TEST=
25APPS=
26
27LIB=$(TOP)/libcrypto.a
28LIBSRC=aes_core.c aes_misc.c aes_ecb.c aes_cbc.c aes_cfb.c aes_ofb.c aes_ctr.c
29LIBOBJ=aes_core.o aes_misc.o aes_ecb.o aes_cbc.o aes_cfb.o aes_ofb.o aes_ctr.o
30
31SRC= $(LIBSRC)
32
33EXHEADER= aes.h
34HEADER= aes_locl.h $(EXHEADER)
35
36ALL= $(GENERAL) $(SRC) $(HEADER)
37
38top:
39 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
40
41all: lib
42
43lib: $(LIBOBJ)
44 $(AR) $(LIB) $(LIBOBJ)
45 $(RANLIB) $(LIB) || echo Never mind.
46 @touch lib
47
48$(LIBOBJ): $(LIBSRC)
49
50files:
51 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
52
53links:
54 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
55 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
56 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
57
58install: installs
59
60installs:
61 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
62 do \
63 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
64 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
65 done;
66
67tags:
68 ctags $(SRC)
69
70tests:
71
72lint:
73 lint -DLINT $(INCLUDES) $(SRC)>fluff
74
75depend:
76 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
77
78dclean:
79 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
80 mv -f Makefile.new $(MAKEFILE)
81
82clean:
83 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
84
85# DO NOT DELETE THIS LINE -- make depend depends on it.
86
87aes_cbc.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
88aes_cbc.o: ../../include/openssl/opensslconf.h aes_cbc.c aes_locl.h
89aes_cfb.o: ../../e_os.h ../../include/openssl/aes.h
90aes_cfb.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
91aes_cfb.o: aes_cfb.c aes_locl.h
92aes_core.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
93aes_core.o: ../../include/openssl/fips.h ../../include/openssl/opensslconf.h
94aes_core.o: aes_core.c aes_locl.h
95aes_ctr.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
96aes_ctr.o: ../../include/openssl/opensslconf.h aes_ctr.c aes_locl.h
97aes_ecb.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
98aes_ecb.o: ../../include/openssl/opensslconf.h aes_ecb.c aes_locl.h
99aes_misc.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
100aes_misc.o: ../../include/openssl/opensslconf.h
101aes_misc.o: ../../include/openssl/opensslv.h aes_locl.h aes_misc.c
102aes_ofb.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
103aes_ofb.o: ../../include/openssl/opensslconf.h aes_locl.h aes_ofb.c
diff --git a/src/lib/libssl/src/crypto/aes/aes.h b/src/lib/libssl/src/crypto/aes/aes.h
index da067f4a8f..8a3ea0b883 100644
--- a/src/lib/libssl/src/crypto/aes/aes.h
+++ b/src/lib/libssl/src/crypto/aes/aes.h
@@ -52,6 +52,8 @@
52#ifndef HEADER_AES_H 52#ifndef HEADER_AES_H
53#define HEADER_AES_H 53#define HEADER_AES_H
54 54
55#include <openssl/e_os2.h>
56
55#ifdef OPENSSL_NO_AES 57#ifdef OPENSSL_NO_AES
56#error AES is disabled. 58#error AES is disabled.
57#endif 59#endif
@@ -64,6 +66,10 @@
64#define AES_MAXNR 14 66#define AES_MAXNR 14
65#define AES_BLOCK_SIZE 16 67#define AES_BLOCK_SIZE 16
66 68
69#if defined(OPENSSL_FIPS)
70#define FIPS_AES_SIZE_T int
71#endif
72
67#ifdef __cplusplus 73#ifdef __cplusplus
68extern "C" { 74extern "C" {
69#endif 75#endif
@@ -95,6 +101,15 @@ void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
95void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out, 101void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out,
96 const unsigned long length, const AES_KEY *key, 102 const unsigned long length, const AES_KEY *key,
97 unsigned char *ivec, int *num, const int enc); 103 unsigned char *ivec, int *num, const int enc);
104void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out,
105 const unsigned long length, const AES_KEY *key,
106 unsigned char *ivec, int *num, const int enc);
107void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out,
108 const unsigned long length, const AES_KEY *key,
109 unsigned char *ivec, int *num, const int enc);
110void AES_cfbr_encrypt_block(const unsigned char *in,unsigned char *out,
111 const int nbits,const AES_KEY *key,
112 unsigned char *ivec,const int enc);
98void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out, 113void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out,
99 const unsigned long length, const AES_KEY *key, 114 const unsigned long length, const AES_KEY *key,
100 unsigned char *ivec, int *num); 115 unsigned char *ivec, int *num);
diff --git a/src/lib/libssl/src/crypto/aes/aes_cbc.c b/src/lib/libssl/src/crypto/aes/aes_cbc.c
index 1222a21002..d2ba6bcdb4 100644
--- a/src/lib/libssl/src/crypto/aes/aes_cbc.c
+++ b/src/lib/libssl/src/crypto/aes/aes_cbc.c
@@ -66,6 +66,7 @@ void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
66 unsigned long n; 66 unsigned long n;
67 unsigned long len = length; 67 unsigned long len = length;
68 unsigned char tmp[AES_BLOCK_SIZE]; 68 unsigned char tmp[AES_BLOCK_SIZE];
69 const unsigned char *iv = ivec;
69 70
70 assert(in && out && key && ivec); 71 assert(in && out && key && ivec);
71 assert((AES_ENCRYPT == enc)||(AES_DECRYPT == enc)); 72 assert((AES_ENCRYPT == enc)||(AES_DECRYPT == enc));
@@ -73,22 +74,39 @@ void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
73 if (AES_ENCRYPT == enc) { 74 if (AES_ENCRYPT == enc) {
74 while (len >= AES_BLOCK_SIZE) { 75 while (len >= AES_BLOCK_SIZE) {
75 for(n=0; n < AES_BLOCK_SIZE; ++n) 76 for(n=0; n < AES_BLOCK_SIZE; ++n)
76 tmp[n] = in[n] ^ ivec[n]; 77 out[n] = in[n] ^ iv[n];
77 AES_encrypt(tmp, out, key); 78 AES_encrypt(out, out, key);
78 memcpy(ivec, out, AES_BLOCK_SIZE); 79 iv = out;
79 len -= AES_BLOCK_SIZE; 80 len -= AES_BLOCK_SIZE;
80 in += AES_BLOCK_SIZE; 81 in += AES_BLOCK_SIZE;
81 out += AES_BLOCK_SIZE; 82 out += AES_BLOCK_SIZE;
82 } 83 }
83 if (len) { 84 if (len) {
84 for(n=0; n < len; ++n) 85 for(n=0; n < len; ++n)
85 tmp[n] = in[n] ^ ivec[n]; 86 out[n] = in[n] ^ iv[n];
86 for(n=len; n < AES_BLOCK_SIZE; ++n) 87 for(n=len; n < AES_BLOCK_SIZE; ++n)
87 tmp[n] = ivec[n]; 88 out[n] = iv[n];
88 AES_encrypt(tmp, tmp, key); 89 AES_encrypt(out, out, key);
89 memcpy(out, tmp, AES_BLOCK_SIZE); 90 iv = out;
90 memcpy(ivec, tmp, AES_BLOCK_SIZE); 91 }
91 } 92 memcpy(ivec,iv,AES_BLOCK_SIZE);
93 } else if (in != out) {
94 while (len >= AES_BLOCK_SIZE) {
95 AES_decrypt(in, out, key);
96 for(n=0; n < AES_BLOCK_SIZE; ++n)
97 out[n] ^= iv[n];
98 iv = in;
99 len -= AES_BLOCK_SIZE;
100 in += AES_BLOCK_SIZE;
101 out += AES_BLOCK_SIZE;
102 }
103 if (len) {
104 AES_decrypt(in,tmp,key);
105 for(n=0; n < len; ++n)
106 out[n] = tmp[n] ^ iv[n];
107 iv = in;
108 }
109 memcpy(ivec,iv,AES_BLOCK_SIZE);
92 } else { 110 } else {
93 while (len >= AES_BLOCK_SIZE) { 111 while (len >= AES_BLOCK_SIZE) {
94 memcpy(tmp, in, AES_BLOCK_SIZE); 112 memcpy(tmp, in, AES_BLOCK_SIZE);
@@ -102,10 +120,12 @@ void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
102 } 120 }
103 if (len) { 121 if (len) {
104 memcpy(tmp, in, AES_BLOCK_SIZE); 122 memcpy(tmp, in, AES_BLOCK_SIZE);
105 AES_decrypt(tmp, tmp, key); 123 AES_decrypt(tmp, out, key);
106 for(n=0; n < len; ++n) 124 for(n=0; n < len; ++n)
107 out[n] = tmp[n] ^ ivec[n]; 125 out[n] ^= ivec[n];
126 for(n=len; n < AES_BLOCK_SIZE; ++n)
127 out[n] = tmp[n];
108 memcpy(ivec, tmp, AES_BLOCK_SIZE); 128 memcpy(ivec, tmp, AES_BLOCK_SIZE);
109 } 129 }
110 } 130 }
111} 131}
diff --git a/src/lib/libssl/src/crypto/aes/aes_cfb.c b/src/lib/libssl/src/crypto/aes/aes_cfb.c
index 9b569dda90..49f0411010 100644
--- a/src/lib/libssl/src/crypto/aes/aes_cfb.c
+++ b/src/lib/libssl/src/crypto/aes/aes_cfb.c
@@ -114,6 +114,7 @@
114 114
115#include <openssl/aes.h> 115#include <openssl/aes.h>
116#include "aes_locl.h" 116#include "aes_locl.h"
117#include "e_os.h"
117 118
118/* The input and output encrypted as though 128bit cfb mode is being 119/* The input and output encrypted as though 128bit cfb mode is being
119 * used. The extra state information to record how much of the 120 * used. The extra state information to record how much of the
@@ -155,3 +156,70 @@ void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out,
155 *num=n; 156 *num=n;
156} 157}
157 158
159/* This expects a single block of size nbits for both in and out. Note that
160 it corrupts any extra bits in the last byte of out */
161void AES_cfbr_encrypt_block(const unsigned char *in,unsigned char *out,
162 const int nbits,const AES_KEY *key,
163 unsigned char *ivec,const int enc)
164 {
165 int n,rem,num;
166 unsigned char ovec[AES_BLOCK_SIZE*2];
167
168 if (nbits<=0 || nbits>128) return;
169
170 /* fill in the first half of the new IV with the current IV */
171 memcpy(ovec,ivec,AES_BLOCK_SIZE);
172 /* construct the new IV */
173 AES_encrypt(ivec,ivec,key);
174 num = (nbits+7)/8;
175 if (enc) /* encrypt the input */
176 for(n=0 ; n < num ; ++n)
177 out[n] = (ovec[AES_BLOCK_SIZE+n] = in[n] ^ ivec[n]);
178 else /* decrypt the input */
179 for(n=0 ; n < num ; ++n)
180 out[n] = (ovec[AES_BLOCK_SIZE+n] = in[n]) ^ ivec[n];
181 /* shift ovec left... */
182 rem = nbits%8;
183 num = nbits/8;
184 if(rem==0)
185 memcpy(ivec,ovec+num,AES_BLOCK_SIZE);
186 else
187 for(n=0 ; n < AES_BLOCK_SIZE ; ++n)
188 ivec[n] = ovec[n+num]<<rem | ovec[n+num+1]>>(8-rem);
189
190 /* it is not necessary to cleanse ovec, since the IV is not secret */
191 }
192
193/* N.B. This expects the input to be packed, MS bit first */
194void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out,
195 const unsigned long length, const AES_KEY *key,
196 unsigned char *ivec, int *num, const int enc)
197 {
198 unsigned int n;
199 unsigned char c[1],d[1];
200
201 assert(in && out && key && ivec && num);
202 assert(*num == 0);
203
204 memset(out,0,(length+7)/8);
205 for(n=0 ; n < length ; ++n)
206 {
207 c[0]=(in[n/8]&(1 << (7-n%8))) ? 0x80 : 0;
208 AES_cfbr_encrypt_block(c,d,1,key,ivec,enc);
209 out[n/8]=(out[n/8]&~(1 << (7-n%8)))|((d[0]&0x80) >> (n%8));
210 }
211 }
212
213void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out,
214 const unsigned long length, const AES_KEY *key,
215 unsigned char *ivec, int *num, const int enc)
216 {
217 unsigned int n;
218
219 assert(in && out && key && ivec && num);
220 assert(*num == 0);
221
222 for(n=0 ; n < length ; ++n)
223 AES_cfbr_encrypt_block(&in[n],&out[n],8,key,ivec,enc);
224 }
225
diff --git a/src/lib/libssl/src/crypto/aes/aes_core.c b/src/lib/libssl/src/crypto/aes/aes_core.c
index 2f41a825f8..ed566a8123 100644
--- a/src/lib/libssl/src/crypto/aes/aes_core.c
+++ b/src/lib/libssl/src/crypto/aes/aes_core.c
@@ -37,8 +37,11 @@
37 37
38#include <stdlib.h> 38#include <stdlib.h>
39#include <openssl/aes.h> 39#include <openssl/aes.h>
40#include <openssl/fips.h>
40#include "aes_locl.h" 41#include "aes_locl.h"
41 42
43#ifndef OPENSSL_FIPS
44
42/* 45/*
43Te0[x] = S [x].[02, 01, 01, 03]; 46Te0[x] = S [x].[02, 01, 01, 03];
44Te1[x] = S [x].[03, 02, 01, 01]; 47Te1[x] = S [x].[03, 02, 01, 01];
@@ -1255,3 +1258,4 @@ void AES_decrypt(const unsigned char *in, unsigned char *out,
1255 PUTU32(out + 12, s3); 1258 PUTU32(out + 12, s3);
1256} 1259}
1257 1260
1261#endif /* ndef OPENSSL_FIPS */
diff --git a/src/lib/libssl/src/crypto/aes/aes_ctr.c b/src/lib/libssl/src/crypto/aes/aes_ctr.c
index 79e1c18f19..f36982be1e 100644
--- a/src/lib/libssl/src/crypto/aes/aes_ctr.c
+++ b/src/lib/libssl/src/crypto/aes/aes_ctr.c
@@ -59,7 +59,7 @@
59#include <openssl/aes.h> 59#include <openssl/aes.h>
60#include "aes_locl.h" 60#include "aes_locl.h"
61 61
62/* NOTE: CTR mode is big-endian. The rest of the AES code 62/* NOTE: the IV/counter CTR mode is big-endian. The rest of the AES code
63 * is endian-neutral. */ 63 * is endian-neutral. */
64 64
65/* increment counter (128-bit int) by 1 */ 65/* increment counter (128-bit int) by 1 */
@@ -67,61 +67,36 @@ static void AES_ctr128_inc(unsigned char *counter) {
67 unsigned long c; 67 unsigned long c;
68 68
69 /* Grab bottom dword of counter and increment */ 69 /* Grab bottom dword of counter and increment */
70#ifdef L_ENDIAN
71 c = GETU32(counter + 0);
72 c++;
73 PUTU32(counter + 0, c);
74#else
75 c = GETU32(counter + 12); 70 c = GETU32(counter + 12);
76 c++; 71 c++; c &= 0xFFFFFFFF;
77 PUTU32(counter + 12, c); 72 PUTU32(counter + 12, c);
78#endif
79 73
80 /* if no overflow, we're done */ 74 /* if no overflow, we're done */
81 if (c) 75 if (c)
82 return; 76 return;
83 77
84 /* Grab 1st dword of counter and increment */ 78 /* Grab 1st dword of counter and increment */
85#ifdef L_ENDIAN
86 c = GETU32(counter + 4);
87 c++;
88 PUTU32(counter + 4, c);
89#else
90 c = GETU32(counter + 8); 79 c = GETU32(counter + 8);
91 c++; 80 c++; c &= 0xFFFFFFFF;
92 PUTU32(counter + 8, c); 81 PUTU32(counter + 8, c);
93#endif
94 82
95 /* if no overflow, we're done */ 83 /* if no overflow, we're done */
96 if (c) 84 if (c)
97 return; 85 return;
98 86
99 /* Grab 2nd dword of counter and increment */ 87 /* Grab 2nd dword of counter and increment */
100#ifdef L_ENDIAN
101 c = GETU32(counter + 8);
102 c++;
103 PUTU32(counter + 8, c);
104#else
105 c = GETU32(counter + 4); 88 c = GETU32(counter + 4);
106 c++; 89 c++; c &= 0xFFFFFFFF;
107 PUTU32(counter + 4, c); 90 PUTU32(counter + 4, c);
108#endif
109 91
110 /* if no overflow, we're done */ 92 /* if no overflow, we're done */
111 if (c) 93 if (c)
112 return; 94 return;
113 95
114 /* Grab top dword of counter and increment */ 96 /* Grab top dword of counter and increment */
115#ifdef L_ENDIAN
116 c = GETU32(counter + 12);
117 c++;
118 PUTU32(counter + 12, c);
119#else
120 c = GETU32(counter + 0); 97 c = GETU32(counter + 0);
121 c++; 98 c++; c &= 0xFFFFFFFF;
122 PUTU32(counter + 0, c); 99 PUTU32(counter + 0, c);
123#endif
124
125} 100}
126 101
127/* The input encrypted as though 128bit counter mode is being 102/* The input encrypted as though 128bit counter mode is being
diff --git a/src/lib/libssl/src/crypto/aes/aes_locl.h b/src/lib/libssl/src/crypto/aes/aes_locl.h
index f290946058..4184729e34 100644
--- a/src/lib/libssl/src/crypto/aes/aes_locl.h
+++ b/src/lib/libssl/src/crypto/aes/aes_locl.h
@@ -62,7 +62,7 @@
62#include <stdlib.h> 62#include <stdlib.h>
63#include <string.h> 63#include <string.h>
64 64
65#if defined(_MSC_VER) && !defined(OPENSSL_SYS_WINCE) 65#if defined(_MSC_VER) && !defined(_M_IA64) && !defined(OPENSSL_SYS_WINCE)
66# define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00) 66# define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00)
67# define GETU32(p) SWAP(*((u32 *)(p))) 67# define GETU32(p) SWAP(*((u32 *)(p)))
68# define PUTU32(ct, st) { *((u32 *)(ct)) = SWAP((st)); } 68# define PUTU32(ct, st) { *((u32 *)(ct)) = SWAP((st)); }
diff --git a/src/lib/libssl/src/crypto/asn1/Makefile b/src/lib/libssl/src/crypto/asn1/Makefile
new file mode 100644
index 0000000000..b11298d621
--- /dev/null
+++ b/src/lib/libssl/src/crypto/asn1/Makefile
@@ -0,0 +1,1150 @@
1#
2# SSLeay/crypto/asn1/Makefile
3#
4
5DIR= asn1
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile README
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= a_object.c a_bitstr.c a_utctm.c a_gentm.c a_time.c a_int.c a_octet.c \
26 a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c \
27 a_enum.c a_utf8.c a_sign.c a_digest.c a_verify.c a_mbstr.c a_strex.c \
28 x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_bignum.c \
29 x_long.c x_name.c x_x509.c x_x509a.c x_crl.c x_info.c x_spki.c nsseq.c \
30 d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c\
31 t_req.c t_x509.c t_x509a.c t_crl.c t_pkey.c t_spki.c t_bitst.c \
32 tasn_new.c tasn_fre.c tasn_enc.c tasn_dec.c tasn_utl.c tasn_typ.c \
33 f_int.c f_string.c n_pkey.c \
34 f_enum.c a_hdr.c x_pkey.c a_bool.c x_exten.c \
35 asn1_par.c asn1_lib.c asn1_err.c a_meth.c a_bytes.c a_strnid.c \
36 evp_asn1.c asn_pack.c p5_pbe.c p5_pbev2.c p8_pkey.c asn_moid.c
37LIBOBJ= a_object.o a_bitstr.o a_utctm.o a_gentm.o a_time.o a_int.o a_octet.o \
38 a_print.o a_type.o a_set.o a_dup.o a_d2i_fp.o a_i2d_fp.o \
39 a_enum.o a_utf8.o a_sign.o a_digest.o a_verify.o a_mbstr.o a_strex.o \
40 x_algor.o x_val.o x_pubkey.o x_sig.o x_req.o x_attrib.o x_bignum.o \
41 x_long.o x_name.o x_x509.o x_x509a.o x_crl.o x_info.o x_spki.o nsseq.o \
42 d2i_pu.o d2i_pr.o i2d_pu.o i2d_pr.o \
43 t_req.o t_x509.o t_x509a.o t_crl.o t_pkey.o t_spki.o t_bitst.o \
44 tasn_new.o tasn_fre.o tasn_enc.o tasn_dec.o tasn_utl.o tasn_typ.o \
45 f_int.o f_string.o n_pkey.o \
46 f_enum.o a_hdr.o x_pkey.o a_bool.o x_exten.o \
47 asn1_par.o asn1_lib.o asn1_err.o a_meth.o a_bytes.o a_strnid.o \
48 evp_asn1.o asn_pack.o p5_pbe.o p5_pbev2.o p8_pkey.o asn_moid.o
49
50SRC= $(LIBSRC)
51
52EXHEADER= asn1.h asn1_mac.h asn1t.h
53HEADER= $(EXHEADER)
54
55ALL= $(GENERAL) $(SRC) $(HEADER)
56
57top:
58 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
59
60test: test.c
61 cc -g -I../../include -c test.c
62 cc -g -I../../include -o test test.o -L../.. -lcrypto
63
64pk: pk.c
65 cc -g -I../../include -c pk.c
66 cc -g -I../../include -o pk pk.o -L../.. -lcrypto
67
68all: lib
69
70lib: $(LIBOBJ)
71 $(AR) $(LIB) $(LIBOBJ)
72 $(RANLIB) $(LIB) || echo Never mind.
73 @touch lib
74
75files:
76 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
77
78links:
79 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
80 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
81 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
82
83install:
84 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
85 do \
86 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
87 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
88 done;
89
90tags:
91 ctags $(SRC)
92
93tests:
94
95lint:
96 lint -DLINT $(INCLUDES) $(SRC)>fluff
97
98depend:
99 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
100
101dclean:
102 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
103 mv -f Makefile.new $(MAKEFILE)
104
105clean:
106 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
107
108
109# DO NOT DELETE THIS LINE -- make depend depends on it.
110
111a_bitstr.o: ../../e_os.h ../../include/openssl/asn1.h
112a_bitstr.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
113a_bitstr.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
114a_bitstr.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
115a_bitstr.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
116a_bitstr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
117a_bitstr.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
118a_bitstr.o: ../../include/openssl/symhacks.h ../cryptlib.h a_bitstr.c
119a_bool.o: ../../e_os.h ../../include/openssl/asn1.h
120a_bool.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
121a_bool.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
122a_bool.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
123a_bool.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
124a_bool.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
125a_bool.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
126a_bool.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
127a_bool.o: ../cryptlib.h a_bool.c
128a_bytes.o: ../../e_os.h ../../include/openssl/asn1.h
129a_bytes.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
130a_bytes.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
131a_bytes.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
132a_bytes.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
133a_bytes.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
134a_bytes.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
135a_bytes.o: ../../include/openssl/symhacks.h ../cryptlib.h a_bytes.c
136a_d2i_fp.o: ../../e_os.h ../../include/openssl/asn1.h
137a_d2i_fp.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
138a_d2i_fp.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
139a_d2i_fp.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
140a_d2i_fp.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
141a_d2i_fp.o: ../../include/openssl/opensslconf.h
142a_d2i_fp.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
143a_d2i_fp.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
144a_d2i_fp.o: ../../include/openssl/symhacks.h ../cryptlib.h a_d2i_fp.c
145a_digest.o: ../../e_os.h ../../include/openssl/aes.h
146a_digest.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
147a_digest.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
148a_digest.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
149a_digest.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
150a_digest.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
151a_digest.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
152a_digest.o: ../../include/openssl/err.h ../../include/openssl/evp.h
153a_digest.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
154a_digest.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
155a_digest.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
156a_digest.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
157a_digest.o: ../../include/openssl/opensslconf.h
158a_digest.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
159a_digest.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
160a_digest.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
161a_digest.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
162a_digest.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
163a_digest.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
164a_digest.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
165a_digest.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
166a_digest.o: ../cryptlib.h a_digest.c
167a_dup.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
168a_dup.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
169a_dup.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
170a_dup.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
171a_dup.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
172a_dup.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
173a_dup.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
174a_dup.o: ../cryptlib.h a_dup.c
175a_enum.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
176a_enum.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
177a_enum.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
178a_enum.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
179a_enum.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
180a_enum.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
181a_enum.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
182a_enum.o: ../cryptlib.h a_enum.c
183a_gentm.o: ../../e_os.h ../../include/openssl/asn1.h
184a_gentm.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
185a_gentm.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
186a_gentm.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
187a_gentm.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
188a_gentm.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
189a_gentm.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
190a_gentm.o: ../../include/openssl/symhacks.h ../cryptlib.h ../o_time.h a_gentm.c
191a_hdr.o: ../../e_os.h ../../include/openssl/asn1.h
192a_hdr.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
193a_hdr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
194a_hdr.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
195a_hdr.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
196a_hdr.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
197a_hdr.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
198a_hdr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
199a_hdr.o: ../cryptlib.h a_hdr.c
200a_i2d_fp.o: ../../e_os.h ../../include/openssl/asn1.h
201a_i2d_fp.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
202a_i2d_fp.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
203a_i2d_fp.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
204a_i2d_fp.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
205a_i2d_fp.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
206a_i2d_fp.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
207a_i2d_fp.o: ../../include/openssl/symhacks.h ../cryptlib.h a_i2d_fp.c
208a_int.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
209a_int.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
210a_int.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
211a_int.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
212a_int.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
213a_int.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
214a_int.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
215a_int.o: ../cryptlib.h a_int.c
216a_mbstr.o: ../../e_os.h ../../include/openssl/asn1.h
217a_mbstr.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
218a_mbstr.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
219a_mbstr.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
220a_mbstr.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
221a_mbstr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
222a_mbstr.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
223a_mbstr.o: ../../include/openssl/symhacks.h ../cryptlib.h a_mbstr.c
224a_meth.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
225a_meth.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
226a_meth.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
227a_meth.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
228a_meth.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
229a_meth.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
230a_meth.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
231a_meth.o: ../cryptlib.h a_meth.c
232a_object.o: ../../e_os.h ../../include/openssl/asn1.h
233a_object.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
234a_object.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
235a_object.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
236a_object.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
237a_object.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
238a_object.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
239a_object.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
240a_object.o: ../../include/openssl/symhacks.h ../cryptlib.h a_object.c
241a_octet.o: ../../e_os.h ../../include/openssl/asn1.h
242a_octet.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
243a_octet.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
244a_octet.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
245a_octet.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
246a_octet.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
247a_octet.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
248a_octet.o: ../../include/openssl/symhacks.h ../cryptlib.h a_octet.c
249a_print.o: ../../e_os.h ../../include/openssl/asn1.h
250a_print.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
251a_print.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
252a_print.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
253a_print.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
254a_print.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
255a_print.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
256a_print.o: ../../include/openssl/symhacks.h ../cryptlib.h a_print.c
257a_set.o: ../../e_os.h ../../include/openssl/asn1.h
258a_set.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
259a_set.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
260a_set.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
261a_set.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
262a_set.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
263a_set.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
264a_set.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
265a_set.o: ../cryptlib.h a_set.c
266a_sign.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
267a_sign.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
268a_sign.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
269a_sign.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
270a_sign.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
271a_sign.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
272a_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
273a_sign.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
274a_sign.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
275a_sign.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
276a_sign.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
277a_sign.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
278a_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
279a_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
280a_sign.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
281a_sign.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
282a_sign.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
283a_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
284a_sign.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
285a_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
286a_sign.o: ../cryptlib.h a_sign.c
287a_strex.o: ../../e_os.h ../../include/openssl/aes.h
288a_strex.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
289a_strex.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
290a_strex.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
291a_strex.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
292a_strex.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
293a_strex.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
294a_strex.o: ../../include/openssl/err.h ../../include/openssl/evp.h
295a_strex.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
296a_strex.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
297a_strex.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
298a_strex.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
299a_strex.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
300a_strex.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
301a_strex.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
302a_strex.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
303a_strex.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
304a_strex.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
305a_strex.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
306a_strex.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
307a_strex.o: ../../include/openssl/x509_vfy.h ../cryptlib.h a_strex.c charmap.h
308a_strnid.o: ../../e_os.h ../../include/openssl/asn1.h
309a_strnid.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
310a_strnid.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
311a_strnid.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
312a_strnid.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
313a_strnid.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
314a_strnid.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
315a_strnid.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
316a_strnid.o: ../../include/openssl/symhacks.h ../cryptlib.h a_strnid.c
317a_time.o: ../../e_os.h ../../include/openssl/asn1.h
318a_time.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
319a_time.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
320a_time.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
321a_time.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
322a_time.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
323a_time.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
324a_time.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
325a_time.o: ../cryptlib.h ../o_time.h a_time.c
326a_type.o: ../../e_os.h ../../include/openssl/asn1.h
327a_type.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
328a_type.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
329a_type.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
330a_type.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
331a_type.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
332a_type.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
333a_type.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
334a_type.o: ../cryptlib.h a_type.c
335a_utctm.o: ../../e_os.h ../../include/openssl/asn1.h
336a_utctm.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
337a_utctm.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
338a_utctm.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
339a_utctm.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
340a_utctm.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
341a_utctm.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
342a_utctm.o: ../../include/openssl/symhacks.h ../cryptlib.h ../o_time.h a_utctm.c
343a_utf8.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
344a_utf8.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
345a_utf8.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
346a_utf8.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
347a_utf8.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
348a_utf8.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
349a_utf8.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
350a_utf8.o: ../cryptlib.h a_utf8.c
351a_verify.o: ../../e_os.h ../../include/openssl/aes.h
352a_verify.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
353a_verify.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
354a_verify.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
355a_verify.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
356a_verify.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
357a_verify.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
358a_verify.o: ../../include/openssl/err.h ../../include/openssl/evp.h
359a_verify.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
360a_verify.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
361a_verify.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
362a_verify.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
363a_verify.o: ../../include/openssl/opensslconf.h
364a_verify.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
365a_verify.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
366a_verify.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
367a_verify.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
368a_verify.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
369a_verify.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
370a_verify.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
371a_verify.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
372a_verify.o: ../cryptlib.h a_verify.c
373asn1_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
374asn1_err.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
375asn1_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
376asn1_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
377asn1_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
378asn1_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
379asn1_err.o: ../../include/openssl/symhacks.h asn1_err.c
380asn1_lib.o: ../../e_os.h ../../include/openssl/asn1.h
381asn1_lib.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
382asn1_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
383asn1_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
384asn1_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
385asn1_lib.o: ../../include/openssl/opensslconf.h
386asn1_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
387asn1_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
388asn1_lib.o: ../../include/openssl/symhacks.h ../cryptlib.h asn1_lib.c
389asn1_par.o: ../../e_os.h ../../include/openssl/asn1.h
390asn1_par.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
391asn1_par.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
392asn1_par.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
393asn1_par.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
394asn1_par.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
395asn1_par.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
396asn1_par.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
397asn1_par.o: ../../include/openssl/symhacks.h ../cryptlib.h asn1_par.c
398asn_moid.o: ../../e_os.h ../../include/openssl/aes.h
399asn_moid.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
400asn_moid.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
401asn_moid.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
402asn_moid.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
403asn_moid.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
404asn_moid.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
405asn_moid.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
406asn_moid.o: ../../include/openssl/err.h ../../include/openssl/evp.h
407asn_moid.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
408asn_moid.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
409asn_moid.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
410asn_moid.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
411asn_moid.o: ../../include/openssl/opensslconf.h
412asn_moid.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
413asn_moid.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
414asn_moid.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
415asn_moid.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
416asn_moid.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
417asn_moid.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
418asn_moid.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
419asn_moid.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
420asn_moid.o: ../cryptlib.h asn_moid.c
421asn_pack.o: ../../e_os.h ../../include/openssl/asn1.h
422asn_pack.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
423asn_pack.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
424asn_pack.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
425asn_pack.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
426asn_pack.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
427asn_pack.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
428asn_pack.o: ../../include/openssl/symhacks.h ../cryptlib.h asn_pack.c
429d2i_pr.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
430d2i_pr.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
431d2i_pr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
432d2i_pr.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
433d2i_pr.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
434d2i_pr.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
435d2i_pr.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
436d2i_pr.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
437d2i_pr.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
438d2i_pr.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
439d2i_pr.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
440d2i_pr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
441d2i_pr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
442d2i_pr.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
443d2i_pr.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
444d2i_pr.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
445d2i_pr.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
446d2i_pr.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
447d2i_pr.o: ../../include/openssl/ui_compat.h ../cryptlib.h d2i_pr.c
448d2i_pu.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
449d2i_pu.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
450d2i_pu.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
451d2i_pu.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
452d2i_pu.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
453d2i_pu.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
454d2i_pu.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
455d2i_pu.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
456d2i_pu.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
457d2i_pu.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
458d2i_pu.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
459d2i_pu.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
460d2i_pu.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
461d2i_pu.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
462d2i_pu.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
463d2i_pu.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
464d2i_pu.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
465d2i_pu.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
466d2i_pu.o: ../../include/openssl/ui_compat.h ../cryptlib.h d2i_pu.c
467evp_asn1.o: ../../e_os.h ../../include/openssl/asn1.h
468evp_asn1.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
469evp_asn1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
470evp_asn1.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
471evp_asn1.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
472evp_asn1.o: ../../include/openssl/opensslconf.h
473evp_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
474evp_asn1.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
475evp_asn1.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_asn1.c
476f_enum.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
477f_enum.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
478f_enum.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
479f_enum.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
480f_enum.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
481f_enum.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
482f_enum.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
483f_enum.o: ../cryptlib.h f_enum.c
484f_int.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
485f_int.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
486f_int.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
487f_int.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
488f_int.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
489f_int.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
490f_int.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
491f_int.o: ../cryptlib.h f_int.c
492f_string.o: ../../e_os.h ../../include/openssl/asn1.h
493f_string.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
494f_string.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
495f_string.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
496f_string.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
497f_string.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
498f_string.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
499f_string.o: ../../include/openssl/symhacks.h ../cryptlib.h f_string.c
500i2d_pr.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
501i2d_pr.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
502i2d_pr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
503i2d_pr.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
504i2d_pr.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
505i2d_pr.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
506i2d_pr.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
507i2d_pr.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
508i2d_pr.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
509i2d_pr.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
510i2d_pr.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
511i2d_pr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
512i2d_pr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
513i2d_pr.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
514i2d_pr.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
515i2d_pr.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
516i2d_pr.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
517i2d_pr.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
518i2d_pr.o: ../../include/openssl/ui_compat.h ../cryptlib.h i2d_pr.c
519i2d_pu.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
520i2d_pu.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
521i2d_pu.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
522i2d_pu.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
523i2d_pu.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
524i2d_pu.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
525i2d_pu.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
526i2d_pu.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
527i2d_pu.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
528i2d_pu.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
529i2d_pu.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
530i2d_pu.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
531i2d_pu.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
532i2d_pu.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
533i2d_pu.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
534i2d_pu.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
535i2d_pu.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
536i2d_pu.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
537i2d_pu.o: ../../include/openssl/ui_compat.h ../cryptlib.h i2d_pu.c
538n_pkey.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
539n_pkey.o: ../../include/openssl/asn1_mac.h ../../include/openssl/asn1t.h
540n_pkey.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
541n_pkey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
542n_pkey.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
543n_pkey.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
544n_pkey.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
545n_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
546n_pkey.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
547n_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
548n_pkey.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
549n_pkey.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
550n_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
551n_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
552n_pkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
553n_pkey.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
554n_pkey.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
555n_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
556n_pkey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
557n_pkey.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
558n_pkey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
559n_pkey.o: ../cryptlib.h n_pkey.c
560nsseq.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
561nsseq.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
562nsseq.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
563nsseq.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
564nsseq.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
565nsseq.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
566nsseq.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
567nsseq.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
568nsseq.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
569nsseq.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
570nsseq.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
571nsseq.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
572nsseq.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
573nsseq.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
574nsseq.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
575nsseq.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
576nsseq.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
577nsseq.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
578nsseq.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
579nsseq.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h nsseq.c
580p5_pbe.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
581p5_pbe.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
582p5_pbe.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
583p5_pbe.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
584p5_pbe.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
585p5_pbe.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
586p5_pbe.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
587p5_pbe.o: ../../include/openssl/err.h ../../include/openssl/evp.h
588p5_pbe.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
589p5_pbe.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
590p5_pbe.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
591p5_pbe.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
592p5_pbe.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
593p5_pbe.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
594p5_pbe.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
595p5_pbe.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
596p5_pbe.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
597p5_pbe.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
598p5_pbe.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
599p5_pbe.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
600p5_pbe.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
601p5_pbe.o: ../cryptlib.h p5_pbe.c
602p5_pbev2.o: ../../e_os.h ../../include/openssl/aes.h
603p5_pbev2.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
604p5_pbev2.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
605p5_pbev2.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
606p5_pbev2.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
607p5_pbev2.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
608p5_pbev2.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
609p5_pbev2.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
610p5_pbev2.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
611p5_pbev2.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
612p5_pbev2.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
613p5_pbev2.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
614p5_pbev2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
615p5_pbev2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
616p5_pbev2.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
617p5_pbev2.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
618p5_pbev2.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
619p5_pbev2.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
620p5_pbev2.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
621p5_pbev2.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
622p5_pbev2.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
623p5_pbev2.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p5_pbev2.c
624p8_pkey.o: ../../e_os.h ../../include/openssl/aes.h
625p8_pkey.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
626p8_pkey.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
627p8_pkey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
628p8_pkey.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
629p8_pkey.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
630p8_pkey.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
631p8_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
632p8_pkey.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
633p8_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
634p8_pkey.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
635p8_pkey.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
636p8_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
637p8_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
638p8_pkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
639p8_pkey.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
640p8_pkey.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
641p8_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
642p8_pkey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
643p8_pkey.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
644p8_pkey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
645p8_pkey.o: ../cryptlib.h p8_pkey.c
646t_bitst.o: ../../e_os.h ../../include/openssl/aes.h
647t_bitst.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
648t_bitst.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
649t_bitst.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
650t_bitst.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
651t_bitst.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
652t_bitst.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
653t_bitst.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
654t_bitst.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
655t_bitst.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
656t_bitst.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
657t_bitst.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
658t_bitst.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
659t_bitst.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
660t_bitst.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
661t_bitst.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
662t_bitst.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
663t_bitst.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
664t_bitst.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
665t_bitst.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
666t_bitst.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
667t_bitst.o: ../../include/openssl/x509v3.h ../cryptlib.h t_bitst.c
668t_crl.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
669t_crl.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
670t_crl.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
671t_crl.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
672t_crl.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
673t_crl.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
674t_crl.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
675t_crl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
676t_crl.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
677t_crl.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
678t_crl.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
679t_crl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
680t_crl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
681t_crl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
682t_crl.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
683t_crl.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
684t_crl.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
685t_crl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
686t_crl.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
687t_crl.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
688t_crl.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
689t_crl.o: ../cryptlib.h t_crl.c
690t_pkey.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
691t_pkey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
692t_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
693t_pkey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
694t_pkey.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
695t_pkey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
696t_pkey.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rsa.h
697t_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
698t_pkey.o: ../../include/openssl/symhacks.h ../cryptlib.h t_pkey.c
699t_req.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
700t_req.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
701t_req.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
702t_req.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
703t_req.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
704t_req.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
705t_req.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
706t_req.o: ../../include/openssl/err.h ../../include/openssl/evp.h
707t_req.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
708t_req.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
709t_req.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
710t_req.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
711t_req.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
712t_req.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
713t_req.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
714t_req.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
715t_req.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
716t_req.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
717t_req.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
718t_req.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
719t_req.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
720t_req.o: ../cryptlib.h t_req.c
721t_spki.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
722t_spki.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
723t_spki.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
724t_spki.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
725t_spki.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
726t_spki.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
727t_spki.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
728t_spki.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
729t_spki.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
730t_spki.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
731t_spki.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
732t_spki.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
733t_spki.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
734t_spki.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
735t_spki.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
736t_spki.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
737t_spki.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
738t_spki.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
739t_spki.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
740t_spki.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
741t_spki.o: ../cryptlib.h t_spki.c
742t_x509.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
743t_x509.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
744t_x509.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
745t_x509.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
746t_x509.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
747t_x509.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
748t_x509.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
749t_x509.o: ../../include/openssl/err.h ../../include/openssl/evp.h
750t_x509.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
751t_x509.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
752t_x509.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
753t_x509.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
754t_x509.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
755t_x509.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
756t_x509.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
757t_x509.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
758t_x509.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
759t_x509.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
760t_x509.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
761t_x509.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
762t_x509.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
763t_x509.o: ../cryptlib.h t_x509.c
764t_x509a.o: ../../e_os.h ../../include/openssl/aes.h
765t_x509a.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
766t_x509a.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
767t_x509a.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
768t_x509a.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
769t_x509a.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
770t_x509a.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
771t_x509a.o: ../../include/openssl/err.h ../../include/openssl/evp.h
772t_x509a.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
773t_x509a.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
774t_x509a.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
775t_x509a.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
776t_x509a.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
777t_x509a.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
778t_x509a.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
779t_x509a.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
780t_x509a.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
781t_x509a.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
782t_x509a.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
783t_x509a.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
784t_x509a.o: ../../include/openssl/x509_vfy.h ../cryptlib.h t_x509a.c
785tasn_dec.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
786tasn_dec.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
787tasn_dec.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
788tasn_dec.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
789tasn_dec.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
790tasn_dec.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
791tasn_dec.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
792tasn_dec.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
793tasn_dec.o: ../../include/openssl/symhacks.h tasn_dec.c
794tasn_enc.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
795tasn_enc.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
796tasn_enc.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
797tasn_enc.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
798tasn_enc.o: ../../include/openssl/opensslconf.h
799tasn_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
800tasn_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
801tasn_enc.o: ../../include/openssl/symhacks.h tasn_enc.c
802tasn_fre.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
803tasn_fre.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
804tasn_fre.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
805tasn_fre.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
806tasn_fre.o: ../../include/openssl/opensslconf.h
807tasn_fre.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
808tasn_fre.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
809tasn_fre.o: ../../include/openssl/symhacks.h tasn_fre.c
810tasn_new.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
811tasn_new.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
812tasn_new.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
813tasn_new.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
814tasn_new.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
815tasn_new.o: ../../include/openssl/opensslconf.h
816tasn_new.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
817tasn_new.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
818tasn_new.o: ../../include/openssl/symhacks.h tasn_new.c
819tasn_typ.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
820tasn_typ.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
821tasn_typ.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
822tasn_typ.o: ../../include/openssl/opensslconf.h
823tasn_typ.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
824tasn_typ.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
825tasn_typ.o: ../../include/openssl/symhacks.h tasn_typ.c
826tasn_utl.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
827tasn_utl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
828tasn_utl.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
829tasn_utl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
830tasn_utl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
831tasn_utl.o: ../../include/openssl/opensslconf.h
832tasn_utl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
833tasn_utl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
834tasn_utl.o: ../../include/openssl/symhacks.h tasn_utl.c
835x_algor.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
836x_algor.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
837x_algor.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
838x_algor.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
839x_algor.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
840x_algor.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
841x_algor.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
842x_algor.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
843x_algor.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
844x_algor.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
845x_algor.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
846x_algor.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
847x_algor.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
848x_algor.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
849x_algor.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
850x_algor.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
851x_algor.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
852x_algor.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
853x_algor.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
854x_algor.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
855x_algor.o: x_algor.c
856x_attrib.o: ../../e_os.h ../../include/openssl/aes.h
857x_attrib.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
858x_attrib.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
859x_attrib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
860x_attrib.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
861x_attrib.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
862x_attrib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
863x_attrib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
864x_attrib.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
865x_attrib.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
866x_attrib.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
867x_attrib.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
868x_attrib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
869x_attrib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
870x_attrib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
871x_attrib.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
872x_attrib.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
873x_attrib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
874x_attrib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
875x_attrib.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
876x_attrib.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
877x_attrib.o: ../cryptlib.h x_attrib.c
878x_bignum.o: ../../e_os.h ../../include/openssl/asn1.h
879x_bignum.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
880x_bignum.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
881x_bignum.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
882x_bignum.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
883x_bignum.o: ../../include/openssl/opensslconf.h
884x_bignum.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
885x_bignum.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
886x_bignum.o: ../../include/openssl/symhacks.h ../cryptlib.h x_bignum.c
887x_crl.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
888x_crl.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
889x_crl.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
890x_crl.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
891x_crl.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
892x_crl.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
893x_crl.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
894x_crl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
895x_crl.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
896x_crl.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
897x_crl.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
898x_crl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
899x_crl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
900x_crl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
901x_crl.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
902x_crl.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
903x_crl.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
904x_crl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
905x_crl.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
906x_crl.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
907x_crl.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_crl.c
908x_exten.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
909x_exten.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
910x_exten.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
911x_exten.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
912x_exten.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
913x_exten.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
914x_exten.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
915x_exten.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
916x_exten.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
917x_exten.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
918x_exten.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
919x_exten.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
920x_exten.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
921x_exten.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
922x_exten.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
923x_exten.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
924x_exten.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
925x_exten.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
926x_exten.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
927x_exten.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
928x_exten.o: x_exten.c
929x_info.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
930x_info.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
931x_info.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
932x_info.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
933x_info.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
934x_info.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
935x_info.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
936x_info.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
937x_info.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
938x_info.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
939x_info.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
940x_info.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
941x_info.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
942x_info.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
943x_info.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
944x_info.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
945x_info.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
946x_info.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
947x_info.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
948x_info.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
949x_info.o: ../cryptlib.h x_info.c
950x_long.o: ../../e_os.h ../../include/openssl/asn1.h
951x_long.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
952x_long.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
953x_long.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
954x_long.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
955x_long.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
956x_long.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
957x_long.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
958x_long.o: ../cryptlib.h x_long.c
959x_name.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
960x_name.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
961x_name.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
962x_name.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
963x_name.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
964x_name.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
965x_name.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
966x_name.o: ../../include/openssl/err.h ../../include/openssl/evp.h
967x_name.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
968x_name.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
969x_name.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
970x_name.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
971x_name.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
972x_name.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
973x_name.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
974x_name.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
975x_name.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
976x_name.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
977x_name.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
978x_name.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
979x_name.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_name.c
980x_pkey.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
981x_pkey.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
982x_pkey.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
983x_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
984x_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
985x_pkey.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
986x_pkey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
987x_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
988x_pkey.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
989x_pkey.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
990x_pkey.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
991x_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
992x_pkey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
993x_pkey.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
994x_pkey.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
995x_pkey.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
996x_pkey.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
997x_pkey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
998x_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
999x_pkey.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
1000x_pkey.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_pkey.c
1001x_pubkey.o: ../../e_os.h ../../include/openssl/aes.h
1002x_pubkey.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
1003x_pubkey.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
1004x_pubkey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
1005x_pubkey.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
1006x_pubkey.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
1007x_pubkey.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
1008x_pubkey.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
1009x_pubkey.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
1010x_pubkey.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
1011x_pubkey.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
1012x_pubkey.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
1013x_pubkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
1014x_pubkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
1015x_pubkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
1016x_pubkey.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
1017x_pubkey.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
1018x_pubkey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
1019x_pubkey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
1020x_pubkey.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
1021x_pubkey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
1022x_pubkey.o: ../cryptlib.h x_pubkey.c
1023x_req.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
1024x_req.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
1025x_req.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
1026x_req.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
1027x_req.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
1028x_req.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
1029x_req.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
1030x_req.o: ../../include/openssl/err.h ../../include/openssl/evp.h
1031x_req.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
1032x_req.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
1033x_req.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
1034x_req.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
1035x_req.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
1036x_req.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
1037x_req.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
1038x_req.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
1039x_req.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
1040x_req.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
1041x_req.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
1042x_req.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
1043x_req.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_req.c
1044x_sig.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
1045x_sig.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
1046x_sig.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
1047x_sig.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
1048x_sig.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
1049x_sig.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
1050x_sig.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
1051x_sig.o: ../../include/openssl/err.h ../../include/openssl/evp.h
1052x_sig.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
1053x_sig.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
1054x_sig.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
1055x_sig.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
1056x_sig.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
1057x_sig.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
1058x_sig.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
1059x_sig.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
1060x_sig.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
1061x_sig.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
1062x_sig.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
1063x_sig.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
1064x_sig.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_sig.c
1065x_spki.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
1066x_spki.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
1067x_spki.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
1068x_spki.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
1069x_spki.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
1070x_spki.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
1071x_spki.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
1072x_spki.o: ../../include/openssl/err.h ../../include/openssl/evp.h
1073x_spki.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
1074x_spki.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
1075x_spki.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
1076x_spki.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
1077x_spki.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
1078x_spki.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
1079x_spki.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
1080x_spki.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
1081x_spki.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
1082x_spki.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
1083x_spki.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
1084x_spki.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
1085x_spki.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_spki.c
1086x_val.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
1087x_val.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
1088x_val.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
1089x_val.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
1090x_val.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
1091x_val.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
1092x_val.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
1093x_val.o: ../../include/openssl/err.h ../../include/openssl/evp.h
1094x_val.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
1095x_val.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
1096x_val.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
1097x_val.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
1098x_val.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
1099x_val.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
1100x_val.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
1101x_val.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
1102x_val.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
1103x_val.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
1104x_val.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
1105x_val.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
1106x_val.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_val.c
1107x_x509.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
1108x_x509.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
1109x_x509.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
1110x_x509.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
1111x_x509.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
1112x_x509.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
1113x_x509.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
1114x_x509.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
1115x_x509.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
1116x_x509.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
1117x_x509.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
1118x_x509.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
1119x_x509.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
1120x_x509.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
1121x_x509.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
1122x_x509.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
1123x_x509.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
1124x_x509.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
1125x_x509.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
1126x_x509.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
1127x_x509.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
1128x_x509.o: ../../include/openssl/x509v3.h ../cryptlib.h x_x509.c
1129x_x509a.o: ../../e_os.h ../../include/openssl/aes.h
1130x_x509a.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
1131x_x509a.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
1132x_x509a.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
1133x_x509a.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
1134x_x509a.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
1135x_x509a.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
1136x_x509a.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
1137x_x509a.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
1138x_x509a.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
1139x_x509a.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
1140x_x509a.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
1141x_x509a.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
1142x_x509a.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
1143x_x509a.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
1144x_x509a.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
1145x_x509a.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
1146x_x509a.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
1147x_x509a.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
1148x_x509a.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
1149x_x509a.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
1150x_x509a.o: ../cryptlib.h x_x509a.c
diff --git a/src/lib/libssl/src/crypto/asn1/a_bitstr.c b/src/lib/libssl/src/crypto/asn1/a_bitstr.c
index f4ea96cd54..b81bf4fc81 100644
--- a/src/lib/libssl/src/crypto/asn1/a_bitstr.c
+++ b/src/lib/libssl/src/crypto/asn1/a_bitstr.c
@@ -194,8 +194,12 @@ int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value)
194 c=(unsigned char *)OPENSSL_realloc_clean(a->data, 194 c=(unsigned char *)OPENSSL_realloc_clean(a->data,
195 a->length, 195 a->length,
196 w+1); 196 w+1);
197 if (c == NULL) return(0); 197 if (c == NULL)
198 if (w+1-a->length > 0) memset(c+a->length, 0, w+1-a->length); 198 {
199 ASN1err(ASN1_F_ASN1_BIT_STRING_SET_BIT,ERR_R_MALLOC_FAILURE);
200 return 0;
201 }
202 if (w+1-a->length > 0) memset(c+a->length, 0, w+1-a->length);
199 a->data=c; 203 a->data=c;
200 a->length=w+1; 204 a->length=w+1;
201 } 205 }
diff --git a/src/lib/libssl/src/crypto/asn1/a_digest.c b/src/lib/libssl/src/crypto/asn1/a_digest.c
index 4931e222a0..7182e9fa5d 100644
--- a/src/lib/libssl/src/crypto/asn1/a_digest.c
+++ b/src/lib/libssl/src/crypto/asn1/a_digest.c
@@ -65,6 +65,7 @@
65# include <sys/types.h> 65# include <sys/types.h>
66#endif 66#endif
67 67
68#include <openssl/err.h>
68#include <openssl/evp.h> 69#include <openssl/evp.h>
69#include <openssl/buffer.h> 70#include <openssl/buffer.h>
70#include <openssl/x509.h> 71#include <openssl/x509.h>
@@ -78,7 +79,11 @@ int ASN1_digest(int (*i2d)(), const EVP_MD *type, char *data,
78 unsigned char *str,*p; 79 unsigned char *str,*p;
79 80
80 i=i2d(data,NULL); 81 i=i2d(data,NULL);
81 if ((str=(unsigned char *)OPENSSL_malloc(i)) == NULL) return(0); 82 if ((str=(unsigned char *)OPENSSL_malloc(i)) == NULL)
83 {
84 ASN1err(ASN1_F_ASN1_DIGEST,ERR_R_MALLOC_FAILURE);
85 return(0);
86 }
82 p=str; 87 p=str;
83 i2d(data,&p); 88 i2d(data,&p);
84 89
diff --git a/src/lib/libssl/src/crypto/asn1/a_enum.c b/src/lib/libssl/src/crypto/asn1/a_enum.c
index ad8f0ffd1a..03ede68d1c 100644
--- a/src/lib/libssl/src/crypto/asn1/a_enum.c
+++ b/src/lib/libssl/src/crypto/asn1/a_enum.c
@@ -156,7 +156,7 @@ ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(BIGNUM *bn, ASN1_ENUMERATED *ai)
156 unsigned char *new_data=OPENSSL_realloc(ret->data, len+4); 156 unsigned char *new_data=OPENSSL_realloc(ret->data, len+4);
157 if (!new_data) 157 if (!new_data)
158 { 158 {
159 ASN1err(ASN1_F_BN_TO_ASN1_INTEGER,ERR_R_MALLOC_FAILURE); 159 ASN1err(ASN1_F_BN_TO_ASN1_ENUMERATED,ERR_R_MALLOC_FAILURE);
160 goto err; 160 goto err;
161 } 161 }
162 ret->data=new_data; 162 ret->data=new_data;
diff --git a/src/lib/libssl/src/crypto/asn1/a_gentm.c b/src/lib/libssl/src/crypto/asn1/a_gentm.c
index 8581007868..0dfd576211 100644
--- a/src/lib/libssl/src/crypto/asn1/a_gentm.c
+++ b/src/lib/libssl/src/crypto/asn1/a_gentm.c
@@ -192,8 +192,9 @@ int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, char *str)
192 { 192 {
193 if (s != NULL) 193 if (s != NULL)
194 { 194 {
195 ASN1_STRING_set((ASN1_STRING *)s, 195 if (!ASN1_STRING_set((ASN1_STRING *)s,
196 (unsigned char *)str,t.length); 196 (unsigned char *)str,t.length))
197 return 0;
197 s->type=V_ASN1_GENERALIZEDTIME; 198 s->type=V_ASN1_GENERALIZEDTIME;
198 } 199 }
199 return(1); 200 return(1);
@@ -223,7 +224,12 @@ ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s,
223 if ((p == NULL) || ((size_t)s->length < len)) 224 if ((p == NULL) || ((size_t)s->length < len))
224 { 225 {
225 p=OPENSSL_malloc(len); 226 p=OPENSSL_malloc(len);
226 if (p == NULL) return(NULL); 227 if (p == NULL)
228 {
229 ASN1err(ASN1_F_ASN1_GENERALIZEDTIME_SET,
230 ERR_R_MALLOC_FAILURE);
231 return(NULL);
232 }
227 if (s->data != NULL) 233 if (s->data != NULL)
228 OPENSSL_free(s->data); 234 OPENSSL_free(s->data);
229 s->data=(unsigned char *)p; 235 s->data=(unsigned char *)p;
diff --git a/src/lib/libssl/src/crypto/asn1/a_int.c b/src/lib/libssl/src/crypto/asn1/a_int.c
index edb243c021..21cc64bb23 100644
--- a/src/lib/libssl/src/crypto/asn1/a_int.c
+++ b/src/lib/libssl/src/crypto/asn1/a_int.c
@@ -64,7 +64,26 @@ ASN1_INTEGER *ASN1_INTEGER_dup(ASN1_INTEGER *x)
64{ return M_ASN1_INTEGER_dup(x);} 64{ return M_ASN1_INTEGER_dup(x);}
65 65
66int ASN1_INTEGER_cmp(ASN1_INTEGER *x, ASN1_INTEGER *y) 66int ASN1_INTEGER_cmp(ASN1_INTEGER *x, ASN1_INTEGER *y)
67{ return M_ASN1_INTEGER_cmp(x,y);} 67 {
68 int neg, ret;
69 /* Compare signs */
70 neg = x->type & V_ASN1_NEG;
71 if (neg != (y->type & V_ASN1_NEG))
72 {
73 if (neg)
74 return -1;
75 else
76 return 1;
77 }
78
79 ret = ASN1_STRING_cmp(x, y);
80
81 if (neg)
82 return -ret;
83 else
84 return ret;
85 }
86
68 87
69/* 88/*
70 * This converts an ASN1 INTEGER into its content encoding. 89 * This converts an ASN1 INTEGER into its content encoding.
diff --git a/src/lib/libssl/src/crypto/asn1/a_print.c b/src/lib/libssl/src/crypto/asn1/a_print.c
index 8035513f04..d18e772320 100644
--- a/src/lib/libssl/src/crypto/asn1/a_print.c
+++ b/src/lib/libssl/src/crypto/asn1/a_print.c
@@ -60,7 +60,7 @@
60#include "cryptlib.h" 60#include "cryptlib.h"
61#include <openssl/asn1.h> 61#include <openssl/asn1.h>
62 62
63int ASN1_PRINTABLE_type(unsigned char *s, int len) 63int ASN1_PRINTABLE_type(const unsigned char *s, int len)
64 { 64 {
65 int c; 65 int c;
66 int ia5=0; 66 int ia5=0;
diff --git a/src/lib/libssl/src/crypto/asn1/a_set.c b/src/lib/libssl/src/crypto/asn1/a_set.c
index 0f839822ff..e24061c545 100644
--- a/src/lib/libssl/src/crypto/asn1/a_set.c
+++ b/src/lib/libssl/src/crypto/asn1/a_set.c
@@ -118,8 +118,13 @@ int i2d_ASN1_SET(STACK *a, unsigned char **pp, int (*func)(), int ex_tag,
118 } 118 }
119 119
120 pStart = p; /* Catch the beg of Setblobs*/ 120 pStart = p; /* Catch the beg of Setblobs*/
121 if (!(rgSetBlob = (MYBLOB *)OPENSSL_malloc( sk_num(a) * sizeof(MYBLOB)))) return 0; /* In this array 121 /* In this array we will store the SET blobs */
122we will store the SET blobs */ 122 rgSetBlob = (MYBLOB *)OPENSSL_malloc(sk_num(a) * sizeof(MYBLOB));
123 if (rgSetBlob == NULL)
124 {
125 ASN1err(ASN1_F_I2D_ASN1_SET,ERR_R_MALLOC_FAILURE);
126 return(0);
127 }
123 128
124 for (i=0; i<sk_num(a); i++) 129 for (i=0; i<sk_num(a); i++)
125 { 130 {
@@ -135,7 +140,11 @@ SetBlob
135 /* Now we have to sort the blobs. I am using a simple algo. 140 /* Now we have to sort the blobs. I am using a simple algo.
136 *Sort ptrs *Copy to temp-mem *Copy from temp-mem to user-mem*/ 141 *Sort ptrs *Copy to temp-mem *Copy from temp-mem to user-mem*/
137 qsort( rgSetBlob, sk_num(a), sizeof(MYBLOB), SetBlobCmp); 142 qsort( rgSetBlob, sk_num(a), sizeof(MYBLOB), SetBlobCmp);
138 if (!(pTempMem = OPENSSL_malloc(totSize))) return 0; 143 if (!(pTempMem = OPENSSL_malloc(totSize)))
144 {
145 ASN1err(ASN1_F_I2D_ASN1_SET,ERR_R_MALLOC_FAILURE);
146 return(0);
147 }
139 148
140/* Copy to temp mem */ 149/* Copy to temp mem */
141 p = pTempMem; 150 p = pTempMem;
@@ -160,7 +169,13 @@ STACK *d2i_ASN1_SET(STACK **a, unsigned char **pp, long length,
160 STACK *ret=NULL; 169 STACK *ret=NULL;
161 170
162 if ((a == NULL) || ((*a) == NULL)) 171 if ((a == NULL) || ((*a) == NULL))
163 { if ((ret=sk_new_null()) == NULL) goto err; } 172 {
173 if ((ret=sk_new_null()) == NULL)
174 {
175 ASN1err(ASN1_F_D2I_ASN1_SET,ERR_R_MALLOC_FAILURE);
176 goto err;
177 }
178 }
164 else 179 else
165 ret=(*a); 180 ret=(*a);
166 181
diff --git a/src/lib/libssl/src/crypto/asn1/a_strex.c b/src/lib/libssl/src/crypto/asn1/a_strex.c
index bde666a6ff..a07122ba47 100644
--- a/src/lib/libssl/src/crypto/asn1/a_strex.c
+++ b/src/lib/libssl/src/crypto/asn1/a_strex.c
@@ -3,7 +3,7 @@
3 * project 2000. 3 * project 2000.
4 */ 4 */
5/* ==================================================================== 5/* ====================================================================
6 * Copyright (c) 2000 The OpenSSL Project. All rights reserved. 6 * Copyright (c) 2000-2004 The OpenSSL Project. All rights reserved.
7 * 7 *
8 * Redistribution and use in source and binary forms, with or without 8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions 9 * modification, are permitted provided that the following conditions
@@ -553,7 +553,12 @@ int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in)
553 if((type < 0) || (type > 30)) return -1; 553 if((type < 0) || (type > 30)) return -1;
554 mbflag = tag2nbyte[type]; 554 mbflag = tag2nbyte[type];
555 if(mbflag == -1) return -1; 555 if(mbflag == -1) return -1;
556 mbflag |= MBSTRING_FLAG; 556 if (mbflag == 0)
557 mbflag = MBSTRING_UTF8;
558 else if (mbflag == 4)
559 mbflag = MBSTRING_UNIV;
560 else
561 mbflag |= MBSTRING_FLAG;
557 stmp.data = NULL; 562 stmp.data = NULL;
558 ret = ASN1_mbstring_copy(&str, in->data, in->length, mbflag, B_ASN1_UTF8STRING); 563 ret = ASN1_mbstring_copy(&str, in->data, in->length, mbflag, B_ASN1_UTF8STRING);
559 if(ret < 0) return ret; 564 if(ret < 0) return ret;
diff --git a/src/lib/libssl/src/crypto/asn1/a_type.c b/src/lib/libssl/src/crypto/asn1/a_type.c
index fe3fcd40b0..2292d49b93 100644
--- a/src/lib/libssl/src/crypto/asn1/a_type.c
+++ b/src/lib/libssl/src/crypto/asn1/a_type.c
@@ -71,7 +71,10 @@ int ASN1_TYPE_get(ASN1_TYPE *a)
71void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value) 71void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value)
72 { 72 {
73 if (a->value.ptr != NULL) 73 if (a->value.ptr != NULL)
74 ASN1_primitive_free((ASN1_VALUE **)&a, NULL); 74 {
75 ASN1_TYPE **tmp_a = &a;
76 ASN1_primitive_free((ASN1_VALUE **)tmp_a, NULL);
77 }
75 a->type=type; 78 a->type=type;
76 a->value.ptr=value; 79 a->value.ptr=value;
77 } 80 }
diff --git a/src/lib/libssl/src/crypto/asn1/a_utctm.c b/src/lib/libssl/src/crypto/asn1/a_utctm.c
index 999852dae5..7b25fed331 100644
--- a/src/lib/libssl/src/crypto/asn1/a_utctm.c
+++ b/src/lib/libssl/src/crypto/asn1/a_utctm.c
@@ -173,8 +173,9 @@ int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, char *str)
173 { 173 {
174 if (s != NULL) 174 if (s != NULL)
175 { 175 {
176 ASN1_STRING_set((ASN1_STRING *)s, 176 if (!ASN1_STRING_set((ASN1_STRING *)s,
177 (unsigned char *)str,t.length); 177 (unsigned char *)str,t.length))
178 return 0;
178 s->type = V_ASN1_UTCTIME; 179 s->type = V_ASN1_UTCTIME;
179 } 180 }
180 return(1); 181 return(1);
@@ -203,7 +204,11 @@ ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t)
203 if ((p == NULL) || ((size_t)s->length < len)) 204 if ((p == NULL) || ((size_t)s->length < len))
204 { 205 {
205 p=OPENSSL_malloc(len); 206 p=OPENSSL_malloc(len);
206 if (p == NULL) return(NULL); 207 if (p == NULL)
208 {
209 ASN1err(ASN1_F_ASN1_UTCTIME_SET,ERR_R_MALLOC_FAILURE);
210 return(NULL);
211 }
207 if (s->data != NULL) 212 if (s->data != NULL)
208 OPENSSL_free(s->data); 213 OPENSSL_free(s->data);
209 s->data=(unsigned char *)p; 214 s->data=(unsigned char *)p;
diff --git a/src/lib/libssl/src/crypto/asn1/a_verify.c b/src/lib/libssl/src/crypto/asn1/a_verify.c
index da2a0a6d69..18ef0acf00 100644
--- a/src/lib/libssl/src/crypto/asn1/a_verify.c
+++ b/src/lib/libssl/src/crypto/asn1/a_verify.c
@@ -142,6 +142,13 @@ int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a, ASN1_BIT_STRING *signat
142 goto err; 142 goto err;
143 } 143 }
144 144
145 if (!EVP_VerifyInit_ex(&ctx,type, NULL))
146 {
147 ASN1err(ASN1_F_ASN1_VERIFY,ERR_R_EVP_LIB);
148 ret=0;
149 goto err;
150 }
151
145 inl = ASN1_item_i2d(asn, &buf_in, it); 152 inl = ASN1_item_i2d(asn, &buf_in, it);
146 153
147 if (buf_in == NULL) 154 if (buf_in == NULL)
@@ -150,7 +157,6 @@ int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a, ASN1_BIT_STRING *signat
150 goto err; 157 goto err;
151 } 158 }
152 159
153 EVP_VerifyInit_ex(&ctx,type, NULL);
154 EVP_VerifyUpdate(&ctx,(unsigned char *)buf_in,inl); 160 EVP_VerifyUpdate(&ctx,(unsigned char *)buf_in,inl);
155 161
156 OPENSSL_cleanse(buf_in,(unsigned int)inl); 162 OPENSSL_cleanse(buf_in,(unsigned int)inl);
diff --git a/src/lib/libssl/src/crypto/asn1/asn1.h b/src/lib/libssl/src/crypto/asn1/asn1.h
index 3414509f1b..ceaeb4cbe3 100644
--- a/src/lib/libssl/src/crypto/asn1/asn1.h
+++ b/src/lib/libssl/src/crypto/asn1/asn1.h
@@ -829,7 +829,7 @@ BIGNUM *ASN1_ENUMERATED_to_BN(ASN1_ENUMERATED *ai,BIGNUM *bn);
829 829
830/* General */ 830/* General */
831/* given a string, return the correct type, max is the maximum length */ 831/* given a string, return the correct type, max is the maximum length */
832int ASN1_PRINTABLE_type(unsigned char *s, int max); 832int ASN1_PRINTABLE_type(const unsigned char *s, int max);
833 833
834int i2d_ASN1_bytes(ASN1_STRING *a, unsigned char **pp, int tag, int xclass); 834int i2d_ASN1_bytes(ASN1_STRING *a, unsigned char **pp, int tag, int xclass);
835ASN1_STRING *d2i_ASN1_bytes(ASN1_STRING **a, unsigned char **pp, 835ASN1_STRING *d2i_ASN1_bytes(ASN1_STRING **a, unsigned char **pp,
@@ -950,16 +950,19 @@ void ERR_load_ASN1_strings(void);
950#define ASN1_F_A2I_ASN1_ENUMERATED 101 950#define ASN1_F_A2I_ASN1_ENUMERATED 101
951#define ASN1_F_A2I_ASN1_INTEGER 102 951#define ASN1_F_A2I_ASN1_INTEGER 102
952#define ASN1_F_A2I_ASN1_STRING 103 952#define ASN1_F_A2I_ASN1_STRING 103
953#define ASN1_F_ASN1_BIT_STRING_SET_BIT 176
953#define ASN1_F_ASN1_CHECK_TLEN 104 954#define ASN1_F_ASN1_CHECK_TLEN 104
954#define ASN1_F_ASN1_COLLATE_PRIMITIVE 105 955#define ASN1_F_ASN1_COLLATE_PRIMITIVE 105
955#define ASN1_F_ASN1_COLLECT 106 956#define ASN1_F_ASN1_COLLECT 106
956#define ASN1_F_ASN1_D2I_BIO 107 957#define ASN1_F_ASN1_D2I_BIO 107
957#define ASN1_F_ASN1_D2I_EX_PRIMITIVE 108 958#define ASN1_F_ASN1_D2I_EX_PRIMITIVE 108
958#define ASN1_F_ASN1_D2I_FP 109 959#define ASN1_F_ASN1_D2I_FP 109
960#define ASN1_F_ASN1_DIGEST 177
959#define ASN1_F_ASN1_DO_ADB 110 961#define ASN1_F_ASN1_DO_ADB 110
960#define ASN1_F_ASN1_DUP 111 962#define ASN1_F_ASN1_DUP 111
961#define ASN1_F_ASN1_ENUMERATED_SET 112 963#define ASN1_F_ASN1_ENUMERATED_SET 112
962#define ASN1_F_ASN1_ENUMERATED_TO_BN 113 964#define ASN1_F_ASN1_ENUMERATED_TO_BN 113
965#define ASN1_F_ASN1_GENERALIZEDTIME_SET 178
963#define ASN1_F_ASN1_GET_OBJECT 114 966#define ASN1_F_ASN1_GET_OBJECT 114
964#define ASN1_F_ASN1_HEADER_NEW 115 967#define ASN1_F_ASN1_HEADER_NEW 115
965#define ASN1_F_ASN1_I2D_BIO 116 968#define ASN1_F_ASN1_I2D_BIO 116
@@ -975,6 +978,7 @@ void ERR_load_ASN1_strings(void);
975#define ASN1_F_ASN1_SEQ_PACK 126 978#define ASN1_F_ASN1_SEQ_PACK 126
976#define ASN1_F_ASN1_SEQ_UNPACK 127 979#define ASN1_F_ASN1_SEQ_UNPACK 127
977#define ASN1_F_ASN1_SIGN 128 980#define ASN1_F_ASN1_SIGN 128
981#define ASN1_F_ASN1_STRING_SET 179
978#define ASN1_F_ASN1_STRING_TABLE_ADD 129 982#define ASN1_F_ASN1_STRING_TABLE_ADD 129
979#define ASN1_F_ASN1_STRING_TYPE_NEW 130 983#define ASN1_F_ASN1_STRING_TYPE_NEW 130
980#define ASN1_F_ASN1_TEMPLATE_D2I 131 984#define ASN1_F_ASN1_TEMPLATE_D2I 131
@@ -984,6 +988,7 @@ void ERR_load_ASN1_strings(void);
984#define ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING 134 988#define ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING 134
985#define ASN1_F_ASN1_TYPE_GET_OCTETSTRING 135 989#define ASN1_F_ASN1_TYPE_GET_OCTETSTRING 135
986#define ASN1_F_ASN1_UNPACK_STRING 136 990#define ASN1_F_ASN1_UNPACK_STRING 136
991#define ASN1_F_ASN1_UTCTIME_SET 180
987#define ASN1_F_ASN1_VERIFY 137 992#define ASN1_F_ASN1_VERIFY 137
988#define ASN1_F_BN_TO_ASN1_ENUMERATED 138 993#define ASN1_F_BN_TO_ASN1_ENUMERATED 138
989#define ASN1_F_BN_TO_ASN1_INTEGER 139 994#define ASN1_F_BN_TO_ASN1_INTEGER 139
@@ -1007,6 +1012,7 @@ void ERR_load_ASN1_strings(void);
1007#define ASN1_F_D2I_X509_CINF 157 1012#define ASN1_F_D2I_X509_CINF 157
1008#define ASN1_F_D2I_X509_NAME 158 1013#define ASN1_F_D2I_X509_NAME 158
1009#define ASN1_F_D2I_X509_PKEY 159 1014#define ASN1_F_D2I_X509_PKEY 159
1015#define ASN1_F_I2D_ASN1_SET 181
1010#define ASN1_F_I2D_ASN1_TIME 160 1016#define ASN1_F_I2D_ASN1_TIME 160
1011#define ASN1_F_I2D_DSA_PUBKEY 161 1017#define ASN1_F_I2D_DSA_PUBKEY 161
1012#define ASN1_F_I2D_NETSCAPE_RSA 162 1018#define ASN1_F_I2D_NETSCAPE_RSA 162
diff --git a/src/lib/libssl/src/crypto/asn1/asn1_err.c b/src/lib/libssl/src/crypto/asn1/asn1_err.c
index 094ec06fda..3b57c8fbae 100644
--- a/src/lib/libssl/src/crypto/asn1/asn1_err.c
+++ b/src/lib/libssl/src/crypto/asn1/asn1_err.c
@@ -1,6 +1,6 @@
1/* crypto/asn1/asn1_err.c */ 1/* crypto/asn1/asn1_err.c */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 1999-2002 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
@@ -70,16 +70,19 @@ static ERR_STRING_DATA ASN1_str_functs[]=
70{ERR_PACK(0,ASN1_F_A2I_ASN1_ENUMERATED,0), "a2i_ASN1_ENUMERATED"}, 70{ERR_PACK(0,ASN1_F_A2I_ASN1_ENUMERATED,0), "a2i_ASN1_ENUMERATED"},
71{ERR_PACK(0,ASN1_F_A2I_ASN1_INTEGER,0), "a2i_ASN1_INTEGER"}, 71{ERR_PACK(0,ASN1_F_A2I_ASN1_INTEGER,0), "a2i_ASN1_INTEGER"},
72{ERR_PACK(0,ASN1_F_A2I_ASN1_STRING,0), "a2i_ASN1_STRING"}, 72{ERR_PACK(0,ASN1_F_A2I_ASN1_STRING,0), "a2i_ASN1_STRING"},
73{ERR_PACK(0,ASN1_F_ASN1_BIT_STRING_SET_BIT,0), "ASN1_BIT_STRING_set_bit"},
73{ERR_PACK(0,ASN1_F_ASN1_CHECK_TLEN,0), "ASN1_CHECK_TLEN"}, 74{ERR_PACK(0,ASN1_F_ASN1_CHECK_TLEN,0), "ASN1_CHECK_TLEN"},
74{ERR_PACK(0,ASN1_F_ASN1_COLLATE_PRIMITIVE,0), "ASN1_COLLATE_PRIMITIVE"}, 75{ERR_PACK(0,ASN1_F_ASN1_COLLATE_PRIMITIVE,0), "ASN1_COLLATE_PRIMITIVE"},
75{ERR_PACK(0,ASN1_F_ASN1_COLLECT,0), "ASN1_COLLECT"}, 76{ERR_PACK(0,ASN1_F_ASN1_COLLECT,0), "ASN1_COLLECT"},
76{ERR_PACK(0,ASN1_F_ASN1_D2I_BIO,0), "ASN1_d2i_bio"}, 77{ERR_PACK(0,ASN1_F_ASN1_D2I_BIO,0), "ASN1_d2i_bio"},
77{ERR_PACK(0,ASN1_F_ASN1_D2I_EX_PRIMITIVE,0), "ASN1_D2I_EX_PRIMITIVE"}, 78{ERR_PACK(0,ASN1_F_ASN1_D2I_EX_PRIMITIVE,0), "ASN1_D2I_EX_PRIMITIVE"},
78{ERR_PACK(0,ASN1_F_ASN1_D2I_FP,0), "ASN1_d2i_fp"}, 79{ERR_PACK(0,ASN1_F_ASN1_D2I_FP,0), "ASN1_d2i_fp"},
80{ERR_PACK(0,ASN1_F_ASN1_DIGEST,0), "ASN1_digest"},
79{ERR_PACK(0,ASN1_F_ASN1_DO_ADB,0), "ASN1_DO_ADB"}, 81{ERR_PACK(0,ASN1_F_ASN1_DO_ADB,0), "ASN1_DO_ADB"},
80{ERR_PACK(0,ASN1_F_ASN1_DUP,0), "ASN1_dup"}, 82{ERR_PACK(0,ASN1_F_ASN1_DUP,0), "ASN1_dup"},
81{ERR_PACK(0,ASN1_F_ASN1_ENUMERATED_SET,0), "ASN1_ENUMERATED_set"}, 83{ERR_PACK(0,ASN1_F_ASN1_ENUMERATED_SET,0), "ASN1_ENUMERATED_set"},
82{ERR_PACK(0,ASN1_F_ASN1_ENUMERATED_TO_BN,0), "ASN1_ENUMERATED_to_BN"}, 84{ERR_PACK(0,ASN1_F_ASN1_ENUMERATED_TO_BN,0), "ASN1_ENUMERATED_to_BN"},
85{ERR_PACK(0,ASN1_F_ASN1_GENERALIZEDTIME_SET,0), "ASN1_GENERALIZEDTIME_set"},
83{ERR_PACK(0,ASN1_F_ASN1_GET_OBJECT,0), "ASN1_get_object"}, 86{ERR_PACK(0,ASN1_F_ASN1_GET_OBJECT,0), "ASN1_get_object"},
84{ERR_PACK(0,ASN1_F_ASN1_HEADER_NEW,0), "ASN1_HEADER_new"}, 87{ERR_PACK(0,ASN1_F_ASN1_HEADER_NEW,0), "ASN1_HEADER_new"},
85{ERR_PACK(0,ASN1_F_ASN1_I2D_BIO,0), "ASN1_i2d_bio"}, 88{ERR_PACK(0,ASN1_F_ASN1_I2D_BIO,0), "ASN1_i2d_bio"},
@@ -95,6 +98,7 @@ static ERR_STRING_DATA ASN1_str_functs[]=
95{ERR_PACK(0,ASN1_F_ASN1_SEQ_PACK,0), "ASN1_seq_pack"}, 98{ERR_PACK(0,ASN1_F_ASN1_SEQ_PACK,0), "ASN1_seq_pack"},
96{ERR_PACK(0,ASN1_F_ASN1_SEQ_UNPACK,0), "ASN1_seq_unpack"}, 99{ERR_PACK(0,ASN1_F_ASN1_SEQ_UNPACK,0), "ASN1_seq_unpack"},
97{ERR_PACK(0,ASN1_F_ASN1_SIGN,0), "ASN1_sign"}, 100{ERR_PACK(0,ASN1_F_ASN1_SIGN,0), "ASN1_sign"},
101{ERR_PACK(0,ASN1_F_ASN1_STRING_SET,0), "ASN1_STRING_set"},
98{ERR_PACK(0,ASN1_F_ASN1_STRING_TABLE_ADD,0), "ASN1_STRING_TABLE_add"}, 102{ERR_PACK(0,ASN1_F_ASN1_STRING_TABLE_ADD,0), "ASN1_STRING_TABLE_add"},
99{ERR_PACK(0,ASN1_F_ASN1_STRING_TYPE_NEW,0), "ASN1_STRING_type_new"}, 103{ERR_PACK(0,ASN1_F_ASN1_STRING_TYPE_NEW,0), "ASN1_STRING_type_new"},
100{ERR_PACK(0,ASN1_F_ASN1_TEMPLATE_D2I,0), "ASN1_TEMPLATE_D2I"}, 104{ERR_PACK(0,ASN1_F_ASN1_TEMPLATE_D2I,0), "ASN1_TEMPLATE_D2I"},
@@ -104,6 +108,7 @@ static ERR_STRING_DATA ASN1_str_functs[]=
104{ERR_PACK(0,ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING,0), "ASN1_TYPE_get_int_octetstring"}, 108{ERR_PACK(0,ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING,0), "ASN1_TYPE_get_int_octetstring"},
105{ERR_PACK(0,ASN1_F_ASN1_TYPE_GET_OCTETSTRING,0), "ASN1_TYPE_get_octetstring"}, 109{ERR_PACK(0,ASN1_F_ASN1_TYPE_GET_OCTETSTRING,0), "ASN1_TYPE_get_octetstring"},
106{ERR_PACK(0,ASN1_F_ASN1_UNPACK_STRING,0), "ASN1_unpack_string"}, 110{ERR_PACK(0,ASN1_F_ASN1_UNPACK_STRING,0), "ASN1_unpack_string"},
111{ERR_PACK(0,ASN1_F_ASN1_UTCTIME_SET,0), "ASN1_UTCTIME_set"},
107{ERR_PACK(0,ASN1_F_ASN1_VERIFY,0), "ASN1_verify"}, 112{ERR_PACK(0,ASN1_F_ASN1_VERIFY,0), "ASN1_verify"},
108{ERR_PACK(0,ASN1_F_BN_TO_ASN1_ENUMERATED,0), "BN_to_ASN1_ENUMERATED"}, 113{ERR_PACK(0,ASN1_F_BN_TO_ASN1_ENUMERATED,0), "BN_to_ASN1_ENUMERATED"},
109{ERR_PACK(0,ASN1_F_BN_TO_ASN1_INTEGER,0), "BN_to_ASN1_INTEGER"}, 114{ERR_PACK(0,ASN1_F_BN_TO_ASN1_INTEGER,0), "BN_to_ASN1_INTEGER"},
@@ -127,6 +132,7 @@ static ERR_STRING_DATA ASN1_str_functs[]=
127{ERR_PACK(0,ASN1_F_D2I_X509_CINF,0), "D2I_X509_CINF"}, 132{ERR_PACK(0,ASN1_F_D2I_X509_CINF,0), "D2I_X509_CINF"},
128{ERR_PACK(0,ASN1_F_D2I_X509_NAME,0), "D2I_X509_NAME"}, 133{ERR_PACK(0,ASN1_F_D2I_X509_NAME,0), "D2I_X509_NAME"},
129{ERR_PACK(0,ASN1_F_D2I_X509_PKEY,0), "d2i_X509_PKEY"}, 134{ERR_PACK(0,ASN1_F_D2I_X509_PKEY,0), "d2i_X509_PKEY"},
135{ERR_PACK(0,ASN1_F_I2D_ASN1_SET,0), "i2d_ASN1_SET"},
130{ERR_PACK(0,ASN1_F_I2D_ASN1_TIME,0), "I2D_ASN1_TIME"}, 136{ERR_PACK(0,ASN1_F_I2D_ASN1_TIME,0), "I2D_ASN1_TIME"},
131{ERR_PACK(0,ASN1_F_I2D_DSA_PUBKEY,0), "i2d_DSA_PUBKEY"}, 137{ERR_PACK(0,ASN1_F_I2D_DSA_PUBKEY,0), "i2d_DSA_PUBKEY"},
132{ERR_PACK(0,ASN1_F_I2D_NETSCAPE_RSA,0), "i2d_Netscape_RSA"}, 138{ERR_PACK(0,ASN1_F_I2D_NETSCAPE_RSA,0), "i2d_Netscape_RSA"},
diff --git a/src/lib/libssl/src/crypto/asn1/asn1_lib.c b/src/lib/libssl/src/crypto/asn1/asn1_lib.c
index a74f1368d3..97b9b35f4b 100644
--- a/src/lib/libssl/src/crypto/asn1/asn1_lib.c
+++ b/src/lib/libssl/src/crypto/asn1/asn1_lib.c
@@ -349,6 +349,7 @@ int ASN1_STRING_set(ASN1_STRING *str, const void *_data, int len)
349 349
350 if (str->data == NULL) 350 if (str->data == NULL)
351 { 351 {
352 ASN1err(ASN1_F_ASN1_STRING_SET,ERR_R_MALLOC_FAILURE);
352 str->data=c; 353 str->data=c;
353 return(0); 354 return(0);
354 } 355 }
diff --git a/src/lib/libssl/src/crypto/asn1/evp_asn1.c b/src/lib/libssl/src/crypto/asn1/evp_asn1.c
index 3506005a71..f92ce6cb5d 100644
--- a/src/lib/libssl/src/crypto/asn1/evp_asn1.c
+++ b/src/lib/libssl/src/crypto/asn1/evp_asn1.c
@@ -115,7 +115,11 @@ int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, unsigned char *data,
115 115
116 if ((osp=ASN1_STRING_new()) == NULL) return(0); 116 if ((osp=ASN1_STRING_new()) == NULL) return(0);
117 /* Grow the 'string' */ 117 /* Grow the 'string' */
118 ASN1_STRING_set(osp,NULL,size); 118 if (!ASN1_STRING_set(osp,NULL,size))
119 {
120 ASN1_STRING_free(osp);
121 return(0);
122 }
119 123
120 M_ASN1_STRING_length_set(osp, size); 124 M_ASN1_STRING_length_set(osp, size);
121 p=M_ASN1_STRING_data(osp); 125 p=M_ASN1_STRING_data(osp);
diff --git a/src/lib/libssl/src/crypto/asn1/p5_pbe.c b/src/lib/libssl/src/crypto/asn1/p5_pbe.c
index 891150638e..ec788267e0 100644
--- a/src/lib/libssl/src/crypto/asn1/p5_pbe.c
+++ b/src/lib/libssl/src/crypto/asn1/p5_pbe.c
@@ -76,47 +76,55 @@ IMPLEMENT_ASN1_FUNCTIONS(PBEPARAM)
76X509_ALGOR *PKCS5_pbe_set(int alg, int iter, unsigned char *salt, 76X509_ALGOR *PKCS5_pbe_set(int alg, int iter, unsigned char *salt,
77 int saltlen) 77 int saltlen)
78{ 78{
79 PBEPARAM *pbe; 79 PBEPARAM *pbe=NULL;
80 ASN1_OBJECT *al; 80 ASN1_OBJECT *al;
81 X509_ALGOR *algor; 81 X509_ALGOR *algor;
82 ASN1_TYPE *astype; 82 ASN1_TYPE *astype=NULL;
83 83
84 if (!(pbe = PBEPARAM_new ())) { 84 if (!(pbe = PBEPARAM_new ())) {
85 ASN1err(ASN1_F_ASN1_PBE_SET,ERR_R_MALLOC_FAILURE); 85 ASN1err(ASN1_F_ASN1_PBE_SET,ERR_R_MALLOC_FAILURE);
86 return NULL; 86 goto err;
87 } 87 }
88 if(iter <= 0) iter = PKCS5_DEFAULT_ITER; 88 if(iter <= 0) iter = PKCS5_DEFAULT_ITER;
89 ASN1_INTEGER_set (pbe->iter, iter); 89 if (!ASN1_INTEGER_set(pbe->iter, iter)) {
90 ASN1err(ASN1_F_ASN1_PBE_SET,ERR_R_MALLOC_FAILURE);
91 goto err;
92 }
90 if (!saltlen) saltlen = PKCS5_SALT_LEN; 93 if (!saltlen) saltlen = PKCS5_SALT_LEN;
91 if (!(pbe->salt->data = OPENSSL_malloc (saltlen))) { 94 if (!(pbe->salt->data = OPENSSL_malloc (saltlen))) {
92 ASN1err(ASN1_F_ASN1_PBE_SET,ERR_R_MALLOC_FAILURE); 95 ASN1err(ASN1_F_ASN1_PBE_SET,ERR_R_MALLOC_FAILURE);
93 return NULL; 96 goto err;
94 } 97 }
95 pbe->salt->length = saltlen; 98 pbe->salt->length = saltlen;
96 if (salt) memcpy (pbe->salt->data, salt, saltlen); 99 if (salt) memcpy (pbe->salt->data, salt, saltlen);
97 else if (RAND_pseudo_bytes (pbe->salt->data, saltlen) < 0) 100 else if (RAND_pseudo_bytes (pbe->salt->data, saltlen) < 0)
98 return NULL; 101 goto err;
99 102
100 if (!(astype = ASN1_TYPE_new())) { 103 if (!(astype = ASN1_TYPE_new())) {
101 ASN1err(ASN1_F_ASN1_PBE_SET,ERR_R_MALLOC_FAILURE); 104 ASN1err(ASN1_F_ASN1_PBE_SET,ERR_R_MALLOC_FAILURE);
102 return NULL; 105 goto err;
103 } 106 }
104 107
105 astype->type = V_ASN1_SEQUENCE; 108 astype->type = V_ASN1_SEQUENCE;
106 if(!ASN1_pack_string(pbe, i2d_PBEPARAM, &astype->value.sequence)) { 109 if(!ASN1_pack_string(pbe, i2d_PBEPARAM, &astype->value.sequence)) {
107 ASN1err(ASN1_F_ASN1_PBE_SET,ERR_R_MALLOC_FAILURE); 110 ASN1err(ASN1_F_ASN1_PBE_SET,ERR_R_MALLOC_FAILURE);
108 return NULL; 111 goto err;
109 } 112 }
110 PBEPARAM_free (pbe); 113 PBEPARAM_free (pbe);
114 pbe = NULL;
111 115
112 al = OBJ_nid2obj(alg); /* never need to free al */ 116 al = OBJ_nid2obj(alg); /* never need to free al */
113 if (!(algor = X509_ALGOR_new())) { 117 if (!(algor = X509_ALGOR_new())) {
114 ASN1err(ASN1_F_ASN1_PBE_SET,ERR_R_MALLOC_FAILURE); 118 ASN1err(ASN1_F_ASN1_PBE_SET,ERR_R_MALLOC_FAILURE);
115 return NULL; 119 goto err;
116 } 120 }
117 ASN1_OBJECT_free(algor->algorithm); 121 ASN1_OBJECT_free(algor->algorithm);
118 algor->algorithm = al; 122 algor->algorithm = al;
119 algor->parameter = astype; 123 algor->parameter = astype;
120 124
121 return (algor); 125 return (algor);
126err:
127 if (pbe != NULL) PBEPARAM_free(pbe);
128 if (astype != NULL) ASN1_TYPE_free(astype);
129 return NULL;
122} 130}
diff --git a/src/lib/libssl/src/crypto/asn1/p5_pbev2.c b/src/lib/libssl/src/crypto/asn1/p5_pbev2.c
index 91e1c8987d..e0dc0ec4ee 100644
--- a/src/lib/libssl/src/crypto/asn1/p5_pbev2.c
+++ b/src/lib/libssl/src/crypto/asn1/p5_pbev2.c
@@ -1,6 +1,6 @@
1/* p5_pbev2.c */ 1/* p5_pbev2.c */
2/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL 2/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
3 * project 1999. 3 * project 1999-2004.
4 */ 4 */
5/* ==================================================================== 5/* ====================================================================
6 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 6 * Copyright (c) 1999 The OpenSSL Project. All rights reserved.
@@ -113,7 +113,8 @@ X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter,
113 if(!(scheme->parameter = ASN1_TYPE_new())) goto merr; 113 if(!(scheme->parameter = ASN1_TYPE_new())) goto merr;
114 114
115 /* Create random IV */ 115 /* Create random IV */
116 if (RAND_pseudo_bytes(iv, EVP_CIPHER_iv_length(cipher)) < 0) 116 if (EVP_CIPHER_iv_length(cipher) &&
117 RAND_pseudo_bytes(iv, EVP_CIPHER_iv_length(cipher)) < 0)
117 goto err; 118 goto err;
118 119
119 EVP_CIPHER_CTX_init(&ctx); 120 EVP_CIPHER_CTX_init(&ctx);
@@ -123,6 +124,7 @@ X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter,
123 if(EVP_CIPHER_param_to_asn1(&ctx, scheme->parameter) < 0) { 124 if(EVP_CIPHER_param_to_asn1(&ctx, scheme->parameter) < 0) {
124 ASN1err(ASN1_F_PKCS5_PBE2_SET, 125 ASN1err(ASN1_F_PKCS5_PBE2_SET,
125 ASN1_R_ERROR_SETTING_CIPHER_PARAMS); 126 ASN1_R_ERROR_SETTING_CIPHER_PARAMS);
127 EVP_CIPHER_CTX_cleanup(&ctx);
126 goto err; 128 goto err;
127 } 129 }
128 EVP_CIPHER_CTX_cleanup(&ctx); 130 EVP_CIPHER_CTX_cleanup(&ctx);
diff --git a/src/lib/libssl/src/crypto/asn1/t_bitst.c b/src/lib/libssl/src/crypto/asn1/t_bitst.c
index 8ee789f082..397332d9b8 100644
--- a/src/lib/libssl/src/crypto/asn1/t_bitst.c
+++ b/src/lib/libssl/src/crypto/asn1/t_bitst.c
@@ -84,7 +84,10 @@ int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, char *name, int value,
84 int bitnum; 84 int bitnum;
85 bitnum = ASN1_BIT_STRING_num_asc(name, tbl); 85 bitnum = ASN1_BIT_STRING_num_asc(name, tbl);
86 if(bitnum < 0) return 0; 86 if(bitnum < 0) return 0;
87 if(bs) ASN1_BIT_STRING_set_bit(bs, bitnum, value); 87 if(bs) {
88 if(!ASN1_BIT_STRING_set_bit(bs, bitnum, value))
89 return 0;
90 }
88 return 1; 91 return 1;
89} 92}
90 93
diff --git a/src/lib/libssl/src/crypto/asn1/x_crl.c b/src/lib/libssl/src/crypto/asn1/x_crl.c
index 11fce96825..b99f8fc522 100644
--- a/src/lib/libssl/src/crypto/asn1/x_crl.c
+++ b/src/lib/libssl/src/crypto/asn1/x_crl.c
@@ -63,8 +63,6 @@
63 63
64static int X509_REVOKED_cmp(const X509_REVOKED * const *a, 64static int X509_REVOKED_cmp(const X509_REVOKED * const *a,
65 const X509_REVOKED * const *b); 65 const X509_REVOKED * const *b);
66static int X509_REVOKED_seq_cmp(const X509_REVOKED * const *a,
67 const X509_REVOKED * const *b);
68 66
69ASN1_SEQUENCE(X509_REVOKED) = { 67ASN1_SEQUENCE(X509_REVOKED) = {
70 ASN1_SIMPLE(X509_REVOKED,serialNumber, ASN1_INTEGER), 68 ASN1_SIMPLE(X509_REVOKED,serialNumber, ASN1_INTEGER),
@@ -72,43 +70,28 @@ ASN1_SEQUENCE(X509_REVOKED) = {
72 ASN1_SEQUENCE_OF_OPT(X509_REVOKED,extensions, X509_EXTENSION) 70 ASN1_SEQUENCE_OF_OPT(X509_REVOKED,extensions, X509_EXTENSION)
73} ASN1_SEQUENCE_END(X509_REVOKED) 71} ASN1_SEQUENCE_END(X509_REVOKED)
74 72
75/* The X509_CRL_INFO structure needs a bit of customisation. This is actually 73/* The X509_CRL_INFO structure needs a bit of customisation.
76 * mirroring the old behaviour: its purpose is to allow the use of 74 * Since we cache the original encoding the signature wont be affected by
77 * sk_X509_REVOKED_find to lookup revoked certificates. Unfortunately 75 * reordering of the revoked field.
78 * this will zap the original order and the signature so we keep a copy
79 * of the original positions and reorder appropriately before encoding.
80 *
81 * Might want to see if there's a better way of doing this later...
82 */ 76 */
83static int crl_inf_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it) 77static int crl_inf_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it)
84{ 78{
85 X509_CRL_INFO *a = (X509_CRL_INFO *)*pval; 79 X509_CRL_INFO *a = (X509_CRL_INFO *)*pval;
86 int i;
87 int (*old_cmp)(const X509_REVOKED * const *,
88 const X509_REVOKED * const *);
89 80
90 if(!a || !a->revoked) return 1; 81 if(!a || !a->revoked) return 1;
91 switch(operation) { 82 switch(operation) {
92 83 /* Just set cmp function here. We don't sort because that
93 /* Save original order */ 84 * would affect the output of X509_CRL_print().
85 */
94 case ASN1_OP_D2I_POST: 86 case ASN1_OP_D2I_POST:
95 for (i=0; i<sk_X509_REVOKED_num(a->revoked); i++)
96 sk_X509_REVOKED_value(a->revoked,i)->sequence=i;
97 sk_X509_REVOKED_set_cmp_func(a->revoked,X509_REVOKED_cmp); 87 sk_X509_REVOKED_set_cmp_func(a->revoked,X509_REVOKED_cmp);
98 break; 88 break;
99
100 /* Restore original order */
101 case ASN1_OP_I2D_PRE:
102 old_cmp=sk_X509_REVOKED_set_cmp_func(a->revoked,X509_REVOKED_seq_cmp);
103 sk_X509_REVOKED_sort(a->revoked);
104 sk_X509_REVOKED_set_cmp_func(a->revoked,old_cmp);
105 break;
106 } 89 }
107 return 1; 90 return 1;
108} 91}
109 92
110 93
111ASN1_SEQUENCE_cb(X509_CRL_INFO, crl_inf_cb) = { 94ASN1_SEQUENCE_enc(X509_CRL_INFO, enc, crl_inf_cb) = {
112 ASN1_OPT(X509_CRL_INFO, version, ASN1_INTEGER), 95 ASN1_OPT(X509_CRL_INFO, version, ASN1_INTEGER),
113 ASN1_SIMPLE(X509_CRL_INFO, sig_alg, X509_ALGOR), 96 ASN1_SIMPLE(X509_CRL_INFO, sig_alg, X509_ALGOR),
114 ASN1_SIMPLE(X509_CRL_INFO, issuer, X509_NAME), 97 ASN1_SIMPLE(X509_CRL_INFO, issuer, X509_NAME),
@@ -116,7 +99,7 @@ ASN1_SEQUENCE_cb(X509_CRL_INFO, crl_inf_cb) = {
116 ASN1_OPT(X509_CRL_INFO, nextUpdate, ASN1_TIME), 99 ASN1_OPT(X509_CRL_INFO, nextUpdate, ASN1_TIME),
117 ASN1_SEQUENCE_OF_OPT(X509_CRL_INFO, revoked, X509_REVOKED), 100 ASN1_SEQUENCE_OF_OPT(X509_CRL_INFO, revoked, X509_REVOKED),
118 ASN1_EXP_SEQUENCE_OF_OPT(X509_CRL_INFO, extensions, X509_EXTENSION, 0) 101 ASN1_EXP_SEQUENCE_OF_OPT(X509_CRL_INFO, extensions, X509_EXTENSION, 0)
119} ASN1_SEQUENCE_END_cb(X509_CRL_INFO, X509_CRL_INFO) 102} ASN1_SEQUENCE_END_enc(X509_CRL_INFO, X509_CRL_INFO)
120 103
121ASN1_SEQUENCE_ref(X509_CRL, 0, CRYPTO_LOCK_X509_CRL) = { 104ASN1_SEQUENCE_ref(X509_CRL, 0, CRYPTO_LOCK_X509_CRL) = {
122 ASN1_SIMPLE(X509_CRL, crl, X509_CRL_INFO), 105 ASN1_SIMPLE(X509_CRL, crl, X509_CRL_INFO),
@@ -137,12 +120,6 @@ static int X509_REVOKED_cmp(const X509_REVOKED * const *a,
137 (ASN1_STRING *)(*b)->serialNumber)); 120 (ASN1_STRING *)(*b)->serialNumber));
138 } 121 }
139 122
140static int X509_REVOKED_seq_cmp(const X509_REVOKED * const *a,
141 const X509_REVOKED * const *b)
142 {
143 return((*a)->sequence-(*b)->sequence);
144 }
145
146int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev) 123int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev)
147{ 124{
148 X509_CRL_INFO *inf; 125 X509_CRL_INFO *inf;
@@ -153,6 +130,7 @@ int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev)
153 ASN1err(ASN1_F_X509_CRL_ADD0_REVOKED, ERR_R_MALLOC_FAILURE); 130 ASN1err(ASN1_F_X509_CRL_ADD0_REVOKED, ERR_R_MALLOC_FAILURE);
154 return 0; 131 return 0;
155 } 132 }
133 inf->enc.modified = 1;
156 return 1; 134 return 1;
157} 135}
158 136
diff --git a/src/lib/libssl/src/crypto/asn1/x_name.c b/src/lib/libssl/src/crypto/asn1/x_name.c
index caece0f158..31f3377b64 100644
--- a/src/lib/libssl/src/crypto/asn1/x_name.c
+++ b/src/lib/libssl/src/crypto/asn1/x_name.c
@@ -160,21 +160,22 @@ static int x509_name_ex_d2i(ASN1_VALUE **val, unsigned char **in, long len, cons
160 int tag, int aclass, char opt, ASN1_TLC *ctx) 160 int tag, int aclass, char opt, ASN1_TLC *ctx)
161{ 161{
162 unsigned char *p = *in, *q; 162 unsigned char *p = *in, *q;
163 STACK *intname = NULL; 163 STACK *intname = NULL, **intname_pp = &intname;
164 int i, j, ret; 164 int i, j, ret;
165 X509_NAME *nm = NULL; 165 X509_NAME *nm = NULL, **nm_pp = &nm;
166 STACK_OF(X509_NAME_ENTRY) *entries; 166 STACK_OF(X509_NAME_ENTRY) *entries;
167 X509_NAME_ENTRY *entry; 167 X509_NAME_ENTRY *entry;
168 q = p; 168 q = p;
169 169
170 /* Get internal representation of Name */ 170 /* Get internal representation of Name */
171 ret = ASN1_item_ex_d2i((ASN1_VALUE **)&intname, &p, len, ASN1_ITEM_rptr(X509_NAME_INTERNAL), 171 ret = ASN1_item_ex_d2i((ASN1_VALUE **)intname_pp,
172 tag, aclass, opt, ctx); 172 &p, len, ASN1_ITEM_rptr(X509_NAME_INTERNAL),
173 tag, aclass, opt, ctx);
173 174
174 if(ret <= 0) return ret; 175 if(ret <= 0) return ret;
175 176
176 if(*val) x509_name_ex_free(val, NULL); 177 if(*val) x509_name_ex_free(val, NULL);
177 if(!x509_name_ex_new((ASN1_VALUE **)&nm, NULL)) goto err; 178 if(!x509_name_ex_new((ASN1_VALUE **)nm_pp, NULL)) goto err;
178 /* We've decoded it: now cache encoding */ 179 /* We've decoded it: now cache encoding */
179 if(!BUF_MEM_grow(nm->bytes, p - q)) goto err; 180 if(!BUF_MEM_grow(nm->bytes, p - q)) goto err;
180 memcpy(nm->bytes->data, q, p - q); 181 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
218 219
219static int x509_name_encode(X509_NAME *a) 220static int x509_name_encode(X509_NAME *a)
220{ 221{
221 STACK *intname = NULL; 222 STACK *intname = NULL, **intname_pp = &intname;
222 int len; 223 int len;
223 unsigned char *p; 224 unsigned char *p;
224 STACK_OF(X509_NAME_ENTRY) *entries = NULL; 225 STACK_OF(X509_NAME_ENTRY) *entries = NULL;
@@ -236,10 +237,12 @@ static int x509_name_encode(X509_NAME *a)
236 } 237 }
237 if(!sk_X509_NAME_ENTRY_push(entries, entry)) goto memerr; 238 if(!sk_X509_NAME_ENTRY_push(entries, entry)) goto memerr;
238 } 239 }
239 len = ASN1_item_ex_i2d((ASN1_VALUE **)&intname, NULL, ASN1_ITEM_rptr(X509_NAME_INTERNAL), -1, -1); 240 len = ASN1_item_ex_i2d((ASN1_VALUE **)intname_pp, NULL,
241 ASN1_ITEM_rptr(X509_NAME_INTERNAL), -1, -1);
240 if (!BUF_MEM_grow(a->bytes,len)) goto memerr; 242 if (!BUF_MEM_grow(a->bytes,len)) goto memerr;
241 p=(unsigned char *)a->bytes->data; 243 p=(unsigned char *)a->bytes->data;
242 ASN1_item_ex_i2d((ASN1_VALUE **)&intname, &p, ASN1_ITEM_rptr(X509_NAME_INTERNAL), -1, -1); 244 ASN1_item_ex_i2d((ASN1_VALUE **)intname_pp,
245 &p, ASN1_ITEM_rptr(X509_NAME_INTERNAL), -1, -1);
243 sk_pop_free(intname, sk_internal_free); 246 sk_pop_free(intname, sk_internal_free);
244 a->modified = 0; 247 a->modified = 0;
245 return len; 248 return len;
diff --git a/src/lib/libssl/src/crypto/asn1/x_pubkey.c b/src/lib/libssl/src/crypto/asn1/x_pubkey.c
index d958540120..7d6d71af88 100644
--- a/src/lib/libssl/src/crypto/asn1/x_pubkey.c
+++ b/src/lib/libssl/src/crypto/asn1/x_pubkey.c
@@ -80,8 +80,7 @@ IMPLEMENT_ASN1_FUNCTIONS(X509_PUBKEY)
80 80
81int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey) 81int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey)
82 { 82 {
83 int ok=0; 83 X509_PUBKEY *pk=NULL;
84 X509_PUBKEY *pk;
85 X509_ALGOR *a; 84 X509_ALGOR *a;
86 ASN1_OBJECT *o; 85 ASN1_OBJECT *o;
87 unsigned char *s,*p = NULL; 86 unsigned char *s,*p = NULL;
@@ -104,7 +103,11 @@ int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey)
104 (a->parameter->type != V_ASN1_NULL)) 103 (a->parameter->type != V_ASN1_NULL))
105 { 104 {
106 ASN1_TYPE_free(a->parameter); 105 ASN1_TYPE_free(a->parameter);
107 a->parameter=ASN1_TYPE_new(); 106 if (!(a->parameter=ASN1_TYPE_new()))
107 {
108 X509err(X509_F_X509_PUBKEY_SET,ERR_R_MALLOC_FAILURE);
109 goto err;
110 }
108 a->parameter->type=V_ASN1_NULL; 111 a->parameter->type=V_ASN1_NULL;
109 } 112 }
110 } 113 }
@@ -118,14 +121,34 @@ int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey)
118 dsa=pkey->pkey.dsa; 121 dsa=pkey->pkey.dsa;
119 dsa->write_params=0; 122 dsa->write_params=0;
120 ASN1_TYPE_free(a->parameter); 123 ASN1_TYPE_free(a->parameter);
121 i=i2d_DSAparams(dsa,NULL); 124 if ((i=i2d_DSAparams(dsa,NULL)) <= 0)
122 if ((p=(unsigned char *)OPENSSL_malloc(i)) == NULL) goto err; 125 goto err;
126 if (!(p=(unsigned char *)OPENSSL_malloc(i)))
127 {
128 X509err(X509_F_X509_PUBKEY_SET,ERR_R_MALLOC_FAILURE);
129 goto err;
130 }
123 pp=p; 131 pp=p;
124 i2d_DSAparams(dsa,&pp); 132 i2d_DSAparams(dsa,&pp);
125 a->parameter=ASN1_TYPE_new(); 133 if (!(a->parameter=ASN1_TYPE_new()))
134 {
135 OPENSSL_free(p);
136 X509err(X509_F_X509_PUBKEY_SET,ERR_R_MALLOC_FAILURE);
137 goto err;
138 }
126 a->parameter->type=V_ASN1_SEQUENCE; 139 a->parameter->type=V_ASN1_SEQUENCE;
127 a->parameter->value.sequence=ASN1_STRING_new(); 140 if (!(a->parameter->value.sequence=ASN1_STRING_new()))
128 ASN1_STRING_set(a->parameter->value.sequence,p,i); 141 {
142 OPENSSL_free(p);
143 X509err(X509_F_X509_PUBKEY_SET,ERR_R_MALLOC_FAILURE);
144 goto err;
145 }
146 if (!ASN1_STRING_set(a->parameter->value.sequence,p,i))
147 {
148 OPENSSL_free(p);
149 X509err(X509_F_X509_PUBKEY_SET,ERR_R_MALLOC_FAILURE);
150 goto err;
151 }
129 OPENSSL_free(p); 152 OPENSSL_free(p);
130 } 153 }
131 else 154 else
@@ -143,7 +166,11 @@ int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey)
143 } 166 }
144 p=s; 167 p=s;
145 i2d_PublicKey(pkey,&p); 168 i2d_PublicKey(pkey,&p);
146 if (!M_ASN1_BIT_STRING_set(pk->public_key,s,i)) goto err; 169 if (!M_ASN1_BIT_STRING_set(pk->public_key,s,i))
170 {
171 X509err(X509_F_X509_PUBKEY_SET,ERR_R_MALLOC_FAILURE);
172 goto err;
173 }
147 /* Set number of unused bits to zero */ 174 /* Set number of unused bits to zero */
148 pk->public_key->flags&= ~(ASN1_STRING_FLAG_BITS_LEFT|0x07); 175 pk->public_key->flags&= ~(ASN1_STRING_FLAG_BITS_LEFT|0x07);
149 pk->public_key->flags|=ASN1_STRING_FLAG_BITS_LEFT; 176 pk->public_key->flags|=ASN1_STRING_FLAG_BITS_LEFT;
@@ -159,12 +186,11 @@ int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey)
159 X509_PUBKEY_free(*x); 186 X509_PUBKEY_free(*x);
160 187
161 *x=pk; 188 *x=pk;
162 pk=NULL;
163 189
164 ok=1; 190 return 1;
165err: 191err:
166 if (pk != NULL) X509_PUBKEY_free(pk); 192 if (pk != NULL) X509_PUBKEY_free(pk);
167 return(ok); 193 return 0;
168 } 194 }
169 195
170EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key) 196EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key)
diff --git a/src/lib/libssl/src/crypto/bf/Makefile b/src/lib/libssl/src/crypto/bf/Makefile
new file mode 100644
index 0000000000..0e2121efdc
--- /dev/null
+++ b/src/lib/libssl/src/crypto/bf/Makefile
@@ -0,0 +1,116 @@
1#
2# SSLeay/crypto/blowfish/Makefile
3#
4
5DIR= bf
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES=
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP=/usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18
19BF_ENC= bf_enc.o
20# or use
21#DES_ENC= bx86-elf.o
22
23CFLAGS= $(INCLUDES) $(CFLAG)
24ASFLAGS= $(INCLUDES) $(ASFLAG)
25
26GENERAL=Makefile
27TEST=bftest.c
28APPS=
29
30LIB=$(TOP)/libcrypto.a
31LIBSRC=bf_skey.c bf_ecb.c bf_enc.c bf_cfb64.c bf_ofb64.c
32LIBOBJ=bf_skey.o bf_ecb.o $(BF_ENC) bf_cfb64.o bf_ofb64.o
33
34SRC= $(LIBSRC)
35
36EXHEADER= blowfish.h
37HEADER= bf_pi.h bf_locl.h $(EXHEADER)
38
39ALL= $(GENERAL) $(SRC) $(HEADER)
40
41top:
42 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
43
44all: lib
45
46lib: $(LIBOBJ)
47 $(AR) $(LIB) $(LIBOBJ)
48 $(RANLIB) $(LIB) || echo Never mind.
49 @touch lib
50
51# elf
52asm/bx86-elf.s: asm/bf-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
53 (cd asm; $(PERL) bf-586.pl elf $(CFLAGS) $(PROCESSOR) > bx86-elf.s)
54
55# a.out
56asm/bx86-out.o: asm/bx86unix.cpp
57 $(CPP) -DOUT asm/bx86unix.cpp | as -o asm/bx86-out.o
58
59# bsdi
60asm/bx86bsdi.o: asm/bx86unix.cpp
61 $(CPP) -DBSDI asm/bx86unix.cpp | sed 's/ :/:/' | as -o asm/bx86bsdi.o
62
63asm/bx86unix.cpp: asm/bf-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
64 (cd asm; $(PERL) bf-586.pl cpp $(PROCESSOR) >bx86unix.cpp)
65
66files:
67 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
68
69links:
70 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
71 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
72 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
73
74install: installs
75
76installs:
77 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
78 do \
79 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
80 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
81 done;
82
83tags:
84 ctags $(SRC)
85
86tests:
87
88lint:
89 lint -DLINT $(INCLUDES) $(SRC)>fluff
90
91depend:
92 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
93
94dclean:
95 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
96 mv -f Makefile.new $(MAKEFILE)
97
98clean:
99 rm -f asm/bx86unix.cpp asm/*-elf.* *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
100
101# DO NOT DELETE THIS LINE -- make depend depends on it.
102
103bf_cfb64.o: ../../include/openssl/blowfish.h ../../include/openssl/e_os2.h
104bf_cfb64.o: ../../include/openssl/opensslconf.h bf_cfb64.c bf_locl.h
105bf_ecb.o: ../../include/openssl/blowfish.h ../../include/openssl/e_os2.h
106bf_ecb.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
107bf_ecb.o: bf_ecb.c bf_locl.h
108bf_enc.o: ../../include/openssl/blowfish.h ../../include/openssl/e_os2.h
109bf_enc.o: ../../include/openssl/opensslconf.h bf_enc.c bf_locl.h
110bf_ofb64.o: ../../include/openssl/blowfish.h ../../include/openssl/e_os2.h
111bf_ofb64.o: ../../include/openssl/opensslconf.h bf_locl.h bf_ofb64.c
112bf_skey.o: ../../include/openssl/blowfish.h ../../include/openssl/crypto.h
113bf_skey.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
114bf_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
115bf_skey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
116bf_skey.o: bf_locl.h bf_pi.h bf_skey.c
diff --git a/src/lib/libssl/src/crypto/bf/bf_skey.c b/src/lib/libssl/src/crypto/bf/bf_skey.c
index 3673cdee6e..fc5bebefce 100644
--- a/src/lib/libssl/src/crypto/bf/bf_skey.c
+++ b/src/lib/libssl/src/crypto/bf/bf_skey.c
@@ -58,11 +58,12 @@
58 58
59#include <stdio.h> 59#include <stdio.h>
60#include <string.h> 60#include <string.h>
61#include <openssl/crypto.h>
61#include <openssl/blowfish.h> 62#include <openssl/blowfish.h>
62#include "bf_locl.h" 63#include "bf_locl.h"
63#include "bf_pi.h" 64#include "bf_pi.h"
64 65
65void BF_set_key(BF_KEY *key, int len, const unsigned char *data) 66FIPS_NON_FIPS_VCIPHER_Init(BF)
66 { 67 {
67 int i; 68 int i;
68 BF_LONG *p,ri,in[2]; 69 BF_LONG *p,ri,in[2];
diff --git a/src/lib/libssl/src/crypto/bf/blowfish.h b/src/lib/libssl/src/crypto/bf/blowfish.h
index cd49e85ab2..b4d8774961 100644
--- a/src/lib/libssl/src/crypto/bf/blowfish.h
+++ b/src/lib/libssl/src/crypto/bf/blowfish.h
@@ -104,7 +104,10 @@ typedef struct bf_key_st
104 BF_LONG S[4*256]; 104 BF_LONG S[4*256];
105 } BF_KEY; 105 } BF_KEY;
106 106
107 107
108#ifdef OPENSSL_FIPS
109void private_BF_set_key(BF_KEY *key, int len, const unsigned char *data);
110#endif
108void BF_set_key(BF_KEY *key, int len, const unsigned char *data); 111void BF_set_key(BF_KEY *key, int len, const unsigned char *data);
109 112
110void BF_encrypt(BF_LONG *data,const BF_KEY *key); 113void BF_encrypt(BF_LONG *data,const BF_KEY *key);
diff --git a/src/lib/libssl/src/crypto/bio/Makefile b/src/lib/libssl/src/crypto/bio/Makefile
new file mode 100644
index 0000000000..19d9350760
--- /dev/null
+++ b/src/lib/libssl/src/crypto/bio/Makefile
@@ -0,0 +1,214 @@
1#
2# SSLeay/crypto/bio/Makefile
3#
4
5DIR= bio
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= bio_lib.c bio_cb.c bio_err.c \
26 bss_mem.c bss_null.c bss_fd.c \
27 bss_file.c bss_sock.c bss_conn.c \
28 bf_null.c bf_buff.c b_print.c b_dump.c \
29 b_sock.c bss_acpt.c bf_nbio.c bss_log.c bss_bio.c
30# bf_lbuf.c
31LIBOBJ= bio_lib.o bio_cb.o bio_err.o \
32 bss_mem.o bss_null.o bss_fd.o \
33 bss_file.o bss_sock.o bss_conn.o \
34 bf_null.o bf_buff.o b_print.o b_dump.o \
35 b_sock.o bss_acpt.o bf_nbio.o bss_log.o bss_bio.o
36# bf_lbuf.o
37
38SRC= $(LIBSRC)
39
40EXHEADER= bio.h
41HEADER= bss_file.c $(EXHEADER)
42
43ALL= $(GENERAL) $(SRC) $(HEADER)
44
45top:
46 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
47
48all: lib
49
50lib: $(LIBOBJ)
51 $(AR) $(LIB) $(LIBOBJ)
52 $(RANLIB) $(LIB) || echo Never mind.
53 @touch lib
54
55files:
56 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
57
58links:
59 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
60 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
61 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
62
63install:
64 @headerlist="$(EXHEADER)"; for i in $$headerlist; \
65 do \
66 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
67 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
68 done;
69
70tags:
71 ctags $(SRC)
72
73tests:
74
75lint:
76 lint -DLINT $(INCLUDES) $(SRC)>fluff
77
78depend:
79 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
80
81dclean:
82 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
83 mv -f Makefile.new $(MAKEFILE)
84
85clean:
86 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
87
88# DO NOT DELETE THIS LINE -- make depend depends on it.
89
90b_dump.o: ../../e_os.h ../../include/openssl/bio.h
91b_dump.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
92b_dump.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
93b_dump.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
94b_dump.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
95b_dump.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
96b_dump.o: ../cryptlib.h b_dump.c
97b_print.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
98b_print.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
99b_print.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
100b_print.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
101b_print.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
102b_print.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
103b_print.o: ../cryptlib.h b_print.c
104b_sock.o: ../../e_os.h ../../include/openssl/bio.h
105b_sock.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
106b_sock.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
107b_sock.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
108b_sock.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
109b_sock.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
110b_sock.o: ../cryptlib.h b_sock.c
111bf_buff.o: ../../e_os.h ../../include/openssl/bio.h
112bf_buff.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
113bf_buff.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
114bf_buff.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
115bf_buff.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
116bf_buff.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
117bf_buff.o: ../cryptlib.h bf_buff.c
118bf_nbio.o: ../../e_os.h ../../include/openssl/bio.h
119bf_nbio.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
120bf_nbio.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
121bf_nbio.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
122bf_nbio.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
123bf_nbio.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
124bf_nbio.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
125bf_nbio.o: ../cryptlib.h bf_nbio.c
126bf_null.o: ../../e_os.h ../../include/openssl/bio.h
127bf_null.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
128bf_null.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
129bf_null.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
130bf_null.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
131bf_null.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
132bf_null.o: ../cryptlib.h bf_null.c
133bio_cb.o: ../../e_os.h ../../include/openssl/bio.h
134bio_cb.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
135bio_cb.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
136bio_cb.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
137bio_cb.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
138bio_cb.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
139bio_cb.o: ../cryptlib.h bio_cb.c
140bio_err.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
141bio_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
142bio_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
143bio_err.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
144bio_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
145bio_err.o: bio_err.c
146bio_lib.o: ../../e_os.h ../../include/openssl/bio.h
147bio_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
148bio_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
149bio_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
150bio_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
151bio_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
152bio_lib.o: ../cryptlib.h bio_lib.c
153bss_acpt.o: ../../e_os.h ../../include/openssl/bio.h
154bss_acpt.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
155bss_acpt.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
156bss_acpt.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
157bss_acpt.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
158bss_acpt.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
159bss_acpt.o: ../cryptlib.h bss_acpt.c
160bss_bio.o: ../../e_os.h ../../include/openssl/bio.h
161bss_bio.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
162bss_bio.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
163bss_bio.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
164bss_bio.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
165bss_bio.o: ../../include/openssl/symhacks.h bss_bio.c
166bss_conn.o: ../../e_os.h ../../include/openssl/bio.h
167bss_conn.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
168bss_conn.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
169bss_conn.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
170bss_conn.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
171bss_conn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
172bss_conn.o: ../cryptlib.h bss_conn.c
173bss_fd.o: ../../e_os.h ../../include/openssl/bio.h
174bss_fd.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
175bss_fd.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
176bss_fd.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
177bss_fd.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
178bss_fd.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
179bss_fd.o: ../cryptlib.h bss_fd.c
180bss_file.o: ../../e_os.h ../../include/openssl/bio.h
181bss_file.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
182bss_file.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
183bss_file.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
184bss_file.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
185bss_file.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
186bss_file.o: ../cryptlib.h bss_file.c
187bss_log.o: ../../e_os.h ../../include/openssl/bio.h
188bss_log.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
189bss_log.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
190bss_log.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
191bss_log.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
192bss_log.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
193bss_log.o: ../cryptlib.h bss_log.c
194bss_mem.o: ../../e_os.h ../../include/openssl/bio.h
195bss_mem.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
196bss_mem.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
197bss_mem.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
198bss_mem.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
199bss_mem.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
200bss_mem.o: ../cryptlib.h bss_mem.c
201bss_null.o: ../../e_os.h ../../include/openssl/bio.h
202bss_null.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
203bss_null.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
204bss_null.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
205bss_null.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
206bss_null.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
207bss_null.o: ../cryptlib.h bss_null.c
208bss_sock.o: ../../e_os.h ../../include/openssl/bio.h
209bss_sock.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
210bss_sock.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
211bss_sock.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
212bss_sock.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
213bss_sock.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
214bss_sock.o: ../cryptlib.h bss_sock.c
diff --git a/src/lib/libssl/src/crypto/bio/b_print.c b/src/lib/libssl/src/crypto/bio/b_print.c
index fbff331796..c2bb357b4c 100644
--- a/src/lib/libssl/src/crypto/bio/b_print.c
+++ b/src/lib/libssl/src/crypto/bio/b_print.c
@@ -641,7 +641,7 @@ fmtfp(
641 multiplying by a factor of 10 */ 641 multiplying by a factor of 10 */
642 fracpart = roundv((pow10(max)) * (ufvalue - intpart)); 642 fracpart = roundv((pow10(max)) * (ufvalue - intpart));
643 643
644 if (fracpart >= pow10(max)) { 644 if (fracpart >= (long)pow10(max)) {
645 intpart++; 645 intpart++;
646 fracpart -= (long)pow10(max); 646 fracpart -= (long)pow10(max);
647 } 647 }
diff --git a/src/lib/libssl/src/crypto/bio/bio.h b/src/lib/libssl/src/crypto/bio/bio.h
index fbbc16d00c..2eb703830f 100644
--- a/src/lib/libssl/src/crypto/bio/bio.h
+++ b/src/lib/libssl/src/crypto/bio/bio.h
@@ -347,6 +347,7 @@ typedef struct bio_f_buffer_ctx_struct
347#define BIO_C_NWRITE0 145 347#define BIO_C_NWRITE0 145
348#define BIO_C_NWRITE 146 348#define BIO_C_NWRITE 146
349#define BIO_C_RESET_READ_REQUEST 147 349#define BIO_C_RESET_READ_REQUEST 147
350#define BIO_C_SET_MD_CTX 148
350 351
351 352
352#define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) 353#define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg)
diff --git a/src/lib/libssl/src/crypto/bio/bss_file.c b/src/lib/libssl/src/crypto/bio/bss_file.c
index 9cdf159f82..8034ac93f9 100644
--- a/src/lib/libssl/src/crypto/bio/bss_file.c
+++ b/src/lib/libssl/src/crypto/bio/bss_file.c
@@ -213,13 +213,14 @@ static long MS_CALLBACK file_ctrl(BIO *b, int cmd, long num, void *ptr)
213 b->shutdown=(int)num&BIO_CLOSE; 213 b->shutdown=(int)num&BIO_CLOSE;
214 b->ptr=(char *)ptr; 214 b->ptr=(char *)ptr;
215 b->init=1; 215 b->init=1;
216 {
216#if defined(OPENSSL_SYS_WINDOWS) 217#if defined(OPENSSL_SYS_WINDOWS)
218 int fd = fileno((FILE*)ptr);
217 if (num & BIO_FP_TEXT) 219 if (num & BIO_FP_TEXT)
218 _setmode(fileno((FILE *)ptr),_O_TEXT); 220 _setmode(fd,_O_TEXT);
219 else 221 else
220 _setmode(fileno((FILE *)ptr),_O_BINARY); 222 _setmode(fd,_O_BINARY);
221#elif defined(OPENSSL_SYS_MSDOS) 223#elif defined(OPENSSL_SYS_MSDOS)
222 {
223 int fd = fileno((FILE*)ptr); 224 int fd = fileno((FILE*)ptr);
224 /* Set correct text/binary mode */ 225 /* Set correct text/binary mode */
225 if (num & BIO_FP_TEXT) 226 if (num & BIO_FP_TEXT)
@@ -235,13 +236,14 @@ static long MS_CALLBACK file_ctrl(BIO *b, int cmd, long num, void *ptr)
235 else 236 else
236 _setmode(fd,_O_BINARY); 237 _setmode(fd,_O_BINARY);
237 } 238 }
238 }
239#elif defined(OPENSSL_SYS_OS2) 239#elif defined(OPENSSL_SYS_OS2)
240 int fd = fileno((FILE*)ptr);
240 if (num & BIO_FP_TEXT) 241 if (num & BIO_FP_TEXT)
241 setmode(fileno((FILE *)ptr), O_TEXT); 242 setmode(fd, O_TEXT);
242 else 243 else
243 setmode(fileno((FILE *)ptr), O_BINARY); 244 setmode(fd, O_BINARY);
244#endif 245#endif
246 }
245 break; 247 break;
246 case BIO_C_SET_FILENAME: 248 case BIO_C_SET_FILENAME:
247 file_free(b); 249 file_free(b);
@@ -264,7 +266,7 @@ static long MS_CALLBACK file_ctrl(BIO *b, int cmd, long num, void *ptr)
264 ret=0; 266 ret=0;
265 break; 267 break;
266 } 268 }
267#if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_OS2) 269#if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_OS2) || defined(OPENSSL_SYS_WIN32_CYGWIN)
268 if (!(num & BIO_FP_TEXT)) 270 if (!(num & BIO_FP_TEXT))
269 strcat(p,"b"); 271 strcat(p,"b");
270 else 272 else
diff --git a/src/lib/libssl/src/crypto/bn/Makefile b/src/lib/libssl/src/crypto/bn/Makefile
new file mode 100644
index 0000000000..f693d35d87
--- /dev/null
+++ b/src/lib/libssl/src/crypto/bn/Makefile
@@ -0,0 +1,331 @@
1#
2# SSLeay/crypto/bn/Makefile
3#
4
5DIR= bn
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES= -I.. -I$(TOP) -I../../include
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP=/usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18
19BN_ASM= bn_asm.o
20# or use
21#BN_ASM= bn86-elf.o
22
23CFLAGS= $(INCLUDES) $(CFLAG)
24ASFLAGS= $(INCLUDES) $(ASFLAG)
25
26GENERAL=Makefile
27TEST=bntest.c exptest.c
28APPS=
29
30LIB=$(TOP)/libcrypto.a
31LIBSRC= bn_add.c bn_div.c bn_exp.c bn_lib.c bn_ctx.c bn_mul.c bn_mod.c \
32 bn_print.c bn_rand.c bn_shift.c bn_word.c bn_blind.c \
33 bn_kron.c bn_sqrt.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c bn_asm.c \
34 bn_recp.c bn_mont.c bn_mpi.c bn_exp2.c
35
36LIBOBJ= bn_add.o bn_div.o bn_exp.o bn_lib.o bn_ctx.o bn_mul.o bn_mod.o \
37 bn_print.o bn_rand.o bn_shift.o bn_word.o bn_blind.o \
38 bn_kron.o bn_sqrt.o bn_gcd.o bn_prime.o bn_err.o bn_sqr.o $(BN_ASM) \
39 bn_recp.o bn_mont.o bn_mpi.o bn_exp2.o
40
41SRC= $(LIBSRC)
42
43EXHEADER= bn.h
44HEADER= bn_lcl.h bn_prime.h $(EXHEADER)
45
46ALL= $(GENERAL) $(SRC) $(HEADER)
47
48top:
49 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
50
51all: lib
52
53bn_prime.h: bn_prime.pl
54 $(PERL) bn_prime.pl >bn_prime.h
55
56divtest: divtest.c ../../libcrypto.a
57 cc -I../../include divtest.c -o divtest ../../libcrypto.a
58
59bnbug: bnbug.c ../../libcrypto.a top
60 cc -g -I../../include bnbug.c -o bnbug ../../libcrypto.a
61
62lib: $(LIBOBJ)
63 $(AR) $(LIB) $(LIBOBJ)
64 $(RANLIB) $(LIB) || echo Never mind.
65 @touch lib
66
67# elf
68asm/bn86-elf.s: asm/bn-586.pl ../perlasm/x86asm.pl
69 (cd asm; $(PERL) bn-586.pl elf $(CFLAGS) > bn86-elf.s)
70
71asm/co86-elf.s: asm/co-586.pl ../perlasm/x86asm.pl
72 (cd asm; $(PERL) co-586.pl elf $(CFLAGS) > co86-elf.s)
73
74# a.out
75asm/bn86-out.o: asm/bn86unix.cpp
76 $(CPP) -DOUT asm/bn86unix.cpp | as -o asm/bn86-out.o
77
78asm/co86-out.o: asm/co86unix.cpp
79 $(CPP) -DOUT asm/co86unix.cpp | as -o asm/co86-out.o
80
81# bsdi
82asm/bn86bsdi.o: asm/bn86unix.cpp
83 $(CPP) -DBSDI asm/bn86unix.cpp | sed 's/ :/:/' | as -o asm/bn86bsdi.o
84
85asm/co86bsdi.o: asm/co86unix.cpp
86 $(CPP) -DBSDI asm/co86unix.cpp | sed 's/ :/:/' | as -o asm/co86bsdi.o
87
88asm/bn86unix.cpp: asm/bn-586.pl ../perlasm/x86asm.pl
89 (cd asm; $(PERL) bn-586.pl cpp >bn86unix.cpp )
90
91asm/co86unix.cpp: asm/co-586.pl ../perlasm/x86asm.pl
92 (cd asm; $(PERL) co-586.pl cpp >co86unix.cpp )
93
94asm/sparcv8.o: asm/sparcv8.S
95
96asm/sparcv8plus.o: asm/sparcv8plus.S
97
98# Old GNU assembler doesn't understand V9 instructions, so we
99# hire /usr/ccs/bin/as to do the job. Note that option is called
100# *-gcc27, but even gcc 2>=8 users may experience similar problem
101# if they didn't bother to upgrade GNU assembler. Such users should
102# not choose this option, but be adviced to *remove* GNU assembler
103# or upgrade it.
104asm/sparcv8plus-gcc27.o: asm/sparcv8plus.S
105 $(CC) $(ASFLAGS) -E asm/sparcv8plus.S | \
106 /usr/ccs/bin/as -xarch=v8plus - -o asm/sparcv8plus-gcc27.o
107
108
109asm/ia64.o: asm/ia64.S
110
111# Some compiler drivers (most notably HP-UX and Intel C++) don't
112# understand .S extension:-( I wish I could pipe output from cc -E,
113# but it's too compiler driver/ABI dependent to cover with a single
114# rule... <appro@fy.chalmers.se>
115asm/ia64-cpp.o: asm/ia64.S
116 $(CC) $(ASFLAGS) -E asm/ia64.S > /tmp/ia64.$$$$.s && \
117 $(CC) $(ASFLAGS) -c -o asm/ia64-cpp.o /tmp/ia64.$$$$.s; \
118 rm -f /tmp/ia64.$$$$.s
119
120asm/x86_64-gcc.o: asm/x86_64-gcc.c
121 $(CC) $(ASFLAGS) -c -o $@ $<
122
123asm/pa-risc2W.o: asm/pa-risc2W.s
124 /usr/ccs/bin/as -o asm/pa-risc2W.o asm/pa-risc2W.s
125
126asm/linux_ppc32.s: asm/ppc.pl; $(PERL) $< $@
127asm/linux_ppc64.s: asm/ppc.pl; $(PERL) $< $@
128asm/aix_ppc32.s: asm/ppc.pl; $(PERL) asm/ppc.pl $@
129asm/aix_ppc64.s: asm/ppc.pl; $(PERL) asm/ppc.pl $@
130asm/osx_ppc32.s: asm/ppc.pl; $(PERL) $< $@
131
132files:
133 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
134
135links:
136 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
137 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
138 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
139
140install:
141 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
142 do \
143 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
144 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
145 done;
146
147exptest:
148 rm -f exptest
149 gcc -I../../include -g2 -ggdb -o exptest exptest.c ../../libcrypto.a
150
151div:
152 rm -f a.out
153 gcc -I.. -g div.c ../../libcrypto.a
154
155tags:
156 ctags $(SRC)
157
158tests:
159
160lint:
161 lint -DLINT $(INCLUDES) $(SRC)>fluff
162
163depend:
164 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
165
166dclean:
167 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
168 mv -f Makefile.new $(MAKEFILE)
169
170clean:
171 rm -f asm/co86unix.cpp asm/bn86unix.cpp asm/*-elf.* *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff bn_asm.s
172
173# DO NOT DELETE THIS LINE -- make depend depends on it.
174
175bn_add.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
176bn_add.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
177bn_add.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
178bn_add.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
179bn_add.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
180bn_add.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
181bn_add.o: ../cryptlib.h bn_add.c bn_lcl.h
182bn_asm.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
183bn_asm.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
184bn_asm.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
185bn_asm.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
186bn_asm.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
187bn_asm.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
188bn_asm.o: ../cryptlib.h bn_asm.c bn_lcl.h
189bn_blind.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
190bn_blind.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
191bn_blind.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
192bn_blind.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
193bn_blind.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
194bn_blind.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
195bn_blind.o: ../cryptlib.h bn_blind.c bn_lcl.h
196bn_ctx.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
197bn_ctx.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
198bn_ctx.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
199bn_ctx.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
200bn_ctx.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
201bn_ctx.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
202bn_ctx.o: ../cryptlib.h bn_ctx.c bn_lcl.h
203bn_div.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
204bn_div.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
205bn_div.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
206bn_div.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
207bn_div.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
208bn_div.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
209bn_div.o: ../cryptlib.h bn_div.c bn_lcl.h
210bn_err.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
211bn_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
212bn_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
213bn_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
214bn_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
215bn_err.o: ../../include/openssl/symhacks.h bn_err.c
216bn_exp.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
217bn_exp.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
218bn_exp.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
219bn_exp.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
220bn_exp.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
221bn_exp.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
222bn_exp.o: ../cryptlib.h bn_exp.c bn_lcl.h
223bn_exp2.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
224bn_exp2.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
225bn_exp2.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
226bn_exp2.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
227bn_exp2.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
228bn_exp2.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
229bn_exp2.o: ../cryptlib.h bn_exp2.c bn_lcl.h
230bn_gcd.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
231bn_gcd.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
232bn_gcd.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
233bn_gcd.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
234bn_gcd.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
235bn_gcd.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
236bn_gcd.o: ../cryptlib.h bn_gcd.c bn_lcl.h
237bn_kron.o: ../../include/openssl/bn.h ../../include/openssl/e_os2.h
238bn_kron.o: ../../include/openssl/opensslconf.h bn_kron.c bn_lcl.h
239bn_lib.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
240bn_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
241bn_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
242bn_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
243bn_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
244bn_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
245bn_lib.o: ../cryptlib.h bn_lcl.h bn_lib.c
246bn_mod.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
247bn_mod.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
248bn_mod.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
249bn_mod.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
250bn_mod.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
251bn_mod.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
252bn_mod.o: ../cryptlib.h bn_lcl.h bn_mod.c
253bn_mont.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
254bn_mont.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
255bn_mont.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
256bn_mont.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
257bn_mont.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
258bn_mont.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
259bn_mont.o: ../cryptlib.h bn_lcl.h bn_mont.c
260bn_mpi.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
261bn_mpi.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
262bn_mpi.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
263bn_mpi.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
264bn_mpi.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
265bn_mpi.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
266bn_mpi.o: ../cryptlib.h bn_lcl.h bn_mpi.c
267bn_mul.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
268bn_mul.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
269bn_mul.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
270bn_mul.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
271bn_mul.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
272bn_mul.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
273bn_mul.o: ../cryptlib.h bn_lcl.h bn_mul.c
274bn_prime.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
275bn_prime.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
276bn_prime.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
277bn_prime.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
278bn_prime.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
279bn_prime.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
280bn_prime.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
281bn_prime.o: ../cryptlib.h bn_lcl.h bn_prime.c bn_prime.h
282bn_print.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
283bn_print.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
284bn_print.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
285bn_print.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
286bn_print.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
287bn_print.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
288bn_print.o: ../cryptlib.h bn_lcl.h bn_print.c
289bn_rand.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
290bn_rand.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
291bn_rand.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
292bn_rand.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
293bn_rand.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
294bn_rand.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
295bn_rand.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
296bn_rand.o: ../cryptlib.h bn_lcl.h bn_rand.c
297bn_recp.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
298bn_recp.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
299bn_recp.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
300bn_recp.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
301bn_recp.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
302bn_recp.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
303bn_recp.o: ../cryptlib.h bn_lcl.h bn_recp.c
304bn_shift.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
305bn_shift.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
306bn_shift.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
307bn_shift.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
308bn_shift.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
309bn_shift.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
310bn_shift.o: ../cryptlib.h bn_lcl.h bn_shift.c
311bn_sqr.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
312bn_sqr.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
313bn_sqr.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
314bn_sqr.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
315bn_sqr.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
316bn_sqr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
317bn_sqr.o: ../cryptlib.h bn_lcl.h bn_sqr.c
318bn_sqrt.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
319bn_sqrt.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
320bn_sqrt.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
321bn_sqrt.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
322bn_sqrt.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
323bn_sqrt.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
324bn_sqrt.o: ../cryptlib.h bn_lcl.h bn_sqrt.c
325bn_word.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
326bn_word.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
327bn_word.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
328bn_word.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
329bn_word.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
330bn_word.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
331bn_word.o: ../cryptlib.h bn_lcl.h bn_word.c
diff --git a/src/lib/libssl/src/crypto/bn/asm/ia64.S b/src/lib/libssl/src/crypto/bn/asm/ia64.S
index 7dfda85566..7b82b820e6 100644
--- a/src/lib/libssl/src/crypto/bn/asm/ia64.S
+++ b/src/lib/libssl/src/crypto/bn/asm/ia64.S
@@ -1,6 +1,6 @@
1.explicit 1.explicit
2.text 2.text
3.ident "ia64.S, Version 2.0" 3.ident "ia64.S, Version 2.1"
4.ident "IA-64 ISA artwork by Andy Polyakov <appro@fy.chalmers.se>" 4.ident "IA-64 ISA artwork by Andy Polyakov <appro@fy.chalmers.se>"
5 5
6// 6//
@@ -35,7 +35,7 @@
35// What does it mean? You might ratiocinate that the original code 35// What does it mean? You might ratiocinate that the original code
36// should run just faster... Because sum of latencies is smaller... 36// should run just faster... Because sum of latencies is smaller...
37// Wrong! Note that getf latency increased. This means that if a loop is 37// Wrong! Note that getf latency increased. This means that if a loop is
38// scheduled for lower latency (and they are), then it will suffer from 38// scheduled for lower latency (as they were), then it will suffer from
39// stall condition and the code will therefore turn anti-scalable, e.g. 39// stall condition and the code will therefore turn anti-scalable, e.g.
40// original bn_mul_words spun at 5*n or 2.5 times slower than expected 40// original bn_mul_words spun at 5*n or 2.5 times slower than expected
41// on Itanium2! What to do? Reschedule loops for Itanium2? But then 41// on Itanium2! What to do? Reschedule loops for Itanium2? But then
@@ -145,6 +145,12 @@
145// -Drum=nop.m in command line. 145// -Drum=nop.m in command line.
146// 146//
147 147
148#if defined(_HPUX_SOURCE) && !defined(_LP64)
149#define ADDP addp4
150#else
151#define ADDP add
152#endif
153
148#if 1 154#if 1
149// 155//
150// bn_[add|sub]_words routines. 156// bn_[add|sub]_words routines.
@@ -178,27 +184,12 @@ bn_add_words:
178 brp.loop.imp .L_bn_add_words_ctop,.L_bn_add_words_cend-16 184 brp.loop.imp .L_bn_add_words_ctop,.L_bn_add_words_cend-16
179 } 185 }
180 .body 186 .body
181{ .mib; 187{ .mib; ADDP r14=0,r32 // rp
182#if defined(_HPUX_SOURCE) && defined(_ILP32)
183 addp4 r14=0,r32 // rp
184#else
185 mov r14=r32 // rp
186#endif
187 mov r9=pr };; 188 mov r9=pr };;
188{ .mii; 189{ .mii; ADDP r15=0,r33 // ap
189#if defined(_HPUX_SOURCE) && defined(_ILP32)
190 addp4 r15=0,r33 // ap
191#else
192 mov r15=r33 // ap
193#endif
194 mov ar.lc=r10 190 mov ar.lc=r10
195 mov ar.ec=6 } 191 mov ar.ec=6 }
196{ .mib; 192{ .mib; ADDP r16=0,r34 // bp
197#if defined(_HPUX_SOURCE) && defined(_ILP32)
198 addp4 r16=0,r34 // bp
199#else
200 mov r16=r34 // bp
201#endif
202 mov pr.rot=1<<16 };; 193 mov pr.rot=1<<16 };;
203 194
204.L_bn_add_words_ctop: 195.L_bn_add_words_ctop:
@@ -246,27 +237,12 @@ bn_sub_words:
246 brp.loop.imp .L_bn_sub_words_ctop,.L_bn_sub_words_cend-16 237 brp.loop.imp .L_bn_sub_words_ctop,.L_bn_sub_words_cend-16
247 } 238 }
248 .body 239 .body
249{ .mib; 240{ .mib; ADDP r14=0,r32 // rp
250#if defined(_HPUX_SOURCE) && defined(_ILP32)
251 addp4 r14=0,r32 // rp
252#else
253 mov r14=r32 // rp
254#endif
255 mov r9=pr };; 241 mov r9=pr };;
256{ .mii; 242{ .mii; ADDP r15=0,r33 // ap
257#if defined(_HPUX_SOURCE) && defined(_ILP32)
258 addp4 r15=0,r33 // ap
259#else
260 mov r15=r33 // ap
261#endif
262 mov ar.lc=r10 243 mov ar.lc=r10
263 mov ar.ec=6 } 244 mov ar.ec=6 }
264{ .mib; 245{ .mib; ADDP r16=0,r34 // bp
265#if defined(_HPUX_SOURCE) && defined(_ILP32)
266 addp4 r16=0,r34 // bp
267#else
268 mov r16=r34 // bp
269#endif
270 mov pr.rot=1<<16 };; 246 mov pr.rot=1<<16 };;
271 247
272.L_bn_sub_words_ctop: 248.L_bn_sub_words_ctop:
@@ -332,16 +308,10 @@ bn_mul_words:
332 308
333#ifndef XMA_TEMPTATION 309#ifndef XMA_TEMPTATION
334 310
335{ .mii; 311{ .mmi; ADDP r14=0,r32 // rp
336#if defined(_HPUX_SOURCE) && defined(_ILP32) 312 ADDP r15=0,r33 // ap
337 addp4 r14=0,r32 // rp
338 addp4 r15=0,r33 // ap
339#else
340 mov r14=r32 // rp
341 mov r15=r33 // ap
342#endif
343 mov ar.lc=r10 } 313 mov ar.lc=r10 }
344{ .mii; mov r40=0 // serves as r35 at first (p27) 314{ .mmi; mov r40=0 // serves as r35 at first (p27)
345 mov ar.ec=13 };; 315 mov ar.ec=13 };;
346 316
347// This loop spins in 2*(n+12) ticks. It's scheduled for data in Itanium 317// This loop spins in 2*(n+12) ticks. It's scheduled for data in Itanium
@@ -424,89 +394,64 @@ bn_mul_words:
424.global bn_mul_add_words# 394.global bn_mul_add_words#
425.proc bn_mul_add_words# 395.proc bn_mul_add_words#
426.align 64 396.align 64
427//.skip 0 // makes the loop split at 64-byte boundary 397.skip 48 // makes the loop body aligned at 64-byte boundary
428bn_mul_add_words: 398bn_mul_add_words:
429 .prologue 399 .prologue
430 .fframe 0 400 .fframe 0
431 .save ar.pfs,r2 401 .save ar.pfs,r2
432{ .mii; alloc r2=ar.pfs,4,12,0,16
433 cmp4.le p6,p0=r34,r0 };;
434{ .mfb; mov r8=r0 // return value
435(p6) br.ret.spnt.many b0 };;
436
437 .save ar.lc,r3 402 .save ar.lc,r3
438{ .mii; sub r10=r34,r0,1 403 .save pr,r9
439 mov r3=ar.lc 404{ .mmi; alloc r2=ar.pfs,4,4,0,8
440 mov r9=pr };; 405 cmp4.le p6,p0=r34,r0
406 mov r3=ar.lc };;
407{ .mib; mov r8=r0 // return value
408 sub r10=r34,r0,1
409(p6) br.ret.spnt.many b0 };;
441 410
442 .body 411 .body
443{ .mib; setf.sig f8=r35 // w 412{ .mib; setf.sig f8=r35 // w
444 mov pr.rot=0x800001<<16 413 mov r9=pr
445 // ------^----- serves as (p50) at first (p27)
446 brp.loop.imp .L_bn_mul_add_words_ctop,.L_bn_mul_add_words_cend-16 414 brp.loop.imp .L_bn_mul_add_words_ctop,.L_bn_mul_add_words_cend-16
447 } 415 }
448{ .mii; 416{ .mmi; ADDP r14=0,r32 // rp
449#if defined(_HPUX_SOURCE) && defined(_ILP32) 417 ADDP r15=0,r33 // ap
450 addp4 r14=0,r32 // rp
451 addp4 r15=0,r33 // ap
452#else
453 mov r14=r32 // rp
454 mov r15=r33 // ap
455#endif
456 mov ar.lc=r10 } 418 mov ar.lc=r10 }
457{ .mii; mov r40=0 // serves as r35 at first (p27) 419{ .mii; ADDP r16=0,r32 // rp copy
458#if defined(_HPUX_SOURCE) && defined(_ILP32) 420 mov pr.rot=0x2001<<16
459 addp4 r18=0,r32 // rp copy 421 // ------^----- serves as (p40) at first (p27)
460#else 422 mov ar.ec=11 };;
461 mov r18=r32 // rp copy 423
462#endif 424// This loop spins in 3*(n+10) ticks on Itanium and in 2*(n+10) on
463 mov ar.ec=15 };; 425// Itanium 2. Yes, unlike previous versions it scales:-) Previous
464 426// version was peforming *all* additions in IALU and was starving
465// This loop spins in 3*(n+14) ticks on Itanium and should spin in 427// for those even on Itanium 2. In this version one addition is
466// 2*(n+14) on "wider" IA-64 implementations (to be verified with new 428// moved to FPU and is folded with multiplication. This is at cost
467// µ-architecture manuals as they become available). As usual it's 429// of propogating the result from previous call to this subroutine
468// possible to compress the epilogue, down to 10 in this case, at the 430// to L2 cache... In other words negligible even for shorter keys.
469// cost of scalability. Compressed (and therefore non-scalable) loop 431// *Overall* performance improvement [over previous version] varies
470// running at 3*(n+11) would buy you ~10% on Itanium but take ~35% 432// from 11 to 22 percent depending on key length.
471// from "wider" IA-64 so let it be scalable! Special attention was
472// paid for having the loop body split at 64-byte boundary. ld8 is
473// scheduled for L1 cache as the data is more than likely there.
474// Indeed, bn_mul_words has put it there a moment ago:-)
475.L_bn_mul_add_words_ctop: 433.L_bn_mul_add_words_ctop:
476{ .mfi; (p25) getf.sig r36=f52 // low 434.pred.rel "mutex",p40,p42
477 (p21) xmpy.lu f48=f37,f8 435{ .mfi; (p23) getf.sig r36=f45 // low
478 (p28) cmp.ltu p54,p50=r41,r39 } 436 (p20) xma.lu f42=f36,f8,f50 // low
479{ .mfi; (p16) ldf8 f32=[r15],8 437 (p40) add r39=r39,r35 } // (p27)
480 (p21) xmpy.hu f40=f37,f8 438{ .mfi; (p16) ldf8 f32=[r15],8 // *(ap++)
481 (p28) add r45=r45,r41 };; 439 (p20) xma.hu f36=f36,f8,f50 // high
482{ .mii; (p25) getf.sig r32=f44 // high 440 (p42) add r39=r39,r35,1 };; // (p27)
483 .pred.rel "mutex",p50,p54 441{ .mmi; (p24) getf.sig r32=f40 // high
484 (p50) add r40=r38,r35 // (p27) 442 (p16) ldf8 f46=[r16],8 // *(rp1++)
485 (p54) add r40=r38,r35,1 } // (p27) 443 (p40) cmp.ltu p41,p39=r39,r35 } // (p27)
486{ .mfb; (p28) cmp.ltu.unc p60,p0=r45,r41 444{ .mib; (p26) st8 [r14]=r39,8 // *(rp2++)
487 (p0) nop.f 0x0 445 (p42) cmp.leu p41,p39=r39,r35 // (p27)
488 (p0) nop.b 0x0 }
489{ .mii; (p27) ld8 r44=[r18],8
490 (p62) cmp.eq.or p61,p0=-1,r46
491 (p62) add r46=1,r46 }
492{ .mfb; (p30) st8 [r14]=r47,8
493 (p0) nop.f 0x0
494 br.ctop.sptk .L_bn_mul_add_words_ctop};; 446 br.ctop.sptk .L_bn_mul_add_words_ctop};;
495.L_bn_mul_add_words_cend: 447.L_bn_mul_add_words_cend:
496 448
497{ .mii; nop.m 0x0 449{ .mmi; .pred.rel "mutex",p40,p42
498.pred.rel "mutex",p53,p57 450(p40) add r8=r35,r0
499(p53) add r8=r38,r0 451(p42) add r8=r35,r0,1
500(p57) add r8=r38,r0,1 } 452 mov pr=r9,0x1ffff }
501{ .mfb; nop.m 0x0 453{ .mib; rum 1<<5 // clear um.mfh
502 nop.f 0x0 454 mov ar.lc=r3
503 nop.b 0x0 };;
504{ .mii;
505(p63) add r8=1,r8
506 mov pr=r9,0x1ffff
507 mov ar.lc=r3 }
508{ .mfb; rum 1<<5 // clear um.mfh
509 nop.f 0x0
510 br.ret.sptk.many b0 };; 455 br.ret.sptk.many b0 };;
511.endp bn_mul_add_words# 456.endp bn_mul_add_words#
512#endif 457#endif
@@ -527,7 +472,8 @@ bn_sqr_words:
527 sxt4 r34=r34 };; 472 sxt4 r34=r34 };;
528{ .mii; cmp.le p6,p0=r34,r0 473{ .mii; cmp.le p6,p0=r34,r0
529 mov r8=r0 } // return value 474 mov r8=r0 } // return value
530{ .mfb; nop.f 0x0 475{ .mfb; ADDP r32=0,r32
476 nop.f 0x0
531(p6) br.ret.spnt.many b0 };; 477(p6) br.ret.spnt.many b0 };;
532 478
533 .save ar.lc,r3 479 .save ar.lc,r3
@@ -536,11 +482,7 @@ bn_sqr_words:
536 mov r9=pr };; 482 mov r9=pr };;
537 483
538 .body 484 .body
539#if defined(_HPUX_SOURCE) && defined(_ILP32) 485{ .mib; ADDP r33=0,r33
540{ .mii; addp4 r32=0,r32
541 addp4 r33=0,r33 };;
542#endif
543{ .mib;
544 mov pr.rot=1<<16 486 mov pr.rot=1<<16
545 brp.loop.imp .L_bn_sqr_words_ctop,.L_bn_sqr_words_cend-16 487 brp.loop.imp .L_bn_sqr_words_ctop,.L_bn_sqr_words_cend-16
546 } 488 }
@@ -605,7 +547,7 @@ bn_sqr_comba8:
605 .prologue 547 .prologue
606 .fframe 0 548 .fframe 0
607 .save ar.pfs,r2 549 .save ar.pfs,r2
608#if defined(_HPUX_SOURCE) && defined(_ILP32) 550#if defined(_HPUX_SOURCE) && !defined(_LP64)
609{ .mii; alloc r2=ar.pfs,2,1,0,0 551{ .mii; alloc r2=ar.pfs,2,1,0,0
610 addp4 r33=0,r33 552 addp4 r33=0,r33
611 addp4 r32=0,r32 };; 553 addp4 r32=0,r32 };;
@@ -631,6 +573,10 @@ bn_sqr_comba8:
631// clause in Itanium µ-architecture manual? Comments are welcomed and 573// clause in Itanium µ-architecture manual? Comments are welcomed and
632// highly appreciated. 574// highly appreciated.
633// 575//
576// On Itanium 2 it takes ~190 ticks. This is because of stalls on
577// result from getf.sig. I do nothing about it at this point for
578// reasons depicted below.
579//
634// However! It should be noted that even 160 ticks is darn good result 580// However! It should be noted that even 160 ticks is darn good result
635// as it's over 10 (yes, ten, spelled as t-e-n) times faster than the 581// as it's over 10 (yes, ten, spelled as t-e-n) times faster than the
636// C version (compiled with gcc with inline assembler). I really 582// C version (compiled with gcc with inline assembler). I really
@@ -673,7 +619,7 @@ bn_mul_comba8:
673 .prologue 619 .prologue
674 .fframe 0 620 .fframe 0
675 .save ar.pfs,r2 621 .save ar.pfs,r2
676#if defined(_HPUX_SOURCE) && defined(_ILP32) 622#if defined(_HPUX_SOURCE) && !defined(_LP64)
677{ .mii; alloc r2=ar.pfs,3,0,0,0 623{ .mii; alloc r2=ar.pfs,3,0,0,0
678 addp4 r33=0,r33 624 addp4 r33=0,r33
679 addp4 r34=0,r34 };; 625 addp4 r34=0,r34 };;
@@ -1231,7 +1177,7 @@ bn_sqr_comba4:
1231 .prologue 1177 .prologue
1232 .fframe 0 1178 .fframe 0
1233 .save ar.pfs,r2 1179 .save ar.pfs,r2
1234#if defined(_HPUX_SOURCE) && defined(_ILP32) 1180#if defined(_HPUX_SOURCE) && !defined(_LP64)
1235{ .mii; alloc r2=ar.pfs,2,1,0,0 1181{ .mii; alloc r2=ar.pfs,2,1,0,0
1236 addp4 r32=0,r32 1182 addp4 r32=0,r32
1237 addp4 r33=0,r33 };; 1183 addp4 r33=0,r33 };;
@@ -1264,7 +1210,7 @@ bn_mul_comba4:
1264 .prologue 1210 .prologue
1265 .fframe 0 1211 .fframe 0
1266 .save ar.pfs,r2 1212 .save ar.pfs,r2
1267#if defined(_HPUX_SOURCE) && defined(_ILP32) 1213#if defined(_HPUX_SOURCE) && !defined(_LP64)
1268{ .mii; alloc r2=ar.pfs,3,0,0,0 1214{ .mii; alloc r2=ar.pfs,3,0,0,0
1269 addp4 r33=0,r33 1215 addp4 r33=0,r33
1270 addp4 r34=0,r34 };; 1216 addp4 r34=0,r34 };;
@@ -1448,8 +1394,8 @@ bn_mul_comba4:
1448#define I r21 1394#define I r21
1449 1395
1450#if 0 1396#if 0
1451// Some preprocessors (most notably HP-UX) apper to be allergic to 1397// Some preprocessors (most notably HP-UX) appear to be allergic to
1452// macros enclosed to parenthesis as these three will be. 1398// macros enclosed to parenthesis [as these three were].
1453#define cont p16 1399#define cont p16
1454#define break p0 // p20 1400#define break p0 // p20
1455#define equ p24 1401#define equ p24
@@ -1581,9 +1527,18 @@ bn_div_words:
1581// output: f8 = (int)(a/b) 1527// output: f8 = (int)(a/b)
1582// clobbered: f8,f9,f10,f11,pred 1528// clobbered: f8,f9,f10,f11,pred
1583pred=p15 1529pred=p15
1584// This procedure is essentially Intel code and therefore is 1530// One can argue that this snippet is copyrighted to Intel
1585// copyrighted to Intel Corporation (I suppose...). It's sligtly 1531// Corporation, as it's essentially identical to one of those
1586// modified for specific needs. 1532// found in "Divide, Square Root and Remainder" section at
1533// http://www.intel.com/software/products/opensource/libraries/num.htm.
1534// Yes, I admit that the referred code was used as template,
1535// but after I realized that there hardly is any other instruction
1536// sequence which would perform this operation. I mean I figure that
1537// any independent attempt to implement high-performance division
1538// will result in code virtually identical to the Intel code. It
1539// should be noted though that below division kernel is 1 cycle
1540// faster than Intel one (note commented splits:-), not to mention
1541// original prologue (rather lack of one) and epilogue.
1587.align 32 1542.align 32
1588.skip 16 1543.skip 16
1589.L_udiv64_32_b6: 1544.L_udiv64_32_b6:
diff --git a/src/lib/libssl/src/crypto/bn/asm/ppc.pl b/src/lib/libssl/src/crypto/bn/asm/ppc.pl
new file mode 100644
index 0000000000..307c7ccb35
--- /dev/null
+++ b/src/lib/libssl/src/crypto/bn/asm/ppc.pl
@@ -0,0 +1,2081 @@
1#!/usr/bin/env perl
2#
3# Implemented as a Perl wrapper as we want to support several different
4# architectures with single file. We pick up the target based on the
5# file name we are asked to generate.
6#
7# It should be noted though that this perl code is nothing like
8# <openssl>/crypto/perlasm/x86*. In this case perl is used pretty much
9# as pre-processor to cover for platform differences in name decoration,
10# linker tables, 32-/64-bit instruction sets...
11#
12# As you might know there're several PowerPC ABI in use. Most notably
13# Linux and AIX use different 32-bit ABIs. Good news are that these ABIs
14# are similar enough to implement leaf(!) functions, which would be ABI
15# neutral. And that's what you find here: ABI neutral leaf functions.
16# In case you wonder what that is...
17#
18# AIX performance
19#
20# MEASUREMENTS WITH cc ON a 200 MhZ PowerPC 604e.
21#
22# The following is the performance of 32-bit compiler
23# generated code:
24#
25# OpenSSL 0.9.6c 21 dec 2001
26# built on: Tue Jun 11 11:06:51 EDT 2002
27# options:bn(64,32) ...
28#compiler: cc -DTHREADS -DAIX -DB_ENDIAN -DBN_LLONG -O3
29# sign verify sign/s verify/s
30#rsa 512 bits 0.0098s 0.0009s 102.0 1170.6
31#rsa 1024 bits 0.0507s 0.0026s 19.7 387.5
32#rsa 2048 bits 0.3036s 0.0085s 3.3 117.1
33#rsa 4096 bits 2.0040s 0.0299s 0.5 33.4
34#dsa 512 bits 0.0087s 0.0106s 114.3 94.5
35#dsa 1024 bits 0.0256s 0.0313s 39.0 32.0
36#
37# Same bechmark with this assembler code:
38#
39#rsa 512 bits 0.0056s 0.0005s 178.6 2049.2
40#rsa 1024 bits 0.0283s 0.0015s 35.3 674.1
41#rsa 2048 bits 0.1744s 0.0050s 5.7 201.2
42#rsa 4096 bits 1.1644s 0.0179s 0.9 55.7
43#dsa 512 bits 0.0052s 0.0062s 191.6 162.0
44#dsa 1024 bits 0.0149s 0.0180s 67.0 55.5
45#
46# Number of operations increases by at almost 75%
47#
48# Here are performance numbers for 64-bit compiler
49# generated code:
50#
51# OpenSSL 0.9.6g [engine] 9 Aug 2002
52# built on: Fri Apr 18 16:59:20 EDT 2003
53# options:bn(64,64) ...
54# compiler: cc -DTHREADS -D_REENTRANT -q64 -DB_ENDIAN -O3
55# sign verify sign/s verify/s
56#rsa 512 bits 0.0028s 0.0003s 357.1 3844.4
57#rsa 1024 bits 0.0148s 0.0008s 67.5 1239.7
58#rsa 2048 bits 0.0963s 0.0028s 10.4 353.0
59#rsa 4096 bits 0.6538s 0.0102s 1.5 98.1
60#dsa 512 bits 0.0026s 0.0032s 382.5 313.7
61#dsa 1024 bits 0.0081s 0.0099s 122.8 100.6
62#
63# Same benchmark with this assembler code:
64#
65#rsa 512 bits 0.0020s 0.0002s 510.4 6273.7
66#rsa 1024 bits 0.0088s 0.0005s 114.1 2128.3
67#rsa 2048 bits 0.0540s 0.0016s 18.5 622.5
68#rsa 4096 bits 0.3700s 0.0058s 2.7 171.0
69#dsa 512 bits 0.0016s 0.0020s 610.7 507.1
70#dsa 1024 bits 0.0047s 0.0058s 212.5 173.2
71#
72# Again, performance increases by at about 75%
73#
74# Mac OS X, Apple G5 1.8GHz (Note this is 32 bit code)
75# OpenSSL 0.9.7c 30 Sep 2003
76#
77# Original code.
78#
79#rsa 512 bits 0.0011s 0.0001s 906.1 11012.5
80#rsa 1024 bits 0.0060s 0.0003s 166.6 3363.1
81#rsa 2048 bits 0.0370s 0.0010s 27.1 982.4
82#rsa 4096 bits 0.2426s 0.0036s 4.1 280.4
83#dsa 512 bits 0.0010s 0.0012s 1038.1 841.5
84#dsa 1024 bits 0.0030s 0.0037s 329.6 269.7
85#dsa 2048 bits 0.0101s 0.0127s 98.9 78.6
86#
87# Same benchmark with this assembler code:
88#
89#rsa 512 bits 0.0007s 0.0001s 1416.2 16645.9
90#rsa 1024 bits 0.0036s 0.0002s 274.4 5380.6
91#rsa 2048 bits 0.0222s 0.0006s 45.1 1589.5
92#rsa 4096 bits 0.1469s 0.0022s 6.8 449.6
93#dsa 512 bits 0.0006s 0.0007s 1664.2 1376.2
94#dsa 1024 bits 0.0018s 0.0023s 545.0 442.2
95#dsa 2048 bits 0.0061s 0.0075s 163.5 132.8
96#
97# Performance increase of ~60%
98#
99# If you have comments or suggestions to improve code send
100# me a note at schari@us.ibm.com
101#
102
103$opf = shift;
104
105if ($opf =~ /32\.s/) {
106 $BITS= 32;
107 $BNSZ= $BITS/8;
108 $ISA= "\"ppc\"";
109
110 $LD= "lwz"; # load
111 $LDU= "lwzu"; # load and update
112 $ST= "stw"; # store
113 $STU= "stwu"; # store and update
114 $UMULL= "mullw"; # unsigned multiply low
115 $UMULH= "mulhwu"; # unsigned multiply high
116 $UDIV= "divwu"; # unsigned divide
117 $UCMPI= "cmplwi"; # unsigned compare with immediate
118 $UCMP= "cmplw"; # unsigned compare
119 $COUNTZ="cntlzw"; # count leading zeros
120 $SHL= "slw"; # shift left
121 $SHR= "srw"; # unsigned shift right
122 $SHRI= "srwi"; # unsigned shift right by immediate
123 $SHLI= "slwi"; # shift left by immediate
124 $CLRU= "clrlwi"; # clear upper bits
125 $INSR= "insrwi"; # insert right
126 $ROTL= "rotlwi"; # rotate left by immediate
127} elsif ($opf =~ /64\.s/) {
128 $BITS= 64;
129 $BNSZ= $BITS/8;
130 $ISA= "\"ppc64\"";
131
132 # same as above, but 64-bit mnemonics...
133 $LD= "ld"; # load
134 $LDU= "ldu"; # load and update
135 $ST= "std"; # store
136 $STU= "stdu"; # store and update
137 $UMULL= "mulld"; # unsigned multiply low
138 $UMULH= "mulhdu"; # unsigned multiply high
139 $UDIV= "divdu"; # unsigned divide
140 $UCMPI= "cmpldi"; # unsigned compare with immediate
141 $UCMP= "cmpld"; # unsigned compare
142 $COUNTZ="cntlzd"; # count leading zeros
143 $SHL= "sld"; # shift left
144 $SHR= "srd"; # unsigned shift right
145 $SHRI= "srdi"; # unsigned shift right by immediate
146 $SHLI= "sldi"; # shift left by immediate
147 $CLRU= "clrldi"; # clear upper bits
148 $INSR= "insrdi"; # insert right
149 $ROTL= "rotldi"; # rotate left by immediate
150} else { die "nonsense $opf"; }
151
152( defined shift || open STDOUT,">$opf" ) || die "can't open $opf: $!";
153
154# function entry points from the AIX code
155#
156# There are other, more elegant, ways to handle this. We (IBM) chose
157# this approach as it plays well with scripts we run to 'namespace'
158# OpenSSL .i.e. we add a prefix to all the public symbols so we can
159# co-exist in the same process with other implementations of OpenSSL.
160# 'cleverer' ways of doing these substitutions tend to hide data we
161# need to be obvious.
162#
163my @items = ("bn_sqr_comba4",
164 "bn_sqr_comba8",
165 "bn_mul_comba4",
166 "bn_mul_comba8",
167 "bn_sub_words",
168 "bn_add_words",
169 "bn_div_words",
170 "bn_sqr_words",
171 "bn_mul_words",
172 "bn_mul_add_words");
173
174if ($opf =~ /linux/) { do_linux(); }
175elsif ($opf =~ /aix/) { do_aix(); }
176elsif ($opf =~ /osx/) { do_osx(); }
177else { do_bsd(); }
178
179sub do_linux {
180 $d=&data();
181
182 if ($BITS==64) {
183 foreach $t (@items) {
184 $d =~ s/\.$t:/\
185\t.section\t".opd","aw"\
186\t.align\t3\
187\t.globl\t$t\
188$t:\
189\t.quad\t.$t,.TOC.\@tocbase,0\
190\t.size\t$t,24\
191\t.previous\n\
192\t.type\t.$t,\@function\
193\t.globl\t.$t\
194.$t:/g;
195 }
196 }
197 else {
198 foreach $t (@items) {
199 $d=~s/\.$t/$t/g;
200 }
201 }
202 # hide internal labels to avoid pollution of name table...
203 $d=~s/Lppcasm_/.Lppcasm_/gm;
204 print $d;
205}
206
207sub do_aix {
208 # AIX assembler is smart enough to please the linker without
209 # making us do something special...
210 print &data();
211}
212
213# MacOSX 32 bit
214sub do_osx {
215 $d=&data();
216 # Change the bn symbol prefix from '.' to '_'
217 foreach $t (@items) {
218 $d=~s/\.$t/_$t/g;
219 }
220 # Change .machine to something OS X asm will accept
221 $d=~s/\.machine.*/.text/g;
222 $d=~s/\#/;/g; # change comment from '#' to ';'
223 print $d;
224}
225
226# BSD (Untested)
227sub do_bsd {
228 $d=&data();
229 foreach $t (@items) {
230 $d=~s/\.$t/_$t/g;
231 }
232 print $d;
233}
234
235sub data {
236 local($data)=<<EOF;
237#--------------------------------------------------------------------
238#
239#
240#
241#
242# File: ppc32.s
243#
244# Created by: Suresh Chari
245# IBM Thomas J. Watson Research Library
246# Hawthorne, NY
247#
248#
249# Description: Optimized assembly routines for OpenSSL crypto
250# on the 32 bitPowerPC platform.
251#
252#
253# Version History
254#
255# 2. Fixed bn_add,bn_sub and bn_div_words, added comments,
256# cleaned up code. Also made a single version which can
257# be used for both the AIX and Linux compilers. See NOTE
258# below.
259# 12/05/03 Suresh Chari
260# (with lots of help from) Andy Polyakov
261##
262# 1. Initial version 10/20/02 Suresh Chari
263#
264#
265# The following file works for the xlc,cc
266# and gcc compilers.
267#
268# NOTE: To get the file to link correctly with the gcc compiler
269# you have to change the names of the routines and remove
270# the first .(dot) character. This should automatically
271# be done in the build process.
272#
273# Hand optimized assembly code for the following routines
274#
275# bn_sqr_comba4
276# bn_sqr_comba8
277# bn_mul_comba4
278# bn_mul_comba8
279# bn_sub_words
280# bn_add_words
281# bn_div_words
282# bn_sqr_words
283# bn_mul_words
284# bn_mul_add_words
285#
286# NOTE: It is possible to optimize this code more for
287# specific PowerPC or Power architectures. On the Northstar
288# architecture the optimizations in this file do
289# NOT provide much improvement.
290#
291# If you have comments or suggestions to improve code send
292# me a note at schari\@us.ibm.com
293#
294#--------------------------------------------------------------------------
295#
296# Defines to be used in the assembly code.
297#
298.set r0,0 # we use it as storage for value of 0
299.set SP,1 # preserved
300.set RTOC,2 # preserved
301.set r3,3 # 1st argument/return value
302.set r4,4 # 2nd argument/volatile register
303.set r5,5 # 3rd argument/volatile register
304.set r6,6 # ...
305.set r7,7
306.set r8,8
307.set r9,9
308.set r10,10
309.set r11,11
310.set r12,12
311.set r13,13 # not used, nor any other "below" it...
312
313.set BO_IF_NOT,4
314.set BO_IF,12
315.set BO_dCTR_NZERO,16
316.set BO_dCTR_ZERO,18
317.set BO_ALWAYS,20
318.set CR0_LT,0;
319.set CR0_GT,1;
320.set CR0_EQ,2
321.set CR1_FX,4;
322.set CR1_FEX,5;
323.set CR1_VX,6
324.set LR,8
325
326# Declare function names to be global
327# NOTE: For gcc these names MUST be changed to remove
328# the first . i.e. for example change ".bn_sqr_comba4"
329# to "bn_sqr_comba4". This should be automatically done
330# in the build.
331
332 .globl .bn_sqr_comba4
333 .globl .bn_sqr_comba8
334 .globl .bn_mul_comba4
335 .globl .bn_mul_comba8
336 .globl .bn_sub_words
337 .globl .bn_add_words
338 .globl .bn_div_words
339 .globl .bn_sqr_words
340 .globl .bn_mul_words
341 .globl .bn_mul_add_words
342
343# .text section
344
345 .machine $ISA
346
347#
348# NOTE: The following label name should be changed to
349# "bn_sqr_comba4" i.e. remove the first dot
350# for the gcc compiler. This should be automatically
351# done in the build
352#
353
354.align 4
355.bn_sqr_comba4:
356#
357# Optimized version of bn_sqr_comba4.
358#
359# void bn_sqr_comba4(BN_ULONG *r, BN_ULONG *a)
360# r3 contains r
361# r4 contains a
362#
363# Freely use registers r5,r6,r7,r8,r9,r10,r11 as follows:
364#
365# r5,r6 are the two BN_ULONGs being multiplied.
366# r7,r8 are the results of the 32x32 giving 64 bit multiply.
367# r9,r10, r11 are the equivalents of c1,c2, c3.
368# Here's the assembly
369#
370#
371 xor r0,r0,r0 # set r0 = 0. Used in the addze
372 # instructions below
373
374 #sqr_add_c(a,0,c1,c2,c3)
375 $LD r5,`0*$BNSZ`(r4)
376 $UMULL r9,r5,r5
377 $UMULH r10,r5,r5 #in first iteration. No need
378 #to add since c1=c2=c3=0.
379 # Note c3(r11) is NOT set to 0
380 # but will be.
381
382 $ST r9,`0*$BNSZ`(r3) # r[0]=c1;
383 # sqr_add_c2(a,1,0,c2,c3,c1);
384 $LD r6,`1*$BNSZ`(r4)
385 $UMULL r7,r5,r6
386 $UMULH r8,r5,r6
387
388 addc r7,r7,r7 # compute (r7,r8)=2*(r7,r8)
389 adde r8,r8,r8
390 addze r9,r0 # catch carry if any.
391 # r9= r0(=0) and carry
392
393 addc r10,r7,r10 # now add to temp result.
394 addze r11,r8 # r8 added to r11 which is 0
395 addze r9,r9
396
397 $ST r10,`1*$BNSZ`(r3) #r[1]=c2;
398 #sqr_add_c(a,1,c3,c1,c2)
399 $UMULL r7,r6,r6
400 $UMULH r8,r6,r6
401 addc r11,r7,r11
402 adde r9,r8,r9
403 addze r10,r0
404 #sqr_add_c2(a,2,0,c3,c1,c2)
405 $LD r6,`2*$BNSZ`(r4)
406 $UMULL r7,r5,r6
407 $UMULH r8,r5,r6
408
409 addc r7,r7,r7
410 adde r8,r8,r8
411 addze r10,r10
412
413 addc r11,r7,r11
414 adde r9,r8,r9
415 addze r10,r10
416 $ST r11,`2*$BNSZ`(r3) #r[2]=c3
417 #sqr_add_c2(a,3,0,c1,c2,c3);
418 $LD r6,`3*$BNSZ`(r4)
419 $UMULL r7,r5,r6
420 $UMULH r8,r5,r6
421 addc r7,r7,r7
422 adde r8,r8,r8
423 addze r11,r0
424
425 addc r9,r7,r9
426 adde r10,r8,r10
427 addze r11,r11
428 #sqr_add_c2(a,2,1,c1,c2,c3);
429 $LD r5,`1*$BNSZ`(r4)
430 $LD r6,`2*$BNSZ`(r4)
431 $UMULL r7,r5,r6
432 $UMULH r8,r5,r6
433
434 addc r7,r7,r7
435 adde r8,r8,r8
436 addze r11,r11
437 addc r9,r7,r9
438 adde r10,r8,r10
439 addze r11,r11
440 $ST r9,`3*$BNSZ`(r3) #r[3]=c1
441 #sqr_add_c(a,2,c2,c3,c1);
442 $UMULL r7,r6,r6
443 $UMULH r8,r6,r6
444 addc r10,r7,r10
445 adde r11,r8,r11
446 addze r9,r0
447 #sqr_add_c2(a,3,1,c2,c3,c1);
448 $LD r6,`3*$BNSZ`(r4)
449 $UMULL r7,r5,r6
450 $UMULH r8,r5,r6
451 addc r7,r7,r7
452 adde r8,r8,r8
453 addze r9,r9
454
455 addc r10,r7,r10
456 adde r11,r8,r11
457 addze r9,r9
458 $ST r10,`4*$BNSZ`(r3) #r[4]=c2
459 #sqr_add_c2(a,3,2,c3,c1,c2);
460 $LD r5,`2*$BNSZ`(r4)
461 $UMULL r7,r5,r6
462 $UMULH r8,r5,r6
463 addc r7,r7,r7
464 adde r8,r8,r8
465 addze r10,r0
466
467 addc r11,r7,r11
468 adde r9,r8,r9
469 addze r10,r10
470 $ST r11,`5*$BNSZ`(r3) #r[5] = c3
471 #sqr_add_c(a,3,c1,c2,c3);
472 $UMULL r7,r6,r6
473 $UMULH r8,r6,r6
474 addc r9,r7,r9
475 adde r10,r8,r10
476
477 $ST r9,`6*$BNSZ`(r3) #r[6]=c1
478 $ST r10,`7*$BNSZ`(r3) #r[7]=c2
479 bclr BO_ALWAYS,CR0_LT
480 .long 0x00000000
481
482#
483# NOTE: The following label name should be changed to
484# "bn_sqr_comba8" i.e. remove the first dot
485# for the gcc compiler. This should be automatically
486# done in the build
487#
488
489.align 4
490.bn_sqr_comba8:
491#
492# This is an optimized version of the bn_sqr_comba8 routine.
493# Tightly uses the adde instruction
494#
495#
496# void bn_sqr_comba8(BN_ULONG *r, BN_ULONG *a)
497# r3 contains r
498# r4 contains a
499#
500# Freely use registers r5,r6,r7,r8,r9,r10,r11 as follows:
501#
502# r5,r6 are the two BN_ULONGs being multiplied.
503# r7,r8 are the results of the 32x32 giving 64 bit multiply.
504# r9,r10, r11 are the equivalents of c1,c2, c3.
505#
506# Possible optimization of loading all 8 longs of a into registers
507# doesnt provide any speedup
508#
509
510 xor r0,r0,r0 #set r0 = 0.Used in addze
511 #instructions below.
512
513 #sqr_add_c(a,0,c1,c2,c3);
514 $LD r5,`0*$BNSZ`(r4)
515 $UMULL r9,r5,r5 #1st iteration: no carries.
516 $UMULH r10,r5,r5
517 $ST r9,`0*$BNSZ`(r3) # r[0]=c1;
518 #sqr_add_c2(a,1,0,c2,c3,c1);
519 $LD r6,`1*$BNSZ`(r4)
520 $UMULL r7,r5,r6
521 $UMULH r8,r5,r6
522
523 addc r10,r7,r10 #add the two register number
524 adde r11,r8,r0 # (r8,r7) to the three register
525 addze r9,r0 # number (r9,r11,r10).NOTE:r0=0
526
527 addc r10,r7,r10 #add the two register number
528 adde r11,r8,r11 # (r8,r7) to the three register
529 addze r9,r9 # number (r9,r11,r10).
530
531 $ST r10,`1*$BNSZ`(r3) # r[1]=c2
532
533 #sqr_add_c(a,1,c3,c1,c2);
534 $UMULL r7,r6,r6
535 $UMULH r8,r6,r6
536 addc r11,r7,r11
537 adde r9,r8,r9
538 addze r10,r0
539 #sqr_add_c2(a,2,0,c3,c1,c2);
540 $LD r6,`2*$BNSZ`(r4)
541 $UMULL r7,r5,r6
542 $UMULH r8,r5,r6
543
544 addc r11,r7,r11
545 adde r9,r8,r9
546 addze r10,r10
547
548 addc r11,r7,r11
549 adde r9,r8,r9
550 addze r10,r10
551
552 $ST r11,`2*$BNSZ`(r3) #r[2]=c3
553 #sqr_add_c2(a,3,0,c1,c2,c3);
554 $LD r6,`3*$BNSZ`(r4) #r6 = a[3]. r5 is already a[0].
555 $UMULL r7,r5,r6
556 $UMULH r8,r5,r6
557
558 addc r9,r7,r9
559 adde r10,r8,r10
560 addze r11,r0
561
562 addc r9,r7,r9
563 adde r10,r8,r10
564 addze r11,r11
565 #sqr_add_c2(a,2,1,c1,c2,c3);
566 $LD r5,`1*$BNSZ`(r4)
567 $LD r6,`2*$BNSZ`(r4)
568 $UMULL r7,r5,r6
569 $UMULH r8,r5,r6
570
571 addc r9,r7,r9
572 adde r10,r8,r10
573 addze r11,r11
574
575 addc r9,r7,r9
576 adde r10,r8,r10
577 addze r11,r11
578
579 $ST r9,`3*$BNSZ`(r3) #r[3]=c1;
580 #sqr_add_c(a,2,c2,c3,c1);
581 $UMULL r7,r6,r6
582 $UMULH r8,r6,r6
583
584 addc r10,r7,r10
585 adde r11,r8,r11
586 addze r9,r0
587 #sqr_add_c2(a,3,1,c2,c3,c1);
588 $LD r6,`3*$BNSZ`(r4)
589 $UMULL r7,r5,r6
590 $UMULH r8,r5,r6
591
592 addc r10,r7,r10
593 adde r11,r8,r11
594 addze r9,r9
595
596 addc r10,r7,r10
597 adde r11,r8,r11
598 addze r9,r9
599 #sqr_add_c2(a,4,0,c2,c3,c1);
600 $LD r5,`0*$BNSZ`(r4)
601 $LD r6,`4*$BNSZ`(r4)
602 $UMULL r7,r5,r6
603 $UMULH r8,r5,r6
604
605 addc r10,r7,r10
606 adde r11,r8,r11
607 addze r9,r9
608
609 addc r10,r7,r10
610 adde r11,r8,r11
611 addze r9,r9
612 $ST r10,`4*$BNSZ`(r3) #r[4]=c2;
613 #sqr_add_c2(a,5,0,c3,c1,c2);
614 $LD r6,`5*$BNSZ`(r4)
615 $UMULL r7,r5,r6
616 $UMULH r8,r5,r6
617
618 addc r11,r7,r11
619 adde r9,r8,r9
620 addze r10,r0
621
622 addc r11,r7,r11
623 adde r9,r8,r9
624 addze r10,r10
625 #sqr_add_c2(a,4,1,c3,c1,c2);
626 $LD r5,`1*$BNSZ`(r4)
627 $LD r6,`4*$BNSZ`(r4)
628 $UMULL r7,r5,r6
629 $UMULH r8,r5,r6
630
631 addc r11,r7,r11
632 adde r9,r8,r9
633 addze r10,r10
634
635 addc r11,r7,r11
636 adde r9,r8,r9
637 addze r10,r10
638 #sqr_add_c2(a,3,2,c3,c1,c2);
639 $LD r5,`2*$BNSZ`(r4)
640 $LD r6,`3*$BNSZ`(r4)
641 $UMULL r7,r5,r6
642 $UMULH r8,r5,r6
643
644 addc r11,r7,r11
645 adde r9,r8,r9
646 addze r10,r10
647
648 addc r11,r7,r11
649 adde r9,r8,r9
650 addze r10,r10
651 $ST r11,`5*$BNSZ`(r3) #r[5]=c3;
652 #sqr_add_c(a,3,c1,c2,c3);
653 $UMULL r7,r6,r6
654 $UMULH r8,r6,r6
655 addc r9,r7,r9
656 adde r10,r8,r10
657 addze r11,r0
658 #sqr_add_c2(a,4,2,c1,c2,c3);
659 $LD r6,`4*$BNSZ`(r4)
660 $UMULL r7,r5,r6
661 $UMULH r8,r5,r6
662
663 addc r9,r7,r9
664 adde r10,r8,r10
665 addze r11,r11
666
667 addc r9,r7,r9
668 adde r10,r8,r10
669 addze r11,r11
670 #sqr_add_c2(a,5,1,c1,c2,c3);
671 $LD r5,`1*$BNSZ`(r4)
672 $LD r6,`5*$BNSZ`(r4)
673 $UMULL r7,r5,r6
674 $UMULH r8,r5,r6
675
676 addc r9,r7,r9
677 adde r10,r8,r10
678 addze r11,r11
679
680 addc r9,r7,r9
681 adde r10,r8,r10
682 addze r11,r11
683 #sqr_add_c2(a,6,0,c1,c2,c3);
684 $LD r5,`0*$BNSZ`(r4)
685 $LD r6,`6*$BNSZ`(r4)
686 $UMULL r7,r5,r6
687 $UMULH r8,r5,r6
688 addc r9,r7,r9
689 adde r10,r8,r10
690 addze r11,r11
691 addc r9,r7,r9
692 adde r10,r8,r10
693 addze r11,r11
694 $ST r9,`6*$BNSZ`(r3) #r[6]=c1;
695 #sqr_add_c2(a,7,0,c2,c3,c1);
696 $LD r6,`7*$BNSZ`(r4)
697 $UMULL r7,r5,r6
698 $UMULH r8,r5,r6
699
700 addc r10,r7,r10
701 adde r11,r8,r11
702 addze r9,r0
703 addc r10,r7,r10
704 adde r11,r8,r11
705 addze r9,r9
706 #sqr_add_c2(a,6,1,c2,c3,c1);
707 $LD r5,`1*$BNSZ`(r4)
708 $LD r6,`6*$BNSZ`(r4)
709 $UMULL r7,r5,r6
710 $UMULH r8,r5,r6
711
712 addc r10,r7,r10
713 adde r11,r8,r11
714 addze r9,r9
715 addc r10,r7,r10
716 adde r11,r8,r11
717 addze r9,r9
718 #sqr_add_c2(a,5,2,c2,c3,c1);
719 $LD r5,`2*$BNSZ`(r4)
720 $LD r6,`5*$BNSZ`(r4)
721 $UMULL r7,r5,r6
722 $UMULH r8,r5,r6
723 addc r10,r7,r10
724 adde r11,r8,r11
725 addze r9,r9
726 addc r10,r7,r10
727 adde r11,r8,r11
728 addze r9,r9
729 #sqr_add_c2(a,4,3,c2,c3,c1);
730 $LD r5,`3*$BNSZ`(r4)
731 $LD r6,`4*$BNSZ`(r4)
732 $UMULL r7,r5,r6
733 $UMULH r8,r5,r6
734
735 addc r10,r7,r10
736 adde r11,r8,r11
737 addze r9,r9
738 addc r10,r7,r10
739 adde r11,r8,r11
740 addze r9,r9
741 $ST r10,`7*$BNSZ`(r3) #r[7]=c2;
742 #sqr_add_c(a,4,c3,c1,c2);
743 $UMULL r7,r6,r6
744 $UMULH r8,r6,r6
745 addc r11,r7,r11
746 adde r9,r8,r9
747 addze r10,r0
748 #sqr_add_c2(a,5,3,c3,c1,c2);
749 $LD r6,`5*$BNSZ`(r4)
750 $UMULL r7,r5,r6
751 $UMULH r8,r5,r6
752 addc r11,r7,r11
753 adde r9,r8,r9
754 addze r10,r10
755 addc r11,r7,r11
756 adde r9,r8,r9
757 addze r10,r10
758 #sqr_add_c2(a,6,2,c3,c1,c2);
759 $LD r5,`2*$BNSZ`(r4)
760 $LD r6,`6*$BNSZ`(r4)
761 $UMULL r7,r5,r6
762 $UMULH r8,r5,r6
763 addc r11,r7,r11
764 adde r9,r8,r9
765 addze r10,r10
766
767 addc r11,r7,r11
768 adde r9,r8,r9
769 addze r10,r10
770 #sqr_add_c2(a,7,1,c3,c1,c2);
771 $LD r5,`1*$BNSZ`(r4)
772 $LD r6,`7*$BNSZ`(r4)
773 $UMULL r7,r5,r6
774 $UMULH r8,r5,r6
775 addc r11,r7,r11
776 adde r9,r8,r9
777 addze r10,r10
778 addc r11,r7,r11
779 adde r9,r8,r9
780 addze r10,r10
781 $ST r11,`8*$BNSZ`(r3) #r[8]=c3;
782 #sqr_add_c2(a,7,2,c1,c2,c3);
783 $LD r5,`2*$BNSZ`(r4)
784 $UMULL r7,r5,r6
785 $UMULH r8,r5,r6
786
787 addc r9,r7,r9
788 adde r10,r8,r10
789 addze r11,r0
790 addc r9,r7,r9
791 adde r10,r8,r10
792 addze r11,r11
793 #sqr_add_c2(a,6,3,c1,c2,c3);
794 $LD r5,`3*$BNSZ`(r4)
795 $LD r6,`6*$BNSZ`(r4)
796 $UMULL r7,r5,r6
797 $UMULH r8,r5,r6
798 addc r9,r7,r9
799 adde r10,r8,r10
800 addze r11,r11
801 addc r9,r7,r9
802 adde r10,r8,r10
803 addze r11,r11
804 #sqr_add_c2(a,5,4,c1,c2,c3);
805 $LD r5,`4*$BNSZ`(r4)
806 $LD r6,`5*$BNSZ`(r4)
807 $UMULL r7,r5,r6
808 $UMULH r8,r5,r6
809 addc r9,r7,r9
810 adde r10,r8,r10
811 addze r11,r11
812 addc r9,r7,r9
813 adde r10,r8,r10
814 addze r11,r11
815 $ST r9,`9*$BNSZ`(r3) #r[9]=c1;
816 #sqr_add_c(a,5,c2,c3,c1);
817 $UMULL r7,r6,r6
818 $UMULH r8,r6,r6
819 addc r10,r7,r10
820 adde r11,r8,r11
821 addze r9,r0
822 #sqr_add_c2(a,6,4,c2,c3,c1);
823 $LD r6,`6*$BNSZ`(r4)
824 $UMULL r7,r5,r6
825 $UMULH r8,r5,r6
826 addc r10,r7,r10
827 adde r11,r8,r11
828 addze r9,r9
829 addc r10,r7,r10
830 adde r11,r8,r11
831 addze r9,r9
832 #sqr_add_c2(a,7,3,c2,c3,c1);
833 $LD r5,`3*$BNSZ`(r4)
834 $LD r6,`7*$BNSZ`(r4)
835 $UMULL r7,r5,r6
836 $UMULH r8,r5,r6
837 addc r10,r7,r10
838 adde r11,r8,r11
839 addze r9,r9
840 addc r10,r7,r10
841 adde r11,r8,r11
842 addze r9,r9
843 $ST r10,`10*$BNSZ`(r3) #r[10]=c2;
844 #sqr_add_c2(a,7,4,c3,c1,c2);
845 $LD r5,`4*$BNSZ`(r4)
846 $UMULL r7,r5,r6
847 $UMULH r8,r5,r6
848 addc r11,r7,r11
849 adde r9,r8,r9
850 addze r10,r0
851 addc r11,r7,r11
852 adde r9,r8,r9
853 addze r10,r10
854 #sqr_add_c2(a,6,5,c3,c1,c2);
855 $LD r5,`5*$BNSZ`(r4)
856 $LD r6,`6*$BNSZ`(r4)
857 $UMULL r7,r5,r6
858 $UMULH r8,r5,r6
859 addc r11,r7,r11
860 adde r9,r8,r9
861 addze r10,r10
862 addc r11,r7,r11
863 adde r9,r8,r9
864 addze r10,r10
865 $ST r11,`11*$BNSZ`(r3) #r[11]=c3;
866 #sqr_add_c(a,6,c1,c2,c3);
867 $UMULL r7,r6,r6
868 $UMULH r8,r6,r6
869 addc r9,r7,r9
870 adde r10,r8,r10
871 addze r11,r0
872 #sqr_add_c2(a,7,5,c1,c2,c3)
873 $LD r6,`7*$BNSZ`(r4)
874 $UMULL r7,r5,r6
875 $UMULH r8,r5,r6
876 addc r9,r7,r9
877 adde r10,r8,r10
878 addze r11,r11
879 addc r9,r7,r9
880 adde r10,r8,r10
881 addze r11,r11
882 $ST r9,`12*$BNSZ`(r3) #r[12]=c1;
883
884 #sqr_add_c2(a,7,6,c2,c3,c1)
885 $LD r5,`6*$BNSZ`(r4)
886 $UMULL r7,r5,r6
887 $UMULH r8,r5,r6
888 addc r10,r7,r10
889 adde r11,r8,r11
890 addze r9,r0
891 addc r10,r7,r10
892 adde r11,r8,r11
893 addze r9,r9
894 $ST r10,`13*$BNSZ`(r3) #r[13]=c2;
895 #sqr_add_c(a,7,c3,c1,c2);
896 $UMULL r7,r6,r6
897 $UMULH r8,r6,r6
898 addc r11,r7,r11
899 adde r9,r8,r9
900 $ST r11,`14*$BNSZ`(r3) #r[14]=c3;
901 $ST r9, `15*$BNSZ`(r3) #r[15]=c1;
902
903
904 bclr BO_ALWAYS,CR0_LT
905
906 .long 0x00000000
907
908#
909# NOTE: The following label name should be changed to
910# "bn_mul_comba4" i.e. remove the first dot
911# for the gcc compiler. This should be automatically
912# done in the build
913#
914
915.align 4
916.bn_mul_comba4:
917#
918# This is an optimized version of the bn_mul_comba4 routine.
919#
920# void bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
921# r3 contains r
922# r4 contains a
923# r5 contains b
924# r6, r7 are the 2 BN_ULONGs being multiplied.
925# r8, r9 are the results of the 32x32 giving 64 multiply.
926# r10, r11, r12 are the equivalents of c1, c2, and c3.
927#
928 xor r0,r0,r0 #r0=0. Used in addze below.
929 #mul_add_c(a[0],b[0],c1,c2,c3);
930 $LD r6,`0*$BNSZ`(r4)
931 $LD r7,`0*$BNSZ`(r5)
932 $UMULL r10,r6,r7
933 $UMULH r11,r6,r7
934 $ST r10,`0*$BNSZ`(r3) #r[0]=c1
935 #mul_add_c(a[0],b[1],c2,c3,c1);
936 $LD r7,`1*$BNSZ`(r5)
937 $UMULL r8,r6,r7
938 $UMULH r9,r6,r7
939 addc r11,r8,r11
940 adde r12,r9,r0
941 addze r10,r0
942 #mul_add_c(a[1],b[0],c2,c3,c1);
943 $LD r6, `1*$BNSZ`(r4)
944 $LD r7, `0*$BNSZ`(r5)
945 $UMULL r8,r6,r7
946 $UMULH r9,r6,r7
947 addc r11,r8,r11
948 adde r12,r9,r12
949 addze r10,r10
950 $ST r11,`1*$BNSZ`(r3) #r[1]=c2
951 #mul_add_c(a[2],b[0],c3,c1,c2);
952 $LD r6,`2*$BNSZ`(r4)
953 $UMULL r8,r6,r7
954 $UMULH r9,r6,r7
955 addc r12,r8,r12
956 adde r10,r9,r10
957 addze r11,r0
958 #mul_add_c(a[1],b[1],c3,c1,c2);
959 $LD r6,`1*$BNSZ`(r4)
960 $LD r7,`1*$BNSZ`(r5)
961 $UMULL r8,r6,r7
962 $UMULH r9,r6,r7
963 addc r12,r8,r12
964 adde r10,r9,r10
965 addze r11,r11
966 #mul_add_c(a[0],b[2],c3,c1,c2);
967 $LD r6,`0*$BNSZ`(r4)
968 $LD r7,`2*$BNSZ`(r5)
969 $UMULL r8,r6,r7
970 $UMULH r9,r6,r7
971 addc r12,r8,r12
972 adde r10,r9,r10
973 addze r11,r11
974 $ST r12,`2*$BNSZ`(r3) #r[2]=c3
975 #mul_add_c(a[0],b[3],c1,c2,c3);
976 $LD r7,`3*$BNSZ`(r5)
977 $UMULL r8,r6,r7
978 $UMULH r9,r6,r7
979 addc r10,r8,r10
980 adde r11,r9,r11
981 addze r12,r0
982 #mul_add_c(a[1],b[2],c1,c2,c3);
983 $LD r6,`1*$BNSZ`(r4)
984 $LD r7,`2*$BNSZ`(r5)
985 $UMULL r8,r6,r7
986 $UMULH r9,r6,r7
987 addc r10,r8,r10
988 adde r11,r9,r11
989 addze r12,r12
990 #mul_add_c(a[2],b[1],c1,c2,c3);
991 $LD r6,`2*$BNSZ`(r4)
992 $LD r7,`1*$BNSZ`(r5)
993 $UMULL r8,r6,r7
994 $UMULH r9,r6,r7
995 addc r10,r8,r10
996 adde r11,r9,r11
997 addze r12,r12
998 #mul_add_c(a[3],b[0],c1,c2,c3);
999 $LD r6,`3*$BNSZ`(r4)
1000 $LD r7,`0*$BNSZ`(r5)
1001 $UMULL r8,r6,r7
1002 $UMULH r9,r6,r7
1003 addc r10,r8,r10
1004 adde r11,r9,r11
1005 addze r12,r12
1006 $ST r10,`3*$BNSZ`(r3) #r[3]=c1
1007 #mul_add_c(a[3],b[1],c2,c3,c1);
1008 $LD r7,`1*$BNSZ`(r5)
1009 $UMULL r8,r6,r7
1010 $UMULH r9,r6,r7
1011 addc r11,r8,r11
1012 adde r12,r9,r12
1013 addze r10,r0
1014 #mul_add_c(a[2],b[2],c2,c3,c1);
1015 $LD r6,`2*$BNSZ`(r4)
1016 $LD r7,`2*$BNSZ`(r5)
1017 $UMULL r8,r6,r7
1018 $UMULH r9,r6,r7
1019 addc r11,r8,r11
1020 adde r12,r9,r12
1021 addze r10,r10
1022 #mul_add_c(a[1],b[3],c2,c3,c1);
1023 $LD r6,`1*$BNSZ`(r4)
1024 $LD r7,`3*$BNSZ`(r5)
1025 $UMULL r8,r6,r7
1026 $UMULH r9,r6,r7
1027 addc r11,r8,r11
1028 adde r12,r9,r12
1029 addze r10,r10
1030 $ST r11,`4*$BNSZ`(r3) #r[4]=c2
1031 #mul_add_c(a[2],b[3],c3,c1,c2);
1032 $LD r6,`2*$BNSZ`(r4)
1033 $UMULL r8,r6,r7
1034 $UMULH r9,r6,r7
1035 addc r12,r8,r12
1036 adde r10,r9,r10
1037 addze r11,r0
1038 #mul_add_c(a[3],b[2],c3,c1,c2);
1039 $LD r6,`3*$BNSZ`(r4)
1040 $LD r7,`2*$BNSZ`(r4)
1041 $UMULL r8,r6,r7
1042 $UMULH r9,r6,r7
1043 addc r12,r8,r12
1044 adde r10,r9,r10
1045 addze r11,r11
1046 $ST r12,`5*$BNSZ`(r3) #r[5]=c3
1047 #mul_add_c(a[3],b[3],c1,c2,c3);
1048 $LD r7,`3*$BNSZ`(r5)
1049 $UMULL r8,r6,r7
1050 $UMULH r9,r6,r7
1051 addc r10,r8,r10
1052 adde r11,r9,r11
1053
1054 $ST r10,`6*$BNSZ`(r3) #r[6]=c1
1055 $ST r11,`7*$BNSZ`(r3) #r[7]=c2
1056 bclr BO_ALWAYS,CR0_LT
1057 .long 0x00000000
1058
1059#
1060# NOTE: The following label name should be changed to
1061# "bn_mul_comba8" i.e. remove the first dot
1062# for the gcc compiler. This should be automatically
1063# done in the build
1064#
1065
1066.align 4
1067.bn_mul_comba8:
1068#
1069# Optimized version of the bn_mul_comba8 routine.
1070#
1071# void bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
1072# r3 contains r
1073# r4 contains a
1074# r5 contains b
1075# r6, r7 are the 2 BN_ULONGs being multiplied.
1076# r8, r9 are the results of the 32x32 giving 64 multiply.
1077# r10, r11, r12 are the equivalents of c1, c2, and c3.
1078#
1079 xor r0,r0,r0 #r0=0. Used in addze below.
1080
1081 #mul_add_c(a[0],b[0],c1,c2,c3);
1082 $LD r6,`0*$BNSZ`(r4) #a[0]
1083 $LD r7,`0*$BNSZ`(r5) #b[0]
1084 $UMULL r10,r6,r7
1085 $UMULH r11,r6,r7
1086 $ST r10,`0*$BNSZ`(r3) #r[0]=c1;
1087 #mul_add_c(a[0],b[1],c2,c3,c1);
1088 $LD r7,`1*$BNSZ`(r5)
1089 $UMULL r8,r6,r7
1090 $UMULH r9,r6,r7
1091 addc r11,r11,r8
1092 addze r12,r9 # since we didnt set r12 to zero before.
1093 addze r10,r0
1094 #mul_add_c(a[1],b[0],c2,c3,c1);
1095 $LD r6,`1*$BNSZ`(r4)
1096 $LD r7,`0*$BNSZ`(r5)
1097 $UMULL r8,r6,r7
1098 $UMULH r9,r6,r7
1099 addc r11,r11,r8
1100 adde r12,r12,r9
1101 addze r10,r10
1102 $ST r11,`1*$BNSZ`(r3) #r[1]=c2;
1103 #mul_add_c(a[2],b[0],c3,c1,c2);
1104 $LD r6,`2*$BNSZ`(r4)
1105 $UMULL r8,r6,r7
1106 $UMULH r9,r6,r7
1107 addc r12,r12,r8
1108 adde r10,r10,r9
1109 addze r11,r0
1110 #mul_add_c(a[1],b[1],c3,c1,c2);
1111 $LD r6,`1*$BNSZ`(r4)
1112 $LD r7,`1*$BNSZ`(r5)
1113 $UMULL r8,r6,r7
1114 $UMULH r9,r6,r7
1115 addc r12,r12,r8
1116 adde r10,r10,r9
1117 addze r11,r11
1118 #mul_add_c(a[0],b[2],c3,c1,c2);
1119 $LD r6,`0*$BNSZ`(r4)
1120 $LD r7,`2*$BNSZ`(r5)
1121 $UMULL r8,r6,r7
1122 $UMULH r9,r6,r7
1123 addc r12,r12,r8
1124 adde r10,r10,r9
1125 addze r11,r11
1126 $ST r12,`2*$BNSZ`(r3) #r[2]=c3;
1127 #mul_add_c(a[0],b[3],c1,c2,c3);
1128 $LD r7,`3*$BNSZ`(r5)
1129 $UMULL r8,r6,r7
1130 $UMULH r9,r6,r7
1131 addc r10,r10,r8
1132 adde r11,r11,r9
1133 addze r12,r0
1134 #mul_add_c(a[1],b[2],c1,c2,c3);
1135 $LD r6,`1*$BNSZ`(r4)
1136 $LD r7,`2*$BNSZ`(r5)
1137 $UMULL r8,r6,r7
1138 $UMULH r9,r6,r7
1139 addc r10,r10,r8
1140 adde r11,r11,r9
1141 addze r12,r12
1142
1143 #mul_add_c(a[2],b[1],c1,c2,c3);
1144 $LD r6,`2*$BNSZ`(r4)
1145 $LD r7,`1*$BNSZ`(r5)
1146 $UMULL r8,r6,r7
1147 $UMULH r9,r6,r7
1148 addc r10,r10,r8
1149 adde r11,r11,r9
1150 addze r12,r12
1151 #mul_add_c(a[3],b[0],c1,c2,c3);
1152 $LD r6,`3*$BNSZ`(r4)
1153 $LD r7,`0*$BNSZ`(r5)
1154 $UMULL r8,r6,r7
1155 $UMULH r9,r6,r7
1156 addc r10,r10,r8
1157 adde r11,r11,r9
1158 addze r12,r12
1159 $ST r10,`3*$BNSZ`(r3) #r[3]=c1;
1160 #mul_add_c(a[4],b[0],c2,c3,c1);
1161 $LD r6,`4*$BNSZ`(r4)
1162 $UMULL r8,r6,r7
1163 $UMULH r9,r6,r7
1164 addc r11,r11,r8
1165 adde r12,r12,r9
1166 addze r10,r0
1167 #mul_add_c(a[3],b[1],c2,c3,c1);
1168 $LD r6,`3*$BNSZ`(r4)
1169 $LD r7,`1*$BNSZ`(r5)
1170 $UMULL r8,r6,r7
1171 $UMULH r9,r6,r7
1172 addc r11,r11,r8
1173 adde r12,r12,r9
1174 addze r10,r10
1175 #mul_add_c(a[2],b[2],c2,c3,c1);
1176 $LD r6,`2*$BNSZ`(r4)
1177 $LD r7,`2*$BNSZ`(r5)
1178 $UMULL r8,r6,r7
1179 $UMULH r9,r6,r7
1180 addc r11,r11,r8
1181 adde r12,r12,r9
1182 addze r10,r10
1183 #mul_add_c(a[1],b[3],c2,c3,c1);
1184 $LD r6,`1*$BNSZ`(r4)
1185 $LD r7,`3*$BNSZ`(r5)
1186 $UMULL r8,r6,r7
1187 $UMULH r9,r6,r7
1188 addc r11,r11,r8
1189 adde r12,r12,r9
1190 addze r10,r10
1191 #mul_add_c(a[0],b[4],c2,c3,c1);
1192 $LD r6,`0*$BNSZ`(r4)
1193 $LD r7,`4*$BNSZ`(r5)
1194 $UMULL r8,r6,r7
1195 $UMULH r9,r6,r7
1196 addc r11,r11,r8
1197 adde r12,r12,r9
1198 addze r10,r10
1199 $ST r11,`4*$BNSZ`(r3) #r[4]=c2;
1200 #mul_add_c(a[0],b[5],c3,c1,c2);
1201 $LD r7,`5*$BNSZ`(r5)
1202 $UMULL r8,r6,r7
1203 $UMULH r9,r6,r7
1204 addc r12,r12,r8
1205 adde r10,r10,r9
1206 addze r11,r0
1207 #mul_add_c(a[1],b[4],c3,c1,c2);
1208 $LD r6,`1*$BNSZ`(r4)
1209 $LD r7,`4*$BNSZ`(r5)
1210 $UMULL r8,r6,r7
1211 $UMULH r9,r6,r7
1212 addc r12,r12,r8
1213 adde r10,r10,r9
1214 addze r11,r11
1215 #mul_add_c(a[2],b[3],c3,c1,c2);
1216 $LD r6,`2*$BNSZ`(r4)
1217 $LD r7,`3*$BNSZ`(r5)
1218 $UMULL r8,r6,r7
1219 $UMULH r9,r6,r7
1220 addc r12,r12,r8
1221 adde r10,r10,r9
1222 addze r11,r11
1223 #mul_add_c(a[3],b[2],c3,c1,c2);
1224 $LD r6,`3*$BNSZ`(r4)
1225 $LD r7,`2*$BNSZ`(r5)
1226 $UMULL r8,r6,r7
1227 $UMULH r9,r6,r7
1228 addc r12,r12,r8
1229 adde r10,r10,r9
1230 addze r11,r11
1231 #mul_add_c(a[4],b[1],c3,c1,c2);
1232 $LD r6,`4*$BNSZ`(r4)
1233 $LD r7,`1*$BNSZ`(r5)
1234 $UMULL r8,r6,r7
1235 $UMULH r9,r6,r7
1236 addc r12,r12,r8
1237 adde r10,r10,r9
1238 addze r11,r11
1239 #mul_add_c(a[5],b[0],c3,c1,c2);
1240 $LD r6,`5*$BNSZ`(r4)
1241 $LD r7,`0*$BNSZ`(r5)
1242 $UMULL r8,r6,r7
1243 $UMULH r9,r6,r7
1244 addc r12,r12,r8
1245 adde r10,r10,r9
1246 addze r11,r11
1247 $ST r12,`5*$BNSZ`(r3) #r[5]=c3;
1248 #mul_add_c(a[6],b[0],c1,c2,c3);
1249 $LD r6,`6*$BNSZ`(r4)
1250 $UMULL r8,r6,r7
1251 $UMULH r9,r6,r7
1252 addc r10,r10,r8
1253 adde r11,r11,r9
1254 addze r12,r0
1255 #mul_add_c(a[5],b[1],c1,c2,c3);
1256 $LD r6,`5*$BNSZ`(r4)
1257 $LD r7,`1*$BNSZ`(r5)
1258 $UMULL r8,r6,r7
1259 $UMULH r9,r6,r7
1260 addc r10,r10,r8
1261 adde r11,r11,r9
1262 addze r12,r12
1263 #mul_add_c(a[4],b[2],c1,c2,c3);
1264 $LD r6,`4*$BNSZ`(r4)
1265 $LD r7,`2*$BNSZ`(r5)
1266 $UMULL r8,r6,r7
1267 $UMULH r9,r6,r7
1268 addc r10,r10,r8
1269 adde r11,r11,r9
1270 addze r12,r12
1271 #mul_add_c(a[3],b[3],c1,c2,c3);
1272 $LD r6,`3*$BNSZ`(r4)
1273 $LD r7,`3*$BNSZ`(r5)
1274 $UMULL r8,r6,r7
1275 $UMULH r9,r6,r7
1276 addc r10,r10,r8
1277 adde r11,r11,r9
1278 addze r12,r12
1279 #mul_add_c(a[2],b[4],c1,c2,c3);
1280 $LD r6,`2*$BNSZ`(r4)
1281 $LD r7,`4*$BNSZ`(r5)
1282 $UMULL r8,r6,r7
1283 $UMULH r9,r6,r7
1284 addc r10,r10,r8
1285 adde r11,r11,r9
1286 addze r12,r12
1287 #mul_add_c(a[1],b[5],c1,c2,c3);
1288 $LD r6,`1*$BNSZ`(r4)
1289 $LD r7,`5*$BNSZ`(r5)
1290 $UMULL r8,r6,r7
1291 $UMULH r9,r6,r7
1292 addc r10,r10,r8
1293 adde r11,r11,r9
1294 addze r12,r12
1295 #mul_add_c(a[0],b[6],c1,c2,c3);
1296 $LD r6,`0*$BNSZ`(r4)
1297 $LD r7,`6*$BNSZ`(r5)
1298 $UMULL r8,r6,r7
1299 $UMULH r9,r6,r7
1300 addc r10,r10,r8
1301 adde r11,r11,r9
1302 addze r12,r12
1303 $ST r10,`6*$BNSZ`(r3) #r[6]=c1;
1304 #mul_add_c(a[0],b[7],c2,c3,c1);
1305 $LD r7,`7*$BNSZ`(r5)
1306 $UMULL r8,r6,r7
1307 $UMULH r9,r6,r7
1308 addc r11,r11,r8
1309 adde r12,r12,r9
1310 addze r10,r0
1311 #mul_add_c(a[1],b[6],c2,c3,c1);
1312 $LD r6,`1*$BNSZ`(r4)
1313 $LD r7,`6*$BNSZ`(r5)
1314 $UMULL r8,r6,r7
1315 $UMULH r9,r6,r7
1316 addc r11,r11,r8
1317 adde r12,r12,r9
1318 addze r10,r10
1319 #mul_add_c(a[2],b[5],c2,c3,c1);
1320 $LD r6,`2*$BNSZ`(r4)
1321 $LD r7,`5*$BNSZ`(r5)
1322 $UMULL r8,r6,r7
1323 $UMULH r9,r6,r7
1324 addc r11,r11,r8
1325 adde r12,r12,r9
1326 addze r10,r10
1327 #mul_add_c(a[3],b[4],c2,c3,c1);
1328 $LD r6,`3*$BNSZ`(r4)
1329 $LD r7,`4*$BNSZ`(r5)
1330 $UMULL r8,r6,r7
1331 $UMULH r9,r6,r7
1332 addc r11,r11,r8
1333 adde r12,r12,r9
1334 addze r10,r10
1335 #mul_add_c(a[4],b[3],c2,c3,c1);
1336 $LD r6,`4*$BNSZ`(r4)
1337 $LD r7,`3*$BNSZ`(r5)
1338 $UMULL r8,r6,r7
1339 $UMULH r9,r6,r7
1340 addc r11,r11,r8
1341 adde r12,r12,r9
1342 addze r10,r10
1343 #mul_add_c(a[5],b[2],c2,c3,c1);
1344 $LD r6,`5*$BNSZ`(r4)
1345 $LD r7,`2*$BNSZ`(r5)
1346 $UMULL r8,r6,r7
1347 $UMULH r9,r6,r7
1348 addc r11,r11,r8
1349 adde r12,r12,r9
1350 addze r10,r10
1351 #mul_add_c(a[6],b[1],c2,c3,c1);
1352 $LD r6,`6*$BNSZ`(r4)
1353 $LD r7,`1*$BNSZ`(r5)
1354 $UMULL r8,r6,r7
1355 $UMULH r9,r6,r7
1356 addc r11,r11,r8
1357 adde r12,r12,r9
1358 addze r10,r10
1359 #mul_add_c(a[7],b[0],c2,c3,c1);
1360 $LD r6,`7*$BNSZ`(r4)
1361 $LD r7,`0*$BNSZ`(r5)
1362 $UMULL r8,r6,r7
1363 $UMULH r9,r6,r7
1364 addc r11,r11,r8
1365 adde r12,r12,r9
1366 addze r10,r10
1367 $ST r11,`7*$BNSZ`(r3) #r[7]=c2;
1368 #mul_add_c(a[7],b[1],c3,c1,c2);
1369 $LD r7,`1*$BNSZ`(r5)
1370 $UMULL r8,r6,r7
1371 $UMULH r9,r6,r7
1372 addc r12,r12,r8
1373 adde r10,r10,r9
1374 addze r11,r0
1375 #mul_add_c(a[6],b[2],c3,c1,c2);
1376 $LD r6,`6*$BNSZ`(r4)
1377 $LD r7,`2*$BNSZ`(r5)
1378 $UMULL r8,r6,r7
1379 $UMULH r9,r6,r7
1380 addc r12,r12,r8
1381 adde r10,r10,r9
1382 addze r11,r11
1383 #mul_add_c(a[5],b[3],c3,c1,c2);
1384 $LD r6,`5*$BNSZ`(r4)
1385 $LD r7,`3*$BNSZ`(r5)
1386 $UMULL r8,r6,r7
1387 $UMULH r9,r6,r7
1388 addc r12,r12,r8
1389 adde r10,r10,r9
1390 addze r11,r11
1391 #mul_add_c(a[4],b[4],c3,c1,c2);
1392 $LD r6,`4*$BNSZ`(r4)
1393 $LD r7,`4*$BNSZ`(r5)
1394 $UMULL r8,r6,r7
1395 $UMULH r9,r6,r7
1396 addc r12,r12,r8
1397 adde r10,r10,r9
1398 addze r11,r11
1399 #mul_add_c(a[3],b[5],c3,c1,c2);
1400 $LD r6,`3*$BNSZ`(r4)
1401 $LD r7,`5*$BNSZ`(r5)
1402 $UMULL r8,r6,r7
1403 $UMULH r9,r6,r7
1404 addc r12,r12,r8
1405 adde r10,r10,r9
1406 addze r11,r11
1407 #mul_add_c(a[2],b[6],c3,c1,c2);
1408 $LD r6,`2*$BNSZ`(r4)
1409 $LD r7,`6*$BNSZ`(r5)
1410 $UMULL r8,r6,r7
1411 $UMULH r9,r6,r7
1412 addc r12,r12,r8
1413 adde r10,r10,r9
1414 addze r11,r11
1415 #mul_add_c(a[1],b[7],c3,c1,c2);
1416 $LD r6,`1*$BNSZ`(r4)
1417 $LD r7,`7*$BNSZ`(r5)
1418 $UMULL r8,r6,r7
1419 $UMULH r9,r6,r7
1420 addc r12,r12,r8
1421 adde r10,r10,r9
1422 addze r11,r11
1423 $ST r12,`8*$BNSZ`(r3) #r[8]=c3;
1424 #mul_add_c(a[2],b[7],c1,c2,c3);
1425 $LD r6,`2*$BNSZ`(r4)
1426 $UMULL r8,r6,r7
1427 $UMULH r9,r6,r7
1428 addc r10,r10,r8
1429 adde r11,r11,r9
1430 addze r12,r0
1431 #mul_add_c(a[3],b[6],c1,c2,c3);
1432 $LD r6,`3*$BNSZ`(r4)
1433 $LD r7,`6*$BNSZ`(r5)
1434 $UMULL r8,r6,r7
1435 $UMULH r9,r6,r7
1436 addc r10,r10,r8
1437 adde r11,r11,r9
1438 addze r12,r12
1439 #mul_add_c(a[4],b[5],c1,c2,c3);
1440 $LD r6,`4*$BNSZ`(r4)
1441 $LD r7,`5*$BNSZ`(r5)
1442 $UMULL r8,r6,r7
1443 $UMULH r9,r6,r7
1444 addc r10,r10,r8
1445 adde r11,r11,r9
1446 addze r12,r12
1447 #mul_add_c(a[5],b[4],c1,c2,c3);
1448 $LD r6,`5*$BNSZ`(r4)
1449 $LD r7,`4*$BNSZ`(r5)
1450 $UMULL r8,r6,r7
1451 $UMULH r9,r6,r7
1452 addc r10,r10,r8
1453 adde r11,r11,r9
1454 addze r12,r12
1455 #mul_add_c(a[6],b[3],c1,c2,c3);
1456 $LD r6,`6*$BNSZ`(r4)
1457 $LD r7,`3*$BNSZ`(r5)
1458 $UMULL r8,r6,r7
1459 $UMULH r9,r6,r7
1460 addc r10,r10,r8
1461 adde r11,r11,r9
1462 addze r12,r12
1463 #mul_add_c(a[7],b[2],c1,c2,c3);
1464 $LD r6,`7*$BNSZ`(r4)
1465 $LD r7,`2*$BNSZ`(r5)
1466 $UMULL r8,r6,r7
1467 $UMULH r9,r6,r7
1468 addc r10,r10,r8
1469 adde r11,r11,r9
1470 addze r12,r12
1471 $ST r10,`9*$BNSZ`(r3) #r[9]=c1;
1472 #mul_add_c(a[7],b[3],c2,c3,c1);
1473 $LD r7,`3*$BNSZ`(r5)
1474 $UMULL r8,r6,r7
1475 $UMULH r9,r6,r7
1476 addc r11,r11,r8
1477 adde r12,r12,r9
1478 addze r10,r0
1479 #mul_add_c(a[6],b[4],c2,c3,c1);
1480 $LD r6,`6*$BNSZ`(r4)
1481 $LD r7,`4*$BNSZ`(r5)
1482 $UMULL r8,r6,r7
1483 $UMULH r9,r6,r7
1484 addc r11,r11,r8
1485 adde r12,r12,r9
1486 addze r10,r10
1487 #mul_add_c(a[5],b[5],c2,c3,c1);
1488 $LD r6,`5*$BNSZ`(r4)
1489 $LD r7,`5*$BNSZ`(r5)
1490 $UMULL r8,r6,r7
1491 $UMULH r9,r6,r7
1492 addc r11,r11,r8
1493 adde r12,r12,r9
1494 addze r10,r10
1495 #mul_add_c(a[4],b[6],c2,c3,c1);
1496 $LD r6,`4*$BNSZ`(r4)
1497 $LD r7,`6*$BNSZ`(r5)
1498 $UMULL r8,r6,r7
1499 $UMULH r9,r6,r7
1500 addc r11,r11,r8
1501 adde r12,r12,r9
1502 addze r10,r10
1503 #mul_add_c(a[3],b[7],c2,c3,c1);
1504 $LD r6,`3*$BNSZ`(r4)
1505 $LD r7,`7*$BNSZ`(r5)
1506 $UMULL r8,r6,r7
1507 $UMULH r9,r6,r7
1508 addc r11,r11,r8
1509 adde r12,r12,r9
1510 addze r10,r10
1511 $ST r11,`10*$BNSZ`(r3) #r[10]=c2;
1512 #mul_add_c(a[4],b[7],c3,c1,c2);
1513 $LD r6,`4*$BNSZ`(r4)
1514 $UMULL r8,r6,r7
1515 $UMULH r9,r6,r7
1516 addc r12,r12,r8
1517 adde r10,r10,r9
1518 addze r11,r0
1519 #mul_add_c(a[5],b[6],c3,c1,c2);
1520 $LD r6,`5*$BNSZ`(r4)
1521 $LD r7,`6*$BNSZ`(r5)
1522 $UMULL r8,r6,r7
1523 $UMULH r9,r6,r7
1524 addc r12,r12,r8
1525 adde r10,r10,r9
1526 addze r11,r11
1527 #mul_add_c(a[6],b[5],c3,c1,c2);
1528 $LD r6,`6*$BNSZ`(r4)
1529 $LD r7,`5*$BNSZ`(r5)
1530 $UMULL r8,r6,r7
1531 $UMULH r9,r6,r7
1532 addc r12,r12,r8
1533 adde r10,r10,r9
1534 addze r11,r11
1535 #mul_add_c(a[7],b[4],c3,c1,c2);
1536 $LD r6,`7*$BNSZ`(r4)
1537 $LD r7,`4*$BNSZ`(r5)
1538 $UMULL r8,r6,r7
1539 $UMULH r9,r6,r7
1540 addc r12,r12,r8
1541 adde r10,r10,r9
1542 addze r11,r11
1543 $ST r12,`11*$BNSZ`(r3) #r[11]=c3;
1544 #mul_add_c(a[7],b[5],c1,c2,c3);
1545 $LD r7,`5*$BNSZ`(r5)
1546 $UMULL r8,r6,r7
1547 $UMULH r9,r6,r7
1548 addc r10,r10,r8
1549 adde r11,r11,r9
1550 addze r12,r0
1551 #mul_add_c(a[6],b[6],c1,c2,c3);
1552 $LD r6,`6*$BNSZ`(r4)
1553 $LD r7,`6*$BNSZ`(r5)
1554 $UMULL r8,r6,r7
1555 $UMULH r9,r6,r7
1556 addc r10,r10,r8
1557 adde r11,r11,r9
1558 addze r12,r12
1559 #mul_add_c(a[5],b[7],c1,c2,c3);
1560 $LD r6,`5*$BNSZ`(r4)
1561 $LD r7,`7*$BNSZ`(r5)
1562 $UMULL r8,r6,r7
1563 $UMULH r9,r6,r7
1564 addc r10,r10,r8
1565 adde r11,r11,r9
1566 addze r12,r12
1567 $ST r10,`12*$BNSZ`(r3) #r[12]=c1;
1568 #mul_add_c(a[6],b[7],c2,c3,c1);
1569 $LD r6,`6*$BNSZ`(r4)
1570 $UMULL r8,r6,r7
1571 $UMULH r9,r6,r7
1572 addc r11,r11,r8
1573 adde r12,r12,r9
1574 addze r10,r0
1575 #mul_add_c(a[7],b[6],c2,c3,c1);
1576 $LD r6,`7*$BNSZ`(r4)
1577 $LD r7,`6*$BNSZ`(r5)
1578 $UMULL r8,r6,r7
1579 $UMULH r9,r6,r7
1580 addc r11,r11,r8
1581 adde r12,r12,r9
1582 addze r10,r10
1583 $ST r11,`13*$BNSZ`(r3) #r[13]=c2;
1584 #mul_add_c(a[7],b[7],c3,c1,c2);
1585 $LD r7,`7*$BNSZ`(r5)
1586 $UMULL r8,r6,r7
1587 $UMULH r9,r6,r7
1588 addc r12,r12,r8
1589 adde r10,r10,r9
1590 $ST r12,`14*$BNSZ`(r3) #r[14]=c3;
1591 $ST r10,`15*$BNSZ`(r3) #r[15]=c1;
1592 bclr BO_ALWAYS,CR0_LT
1593 .long 0x00000000
1594
1595#
1596# NOTE: The following label name should be changed to
1597# "bn_sub_words" i.e. remove the first dot
1598# for the gcc compiler. This should be automatically
1599# done in the build
1600#
1601#
1602.align 4
1603.bn_sub_words:
1604#
1605# Handcoded version of bn_sub_words
1606#
1607#BN_ULONG bn_sub_words(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n)
1608#
1609# r3 = r
1610# r4 = a
1611# r5 = b
1612# r6 = n
1613#
1614# Note: No loop unrolling done since this is not a performance
1615# critical loop.
1616
1617 xor r0,r0,r0 #set r0 = 0
1618#
1619# check for r6 = 0 AND set carry bit.
1620#
1621 subfc. r7,r0,r6 # If r6 is 0 then result is 0.
1622 # if r6 > 0 then result !=0
1623 # In either case carry bit is set.
1624 bc BO_IF,CR0_EQ,Lppcasm_sub_adios
1625 addi r4,r4,-$BNSZ
1626 addi r3,r3,-$BNSZ
1627 addi r5,r5,-$BNSZ
1628 mtctr r6
1629Lppcasm_sub_mainloop:
1630 $LDU r7,$BNSZ(r4)
1631 $LDU r8,$BNSZ(r5)
1632 subfe r6,r8,r7 # r6 = r7+carry bit + onescomplement(r8)
1633 # if carry = 1 this is r7-r8. Else it
1634 # is r7-r8 -1 as we need.
1635 $STU r6,$BNSZ(r3)
1636 bc BO_dCTR_NZERO,CR0_EQ,Lppcasm_sub_mainloop
1637Lppcasm_sub_adios:
1638 subfze r3,r0 # if carry bit is set then r3 = 0 else -1
1639 andi. r3,r3,1 # keep only last bit.
1640 bclr BO_ALWAYS,CR0_LT
1641 .long 0x00000000
1642
1643
1644#
1645# NOTE: The following label name should be changed to
1646# "bn_add_words" i.e. remove the first dot
1647# for the gcc compiler. This should be automatically
1648# done in the build
1649#
1650
1651.align 4
1652.bn_add_words:
1653#
1654# Handcoded version of bn_add_words
1655#
1656#BN_ULONG bn_add_words(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n)
1657#
1658# r3 = r
1659# r4 = a
1660# r5 = b
1661# r6 = n
1662#
1663# Note: No loop unrolling done since this is not a performance
1664# critical loop.
1665
1666 xor r0,r0,r0
1667#
1668# check for r6 = 0. Is this needed?
1669#
1670 addic. r6,r6,0 #test r6 and clear carry bit.
1671 bc BO_IF,CR0_EQ,Lppcasm_add_adios
1672 addi r4,r4,-$BNSZ
1673 addi r3,r3,-$BNSZ
1674 addi r5,r5,-$BNSZ
1675 mtctr r6
1676Lppcasm_add_mainloop:
1677 $LDU r7,$BNSZ(r4)
1678 $LDU r8,$BNSZ(r5)
1679 adde r8,r7,r8
1680 $STU r8,$BNSZ(r3)
1681 bc BO_dCTR_NZERO,CR0_EQ,Lppcasm_add_mainloop
1682Lppcasm_add_adios:
1683 addze r3,r0 #return carry bit.
1684 bclr BO_ALWAYS,CR0_LT
1685 .long 0x00000000
1686
1687#
1688# NOTE: The following label name should be changed to
1689# "bn_div_words" i.e. remove the first dot
1690# for the gcc compiler. This should be automatically
1691# done in the build
1692#
1693
1694.align 4
1695.bn_div_words:
1696#
1697# This is a cleaned up version of code generated by
1698# the AIX compiler. The only optimization is to use
1699# the PPC instruction to count leading zeros instead
1700# of call to num_bits_word. Since this was compiled
1701# only at level -O2 we can possibly squeeze it more?
1702#
1703# r3 = h
1704# r4 = l
1705# r5 = d
1706
1707 $UCMPI 0,r5,0 # compare r5 and 0
1708 bc BO_IF_NOT,CR0_EQ,Lppcasm_div1 # proceed if d!=0
1709 li r3,-1 # d=0 return -1
1710 bclr BO_ALWAYS,CR0_LT
1711Lppcasm_div1:
1712 xor r0,r0,r0 #r0=0
1713 $COUNTZ r7,r5 #r7 = num leading 0s in d.
1714 subfic r8,r7,$BITS #r8 = BN_num_bits_word(d)
1715 cmpi 0,0,r8,$BITS #
1716 bc BO_IF,CR0_EQ,Lppcasm_div2 #proceed if (r8==$BITS)
1717 li r9,1 # r9=1
1718 $SHL r10,r9,r8 # r9<<=r8
1719 $UCMP 0,r3,r10 #
1720 bc BO_IF,CR0_GT,Lppcasm_div2 #or if (h > (1<<r8))
1721 $UDIV r3,r3,r0 #if not assert(0) divide by 0!
1722 #that's how we signal overflow
1723 bclr BO_ALWAYS,CR0_LT #return. NEVER REACHED.
1724Lppcasm_div2:
1725 $UCMP 0,r3,r5 #h>=d?
1726 bc BO_IF,CR0_LT,Lppcasm_div3 #goto Lppcasm_div3 if not
1727 subf r3,r5,r3 #h-=d ;
1728Lppcasm_div3: #r7 = BN_BITS2-i. so r7=i
1729 cmpi 0,0,r7,0 # is (i == 0)?
1730 bc BO_IF,CR0_EQ,Lppcasm_div4
1731 $SHL r3,r3,r7 # h = (h<< i)
1732 $SHR r8,r4,r8 # r8 = (l >> BN_BITS2 -i)
1733 $SHL r5,r5,r7 # d<<=i
1734 or r3,r3,r8 # h = (h<<i)|(l>>(BN_BITS2-i))
1735 $SHL r4,r4,r7 # l <<=i
1736Lppcasm_div4:
1737 $SHRI r9,r5,`$BITS/2` # r9 = dh
1738 # dl will be computed when needed
1739 # as it saves registers.
1740 li r6,2 #r6=2
1741 mtctr r6 #counter will be in count.
1742Lppcasm_divouterloop:
1743 $SHRI r8,r3,`$BITS/2` #r8 = (h>>BN_BITS4)
1744 $SHRI r11,r4,`$BITS/2` #r11= (l&BN_MASK2h)>>BN_BITS4
1745 # compute here for innerloop.
1746 $UCMP 0,r8,r9 # is (h>>BN_BITS4)==dh
1747 bc BO_IF_NOT,CR0_EQ,Lppcasm_div5 # goto Lppcasm_div5 if not
1748
1749 li r8,-1
1750 $CLRU r8,r8,`$BITS/2` #q = BN_MASK2l
1751 b Lppcasm_div6
1752Lppcasm_div5:
1753 $UDIV r8,r3,r9 #q = h/dh
1754Lppcasm_div6:
1755 $UMULL r12,r9,r8 #th = q*dh
1756 $CLRU r10,r5,`$BITS/2` #r10=dl
1757 $UMULL r6,r8,r10 #tl = q*dl
1758
1759Lppcasm_divinnerloop:
1760 subf r10,r12,r3 #t = h -th
1761 $SHRI r7,r10,`$BITS/2` #r7= (t &BN_MASK2H), sort of...
1762 addic. r7,r7,0 #test if r7 == 0. used below.
1763 # now want to compute
1764 # r7 = (t<<BN_BITS4)|((l&BN_MASK2h)>>BN_BITS4)
1765 # the following 2 instructions do that
1766 $SHLI r7,r10,`$BITS/2` # r7 = (t<<BN_BITS4)
1767 or r7,r7,r11 # r7|=((l&BN_MASK2h)>>BN_BITS4)
1768 $UCMP 1,r6,r7 # compare (tl <= r7)
1769 bc BO_IF_NOT,CR0_EQ,Lppcasm_divinnerexit
1770 bc BO_IF_NOT,CR1_FEX,Lppcasm_divinnerexit
1771 addi r8,r8,-1 #q--
1772 subf r12,r9,r12 #th -=dh
1773 $CLRU r10,r5,`$BITS/2` #r10=dl. t is no longer needed in loop.
1774 subf r6,r10,r6 #tl -=dl
1775 b Lppcasm_divinnerloop
1776Lppcasm_divinnerexit:
1777 $SHRI r10,r6,`$BITS/2` #t=(tl>>BN_BITS4)
1778 $SHLI r11,r6,`$BITS/2` #tl=(tl<<BN_BITS4)&BN_MASK2h;
1779 $UCMP 1,r4,r11 # compare l and tl
1780 add r12,r12,r10 # th+=t
1781 bc BO_IF_NOT,CR1_FX,Lppcasm_div7 # if (l>=tl) goto Lppcasm_div7
1782 addi r12,r12,1 # th++
1783Lppcasm_div7:
1784 subf r11,r11,r4 #r11=l-tl
1785 $UCMP 1,r3,r12 #compare h and th
1786 bc BO_IF_NOT,CR1_FX,Lppcasm_div8 #if (h>=th) goto Lppcasm_div8
1787 addi r8,r8,-1 # q--
1788 add r3,r5,r3 # h+=d
1789Lppcasm_div8:
1790 subf r12,r12,r3 #r12 = h-th
1791 $SHLI r4,r11,`$BITS/2` #l=(l&BN_MASK2l)<<BN_BITS4
1792 # want to compute
1793 # h = ((h<<BN_BITS4)|(l>>BN_BITS4))&BN_MASK2
1794 # the following 2 instructions will do this.
1795 $INSR r11,r12,`$BITS/2`,`$BITS/2` # r11 is the value we want rotated $BITS/2.
1796 $ROTL r3,r11,`$BITS/2` # rotate by $BITS/2 and store in r3
1797 bc BO_dCTR_ZERO,CR0_EQ,Lppcasm_div9#if (count==0) break ;
1798 $SHLI r0,r8,`$BITS/2` #ret =q<<BN_BITS4
1799 b Lppcasm_divouterloop
1800Lppcasm_div9:
1801 or r3,r8,r0
1802 bclr BO_ALWAYS,CR0_LT
1803 .long 0x00000000
1804
1805#
1806# NOTE: The following label name should be changed to
1807# "bn_sqr_words" i.e. remove the first dot
1808# for the gcc compiler. This should be automatically
1809# done in the build
1810#
1811.align 4
1812.bn_sqr_words:
1813#
1814# Optimized version of bn_sqr_words
1815#
1816# void bn_sqr_words(BN_ULONG *r, BN_ULONG *a, int n)
1817#
1818# r3 = r
1819# r4 = a
1820# r5 = n
1821#
1822# r6 = a[i].
1823# r7,r8 = product.
1824#
1825# No unrolling done here. Not performance critical.
1826
1827 addic. r5,r5,0 #test r5.
1828 bc BO_IF,CR0_EQ,Lppcasm_sqr_adios
1829 addi r4,r4,-$BNSZ
1830 addi r3,r3,-$BNSZ
1831 mtctr r5
1832Lppcasm_sqr_mainloop:
1833 #sqr(r[0],r[1],a[0]);
1834 $LDU r6,$BNSZ(r4)
1835 $UMULL r7,r6,r6
1836 $UMULH r8,r6,r6
1837 $STU r7,$BNSZ(r3)
1838 $STU r8,$BNSZ(r3)
1839 bc BO_dCTR_NZERO,CR0_EQ,Lppcasm_sqr_mainloop
1840Lppcasm_sqr_adios:
1841 bclr BO_ALWAYS,CR0_LT
1842 .long 0x00000000
1843
1844
1845#
1846# NOTE: The following label name should be changed to
1847# "bn_mul_words" i.e. remove the first dot
1848# for the gcc compiler. This should be automatically
1849# done in the build
1850#
1851
1852.align 4
1853.bn_mul_words:
1854#
1855# BN_ULONG bn_mul_words(BN_ULONG *rp, BN_ULONG *ap, int num, BN_ULONG w)
1856#
1857# r3 = rp
1858# r4 = ap
1859# r5 = num
1860# r6 = w
1861 xor r0,r0,r0
1862 xor r12,r12,r12 # used for carry
1863 rlwinm. r7,r5,30,2,31 # num >> 2
1864 bc BO_IF,CR0_EQ,Lppcasm_mw_REM
1865 mtctr r7
1866Lppcasm_mw_LOOP:
1867 #mul(rp[0],ap[0],w,c1);
1868 $LD r8,`0*$BNSZ`(r4)
1869 $UMULL r9,r6,r8
1870 $UMULH r10,r6,r8
1871 addc r9,r9,r12
1872 #addze r10,r10 #carry is NOT ignored.
1873 #will be taken care of
1874 #in second spin below
1875 #using adde.
1876 $ST r9,`0*$BNSZ`(r3)
1877 #mul(rp[1],ap[1],w,c1);
1878 $LD r8,`1*$BNSZ`(r4)
1879 $UMULL r11,r6,r8
1880 $UMULH r12,r6,r8
1881 adde r11,r11,r10
1882 #addze r12,r12
1883 $ST r11,`1*$BNSZ`(r3)
1884 #mul(rp[2],ap[2],w,c1);
1885 $LD r8,`2*$BNSZ`(r4)
1886 $UMULL r9,r6,r8
1887 $UMULH r10,r6,r8
1888 adde r9,r9,r12
1889 #addze r10,r10
1890 $ST r9,`2*$BNSZ`(r3)
1891 #mul_add(rp[3],ap[3],w,c1);
1892 $LD r8,`3*$BNSZ`(r4)
1893 $UMULL r11,r6,r8
1894 $UMULH r12,r6,r8
1895 adde r11,r11,r10
1896 addze r12,r12 #this spin we collect carry into
1897 #r12
1898 $ST r11,`3*$BNSZ`(r3)
1899
1900 addi r3,r3,`4*$BNSZ`
1901 addi r4,r4,`4*$BNSZ`
1902 bc BO_dCTR_NZERO,CR0_EQ,Lppcasm_mw_LOOP
1903
1904Lppcasm_mw_REM:
1905 andi. r5,r5,0x3
1906 bc BO_IF,CR0_EQ,Lppcasm_mw_OVER
1907 #mul(rp[0],ap[0],w,c1);
1908 $LD r8,`0*$BNSZ`(r4)
1909 $UMULL r9,r6,r8
1910 $UMULH r10,r6,r8
1911 addc r9,r9,r12
1912 addze r10,r10
1913 $ST r9,`0*$BNSZ`(r3)
1914 addi r12,r10,0
1915
1916 addi r5,r5,-1
1917 cmpli 0,0,r5,0
1918 bc BO_IF,CR0_EQ,Lppcasm_mw_OVER
1919
1920
1921 #mul(rp[1],ap[1],w,c1);
1922 $LD r8,`1*$BNSZ`(r4)
1923 $UMULL r9,r6,r8
1924 $UMULH r10,r6,r8
1925 addc r9,r9,r12
1926 addze r10,r10
1927 $ST r9,`1*$BNSZ`(r3)
1928 addi r12,r10,0
1929
1930 addi r5,r5,-1
1931 cmpli 0,0,r5,0
1932 bc BO_IF,CR0_EQ,Lppcasm_mw_OVER
1933
1934 #mul_add(rp[2],ap[2],w,c1);
1935 $LD r8,`2*$BNSZ`(r4)
1936 $UMULL r9,r6,r8
1937 $UMULH r10,r6,r8
1938 addc r9,r9,r12
1939 addze r10,r10
1940 $ST r9,`2*$BNSZ`(r3)
1941 addi r12,r10,0
1942
1943Lppcasm_mw_OVER:
1944 addi r3,r12,0
1945 bclr BO_ALWAYS,CR0_LT
1946 .long 0x00000000
1947
1948#
1949# NOTE: The following label name should be changed to
1950# "bn_mul_add_words" i.e. remove the first dot
1951# for the gcc compiler. This should be automatically
1952# done in the build
1953#
1954
1955.align 4
1956.bn_mul_add_words:
1957#
1958# BN_ULONG bn_mul_add_words(BN_ULONG *rp, BN_ULONG *ap, int num, BN_ULONG w)
1959#
1960# r3 = rp
1961# r4 = ap
1962# r5 = num
1963# r6 = w
1964#
1965# empirical evidence suggests that unrolled version performs best!!
1966#
1967 xor r0,r0,r0 #r0 = 0
1968 xor r12,r12,r12 #r12 = 0 . used for carry
1969 rlwinm. r7,r5,30,2,31 # num >> 2
1970 bc BO_IF,CR0_EQ,Lppcasm_maw_leftover # if (num < 4) go LPPCASM_maw_leftover
1971 mtctr r7
1972Lppcasm_maw_mainloop:
1973 #mul_add(rp[0],ap[0],w,c1);
1974 $LD r8,`0*$BNSZ`(r4)
1975 $LD r11,`0*$BNSZ`(r3)
1976 $UMULL r9,r6,r8
1977 $UMULH r10,r6,r8
1978 addc r9,r9,r12 #r12 is carry.
1979 addze r10,r10
1980 addc r9,r9,r11
1981 #addze r10,r10
1982 #the above instruction addze
1983 #is NOT needed. Carry will NOT
1984 #be ignored. It's not affected
1985 #by multiply and will be collected
1986 #in the next spin
1987 $ST r9,`0*$BNSZ`(r3)
1988
1989 #mul_add(rp[1],ap[1],w,c1);
1990 $LD r8,`1*$BNSZ`(r4)
1991 $LD r9,`1*$BNSZ`(r3)
1992 $UMULL r11,r6,r8
1993 $UMULH r12,r6,r8
1994 adde r11,r11,r10 #r10 is carry.
1995 addze r12,r12
1996 addc r11,r11,r9
1997 #addze r12,r12
1998 $ST r11,`1*$BNSZ`(r3)
1999
2000 #mul_add(rp[2],ap[2],w,c1);
2001 $LD r8,`2*$BNSZ`(r4)
2002 $UMULL r9,r6,r8
2003 $LD r11,`2*$BNSZ`(r3)
2004 $UMULH r10,r6,r8
2005 adde r9,r9,r12
2006 addze r10,r10
2007 addc r9,r9,r11
2008 #addze r10,r10
2009 $ST r9,`2*$BNSZ`(r3)
2010
2011 #mul_add(rp[3],ap[3],w,c1);
2012 $LD r8,`3*$BNSZ`(r4)
2013 $UMULL r11,r6,r8
2014 $LD r9,`3*$BNSZ`(r3)
2015 $UMULH r12,r6,r8
2016 adde r11,r11,r10
2017 addze r12,r12
2018 addc r11,r11,r9
2019 addze r12,r12
2020 $ST r11,`3*$BNSZ`(r3)
2021 addi r3,r3,`4*$BNSZ`
2022 addi r4,r4,`4*$BNSZ`
2023 bc BO_dCTR_NZERO,CR0_EQ,Lppcasm_maw_mainloop
2024
2025Lppcasm_maw_leftover:
2026 andi. r5,r5,0x3
2027 bc BO_IF,CR0_EQ,Lppcasm_maw_adios
2028 addi r3,r3,-$BNSZ
2029 addi r4,r4,-$BNSZ
2030 #mul_add(rp[0],ap[0],w,c1);
2031 mtctr r5
2032 $LDU r8,$BNSZ(r4)
2033 $UMULL r9,r6,r8
2034 $UMULH r10,r6,r8
2035 $LDU r11,$BNSZ(r3)
2036 addc r9,r9,r11
2037 addze r10,r10
2038 addc r9,r9,r12
2039 addze r12,r10
2040 $ST r9,0(r3)
2041
2042 bc BO_dCTR_ZERO,CR0_EQ,Lppcasm_maw_adios
2043 #mul_add(rp[1],ap[1],w,c1);
2044 $LDU r8,$BNSZ(r4)
2045 $UMULL r9,r6,r8
2046 $UMULH r10,r6,r8
2047 $LDU r11,$BNSZ(r3)
2048 addc r9,r9,r11
2049 addze r10,r10
2050 addc r9,r9,r12
2051 addze r12,r10
2052 $ST r9,0(r3)
2053
2054 bc BO_dCTR_ZERO,CR0_EQ,Lppcasm_maw_adios
2055 #mul_add(rp[2],ap[2],w,c1);
2056 $LDU r8,$BNSZ(r4)
2057 $UMULL r9,r6,r8
2058 $UMULH r10,r6,r8
2059 $LDU r11,$BNSZ(r3)
2060 addc r9,r9,r11
2061 addze r10,r10
2062 addc r9,r9,r12
2063 addze r12,r10
2064 $ST r9,0(r3)
2065
2066Lppcasm_maw_adios:
2067 addi r3,r12,0
2068 bclr BO_ALWAYS,CR0_LT
2069 .long 0x00000000
2070 .align 4
2071EOF
2072 $data =~ s/\`([^\`]*)\`/eval $1/gem;
2073
2074 # if some assembler chokes on some simplified mnemonic,
2075 # this is the spot to fix it up, e.g.:
2076 # GNU as doesn't seem to accept cmplw, 32-bit unsigned compare
2077 $data =~ s/^(\s*)cmplw(\s+)([^,]+),(.*)/$1cmpl$2$3,0,$4/gm;
2078 # assembler X doesn't accept li, load immediate value
2079 #$data =~ s/^(\s*)li(\s+)([^,]+),(.*)/$1addi$2$3,0,$4/gm;
2080 return($data);
2081}
diff --git a/src/lib/libssl/src/crypto/bn/asm/x86_64-gcc.c b/src/lib/libssl/src/crypto/bn/asm/x86_64-gcc.c
index 450e8e4322..7378344251 100644
--- a/src/lib/libssl/src/crypto/bn/asm/x86_64-gcc.c
+++ b/src/lib/libssl/src/crypto/bn/asm/x86_64-gcc.c
@@ -13,20 +13,42 @@
13 * A. Well, that's because this code is basically a quick-n-dirty 13 * A. Well, that's because this code is basically a quick-n-dirty
14 * proof-of-concept hack. As you can see it's implemented with 14 * proof-of-concept hack. As you can see it's implemented with
15 * inline assembler, which means that you're bound to GCC and that 15 * inline assembler, which means that you're bound to GCC and that
16 * there must be a room for fine-tuning. 16 * there might be enough room for further improvement.
17 * 17 *
18 * Q. Why inline assembler? 18 * Q. Why inline assembler?
19 * A. x86_64 features own ABI I'm not familiar with. Which is why 19 * A. x86_64 features own ABI which I'm not familiar with. This is
20 * I decided to let the compiler take care of subroutine 20 * why I decided to let the compiler take care of subroutine
21 * prologue/epilogue as well as register allocation. 21 * prologue/epilogue as well as register allocation. For reference.
22 * Win64 implements different ABI for AMD64, different from Linux.
22 * 23 *
23 * Q. How much faster does it get? 24 * Q. How much faster does it get?
24 * A. Unfortunately people sitting on x86_64 hardware are prohibited 25 * A. 'apps/openssl speed rsa dsa' output with no-asm:
25 * to disclose the performance numbers, so they (SuSE labs to be 26 *
26 * specific) wouldn't tell me. However! Very similar coding technique 27 * sign verify sign/s verify/s
27 * (reaching out for 128-bit result from 64x64-bit multiplication) 28 * rsa 512 bits 0.0006s 0.0001s 1683.8 18456.2
28 * results in >3 times performance improvement on MIPS and I see no 29 * rsa 1024 bits 0.0028s 0.0002s 356.0 6407.0
29 * reason why gain on x86_64 would be so much different:-) 30 * rsa 2048 bits 0.0172s 0.0005s 58.0 1957.8
31 * rsa 4096 bits 0.1155s 0.0018s 8.7 555.6
32 * sign verify sign/s verify/s
33 * dsa 512 bits 0.0005s 0.0006s 2100.8 1768.3
34 * dsa 1024 bits 0.0014s 0.0018s 692.3 559.2
35 * dsa 2048 bits 0.0049s 0.0061s 204.7 165.0
36 *
37 * 'apps/openssl speed rsa dsa' output with this module:
38 *
39 * sign verify sign/s verify/s
40 * rsa 512 bits 0.0004s 0.0000s 2767.1 33297.9
41 * rsa 1024 bits 0.0012s 0.0001s 867.4 14674.7
42 * rsa 2048 bits 0.0061s 0.0002s 164.0 5270.0
43 * rsa 4096 bits 0.0384s 0.0006s 26.1 1650.8
44 * sign verify sign/s verify/s
45 * dsa 512 bits 0.0002s 0.0003s 4442.2 3786.3
46 * dsa 1024 bits 0.0005s 0.0007s 1835.1 1497.4
47 * dsa 2048 bits 0.0016s 0.0020s 620.4 504.6
48 *
49 * For the reference. IA-32 assembler implementation performs
50 * very much like 64-bit code compiled with no-asm on the same
51 * machine.
30 */ 52 */
31 53
32#define BN_ULONG unsigned long 54#define BN_ULONG unsigned long
@@ -151,7 +173,7 @@ BN_ULONG bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d)
151} 173}
152 174
153BN_ULONG bn_add_words (BN_ULONG *rp, BN_ULONG *ap, BN_ULONG *bp,int n) 175BN_ULONG bn_add_words (BN_ULONG *rp, BN_ULONG *ap, BN_ULONG *bp,int n)
154{ BN_ULONG ret,i; 176{ BN_ULONG ret=0,i=0;
155 177
156 if (n <= 0) return 0; 178 if (n <= 0) return 0;
157 179
@@ -164,7 +186,7 @@ BN_ULONG bn_add_words (BN_ULONG *rp, BN_ULONG *ap, BN_ULONG *bp,int n)
164 " leaq 1(%2),%2 \n" 186 " leaq 1(%2),%2 \n"
165 " loop 1b \n" 187 " loop 1b \n"
166 " sbbq %0,%0 \n" 188 " sbbq %0,%0 \n"
167 : "+a"(ret),"+c"(n),"+r"(i) 189 : "=&a"(ret),"+c"(n),"=&r"(i)
168 : "r"(rp),"r"(ap),"r"(bp) 190 : "r"(rp),"r"(ap),"r"(bp)
169 : "cc" 191 : "cc"
170 ); 192 );
@@ -174,7 +196,7 @@ BN_ULONG bn_add_words (BN_ULONG *rp, BN_ULONG *ap, BN_ULONG *bp,int n)
174 196
175#ifndef SIMICS 197#ifndef SIMICS
176BN_ULONG bn_sub_words (BN_ULONG *rp, BN_ULONG *ap, BN_ULONG *bp,int n) 198BN_ULONG bn_sub_words (BN_ULONG *rp, BN_ULONG *ap, BN_ULONG *bp,int n)
177{ BN_ULONG ret,i; 199{ BN_ULONG ret=0,i=0;
178 200
179 if (n <= 0) return 0; 201 if (n <= 0) return 0;
180 202
@@ -187,7 +209,7 @@ BN_ULONG bn_sub_words (BN_ULONG *rp, BN_ULONG *ap, BN_ULONG *bp,int n)
187 " leaq 1(%2),%2 \n" 209 " leaq 1(%2),%2 \n"
188 " loop 1b \n" 210 " loop 1b \n"
189 " sbbq %0,%0 \n" 211 " sbbq %0,%0 \n"
190 : "+a"(ret),"+c"(n),"+r"(i) 212 : "=&a"(ret),"+c"(n),"=&r"(i)
191 : "r"(rp),"r"(ap),"r"(bp) 213 : "r"(rp),"r"(ap),"r"(bp)
192 : "cc" 214 : "cc"
193 ); 215 );
@@ -318,7 +340,6 @@ BN_ULONG bn_sub_words(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n)
318 340
319void bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b) 341void bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
320 { 342 {
321 BN_ULONG bl,bh;
322 BN_ULONG t1,t2; 343 BN_ULONG t1,t2;
323 BN_ULONG c1,c2,c3; 344 BN_ULONG c1,c2,c3;
324 345
@@ -423,7 +444,6 @@ void bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
423 444
424void bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b) 445void bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
425 { 446 {
426 BN_ULONG bl,bh;
427 BN_ULONG t1,t2; 447 BN_ULONG t1,t2;
428 BN_ULONG c1,c2,c3; 448 BN_ULONG c1,c2,c3;
429 449
@@ -464,7 +484,6 @@ void bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
464 484
465void bn_sqr_comba8(BN_ULONG *r, BN_ULONG *a) 485void bn_sqr_comba8(BN_ULONG *r, BN_ULONG *a)
466 { 486 {
467 BN_ULONG bl,bh;
468 BN_ULONG t1,t2; 487 BN_ULONG t1,t2;
469 BN_ULONG c1,c2,c3; 488 BN_ULONG c1,c2,c3;
470 489
@@ -541,7 +560,6 @@ void bn_sqr_comba8(BN_ULONG *r, BN_ULONG *a)
541 560
542void bn_sqr_comba4(BN_ULONG *r, BN_ULONG *a) 561void bn_sqr_comba4(BN_ULONG *r, BN_ULONG *a)
543 { 562 {
544 BN_ULONG bl,bh;
545 BN_ULONG t1,t2; 563 BN_ULONG t1,t2;
546 BN_ULONG c1,c2,c3; 564 BN_ULONG c1,c2,c3;
547 565
diff --git a/src/lib/libssl/src/crypto/bn/bn_mont.c b/src/lib/libssl/src/crypto/bn/bn_mont.c
index c9ebdbaabe..b79b1b60da 100644
--- a/src/lib/libssl/src/crypto/bn/bn_mont.c
+++ b/src/lib/libssl/src/crypto/bn/bn_mont.c
@@ -273,7 +273,7 @@ int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx)
273 273
274 BN_init(&Ri); 274 BN_init(&Ri);
275 R= &(mont->RR); /* grab RR as a temp */ 275 R= &(mont->RR); /* grab RR as a temp */
276 BN_copy(&(mont->N),mod); /* Set N */ 276 if (!BN_copy(&(mont->N),mod)) goto err; /* Set N */
277 mont->N.neg = 0; 277 mont->N.neg = 0;
278 278
279#ifdef MONT_WORD 279#ifdef MONT_WORD
diff --git a/src/lib/libssl/src/crypto/bn/bntest.c b/src/lib/libssl/src/crypto/bn/bntest.c
index 3c8c540387..28cd3339da 100644
--- a/src/lib/libssl/src/crypto/bn/bntest.c
+++ b/src/lib/libssl/src/crypto/bn/bntest.c
@@ -232,7 +232,7 @@ int main(int argc, char *argv[])
232 EXIT(0); 232 EXIT(0);
233err: 233err:
234 BIO_puts(out,"1\n"); /* make sure the Perl script fed by bc notices 234 BIO_puts(out,"1\n"); /* make sure the Perl script fed by bc notices
235 * the failure, see test_bn in test/Makefile.ssl*/ 235 * the failure, see test_bn in test/Makefile */
236 BIO_flush(out); 236 BIO_flush(out);
237 ERR_load_crypto_strings(); 237 ERR_load_crypto_strings();
238 ERR_print_errors_fp(stderr); 238 ERR_print_errors_fp(stderr);
diff --git a/src/lib/libssl/src/crypto/buffer/Makefile b/src/lib/libssl/src/crypto/buffer/Makefile
new file mode 100644
index 0000000000..3911baf513
--- /dev/null
+++ b/src/lib/libssl/src/crypto/buffer/Makefile
@@ -0,0 +1,92 @@
1#
2# SSLeay/crypto/buffer/Makefile
3#
4
5DIR= buffer
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= buffer.c buf_err.c
26LIBOBJ= buffer.o buf_err.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= buffer.h
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80buf_err.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
81buf_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
82buf_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
83buf_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
84buf_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
85buf_err.o: ../../include/openssl/symhacks.h buf_err.c
86buffer.o: ../../e_os.h ../../include/openssl/bio.h
87buffer.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
88buffer.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
89buffer.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
90buffer.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
91buffer.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
92buffer.o: ../cryptlib.h buffer.c
diff --git a/src/lib/libssl/src/crypto/cast/Makefile b/src/lib/libssl/src/crypto/cast/Makefile
new file mode 100644
index 0000000000..8b0d04bb7c
--- /dev/null
+++ b/src/lib/libssl/src/crypto/cast/Makefile
@@ -0,0 +1,120 @@
1#
2# SSLeay/crypto/cast/Makefile
3#
4
5DIR= cast
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES=
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP=/usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18
19CAST_ENC=c_enc.o
20# or use
21#CAST_ENC=asm/cx86-elf.o
22#CAST_ENC=asm/cx86-out.o
23#CAST_ENC=asm/cx86-sol.o
24#CAST_ENC=asm/cx86bdsi.o
25
26CFLAGS= $(INCLUDES) $(CFLAG)
27ASFLAGS= $(INCLUDES) $(ASFLAG)
28
29GENERAL=Makefile
30TEST=casttest.c
31APPS=
32
33LIB=$(TOP)/libcrypto.a
34LIBSRC=c_skey.c c_ecb.c c_enc.c c_cfb64.c c_ofb64.c
35LIBOBJ=c_skey.o c_ecb.o $(CAST_ENC) c_cfb64.o c_ofb64.o
36
37SRC= $(LIBSRC)
38
39EXHEADER= cast.h
40HEADER= cast_s.h cast_lcl.h $(EXHEADER)
41
42ALL= $(GENERAL) $(SRC) $(HEADER)
43
44top:
45 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
46
47all: lib
48
49lib: $(LIBOBJ)
50 $(AR) $(LIB) $(LIBOBJ)
51 $(RANLIB) $(LIB) || echo Never mind.
52 @touch lib
53
54# elf
55asm/cx86-elf.s: asm/cast-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
56 (cd asm; $(PERL) cast-586.pl elf $(CLAGS) $(PROCESSOR) > cx86-elf.s)
57
58# a.out
59asm/cx86-out.o: asm/cx86unix.cpp
60 $(CPP) -DOUT asm/cx86unix.cpp | as -o asm/cx86-out.o
61
62# bsdi
63asm/cx86bsdi.o: asm/cx86unix.cpp
64 $(CPP) -DBSDI asm/cx86unix.cpp | sed 's/ :/:/' | as -o asm/cx86bsdi.o
65
66asm/cx86unix.cpp: asm/cast-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
67 (cd asm; $(PERL) cast-586.pl cpp $(PROCESSOR) >cx86unix.cpp)
68
69files:
70 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
71
72links:
73 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
74 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
75 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
76
77install:
78 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
79 do \
80 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
81 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
82 done;
83
84tags:
85 ctags $(SRC)
86
87tests:
88
89lint:
90 lint -DLINT $(INCLUDES) $(SRC)>fluff
91
92depend:
93 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
94
95dclean:
96 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
97 mv -f Makefile.new $(MAKEFILE)
98
99clean:
100 rm -f asm/cx86unix.cpp asm/*-elf.* *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
101
102# DO NOT DELETE THIS LINE -- make depend depends on it.
103
104c_cfb64.o: ../../e_os.h ../../include/openssl/cast.h
105c_cfb64.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
106c_cfb64.o: c_cfb64.c cast_lcl.h
107c_ecb.o: ../../e_os.h ../../include/openssl/cast.h
108c_ecb.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
109c_ecb.o: ../../include/openssl/opensslv.h c_ecb.c cast_lcl.h
110c_enc.o: ../../e_os.h ../../include/openssl/cast.h
111c_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
112c_enc.o: c_enc.c cast_lcl.h
113c_ofb64.o: ../../e_os.h ../../include/openssl/cast.h
114c_ofb64.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
115c_ofb64.o: c_ofb64.c cast_lcl.h
116c_skey.o: ../../e_os.h ../../include/openssl/cast.h
117c_skey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
118c_skey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
119c_skey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
120c_skey.o: ../../include/openssl/symhacks.h c_skey.c cast_lcl.h cast_s.h
diff --git a/src/lib/libssl/src/crypto/cast/c_skey.c b/src/lib/libssl/src/crypto/cast/c_skey.c
index 76e40005c9..dc4791a8cf 100644
--- a/src/lib/libssl/src/crypto/cast/c_skey.c
+++ b/src/lib/libssl/src/crypto/cast/c_skey.c
@@ -56,7 +56,9 @@
56 * [including the GNU Public Licence.] 56 * [including the GNU Public Licence.]
57 */ 57 */
58 58
59#include <openssl/crypto.h>
59#include <openssl/cast.h> 60#include <openssl/cast.h>
61
60#include "cast_lcl.h" 62#include "cast_lcl.h"
61#include "cast_s.h" 63#include "cast_s.h"
62 64
@@ -72,7 +74,7 @@
72#define S6 CAST_S_table6 74#define S6 CAST_S_table6
73#define S7 CAST_S_table7 75#define S7 CAST_S_table7
74 76
75void CAST_set_key(CAST_KEY *key, int len, const unsigned char *data) 77FIPS_NON_FIPS_VCIPHER_Init(CAST)
76 { 78 {
77 CAST_LONG x[16]; 79 CAST_LONG x[16];
78 CAST_LONG z[16]; 80 CAST_LONG z[16];
diff --git a/src/lib/libssl/src/crypto/cast/cast.h b/src/lib/libssl/src/crypto/cast/cast.h
index b28e4e4f3b..9e300178d9 100644
--- a/src/lib/libssl/src/crypto/cast/cast.h
+++ b/src/lib/libssl/src/crypto/cast/cast.h
@@ -81,7 +81,10 @@ typedef struct cast_key_st
81 int short_key; /* Use reduced rounds for short key */ 81 int short_key; /* Use reduced rounds for short key */
82 } CAST_KEY; 82 } CAST_KEY;
83 83
84 84
85#ifdef OPENSSL_FIPS
86void private_CAST_set_key(CAST_KEY *key, int len, const unsigned char *data);
87#endif
85void CAST_set_key(CAST_KEY *key, int len, const unsigned char *data); 88void CAST_set_key(CAST_KEY *key, int len, const unsigned char *data);
86void CAST_ecb_encrypt(const unsigned char *in,unsigned char *out,CAST_KEY *key, 89void CAST_ecb_encrypt(const unsigned char *in,unsigned char *out,CAST_KEY *key,
87 int enc); 90 int enc);
diff --git a/src/lib/libssl/src/crypto/comp/Makefile b/src/lib/libssl/src/crypto/comp/Makefile
new file mode 100644
index 0000000000..68109a8013
--- /dev/null
+++ b/src/lib/libssl/src/crypto/comp/Makefile
@@ -0,0 +1,113 @@
1#
2# SSLeay/crypto/comp/Makefile
3#
4
5DIR= comp
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= comp_lib.c comp_err.c \
26 c_rle.c c_zlib.c
27
28LIBOBJ= comp_lib.o comp_err.o \
29 c_rle.o c_zlib.o
30
31SRC= $(LIBSRC)
32
33EXHEADER= comp.h
34HEADER= $(EXHEADER)
35
36ALL= $(GENERAL) $(SRC) $(HEADER)
37
38top:
39 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
40
41all: lib
42
43lib: $(LIBOBJ)
44 $(AR) $(LIB) $(LIBOBJ)
45 $(RANLIB) $(LIB) || echo Never mind.
46 @touch lib
47
48files:
49 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
50
51links:
52 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
53 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
54 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
55
56install:
57 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
58 do \
59 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
60 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
61 done;
62
63tags:
64 ctags $(SRC)
65
66tests:
67
68lint:
69 lint -DLINT $(INCLUDES) $(SRC)>fluff
70
71depend:
72 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(LIBSRC)
73
74dclean:
75 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
76 mv -f Makefile.new $(MAKEFILE)
77
78clean:
79 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
80
81# DO NOT DELETE THIS LINE -- make depend depends on it.
82
83c_rle.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
84c_rle.o: ../../include/openssl/bn.h ../../include/openssl/comp.h
85c_rle.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
86c_rle.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
87c_rle.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
88c_rle.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
89c_rle.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h c_rle.c
90c_zlib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
91c_zlib.o: ../../include/openssl/bn.h ../../include/openssl/comp.h
92c_zlib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
93c_zlib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
94c_zlib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
95c_zlib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
96c_zlib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
97c_zlib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
98c_zlib.o: c_zlib.c
99comp_err.o: ../../include/openssl/bio.h ../../include/openssl/comp.h
100comp_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
101comp_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
102comp_err.o: ../../include/openssl/opensslconf.h
103comp_err.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
104comp_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
105comp_err.o: comp_err.c
106comp_lib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
107comp_lib.o: ../../include/openssl/bn.h ../../include/openssl/comp.h
108comp_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
109comp_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
110comp_lib.o: ../../include/openssl/opensslconf.h
111comp_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
112comp_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
113comp_lib.o: ../../include/openssl/symhacks.h comp_lib.c
diff --git a/src/lib/libssl/src/crypto/comp/c_zlib.c b/src/lib/libssl/src/crypto/comp/c_zlib.c
index 8c0876151a..1bd2850d15 100644
--- a/src/lib/libssl/src/crypto/comp/c_zlib.c
+++ b/src/lib/libssl/src/crypto/comp/c_zlib.c
@@ -3,6 +3,7 @@
3#include <string.h> 3#include <string.h>
4#include <openssl/objects.h> 4#include <openssl/objects.h>
5#include <openssl/comp.h> 5#include <openssl/comp.h>
6#include <openssl/err.h>
6 7
7COMP_METHOD *COMP_zlib(void ); 8COMP_METHOD *COMP_zlib(void );
8 9
@@ -189,7 +190,17 @@ COMP_METHOD *COMP_zlib(void)
189 if (!zlib_loaded) 190 if (!zlib_loaded)
190 { 191 {
191#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32) 192#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32)
192 zlib_dso = DSO_load(NULL, "ZLIB", NULL, 0); 193 zlib_dso = DSO_load(NULL, "ZLIB1", NULL, 0);
194 if (!zlib_dso)
195 {
196 zlib_dso = DSO_load(NULL, "ZLIB", NULL, 0);
197 if (zlib_dso)
198 {
199 /* Clear the errors from the first failed
200 DSO_load() */
201 ERR_clear_error();
202 }
203 }
193#else 204#else
194 zlib_dso = DSO_load(NULL, "z", NULL, 0); 205 zlib_dso = DSO_load(NULL, "z", NULL, 0);
195#endif 206#endif
diff --git a/src/lib/libssl/src/crypto/conf/Makefile b/src/lib/libssl/src/crypto/conf/Makefile
new file mode 100644
index 0000000000..6d2f8ffd9a
--- /dev/null
+++ b/src/lib/libssl/src/crypto/conf/Makefile
@@ -0,0 +1,181 @@
1#
2# SSLeay/crypto/conf/Makefile
3#
4
5DIR= conf
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= conf_err.c conf_lib.c conf_api.c conf_def.c conf_mod.c \
26 conf_mall.c conf_sap.c
27
28LIBOBJ= conf_err.o conf_lib.o conf_api.o conf_def.o conf_mod.o \
29 conf_mall.o conf_sap.o
30
31SRC= $(LIBSRC)
32
33EXHEADER= conf.h conf_api.h
34HEADER= conf_def.h $(EXHEADER)
35
36ALL= $(GENERAL) $(SRC) $(HEADER)
37
38top:
39 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
40
41all: lib
42
43lib: $(LIBOBJ)
44 $(AR) $(LIB) $(LIBOBJ)
45 $(RANLIB) $(LIB) || echo Never mind.
46 @touch lib
47
48files:
49 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
50
51links:
52 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
53 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
54 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
55
56install:
57 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
58 do \
59 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
60 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
61 done;
62
63tags:
64 ctags $(SRC)
65
66tests:
67
68lint:
69 lint -DLINT $(INCLUDES) $(SRC)>fluff
70
71depend:
72 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(LIBSRC)
73
74dclean:
75 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
76 mv -f Makefile.new $(MAKEFILE)
77
78clean:
79 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
80
81# DO NOT DELETE THIS LINE -- make depend depends on it.
82
83conf_api.o: ../../e_os.h ../../include/openssl/bio.h
84conf_api.o: ../../include/openssl/conf.h ../../include/openssl/conf_api.h
85conf_api.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
86conf_api.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
87conf_api.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
88conf_api.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
89conf_api.o: conf_api.c
90conf_def.o: ../../e_os.h ../../include/openssl/bio.h
91conf_def.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
92conf_def.o: ../../include/openssl/conf_api.h ../../include/openssl/crypto.h
93conf_def.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
94conf_def.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
95conf_def.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
96conf_def.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
97conf_def.o: ../cryptlib.h conf_def.c conf_def.h
98conf_err.o: ../../include/openssl/bio.h ../../include/openssl/conf.h
99conf_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
100conf_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
101conf_err.o: ../../include/openssl/opensslconf.h
102conf_err.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
103conf_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
104conf_err.o: conf_err.c
105conf_lib.o: ../../include/openssl/bio.h ../../include/openssl/conf.h
106conf_lib.o: ../../include/openssl/conf_api.h ../../include/openssl/crypto.h
107conf_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
108conf_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
109conf_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
110conf_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
111conf_lib.o: conf_lib.c
112conf_mall.o: ../../e_os.h ../../include/openssl/aes.h
113conf_mall.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
114conf_mall.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
115conf_mall.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
116conf_mall.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
117conf_mall.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
118conf_mall.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
119conf_mall.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
120conf_mall.o: ../../include/openssl/engine.h ../../include/openssl/err.h
121conf_mall.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
122conf_mall.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
123conf_mall.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
124conf_mall.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
125conf_mall.o: ../../include/openssl/objects.h
126conf_mall.o: ../../include/openssl/opensslconf.h
127conf_mall.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
128conf_mall.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
129conf_mall.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
130conf_mall.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
131conf_mall.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
132conf_mall.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
133conf_mall.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
134conf_mall.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
135conf_mall.o: ../../include/openssl/x509_vfy.h ../cryptlib.h conf_mall.c
136conf_mod.o: ../../e_os.h ../../include/openssl/aes.h
137conf_mod.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
138conf_mod.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
139conf_mod.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
140conf_mod.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
141conf_mod.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
142conf_mod.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
143conf_mod.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
144conf_mod.o: ../../include/openssl/err.h ../../include/openssl/evp.h
145conf_mod.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
146conf_mod.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
147conf_mod.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
148conf_mod.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
149conf_mod.o: ../../include/openssl/opensslconf.h
150conf_mod.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
151conf_mod.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
152conf_mod.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
153conf_mod.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
154conf_mod.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
155conf_mod.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
156conf_mod.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
157conf_mod.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
158conf_mod.o: ../cryptlib.h conf_mod.c
159conf_sap.o: ../../e_os.h ../../include/openssl/aes.h
160conf_sap.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
161conf_sap.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
162conf_sap.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
163conf_sap.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
164conf_sap.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
165conf_sap.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
166conf_sap.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
167conf_sap.o: ../../include/openssl/engine.h ../../include/openssl/err.h
168conf_sap.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
169conf_sap.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
170conf_sap.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
171conf_sap.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
172conf_sap.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
173conf_sap.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
174conf_sap.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
175conf_sap.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
176conf_sap.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
177conf_sap.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
178conf_sap.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
179conf_sap.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
180conf_sap.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
181conf_sap.o: ../../include/openssl/x509_vfy.h ../cryptlib.h conf_sap.c
diff --git a/src/lib/libssl/src/crypto/conf/conf_def.c b/src/lib/libssl/src/crypto/conf/conf_def.c
index 2e9f52f1fd..b5a876ae68 100644
--- a/src/lib/libssl/src/crypto/conf/conf_def.c
+++ b/src/lib/libssl/src/crypto/conf/conf_def.c
@@ -632,6 +632,11 @@ static int str_copy(CONF *conf, char *section, char **pto, char *from)
632 BUF_MEM_grow_clean(buf,(strlen(p)+len-(e-from))); 632 BUF_MEM_grow_clean(buf,(strlen(p)+len-(e-from)));
633 while (*p) 633 while (*p)
634 buf->data[to++]= *(p++); 634 buf->data[to++]= *(p++);
635
636 /* Since we change the pointer 'from', we also have
637 to change the perceived length of the string it
638 points at. /RL */
639 len -= e-from;
635 from=e; 640 from=e;
636 } 641 }
637 else 642 else
diff --git a/src/lib/libssl/src/crypto/cryptlib.c b/src/lib/libssl/src/crypto/cryptlib.c
index 2924def2bb..fef0afb29f 100644
--- a/src/lib/libssl/src/crypto/cryptlib.c
+++ b/src/lib/libssl/src/crypto/cryptlib.c
@@ -105,7 +105,9 @@ static const char* lock_names[CRYPTO_NUM_LOCKS] =
105 "engine", 105 "engine",
106 "ui", 106 "ui",
107 "hwcrhk", /* This is a HACK which will disappear in 0.9.8 */ 107 "hwcrhk", /* This is a HACK which will disappear in 0.9.8 */
108#if CRYPTO_NUM_LOCKS != 33 108 "fips",
109 "fips2",
110#if CRYPTO_NUM_LOCKS != 35
109# error "Inconsistency between crypto.h and cryptlib.c" 111# error "Inconsistency between crypto.h and cryptlib.c"
110#endif 112#endif
111 }; 113 };
@@ -478,13 +480,12 @@ const char *CRYPTO_get_lock_name(int type)
478 return(sk_value(app_locks,type-CRYPTO_NUM_LOCKS)); 480 return(sk_value(app_locks,type-CRYPTO_NUM_LOCKS));
479 } 481 }
480 482
481#ifdef _DLL 483#if defined(_WIN32) && defined(_WINDLL)
482#ifdef OPENSSL_SYS_WIN32
483 484
484/* All we really need to do is remove the 'error' state when a thread 485/* All we really need to do is remove the 'error' state when a thread
485 * detaches */ 486 * detaches */
486 487
487BOOL WINAPI DLLEntryPoint(HINSTANCE hinstDLL, DWORD fdwReason, 488BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason,
488 LPVOID lpvReserved) 489 LPVOID lpvReserved)
489 { 490 {
490 switch(fdwReason) 491 switch(fdwReason)
@@ -503,8 +504,6 @@ BOOL WINAPI DLLEntryPoint(HINSTANCE hinstDLL, DWORD fdwReason,
503 } 504 }
504#endif 505#endif
505 506
506#endif
507
508void OpenSSLDie(const char *file,int line,const char *assertion) 507void OpenSSLDie(const char *file,int line,const char *assertion)
509 { 508 {
510 fprintf(stderr, 509 fprintf(stderr,
@@ -512,3 +511,122 @@ void OpenSSLDie(const char *file,int line,const char *assertion)
512 file,line,assertion); 511 file,line,assertion);
513 abort(); 512 abort();
514 } 513 }
514
515#ifdef OPENSSL_FIPS
516static int fips_started = 0;
517static int fips_mode = 0;
518static void *fips_rand_check = 0;
519static unsigned long fips_thread = 0;
520
521void fips_set_started(void)
522 {
523 fips_started = 1;
524 }
525
526int fips_is_started(void)
527 {
528 return fips_started;
529 }
530
531int fips_is_owning_thread(void)
532 {
533 int ret = 0;
534
535 if (fips_is_started())
536 {
537 CRYPTO_r_lock(CRYPTO_LOCK_FIPS2);
538 if (fips_thread != 0 && fips_thread == CRYPTO_thread_id())
539 ret = 1;
540 CRYPTO_r_unlock(CRYPTO_LOCK_FIPS2);
541 }
542 return ret;
543 }
544
545int fips_set_owning_thread(void)
546 {
547 int ret = 0;
548
549 if (fips_is_started())
550 {
551 CRYPTO_w_lock(CRYPTO_LOCK_FIPS2);
552 if (fips_thread == 0)
553 {
554 fips_thread = CRYPTO_thread_id();
555 ret = 1;
556 }
557 CRYPTO_w_unlock(CRYPTO_LOCK_FIPS2);
558 }
559 return ret;
560 }
561
562int fips_clear_owning_thread(void)
563 {
564 int ret = 0;
565
566 if (fips_is_started())
567 {
568 CRYPTO_w_lock(CRYPTO_LOCK_FIPS2);
569 if (fips_thread == CRYPTO_thread_id())
570 {
571 fips_thread = 0;
572 ret = 1;
573 }
574 CRYPTO_w_unlock(CRYPTO_LOCK_FIPS2);
575 }
576 return ret;
577 }
578
579void fips_set_mode(int onoff)
580 {
581 int owning_thread = fips_is_owning_thread();
582
583 if (fips_is_started())
584 {
585 if (!owning_thread) CRYPTO_w_lock(CRYPTO_LOCK_FIPS);
586 fips_mode = onoff;
587 if (!owning_thread) CRYPTO_w_unlock(CRYPTO_LOCK_FIPS);
588 }
589 }
590
591void fips_set_rand_check(void *rand_check)
592 {
593 int owning_thread = fips_is_owning_thread();
594
595 if (fips_is_started())
596 {
597 if (!owning_thread) CRYPTO_w_lock(CRYPTO_LOCK_FIPS);
598 fips_rand_check = rand_check;
599 if (!owning_thread) CRYPTO_w_unlock(CRYPTO_LOCK_FIPS);
600 }
601 }
602
603int FIPS_mode(void)
604 {
605 int ret = 0;
606 int owning_thread = fips_is_owning_thread();
607
608 if (fips_is_started())
609 {
610 if (!owning_thread) CRYPTO_r_lock(CRYPTO_LOCK_FIPS);
611 ret = fips_mode;
612 if (!owning_thread) CRYPTO_r_unlock(CRYPTO_LOCK_FIPS);
613 }
614 return ret;
615 }
616
617void *FIPS_rand_check(void)
618 {
619 void *ret = 0;
620 int owning_thread = fips_is_owning_thread();
621
622 if (fips_is_started())
623 {
624 if (!owning_thread) CRYPTO_r_lock(CRYPTO_LOCK_FIPS);
625 ret = fips_rand_check;
626 if (!owning_thread) CRYPTO_r_unlock(CRYPTO_LOCK_FIPS);
627 }
628 return ret;
629 }
630
631#endif /* OPENSSL_FIPS */
632
diff --git a/src/lib/libssl/src/crypto/crypto-lib.com b/src/lib/libssl/src/crypto/crypto-lib.com
index 39e78c69e5..c044ce0099 100644
--- a/src/lib/libssl/src/crypto/crypto-lib.com
+++ b/src/lib/libssl/src/crypto/crypto-lib.com
@@ -158,7 +158,7 @@ $!
158$ APPS_DES = "DES/DES,CBC3_ENC" 158$ APPS_DES = "DES/DES,CBC3_ENC"
159$ APPS_PKCS7 = "ENC/ENC;DEC/DEC;SIGN/SIGN;VERIFY/VERIFY,EXAMPLE" 159$ APPS_PKCS7 = "ENC/ENC;DEC/DEC;SIGN/SIGN;VERIFY/VERIFY,EXAMPLE"
160$ 160$
161$ LIB_ = "cryptlib,mem,mem_clr,mem_dbg,cversion,ex_data,tmdiff,cpt_err,ebcdic,uid,o_time" 161$ LIB_ = "cryptlib,mem,mem_clr,mem_dbg,cversion,ex_data,tmdiff,cpt_err,ebcdic,uid,o_time,o_str"
162$ LIB_MD2 = "md2_dgst,md2_one" 162$ LIB_MD2 = "md2_dgst,md2_one"
163$ LIB_MD4 = "md4_dgst,md4_one" 163$ LIB_MD4 = "md4_dgst,md4_one"
164$ LIB_MD5 = "md5_dgst,md5_one" 164$ LIB_MD5 = "md5_dgst,md5_one"
@@ -247,7 +247,7 @@ $ LIB_X509 = "x509_def,x509_d2,x509_r2x,x509_cmp,"+ -
247$ LIB_X509V3 = "v3_bcons,v3_bitst,v3_conf,v3_extku,v3_ia5,v3_lib,"+ - 247$ LIB_X509V3 = "v3_bcons,v3_bitst,v3_conf,v3_extku,v3_ia5,v3_lib,"+ -
248 "v3_prn,v3_utl,v3err,v3_genn,v3_alt,v3_skey,v3_akey,v3_pku,"+ - 248 "v3_prn,v3_utl,v3err,v3_genn,v3_alt,v3_skey,v3_akey,v3_pku,"+ -
249 "v3_int,v3_enum,v3_sxnet,v3_cpols,v3_crld,v3_purp,v3_info,"+ - 249 "v3_int,v3_enum,v3_sxnet,v3_cpols,v3_crld,v3_purp,v3_info,"+ -
250 "v3_ocsp,v3_akeya" 250 "v3_ocsp,v3_akeya,v3_pcia,v3_pci"
251$ LIB_CONF = "conf_err,conf_lib,conf_api,conf_def,conf_mod,conf_mall,conf_sap" 251$ LIB_CONF = "conf_err,conf_lib,conf_api,conf_def,conf_mod,conf_mall,conf_sap"
252$ LIB_TXT_DB = "txt_db" 252$ LIB_TXT_DB = "txt_db"
253$ LIB_PKCS7 = "pk7_asn1,pk7_lib,pkcs7err,pk7_doit,pk7_smime,pk7_attr,"+ - 253$ LIB_PKCS7 = "pk7_asn1,pk7_lib,pkcs7err,pk7_doit,pk7_smime,pk7_attr,"+ -
@@ -752,8 +752,8 @@ $ WRITE SYS$OUTPUT ""
752$ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:" 752$ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:"
753$ WRITE SYS$OUTPUT "" 753$ WRITE SYS$OUTPUT ""
754$ WRITE SYS$OUTPUT " ALL : Just Build Everything." 754$ WRITE SYS$OUTPUT " ALL : Just Build Everything."
755$ WRITE SYS$OUTPUT " LIBRARY : To Compile Just The [.xxx.EXE.SSL]LIBCRYPTO.OLB Library." 755$ WRITE SYS$OUTPUT " LIBRARY : To Compile Just The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library."
756$ WRITE SYS$OUTPUT " APPS : To Compile Just The [.xxx.EXE.SSL]*.EXE Programs." 756$ WRITE SYS$OUTPUT " APPS : To Compile Just The [.xxx.EXE.CRYPTO]*.EXE Programs."
757$ WRITE SYS$OUTPUT "" 757$ WRITE SYS$OUTPUT ""
758$ WRITE SYS$OUTPUT " Where 'xxx' Stands For:" 758$ WRITE SYS$OUTPUT " Where 'xxx' Stands For:"
759$ WRITE SYS$OUTPUT "" 759$ WRITE SYS$OUTPUT ""
diff --git a/src/lib/libssl/src/crypto/crypto.h b/src/lib/libssl/src/crypto/crypto.h
index 273bc5e3f8..4d1dfac7f1 100644
--- a/src/lib/libssl/src/crypto/crypto.h
+++ b/src/lib/libssl/src/crypto/crypto.h
@@ -128,7 +128,9 @@ extern "C" {
128#define CRYPTO_LOCK_ENGINE 30 128#define CRYPTO_LOCK_ENGINE 30
129#define CRYPTO_LOCK_UI 31 129#define CRYPTO_LOCK_UI 31
130#define CRYPTO_LOCK_HWCRHK 32 /* This is a HACK which will disappear in 0.9.8 */ 130#define CRYPTO_LOCK_HWCRHK 32 /* This is a HACK which will disappear in 0.9.8 */
131#define CRYPTO_NUM_LOCKS 33 131#define CRYPTO_LOCK_FIPS 33
132#define CRYPTO_LOCK_FIPS2 34
133#define CRYPTO_NUM_LOCKS 35
132 134
133#define CRYPTO_LOCK 1 135#define CRYPTO_LOCK 1
134#define CRYPTO_UNLOCK 2 136#define CRYPTO_UNLOCK 2
@@ -434,6 +436,63 @@ void CRYPTO_mem_leaks_cb(CRYPTO_MEM_LEAK_CB *cb);
434void OpenSSLDie(const char *file,int line,const char *assertion); 436void OpenSSLDie(const char *file,int line,const char *assertion);
435#define OPENSSL_assert(e) ((e) ? (void)0 : OpenSSLDie(__FILE__, __LINE__, #e)) 437#define OPENSSL_assert(e) ((e) ? (void)0 : OpenSSLDie(__FILE__, __LINE__, #e))
436 438
439#ifdef OPENSSL_FIPS
440int FIPS_mode(void);
441void *FIPS_rand_check(void);
442
443#define FIPS_ERROR_IGNORED(alg) OpenSSLDie(__FILE__, __LINE__, \
444 alg " previous FIPS forbidden algorithm error ignored");
445
446#define FIPS_BAD_ABORT(alg) OpenSSLDie(__FILE__, __LINE__, \
447 #alg " Algorithm forbidden in FIPS mode");
448
449#ifdef OPENSSL_FIPS_STRICT
450#define FIPS_BAD_ALGORITHM(alg) FIPS_BAD_ABORT(alg)
451#else
452#define FIPS_BAD_ALGORITHM(alg) \
453 { \
454 FIPSerr(FIPS_F_HASH_FINAL,FIPS_R_NON_FIPS_METHOD); \
455 ERR_add_error_data(2, "Algorithm=", #alg); \
456 return 0; \
457 }
458#endif
459
460/* Low level digest API blocking macro */
461
462#define FIPS_NON_FIPS_MD_Init(alg) \
463 int alg##_Init(alg##_CTX *c) \
464 { \
465 if (FIPS_mode()) \
466 FIPS_BAD_ALGORITHM(alg) \
467 return private_##alg##_Init(c); \
468 } \
469 int private_##alg##_Init(alg##_CTX *c)
470
471/* For ciphers the API often varies from cipher to cipher and each needs to
472 * be treated as a special case. Variable key length ciphers (Blowfish, RC4,
473 * CAST) however are very similar and can use a blocking macro.
474 */
475
476#define FIPS_NON_FIPS_VCIPHER_Init(alg) \
477 void alg##_set_key(alg##_KEY *key, int len, const unsigned char *data) \
478 { \
479 if (FIPS_mode()) \
480 FIPS_BAD_ABORT(alg) \
481 private_##alg##_set_key(key, len, data); \
482 } \
483 void private_##alg##_set_key(alg##_KEY *key, int len, \
484 const unsigned char *data)
485
486#else
487
488#define FIPS_NON_FIPS_VCIPHER_Init(alg) \
489 void alg##_set_key(alg##_KEY *key, int len, const unsigned char *data)
490
491#define FIPS_NON_FIPS_MD_Init(alg) \
492 int alg##_Init(alg##_CTX *c)
493
494#endif /* def OPENSSL_FIPS */
495
437/* BEGIN ERROR CODES */ 496/* BEGIN ERROR CODES */
438/* The following lines are auto generated by the script mkerr.pl. Any changes 497/* The following lines are auto generated by the script mkerr.pl. Any changes
439 * made after this point may be overwritten when the script is next run. 498 * made after this point may be overwritten when the script is next run.
diff --git a/src/lib/libssl/src/crypto/des/FILES0 b/src/lib/libssl/src/crypto/des/FILES0
index 4c7ea2de7a..1c2e1f75b9 100644
--- a/src/lib/libssl/src/crypto/des/FILES0
+++ b/src/lib/libssl/src/crypto/des/FILES0
@@ -8,7 +8,7 @@ README - What this package is.
8VERSION - Which version this is and what was changed. 8VERSION - Which version this is and what was changed.
9KERBEROS - Kerberos version 4 notes. 9KERBEROS - Kerberos version 4 notes.
10Makefile.PL - An old makefile to build with perl5, not current. 10Makefile.PL - An old makefile to build with perl5, not current.
11Makefile.ssl - The SSLeay makefile 11Makefile - The SSLeay makefile
12Makefile.uni - The normal unix makefile. 12Makefile.uni - The normal unix makefile.
13GNUmakefile - The makefile for use with glibc. 13GNUmakefile - The makefile for use with glibc.
14makefile.bc - A Borland C makefile 14makefile.bc - A Borland C makefile
diff --git a/src/lib/libssl/src/crypto/des/Makefile b/src/lib/libssl/src/crypto/des/Makefile
new file mode 100644
index 0000000000..655f2ea1a8
--- /dev/null
+++ b/src/lib/libssl/src/crypto/des/Makefile
@@ -0,0 +1,314 @@
1#
2# SSLeay/crypto/des/Makefile
3#
4
5DIR= des
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES=-I$(TOP) -I../../include
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP=/usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18RANLIB= ranlib
19DES_ENC= des_enc.o fcrypt_b.o
20# or use
21#DES_ENC= dx86-elf.o yx86-elf.o
22
23CFLAGS= $(INCLUDES) $(CFLAG)
24ASFLAGS= $(INCLUDES) $(ASFLAG)
25
26GENERAL=Makefile
27TEST=destest.c
28APPS=
29
30LIB=$(TOP)/libcrypto.a
31LIBSRC= cbc_cksm.c cbc_enc.c cfb64enc.c cfb_enc.c \
32 ecb3_enc.c ecb_enc.c enc_read.c enc_writ.c \
33 fcrypt.c ofb64enc.c ofb_enc.c pcbc_enc.c \
34 qud_cksm.c rand_key.c rpc_enc.c set_key.c \
35 des_enc.c fcrypt_b.c \
36 xcbc_enc.c \
37 str2key.c cfb64ede.c ofb64ede.c ede_cbcm_enc.c des_old.c des_old2.c \
38 read2pwd.c
39
40LIBOBJ= set_key.o ecb_enc.o cbc_enc.o \
41 ecb3_enc.o cfb64enc.o cfb64ede.o cfb_enc.o ofb64ede.o \
42 enc_read.o enc_writ.o ofb64enc.o \
43 ofb_enc.o str2key.o pcbc_enc.o qud_cksm.o rand_key.o \
44 ${DES_ENC} \
45 fcrypt.o xcbc_enc.o rpc_enc.o cbc_cksm.o \
46 ede_cbcm_enc.o des_old.o des_old2.o read2pwd.o
47
48SRC= $(LIBSRC)
49
50EXHEADER= des.h des_old.h
51HEADER= des_locl.h rpc_des.h spr.h des_ver.h $(EXHEADER)
52
53ALL= $(GENERAL) $(SRC) $(HEADER)
54
55top:
56 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
57
58all: lib
59
60lib: $(LIBOBJ)
61 $(AR) $(LIB) $(LIBOBJ)
62 $(RANLIB) $(LIB) || echo Never mind.
63 @touch lib
64
65des: des.o cbc3_enc.o lib
66 $(CC) $(CFLAGS) -o des des.o cbc3_enc.o $(LIB)
67
68# elf
69asm/dx86-elf.s: asm/des-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
70 (cd asm; $(PERL) des-586.pl elf $(CFLAGS) > dx86-elf.s)
71
72asm/yx86-elf.s: asm/crypt586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
73 (cd asm; $(PERL) crypt586.pl elf $(CFLAGS) > yx86-elf.s)
74
75# a.out
76asm/dx86-out.o: asm/dx86unix.cpp
77 $(CPP) -DOUT asm/dx86unix.cpp | as -o asm/dx86-out.o
78
79asm/yx86-out.o: asm/yx86unix.cpp
80 $(CPP) -DOUT asm/yx86unix.cpp | as -o asm/yx86-out.o
81
82# bsdi
83asm/dx86bsdi.o: asm/dx86unix.cpp
84 $(CPP) -DBSDI asm/dx86unix.cpp | sed 's/ :/:/' | as -o asm/dx86bsdi.o
85
86asm/yx86bsdi.o: asm/yx86unix.cpp
87 $(CPP) -DBSDI asm/yx86unix.cpp | sed 's/ :/:/' | as -o asm/yx86bsdi.o
88
89asm/dx86unix.cpp: asm/des-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
90 (cd asm; $(PERL) des-586.pl cpp >dx86unix.cpp)
91
92asm/yx86unix.cpp: asm/crypt586.pl ../perlasm/x86asm.pl
93 (cd asm; $(PERL) crypt586.pl cpp >yx86unix.cpp)
94
95files:
96 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
97
98links:
99 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
100 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
101 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
102
103install: installs
104
105installs:
106 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
107 do \
108 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
109 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
110 done;
111
112tags:
113 ctags $(SRC)
114
115tests:
116
117lint:
118 lint -DLINT $(INCLUDES) $(SRC)>fluff
119
120depend:
121 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
122
123dclean:
124 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
125 mv -f Makefile.new $(MAKEFILE)
126
127clean:
128 rm -f asm/dx86unix.cpp asm/yx86unix.cpp asm/*-elf.* *.o asm/*.o *.obj des lib tags core .pure .nfs* *.old *.bak fluff
129
130# DO NOT DELETE THIS LINE -- make depend depends on it.
131
132cbc_cksm.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
133cbc_cksm.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
134cbc_cksm.o: ../../include/openssl/opensslconf.h
135cbc_cksm.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
136cbc_cksm.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
137cbc_cksm.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
138cbc_cksm.o: cbc_cksm.c des_locl.h
139cbc_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
140cbc_enc.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
141cbc_enc.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
142cbc_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
143cbc_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
144cbc_enc.o: ../../include/openssl/ui_compat.h cbc_enc.c des_locl.h ncbc_enc.c
145cfb64ede.o: ../../e_os.h ../../include/openssl/crypto.h
146cfb64ede.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
147cfb64ede.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
148cfb64ede.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
149cfb64ede.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
150cfb64ede.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
151cfb64ede.o: cfb64ede.c des_locl.h
152cfb64enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
153cfb64enc.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
154cfb64enc.o: ../../include/openssl/opensslconf.h
155cfb64enc.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
156cfb64enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
157cfb64enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
158cfb64enc.o: cfb64enc.c des_locl.h
159cfb_enc.o: ../../e_os.h ../../include/openssl/crypto.h
160cfb_enc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
161cfb_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
162cfb_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
163cfb_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
164cfb_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
165cfb_enc.o: cfb_enc.c des_locl.h
166des_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
167des_enc.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
168des_enc.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
169des_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
170des_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
171des_enc.o: ../../include/openssl/ui_compat.h des_enc.c des_locl.h ncbc_enc.c
172des_old.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
173des_old.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
174des_old.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
175des_old.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
176des_old.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
177des_old.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
178des_old.o: ../../include/openssl/ui_compat.h des_old.c
179des_old2.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
180des_old2.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
181des_old2.o: ../../include/openssl/opensslconf.h
182des_old2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
183des_old2.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
184des_old2.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
185des_old2.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
186des_old2.o: des_old2.c
187ecb3_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
188ecb3_enc.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
189ecb3_enc.o: ../../include/openssl/opensslconf.h
190ecb3_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
191ecb3_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
192ecb3_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
193ecb3_enc.o: des_locl.h ecb3_enc.c
194ecb_enc.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
195ecb_enc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
196ecb_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
197ecb_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
198ecb_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
199ecb_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
200ecb_enc.o: des_locl.h des_ver.h ecb_enc.c spr.h
201ede_cbcm_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
202ede_cbcm_enc.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
203ede_cbcm_enc.o: ../../include/openssl/opensslconf.h
204ede_cbcm_enc.o: ../../include/openssl/opensslv.h
205ede_cbcm_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
206ede_cbcm_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
207ede_cbcm_enc.o: ../../include/openssl/ui_compat.h des_locl.h ede_cbcm_enc.c
208enc_read.o: ../../e_os.h ../../include/openssl/bio.h
209enc_read.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
210enc_read.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
211enc_read.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
212enc_read.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
213enc_read.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
214enc_read.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
215enc_read.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
216enc_read.o: ../cryptlib.h des_locl.h enc_read.c
217enc_writ.o: ../../e_os.h ../../include/openssl/bio.h
218enc_writ.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
219enc_writ.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
220enc_writ.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
221enc_writ.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
222enc_writ.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
223enc_writ.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
224enc_writ.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
225enc_writ.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
226enc_writ.o: ../cryptlib.h des_locl.h enc_writ.c
227fcrypt.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
228fcrypt.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
229fcrypt.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
230fcrypt.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
231fcrypt.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
232fcrypt.o: ../../include/openssl/ui_compat.h des_locl.h fcrypt.c
233fcrypt_b.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
234fcrypt_b.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
235fcrypt_b.o: ../../include/openssl/opensslconf.h
236fcrypt_b.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
237fcrypt_b.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
238fcrypt_b.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
239fcrypt_b.o: des_locl.h fcrypt_b.c
240ofb64ede.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
241ofb64ede.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
242ofb64ede.o: ../../include/openssl/opensslconf.h
243ofb64ede.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
244ofb64ede.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
245ofb64ede.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
246ofb64ede.o: des_locl.h ofb64ede.c
247ofb64enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
248ofb64enc.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
249ofb64enc.o: ../../include/openssl/opensslconf.h
250ofb64enc.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
251ofb64enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
252ofb64enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
253ofb64enc.o: des_locl.h ofb64enc.c
254ofb_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
255ofb_enc.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
256ofb_enc.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
257ofb_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
258ofb_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
259ofb_enc.o: ../../include/openssl/ui_compat.h des_locl.h ofb_enc.c
260pcbc_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
261pcbc_enc.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
262pcbc_enc.o: ../../include/openssl/opensslconf.h
263pcbc_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
264pcbc_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
265pcbc_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
266pcbc_enc.o: des_locl.h pcbc_enc.c
267qud_cksm.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
268qud_cksm.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
269qud_cksm.o: ../../include/openssl/opensslconf.h
270qud_cksm.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
271qud_cksm.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
272qud_cksm.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
273qud_cksm.o: des_locl.h qud_cksm.c
274rand_key.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
275rand_key.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
276rand_key.o: ../../include/openssl/opensslconf.h
277rand_key.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
278rand_key.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
279rand_key.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
280rand_key.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
281rand_key.o: rand_key.c
282read2pwd.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
283read2pwd.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
284read2pwd.o: ../../include/openssl/opensslconf.h
285read2pwd.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
286read2pwd.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
287read2pwd.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
288read2pwd.o: read2pwd.c
289rpc_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
290rpc_enc.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
291rpc_enc.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
292rpc_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
293rpc_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
294rpc_enc.o: ../../include/openssl/ui_compat.h des_locl.h des_ver.h rpc_des.h
295rpc_enc.o: rpc_enc.c
296set_key.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
297set_key.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
298set_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
299set_key.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
300set_key.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
301set_key.o: ../../include/openssl/ui_compat.h des_locl.h set_key.c
302str2key.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
303str2key.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
304str2key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
305str2key.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
306str2key.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
307str2key.o: ../../include/openssl/ui_compat.h des_locl.h str2key.c
308xcbc_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
309xcbc_enc.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
310xcbc_enc.o: ../../include/openssl/opensslconf.h
311xcbc_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
312xcbc_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
313xcbc_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
314xcbc_enc.o: des_locl.h xcbc_enc.c
diff --git a/src/lib/libssl/src/crypto/des/cfb64ede.c b/src/lib/libssl/src/crypto/des/cfb64ede.c
index 60c1aa08db..f3c6018528 100644
--- a/src/lib/libssl/src/crypto/des/cfb64ede.c
+++ b/src/lib/libssl/src/crypto/des/cfb64ede.c
@@ -57,6 +57,7 @@
57 */ 57 */
58 58
59#include "des_locl.h" 59#include "des_locl.h"
60#include "e_os.h"
60 61
61/* The input and output encrypted as though 64bit cfb mode is being 62/* The input and output encrypted as though 64bit cfb mode is being
62 * used. The extra state information to record how much of the 63 * used. The extra state information to record how much of the
@@ -140,3 +141,114 @@ void DES_ede2_cfb64_encrypt(unsigned char *in, unsigned char *out, long length,
140 DES_ede3_cfb64_encrypt(in,out,length,ks1,ks2,ks1,ivec,num,enc); 141 DES_ede3_cfb64_encrypt(in,out,length,ks1,ks2,ks1,ivec,num,enc);
141 } 142 }
142#endif 143#endif
144
145/* This is compatible with the single key CFB-r for DES, even thought that's
146 * not what EVP needs.
147 */
148
149void DES_ede3_cfb_encrypt(const unsigned char *in,unsigned char *out,
150 int numbits,long length,DES_key_schedule *ks1,
151 DES_key_schedule *ks2,DES_key_schedule *ks3,
152 DES_cblock *ivec,int enc)
153 {
154 register DES_LONG d0,d1,v0,v1;
155 register long l=length;
156 register int num=numbits,n=(numbits+7)/8,i;
157 DES_LONG ti[2];
158 unsigned char *iv;
159 unsigned char ovec[16];
160
161 if (num > 64) return;
162 iv = &(*ivec)[0];
163 c2l(iv,v0);
164 c2l(iv,v1);
165 if (enc)
166 {
167 while (l >= n)
168 {
169 l-=n;
170 ti[0]=v0;
171 ti[1]=v1;
172 DES_encrypt3(ti,ks1,ks2,ks3);
173 c2ln(in,d0,d1,n);
174 in+=n;
175 d0^=ti[0];
176 d1^=ti[1];
177 l2cn(d0,d1,out,n);
178 out+=n;
179 /* 30-08-94 - eay - changed because l>>32 and
180 * l<<32 are bad under gcc :-( */
181 if (num == 32)
182 { v0=v1; v1=d0; }
183 else if (num == 64)
184 { v0=d0; v1=d1; }
185 else
186 {
187 iv=&ovec[0];
188 l2c(v0,iv);
189 l2c(v1,iv);
190 l2c(d0,iv);
191 l2c(d1,iv);
192 /* shift ovec left most of the bits... */
193 memmove(ovec,ovec+num/8,8+(num%8 ? 1 : 0));
194 /* now the remaining bits */
195 if(num%8 != 0)
196 for(i=0 ; i < 8 ; ++i)
197 {
198 ovec[i]<<=num%8;
199 ovec[i]|=ovec[i+1]>>(8-num%8);
200 }
201 iv=&ovec[0];
202 c2l(iv,v0);
203 c2l(iv,v1);
204 }
205 }
206 }
207 else
208 {
209 while (l >= n)
210 {
211 l-=n;
212 ti[0]=v0;
213 ti[1]=v1;
214 DES_encrypt3(ti,ks1,ks2,ks3);
215 c2ln(in,d0,d1,n);
216 in+=n;
217 /* 30-08-94 - eay - changed because l>>32 and
218 * l<<32 are bad under gcc :-( */
219 if (num == 32)
220 { v0=v1; v1=d0; }
221 else if (num == 64)
222 { v0=d0; v1=d1; }
223 else
224 {
225 iv=&ovec[0];
226 l2c(v0,iv);
227 l2c(v1,iv);
228 l2c(d0,iv);
229 l2c(d1,iv);
230 /* shift ovec left most of the bits... */
231 memmove(ovec,ovec+num/8,8+(num%8 ? 1 : 0));
232 /* now the remaining bits */
233 if(num%8 != 0)
234 for(i=0 ; i < 8 ; ++i)
235 {
236 ovec[i]<<=num%8;
237 ovec[i]|=ovec[i+1]>>(8-num%8);
238 }
239 iv=&ovec[0];
240 c2l(iv,v0);
241 c2l(iv,v1);
242 }
243 d0^=ti[0];
244 d1^=ti[1];
245 l2cn(d0,d1,out,n);
246 out+=n;
247 }
248 }
249 iv = &(*ivec)[0];
250 l2c(v0,iv);
251 l2c(v1,iv);
252 v0=v1=d0=d1=ti[0]=ti[1]=0;
253 }
254
diff --git a/src/lib/libssl/src/crypto/des/des.h b/src/lib/libssl/src/crypto/des/des.h
index daaf239dbe..c5df1c9c7b 100644
--- a/src/lib/libssl/src/crypto/des/des.h
+++ b/src/lib/libssl/src/crypto/des/des.h
@@ -128,7 +128,7 @@ OPENSSL_DECLARE_GLOBAL(int,DES_rw_mode); /* defaults to DES_PCBC_MODE */
128#define DES_rw_mode OPENSSL_GLOBAL_REF(DES_rw_mode) 128#define DES_rw_mode OPENSSL_GLOBAL_REF(DES_rw_mode)
129 129
130const char *DES_options(void); 130const char *DES_options(void);
131void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output, 131void DES_ecb3_encrypt(const unsigned char *input, unsigned char *output,
132 DES_key_schedule *ks1,DES_key_schedule *ks2, 132 DES_key_schedule *ks1,DES_key_schedule *ks2,
133 DES_key_schedule *ks3, int enc); 133 DES_key_schedule *ks3, int enc);
134DES_LONG DES_cbc_cksum(const unsigned char *input,DES_cblock *output, 134DES_LONG DES_cbc_cksum(const unsigned char *input,DES_cblock *output,
@@ -187,6 +187,10 @@ void DES_ede3_cfb64_encrypt(const unsigned char *in,unsigned char *out,
187 long length,DES_key_schedule *ks1, 187 long length,DES_key_schedule *ks1,
188 DES_key_schedule *ks2,DES_key_schedule *ks3, 188 DES_key_schedule *ks2,DES_key_schedule *ks3,
189 DES_cblock *ivec,int *num,int enc); 189 DES_cblock *ivec,int *num,int enc);
190void DES_ede3_cfb_encrypt(const unsigned char *in,unsigned char *out,
191 int numbits,long length,DES_key_schedule *ks1,
192 DES_key_schedule *ks2,DES_key_schedule *ks3,
193 DES_cblock *ivec,int enc);
190void DES_ede3_ofb64_encrypt(const unsigned char *in,unsigned char *out, 194void DES_ede3_ofb64_encrypt(const unsigned char *in,unsigned char *out,
191 long length,DES_key_schedule *ks1, 195 long length,DES_key_schedule *ks1,
192 DES_key_schedule *ks2,DES_key_schedule *ks3, 196 DES_key_schedule *ks2,DES_key_schedule *ks3,
diff --git a/src/lib/libssl/src/crypto/des/des_enc.c b/src/lib/libssl/src/crypto/des/des_enc.c
index 1c37ab96d3..72be2d98d7 100644
--- a/src/lib/libssl/src/crypto/des/des_enc.c
+++ b/src/lib/libssl/src/crypto/des/des_enc.c
@@ -58,6 +58,8 @@
58 58
59#include "des_locl.h" 59#include "des_locl.h"
60 60
61#ifndef OPENSSL_FIPS
62
61void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc) 63void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc)
62 { 64 {
63 register DES_LONG l,r,t,u; 65 register DES_LONG l,r,t,u;
@@ -287,8 +289,12 @@ void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1,
287 data[1]=r; 289 data[1]=r;
288 } 290 }
289 291
292#endif /* ndef OPENSSL_FIPS */
293
290#ifndef DES_DEFAULT_OPTIONS 294#ifndef DES_DEFAULT_OPTIONS
291 295
296#if !defined(OPENSSL_FIPS_DES_ASM)
297
292#undef CBC_ENC_C__DONT_UPDATE_IV 298#undef CBC_ENC_C__DONT_UPDATE_IV
293#include "ncbc_enc.c" /* DES_ncbc_encrypt */ 299#include "ncbc_enc.c" /* DES_ncbc_encrypt */
294 300
@@ -404,4 +410,6 @@ void DES_ede3_cbc_encrypt(const unsigned char *input, unsigned char *output,
404 tin[0]=tin[1]=0; 410 tin[0]=tin[1]=0;
405 } 411 }
406 412
413#endif /* !defined(OPENSSL_FIPS_DES_ASM) */
414
407#endif /* DES_DEFAULT_OPTIONS */ 415#endif /* DES_DEFAULT_OPTIONS */
diff --git a/src/lib/libssl/src/crypto/des/des_old.c b/src/lib/libssl/src/crypto/des/des_old.c
index 7e4cd7180d..88e9802aad 100644
--- a/src/lib/libssl/src/crypto/des/des_old.c
+++ b/src/lib/libssl/src/crypto/des/des_old.c
@@ -84,7 +84,7 @@ void _ossl_old_des_ecb3_encrypt(_ossl_old_des_cblock *input,_ossl_old_des_cblock
84 des_key_schedule ks1,des_key_schedule ks2, 84 des_key_schedule ks1,des_key_schedule ks2,
85 des_key_schedule ks3, int enc) 85 des_key_schedule ks3, int enc)
86 { 86 {
87 DES_ecb3_encrypt((const_DES_cblock *)input, output, 87 DES_ecb3_encrypt((const unsigned char *)input, (unsigned char *)output,
88 (DES_key_schedule *)ks1, (DES_key_schedule *)ks2, 88 (DES_key_schedule *)ks1, (DES_key_schedule *)ks2,
89 (DES_key_schedule *)ks3, enc); 89 (DES_key_schedule *)ks3, enc);
90 } 90 }
diff --git a/src/lib/libssl/src/crypto/des/destest.c b/src/lib/libssl/src/crypto/des/destest.c
index 3983ac8e5f..e3e9d77f14 100644
--- a/src/lib/libssl/src/crypto/des/destest.c
+++ b/src/lib/libssl/src/crypto/des/destest.c
@@ -439,8 +439,8 @@ int main(int argc, char *argv[])
439 memcpy(in,plain_data[i],8); 439 memcpy(in,plain_data[i],8);
440 memset(out,0,8); 440 memset(out,0,8);
441 memset(outin,0,8); 441 memset(outin,0,8);
442 des_ecb2_encrypt(&in,&out,ks,ks2,DES_ENCRYPT); 442 des_ecb2_encrypt(in,out,ks,ks2,DES_ENCRYPT);
443 des_ecb2_encrypt(&out,&outin,ks,ks2,DES_DECRYPT); 443 des_ecb2_encrypt(out,outin,ks,ks2,DES_DECRYPT);
444 444
445 if (memcmp(out,cipher_ecb2[i],8) != 0) 445 if (memcmp(out,cipher_ecb2[i],8) != 0)
446 { 446 {
diff --git a/src/lib/libssl/src/crypto/des/ecb3_enc.c b/src/lib/libssl/src/crypto/des/ecb3_enc.c
index c3437bc606..fa0c9c4d4f 100644
--- a/src/lib/libssl/src/crypto/des/ecb3_enc.c
+++ b/src/lib/libssl/src/crypto/des/ecb3_enc.c
@@ -58,15 +58,13 @@
58 58
59#include "des_locl.h" 59#include "des_locl.h"
60 60
61void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output, 61void DES_ecb3_encrypt(const unsigned char *in, unsigned char *out,
62 DES_key_schedule *ks1, DES_key_schedule *ks2, 62 DES_key_schedule *ks1, DES_key_schedule *ks2,
63 DES_key_schedule *ks3, 63 DES_key_schedule *ks3,
64 int enc) 64 int enc)
65 { 65 {
66 register DES_LONG l0,l1; 66 register DES_LONG l0,l1;
67 DES_LONG ll[2]; 67 DES_LONG ll[2];
68 const unsigned char *in = &(*input)[0];
69 unsigned char *out = &(*output)[0];
70 68
71 c2l(in,l0); 69 c2l(in,l0);
72 c2l(in,l1); 70 c2l(in,l1);
diff --git a/src/lib/libssl/src/crypto/des/set_key.c b/src/lib/libssl/src/crypto/des/set_key.c
index 143008ed9c..8881d46a7a 100644
--- a/src/lib/libssl/src/crypto/des/set_key.c
+++ b/src/lib/libssl/src/crypto/des/set_key.c
@@ -65,6 +65,8 @@
65 */ 65 */
66#include "des_locl.h" 66#include "des_locl.h"
67 67
68#ifndef OPENSSL_FIPS
69
68OPENSSL_IMPLEMENT_GLOBAL(int,DES_check_key); /* defaults to false */ 70OPENSSL_IMPLEMENT_GLOBAL(int,DES_check_key); /* defaults to false */
69 71
70static const unsigned char odd_parity[256]={ 72static const unsigned char odd_parity[256]={
@@ -405,3 +407,5 @@ void des_fixup_key_parity(des_cblock *key)
405 des_set_odd_parity(key); 407 des_set_odd_parity(key);
406 } 408 }
407*/ 409*/
410
411#endif /* ndef OPENSSL_FIPS */
diff --git a/src/lib/libssl/src/crypto/dh/Makefile b/src/lib/libssl/src/crypto/dh/Makefile
new file mode 100644
index 0000000000..c091a8130a
--- /dev/null
+++ b/src/lib/libssl/src/crypto/dh/Makefile
@@ -0,0 +1,131 @@
1#
2# SSLeay/crypto/dh/Makefile
3#
4
5DIR= dh
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST= dhtest.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= dh_asn1.c dh_gen.c dh_key.c dh_lib.c dh_check.c dh_err.c
26LIBOBJ= dh_asn1.o dh_gen.o dh_key.o dh_lib.o dh_check.o dh_err.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= dh.h
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80dh_asn1.o: ../../e_os.h ../../include/openssl/asn1.h
81dh_asn1.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
82dh_asn1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
83dh_asn1.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
84dh_asn1.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
85dh_asn1.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
86dh_asn1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
87dh_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
88dh_asn1.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
89dh_asn1.o: ../../include/openssl/symhacks.h ../cryptlib.h dh_asn1.c
90dh_check.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
91dh_check.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
92dh_check.o: ../../include/openssl/dh.h ../../include/openssl/e_os2.h
93dh_check.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
94dh_check.o: ../../include/openssl/opensslconf.h
95dh_check.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
96dh_check.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
97dh_check.o: ../../include/openssl/symhacks.h ../cryptlib.h dh_check.c
98dh_err.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
99dh_err.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
100dh_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
101dh_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
102dh_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
103dh_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
104dh_err.o: ../../include/openssl/symhacks.h dh_err.c
105dh_gen.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
106dh_gen.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
107dh_gen.o: ../../include/openssl/dh.h ../../include/openssl/e_os2.h
108dh_gen.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
109dh_gen.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
110dh_gen.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
111dh_gen.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
112dh_gen.o: ../cryptlib.h dh_gen.c
113dh_key.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
114dh_key.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
115dh_key.o: ../../include/openssl/dh.h ../../include/openssl/e_os2.h
116dh_key.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
117dh_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
118dh_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
119dh_key.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
120dh_key.o: ../../include/openssl/symhacks.h ../cryptlib.h dh_key.c
121dh_lib.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
122dh_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
123dh_lib.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
124dh_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
125dh_lib.o: ../../include/openssl/engine.h ../../include/openssl/err.h
126dh_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
127dh_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
128dh_lib.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
129dh_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
130dh_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
131dh_lib.o: ../cryptlib.h dh_lib.c
diff --git a/src/lib/libssl/src/crypto/dh/dh_check.c b/src/lib/libssl/src/crypto/dh/dh_check.c
index f0373f7d68..a7e9920efb 100644
--- a/src/lib/libssl/src/crypto/dh/dh_check.c
+++ b/src/lib/libssl/src/crypto/dh/dh_check.c
@@ -70,6 +70,8 @@
70 * should hold. 70 * should hold.
71 */ 71 */
72 72
73#ifndef OPENSSL_FIPS
74
73int DH_check(const DH *dh, int *ret) 75int DH_check(const DH *dh, int *ret)
74 { 76 {
75 int ok=0; 77 int ok=0;
@@ -118,3 +120,5 @@ err:
118 if (q != NULL) BN_free(q); 120 if (q != NULL) BN_free(q);
119 return(ok); 121 return(ok);
120 } 122 }
123
124#endif
diff --git a/src/lib/libssl/src/crypto/dh/dh_err.c b/src/lib/libssl/src/crypto/dh/dh_err.c
index d837950aec..c2715044c9 100644
--- a/src/lib/libssl/src/crypto/dh/dh_err.c
+++ b/src/lib/libssl/src/crypto/dh/dh_err.c
@@ -1,6 +1,6 @@
1/* crypto/dh/dh_err.c */ 1/* crypto/dh/dh_err.c */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 1999-2002 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 1999-2003 The OpenSSL Project. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
diff --git a/src/lib/libssl/src/crypto/dh/dh_gen.c b/src/lib/libssl/src/crypto/dh/dh_gen.c
index 06f78b35ab..23777f5a16 100644
--- a/src/lib/libssl/src/crypto/dh/dh_gen.c
+++ b/src/lib/libssl/src/crypto/dh/dh_gen.c
@@ -86,6 +86,9 @@
86 * It's just as OK (and in some sense better) to use a generator of the 86 * It's just as OK (and in some sense better) to use a generator of the
87 * order-q subgroup. 87 * order-q subgroup.
88 */ 88 */
89
90#ifndef OPENSSL_FIPS
91
89DH *DH_generate_parameters(int prime_len, int generator, 92DH *DH_generate_parameters(int prime_len, int generator,
90 void (*callback)(int,int,void *), void *cb_arg) 93 void (*callback)(int,int,void *), void *cb_arg)
91 { 94 {
@@ -146,6 +149,7 @@ DH *DH_generate_parameters(int prime_len, int generator,
146 if (callback != NULL) callback(3,0,cb_arg); 149 if (callback != NULL) callback(3,0,cb_arg);
147 ret->p=p; 150 ret->p=p;
148 ret->g=BN_new(); 151 ret->g=BN_new();
152 if (ret->g == NULL) goto err;
149 if (!BN_set_word(ret->g,g)) goto err; 153 if (!BN_set_word(ret->g,g)) goto err;
150 ok=1; 154 ok=1;
151err: 155err:
@@ -167,3 +171,5 @@ err:
167 } 171 }
168 return(ret); 172 return(ret);
169 } 173 }
174
175#endif
diff --git a/src/lib/libssl/src/crypto/dh/dh_key.c b/src/lib/libssl/src/crypto/dh/dh_key.c
index 77f2f50b51..ff125c2296 100644
--- a/src/lib/libssl/src/crypto/dh/dh_key.c
+++ b/src/lib/libssl/src/crypto/dh/dh_key.c
@@ -62,6 +62,8 @@
62#include <openssl/rand.h> 62#include <openssl/rand.h>
63#include <openssl/dh.h> 63#include <openssl/dh.h>
64 64
65#ifndef OPENSSL_FIPS
66
65static int generate_key(DH *dh); 67static int generate_key(DH *dh);
66static int compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh); 68static int compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh);
67static int dh_bn_mod_exp(const DH *dh, BIGNUM *r, 69static int dh_bn_mod_exp(const DH *dh, BIGNUM *r,
@@ -220,3 +222,5 @@ static int dh_finish(DH *dh)
220 BN_MONT_CTX_free((BN_MONT_CTX *)dh->method_mont_p); 222 BN_MONT_CTX_free((BN_MONT_CTX *)dh->method_mont_p);
221 return(1); 223 return(1);
222 } 224 }
225
226#endif
diff --git a/src/lib/libssl/src/crypto/dsa/Makefile b/src/lib/libssl/src/crypto/dsa/Makefile
new file mode 100644
index 0000000000..3a55058973
--- /dev/null
+++ b/src/lib/libssl/src/crypto/dsa/Makefile
@@ -0,0 +1,173 @@
1#
2# SSLeay/crypto/dsa/Makefile
3#
4
5DIR= dsa
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=dsatest.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= dsa_gen.c dsa_key.c dsa_lib.c dsa_asn1.c dsa_vrf.c dsa_sign.c \
26 dsa_err.c dsa_ossl.c
27LIBOBJ= dsa_gen.o dsa_key.o dsa_lib.o dsa_asn1.o dsa_vrf.o dsa_sign.o \
28 dsa_err.o dsa_ossl.o
29
30SRC= $(LIBSRC)
31
32EXHEADER= dsa.h
33HEADER= $(EXHEADER)
34
35ALL= $(GENERAL) $(SRC) $(HEADER)
36
37top:
38 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
39
40all: lib
41
42lib: $(LIBOBJ)
43 $(AR) $(LIB) $(LIBOBJ)
44 $(RANLIB) $(LIB) || echo Never mind.
45 @touch lib
46
47files:
48 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
49
50links:
51 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
52 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
53 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
54
55install:
56 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
57 do \
58 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
59 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
60 done;
61
62tags:
63 ctags $(SRC)
64
65tests:
66
67lint:
68 lint -DLINT $(INCLUDES) $(SRC)>fluff
69
70depend:
71 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
72
73dclean:
74 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
75 mv -f Makefile.new $(MAKEFILE)
76
77clean:
78 rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
79
80# DO NOT DELETE THIS LINE -- make depend depends on it.
81
82dsa_asn1.o: ../../e_os.h ../../include/openssl/asn1.h
83dsa_asn1.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
84dsa_asn1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
85dsa_asn1.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
86dsa_asn1.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
87dsa_asn1.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
88dsa_asn1.o: ../../include/openssl/opensslconf.h
89dsa_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
90dsa_asn1.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
91dsa_asn1.o: ../../include/openssl/symhacks.h ../cryptlib.h dsa_asn1.c
92dsa_err.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
93dsa_err.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
94dsa_err.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
95dsa_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
96dsa_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
97dsa_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
98dsa_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
99dsa_err.o: dsa_err.c
100dsa_gen.o: ../../e_os.h ../../include/openssl/aes.h
101dsa_gen.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
102dsa_gen.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
103dsa_gen.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
104dsa_gen.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
105dsa_gen.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
106dsa_gen.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
107dsa_gen.o: ../../include/openssl/err.h ../../include/openssl/evp.h
108dsa_gen.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
109dsa_gen.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
110dsa_gen.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
111dsa_gen.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
112dsa_gen.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
113dsa_gen.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
114dsa_gen.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
115dsa_gen.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
116dsa_gen.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
117dsa_gen.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
118dsa_gen.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
119dsa_gen.o: ../../include/openssl/ui_compat.h ../cryptlib.h dsa_gen.c
120dsa_key.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
121dsa_key.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
122dsa_key.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
123dsa_key.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
124dsa_key.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
125dsa_key.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
126dsa_key.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
127dsa_key.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
128dsa_key.o: ../cryptlib.h dsa_key.c
129dsa_lib.o: ../../e_os.h ../../include/openssl/asn1.h
130dsa_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
131dsa_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
132dsa_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
133dsa_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
134dsa_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
135dsa_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
136dsa_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
137dsa_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
138dsa_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
139dsa_lib.o: ../../include/openssl/ui.h ../cryptlib.h dsa_lib.c
140dsa_ossl.o: ../../e_os.h ../../include/openssl/asn1.h
141dsa_ossl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
142dsa_ossl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
143dsa_ossl.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
144dsa_ossl.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
145dsa_ossl.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
146dsa_ossl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
147dsa_ossl.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
148dsa_ossl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
149dsa_ossl.o: ../cryptlib.h dsa_ossl.c
150dsa_sign.o: ../../e_os.h ../../include/openssl/asn1.h
151dsa_sign.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
152dsa_sign.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
153dsa_sign.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
154dsa_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
155dsa_sign.o: ../../include/openssl/err.h ../../include/openssl/fips.h
156dsa_sign.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
157dsa_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
158dsa_sign.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
159dsa_sign.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
160dsa_sign.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
161dsa_sign.o: ../cryptlib.h dsa_sign.c
162dsa_vrf.o: ../../e_os.h ../../include/openssl/asn1.h
163dsa_vrf.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
164dsa_vrf.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
165dsa_vrf.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
166dsa_vrf.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
167dsa_vrf.o: ../../include/openssl/engine.h ../../include/openssl/err.h
168dsa_vrf.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
169dsa_vrf.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
170dsa_vrf.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
171dsa_vrf.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
172dsa_vrf.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
173dsa_vrf.o: ../../include/openssl/ui.h ../cryptlib.h dsa_vrf.c
diff --git a/src/lib/libssl/src/crypto/dsa/dsa.h b/src/lib/libssl/src/crypto/dsa/dsa.h
index 9b3baadf2c..225ff391f9 100644
--- a/src/lib/libssl/src/crypto/dsa/dsa.h
+++ b/src/lib/libssl/src/crypto/dsa/dsa.h
@@ -81,6 +81,10 @@
81 81
82#define DSA_FLAG_CACHE_MONT_P 0x01 82#define DSA_FLAG_CACHE_MONT_P 0x01
83 83
84#if defined(OPENSSL_FIPS)
85#define FIPS_DSA_SIZE_T int
86#endif
87
84#ifdef __cplusplus 88#ifdef __cplusplus
85extern "C" { 89extern "C" {
86#endif 90#endif
diff --git a/src/lib/libssl/src/crypto/dsa/dsa_gen.c b/src/lib/libssl/src/crypto/dsa/dsa_gen.c
index dc9c249310..e40afeea51 100644
--- a/src/lib/libssl/src/crypto/dsa/dsa_gen.c
+++ b/src/lib/libssl/src/crypto/dsa/dsa_gen.c
@@ -80,6 +80,7 @@
80#include <openssl/rand.h> 80#include <openssl/rand.h>
81#include <openssl/sha.h> 81#include <openssl/sha.h>
82 82
83#ifndef OPENSSL_FIPS
83DSA *DSA_generate_parameters(int bits, 84DSA *DSA_generate_parameters(int bits,
84 unsigned char *seed_in, int seed_len, 85 unsigned char *seed_in, int seed_len,
85 int *counter_ret, unsigned long *h_ret, 86 int *counter_ret, unsigned long *h_ret,
@@ -127,8 +128,9 @@ DSA *DSA_generate_parameters(int bits,
127 c = BN_CTX_get(ctx2); 128 c = BN_CTX_get(ctx2);
128 p = BN_CTX_get(ctx2); 129 p = BN_CTX_get(ctx2);
129 test = BN_CTX_get(ctx2); 130 test = BN_CTX_get(ctx2);
131 if (test == NULL) goto err;
130 132
131 BN_lshift(test,BN_value_one(),bits-1); 133 if (!BN_lshift(test,BN_value_one(),bits-1)) goto err;
132 134
133 for (;;) 135 for (;;)
134 { 136 {
@@ -196,7 +198,7 @@ DSA *DSA_generate_parameters(int bits,
196 callback(0,counter,cb_arg); 198 callback(0,counter,cb_arg);
197 199
198 /* step 7 */ 200 /* step 7 */
199 BN_zero(W); 201 if (!BN_zero(W)) goto err;
200 /* now 'buf' contains "SEED + offset - 1" */ 202 /* now 'buf' contains "SEED + offset - 1" */
201 for (k=0; k<=n; k++) 203 for (k=0; k<=n; k++)
202 { 204 {
@@ -212,20 +214,20 @@ DSA *DSA_generate_parameters(int bits,
212 /* step 8 */ 214 /* step 8 */
213 if (!BN_bin2bn(md,SHA_DIGEST_LENGTH,r0)) 215 if (!BN_bin2bn(md,SHA_DIGEST_LENGTH,r0))
214 goto err; 216 goto err;
215 BN_lshift(r0,r0,160*k); 217 if (!BN_lshift(r0,r0,160*k)) goto err;
216 BN_add(W,W,r0); 218 if (!BN_add(W,W,r0)) goto err;
217 } 219 }
218 220
219 /* more of step 8 */ 221 /* more of step 8 */
220 BN_mask_bits(W,bits-1); 222 if (!BN_mask_bits(W,bits-1)) goto err;
221 BN_copy(X,W); /* this should be ok */ 223 if (!BN_copy(X,W)) goto err;
222 BN_add(X,X,test); /* this should be ok */ 224 if (!BN_add(X,X,test)) goto err;
223 225
224 /* step 9 */ 226 /* step 9 */
225 BN_lshift1(r0,q); 227 if (!BN_lshift1(r0,q)) goto err;
226 BN_mod(c,X,r0,ctx); 228 if (!BN_mod(c,X,r0,ctx)) goto err;
227 BN_sub(r0,c,BN_value_one()); 229 if (!BN_sub(r0,c,BN_value_one())) goto err;
228 BN_sub(p,X,r0); 230 if (!BN_sub(p,X,r0)) goto err;
229 231
230 /* step 10 */ 232 /* step 10 */
231 if (BN_cmp(p,test) >= 0) 233 if (BN_cmp(p,test) >= 0)
@@ -251,18 +253,18 @@ end:
251 253
252 /* We now need to generate g */ 254 /* We now need to generate g */
253 /* Set r0=(p-1)/q */ 255 /* Set r0=(p-1)/q */
254 BN_sub(test,p,BN_value_one()); 256 if (!BN_sub(test,p,BN_value_one())) goto err;
255 BN_div(r0,NULL,test,q,ctx); 257 if (!BN_div(r0,NULL,test,q,ctx)) goto err;
256 258
257 BN_set_word(test,h); 259 if (!BN_set_word(test,h)) goto err;
258 BN_MONT_CTX_set(mont,p,ctx); 260 if (!BN_MONT_CTX_set(mont,p,ctx)) goto err;
259 261
260 for (;;) 262 for (;;)
261 { 263 {
262 /* g=test^r0%p */ 264 /* g=test^r0%p */
263 BN_mod_exp_mont(g,test,r0,p,ctx,mont); 265 if (!BN_mod_exp_mont(g,test,r0,p,ctx,mont)) goto err;
264 if (!BN_is_one(g)) break; 266 if (!BN_is_one(g)) break;
265 BN_add(test,test,BN_value_one()); 267 if (!BN_add(test,test,BN_value_one())) goto err;
266 h++; 268 h++;
267 } 269 }
268 270
@@ -279,6 +281,11 @@ err:
279 ret->p=BN_dup(p); 281 ret->p=BN_dup(p);
280 ret->q=BN_dup(q); 282 ret->q=BN_dup(q);
281 ret->g=BN_dup(g); 283 ret->g=BN_dup(g);
284 if (ret->p == NULL || ret->q == NULL || ret->g == NULL)
285 {
286 ok=0;
287 goto err;
288 }
282 if ((m > 1) && (seed_in != NULL)) memcpy(seed_in,seed,20); 289 if ((m > 1) && (seed_in != NULL)) memcpy(seed_in,seed,20);
283 if (counter_ret != NULL) *counter_ret=counter; 290 if (counter_ret != NULL) *counter_ret=counter;
284 if (h_ret != NULL) *h_ret=h; 291 if (h_ret != NULL) *h_ret=h;
@@ -293,4 +300,6 @@ err:
293 if (mont != NULL) BN_MONT_CTX_free(mont); 300 if (mont != NULL) BN_MONT_CTX_free(mont);
294 return(ok?ret:NULL); 301 return(ok?ret:NULL);
295 } 302 }
296#endif 303#endif /* ndef OPENSSL_FIPS */
304#endif /* ndef OPENSSL_NO_SHA */
305
diff --git a/src/lib/libssl/src/crypto/dsa/dsa_key.c b/src/lib/libssl/src/crypto/dsa/dsa_key.c
index ef87c3e637..30607ca579 100644
--- a/src/lib/libssl/src/crypto/dsa/dsa_key.c
+++ b/src/lib/libssl/src/crypto/dsa/dsa_key.c
@@ -64,6 +64,7 @@
64#include <openssl/dsa.h> 64#include <openssl/dsa.h>
65#include <openssl/rand.h> 65#include <openssl/rand.h>
66 66
67#ifndef OPENSSL_FIPS
67int DSA_generate_key(DSA *dsa) 68int DSA_generate_key(DSA *dsa)
68 { 69 {
69 int ok=0; 70 int ok=0;
@@ -103,3 +104,4 @@ err:
103 return(ok); 104 return(ok);
104 } 105 }
105#endif 106#endif
107#endif
diff --git a/src/lib/libssl/src/crypto/dsa/dsa_ossl.c b/src/lib/libssl/src/crypto/dsa/dsa_ossl.c
index b9e7f3ea5c..f1a85afcde 100644
--- a/src/lib/libssl/src/crypto/dsa/dsa_ossl.c
+++ b/src/lib/libssl/src/crypto/dsa/dsa_ossl.c
@@ -65,6 +65,7 @@
65#include <openssl/rand.h> 65#include <openssl/rand.h>
66#include <openssl/asn1.h> 66#include <openssl/asn1.h>
67 67
68#ifndef OPENSSL_FIPS
68static DSA_SIG *dsa_do_sign(const unsigned char *dgst, int dlen, DSA *dsa); 69static DSA_SIG *dsa_do_sign(const unsigned char *dgst, int dlen, DSA *dsa);
69static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp); 70static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp);
70static int dsa_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig, 71static int dsa_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig,
@@ -346,3 +347,4 @@ static int dsa_bn_mod_exp(DSA *dsa, BIGNUM *r, BIGNUM *a, const BIGNUM *p,
346{ 347{
347 return BN_mod_exp_mont(r, a, p, m, ctx, m_ctx); 348 return BN_mod_exp_mont(r, a, p, m, ctx, m_ctx);
348} 349}
350#endif
diff --git a/src/lib/libssl/src/crypto/dsa/dsa_sign.c b/src/lib/libssl/src/crypto/dsa/dsa_sign.c
index 89205026f0..3c9753bac3 100644
--- a/src/lib/libssl/src/crypto/dsa/dsa_sign.c
+++ b/src/lib/libssl/src/crypto/dsa/dsa_sign.c
@@ -64,9 +64,17 @@
64#include <openssl/dsa.h> 64#include <openssl/dsa.h>
65#include <openssl/rand.h> 65#include <openssl/rand.h>
66#include <openssl/asn1.h> 66#include <openssl/asn1.h>
67#ifndef OPENSSL_NO_ENGINE
68#include <openssl/engine.h>
69#endif
70#include <openssl/fips.h>
67 71
68DSA_SIG * DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa) 72DSA_SIG * DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa)
69 { 73 {
74#ifdef OPENSSL_FIPS
75 if(FIPS_mode() && !FIPS_dsa_check(dsa))
76 return NULL;
77#endif
70 return dsa->meth->dsa_do_sign(dgst, dlen, dsa); 78 return dsa->meth->dsa_do_sign(dgst, dlen, dsa);
71 } 79 }
72 80
@@ -87,6 +95,10 @@ int DSA_sign(int type, const unsigned char *dgst, int dlen, unsigned char *sig,
87 95
88int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp) 96int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)
89 { 97 {
98#ifdef OPENSSL_FIPS
99 if(FIPS_mode() && !FIPS_dsa_check(dsa))
100 return 0;
101#endif
90 return dsa->meth->dsa_sign_setup(dsa, ctx_in, kinvp, rp); 102 return dsa->meth->dsa_sign_setup(dsa, ctx_in, kinvp, rp);
91 } 103 }
92 104
diff --git a/src/lib/libssl/src/crypto/dsa/dsa_vrf.c b/src/lib/libssl/src/crypto/dsa/dsa_vrf.c
index c4aeddd056..8ef0c45025 100644
--- a/src/lib/libssl/src/crypto/dsa/dsa_vrf.c
+++ b/src/lib/libssl/src/crypto/dsa/dsa_vrf.c
@@ -65,10 +65,18 @@
65#include <openssl/rand.h> 65#include <openssl/rand.h>
66#include <openssl/asn1.h> 66#include <openssl/asn1.h>
67#include <openssl/asn1_mac.h> 67#include <openssl/asn1_mac.h>
68#ifndef OPENSSL_NO_ENGINE
69#include <openssl/engine.h>
70#endif
71#include <openssl/fips.h>
68 72
69int DSA_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig, 73int DSA_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig,
70 DSA *dsa) 74 DSA *dsa)
71 { 75 {
76#ifdef OPENSSL_FIPS
77 if(FIPS_mode() && !FIPS_dsa_check(dsa))
78 return -1;
79#endif
72 return dsa->meth->dsa_do_verify(dgst, dgst_len, sig, dsa); 80 return dsa->meth->dsa_do_verify(dgst, dgst_len, sig, dsa);
73 } 81 }
74 82
diff --git a/src/lib/libssl/src/crypto/dso/Makefile b/src/lib/libssl/src/crypto/dso/Makefile
new file mode 100644
index 0000000000..168951bc3e
--- /dev/null
+++ b/src/lib/libssl/src/crypto/dso/Makefile
@@ -0,0 +1,140 @@
1#
2# SSLeay/crypto/dso/Makefile
3#
4
5DIR= dso
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= dso_dl.c dso_dlfcn.c dso_err.c dso_lib.c dso_null.c \
26 dso_openssl.c dso_win32.c dso_vms.c
27LIBOBJ= dso_dl.o dso_dlfcn.o dso_err.o dso_lib.o dso_null.o \
28 dso_openssl.o dso_win32.o dso_vms.o
29
30SRC= $(LIBSRC)
31
32EXHEADER= dso.h
33HEADER= $(EXHEADER)
34
35ALL= $(GENERAL) $(SRC) $(HEADER)
36
37top:
38 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
39
40all: lib
41
42lib: $(LIBOBJ)
43 $(AR) $(LIB) $(LIBOBJ)
44 $(RANLIB) $(LIB) || echo Never mind.
45 @touch lib
46
47files:
48 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
49
50links:
51 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
52 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
53 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
54
55install:
56 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
57 do \
58 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
59 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
60 done;
61
62tags:
63 ctags $(SRC)
64
65tests:
66
67lint:
68 lint -DLINT $(INCLUDES) $(SRC)>fluff
69
70depend:
71 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
72
73dclean:
74 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
75 mv -f Makefile.new $(MAKEFILE)
76
77clean:
78 rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
79
80# DO NOT DELETE THIS LINE -- make depend depends on it.
81
82dso_dl.o: ../../e_os.h ../../include/openssl/bio.h
83dso_dl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
84dso_dl.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
85dso_dl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
86dso_dl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
87dso_dl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
88dso_dl.o: ../../include/openssl/symhacks.h ../cryptlib.h dso_dl.c
89dso_dlfcn.o: ../../e_os.h ../../include/openssl/bio.h
90dso_dlfcn.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
91dso_dlfcn.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
92dso_dlfcn.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
93dso_dlfcn.o: ../../include/openssl/opensslconf.h
94dso_dlfcn.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
95dso_dlfcn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
96dso_dlfcn.o: ../cryptlib.h dso_dlfcn.c
97dso_err.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
98dso_err.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
99dso_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
100dso_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
101dso_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
102dso_err.o: ../../include/openssl/symhacks.h dso_err.c
103dso_lib.o: ../../e_os.h ../../include/openssl/bio.h
104dso_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
105dso_lib.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
106dso_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
107dso_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
108dso_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
109dso_lib.o: ../../include/openssl/symhacks.h ../cryptlib.h dso_lib.c
110dso_null.o: ../../e_os.h ../../include/openssl/bio.h
111dso_null.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
112dso_null.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
113dso_null.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
114dso_null.o: ../../include/openssl/opensslconf.h
115dso_null.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
116dso_null.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
117dso_null.o: ../cryptlib.h dso_null.c
118dso_openssl.o: ../../e_os.h ../../include/openssl/bio.h
119dso_openssl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
120dso_openssl.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
121dso_openssl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
122dso_openssl.o: ../../include/openssl/opensslconf.h
123dso_openssl.o: ../../include/openssl/opensslv.h
124dso_openssl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
125dso_openssl.o: ../../include/openssl/symhacks.h ../cryptlib.h dso_openssl.c
126dso_vms.o: ../../e_os.h ../../include/openssl/bio.h
127dso_vms.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
128dso_vms.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
129dso_vms.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
130dso_vms.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
131dso_vms.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
132dso_vms.o: ../../include/openssl/symhacks.h ../cryptlib.h dso_vms.c
133dso_win32.o: ../../e_os.h ../../include/openssl/bio.h
134dso_win32.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
135dso_win32.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
136dso_win32.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
137dso_win32.o: ../../include/openssl/opensslconf.h
138dso_win32.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
139dso_win32.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
140dso_win32.o: ../cryptlib.h dso_win32.c
diff --git a/src/lib/libssl/src/crypto/dso/dso_win32.c b/src/lib/libssl/src/crypto/dso/dso_win32.c
index 6c30deb250..3fa90eb27c 100644
--- a/src/lib/libssl/src/crypto/dso/dso_win32.c
+++ b/src/lib/libssl/src/crypto/dso/dso_win32.c
@@ -61,7 +61,7 @@
61#include "cryptlib.h" 61#include "cryptlib.h"
62#include <openssl/dso.h> 62#include <openssl/dso.h>
63 63
64#if !defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WINCE) 64#if !defined(DSO_WIN32)
65DSO_METHOD *DSO_METHOD_win32(void) 65DSO_METHOD *DSO_METHOD_win32(void)
66 { 66 {
67 return NULL; 67 return NULL;
diff --git a/src/lib/libssl/src/crypto/ec/Makefile b/src/lib/libssl/src/crypto/ec/Makefile
new file mode 100644
index 0000000000..8f03658ad4
--- /dev/null
+++ b/src/lib/libssl/src/crypto/ec/Makefile
@@ -0,0 +1,126 @@
1#
2# crypto/ec/Makefile
3#
4
5DIR= ec
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=ectest.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= ec_lib.c ecp_smpl.c ecp_mont.c ecp_recp.c ecp_nist.c ec_cvt.c ec_mult.c \
26 ec_err.c
27
28LIBOBJ= ec_lib.o ecp_smpl.o ecp_mont.o ecp_recp.o ecp_nist.o ec_cvt.o ec_mult.o \
29 ec_err.o
30
31SRC= $(LIBSRC)
32
33EXHEADER= ec.h
34HEADER= ec_lcl.h $(EXHEADER)
35
36ALL= $(GENERAL) $(SRC) $(HEADER)
37
38top:
39 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
40
41all: lib
42
43lib: $(LIBOBJ)
44 $(AR) $(LIB) $(LIBOBJ)
45 $(RANLIB) $(LIB) || echo Never mind.
46 @touch lib
47
48files:
49 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
50
51links:
52 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
53 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
54 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
55
56install:
57 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
58 do \
59 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
60 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
61 done;
62
63tags:
64 ctags $(SRC)
65
66tests:
67
68lint:
69 lint -DLINT $(INCLUDES) $(SRC)>fluff
70
71depend:
72 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
73
74dclean:
75 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
76 mv -f Makefile.new $(MAKEFILE)
77
78clean:
79 rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
80
81# DO NOT DELETE THIS LINE -- make depend depends on it.
82
83ec_cvt.o: ../../include/openssl/bn.h ../../include/openssl/e_os2.h
84ec_cvt.o: ../../include/openssl/ec.h ../../include/openssl/opensslconf.h
85ec_cvt.o: ../../include/openssl/symhacks.h ec_cvt.c ec_lcl.h
86ec_err.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
87ec_err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
88ec_err.o: ../../include/openssl/ec.h ../../include/openssl/err.h
89ec_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
90ec_err.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
91ec_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
92ec_err.o: ec_err.c
93ec_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
94ec_lib.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
95ec_lib.o: ../../include/openssl/ec.h ../../include/openssl/err.h
96ec_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
97ec_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
98ec_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
99ec_lib.o: ec_lcl.h ec_lib.c
100ec_mult.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
101ec_mult.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
102ec_mult.o: ../../include/openssl/ec.h ../../include/openssl/err.h
103ec_mult.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
104ec_mult.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
105ec_mult.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
106ec_mult.o: ec_lcl.h ec_mult.c
107ecp_mont.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
108ecp_mont.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
109ecp_mont.o: ../../include/openssl/ec.h ../../include/openssl/err.h
110ecp_mont.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
111ecp_mont.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
112ecp_mont.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
113ecp_mont.o: ec_lcl.h ecp_mont.c
114ecp_nist.o: ../../include/openssl/bn.h ../../include/openssl/e_os2.h
115ecp_nist.o: ../../include/openssl/ec.h ../../include/openssl/opensslconf.h
116ecp_nist.o: ../../include/openssl/symhacks.h ec_lcl.h ecp_nist.c
117ecp_recp.o: ../../include/openssl/bn.h ../../include/openssl/e_os2.h
118ecp_recp.o: ../../include/openssl/ec.h ../../include/openssl/opensslconf.h
119ecp_recp.o: ../../include/openssl/symhacks.h ec_lcl.h ecp_recp.c
120ecp_smpl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
121ecp_smpl.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
122ecp_smpl.o: ../../include/openssl/ec.h ../../include/openssl/err.h
123ecp_smpl.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
124ecp_smpl.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
125ecp_smpl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
126ecp_smpl.o: ec_lcl.h ecp_smpl.c
diff --git a/src/lib/libssl/src/crypto/engine/Makefile b/src/lib/libssl/src/crypto/engine/Makefile
new file mode 100644
index 0000000000..38f83f1654
--- /dev/null
+++ b/src/lib/libssl/src/crypto/engine/Makefile
@@ -0,0 +1,536 @@
1#
2# OpenSSL/crypto/engine/Makefile
3#
4
5DIR= engine
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST= enginetest.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= eng_err.c eng_lib.c eng_list.c eng_init.c eng_ctrl.c \
26 eng_table.c eng_pkey.c eng_fat.c eng_all.c \
27 tb_rsa.c tb_dsa.c tb_dh.c tb_rand.c tb_cipher.c tb_digest.c \
28 eng_openssl.c eng_dyn.c eng_cnf.c \
29 hw_atalla.c hw_cswift.c hw_ncipher.c hw_nuron.c hw_ubsec.c \
30 hw_cryptodev.c hw_aep.c hw_sureware.c hw_4758_cca.c
31LIBOBJ= eng_err.o eng_lib.o eng_list.o eng_init.o eng_ctrl.o \
32 eng_table.o eng_pkey.o eng_fat.o eng_all.o \
33 tb_rsa.o tb_dsa.o tb_dh.o tb_rand.o tb_cipher.o tb_digest.o \
34 eng_openssl.o eng_dyn.o eng_cnf.o \
35 hw_atalla.o hw_cswift.o hw_ncipher.o hw_nuron.o hw_ubsec.o \
36 hw_cryptodev.o hw_aep.o hw_sureware.o hw_4758_cca.o
37
38SRC= $(LIBSRC)
39
40EXHEADER= engine.h
41HEADER= $(EXHEADER)
42
43ALL= $(GENERAL) $(SRC) $(HEADER)
44
45top:
46 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
47
48all: lib
49
50lib: $(LIBOBJ)
51 $(AR) $(LIB) $(LIBOBJ)
52 $(RANLIB) $(LIB) || echo Never mind.
53 @touch lib
54
55files:
56 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
57
58links:
59 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
60 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
61 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
62
63install:
64 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
65 do \
66 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
67 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
68 done;
69
70tags:
71 ctags $(SRC)
72
73errors:
74 $(PERL) $(TOP)/util/mkerr.pl -conf hw.ec \
75 -nostatic -staticloader -write hw_*.c
76
77tests:
78
79lint:
80 lint -DLINT $(INCLUDES) $(SRC)>fluff
81
82depend:
83 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
84
85dclean:
86 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
87 mv -f Makefile.new $(MAKEFILE)
88
89clean:
90 rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
91
92# DO NOT DELETE THIS LINE -- make depend depends on it.
93
94eng_all.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
95eng_all.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
96eng_all.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
97eng_all.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
98eng_all.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
99eng_all.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
100eng_all.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
101eng_all.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
102eng_all.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
103eng_all.o: ../../include/openssl/ui.h eng_all.c eng_int.h
104eng_cnf.o: ../../e_os.h ../../include/openssl/asn1.h
105eng_cnf.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
106eng_cnf.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
107eng_cnf.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
108eng_cnf.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
109eng_cnf.o: ../../include/openssl/engine.h ../../include/openssl/err.h
110eng_cnf.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
111eng_cnf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
112eng_cnf.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
113eng_cnf.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
114eng_cnf.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
115eng_cnf.o: ../cryptlib.h eng_cnf.c
116eng_ctrl.o: ../../e_os.h ../../include/openssl/asn1.h
117eng_ctrl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
118eng_ctrl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
119eng_ctrl.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
120eng_ctrl.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
121eng_ctrl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
122eng_ctrl.o: ../../include/openssl/opensslconf.h
123eng_ctrl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
124eng_ctrl.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
125eng_ctrl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
126eng_ctrl.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
127eng_ctrl.o: ../cryptlib.h eng_ctrl.c eng_int.h
128eng_dyn.o: ../../e_os.h ../../include/openssl/asn1.h
129eng_dyn.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
130eng_dyn.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
131eng_dyn.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
132eng_dyn.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
133eng_dyn.o: ../../include/openssl/engine.h ../../include/openssl/err.h
134eng_dyn.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
135eng_dyn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
136eng_dyn.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
137eng_dyn.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
138eng_dyn.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
139eng_dyn.o: ../cryptlib.h eng_dyn.c eng_int.h
140eng_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
141eng_err.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
142eng_err.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
143eng_err.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
144eng_err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
145eng_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
146eng_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
147eng_err.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
148eng_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
149eng_err.o: ../../include/openssl/ui.h eng_err.c
150eng_fat.o: ../../e_os.h ../../include/openssl/asn1.h
151eng_fat.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
152eng_fat.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
153eng_fat.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
154eng_fat.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
155eng_fat.o: ../../include/openssl/engine.h ../../include/openssl/err.h
156eng_fat.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
157eng_fat.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
158eng_fat.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
159eng_fat.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
160eng_fat.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
161eng_fat.o: ../cryptlib.h eng_fat.c eng_int.h
162eng_init.o: ../../e_os.h ../../include/openssl/asn1.h
163eng_init.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
164eng_init.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
165eng_init.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
166eng_init.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
167eng_init.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
168eng_init.o: ../../include/openssl/opensslconf.h
169eng_init.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
170eng_init.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
171eng_init.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
172eng_init.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
173eng_init.o: ../cryptlib.h eng_init.c eng_int.h
174eng_lib.o: ../../e_os.h ../../include/openssl/asn1.h
175eng_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
176eng_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
177eng_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
178eng_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
179eng_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
180eng_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
181eng_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
182eng_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
183eng_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
184eng_lib.o: ../../include/openssl/ui.h ../cryptlib.h eng_int.h eng_lib.c
185eng_list.o: ../../e_os.h ../../include/openssl/asn1.h
186eng_list.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
187eng_list.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
188eng_list.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
189eng_list.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
190eng_list.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
191eng_list.o: ../../include/openssl/opensslconf.h
192eng_list.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
193eng_list.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
194eng_list.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
195eng_list.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
196eng_list.o: ../cryptlib.h eng_int.h eng_list.c
197eng_openssl.o: ../../e_os.h ../../include/openssl/aes.h
198eng_openssl.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
199eng_openssl.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
200eng_openssl.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
201eng_openssl.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
202eng_openssl.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
203eng_openssl.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
204eng_openssl.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
205eng_openssl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
206eng_openssl.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
207eng_openssl.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
208eng_openssl.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
209eng_openssl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
210eng_openssl.o: ../../include/openssl/opensslconf.h
211eng_openssl.o: ../../include/openssl/opensslv.h
212eng_openssl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
213eng_openssl.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
214eng_openssl.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
215eng_openssl.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
216eng_openssl.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
217eng_openssl.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
218eng_openssl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
219eng_openssl.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
220eng_openssl.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
221eng_openssl.o: ../cryptlib.h eng_openssl.c
222eng_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
223eng_pkey.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
224eng_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
225eng_pkey.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
226eng_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
227eng_pkey.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
228eng_pkey.o: ../../include/openssl/opensslconf.h
229eng_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
230eng_pkey.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
231eng_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
232eng_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
233eng_pkey.o: ../cryptlib.h eng_int.h eng_pkey.c
234eng_table.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
235eng_table.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
236eng_table.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
237eng_table.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
238eng_table.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
239eng_table.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
240eng_table.o: ../../include/openssl/engine.h ../../include/openssl/err.h
241eng_table.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
242eng_table.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
243eng_table.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
244eng_table.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
245eng_table.o: ../../include/openssl/objects.h
246eng_table.o: ../../include/openssl/opensslconf.h
247eng_table.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
248eng_table.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
249eng_table.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
250eng_table.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
251eng_table.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
252eng_table.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
253eng_table.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
254eng_table.o: eng_int.h eng_table.c
255hw_4758_cca.o: ../../e_os.h ../../include/openssl/aes.h
256hw_4758_cca.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
257hw_4758_cca.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
258hw_4758_cca.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
259hw_4758_cca.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
260hw_4758_cca.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
261hw_4758_cca.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
262hw_4758_cca.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
263hw_4758_cca.o: ../../include/openssl/err.h ../../include/openssl/evp.h
264hw_4758_cca.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
265hw_4758_cca.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
266hw_4758_cca.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
267hw_4758_cca.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
268hw_4758_cca.o: ../../include/openssl/opensslconf.h
269hw_4758_cca.o: ../../include/openssl/opensslv.h
270hw_4758_cca.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
271hw_4758_cca.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
272hw_4758_cca.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
273hw_4758_cca.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
274hw_4758_cca.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
275hw_4758_cca.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
276hw_4758_cca.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
277hw_4758_cca.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
278hw_4758_cca.o: ../cryptlib.h hw_4758_cca.c hw_4758_cca_err.c hw_4758_cca_err.h
279hw_4758_cca.o: vendor_defns/hw_4758_cca.h
280hw_aep.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
281hw_aep.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
282hw_aep.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
283hw_aep.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
284hw_aep.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
285hw_aep.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
286hw_aep.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
287hw_aep.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
288hw_aep.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
289hw_aep.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
290hw_aep.o: ../../include/openssl/ui.h hw_aep.c hw_aep_err.c hw_aep_err.h
291hw_aep.o: vendor_defns/aep.h
292hw_atalla.o: ../../e_os.h ../../include/openssl/asn1.h
293hw_atalla.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
294hw_atalla.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
295hw_atalla.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
296hw_atalla.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
297hw_atalla.o: ../../include/openssl/engine.h ../../include/openssl/err.h
298hw_atalla.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
299hw_atalla.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
300hw_atalla.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
301hw_atalla.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
302hw_atalla.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
303hw_atalla.o: ../cryptlib.h hw_atalla.c hw_atalla_err.c hw_atalla_err.h
304hw_atalla.o: vendor_defns/atalla.h
305hw_cryptodev.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
306hw_cryptodev.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
307hw_cryptodev.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
308hw_cryptodev.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
309hw_cryptodev.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
310hw_cryptodev.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
311hw_cryptodev.o: ../../include/openssl/engine.h ../../include/openssl/err.h
312hw_cryptodev.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
313hw_cryptodev.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
314hw_cryptodev.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
315hw_cryptodev.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
316hw_cryptodev.o: ../../include/openssl/objects.h
317hw_cryptodev.o: ../../include/openssl/opensslconf.h
318hw_cryptodev.o: ../../include/openssl/opensslv.h
319hw_cryptodev.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
320hw_cryptodev.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
321hw_cryptodev.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
322hw_cryptodev.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
323hw_cryptodev.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
324hw_cryptodev.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
325hw_cryptodev.o: ../../include/openssl/ui_compat.h hw_cryptodev.c
326hw_cswift.o: ../../e_os.h ../../include/openssl/asn1.h
327hw_cswift.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
328hw_cswift.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
329hw_cswift.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
330hw_cswift.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
331hw_cswift.o: ../../include/openssl/engine.h ../../include/openssl/err.h
332hw_cswift.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
333hw_cswift.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
334hw_cswift.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
335hw_cswift.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
336hw_cswift.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
337hw_cswift.o: ../cryptlib.h hw_cswift.c hw_cswift_err.c hw_cswift_err.h
338hw_cswift.o: vendor_defns/cswift.h
339hw_ncipher.o: ../../e_os.h ../../include/openssl/aes.h
340hw_ncipher.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
341hw_ncipher.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
342hw_ncipher.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
343hw_ncipher.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
344hw_ncipher.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
345hw_ncipher.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
346hw_ncipher.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
347hw_ncipher.o: ../../include/openssl/err.h ../../include/openssl/evp.h
348hw_ncipher.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
349hw_ncipher.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
350hw_ncipher.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
351hw_ncipher.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
352hw_ncipher.o: ../../include/openssl/opensslconf.h
353hw_ncipher.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
354hw_ncipher.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
355hw_ncipher.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
356hw_ncipher.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
357hw_ncipher.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
358hw_ncipher.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
359hw_ncipher.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
360hw_ncipher.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
361hw_ncipher.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
362hw_ncipher.o: ../../include/openssl/x509_vfy.h ../cryptlib.h hw_ncipher.c
363hw_ncipher.o: hw_ncipher_err.c hw_ncipher_err.h vendor_defns/hwcryptohook.h
364hw_nuron.o: ../../e_os.h ../../include/openssl/asn1.h
365hw_nuron.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
366hw_nuron.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
367hw_nuron.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
368hw_nuron.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
369hw_nuron.o: ../../include/openssl/engine.h ../../include/openssl/err.h
370hw_nuron.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
371hw_nuron.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
372hw_nuron.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
373hw_nuron.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
374hw_nuron.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
375hw_nuron.o: ../cryptlib.h hw_nuron.c hw_nuron_err.c hw_nuron_err.h
376hw_sureware.o: ../../e_os.h ../../include/openssl/aes.h
377hw_sureware.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
378hw_sureware.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
379hw_sureware.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
380hw_sureware.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
381hw_sureware.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
382hw_sureware.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
383hw_sureware.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
384hw_sureware.o: ../../include/openssl/err.h ../../include/openssl/evp.h
385hw_sureware.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
386hw_sureware.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
387hw_sureware.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
388hw_sureware.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
389hw_sureware.o: ../../include/openssl/opensslconf.h
390hw_sureware.o: ../../include/openssl/opensslv.h
391hw_sureware.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
392hw_sureware.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
393hw_sureware.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
394hw_sureware.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
395hw_sureware.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
396hw_sureware.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
397hw_sureware.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
398hw_sureware.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
399hw_sureware.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
400hw_sureware.o: ../cryptlib.h eng_int.h engine.h hw_sureware.c hw_sureware_err.c
401hw_sureware.o: hw_sureware_err.h vendor_defns/sureware.h
402hw_ubsec.o: ../../e_os.h ../../include/openssl/asn1.h
403hw_ubsec.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
404hw_ubsec.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
405hw_ubsec.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
406hw_ubsec.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
407hw_ubsec.o: ../../include/openssl/engine.h ../../include/openssl/err.h
408hw_ubsec.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
409hw_ubsec.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
410hw_ubsec.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
411hw_ubsec.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
412hw_ubsec.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
413hw_ubsec.o: ../cryptlib.h hw_ubsec.c hw_ubsec_err.c hw_ubsec_err.h
414hw_ubsec.o: vendor_defns/hw_ubsec.h
415tb_cipher.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
416tb_cipher.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
417tb_cipher.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
418tb_cipher.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
419tb_cipher.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
420tb_cipher.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
421tb_cipher.o: ../../include/openssl/engine.h ../../include/openssl/err.h
422tb_cipher.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
423tb_cipher.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
424tb_cipher.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
425tb_cipher.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
426tb_cipher.o: ../../include/openssl/objects.h
427tb_cipher.o: ../../include/openssl/opensslconf.h
428tb_cipher.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
429tb_cipher.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
430tb_cipher.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
431tb_cipher.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
432tb_cipher.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
433tb_cipher.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
434tb_cipher.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
435tb_cipher.o: eng_int.h tb_cipher.c
436tb_dh.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
437tb_dh.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
438tb_dh.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
439tb_dh.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
440tb_dh.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
441tb_dh.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
442tb_dh.o: ../../include/openssl/engine.h ../../include/openssl/err.h
443tb_dh.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
444tb_dh.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
445tb_dh.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
446tb_dh.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
447tb_dh.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
448tb_dh.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
449tb_dh.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
450tb_dh.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
451tb_dh.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
452tb_dh.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
453tb_dh.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
454tb_dh.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h eng_int.h
455tb_dh.o: tb_dh.c
456tb_digest.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
457tb_digest.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
458tb_digest.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
459tb_digest.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
460tb_digest.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
461tb_digest.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
462tb_digest.o: ../../include/openssl/engine.h ../../include/openssl/err.h
463tb_digest.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
464tb_digest.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
465tb_digest.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
466tb_digest.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
467tb_digest.o: ../../include/openssl/objects.h
468tb_digest.o: ../../include/openssl/opensslconf.h
469tb_digest.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
470tb_digest.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
471tb_digest.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
472tb_digest.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
473tb_digest.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
474tb_digest.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
475tb_digest.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
476tb_digest.o: eng_int.h tb_digest.c
477tb_dsa.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
478tb_dsa.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
479tb_dsa.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
480tb_dsa.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
481tb_dsa.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
482tb_dsa.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
483tb_dsa.o: ../../include/openssl/engine.h ../../include/openssl/err.h
484tb_dsa.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
485tb_dsa.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
486tb_dsa.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
487tb_dsa.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
488tb_dsa.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
489tb_dsa.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
490tb_dsa.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
491tb_dsa.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
492tb_dsa.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
493tb_dsa.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
494tb_dsa.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
495tb_dsa.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
496tb_dsa.o: eng_int.h tb_dsa.c
497tb_rand.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
498tb_rand.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
499tb_rand.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
500tb_rand.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
501tb_rand.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
502tb_rand.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
503tb_rand.o: ../../include/openssl/engine.h ../../include/openssl/err.h
504tb_rand.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
505tb_rand.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
506tb_rand.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
507tb_rand.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
508tb_rand.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
509tb_rand.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
510tb_rand.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
511tb_rand.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
512tb_rand.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
513tb_rand.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
514tb_rand.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
515tb_rand.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
516tb_rand.o: eng_int.h tb_rand.c
517tb_rsa.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
518tb_rsa.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
519tb_rsa.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
520tb_rsa.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
521tb_rsa.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
522tb_rsa.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
523tb_rsa.o: ../../include/openssl/engine.h ../../include/openssl/err.h
524tb_rsa.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
525tb_rsa.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
526tb_rsa.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
527tb_rsa.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
528tb_rsa.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
529tb_rsa.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
530tb_rsa.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
531tb_rsa.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
532tb_rsa.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
533tb_rsa.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
534tb_rsa.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
535tb_rsa.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
536tb_rsa.o: eng_int.h tb_rsa.c
diff --git a/src/lib/libssl/src/crypto/engine/hw_cryptodev.c b/src/lib/libssl/src/crypto/engine/hw_cryptodev.c
index 467c0daa1b..3e7fff1c1e 100644
--- a/src/lib/libssl/src/crypto/engine/hw_cryptodev.c
+++ b/src/lib/libssl/src/crypto/engine/hw_cryptodev.c
@@ -77,7 +77,7 @@ static int cryptodev_max_iv(int cipher);
77static int cryptodev_key_length_valid(int cipher, int len); 77static int cryptodev_key_length_valid(int cipher, int len);
78static int cipher_nid_to_cryptodev(int nid); 78static int cipher_nid_to_cryptodev(int nid);
79static int get_cryptodev_ciphers(const int **cnids); 79static int get_cryptodev_ciphers(const int **cnids);
80static int get_cryptodev_digests(const int **cnids); 80/*static int get_cryptodev_digests(const int **cnids);*/
81static int cryptodev_usable_ciphers(const int **nids); 81static int cryptodev_usable_ciphers(const int **nids);
82static int cryptodev_usable_digests(const int **nids); 82static int cryptodev_usable_digests(const int **nids);
83static int cryptodev_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, 83static int cryptodev_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
@@ -137,6 +137,7 @@ static struct {
137 { 0, NID_undef, 0, 0, }, 137 { 0, NID_undef, 0, 0, },
138}; 138};
139 139
140#if 0 /* UNUSED */
140static struct { 141static struct {
141 int id; 142 int id;
142 int nid; 143 int nid;
@@ -149,6 +150,7 @@ static struct {
149 { CRYPTO_SHA1, NID_undef, }, 150 { CRYPTO_SHA1, NID_undef, },
150 { 0, NID_undef, }, 151 { 0, NID_undef, },
151}; 152};
153#endif
152 154
153/* 155/*
154 * Return a fd if /dev/crypto seems usable, 0 otherwise. 156 * Return a fd if /dev/crypto seems usable, 0 otherwise.
@@ -258,7 +260,7 @@ get_cryptodev_ciphers(const int **cnids)
258 int fd, i, count = 0; 260 int fd, i, count = 0;
259 261
260 if ((fd = get_dev_crypto()) < 0) { 262 if ((fd = get_dev_crypto()) < 0) {
261 *nids = NULL; 263 *cnids = NULL;
262 return (0); 264 return (0);
263 } 265 }
264 memset(&sess, 0, sizeof(sess)); 266 memset(&sess, 0, sizeof(sess));
@@ -289,6 +291,7 @@ get_cryptodev_ciphers(const int **cnids)
289 * returning them here is harmless, as long as we return NULL 291 * returning them here is harmless, as long as we return NULL
290 * when asked for a handler in the cryptodev_engine_digests routine 292 * when asked for a handler in the cryptodev_engine_digests routine
291 */ 293 */
294#if 0 /* UNUSED */
292static int 295static int
293get_cryptodev_digests(const int **cnids) 296get_cryptodev_digests(const int **cnids)
294{ 297{
@@ -297,7 +300,7 @@ get_cryptodev_digests(const int **cnids)
297 int fd, i, count = 0; 300 int fd, i, count = 0;
298 301
299 if ((fd = get_dev_crypto()) < 0) { 302 if ((fd = get_dev_crypto()) < 0) {
300 *nids = NULL; 303 *cnids = NULL;
301 return (0); 304 return (0);
302 } 305 }
303 memset(&sess, 0, sizeof(sess)); 306 memset(&sess, 0, sizeof(sess));
@@ -318,6 +321,7 @@ get_cryptodev_digests(const int **cnids)
318 *cnids = NULL; 321 *cnids = NULL;
319 return (count); 322 return (count);
320} 323}
324#endif
321 325
322/* 326/*
323 * Find the useable ciphers|digests from dev/crypto - this is the first 327 * Find the useable ciphers|digests from dev/crypto - this is the first
@@ -623,7 +627,7 @@ static int
623bn2crparam(const BIGNUM *a, struct crparam *crp) 627bn2crparam(const BIGNUM *a, struct crparam *crp)
624{ 628{
625 int i, j, k; 629 int i, j, k;
626 ssize_t words, bytes, bits; 630 ssize_t bytes, bits;
627 u_char *b; 631 u_char *b;
628 632
629 crp->crp_p = NULL; 633 crp->crp_p = NULL;
diff --git a/src/lib/libssl/src/crypto/engine/vendor_defns/sureware.h b/src/lib/libssl/src/crypto/engine/vendor_defns/sureware.h
index 1d3789219d..4bc22027f9 100644
--- a/src/lib/libssl/src/crypto/engine/vendor_defns/sureware.h
+++ b/src/lib/libssl/src/crypto/engine/vendor_defns/sureware.h
@@ -232,7 +232,7 @@ extern SW_EXPORT SureWareHook_Dsa_Sign_t SureWareHook_Dsa_Sign;
232* mlen,elen and dlen are all multiple of sizeof(unsigned long) 232* mlen,elen and dlen are all multiple of sizeof(unsigned long)
233*/ 233*/
234typedef int SureWareHook_Mod_Exp_t(char*const msg,int mlen,const unsigned long *mod, 234typedef int SureWareHook_Mod_Exp_t(char*const msg,int mlen,const unsigned long *mod,
235 int elen,const unsigned long *exp, 235 int elen,const unsigned long *exponent,
236 int dlen,unsigned long *data, 236 int dlen,unsigned long *data,
237 unsigned long *res); 237 unsigned long *res);
238extern SW_EXPORT SureWareHook_Mod_Exp_t SureWareHook_Mod_Exp; 238extern SW_EXPORT SureWareHook_Mod_Exp_t SureWareHook_Mod_Exp;
diff --git a/src/lib/libssl/src/crypto/err/Makefile b/src/lib/libssl/src/crypto/err/Makefile
new file mode 100644
index 0000000000..149f3e0eb9
--- /dev/null
+++ b/src/lib/libssl/src/crypto/err/Makefile
@@ -0,0 +1,118 @@
1#
2# SSLeay/crypto/err/Makefile
3#
4
5DIR= err
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=err.c err_all.c err_prn.c
26LIBOBJ=err.o err_all.o err_prn.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= err.h
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80err.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/buffer.h
81err.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
82err.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
83err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
84err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
85err.o: ../../include/openssl/symhacks.h ../cryptlib.h err.c
86err_all.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
87err_all.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
88err_all.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
89err_all.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
90err_all.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
91err_all.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
92err_all.o: ../../include/openssl/dsa.h ../../include/openssl/dso.h
93err_all.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
94err_all.o: ../../include/openssl/engine.h ../../include/openssl/err.h
95err_all.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
96err_all.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
97err_all.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
98err_all.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
99err_all.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
100err_all.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
101err_all.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
102err_all.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs12.h
103err_all.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
104err_all.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
105err_all.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
106err_all.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
107err_all.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
108err_all.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
109err_all.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
110err_all.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
111err_all.o: err_all.c
112err_prn.o: ../../e_os.h ../../include/openssl/bio.h
113err_prn.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
114err_prn.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
115err_prn.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
116err_prn.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
117err_prn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
118err_prn.o: ../cryptlib.h err_prn.c
diff --git a/src/lib/libssl/src/crypto/err/err.c b/src/lib/libssl/src/crypto/err/err.c
index 792f329600..c78790a54c 100644
--- a/src/lib/libssl/src/crypto/err/err.c
+++ b/src/lib/libssl/src/crypto/err/err.c
@@ -149,6 +149,7 @@ static ERR_STRING_DATA ERR_str_libraries[]=
149{ERR_PACK(ERR_LIB_DSO,0,0) ,"DSO support routines"}, 149{ERR_PACK(ERR_LIB_DSO,0,0) ,"DSO support routines"},
150{ERR_PACK(ERR_LIB_ENGINE,0,0) ,"engine routines"}, 150{ERR_PACK(ERR_LIB_ENGINE,0,0) ,"engine routines"},
151{ERR_PACK(ERR_LIB_OCSP,0,0) ,"OCSP routines"}, 151{ERR_PACK(ERR_LIB_OCSP,0,0) ,"OCSP routines"},
152{ERR_PACK(ERR_LIB_FIPS,0,0) ,"FIPS routines"},
152{0,NULL}, 153{0,NULL},
153 }; 154 };
154 155
@@ -167,6 +168,7 @@ static ERR_STRING_DATA ERR_str_functs[]=
167#endif 168#endif
168 {ERR_PACK(0,SYS_F_OPENDIR,0), "opendir"}, 169 {ERR_PACK(0,SYS_F_OPENDIR,0), "opendir"},
169 {ERR_PACK(0,SYS_F_FREAD,0), "fread"}, 170 {ERR_PACK(0,SYS_F_FREAD,0), "fread"},
171 {ERR_PACK(0,SYS_F_GETADDRINFO,0), "getaddrinfo"},
170 {0,NULL}, 172 {0,NULL},
171 }; 173 };
172 174
diff --git a/src/lib/libssl/src/crypto/err/err.h b/src/lib/libssl/src/crypto/err/err.h
index 8faa3a7b4f..2efa18866a 100644
--- a/src/lib/libssl/src/crypto/err/err.h
+++ b/src/lib/libssl/src/crypto/err/err.h
@@ -131,6 +131,7 @@ typedef struct err_state_st
131#define ERR_LIB_OCSP 39 131#define ERR_LIB_OCSP 39
132#define ERR_LIB_UI 40 132#define ERR_LIB_UI 40
133#define ERR_LIB_COMP 41 133#define ERR_LIB_COMP 41
134#define ERR_LIB_FIPS 42
134 135
135#define ERR_LIB_USER 128 136#define ERR_LIB_USER 128
136 137
@@ -159,6 +160,7 @@ typedef struct err_state_st
159#define OCSPerr(f,r) ERR_PUT_error(ERR_LIB_OCSP,(f),(r),__FILE__,__LINE__) 160#define OCSPerr(f,r) ERR_PUT_error(ERR_LIB_OCSP,(f),(r),__FILE__,__LINE__)
160#define UIerr(f,r) ERR_PUT_error(ERR_LIB_UI,(f),(r),__FILE__,__LINE__) 161#define UIerr(f,r) ERR_PUT_error(ERR_LIB_UI,(f),(r),__FILE__,__LINE__)
161#define COMPerr(f,r) ERR_PUT_error(ERR_LIB_COMP,(f),(r),__FILE__,__LINE__) 162#define COMPerr(f,r) ERR_PUT_error(ERR_LIB_COMP,(f),(r),__FILE__,__LINE__)
163#define FIPSerr(f,r) ERR_PUT_error(ERR_LIB_FIPS,(f),(r),__FILE__,__LINE__)
162 164
163/* Borland C seems too stupid to be able to shift and do longs in 165/* Borland C seems too stupid to be able to shift and do longs in
164 * the pre-processor :-( */ 166 * the pre-processor :-( */
@@ -183,6 +185,7 @@ typedef struct err_state_st
183#define SYS_F_WSASTARTUP 9 /* Winsock stuff */ 185#define SYS_F_WSASTARTUP 9 /* Winsock stuff */
184#define SYS_F_OPENDIR 10 186#define SYS_F_OPENDIR 10
185#define SYS_F_FREAD 11 187#define SYS_F_FREAD 11
188#define SYS_F_GETADDRINFO 12
186 189
187 190
188/* reasons */ 191/* reasons */
diff --git a/src/lib/libssl/src/crypto/err/err_all.c b/src/lib/libssl/src/crypto/err/err_all.c
index dc505d9d9d..4dc9300892 100644
--- a/src/lib/libssl/src/crypto/err/err_all.c
+++ b/src/lib/libssl/src/crypto/err/err_all.c
@@ -87,6 +87,7 @@
87#endif 87#endif
88#include <openssl/ocsp.h> 88#include <openssl/ocsp.h>
89#include <openssl/err.h> 89#include <openssl/err.h>
90#include <openssl/fips.h>
90 91
91void ERR_load_crypto_strings(void) 92void ERR_load_crypto_strings(void)
92 { 93 {
@@ -130,4 +131,7 @@ void ERR_load_crypto_strings(void)
130 ERR_load_OCSP_strings(); 131 ERR_load_OCSP_strings();
131 ERR_load_UI_strings(); 132 ERR_load_UI_strings();
132#endif 133#endif
134#ifdef OPENSSL_FIPS
135 ERR_load_FIPS_strings();
136#endif
133 } 137 }
diff --git a/src/lib/libssl/src/crypto/err/openssl.ec b/src/lib/libssl/src/crypto/err/openssl.ec
index 29a69dfdd4..447a7f87ed 100644
--- a/src/lib/libssl/src/crypto/err/openssl.ec
+++ b/src/lib/libssl/src/crypto/err/openssl.ec
@@ -27,6 +27,7 @@ L DSO crypto/dso/dso.h crypto/dso/dso_err.c
27L ENGINE crypto/engine/engine.h crypto/engine/eng_err.c 27L ENGINE crypto/engine/engine.h crypto/engine/eng_err.c
28L OCSP crypto/ocsp/ocsp.h crypto/ocsp/ocsp_err.c 28L OCSP crypto/ocsp/ocsp.h crypto/ocsp/ocsp_err.c
29L UI crypto/ui/ui.h crypto/ui/ui_err.c 29L UI crypto/ui/ui.h crypto/ui/ui_err.c
30L FIPS fips/fips.h fips/fips_err.h
30 31
31# additional header files to be scanned for function names 32# additional header files to be scanned for function names
32L NONE crypto/x509/x509_vfy.h NONE 33L NONE crypto/x509/x509_vfy.h NONE
diff --git a/src/lib/libssl/src/crypto/evp/Makefile b/src/lib/libssl/src/crypto/evp/Makefile
new file mode 100644
index 0000000000..5027a3855a
--- /dev/null
+++ b/src/lib/libssl/src/crypto/evp/Makefile
@@ -0,0 +1,1076 @@
1#
2# SSLeay/crypto/evp/Makefile
3#
4
5DIR= evp
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=evp_test.c
22TESTDATA=evptests.txt
23APPS=
24
25LIB=$(TOP)/libcrypto.a
26LIBSRC= encode.c digest.c evp_enc.c evp_key.c evp_acnf.c \
27 e_des.c e_bf.c e_idea.c e_des3.c \
28 e_rc4.c e_aes.c names.c \
29 e_xcbc_d.c e_rc2.c e_cast.c e_rc5.c \
30 m_null.c m_md2.c m_md4.c m_md5.c m_sha.c m_sha1.c \
31 m_dss.c m_dss1.c m_mdc2.c m_ripemd.c \
32 p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c p_dec.c \
33 bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c \
34 c_all.c c_allc.c c_alld.c evp_lib.c bio_ok.c \
35 evp_pkey.c evp_pbe.c p5_crpt.c p5_crpt2.c \
36 e_old.c
37
38LIBOBJ= encode.o digest.o evp_enc.o evp_key.o evp_acnf.o \
39 e_des.o e_bf.o e_idea.o e_des3.o \
40 e_rc4.o e_aes.o names.o \
41 e_xcbc_d.o e_rc2.o e_cast.o e_rc5.o \
42 m_null.o m_md2.o m_md4.o m_md5.o m_sha.o m_sha1.o \
43 m_dss.o m_dss1.o m_mdc2.o m_ripemd.o \
44 p_open.o p_seal.o p_sign.o p_verify.o p_lib.o p_enc.o p_dec.o \
45 bio_md.o bio_b64.o bio_enc.o evp_err.o e_null.o \
46 c_all.o c_allc.o c_alld.o evp_lib.o bio_ok.o \
47 evp_pkey.o evp_pbe.o p5_crpt.o p5_crpt2.o \
48 e_old.o
49
50SRC= $(LIBSRC)
51
52EXHEADER= evp.h
53HEADER= $(EXHEADER)
54
55ALL= $(GENERAL) $(SRC) $(HEADER)
56
57top:
58 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
59
60all: lib
61
62lib: $(LIBOBJ)
63 $(AR) $(LIB) $(LIBOBJ)
64 $(RANLIB) $(LIB) || echo Never mind.
65 @touch lib
66
67files:
68 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
69
70links:
71 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
72 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
73 cp $(TESTDATA) ../../test
74 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
75
76install:
77 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
78 do \
79 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
80 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
81 done;
82
83tags:
84 ctags $(SRC)
85
86tests:
87
88lint:
89 lint -DLINT $(INCLUDES) $(SRC)>fluff
90
91depend:
92 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(LIBSRC)
93
94dclean:
95 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
96 mv -f Makefile.new $(MAKEFILE)
97
98clean:
99 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
100
101# DO NOT DELETE THIS LINE -- make depend depends on it.
102
103bio_b64.o: ../../e_os.h ../../include/openssl/aes.h
104bio_b64.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
105bio_b64.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
106bio_b64.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
107bio_b64.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
108bio_b64.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
109bio_b64.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
110bio_b64.o: ../../include/openssl/err.h ../../include/openssl/evp.h
111bio_b64.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
112bio_b64.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
113bio_b64.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
114bio_b64.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
115bio_b64.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
116bio_b64.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc2.h
117bio_b64.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
118bio_b64.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
119bio_b64.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
120bio_b64.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
121bio_b64.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
122bio_b64.o: ../cryptlib.h bio_b64.c
123bio_enc.o: ../../e_os.h ../../include/openssl/aes.h
124bio_enc.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
125bio_enc.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
126bio_enc.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
127bio_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
128bio_enc.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
129bio_enc.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
130bio_enc.o: ../../include/openssl/err.h ../../include/openssl/evp.h
131bio_enc.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
132bio_enc.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
133bio_enc.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
134bio_enc.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
135bio_enc.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
136bio_enc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc2.h
137bio_enc.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
138bio_enc.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
139bio_enc.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
140bio_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
141bio_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
142bio_enc.o: ../cryptlib.h bio_enc.c
143bio_md.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
144bio_md.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
145bio_md.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
146bio_md.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
147bio_md.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
148bio_md.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
149bio_md.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
150bio_md.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
151bio_md.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
152bio_md.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
153bio_md.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
154bio_md.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
155bio_md.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
156bio_md.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
157bio_md.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
158bio_md.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
159bio_md.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
160bio_md.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
161bio_md.o: ../../include/openssl/ui_compat.h ../cryptlib.h bio_md.c
162bio_ok.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
163bio_ok.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
164bio_ok.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
165bio_ok.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
166bio_ok.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
167bio_ok.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
168bio_ok.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
169bio_ok.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
170bio_ok.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
171bio_ok.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
172bio_ok.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
173bio_ok.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
174bio_ok.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
175bio_ok.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
176bio_ok.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
177bio_ok.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
178bio_ok.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
179bio_ok.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
180bio_ok.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
181bio_ok.o: ../cryptlib.h bio_ok.c
182c_all.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
183c_all.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
184c_all.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
185c_all.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
186c_all.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
187c_all.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
188c_all.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
189c_all.o: ../../include/openssl/err.h ../../include/openssl/evp.h
190c_all.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
191c_all.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
192c_all.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
193c_all.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
194c_all.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
195c_all.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
196c_all.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
197c_all.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
198c_all.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
199c_all.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
200c_all.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
201c_all.o: ../../include/openssl/ui_compat.h ../cryptlib.h c_all.c
202c_allc.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
203c_allc.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
204c_allc.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
205c_allc.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
206c_allc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
207c_allc.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
208c_allc.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
209c_allc.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
210c_allc.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
211c_allc.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
212c_allc.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
213c_allc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
214c_allc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
215c_allc.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
216c_allc.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
217c_allc.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
218c_allc.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
219c_allc.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
220c_allc.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
221c_allc.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
222c_allc.o: ../../include/openssl/x509_vfy.h ../cryptlib.h c_allc.c
223c_alld.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
224c_alld.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
225c_alld.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
226c_alld.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
227c_alld.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
228c_alld.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
229c_alld.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
230c_alld.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
231c_alld.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
232c_alld.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
233c_alld.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
234c_alld.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
235c_alld.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
236c_alld.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
237c_alld.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
238c_alld.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
239c_alld.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
240c_alld.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
241c_alld.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
242c_alld.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
243c_alld.o: ../../include/openssl/x509_vfy.h ../cryptlib.h c_alld.c
244digest.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
245digest.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
246digest.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
247digest.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
248digest.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
249digest.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
250digest.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
251digest.o: ../../include/openssl/err.h ../../include/openssl/evp.h
252digest.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
253digest.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
254digest.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
255digest.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
256digest.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
257digest.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
258digest.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
259digest.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
260digest.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
261digest.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
262digest.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
263digest.o: ../../include/openssl/ui_compat.h ../cryptlib.h digest.c
264e_aes.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
265e_aes.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
266e_aes.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
267e_aes.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
268e_aes.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
269e_aes.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
270e_aes.o: ../../include/openssl/err.h ../../include/openssl/evp.h
271e_aes.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
272e_aes.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
273e_aes.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
274e_aes.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
275e_aes.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
276e_aes.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc2.h
277e_aes.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
278e_aes.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
279e_aes.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
280e_aes.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
281e_aes.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h e_aes.c
282e_aes.o: evp_locl.h
283e_bf.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
284e_bf.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
285e_bf.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
286e_bf.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
287e_bf.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
288e_bf.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
289e_bf.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
290e_bf.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
291e_bf.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
292e_bf.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
293e_bf.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
294e_bf.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
295e_bf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
296e_bf.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
297e_bf.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
298e_bf.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
299e_bf.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
300e_bf.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
301e_bf.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_bf.c evp_locl.h
302e_cast.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
303e_cast.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
304e_cast.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
305e_cast.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
306e_cast.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
307e_cast.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
308e_cast.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
309e_cast.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
310e_cast.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
311e_cast.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
312e_cast.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
313e_cast.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
314e_cast.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
315e_cast.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
316e_cast.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
317e_cast.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
318e_cast.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
319e_cast.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
320e_cast.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_cast.c evp_locl.h
321e_des.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
322e_des.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
323e_des.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
324e_des.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
325e_des.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
326e_des.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
327e_des.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
328e_des.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
329e_des.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
330e_des.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
331e_des.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
332e_des.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
333e_des.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
334e_des.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
335e_des.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
336e_des.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
337e_des.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
338e_des.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
339e_des.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_des.c evp_locl.h
340e_des3.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
341e_des3.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
342e_des3.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
343e_des3.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
344e_des3.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
345e_des3.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
346e_des3.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
347e_des3.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
348e_des3.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
349e_des3.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
350e_des3.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
351e_des3.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
352e_des3.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
353e_des3.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
354e_des3.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
355e_des3.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
356e_des3.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
357e_des3.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
358e_des3.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_des3.c evp_locl.h
359e_idea.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
360e_idea.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
361e_idea.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
362e_idea.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
363e_idea.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
364e_idea.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
365e_idea.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
366e_idea.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
367e_idea.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
368e_idea.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
369e_idea.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
370e_idea.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
371e_idea.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
372e_idea.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
373e_idea.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
374e_idea.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
375e_idea.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
376e_idea.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
377e_idea.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_idea.c evp_locl.h
378e_null.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
379e_null.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
380e_null.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
381e_null.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
382e_null.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
383e_null.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
384e_null.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
385e_null.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
386e_null.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
387e_null.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
388e_null.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
389e_null.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
390e_null.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
391e_null.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
392e_null.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
393e_null.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
394e_null.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
395e_null.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
396e_null.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_null.c
397e_old.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
398e_old.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
399e_old.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
400e_old.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
401e_old.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
402e_old.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
403e_old.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
404e_old.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
405e_old.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
406e_old.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
407e_old.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
408e_old.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc2.h
409e_old.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
410e_old.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
411e_old.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
412e_old.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
413e_old.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h e_old.c
414e_rc2.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
415e_rc2.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
416e_rc2.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
417e_rc2.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
418e_rc2.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
419e_rc2.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
420e_rc2.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
421e_rc2.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
422e_rc2.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
423e_rc2.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
424e_rc2.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
425e_rc2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
426e_rc2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
427e_rc2.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
428e_rc2.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
429e_rc2.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
430e_rc2.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
431e_rc2.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
432e_rc2.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_rc2.c evp_locl.h
433e_rc4.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
434e_rc4.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
435e_rc4.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
436e_rc4.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
437e_rc4.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
438e_rc4.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
439e_rc4.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
440e_rc4.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
441e_rc4.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
442e_rc4.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
443e_rc4.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
444e_rc4.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
445e_rc4.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
446e_rc4.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
447e_rc4.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
448e_rc4.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
449e_rc4.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
450e_rc4.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
451e_rc4.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_rc4.c evp_locl.h
452e_rc5.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
453e_rc5.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
454e_rc5.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
455e_rc5.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
456e_rc5.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
457e_rc5.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
458e_rc5.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
459e_rc5.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
460e_rc5.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
461e_rc5.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
462e_rc5.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
463e_rc5.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
464e_rc5.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
465e_rc5.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
466e_rc5.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
467e_rc5.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
468e_rc5.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
469e_rc5.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
470e_rc5.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_rc5.c evp_locl.h
471e_xcbc_d.o: ../../e_os.h ../../include/openssl/aes.h
472e_xcbc_d.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
473e_xcbc_d.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
474e_xcbc_d.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
475e_xcbc_d.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
476e_xcbc_d.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
477e_xcbc_d.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
478e_xcbc_d.o: ../../include/openssl/err.h ../../include/openssl/evp.h
479e_xcbc_d.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
480e_xcbc_d.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
481e_xcbc_d.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
482e_xcbc_d.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
483e_xcbc_d.o: ../../include/openssl/opensslconf.h
484e_xcbc_d.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
485e_xcbc_d.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
486e_xcbc_d.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
487e_xcbc_d.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
488e_xcbc_d.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
489e_xcbc_d.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
490e_xcbc_d.o: ../../include/openssl/ui_compat.h ../cryptlib.h e_xcbc_d.c
491encode.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
492encode.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
493encode.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
494encode.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
495encode.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
496encode.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
497encode.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
498encode.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
499encode.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
500encode.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
501encode.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
502encode.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
503encode.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
504encode.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
505encode.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
506encode.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
507encode.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
508encode.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
509encode.o: ../../include/openssl/ui_compat.h ../cryptlib.h encode.c
510evp_acnf.o: ../../e_os.h ../../include/openssl/aes.h
511evp_acnf.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
512evp_acnf.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
513evp_acnf.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
514evp_acnf.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
515evp_acnf.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
516evp_acnf.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
517evp_acnf.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
518evp_acnf.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
519evp_acnf.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
520evp_acnf.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
521evp_acnf.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
522evp_acnf.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
523evp_acnf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
524evp_acnf.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
525evp_acnf.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
526evp_acnf.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
527evp_acnf.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
528evp_acnf.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
529evp_acnf.o: ../../include/openssl/ui_compat.h ../cryptlib.h evp_acnf.c
530evp_enc.o: ../../e_os.h ../../include/openssl/aes.h
531evp_enc.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
532evp_enc.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
533evp_enc.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
534evp_enc.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
535evp_enc.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
536evp_enc.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
537evp_enc.o: ../../include/openssl/engine.h ../../include/openssl/err.h
538evp_enc.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
539evp_enc.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
540evp_enc.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
541evp_enc.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
542evp_enc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
543evp_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
544evp_enc.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
545evp_enc.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
546evp_enc.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
547evp_enc.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
548evp_enc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
549evp_enc.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
550evp_enc.o: ../cryptlib.h evp_enc.c evp_locl.h
551evp_err.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
552evp_err.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
553evp_err.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
554evp_err.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
555evp_err.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
556evp_err.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
557evp_err.o: ../../include/openssl/err.h ../../include/openssl/evp.h
558evp_err.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
559evp_err.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
560evp_err.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
561evp_err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
562evp_err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
563evp_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc2.h
564evp_err.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
565evp_err.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
566evp_err.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
567evp_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
568evp_err.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
569evp_err.o: evp_err.c
570evp_key.o: ../../e_os.h ../../include/openssl/aes.h
571evp_key.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
572evp_key.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
573evp_key.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
574evp_key.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
575evp_key.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
576evp_key.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
577evp_key.o: ../../include/openssl/err.h ../../include/openssl/evp.h
578evp_key.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
579evp_key.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
580evp_key.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
581evp_key.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
582evp_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
583evp_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
584evp_key.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
585evp_key.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
586evp_key.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
587evp_key.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
588evp_key.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
589evp_key.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
590evp_key.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_key.c
591evp_lib.o: ../../e_os.h ../../include/openssl/aes.h
592evp_lib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
593evp_lib.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
594evp_lib.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
595evp_lib.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
596evp_lib.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
597evp_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
598evp_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
599evp_lib.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
600evp_lib.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
601evp_lib.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
602evp_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
603evp_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
604evp_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc2.h
605evp_lib.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
606evp_lib.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
607evp_lib.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
608evp_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
609evp_lib.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
610evp_lib.o: ../cryptlib.h evp_lib.c
611evp_pbe.o: ../../e_os.h ../../include/openssl/aes.h
612evp_pbe.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
613evp_pbe.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
614evp_pbe.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
615evp_pbe.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
616evp_pbe.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
617evp_pbe.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
618evp_pbe.o: ../../include/openssl/err.h ../../include/openssl/evp.h
619evp_pbe.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
620evp_pbe.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
621evp_pbe.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
622evp_pbe.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
623evp_pbe.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
624evp_pbe.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
625evp_pbe.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
626evp_pbe.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
627evp_pbe.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
628evp_pbe.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
629evp_pbe.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
630evp_pbe.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
631evp_pbe.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_pbe.c
632evp_pkey.o: ../../e_os.h ../../include/openssl/aes.h
633evp_pkey.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
634evp_pkey.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
635evp_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
636evp_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
637evp_pkey.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
638evp_pkey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
639evp_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
640evp_pkey.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
641evp_pkey.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
642evp_pkey.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
643evp_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
644evp_pkey.o: ../../include/openssl/opensslconf.h
645evp_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
646evp_pkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
647evp_pkey.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
648evp_pkey.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
649evp_pkey.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
650evp_pkey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
651evp_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
652evp_pkey.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
653evp_pkey.o: ../../include/openssl/x509_vfy.h ../cryptlib.h evp_pkey.c
654m_dss.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
655m_dss.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
656m_dss.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
657m_dss.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
658m_dss.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
659m_dss.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
660m_dss.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
661m_dss.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
662m_dss.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
663m_dss.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
664m_dss.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
665m_dss.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
666m_dss.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
667m_dss.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
668m_dss.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
669m_dss.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
670m_dss.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
671m_dss.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
672m_dss.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
673m_dss.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
674m_dss.o: ../cryptlib.h m_dss.c
675m_dss1.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
676m_dss1.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
677m_dss1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
678m_dss1.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
679m_dss1.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
680m_dss1.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
681m_dss1.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
682m_dss1.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
683m_dss1.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
684m_dss1.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
685m_dss1.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
686m_dss1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
687m_dss1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
688m_dss1.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
689m_dss1.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
690m_dss1.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
691m_dss1.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
692m_dss1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
693m_dss1.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
694m_dss1.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
695m_dss1.o: ../cryptlib.h m_dss1.c
696m_md2.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
697m_md2.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
698m_md2.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
699m_md2.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
700m_md2.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
701m_md2.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
702m_md2.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
703m_md2.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
704m_md2.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
705m_md2.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
706m_md2.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
707m_md2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
708m_md2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
709m_md2.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
710m_md2.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
711m_md2.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
712m_md2.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
713m_md2.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
714m_md2.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
715m_md2.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
716m_md2.o: ../cryptlib.h evp_locl.h m_md2.c
717m_md4.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
718m_md4.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
719m_md4.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
720m_md4.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
721m_md4.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
722m_md4.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
723m_md4.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
724m_md4.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
725m_md4.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
726m_md4.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
727m_md4.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
728m_md4.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
729m_md4.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
730m_md4.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
731m_md4.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
732m_md4.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
733m_md4.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
734m_md4.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
735m_md4.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
736m_md4.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
737m_md4.o: ../cryptlib.h evp_locl.h m_md4.c
738m_md5.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
739m_md5.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
740m_md5.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
741m_md5.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
742m_md5.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
743m_md5.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
744m_md5.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
745m_md5.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
746m_md5.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
747m_md5.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
748m_md5.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
749m_md5.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
750m_md5.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
751m_md5.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
752m_md5.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
753m_md5.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
754m_md5.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
755m_md5.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
756m_md5.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
757m_md5.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
758m_md5.o: ../cryptlib.h evp_locl.h m_md5.c
759m_mdc2.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
760m_mdc2.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
761m_mdc2.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
762m_mdc2.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
763m_mdc2.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
764m_mdc2.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
765m_mdc2.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
766m_mdc2.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
767m_mdc2.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
768m_mdc2.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
769m_mdc2.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
770m_mdc2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
771m_mdc2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
772m_mdc2.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
773m_mdc2.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
774m_mdc2.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
775m_mdc2.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
776m_mdc2.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
777m_mdc2.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
778m_mdc2.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
779m_mdc2.o: ../cryptlib.h evp_locl.h m_mdc2.c
780m_null.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
781m_null.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
782m_null.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
783m_null.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
784m_null.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
785m_null.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
786m_null.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
787m_null.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
788m_null.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
789m_null.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
790m_null.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
791m_null.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
792m_null.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
793m_null.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
794m_null.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
795m_null.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
796m_null.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
797m_null.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
798m_null.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
799m_null.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
800m_null.o: ../cryptlib.h m_null.c
801m_ripemd.o: ../../e_os.h ../../include/openssl/aes.h
802m_ripemd.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
803m_ripemd.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
804m_ripemd.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
805m_ripemd.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
806m_ripemd.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
807m_ripemd.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
808m_ripemd.o: ../../include/openssl/err.h ../../include/openssl/evp.h
809m_ripemd.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
810m_ripemd.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
811m_ripemd.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
812m_ripemd.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
813m_ripemd.o: ../../include/openssl/opensslconf.h
814m_ripemd.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
815m_ripemd.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
816m_ripemd.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
817m_ripemd.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
818m_ripemd.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
819m_ripemd.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
820m_ripemd.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
821m_ripemd.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
822m_ripemd.o: ../cryptlib.h m_ripemd.c
823m_sha.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
824m_sha.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
825m_sha.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
826m_sha.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
827m_sha.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
828m_sha.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
829m_sha.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
830m_sha.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
831m_sha.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
832m_sha.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
833m_sha.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
834m_sha.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
835m_sha.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
836m_sha.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
837m_sha.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
838m_sha.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
839m_sha.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
840m_sha.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
841m_sha.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
842m_sha.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
843m_sha.o: ../cryptlib.h evp_locl.h m_sha.c
844m_sha1.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
845m_sha1.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
846m_sha1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
847m_sha1.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
848m_sha1.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
849m_sha1.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
850m_sha1.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
851m_sha1.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
852m_sha1.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
853m_sha1.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
854m_sha1.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
855m_sha1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
856m_sha1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
857m_sha1.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
858m_sha1.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
859m_sha1.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
860m_sha1.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
861m_sha1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
862m_sha1.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
863m_sha1.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
864m_sha1.o: ../cryptlib.h m_sha1.c
865names.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
866names.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
867names.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
868names.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
869names.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
870names.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
871names.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
872names.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
873names.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
874names.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
875names.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
876names.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
877names.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
878names.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
879names.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
880names.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
881names.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
882names.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
883names.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
884names.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
885names.o: ../cryptlib.h names.c
886p5_crpt.o: ../../e_os.h ../../include/openssl/aes.h
887p5_crpt.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
888p5_crpt.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
889p5_crpt.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
890p5_crpt.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
891p5_crpt.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
892p5_crpt.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
893p5_crpt.o: ../../include/openssl/err.h ../../include/openssl/evp.h
894p5_crpt.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
895p5_crpt.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
896p5_crpt.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
897p5_crpt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
898p5_crpt.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
899p5_crpt.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
900p5_crpt.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
901p5_crpt.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
902p5_crpt.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
903p5_crpt.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
904p5_crpt.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
905p5_crpt.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
906p5_crpt.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p5_crpt.c
907p5_crpt2.o: ../../e_os.h ../../include/openssl/aes.h
908p5_crpt2.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
909p5_crpt2.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
910p5_crpt2.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
911p5_crpt2.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
912p5_crpt2.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
913p5_crpt2.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
914p5_crpt2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
915p5_crpt2.o: ../../include/openssl/hmac.h ../../include/openssl/idea.h
916p5_crpt2.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
917p5_crpt2.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
918p5_crpt2.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
919p5_crpt2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
920p5_crpt2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
921p5_crpt2.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
922p5_crpt2.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
923p5_crpt2.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
924p5_crpt2.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
925p5_crpt2.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
926p5_crpt2.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
927p5_crpt2.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
928p5_crpt2.o: ../cryptlib.h p5_crpt2.c
929p_dec.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
930p_dec.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
931p_dec.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
932p_dec.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
933p_dec.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
934p_dec.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
935p_dec.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
936p_dec.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
937p_dec.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
938p_dec.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
939p_dec.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
940p_dec.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
941p_dec.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
942p_dec.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
943p_dec.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
944p_dec.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
945p_dec.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
946p_dec.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
947p_dec.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
948p_dec.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
949p_dec.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_dec.c
950p_enc.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
951p_enc.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
952p_enc.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
953p_enc.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
954p_enc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
955p_enc.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
956p_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
957p_enc.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
958p_enc.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
959p_enc.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
960p_enc.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
961p_enc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
962p_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
963p_enc.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
964p_enc.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
965p_enc.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
966p_enc.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
967p_enc.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
968p_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
969p_enc.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
970p_enc.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_enc.c
971p_lib.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
972p_lib.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
973p_lib.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
974p_lib.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
975p_lib.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
976p_lib.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
977p_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
978p_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
979p_lib.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
980p_lib.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
981p_lib.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
982p_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
983p_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
984p_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
985p_lib.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
986p_lib.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
987p_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
988p_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
989p_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
990p_lib.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
991p_lib.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_lib.c
992p_open.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
993p_open.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
994p_open.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
995p_open.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
996p_open.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
997p_open.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
998p_open.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
999p_open.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
1000p_open.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
1001p_open.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
1002p_open.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
1003p_open.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
1004p_open.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
1005p_open.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
1006p_open.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
1007p_open.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
1008p_open.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
1009p_open.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
1010p_open.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
1011p_open.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
1012p_open.o: ../cryptlib.h p_open.c
1013p_seal.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
1014p_seal.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
1015p_seal.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
1016p_seal.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
1017p_seal.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
1018p_seal.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
1019p_seal.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
1020p_seal.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
1021p_seal.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
1022p_seal.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
1023p_seal.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
1024p_seal.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
1025p_seal.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
1026p_seal.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
1027p_seal.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
1028p_seal.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
1029p_seal.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
1030p_seal.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
1031p_seal.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
1032p_seal.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
1033p_seal.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p_seal.c
1034p_sign.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
1035p_sign.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
1036p_sign.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
1037p_sign.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
1038p_sign.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
1039p_sign.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
1040p_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
1041p_sign.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
1042p_sign.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
1043p_sign.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
1044p_sign.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
1045p_sign.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
1046p_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
1047p_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
1048p_sign.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
1049p_sign.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
1050p_sign.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
1051p_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
1052p_sign.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
1053p_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
1054p_sign.o: ../cryptlib.h p_sign.c
1055p_verify.o: ../../e_os.h ../../include/openssl/aes.h
1056p_verify.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
1057p_verify.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
1058p_verify.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
1059p_verify.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
1060p_verify.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
1061p_verify.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
1062p_verify.o: ../../include/openssl/err.h ../../include/openssl/evp.h
1063p_verify.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
1064p_verify.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
1065p_verify.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
1066p_verify.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
1067p_verify.o: ../../include/openssl/opensslconf.h
1068p_verify.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
1069p_verify.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
1070p_verify.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
1071p_verify.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
1072p_verify.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
1073p_verify.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
1074p_verify.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
1075p_verify.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
1076p_verify.o: ../cryptlib.h p_verify.c
diff --git a/src/lib/libssl/src/crypto/evp/bio_md.c b/src/lib/libssl/src/crypto/evp/bio_md.c
index c632dfb202..f4aa41ac4b 100644
--- a/src/lib/libssl/src/crypto/evp/bio_md.c
+++ b/src/lib/libssl/src/crypto/evp/bio_md.c
@@ -176,10 +176,11 @@ static long md_ctrl(BIO *b, int cmd, long num, void *ptr)
176 { 176 {
177 case BIO_CTRL_RESET: 177 case BIO_CTRL_RESET:
178 if (b->init) 178 if (b->init)
179 EVP_DigestInit_ex(ctx,ctx->digest, NULL); 179 ret = EVP_DigestInit_ex(ctx,ctx->digest, NULL);
180 else 180 else
181 ret=0; 181 ret=0;
182 ret=BIO_ctrl(b->next_bio,cmd,num,ptr); 182 if (ret > 0)
183 ret=BIO_ctrl(b->next_bio,cmd,num,ptr);
183 break; 184 break;
184 case BIO_C_GET_MD: 185 case BIO_C_GET_MD:
185 if (b->init) 186 if (b->init)
@@ -191,11 +192,12 @@ static long md_ctrl(BIO *b, int cmd, long num, void *ptr)
191 ret=0; 192 ret=0;
192 break; 193 break;
193 case BIO_C_GET_MD_CTX: 194 case BIO_C_GET_MD_CTX:
195 pctx=ptr;
196 *pctx=ctx;
197 break;
198 case BIO_C_SET_MD_CTX:
194 if (b->init) 199 if (b->init)
195 { 200 b->ptr=ptr;
196 pctx=ptr;
197 *pctx=ctx;
198 }
199 else 201 else
200 ret=0; 202 ret=0;
201 break; 203 break;
@@ -207,8 +209,9 @@ static long md_ctrl(BIO *b, int cmd, long num, void *ptr)
207 209
208 case BIO_C_SET_MD: 210 case BIO_C_SET_MD:
209 md=ptr; 211 md=ptr;
210 EVP_DigestInit_ex(ctx,md, NULL); 212 ret = EVP_DigestInit_ex(ctx,md, NULL);
211 b->init=1; 213 if (ret > 0)
214 b->init=1;
212 break; 215 break;
213 case BIO_CTRL_DUP: 216 case BIO_CTRL_DUP:
214 dbio=ptr; 217 dbio=ptr;
diff --git a/src/lib/libssl/src/crypto/evp/c_allc.c b/src/lib/libssl/src/crypto/evp/c_allc.c
index 341a958fd4..fc96812365 100644
--- a/src/lib/libssl/src/crypto/evp/c_allc.c
+++ b/src/lib/libssl/src/crypto/evp/c_allc.c
@@ -67,6 +67,8 @@ void OpenSSL_add_all_ciphers(void)
67 67
68#ifndef OPENSSL_NO_DES 68#ifndef OPENSSL_NO_DES
69 EVP_add_cipher(EVP_des_cfb()); 69 EVP_add_cipher(EVP_des_cfb());
70 EVP_add_cipher(EVP_des_cfb1());
71 EVP_add_cipher(EVP_des_cfb8());
70 EVP_add_cipher(EVP_des_ede_cfb()); 72 EVP_add_cipher(EVP_des_ede_cfb());
71 EVP_add_cipher(EVP_des_ede3_cfb()); 73 EVP_add_cipher(EVP_des_ede3_cfb());
72 74
@@ -150,6 +152,8 @@ void OpenSSL_add_all_ciphers(void)
150 EVP_add_cipher(EVP_aes_128_ecb()); 152 EVP_add_cipher(EVP_aes_128_ecb());
151 EVP_add_cipher(EVP_aes_128_cbc()); 153 EVP_add_cipher(EVP_aes_128_cbc());
152 EVP_add_cipher(EVP_aes_128_cfb()); 154 EVP_add_cipher(EVP_aes_128_cfb());
155 EVP_add_cipher(EVP_aes_128_cfb1());
156 EVP_add_cipher(EVP_aes_128_cfb8());
153 EVP_add_cipher(EVP_aes_128_ofb()); 157 EVP_add_cipher(EVP_aes_128_ofb());
154#if 0 158#if 0
155 EVP_add_cipher(EVP_aes_128_ctr()); 159 EVP_add_cipher(EVP_aes_128_ctr());
@@ -159,6 +163,8 @@ void OpenSSL_add_all_ciphers(void)
159 EVP_add_cipher(EVP_aes_192_ecb()); 163 EVP_add_cipher(EVP_aes_192_ecb());
160 EVP_add_cipher(EVP_aes_192_cbc()); 164 EVP_add_cipher(EVP_aes_192_cbc());
161 EVP_add_cipher(EVP_aes_192_cfb()); 165 EVP_add_cipher(EVP_aes_192_cfb());
166 EVP_add_cipher(EVP_aes_192_cfb1());
167 EVP_add_cipher(EVP_aes_192_cfb8());
162 EVP_add_cipher(EVP_aes_192_ofb()); 168 EVP_add_cipher(EVP_aes_192_ofb());
163#if 0 169#if 0
164 EVP_add_cipher(EVP_aes_192_ctr()); 170 EVP_add_cipher(EVP_aes_192_ctr());
@@ -168,6 +174,8 @@ void OpenSSL_add_all_ciphers(void)
168 EVP_add_cipher(EVP_aes_256_ecb()); 174 EVP_add_cipher(EVP_aes_256_ecb());
169 EVP_add_cipher(EVP_aes_256_cbc()); 175 EVP_add_cipher(EVP_aes_256_cbc());
170 EVP_add_cipher(EVP_aes_256_cfb()); 176 EVP_add_cipher(EVP_aes_256_cfb());
177 EVP_add_cipher(EVP_aes_256_cfb1());
178 EVP_add_cipher(EVP_aes_256_cfb8());
171 EVP_add_cipher(EVP_aes_256_ofb()); 179 EVP_add_cipher(EVP_aes_256_ofb());
172#if 0 180#if 0
173 EVP_add_cipher(EVP_aes_256_ctr()); 181 EVP_add_cipher(EVP_aes_256_ctr());
diff --git a/src/lib/libssl/src/crypto/evp/c_alld.c b/src/lib/libssl/src/crypto/evp/c_alld.c
index be91cdb037..aae7bf7482 100644
--- a/src/lib/libssl/src/crypto/evp/c_alld.c
+++ b/src/lib/libssl/src/crypto/evp/c_alld.c
@@ -75,7 +75,7 @@ void OpenSSL_add_all_digests(void)
75 EVP_add_digest_alias(SN_md5,"ssl2-md5"); 75 EVP_add_digest_alias(SN_md5,"ssl2-md5");
76 EVP_add_digest_alias(SN_md5,"ssl3-md5"); 76 EVP_add_digest_alias(SN_md5,"ssl3-md5");
77#endif 77#endif
78#ifndef OPENSSL_NO_SHA 78#if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA0)
79 EVP_add_digest(EVP_sha()); 79 EVP_add_digest(EVP_sha());
80#ifndef OPENSSL_NO_DSA 80#ifndef OPENSSL_NO_DSA
81 EVP_add_digest(EVP_dss()); 81 EVP_add_digest(EVP_dss());
diff --git a/src/lib/libssl/src/crypto/evp/digest.c b/src/lib/libssl/src/crypto/evp/digest.c
index 0623ddf1f0..f21c63842c 100644
--- a/src/lib/libssl/src/crypto/evp/digest.c
+++ b/src/lib/libssl/src/crypto/evp/digest.c
@@ -137,6 +137,39 @@ int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type)
137 return EVP_DigestInit_ex(ctx, type, NULL); 137 return EVP_DigestInit_ex(ctx, type, NULL);
138 } 138 }
139 139
140#ifdef OPENSSL_FIPS
141
142/* The purpose of these is to trap programs that attempt to use non FIPS
143 * algorithms in FIPS mode and ignore the errors.
144 */
145
146static int bad_init(EVP_MD_CTX *ctx)
147 { FIPS_ERROR_IGNORED("Digest init"); return 0;}
148
149static int bad_update(EVP_MD_CTX *ctx,const void *data,unsigned long count)
150 { FIPS_ERROR_IGNORED("Digest update"); return 0;}
151
152static int bad_final(EVP_MD_CTX *ctx,unsigned char *md)
153 { FIPS_ERROR_IGNORED("Digest Final"); return 0;}
154
155static const EVP_MD bad_md =
156 {
157 0,
158 0,
159 0,
160 0,
161 bad_init,
162 bad_update,
163 bad_final,
164 NULL,
165 NULL,
166 NULL,
167 0,
168 {0,0,0,0},
169 };
170
171#endif
172
140int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl) 173int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl)
141 { 174 {
142 EVP_MD_CTX_clear_flags(ctx,EVP_MD_CTX_FLAG_CLEANED); 175 EVP_MD_CTX_clear_flags(ctx,EVP_MD_CTX_FLAG_CLEANED);
@@ -195,6 +228,18 @@ int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl)
195#endif 228#endif
196 if (ctx->digest != type) 229 if (ctx->digest != type)
197 { 230 {
231#ifdef OPENSSL_FIPS
232 if (FIPS_mode())
233 {
234 if (!(type->flags & EVP_MD_FLAG_FIPS)
235 && !(ctx->flags & EVP_MD_CTX_FLAG_NON_FIPS_ALLOW))
236 {
237 EVPerr(EVP_F_EVP_DIGESTINIT, EVP_R_DISABLED_FOR_FIPS);
238 ctx->digest = &bad_md;
239 return 0;
240 }
241 }
242#endif
198 if (ctx->digest && ctx->digest->ctx_size) 243 if (ctx->digest && ctx->digest->ctx_size)
199 OPENSSL_free(ctx->md_data); 244 OPENSSL_free(ctx->md_data);
200 ctx->digest=type; 245 ctx->digest=type;
diff --git a/src/lib/libssl/src/crypto/evp/e_aes.c b/src/lib/libssl/src/crypto/evp/e_aes.c
index fe8bcda631..f35036c9d7 100644
--- a/src/lib/libssl/src/crypto/evp/e_aes.c
+++ b/src/lib/libssl/src/crypto/evp/e_aes.c
@@ -67,34 +67,52 @@ typedef struct
67 67
68IMPLEMENT_BLOCK_CIPHER(aes_128, ks, AES, EVP_AES_KEY, 68IMPLEMENT_BLOCK_CIPHER(aes_128, ks, AES, EVP_AES_KEY,
69 NID_aes_128, 16, 16, 16, 128, 69 NID_aes_128, 16, 16, 16, 128,
70 0, aes_init_key, NULL, 70 EVP_CIPH_FLAG_FIPS, aes_init_key, NULL,
71 EVP_CIPHER_set_asn1_iv, 71 EVP_CIPHER_set_asn1_iv,
72 EVP_CIPHER_get_asn1_iv, 72 EVP_CIPHER_get_asn1_iv,
73 NULL) 73 NULL)
74IMPLEMENT_BLOCK_CIPHER(aes_192, ks, AES, EVP_AES_KEY, 74IMPLEMENT_BLOCK_CIPHER(aes_192, ks, AES, EVP_AES_KEY,
75 NID_aes_192, 16, 24, 16, 128, 75 NID_aes_192, 16, 24, 16, 128,
76 0, aes_init_key, NULL, 76 EVP_CIPH_FLAG_FIPS, aes_init_key, NULL,
77 EVP_CIPHER_set_asn1_iv, 77 EVP_CIPHER_set_asn1_iv,
78 EVP_CIPHER_get_asn1_iv, 78 EVP_CIPHER_get_asn1_iv,
79 NULL) 79 NULL)
80IMPLEMENT_BLOCK_CIPHER(aes_256, ks, AES, EVP_AES_KEY, 80IMPLEMENT_BLOCK_CIPHER(aes_256, ks, AES, EVP_AES_KEY,
81 NID_aes_256, 16, 32, 16, 128, 81 NID_aes_256, 16, 32, 16, 128,
82 0, aes_init_key, NULL, 82 EVP_CIPH_FLAG_FIPS, aes_init_key, NULL,
83 EVP_CIPHER_set_asn1_iv, 83 EVP_CIPHER_set_asn1_iv,
84 EVP_CIPHER_get_asn1_iv, 84 EVP_CIPHER_get_asn1_iv,
85 NULL) 85 NULL)
86 86
87#define IMPLEMENT_AES_CFBR(ksize,cbits,flags) IMPLEMENT_CFBR(aes,AES,EVP_AES_KEY,ks,ksize,cbits,16,flags)
88
89IMPLEMENT_AES_CFBR(128,1,0)
90IMPLEMENT_AES_CFBR(192,1,0)
91IMPLEMENT_AES_CFBR(256,1,0)
92
93IMPLEMENT_AES_CFBR(128,8,EVP_CIPH_FLAG_FIPS)
94IMPLEMENT_AES_CFBR(192,8,EVP_CIPH_FLAG_FIPS)
95IMPLEMENT_AES_CFBR(256,8,EVP_CIPH_FLAG_FIPS)
96
87static int aes_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, 97static int aes_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
88 const unsigned char *iv, int enc) { 98 const unsigned char *iv, int enc)
99 {
100 int ret;
89 101
90 if ((ctx->cipher->flags & EVP_CIPH_MODE) == EVP_CIPH_CFB_MODE 102 if ((ctx->cipher->flags & EVP_CIPH_MODE) == EVP_CIPH_CFB_MODE
91 || (ctx->cipher->flags & EVP_CIPH_MODE) == EVP_CIPH_OFB_MODE 103 || (ctx->cipher->flags & EVP_CIPH_MODE) == EVP_CIPH_OFB_MODE
92 || enc) 104 || enc)
93 AES_set_encrypt_key(key, ctx->key_len * 8, ctx->cipher_data); 105 ret=AES_set_encrypt_key(key, ctx->key_len * 8, ctx->cipher_data);
94 else 106 else
95 AES_set_decrypt_key(key, ctx->key_len * 8, ctx->cipher_data); 107 ret=AES_set_decrypt_key(key, ctx->key_len * 8, ctx->cipher_data);
108
109 if(ret < 0)
110 {
111 EVPerr(EVP_F_AES_INIT_KEY,EVP_R_AES_KEY_SETUP_FAILED);
112 return 0;
113 }
96 114
97 return 1; 115 return 1;
98} 116 }
99 117
100#endif 118#endif
diff --git a/src/lib/libssl/src/crypto/evp/e_des.c b/src/lib/libssl/src/crypto/evp/e_des.c
index 105266a4b3..46e2899825 100644
--- a/src/lib/libssl/src/crypto/evp/e_des.c
+++ b/src/lib/libssl/src/crypto/evp/e_des.c
@@ -56,9 +56,9 @@
56 * [including the GNU Public Licence.] 56 * [including the GNU Public Licence.]
57 */ 57 */
58 58
59#ifndef OPENSSL_NO_DES
60#include <stdio.h> 59#include <stdio.h>
61#include "cryptlib.h" 60#include "cryptlib.h"
61#ifndef OPENSSL_NO_DES
62#include <openssl/evp.h> 62#include <openssl/evp.h>
63#include <openssl/objects.h> 63#include <openssl/objects.h>
64#include "evp_locl.h" 64#include "evp_locl.h"
@@ -92,20 +92,55 @@ static int des_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
92 return 1; 92 return 1;
93} 93}
94 94
95static int des_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, 95static int des_cfb64_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
96 const unsigned char *in, unsigned int inl) 96 const unsigned char *in, unsigned int inl)
97{ 97{
98 DES_cfb64_encrypt(in, out, (long)inl, ctx->cipher_data, 98 DES_cfb64_encrypt(in, out, (long)inl, ctx->cipher_data,
99 (DES_cblock *)ctx->iv, &ctx->num, ctx->encrypt); 99 (DES_cblock *)ctx->iv, &ctx->num, ctx->encrypt);
100 return 1; 100 return 1;
101} 101}
102 102
103/* Although we have a CFB-r implementation for DES, it doesn't pack the right
104 way, so wrap it here */
105static int des_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
106 const unsigned char *in, unsigned int inl)
107 {
108 unsigned int n;
109 unsigned char c[1],d[1];
110
111 for(n=0 ; n < inl ; ++n)
112 {
113 c[0]=(in[n/8]&(1 << (7-n%8))) ? 0x80 : 0;
114 DES_cfb_encrypt(c,d,1,1,ctx->cipher_data,(DES_cblock *)ctx->iv,
115 ctx->encrypt);
116 out[n/8]=(out[n/8]&~(0x80 >> (n%8)))|((d[0]&0x80) >> (n%8));
117 }
118 return 1;
119 }
120
121static int des_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
122 const unsigned char *in, unsigned int inl)
123 {
124 DES_cfb_encrypt(in,out,8,inl,ctx->cipher_data,(DES_cblock *)ctx->iv,
125 ctx->encrypt);
126 return 1;
127 }
128
103BLOCK_CIPHER_defs(des, DES_key_schedule, NID_des, 8, 8, 8, 64, 129BLOCK_CIPHER_defs(des, DES_key_schedule, NID_des, 8, 8, 8, 64,
104 0, des_init_key, NULL, 130 EVP_CIPH_FLAG_FIPS, des_init_key, NULL,
105 EVP_CIPHER_set_asn1_iv, 131 EVP_CIPHER_set_asn1_iv,
106 EVP_CIPHER_get_asn1_iv, 132 EVP_CIPHER_get_asn1_iv,
107 NULL) 133 NULL)
108 134
135BLOCK_CIPHER_def_cfb(des,DES_key_schedule,NID_des,8,8,1,
136 EVP_CIPH_FLAG_FIPS,des_init_key,NULL,
137 EVP_CIPHER_set_asn1_iv,
138 EVP_CIPHER_get_asn1_iv,NULL)
139
140BLOCK_CIPHER_def_cfb(des,DES_key_schedule,NID_des,8,8,8,
141 EVP_CIPH_FLAG_FIPS,des_init_key,NULL,
142 EVP_CIPHER_set_asn1_iv,
143 EVP_CIPHER_get_asn1_iv,NULL)
109 144
110static int des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, 145static int des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
111 const unsigned char *iv, int enc) 146 const unsigned char *iv, int enc)
diff --git a/src/lib/libssl/src/crypto/evp/e_des3.c b/src/lib/libssl/src/crypto/evp/e_des3.c
index 077860e7b6..677322bf02 100644
--- a/src/lib/libssl/src/crypto/evp/e_des3.c
+++ b/src/lib/libssl/src/crypto/evp/e_des3.c
@@ -56,9 +56,9 @@
56 * [including the GNU Public Licence.] 56 * [including the GNU Public Licence.]
57 */ 57 */
58 58
59#ifndef OPENSSL_NO_DES
60#include <stdio.h> 59#include <stdio.h>
61#include "cryptlib.h" 60#include "cryptlib.h"
61#ifndef OPENSSL_NO_DES
62#include <openssl/evp.h> 62#include <openssl/evp.h>
63#include <openssl/objects.h> 63#include <openssl/objects.h>
64#include "evp_locl.h" 64#include "evp_locl.h"
@@ -85,7 +85,7 @@ static int des_ede_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
85 const unsigned char *in, unsigned int inl) 85 const unsigned char *in, unsigned int inl)
86{ 86{
87 BLOCK_CIPHER_ecb_loop() 87 BLOCK_CIPHER_ecb_loop()
88 DES_ecb3_encrypt((DES_cblock *)(in + i), (DES_cblock *)(out + i), 88 DES_ecb3_encrypt(in + i,out + i,
89 &data(ctx)->ks1, &data(ctx)->ks2, 89 &data(ctx)->ks1, &data(ctx)->ks2,
90 &data(ctx)->ks3, 90 &data(ctx)->ks3,
91 ctx->encrypt); 91 ctx->encrypt);
@@ -121,7 +121,7 @@ static int des_ede_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
121 return 1; 121 return 1;
122} 122}
123 123
124static int des_ede_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, 124static int des_ede_cfb64_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
125 const unsigned char *in, unsigned int inl) 125 const unsigned char *in, unsigned int inl)
126{ 126{
127 DES_ede3_cfb64_encrypt(in, out, (long)inl, 127 DES_ede3_cfb64_encrypt(in, out, (long)inl,
@@ -130,23 +130,62 @@ static int des_ede_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
130 return 1; 130 return 1;
131} 131}
132 132
133/* Although we have a CFB-r implementation for 3-DES, it doesn't pack the right
134 way, so wrap it here */
135static int des_ede3_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
136 const unsigned char *in, unsigned int inl)
137 {
138 unsigned int n;
139 unsigned char c[1],d[1];
140
141 for(n=0 ; n < inl ; ++n)
142 {
143 c[0]=(in[n/8]&(1 << (7-n%8))) ? 0x80 : 0;
144 DES_ede3_cfb_encrypt(c,d,1,1,
145 &data(ctx)->ks1,&data(ctx)->ks2,&data(ctx)->ks3,
146 (DES_cblock *)ctx->iv,ctx->encrypt);
147 out[n/8]=(out[n/8]&~(0x80 >> (n%8)))|((d[0]&0x80) >> (n%8));
148 }
149
150 return 1;
151 }
152
153static int des_ede3_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
154 const unsigned char *in, unsigned int inl)
155 {
156 DES_ede3_cfb_encrypt(in,out,8,inl,
157 &data(ctx)->ks1,&data(ctx)->ks2,&data(ctx)->ks3,
158 (DES_cblock *)ctx->iv,ctx->encrypt);
159 return 1;
160 }
161
133BLOCK_CIPHER_defs(des_ede, DES_EDE_KEY, NID_des_ede, 8, 16, 8, 64, 162BLOCK_CIPHER_defs(des_ede, DES_EDE_KEY, NID_des_ede, 8, 16, 8, 64,
134 0, des_ede_init_key, NULL, 163 EVP_CIPH_FLAG_FIPS, des_ede_init_key, NULL,
135 EVP_CIPHER_set_asn1_iv, 164 EVP_CIPHER_set_asn1_iv,
136 EVP_CIPHER_get_asn1_iv, 165 EVP_CIPHER_get_asn1_iv,
137 NULL) 166 NULL)
138 167
139#define des_ede3_cfb_cipher des_ede_cfb_cipher 168#define des_ede3_cfb64_cipher des_ede_cfb64_cipher
140#define des_ede3_ofb_cipher des_ede_ofb_cipher 169#define des_ede3_ofb_cipher des_ede_ofb_cipher
141#define des_ede3_cbc_cipher des_ede_cbc_cipher 170#define des_ede3_cbc_cipher des_ede_cbc_cipher
142#define des_ede3_ecb_cipher des_ede_ecb_cipher 171#define des_ede3_ecb_cipher des_ede_ecb_cipher
143 172
144BLOCK_CIPHER_defs(des_ede3, DES_EDE_KEY, NID_des_ede3, 8, 24, 8, 64, 173BLOCK_CIPHER_defs(des_ede3, DES_EDE_KEY, NID_des_ede3, 8, 24, 8, 64,
145 0, des_ede3_init_key, NULL, 174 EVP_CIPH_FLAG_FIPS, des_ede3_init_key, NULL,
146 EVP_CIPHER_set_asn1_iv, 175 EVP_CIPHER_set_asn1_iv,
147 EVP_CIPHER_get_asn1_iv, 176 EVP_CIPHER_get_asn1_iv,
148 NULL) 177 NULL)
149 178
179BLOCK_CIPHER_def_cfb(des_ede3,DES_EDE_KEY,NID_des_ede3,24,8,1,
180 EVP_CIPH_FLAG_FIPS, des_ede3_init_key,NULL,
181 EVP_CIPHER_set_asn1_iv,
182 EVP_CIPHER_get_asn1_iv,NULL)
183
184BLOCK_CIPHER_def_cfb(des_ede3,DES_EDE_KEY,NID_des_ede3,24,8,8,
185 EVP_CIPH_FLAG_FIPS, des_ede3_init_key,NULL,
186 EVP_CIPHER_set_asn1_iv,
187 EVP_CIPHER_get_asn1_iv,NULL)
188
150static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, 189static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
151 const unsigned char *iv, int enc) 190 const unsigned char *iv, int enc)
152 { 191 {
diff --git a/src/lib/libssl/src/crypto/evp/e_null.c b/src/lib/libssl/src/crypto/evp/e_null.c
index 2420d7e5af..a84b0f14b1 100644
--- a/src/lib/libssl/src/crypto/evp/e_null.c
+++ b/src/lib/libssl/src/crypto/evp/e_null.c
@@ -69,7 +69,7 @@ static const EVP_CIPHER n_cipher=
69 { 69 {
70 NID_undef, 70 NID_undef,
71 1,0,0, 71 1,0,0,
72 0, 72 EVP_CIPH_FLAG_FIPS,
73 null_init_key, 73 null_init_key,
74 null_cipher, 74 null_cipher,
75 NULL, 75 NULL,
diff --git a/src/lib/libssl/src/crypto/evp/e_old.c b/src/lib/libssl/src/crypto/evp/e_old.c
new file mode 100644
index 0000000000..92dc498945
--- /dev/null
+++ b/src/lib/libssl/src/crypto/evp/e_old.c
@@ -0,0 +1,108 @@
1/* crypto/evp/e_old.c -*- mode:C; c-file-style: "eay" -*- */
2/* Written by Richard Levitte (richard@levitte.org) for the OpenSSL
3 * project 2004.
4 */
5/* ====================================================================
6 * Copyright (c) 2004 The OpenSSL Project. All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 *
12 * 1. Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 *
15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in
17 * the documentation and/or other materials provided with the
18 * distribution.
19 *
20 * 3. All advertising materials mentioning features or use of this
21 * software must display the following acknowledgment:
22 * "This product includes software developed by the OpenSSL Project
23 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
24 *
25 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
26 * endorse or promote products derived from this software without
27 * prior written permission. For written permission, please contact
28 * openssl-core@openssl.org.
29 *
30 * 5. Products derived from this software may not be called "OpenSSL"
31 * nor may "OpenSSL" appear in their names without prior written
32 * permission of the OpenSSL Project.
33 *
34 * 6. Redistributions of any form whatsoever must retain the following
35 * acknowledgment:
36 * "This product includes software developed by the OpenSSL Project
37 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
38 *
39 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
40 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
41 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
42 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
43 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
44 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
45 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
46 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
47 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
48 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
49 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
50 * OF THE POSSIBILITY OF SUCH DAMAGE.
51 * ====================================================================
52 *
53 * This product includes cryptographic software written by Eric Young
54 * (eay@cryptsoft.com). This product includes software written by Tim
55 * Hudson (tjh@cryptsoft.com).
56 *
57 */
58
59#include <openssl/evp.h>
60
61/* Define some deprecated functions, so older programs
62 don't crash and burn too quickly. On Windows and VMS,
63 these will never be used, since functions and variables
64 in shared libraries are selected by entry point location,
65 not by name. */
66
67#ifndef OPENSSL_NO_BF
68#undef EVP_bf_cfb
69const EVP_CIPHER *EVP_bf_cfb(void) { return EVP_bf_cfb64(); }
70#endif
71
72#ifndef OPENSSL_NO_DES
73#undef EVP_des_cfb
74const EVP_CIPHER *EVP_des_cfb(void) { return EVP_des_cfb64(); }
75#undef EVP_des_ede3_cfb
76const EVP_CIPHER *EVP_des_ede3_cfb(void) { return EVP_des_ede3_cfb64(); }
77#undef EVP_des_ede_cfb
78const EVP_CIPHER *EVP_des_ede_cfb(void) { return EVP_des_ede_cfb64(); }
79#endif
80
81#ifndef OPENSSL_NO_IDEA
82#undef EVP_idea_cfb
83const EVP_CIPHER *EVP_idea_cfb(void) { return EVP_idea_cfb64(); }
84#endif
85
86#ifndef OPENSSL_NO_RC2
87#undef EVP_rc2_cfb
88const EVP_CIPHER *EVP_rc2_cfb(void) { return EVP_rc2_cfb64(); }
89#endif
90
91#ifndef OPENSSL_NO_CAST
92#undef EVP_cast5_cfb
93const EVP_CIPHER *EVP_cast5_cfb(void) { return EVP_cast5_cfb64(); }
94#endif
95
96#ifndef OPENSSL_NO_RC5
97#undef EVP_rc5_32_12_16_cfb
98const EVP_CIPHER *EVP_rc5_32_12_16_cfb(void) { return EVP_rc5_32_12_16_cfb64(); }
99#endif
100
101#ifndef OPENSSL_NO_AES
102#undef EVP_aes_128_cfb
103const EVP_CIPHER *EVP_aes_128_cfb(void) { return EVP_aes_128_cfb128(); }
104#undef EVP_aes_192_cfb
105const EVP_CIPHER *EVP_aes_192_cfb(void) { return EVP_aes_192_cfb128(); }
106#undef EVP_aes_256_cfb
107const EVP_CIPHER *EVP_aes_256_cfb(void) { return EVP_aes_256_cfb128(); }
108#endif
diff --git a/src/lib/libssl/src/crypto/evp/e_rc4.c b/src/lib/libssl/src/crypto/evp/e_rc4.c
index d58f507837..8aa70585b9 100644
--- a/src/lib/libssl/src/crypto/evp/e_rc4.c
+++ b/src/lib/libssl/src/crypto/evp/e_rc4.c
@@ -62,6 +62,7 @@
62#include "cryptlib.h" 62#include "cryptlib.h"
63#include <openssl/evp.h> 63#include <openssl/evp.h>
64#include <openssl/objects.h> 64#include <openssl/objects.h>
65#include "evp_locl.h"
65#include <openssl/rc4.h> 66#include <openssl/rc4.h>
66 67
67/* FIXME: surely this is available elsewhere? */ 68/* FIXME: surely this is available elsewhere? */
diff --git a/src/lib/libssl/src/crypto/evp/evp.h b/src/lib/libssl/src/crypto/evp/evp.h
index 4801d8eaa3..5cde88ae76 100644
--- a/src/lib/libssl/src/crypto/evp/evp.h
+++ b/src/lib/libssl/src/crypto/evp/evp.h
@@ -117,6 +117,10 @@
117#include <openssl/aes.h> 117#include <openssl/aes.h>
118#endif 118#endif
119 119
120#ifdef OPENSSL_FIPS
121#include <openssl/fips.h>
122#endif
123
120/* 124/*
121#define EVP_RC2_KEY_SIZE 16 125#define EVP_RC2_KEY_SIZE 16
122#define EVP_RC4_KEY_SIZE 16 126#define EVP_RC4_KEY_SIZE 16
@@ -290,6 +294,7 @@ struct env_md_st
290 294
291#define EVP_MD_FLAG_ONESHOT 0x0001 /* digest can only handle a single 295#define EVP_MD_FLAG_ONESHOT 0x0001 /* digest can only handle a single
292 * block */ 296 * block */
297#define EVP_MD_FLAG_FIPS 0x0400 /* Note if suitable for use in FIPS mode */
293 298
294#define EVP_PKEY_NULL_method NULL,NULL,{0,0,0,0} 299#define EVP_PKEY_NULL_method NULL,NULL,{0,0,0,0}
295 300
@@ -332,6 +337,9 @@ struct env_md_ctx_st
332#define EVP_MD_CTX_FLAG_REUSE 0x0004 /* Don't free up ctx->md_data 337#define EVP_MD_CTX_FLAG_REUSE 0x0004 /* Don't free up ctx->md_data
333 * in EVP_MD_CTX_cleanup */ 338 * in EVP_MD_CTX_cleanup */
334 339
340#define EVP_MD_CTX_FLAG_NON_FIPS_ALLOW 0x0008 /* Allow use of non FIPS digest
341 * in FIPS mode */
342
335struct evp_cipher_st 343struct evp_cipher_st
336 { 344 {
337 int nid; 345 int nid;
@@ -373,6 +381,10 @@ struct evp_cipher_st
373#define EVP_CIPH_CUSTOM_KEY_LENGTH 0x80 381#define EVP_CIPH_CUSTOM_KEY_LENGTH 0x80
374/* Don't use standard block padding */ 382/* Don't use standard block padding */
375#define EVP_CIPH_NO_PADDING 0x100 383#define EVP_CIPH_NO_PADDING 0x100
384/* Note if suitable for use in FIPS mode */
385#define EVP_CIPH_FLAG_FIPS 0x400
386/* Allow non FIPS cipher in FIPS mode */
387#define EVP_CIPH_FLAG_NON_FIPS_ALLOW 0x800
376 388
377/* ctrl() values */ 389/* ctrl() values */
378 390
@@ -478,6 +490,9 @@ typedef int (EVP_PBE_KEYGEN)(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
478#define EVP_CIPHER_CTX_set_app_data(e,d) ((e)->app_data=(char *)(d)) 490#define EVP_CIPHER_CTX_set_app_data(e,d) ((e)->app_data=(char *)(d))
479#define EVP_CIPHER_CTX_type(c) EVP_CIPHER_type(EVP_CIPHER_CTX_cipher(c)) 491#define EVP_CIPHER_CTX_type(c) EVP_CIPHER_type(EVP_CIPHER_CTX_cipher(c))
480#define EVP_CIPHER_CTX_flags(e) ((e)->cipher->flags) 492#define EVP_CIPHER_CTX_flags(e) ((e)->cipher->flags)
493#define EVP_CIPHER_CTX_set_flags(ctx,flgs) ((ctx)->flags|=(flgs))
494#define EVP_CIPHER_CTX_clear_flags(ctx,flgs) ((ctx)->flags&=~(flgs))
495#define EVP_CIPHER_CTX_test_flags(ctx,flgs) ((ctx)->flags&(flgs))
481#define EVP_CIPHER_CTX_mode(e) ((e)->cipher->flags & EVP_CIPH_MODE) 496#define EVP_CIPHER_CTX_mode(e) ((e)->cipher->flags & EVP_CIPH_MODE)
482 497
483#define EVP_ENCODE_LENGTH(l) (((l+2)/3*4)+(l/48+1)*2+80) 498#define EVP_ENCODE_LENGTH(l) (((l+2)/3*4)+(l/48+1)*2+80)
@@ -499,6 +514,7 @@ void BIO_set_md(BIO *,const EVP_MD *md);
499#endif 514#endif
500#define BIO_get_md(b,mdp) BIO_ctrl(b,BIO_C_GET_MD,0,(char *)mdp) 515#define BIO_get_md(b,mdp) BIO_ctrl(b,BIO_C_GET_MD,0,(char *)mdp)
501#define BIO_get_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_GET_MD_CTX,0,(char *)mdcp) 516#define BIO_get_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_GET_MD_CTX,0,(char *)mdcp)
517#define BIO_set_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_SET_MD_CTX,0,(char *)mdcp)
502#define BIO_get_cipher_status(b) BIO_ctrl(b,BIO_C_GET_CIPHER_STATUS,0,NULL) 518#define BIO_get_cipher_status(b) BIO_ctrl(b,BIO_C_GET_CIPHER_STATUS,0,NULL)
503#define BIO_get_cipher_ctx(b,c_pp) BIO_ctrl(b,BIO_C_GET_CIPHER_CTX,0,(char *)c_pp) 519#define BIO_get_cipher_ctx(b,c_pp) BIO_ctrl(b,BIO_C_GET_CIPHER_CTX,0,(char *)c_pp)
504 520
@@ -640,9 +656,20 @@ const EVP_CIPHER *EVP_des_ede(void);
640const EVP_CIPHER *EVP_des_ede3(void); 656const EVP_CIPHER *EVP_des_ede3(void);
641const EVP_CIPHER *EVP_des_ede_ecb(void); 657const EVP_CIPHER *EVP_des_ede_ecb(void);
642const EVP_CIPHER *EVP_des_ede3_ecb(void); 658const EVP_CIPHER *EVP_des_ede3_ecb(void);
643const EVP_CIPHER *EVP_des_cfb(void); 659const EVP_CIPHER *EVP_des_cfb64(void);
644const EVP_CIPHER *EVP_des_ede_cfb(void); 660# define EVP_des_cfb EVP_des_cfb64
645const EVP_CIPHER *EVP_des_ede3_cfb(void); 661const EVP_CIPHER *EVP_des_cfb1(void);
662const EVP_CIPHER *EVP_des_cfb8(void);
663const EVP_CIPHER *EVP_des_ede_cfb64(void);
664# define EVP_des_ede_cfb EVP_des_ede_cfb64
665#if 0
666const EVP_CIPHER *EVP_des_ede_cfb1(void);
667const EVP_CIPHER *EVP_des_ede_cfb8(void);
668#endif
669const EVP_CIPHER *EVP_des_ede3_cfb64(void);
670# define EVP_des_ede3_cfb EVP_des_ede3_cfb64
671const EVP_CIPHER *EVP_des_ede3_cfb1(void);
672const EVP_CIPHER *EVP_des_ede3_cfb8(void);
646const EVP_CIPHER *EVP_des_ofb(void); 673const EVP_CIPHER *EVP_des_ofb(void);
647const EVP_CIPHER *EVP_des_ede_ofb(void); 674const EVP_CIPHER *EVP_des_ede_ofb(void);
648const EVP_CIPHER *EVP_des_ede3_ofb(void); 675const EVP_CIPHER *EVP_des_ede3_ofb(void);
@@ -666,7 +693,8 @@ const EVP_CIPHER *EVP_rc4_40(void);
666#endif 693#endif
667#ifndef OPENSSL_NO_IDEA 694#ifndef OPENSSL_NO_IDEA
668const EVP_CIPHER *EVP_idea_ecb(void); 695const EVP_CIPHER *EVP_idea_ecb(void);
669const EVP_CIPHER *EVP_idea_cfb(void); 696const EVP_CIPHER *EVP_idea_cfb64(void);
697# define EVP_idea_cfb EVP_idea_cfb64
670const EVP_CIPHER *EVP_idea_ofb(void); 698const EVP_CIPHER *EVP_idea_ofb(void);
671const EVP_CIPHER *EVP_idea_cbc(void); 699const EVP_CIPHER *EVP_idea_cbc(void);
672#endif 700#endif
@@ -675,45 +703,58 @@ const EVP_CIPHER *EVP_rc2_ecb(void);
675const EVP_CIPHER *EVP_rc2_cbc(void); 703const EVP_CIPHER *EVP_rc2_cbc(void);
676const EVP_CIPHER *EVP_rc2_40_cbc(void); 704const EVP_CIPHER *EVP_rc2_40_cbc(void);
677const EVP_CIPHER *EVP_rc2_64_cbc(void); 705const EVP_CIPHER *EVP_rc2_64_cbc(void);
678const EVP_CIPHER *EVP_rc2_cfb(void); 706const EVP_CIPHER *EVP_rc2_cfb64(void);
707# define EVP_rc2_cfb EVP_rc2_cfb64
679const EVP_CIPHER *EVP_rc2_ofb(void); 708const EVP_CIPHER *EVP_rc2_ofb(void);
680#endif 709#endif
681#ifndef OPENSSL_NO_BF 710#ifndef OPENSSL_NO_BF
682const EVP_CIPHER *EVP_bf_ecb(void); 711const EVP_CIPHER *EVP_bf_ecb(void);
683const EVP_CIPHER *EVP_bf_cbc(void); 712const EVP_CIPHER *EVP_bf_cbc(void);
684const EVP_CIPHER *EVP_bf_cfb(void); 713const EVP_CIPHER *EVP_bf_cfb64(void);
714# define EVP_bf_cfb EVP_bf_cfb64
685const EVP_CIPHER *EVP_bf_ofb(void); 715const EVP_CIPHER *EVP_bf_ofb(void);
686#endif 716#endif
687#ifndef OPENSSL_NO_CAST 717#ifndef OPENSSL_NO_CAST
688const EVP_CIPHER *EVP_cast5_ecb(void); 718const EVP_CIPHER *EVP_cast5_ecb(void);
689const EVP_CIPHER *EVP_cast5_cbc(void); 719const EVP_CIPHER *EVP_cast5_cbc(void);
690const EVP_CIPHER *EVP_cast5_cfb(void); 720const EVP_CIPHER *EVP_cast5_cfb64(void);
721# define EVP_cast5_cfb EVP_cast5_cfb64
691const EVP_CIPHER *EVP_cast5_ofb(void); 722const EVP_CIPHER *EVP_cast5_ofb(void);
692#endif 723#endif
693#ifndef OPENSSL_NO_RC5 724#ifndef OPENSSL_NO_RC5
694const EVP_CIPHER *EVP_rc5_32_12_16_cbc(void); 725const EVP_CIPHER *EVP_rc5_32_12_16_cbc(void);
695const EVP_CIPHER *EVP_rc5_32_12_16_ecb(void); 726const EVP_CIPHER *EVP_rc5_32_12_16_ecb(void);
696const EVP_CIPHER *EVP_rc5_32_12_16_cfb(void); 727const EVP_CIPHER *EVP_rc5_32_12_16_cfb64(void);
728# define EVP_rc5_32_12_16_cfb EVP_rc5_32_12_16_cfb64
697const EVP_CIPHER *EVP_rc5_32_12_16_ofb(void); 729const EVP_CIPHER *EVP_rc5_32_12_16_ofb(void);
698#endif 730#endif
699#ifndef OPENSSL_NO_AES 731#ifndef OPENSSL_NO_AES
700const EVP_CIPHER *EVP_aes_128_ecb(void); 732const EVP_CIPHER *EVP_aes_128_ecb(void);
701const EVP_CIPHER *EVP_aes_128_cbc(void); 733const EVP_CIPHER *EVP_aes_128_cbc(void);
702const EVP_CIPHER *EVP_aes_128_cfb(void); 734const EVP_CIPHER *EVP_aes_128_cfb1(void);
735const EVP_CIPHER *EVP_aes_128_cfb8(void);
736const EVP_CIPHER *EVP_aes_128_cfb128(void);
737# define EVP_aes_128_cfb EVP_aes_128_cfb128
703const EVP_CIPHER *EVP_aes_128_ofb(void); 738const EVP_CIPHER *EVP_aes_128_ofb(void);
704#if 0 739#if 0
705const EVP_CIPHER *EVP_aes_128_ctr(void); 740const EVP_CIPHER *EVP_aes_128_ctr(void);
706#endif 741#endif
707const EVP_CIPHER *EVP_aes_192_ecb(void); 742const EVP_CIPHER *EVP_aes_192_ecb(void);
708const EVP_CIPHER *EVP_aes_192_cbc(void); 743const EVP_CIPHER *EVP_aes_192_cbc(void);
709const EVP_CIPHER *EVP_aes_192_cfb(void); 744const EVP_CIPHER *EVP_aes_192_cfb1(void);
745const EVP_CIPHER *EVP_aes_192_cfb8(void);
746const EVP_CIPHER *EVP_aes_192_cfb128(void);
747# define EVP_aes_192_cfb EVP_aes_192_cfb128
710const EVP_CIPHER *EVP_aes_192_ofb(void); 748const EVP_CIPHER *EVP_aes_192_ofb(void);
711#if 0 749#if 0
712const EVP_CIPHER *EVP_aes_192_ctr(void); 750const EVP_CIPHER *EVP_aes_192_ctr(void);
713#endif 751#endif
714const EVP_CIPHER *EVP_aes_256_ecb(void); 752const EVP_CIPHER *EVP_aes_256_ecb(void);
715const EVP_CIPHER *EVP_aes_256_cbc(void); 753const EVP_CIPHER *EVP_aes_256_cbc(void);
716const EVP_CIPHER *EVP_aes_256_cfb(void); 754const EVP_CIPHER *EVP_aes_256_cfb1(void);
755const EVP_CIPHER *EVP_aes_256_cfb8(void);
756const EVP_CIPHER *EVP_aes_256_cfb128(void);
757# define EVP_aes_256_cfb EVP_aes_256_cfb128
717const EVP_CIPHER *EVP_aes_256_ofb(void); 758const EVP_CIPHER *EVP_aes_256_ofb(void);
718#if 0 759#if 0
719const EVP_CIPHER *EVP_aes_256_ctr(void); 760const EVP_CIPHER *EVP_aes_256_ctr(void);
@@ -825,13 +866,18 @@ void ERR_load_EVP_strings(void);
825/* Error codes for the EVP functions. */ 866/* Error codes for the EVP functions. */
826 867
827/* Function codes. */ 868/* Function codes. */
869#define EVP_F_AES_INIT_KEY 129
828#define EVP_F_D2I_PKEY 100 870#define EVP_F_D2I_PKEY 100
871#define EVP_F_EVP_ADD_CIPHER 130
872#define EVP_F_EVP_ADD_DIGEST 131
829#define EVP_F_EVP_CIPHERINIT 123 873#define EVP_F_EVP_CIPHERINIT 123
830#define EVP_F_EVP_CIPHER_CTX_CTRL 124 874#define EVP_F_EVP_CIPHER_CTX_CTRL 124
831#define EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH 122 875#define EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH 122
832#define EVP_F_EVP_DECRYPTFINAL 101 876#define EVP_F_EVP_DECRYPTFINAL 101
833#define EVP_F_EVP_DIGESTINIT 128 877#define EVP_F_EVP_DIGESTINIT 128
834#define EVP_F_EVP_ENCRYPTFINAL 127 878#define EVP_F_EVP_ENCRYPTFINAL 127
879#define EVP_F_EVP_GET_CIPHERBYNAME 132
880#define EVP_F_EVP_GET_DIGESTBYNAME 133
835#define EVP_F_EVP_MD_CTX_COPY 110 881#define EVP_F_EVP_MD_CTX_COPY 110
836#define EVP_F_EVP_OPENINIT 102 882#define EVP_F_EVP_OPENINIT 102
837#define EVP_F_EVP_PBE_ALG_ADD 115 883#define EVP_F_EVP_PBE_ALG_ADD 115
@@ -855,6 +901,7 @@ void ERR_load_EVP_strings(void);
855#define EVP_F_RC5_CTRL 125 901#define EVP_F_RC5_CTRL 125
856 902
857/* Reason codes. */ 903/* Reason codes. */
904#define EVP_R_AES_KEY_SETUP_FAILED 140
858#define EVP_R_BAD_BLOCK_LENGTH 136 905#define EVP_R_BAD_BLOCK_LENGTH 136
859#define EVP_R_BAD_DECRYPT 100 906#define EVP_R_BAD_DECRYPT 100
860#define EVP_R_BAD_KEY_LENGTH 137 907#define EVP_R_BAD_KEY_LENGTH 137
@@ -866,6 +913,7 @@ void ERR_load_EVP_strings(void);
866#define EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH 138 913#define EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH 138
867#define EVP_R_DECODE_ERROR 114 914#define EVP_R_DECODE_ERROR 114
868#define EVP_R_DIFFERENT_KEY_TYPES 101 915#define EVP_R_DIFFERENT_KEY_TYPES 101
916#define EVP_R_DISABLED_FOR_FIPS 141
869#define EVP_R_ENCODE_ERROR 115 917#define EVP_R_ENCODE_ERROR 115
870#define EVP_R_EVP_PBE_CIPHERINIT_ERROR 119 918#define EVP_R_EVP_PBE_CIPHERINIT_ERROR 119
871#define EVP_R_EXPECTING_AN_RSA_KEY 127 919#define EVP_R_EXPECTING_AN_RSA_KEY 127
diff --git a/src/lib/libssl/src/crypto/evp/evp_enc.c b/src/lib/libssl/src/crypto/evp/evp_enc.c
index 8ea5aa935d..f549eeb437 100644
--- a/src/lib/libssl/src/crypto/evp/evp_enc.c
+++ b/src/lib/libssl/src/crypto/evp/evp_enc.c
@@ -82,6 +82,48 @@ int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
82 return EVP_CipherInit_ex(ctx,cipher,NULL,key,iv,enc); 82 return EVP_CipherInit_ex(ctx,cipher,NULL,key,iv,enc);
83 } 83 }
84 84
85#ifdef OPENSSL_FIPS
86
87/* The purpose of these is to trap programs that attempt to use non FIPS
88 * algorithms in FIPS mode and ignore the errors.
89 */
90
91int bad_init(EVP_CIPHER_CTX *ctx, const unsigned char *key,
92 const unsigned char *iv, int enc)
93 { FIPS_ERROR_IGNORED("Cipher init"); return 0;}
94
95int bad_do_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
96 const unsigned char *in, unsigned int inl)
97 { FIPS_ERROR_IGNORED("Cipher update"); return 0;}
98
99/* NB: no cleanup because it is allowed after failed init */
100
101int bad_set_asn1(EVP_CIPHER_CTX *ctx, ASN1_TYPE *typ)
102 { FIPS_ERROR_IGNORED("Cipher set_asn1"); return 0;}
103int bad_get_asn1(EVP_CIPHER_CTX *ctx, ASN1_TYPE *typ)
104 { FIPS_ERROR_IGNORED("Cipher get_asn1"); return 0;}
105int bad_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr)
106 { FIPS_ERROR_IGNORED("Cipher ctrl"); return 0;}
107
108static const EVP_CIPHER bad_cipher =
109 {
110 0,
111 0,
112 0,
113 0,
114 0,
115 bad_init,
116 bad_do_cipher,
117 NULL,
118 0,
119 bad_set_asn1,
120 bad_get_asn1,
121 bad_ctrl,
122 NULL
123 };
124
125#endif
126
85int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *impl, 127int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *impl,
86 const unsigned char *key, const unsigned char *iv, int enc) 128 const unsigned char *key, const unsigned char *iv, int enc)
87 { 129 {
@@ -146,7 +188,6 @@ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *imp
146 else 188 else
147 ctx->engine = NULL; 189 ctx->engine = NULL;
148#endif 190#endif
149
150 ctx->cipher=cipher; 191 ctx->cipher=cipher;
151 if (ctx->cipher->ctx_size) 192 if (ctx->cipher->ctx_size)
152 { 193 {
@@ -210,6 +251,24 @@ skip_to_init:
210 } 251 }
211 } 252 }
212 253
254#ifdef OPENSSL_FIPS
255 /* After 'key' is set no further parameters changes are permissible.
256 * So only check for non FIPS enabling at this point.
257 */
258 if (key && FIPS_mode())
259 {
260 if (!(ctx->cipher->flags & EVP_CIPH_FLAG_FIPS)
261 & !(ctx->flags & EVP_CIPH_FLAG_NON_FIPS_ALLOW))
262 {
263 EVPerr(EVP_F_EVP_CIPHERINIT, EVP_R_DISABLED_FOR_FIPS);
264 ERR_add_error_data(2, "cipher=",
265 EVP_CIPHER_name(ctx->cipher));
266 ctx->cipher = &bad_cipher;
267 return 0;
268 }
269 }
270#endif
271
213 if(key || (ctx->cipher->flags & EVP_CIPH_ALWAYS_CALL_INIT)) { 272 if(key || (ctx->cipher->flags & EVP_CIPH_ALWAYS_CALL_INIT)) {
214 if(!ctx->cipher->init(ctx,key,iv,enc)) return 0; 273 if(!ctx->cipher->init(ctx,key,iv,enc)) return 0;
215 } 274 }
diff --git a/src/lib/libssl/src/crypto/evp/evp_err.c b/src/lib/libssl/src/crypto/evp/evp_err.c
index 3a23d21c21..40135d0729 100644
--- a/src/lib/libssl/src/crypto/evp/evp_err.c
+++ b/src/lib/libssl/src/crypto/evp/evp_err.c
@@ -1,6 +1,6 @@
1/* crypto/evp/evp_err.c */ 1/* crypto/evp/evp_err.c */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
@@ -66,13 +66,18 @@
66#ifndef OPENSSL_NO_ERR 66#ifndef OPENSSL_NO_ERR
67static ERR_STRING_DATA EVP_str_functs[]= 67static ERR_STRING_DATA EVP_str_functs[]=
68 { 68 {
69{ERR_PACK(0,EVP_F_AES_INIT_KEY,0), "AES_INIT_KEY"},
69{ERR_PACK(0,EVP_F_D2I_PKEY,0), "D2I_PKEY"}, 70{ERR_PACK(0,EVP_F_D2I_PKEY,0), "D2I_PKEY"},
71{ERR_PACK(0,EVP_F_EVP_ADD_CIPHER,0), "EVP_add_cipher"},
72{ERR_PACK(0,EVP_F_EVP_ADD_DIGEST,0), "EVP_add_digest"},
70{ERR_PACK(0,EVP_F_EVP_CIPHERINIT,0), "EVP_CipherInit"}, 73{ERR_PACK(0,EVP_F_EVP_CIPHERINIT,0), "EVP_CipherInit"},
71{ERR_PACK(0,EVP_F_EVP_CIPHER_CTX_CTRL,0), "EVP_CIPHER_CTX_ctrl"}, 74{ERR_PACK(0,EVP_F_EVP_CIPHER_CTX_CTRL,0), "EVP_CIPHER_CTX_ctrl"},
72{ERR_PACK(0,EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH,0), "EVP_CIPHER_CTX_set_key_length"}, 75{ERR_PACK(0,EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH,0), "EVP_CIPHER_CTX_set_key_length"},
73{ERR_PACK(0,EVP_F_EVP_DECRYPTFINAL,0), "EVP_DecryptFinal"}, 76{ERR_PACK(0,EVP_F_EVP_DECRYPTFINAL,0), "EVP_DecryptFinal"},
74{ERR_PACK(0,EVP_F_EVP_DIGESTINIT,0), "EVP_DigestInit"}, 77{ERR_PACK(0,EVP_F_EVP_DIGESTINIT,0), "EVP_DigestInit"},
75{ERR_PACK(0,EVP_F_EVP_ENCRYPTFINAL,0), "EVP_EncryptFinal"}, 78{ERR_PACK(0,EVP_F_EVP_ENCRYPTFINAL,0), "EVP_EncryptFinal"},
79{ERR_PACK(0,EVP_F_EVP_GET_CIPHERBYNAME,0), "EVP_get_cipherbyname"},
80{ERR_PACK(0,EVP_F_EVP_GET_DIGESTBYNAME,0), "EVP_get_digestbyname"},
76{ERR_PACK(0,EVP_F_EVP_MD_CTX_COPY,0), "EVP_MD_CTX_copy"}, 81{ERR_PACK(0,EVP_F_EVP_MD_CTX_COPY,0), "EVP_MD_CTX_copy"},
77{ERR_PACK(0,EVP_F_EVP_OPENINIT,0), "EVP_OpenInit"}, 82{ERR_PACK(0,EVP_F_EVP_OPENINIT,0), "EVP_OpenInit"},
78{ERR_PACK(0,EVP_F_EVP_PBE_ALG_ADD,0), "EVP_PBE_alg_add"}, 83{ERR_PACK(0,EVP_F_EVP_PBE_ALG_ADD,0), "EVP_PBE_alg_add"},
@@ -99,6 +104,7 @@ static ERR_STRING_DATA EVP_str_functs[]=
99 104
100static ERR_STRING_DATA EVP_str_reasons[]= 105static ERR_STRING_DATA EVP_str_reasons[]=
101 { 106 {
107{EVP_R_AES_KEY_SETUP_FAILED ,"aes key setup failed"},
102{EVP_R_BAD_BLOCK_LENGTH ,"bad block length"}, 108{EVP_R_BAD_BLOCK_LENGTH ,"bad block length"},
103{EVP_R_BAD_DECRYPT ,"bad decrypt"}, 109{EVP_R_BAD_DECRYPT ,"bad decrypt"},
104{EVP_R_BAD_KEY_LENGTH ,"bad key length"}, 110{EVP_R_BAD_KEY_LENGTH ,"bad key length"},
@@ -110,6 +116,7 @@ static ERR_STRING_DATA EVP_str_reasons[]=
110{EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH ,"data not multiple of block length"}, 116{EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH ,"data not multiple of block length"},
111{EVP_R_DECODE_ERROR ,"decode error"}, 117{EVP_R_DECODE_ERROR ,"decode error"},
112{EVP_R_DIFFERENT_KEY_TYPES ,"different key types"}, 118{EVP_R_DIFFERENT_KEY_TYPES ,"different key types"},
119{EVP_R_DISABLED_FOR_FIPS ,"disabled for fips"},
113{EVP_R_ENCODE_ERROR ,"encode error"}, 120{EVP_R_ENCODE_ERROR ,"encode error"},
114{EVP_R_EVP_PBE_CIPHERINIT_ERROR ,"evp pbe cipherinit error"}, 121{EVP_R_EVP_PBE_CIPHERINIT_ERROR ,"evp pbe cipherinit error"},
115{EVP_R_EXPECTING_AN_RSA_KEY ,"expecting an rsa key"}, 122{EVP_R_EXPECTING_AN_RSA_KEY ,"expecting an rsa key"},
diff --git a/src/lib/libssl/src/crypto/evp/evp_lib.c b/src/lib/libssl/src/crypto/evp/evp_lib.c
index 52a3b287be..a63ba19317 100644
--- a/src/lib/libssl/src/crypto/evp/evp_lib.c
+++ b/src/lib/libssl/src/crypto/evp/evp_lib.c
@@ -68,7 +68,7 @@ int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
68 if (c->cipher->set_asn1_parameters != NULL) 68 if (c->cipher->set_asn1_parameters != NULL)
69 ret=c->cipher->set_asn1_parameters(c,type); 69 ret=c->cipher->set_asn1_parameters(c,type);
70 else 70 else
71 ret=1; 71 return -1;
72 return(ret); 72 return(ret);
73 } 73 }
74 74
@@ -79,7 +79,7 @@ int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
79 if (c->cipher->get_asn1_parameters != NULL) 79 if (c->cipher->get_asn1_parameters != NULL)
80 ret=c->cipher->get_asn1_parameters(c,type); 80 ret=c->cipher->get_asn1_parameters(c,type);
81 else 81 else
82 ret=1; 82 return -1;
83 return(ret); 83 return(ret);
84 } 84 }
85 85
@@ -133,6 +133,30 @@ int EVP_CIPHER_type(const EVP_CIPHER *ctx)
133 133
134 return NID_rc4; 134 return NID_rc4;
135 135
136 case NID_aes_128_cfb128:
137 case NID_aes_128_cfb8:
138 case NID_aes_128_cfb1:
139
140 return NID_aes_128_cfb128;
141
142 case NID_aes_192_cfb128:
143 case NID_aes_192_cfb8:
144 case NID_aes_192_cfb1:
145
146 return NID_aes_192_cfb128;
147
148 case NID_aes_256_cfb128:
149 case NID_aes_256_cfb8:
150 case NID_aes_256_cfb1:
151
152 return NID_aes_256_cfb128;
153
154 case NID_des_cfb64:
155 case NID_des_cfb8:
156 case NID_des_cfb1:
157
158 return NID_des_cfb64;
159
136 default: 160 default:
137 /* Check it has an OID and it is valid */ 161 /* Check it has an OID and it is valid */
138 otmp = OBJ_nid2obj(nid); 162 otmp = OBJ_nid2obj(nid);
diff --git a/src/lib/libssl/src/crypto/evp/evp_locl.h b/src/lib/libssl/src/crypto/evp/evp_locl.h
index 4d81a3bf4c..f8c5343620 100644
--- a/src/lib/libssl/src/crypto/evp/evp_locl.h
+++ b/src/lib/libssl/src/crypto/evp/evp_locl.h
@@ -90,7 +90,7 @@ static int cname##_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const uns
90} 90}
91 91
92#define BLOCK_CIPHER_func_cfb(cname, cprefix, cbits, kstruct, ksched) \ 92#define BLOCK_CIPHER_func_cfb(cname, cprefix, cbits, kstruct, ksched) \
93static int cname##_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, unsigned int inl) \ 93static int cname##_cfb##cbits##_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, unsigned int inl) \
94{\ 94{\
95 cprefix##_cfb##cbits##_encrypt(in, out, (long)inl, &((kstruct *)ctx->cipher_data)->ksched, ctx->iv, &ctx->num, ctx->encrypt);\ 95 cprefix##_cfb##cbits##_encrypt(in, out, (long)inl, &((kstruct *)ctx->cipher_data)->ksched, ctx->iv, &ctx->num, ctx->encrypt);\
96 return 1;\ 96 return 1;\
@@ -127,7 +127,7 @@ BLOCK_CIPHER_def1(cname, cbc, cbc, CBC, kstruct, nid, block_size, key_len, \
127#define BLOCK_CIPHER_def_cfb(cname, kstruct, nid, key_len, \ 127#define BLOCK_CIPHER_def_cfb(cname, kstruct, nid, key_len, \
128 iv_len, cbits, flags, init_key, cleanup, \ 128 iv_len, cbits, flags, init_key, cleanup, \
129 set_asn1, get_asn1, ctrl) \ 129 set_asn1, get_asn1, ctrl) \
130BLOCK_CIPHER_def1(cname, cfb##cbits, cfb, CFB, kstruct, nid, 1, \ 130BLOCK_CIPHER_def1(cname, cfb##cbits, cfb##cbits, CFB, kstruct, nid, 1, \
131 key_len, iv_len, flags, init_key, cleanup, set_asn1, \ 131 key_len, iv_len, flags, init_key, cleanup, set_asn1, \
132 get_asn1, ctrl) 132 get_asn1, ctrl)
133 133
@@ -225,3 +225,28 @@ const EVP_CIPHER *EVP_##cname##_ecb(void) { return &cname##_ecb; }
225 get_asn1, ctrl) 225 get_asn1, ctrl)
226 226
227#define EVP_C_DATA(kstruct, ctx) ((kstruct *)(ctx)->cipher_data) 227#define EVP_C_DATA(kstruct, ctx) ((kstruct *)(ctx)->cipher_data)
228
229#define IMPLEMENT_CFBR(cipher,cprefix,kstruct,ksched,keysize,cbits,iv_len,flags) \
230 BLOCK_CIPHER_func_cfb(cipher##_##keysize,cprefix,cbits,kstruct,ksched) \
231 BLOCK_CIPHER_def_cfb(cipher##_##keysize,kstruct, \
232 NID_##cipher##_##keysize, keysize/8, iv_len, cbits, \
233 flags, cipher##_init_key, NULL, \
234 EVP_CIPHER_set_asn1_iv, \
235 EVP_CIPHER_get_asn1_iv, \
236 NULL)
237
238#ifdef OPENSSL_FIPS
239#define RC2_set_key private_RC2_set_key
240#define RC4_set_key private_RC4_set_key
241#define CAST_set_key private_CAST_set_key
242#define RC5_32_set_key private_RC5_32_set_key
243#define BF_set_key private_BF_set_key
244#define idea_set_encrypt_key private_idea_set_encrypt_key
245
246#define MD5_Init private_MD5_Init
247#define MD4_Init private_MD4_Init
248#define MD2_Init private_MD2_Init
249#define MDC2_Init private_MDC2_Init
250#define SHA_Init private_SHA_Init
251
252#endif
diff --git a/src/lib/libssl/src/crypto/evp/evp_pkey.c b/src/lib/libssl/src/crypto/evp/evp_pkey.c
index eb481ec661..47a69932a5 100644
--- a/src/lib/libssl/src/crypto/evp/evp_pkey.c
+++ b/src/lib/libssl/src/crypto/evp/evp_pkey.c
@@ -235,7 +235,11 @@ PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8_broken(EVP_PKEY *pkey, int broken)
235 return NULL; 235 return NULL;
236 } 236 }
237 p8->broken = broken; 237 p8->broken = broken;
238 ASN1_INTEGER_set (p8->version, 0); 238 if (!ASN1_INTEGER_set(p8->version, 0)) {
239 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
240 PKCS8_PRIV_KEY_INFO_free (p8);
241 return NULL;
242 }
239 if (!(p8->pkeyalg->parameter = ASN1_TYPE_new ())) { 243 if (!(p8->pkeyalg->parameter = ASN1_TYPE_new ())) {
240 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE); 244 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
241 PKCS8_PRIV_KEY_INFO_free (p8); 245 PKCS8_PRIV_KEY_INFO_free (p8);
@@ -303,29 +307,35 @@ PKCS8_PRIV_KEY_INFO *PKCS8_set_broken(PKCS8_PRIV_KEY_INFO *p8, int broken)
303#ifndef OPENSSL_NO_DSA 307#ifndef OPENSSL_NO_DSA
304static int dsa_pkey2pkcs8(PKCS8_PRIV_KEY_INFO *p8, EVP_PKEY *pkey) 308static int dsa_pkey2pkcs8(PKCS8_PRIV_KEY_INFO *p8, EVP_PKEY *pkey)
305{ 309{
306 ASN1_STRING *params; 310 ASN1_STRING *params = NULL;
307 ASN1_INTEGER *prkey; 311 ASN1_INTEGER *prkey = NULL;
308 ASN1_TYPE *ttmp; 312 ASN1_TYPE *ttmp = NULL;
309 STACK_OF(ASN1_TYPE) *ndsa; 313 STACK_OF(ASN1_TYPE) *ndsa = NULL;
310 unsigned char *p, *q; 314 unsigned char *p = NULL, *q;
311 int len; 315 int len;
312 316
313 p8->pkeyalg->algorithm = OBJ_nid2obj(NID_dsa); 317 p8->pkeyalg->algorithm = OBJ_nid2obj(NID_dsa);
314 len = i2d_DSAparams (pkey->pkey.dsa, NULL); 318 len = i2d_DSAparams (pkey->pkey.dsa, NULL);
315 if (!(p = OPENSSL_malloc(len))) { 319 if (!(p = OPENSSL_malloc(len))) {
316 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE); 320 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
317 PKCS8_PRIV_KEY_INFO_free (p8); 321 goto err;
318 return 0;
319 } 322 }
320 q = p; 323 q = p;
321 i2d_DSAparams (pkey->pkey.dsa, &q); 324 i2d_DSAparams (pkey->pkey.dsa, &q);
322 params = ASN1_STRING_new(); 325 if (!(params = ASN1_STRING_new())) {
323 ASN1_STRING_set(params, p, len); 326 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
327 goto err;
328 }
329 if (!ASN1_STRING_set(params, p, len)) {
330 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
331 goto err;
332 }
324 OPENSSL_free(p); 333 OPENSSL_free(p);
334 p = NULL;
325 /* Get private key into integer */ 335 /* Get private key into integer */
326 if (!(prkey = BN_to_ASN1_INTEGER (pkey->pkey.dsa->priv_key, NULL))) { 336 if (!(prkey = BN_to_ASN1_INTEGER (pkey->pkey.dsa->priv_key, NULL))) {
327 EVPerr(EVP_F_EVP_PKEY2PKCS8,EVP_R_ENCODE_ERROR); 337 EVPerr(EVP_F_EVP_PKEY2PKCS8,EVP_R_ENCODE_ERROR);
328 return 0; 338 goto err;
329 } 339 }
330 340
331 switch(p8->broken) { 341 switch(p8->broken) {
@@ -336,12 +346,13 @@ static int dsa_pkey2pkcs8(PKCS8_PRIV_KEY_INFO *p8, EVP_PKEY *pkey)
336 if (!ASN1_pack_string((char *)prkey, i2d_ASN1_INTEGER, 346 if (!ASN1_pack_string((char *)prkey, i2d_ASN1_INTEGER,
337 &p8->pkey->value.octet_string)) { 347 &p8->pkey->value.octet_string)) {
338 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE); 348 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
339 M_ASN1_INTEGER_free (prkey); 349 goto err;
340 return 0;
341 } 350 }
342 351
343 M_ASN1_INTEGER_free (prkey); 352 M_ASN1_INTEGER_free (prkey);
353 prkey = NULL;
344 p8->pkeyalg->parameter->value.sequence = params; 354 p8->pkeyalg->parameter->value.sequence = params;
355 params = NULL;
345 p8->pkeyalg->parameter->type = V_ASN1_SEQUENCE; 356 p8->pkeyalg->parameter->type = V_ASN1_SEQUENCE;
346 357
347 break; 358 break;
@@ -349,32 +360,51 @@ static int dsa_pkey2pkcs8(PKCS8_PRIV_KEY_INFO *p8, EVP_PKEY *pkey)
349 case PKCS8_NS_DB: 360 case PKCS8_NS_DB:
350 361
351 p8->pkeyalg->parameter->value.sequence = params; 362 p8->pkeyalg->parameter->value.sequence = params;
363 params = NULL;
352 p8->pkeyalg->parameter->type = V_ASN1_SEQUENCE; 364 p8->pkeyalg->parameter->type = V_ASN1_SEQUENCE;
353 ndsa = sk_ASN1_TYPE_new_null(); 365 if (!(ndsa = sk_ASN1_TYPE_new_null())) {
354 ttmp = ASN1_TYPE_new(); 366 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
355 if (!(ttmp->value.integer = BN_to_ASN1_INTEGER (pkey->pkey.dsa->pub_key, NULL))) { 367 goto err;
368 }
369 if (!(ttmp = ASN1_TYPE_new())) {
370 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
371 goto err;
372 }
373 if (!(ttmp->value.integer =
374 BN_to_ASN1_INTEGER(pkey->pkey.dsa->pub_key, NULL))) {
356 EVPerr(EVP_F_EVP_PKEY2PKCS8,EVP_R_ENCODE_ERROR); 375 EVPerr(EVP_F_EVP_PKEY2PKCS8,EVP_R_ENCODE_ERROR);
357 PKCS8_PRIV_KEY_INFO_free(p8); 376 goto err;
358 return 0;
359 } 377 }
360 ttmp->type = V_ASN1_INTEGER; 378 ttmp->type = V_ASN1_INTEGER;
361 sk_ASN1_TYPE_push(ndsa, ttmp); 379 if (!sk_ASN1_TYPE_push(ndsa, ttmp)) {
380 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
381 goto err;
382 }
362 383
363 ttmp = ASN1_TYPE_new(); 384 if (!(ttmp = ASN1_TYPE_new())) {
385 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
386 goto err;
387 }
364 ttmp->value.integer = prkey; 388 ttmp->value.integer = prkey;
389 prkey = NULL;
365 ttmp->type = V_ASN1_INTEGER; 390 ttmp->type = V_ASN1_INTEGER;
366 sk_ASN1_TYPE_push(ndsa, ttmp); 391 if (!sk_ASN1_TYPE_push(ndsa, ttmp)) {
392 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
393 goto err;
394 }
395 ttmp = NULL;
367 396
368 p8->pkey->value.octet_string = ASN1_OCTET_STRING_new(); 397 if (!(p8->pkey->value.octet_string = ASN1_OCTET_STRING_new())) {
398 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
399 goto err;
400 }
369 401
370 if (!ASN1_seq_pack_ASN1_TYPE(ndsa, i2d_ASN1_TYPE, 402 if (!ASN1_seq_pack_ASN1_TYPE(ndsa, i2d_ASN1_TYPE,
371 &p8->pkey->value.octet_string->data, 403 &p8->pkey->value.octet_string->data,
372 &p8->pkey->value.octet_string->length)) { 404 &p8->pkey->value.octet_string->length)) {
373 405
374 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE); 406 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
375 sk_ASN1_TYPE_pop_free(ndsa, ASN1_TYPE_free); 407 goto err;
376 M_ASN1_INTEGER_free(prkey);
377 return 0;
378 } 408 }
379 sk_ASN1_TYPE_pop_free(ndsa, ASN1_TYPE_free); 409 sk_ASN1_TYPE_pop_free(ndsa, ASN1_TYPE_free);
380 break; 410 break;
@@ -382,31 +412,57 @@ static int dsa_pkey2pkcs8(PKCS8_PRIV_KEY_INFO *p8, EVP_PKEY *pkey)
382 case PKCS8_EMBEDDED_PARAM: 412 case PKCS8_EMBEDDED_PARAM:
383 413
384 p8->pkeyalg->parameter->type = V_ASN1_NULL; 414 p8->pkeyalg->parameter->type = V_ASN1_NULL;
385 ndsa = sk_ASN1_TYPE_new_null(); 415 if (!(ndsa = sk_ASN1_TYPE_new_null())) {
386 ttmp = ASN1_TYPE_new(); 416 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
417 goto err;
418 }
419 if (!(ttmp = ASN1_TYPE_new())) {
420 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
421 goto err;
422 }
387 ttmp->value.sequence = params; 423 ttmp->value.sequence = params;
424 params = NULL;
388 ttmp->type = V_ASN1_SEQUENCE; 425 ttmp->type = V_ASN1_SEQUENCE;
389 sk_ASN1_TYPE_push(ndsa, ttmp); 426 if (!sk_ASN1_TYPE_push(ndsa, ttmp)) {
427 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
428 goto err;
429 }
390 430
391 ttmp = ASN1_TYPE_new(); 431 if (!(ttmp = ASN1_TYPE_new())) {
432 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
433 goto err;
434 }
392 ttmp->value.integer = prkey; 435 ttmp->value.integer = prkey;
436 prkey = NULL;
393 ttmp->type = V_ASN1_INTEGER; 437 ttmp->type = V_ASN1_INTEGER;
394 sk_ASN1_TYPE_push(ndsa, ttmp); 438 if (!sk_ASN1_TYPE_push(ndsa, ttmp)) {
439 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
440 goto err;
441 }
442 ttmp = NULL;
395 443
396 p8->pkey->value.octet_string = ASN1_OCTET_STRING_new(); 444 if (!(p8->pkey->value.octet_string = ASN1_OCTET_STRING_new())) {
445 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
446 goto err;
447 }
397 448
398 if (!ASN1_seq_pack_ASN1_TYPE(ndsa, i2d_ASN1_TYPE, 449 if (!ASN1_seq_pack_ASN1_TYPE(ndsa, i2d_ASN1_TYPE,
399 &p8->pkey->value.octet_string->data, 450 &p8->pkey->value.octet_string->data,
400 &p8->pkey->value.octet_string->length)) { 451 &p8->pkey->value.octet_string->length)) {
401 452
402 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE); 453 EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
403 sk_ASN1_TYPE_pop_free(ndsa, ASN1_TYPE_free); 454 goto err;
404 M_ASN1_INTEGER_free (prkey);
405 return 0;
406 } 455 }
407 sk_ASN1_TYPE_pop_free(ndsa, ASN1_TYPE_free); 456 sk_ASN1_TYPE_pop_free(ndsa, ASN1_TYPE_free);
408 break; 457 break;
409 } 458 }
410 return 1; 459 return 1;
460err:
461 if (p != NULL) OPENSSL_free(p);
462 if (params != NULL) ASN1_STRING_free(params);
463 if (prkey != NULL) M_ASN1_INTEGER_free(prkey);
464 if (ttmp != NULL) ASN1_TYPE_free(ttmp);
465 if (ndsa != NULL) sk_ASN1_TYPE_pop_free(ndsa, ASN1_TYPE_free);
466 return 0;
411} 467}
412#endif 468#endif
diff --git a/src/lib/libssl/src/crypto/evp/evp_test.c b/src/lib/libssl/src/crypto/evp/evp_test.c
index 28460173f7..a624cfd248 100644
--- a/src/lib/libssl/src/crypto/evp/evp_test.c
+++ b/src/lib/libssl/src/crypto/evp/evp_test.c
@@ -136,7 +136,7 @@ static void test1(const EVP_CIPHER *c,const unsigned char *key,int kn,
136 const unsigned char *iv,int in, 136 const unsigned char *iv,int in,
137 const unsigned char *plaintext,int pn, 137 const unsigned char *plaintext,int pn,
138 const unsigned char *ciphertext,int cn, 138 const unsigned char *ciphertext,int cn,
139 int encdec) 139 int encdec,int multiplier)
140 { 140 {
141 EVP_CIPHER_CTX ctx; 141 EVP_CIPHER_CTX ctx;
142 unsigned char out[4096]; 142 unsigned char out[4096];
@@ -162,22 +162,25 @@ static void test1(const EVP_CIPHER *c,const unsigned char *key,int kn,
162 if(!EVP_EncryptInit_ex(&ctx,c,NULL,key,iv)) 162 if(!EVP_EncryptInit_ex(&ctx,c,NULL,key,iv))
163 { 163 {
164 fprintf(stderr,"EncryptInit failed\n"); 164 fprintf(stderr,"EncryptInit failed\n");
165 ERR_print_errors_fp(stderr);
165 test1_exit(10); 166 test1_exit(10);
166 } 167 }
167 EVP_CIPHER_CTX_set_padding(&ctx,0); 168 EVP_CIPHER_CTX_set_padding(&ctx,0);
168 169
169 if(!EVP_EncryptUpdate(&ctx,out,&outl,plaintext,pn)) 170 if(!EVP_EncryptUpdate(&ctx,out,&outl,plaintext,pn*multiplier))
170 { 171 {
171 fprintf(stderr,"Encrypt failed\n"); 172 fprintf(stderr,"Encrypt failed\n");
173 ERR_print_errors_fp(stderr);
172 test1_exit(6); 174 test1_exit(6);
173 } 175 }
174 if(!EVP_EncryptFinal_ex(&ctx,out+outl,&outl2)) 176 if(!EVP_EncryptFinal_ex(&ctx,out+outl,&outl2))
175 { 177 {
176 fprintf(stderr,"EncryptFinal failed\n"); 178 fprintf(stderr,"EncryptFinal failed\n");
179 ERR_print_errors_fp(stderr);
177 test1_exit(7); 180 test1_exit(7);
178 } 181 }
179 182
180 if(outl+outl2 != cn) 183 if(outl+outl2 != cn*multiplier)
181 { 184 {
182 fprintf(stderr,"Ciphertext length mismatch got %d expected %d\n", 185 fprintf(stderr,"Ciphertext length mismatch got %d expected %d\n",
183 outl+outl2,cn); 186 outl+outl2,cn);
@@ -198,22 +201,25 @@ static void test1(const EVP_CIPHER *c,const unsigned char *key,int kn,
198 if(!EVP_DecryptInit_ex(&ctx,c,NULL,key,iv)) 201 if(!EVP_DecryptInit_ex(&ctx,c,NULL,key,iv))
199 { 202 {
200 fprintf(stderr,"DecryptInit failed\n"); 203 fprintf(stderr,"DecryptInit failed\n");
204 ERR_print_errors_fp(stderr);
201 test1_exit(11); 205 test1_exit(11);
202 } 206 }
203 EVP_CIPHER_CTX_set_padding(&ctx,0); 207 EVP_CIPHER_CTX_set_padding(&ctx,0);
204 208
205 if(!EVP_DecryptUpdate(&ctx,out,&outl,ciphertext,cn)) 209 if(!EVP_DecryptUpdate(&ctx,out,&outl,ciphertext,cn*multiplier))
206 { 210 {
207 fprintf(stderr,"Decrypt failed\n"); 211 fprintf(stderr,"Decrypt failed\n");
212 ERR_print_errors_fp(stderr);
208 test1_exit(6); 213 test1_exit(6);
209 } 214 }
210 if(!EVP_DecryptFinal_ex(&ctx,out+outl,&outl2)) 215 if(!EVP_DecryptFinal_ex(&ctx,out+outl,&outl2))
211 { 216 {
212 fprintf(stderr,"DecryptFinal failed\n"); 217 fprintf(stderr,"DecryptFinal failed\n");
218 ERR_print_errors_fp(stderr);
213 test1_exit(7); 219 test1_exit(7);
214 } 220 }
215 221
216 if(outl+outl2 != cn) 222 if(outl+outl2 != cn*multiplier)
217 { 223 {
218 fprintf(stderr,"Plaintext length mismatch got %d expected %d\n", 224 fprintf(stderr,"Plaintext length mismatch got %d expected %d\n",
219 outl+outl2,cn); 225 outl+outl2,cn);
@@ -238,7 +244,7 @@ static int test_cipher(const char *cipher,const unsigned char *key,int kn,
238 const unsigned char *iv,int in, 244 const unsigned char *iv,int in,
239 const unsigned char *plaintext,int pn, 245 const unsigned char *plaintext,int pn,
240 const unsigned char *ciphertext,int cn, 246 const unsigned char *ciphertext,int cn,
241 int encdec) 247 int encdec,int multiplier)
242 { 248 {
243 const EVP_CIPHER *c; 249 const EVP_CIPHER *c;
244 250
@@ -246,7 +252,7 @@ static int test_cipher(const char *cipher,const unsigned char *key,int kn,
246 if(!c) 252 if(!c)
247 return 0; 253 return 0;
248 254
249 test1(c,key,kn,iv,in,plaintext,pn,ciphertext,cn,encdec); 255 test1(c,key,kn,iv,in,plaintext,pn,ciphertext,cn,encdec,multiplier);
250 256
251 return 1; 257 return 1;
252 } 258 }
@@ -272,16 +278,19 @@ static int test_digest(const char *digest,
272 if(!EVP_DigestInit_ex(&ctx,d, NULL)) 278 if(!EVP_DigestInit_ex(&ctx,d, NULL))
273 { 279 {
274 fprintf(stderr,"DigestInit failed\n"); 280 fprintf(stderr,"DigestInit failed\n");
281 ERR_print_errors_fp(stderr);
275 EXIT(100); 282 EXIT(100);
276 } 283 }
277 if(!EVP_DigestUpdate(&ctx,plaintext,pn)) 284 if(!EVP_DigestUpdate(&ctx,plaintext,pn))
278 { 285 {
279 fprintf(stderr,"DigestUpdate failed\n"); 286 fprintf(stderr,"DigestUpdate failed\n");
287 ERR_print_errors_fp(stderr);
280 EXIT(101); 288 EXIT(101);
281 } 289 }
282 if(!EVP_DigestFinal_ex(&ctx,md,&mdn)) 290 if(!EVP_DigestFinal_ex(&ctx,md,&mdn))
283 { 291 {
284 fprintf(stderr,"DigestFinal failed\n"); 292 fprintf(stderr,"DigestFinal failed\n");
293 ERR_print_errors_fp(stderr);
285 EXIT(101); 294 EXIT(101);
286 } 295 }
287 EVP_MD_CTX_cleanup(&ctx); 296 EVP_MD_CTX_cleanup(&ctx);
@@ -359,6 +368,7 @@ int main(int argc,char **argv)
359 unsigned char *iv,*key,*plaintext,*ciphertext; 368 unsigned char *iv,*key,*plaintext,*ciphertext;
360 int encdec; 369 int encdec;
361 int kn,in,pn,cn; 370 int kn,in,pn,cn;
371 int multiplier=1;
362 372
363 if(!fgets((char *)line,sizeof line,f)) 373 if(!fgets((char *)line,sizeof line,f))
364 break; 374 break;
@@ -383,7 +393,15 @@ int main(int argc,char **argv)
383 pn=convert(plaintext); 393 pn=convert(plaintext);
384 cn=convert(ciphertext); 394 cn=convert(ciphertext);
385 395
386 if(!test_cipher(cipher,key,kn,iv,in,plaintext,pn,ciphertext,cn,encdec) 396 if(strchr(cipher,'*'))
397 {
398 p=cipher;
399 sstrsep(&p,"*");
400 multiplier=atoi(sstrsep(&p,"*"));
401 }
402
403 if(!test_cipher(cipher,key,kn,iv,in,plaintext,pn,ciphertext,cn,encdec,
404 multiplier)
387 && !test_digest(cipher,plaintext,pn,ciphertext,cn)) 405 && !test_digest(cipher,plaintext,pn,ciphertext,cn))
388 { 406 {
389 fprintf(stderr,"Can't find %s\n",cipher); 407 fprintf(stderr,"Can't find %s\n",cipher);
diff --git a/src/lib/libssl/src/crypto/evp/evptests.txt b/src/lib/libssl/src/crypto/evp/evptests.txt
index 80bd9c7765..dfe91a5bc0 100644
--- a/src/lib/libssl/src/crypto/evp/evptests.txt
+++ b/src/lib/libssl/src/crypto/evp/evptests.txt
@@ -92,7 +92,102 @@ AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:000
92AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:F58C4C04D6E5F1BA779EABFB5F7BFBD6:AE2D8A571E03AC9C9EB76FAC45AF8E51:9CFC4E967EDB808D679F777BC6702C7D 92AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:F58C4C04D6E5F1BA779EABFB5F7BFBD6:AE2D8A571E03AC9C9EB76FAC45AF8E51:9CFC4E967EDB808D679F777BC6702C7D
93AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:9CFC4E967EDB808D679F777BC6702C7D:30C81C46A35CE411E5FBC1191A0A52EF:39F23369A9D9BACFA530E26304231461 93AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:9CFC4E967EDB808D679F777BC6702C7D:30C81C46A35CE411E5FBC1191A0A52EF:39F23369A9D9BACFA530E26304231461
94AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:39F23369A9D9BACFA530E26304231461:F69F2445DF4F9B17AD2B417BE66C3710:B2EB05E2C39BE9FCDA6C19078C6A9D1B 94AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:39F23369A9D9BACFA530E26304231461:F69F2445DF4F9B17AD2B417BE66C3710:B2EB05E2C39BE9FCDA6C19078C6A9D1B
95# We don't support CFB{1,8}-AESxxx.{En,De}crypt 95
96# CFB1-AES128.Encrypt
97
98AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:00:00:1
99AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:00020406080a0c0e10121416181a1c1e:80:80:1
100AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0004080c1014181c2024282c3034383d:80:80:1
101AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0008101820283038404850586068707b:00:00:1
102AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:00102030405060708090a0b0c0d0e0f6:80:80:1
103AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0020406080a0c0e10121416181a1c1ed:00:00:1
104AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:004080c1014181c2024282c3034383da:80:00:1
105AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:008101820283038404850586068707b4:80:00:1
106AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0102030405060708090a0b0c0d0e0f68:80:80:1
107AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:020406080a0c0e10121416181a1c1ed1:80:00:1
108AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:04080c1014181c2024282c3034383da2:00:80:1
109AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:08101820283038404850586068707b45:00:80:1
110AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:102030405060708090a0b0c0d0e0f68b:00:00:1
111AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:20406080a0c0e10121416181a1c1ed16:00:00:1
112AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:4080c1014181c2024282c3034383da2c:00:80:1
113AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:8101820283038404850586068707b459:80:80:1
114# all of the above packed into one...
115# in: 0110 1011 1100 0001 = 6bc1
116# out: 0110 1000 1011 0011 = 68b3
117AES-128-CFB1*8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6bc1:68b3:1
118
119# CFB1-AES128.Decrypt
120AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:00:00:0
121AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:00020406080a0c0e10121416181a1c1e:80:80:0
122AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0004080c1014181c2024282c3034383d:80:80:0
123AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0008101820283038404850586068707b:00:00:0
124AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:00102030405060708090a0b0c0d0e0f6:80:80:0
125AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0020406080a0c0e10121416181a1c1ed:00:00:0
126AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:004080c1014181c2024282c3034383da:80:00:0
127AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:008101820283038404850586068707b4:80:00:0
128AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0102030405060708090a0b0c0d0e0f68:80:80:0
129AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:020406080a0c0e10121416181a1c1ed1:80:00:0
130AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:04080c1014181c2024282c3034383da2:00:80:0
131AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:08101820283038404850586068707b45:00:80:0
132AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:102030405060708090a0b0c0d0e0f68b:00:00:0
133AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:20406080a0c0e10121416181a1c1ed16:00:00:0
134AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:4080c1014181c2024282c3034383da2c:00:80:0
135AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:8101820283038404850586068707b459:80:80:0
136# all of the above packed into one...
137# in: 0110 1000 1011 0011 = 68b3
138# out: 0110 1011 1100 0001 = 6bc1
139AES-128-CFB1*8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6bc1:68b3:0
140
141# TODO: CFB1-AES192 and 256
142
143# CFB8-AES128.Encrypt
144
145AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6b:3b:1
146AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0102030405060708090a0b0c0d0e0f3b:c1:79:1
147AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:02030405060708090a0b0c0d0e0f3b79:be:42:1
148AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:030405060708090a0b0c0d0e0f3b7942:e2:4c:1
149AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0405060708090a0b0c0d0e0f3b79424c:2e:9c:1
150AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:05060708090a0b0c0d0e0f3b79424c9c:40:0d:1
151AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:060708090a0b0c0d0e0f3b79424c9c0d:9f:d4:1
152AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0708090a0b0c0d0e0f3b79424c9c0dd4:96:36:1
153AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:08090a0b0c0d0e0f3b79424c9c0dd436:e9:ba:1
154AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:090a0b0c0d0e0f3b79424c9c0dd436ba:3d:ce:1
155AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0a0b0c0d0e0f3b79424c9c0dd436bace:7e:9e:1
156AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0b0c0d0e0f3b79424c9c0dd436bace9e:11:0e:1
157AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0c0d0e0f3b79424c9c0dd436bace9e0e:73:d4:1
158AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0d0e0f3b79424c9c0dd436bace9e0ed4:93:58:1
159AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0e0f3b79424c9c0dd436bace9e0ed458:17:6a:1
160AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0f3b79424c9c0dd436bace9e0ed4586a:2a:4f:1
161AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:3b79424c9c0dd436bace9e0ed4586a4f:ae:32:1
162AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:79424c9c0dd436bace9e0ed4586a4f32:2d:b9:1
163# all of the above packed into one
164AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6bc1bee22e409f96e93d7e117393172aae2d:3b79424c9c0dd436bace9e0ed4586a4f32b9:1
165
166# CFB8-AES128.Decrypt
167
168AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6b:3b:0
169AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0102030405060708090a0b0c0d0e0f3b:c1:79:0
170AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:02030405060708090a0b0c0d0e0f3b79:be:42:0
171AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:030405060708090a0b0c0d0e0f3b7942:e2:4c:0
172AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0405060708090a0b0c0d0e0f3b79424c:2e:9c:0
173AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:05060708090a0b0c0d0e0f3b79424c9c:40:0d:0
174AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:060708090a0b0c0d0e0f3b79424c9c0d:9f:d4:0
175AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0708090a0b0c0d0e0f3b79424c9c0dd4:96:36:0
176AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:08090a0b0c0d0e0f3b79424c9c0dd436:e9:ba:0
177AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:090a0b0c0d0e0f3b79424c9c0dd436ba:3d:ce:0
178AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0a0b0c0d0e0f3b79424c9c0dd436bace:7e:9e:0
179AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0b0c0d0e0f3b79424c9c0dd436bace9e:11:0e:0
180AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0c0d0e0f3b79424c9c0dd436bace9e0e:73:d4:0
181AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0d0e0f3b79424c9c0dd436bace9e0ed4:93:58:0
182AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0e0f3b79424c9c0dd436bace9e0ed458:17:6a:0
183AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0f3b79424c9c0dd436bace9e0ed4586a:2a:4f:0
184AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:3b79424c9c0dd436bace9e0ed4586a4f:ae:32:0
185AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:79424c9c0dd436bace9e0ed4586a4f32:2d:b9:0
186# all of the above packed into one
187AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6bc1bee22e409f96e93d7e117393172aae2d:3b79424c9c0dd436bace9e0ed4586a4f32b9:0
188
189# TODO: 192 and 256 bit keys
190
96# For all CFB128 encrypts and decrypts, the transformed sequence is 191# For all CFB128 encrypts and decrypts, the transformed sequence is
97# AES-bits-CFB:key:IV/ciphertext':plaintext:ciphertext:encdec 192# AES-bits-CFB:key:IV/ciphertext':plaintext:ciphertext:encdec
98# CFB128-AES128.Encrypt 193# CFB128-AES128.Encrypt
@@ -174,6 +269,16 @@ DESX-CBC:0123456789abcdeff1e0d3c2b5a49786fedcba9876543210:fedcba9876543210:37363
174# DES EDE3 CBC tests (from destest) 269# DES EDE3 CBC tests (from destest)
175DES-EDE3-CBC:0123456789abcdeff1e0d3c2b5a49786fedcba9876543210:fedcba9876543210:37363534333231204E6F77206973207468652074696D6520666F722000000000:3FE301C962AC01D02213763C1CBD4CDC799657C064ECF5D41C673812CFDE9675 270DES-EDE3-CBC:0123456789abcdeff1e0d3c2b5a49786fedcba9876543210:fedcba9876543210:37363534333231204E6F77206973207468652074696D6520666F722000000000:3FE301C962AC01D02213763C1CBD4CDC799657C064ECF5D41C673812CFDE9675
176 271
272# DES CFB1 from FIPS 81
273# plaintext: 0100 1110 0110 1111 0111 0111 = 4e6f77
274# ciphertext: 1100 1101 0001 1110 1100 1001 = cd1ec9
275
276DES-CFB1*8:0123456789abcdef:1234567890abcdef:4e6f77:cd1ec9
277
278# DES CFB8 from FIPS 81
279
280DES-CFB8:0123456789abcdef:1234567890abcdef:4e6f7720697320746865:f31fda07011462ee187f
281
177# RC4 tests (from rc4test) 282# RC4 tests (from rc4test)
178RC4:0123456789abcdef0123456789abcdef::0123456789abcdef:75b7878099e0c596 283RC4:0123456789abcdef0123456789abcdef::0123456789abcdef:75b7878099e0c596
179RC4:0123456789abcdef0123456789abcdef::0000000000000000:7494c2e7104b0879 284RC4:0123456789abcdef0123456789abcdef::0000000000000000:7494c2e7104b0879
diff --git a/src/lib/libssl/src/crypto/evp/m_dss.c b/src/lib/libssl/src/crypto/evp/m_dss.c
index beb8d7fc5c..d393eb3400 100644
--- a/src/lib/libssl/src/crypto/evp/m_dss.c
+++ b/src/lib/libssl/src/crypto/evp/m_dss.c
@@ -77,7 +77,7 @@ static const EVP_MD dsa_md=
77 NID_dsaWithSHA, 77 NID_dsaWithSHA,
78 NID_dsaWithSHA, 78 NID_dsaWithSHA,
79 SHA_DIGEST_LENGTH, 79 SHA_DIGEST_LENGTH,
80 0, 80 EVP_MD_FLAG_FIPS,
81 init, 81 init,
82 update, 82 update,
83 final, 83 final,
diff --git a/src/lib/libssl/src/crypto/evp/m_md2.c b/src/lib/libssl/src/crypto/evp/m_md2.c
index 50914c83b3..0df48e5199 100644
--- a/src/lib/libssl/src/crypto/evp/m_md2.c
+++ b/src/lib/libssl/src/crypto/evp/m_md2.c
@@ -60,6 +60,7 @@
60#include <stdio.h> 60#include <stdio.h>
61#include "cryptlib.h" 61#include "cryptlib.h"
62#include <openssl/evp.h> 62#include <openssl/evp.h>
63#include "evp_locl.h"
63#include <openssl/objects.h> 64#include <openssl/objects.h>
64#include <openssl/x509.h> 65#include <openssl/x509.h>
65#include <openssl/md2.h> 66#include <openssl/md2.h>
diff --git a/src/lib/libssl/src/crypto/evp/m_md4.c b/src/lib/libssl/src/crypto/evp/m_md4.c
index e19b663754..0605e4b707 100644
--- a/src/lib/libssl/src/crypto/evp/m_md4.c
+++ b/src/lib/libssl/src/crypto/evp/m_md4.c
@@ -60,6 +60,7 @@
60#include <stdio.h> 60#include <stdio.h>
61#include "cryptlib.h" 61#include "cryptlib.h"
62#include <openssl/evp.h> 62#include <openssl/evp.h>
63#include "evp_locl.h"
63#include <openssl/objects.h> 64#include <openssl/objects.h>
64#include <openssl/x509.h> 65#include <openssl/x509.h>
65#include <openssl/md4.h> 66#include <openssl/md4.h>
diff --git a/src/lib/libssl/src/crypto/evp/m_md5.c b/src/lib/libssl/src/crypto/evp/m_md5.c
index b00a03e048..752615d473 100644
--- a/src/lib/libssl/src/crypto/evp/m_md5.c
+++ b/src/lib/libssl/src/crypto/evp/m_md5.c
@@ -60,6 +60,7 @@
60#include <stdio.h> 60#include <stdio.h>
61#include "cryptlib.h" 61#include "cryptlib.h"
62#include <openssl/evp.h> 62#include <openssl/evp.h>
63#include "evp_locl.h"
63#include <openssl/objects.h> 64#include <openssl/objects.h>
64#include <openssl/x509.h> 65#include <openssl/x509.h>
65#include <openssl/md5.h> 66#include <openssl/md5.h>
diff --git a/src/lib/libssl/src/crypto/evp/m_mdc2.c b/src/lib/libssl/src/crypto/evp/m_mdc2.c
index 9f6467c931..62de1336b8 100644
--- a/src/lib/libssl/src/crypto/evp/m_mdc2.c
+++ b/src/lib/libssl/src/crypto/evp/m_mdc2.c
@@ -60,6 +60,7 @@
60#include <stdio.h> 60#include <stdio.h>
61#include "cryptlib.h" 61#include "cryptlib.h"
62#include <openssl/evp.h> 62#include <openssl/evp.h>
63#include "evp_locl.h"
63#include <openssl/objects.h> 64#include <openssl/objects.h>
64#include <openssl/x509.h> 65#include <openssl/x509.h>
65#include <openssl/mdc2.h> 66#include <openssl/mdc2.h>
diff --git a/src/lib/libssl/src/crypto/evp/m_sha.c b/src/lib/libssl/src/crypto/evp/m_sha.c
index 10697c7ed3..d1785e5f74 100644
--- a/src/lib/libssl/src/crypto/evp/m_sha.c
+++ b/src/lib/libssl/src/crypto/evp/m_sha.c
@@ -56,10 +56,11 @@
56 * [including the GNU Public Licence.] 56 * [including the GNU Public Licence.]
57 */ 57 */
58 58
59#ifndef OPENSSL_NO_SHA 59#if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA0)
60#include <stdio.h> 60#include <stdio.h>
61#include "cryptlib.h" 61#include "cryptlib.h"
62#include <openssl/evp.h> 62#include <openssl/evp.h>
63#include "evp_locl.h"
63#include <openssl/objects.h> 64#include <openssl/objects.h>
64#include <openssl/x509.h> 65#include <openssl/x509.h>
65 66
diff --git a/src/lib/libssl/src/crypto/evp/m_sha1.c b/src/lib/libssl/src/crypto/evp/m_sha1.c
index d6be3502f0..fe4402389a 100644
--- a/src/lib/libssl/src/crypto/evp/m_sha1.c
+++ b/src/lib/libssl/src/crypto/evp/m_sha1.c
@@ -77,7 +77,7 @@ static const EVP_MD sha1_md=
77 NID_sha1, 77 NID_sha1,
78 NID_sha1WithRSAEncryption, 78 NID_sha1WithRSAEncryption,
79 SHA_DIGEST_LENGTH, 79 SHA_DIGEST_LENGTH,
80 0, 80 EVP_MD_FLAG_FIPS,
81 init, 81 init,
82 update, 82 update,
83 final, 83 final,
diff --git a/src/lib/libssl/src/crypto/evp/names.c b/src/lib/libssl/src/crypto/evp/names.c
index eb9f4329cd..7712453046 100644
--- a/src/lib/libssl/src/crypto/evp/names.c
+++ b/src/lib/libssl/src/crypto/evp/names.c
@@ -61,6 +61,9 @@
61#include <openssl/evp.h> 61#include <openssl/evp.h>
62#include <openssl/objects.h> 62#include <openssl/objects.h>
63#include <openssl/x509.h> 63#include <openssl/x509.h>
64#ifdef OPENSSL_FIPS
65#include <openssl/fips.h>
66#endif
64 67
65int EVP_add_cipher(const EVP_CIPHER *c) 68int EVP_add_cipher(const EVP_CIPHER *c)
66 { 69 {
diff --git a/src/lib/libssl/src/crypto/hmac/Makefile b/src/lib/libssl/src/crypto/hmac/Makefile
new file mode 100644
index 0000000000..f634dab79d
--- /dev/null
+++ b/src/lib/libssl/src/crypto/hmac/Makefile
@@ -0,0 +1,99 @@
1#
2# SSLeay/crypto/md/Makefile
3#
4
5DIR= hmac
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=hmactest.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=hmac.c
26LIBOBJ=hmac.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= hmac.h
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80hmac.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
81hmac.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
82hmac.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
83hmac.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
84hmac.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
85hmac.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
86hmac.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
87hmac.o: ../../include/openssl/evp.h ../../include/openssl/hmac.h
88hmac.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
89hmac.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
90hmac.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
91hmac.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
92hmac.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
93hmac.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc2.h
94hmac.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
95hmac.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
96hmac.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
97hmac.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
98hmac.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
99hmac.o: ../cryptlib.h hmac.c
diff --git a/src/lib/libssl/src/crypto/hmac/hmac.c b/src/lib/libssl/src/crypto/hmac/hmac.c
index 4c91f919d5..06ee80761f 100644
--- a/src/lib/libssl/src/crypto/hmac/hmac.c
+++ b/src/lib/libssl/src/crypto/hmac/hmac.c
@@ -77,6 +77,15 @@ void HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
77 77
78 if (key != NULL) 78 if (key != NULL)
79 { 79 {
80#ifdef OPENSSL_FIPS
81 if (FIPS_mode() && !(md->flags & EVP_MD_FLAG_FIPS)
82 && (!(ctx->md_ctx.flags & EVP_MD_CTX_FLAG_NON_FIPS_ALLOW)
83 || !(ctx->i_ctx.flags & EVP_MD_CTX_FLAG_NON_FIPS_ALLOW)
84 || !(ctx->o_ctx.flags & EVP_MD_CTX_FLAG_NON_FIPS_ALLOW)))
85 OpenSSLDie(__FILE__,__LINE__,
86 "HMAC: digest not allowed in FIPS mode");
87#endif
88
80 reset=1; 89 reset=1;
81 j=EVP_MD_block_size(md); 90 j=EVP_MD_block_size(md);
82 OPENSSL_assert(j <= sizeof ctx->key); 91 OPENSSL_assert(j <= sizeof ctx->key);
@@ -171,3 +180,10 @@ unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len,
171 return(md); 180 return(md);
172 } 181 }
173 182
183void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags)
184 {
185 EVP_MD_CTX_set_flags(&ctx->i_ctx, flags);
186 EVP_MD_CTX_set_flags(&ctx->o_ctx, flags);
187 EVP_MD_CTX_set_flags(&ctx->md_ctx, flags);
188 }
189
diff --git a/src/lib/libssl/src/crypto/hmac/hmac.h b/src/lib/libssl/src/crypto/hmac/hmac.h
index 0364a1fcbd..294ab3b36a 100644
--- a/src/lib/libssl/src/crypto/hmac/hmac.h
+++ b/src/lib/libssl/src/crypto/hmac/hmac.h
@@ -98,6 +98,7 @@ unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len,
98 const unsigned char *d, int n, unsigned char *md, 98 const unsigned char *d, int n, unsigned char *md,
99 unsigned int *md_len); 99 unsigned int *md_len);
100 100
101void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags);
101 102
102#ifdef __cplusplus 103#ifdef __cplusplus
103} 104}
diff --git a/src/lib/libssl/src/crypto/idea/Makefile b/src/lib/libssl/src/crypto/idea/Makefile
new file mode 100644
index 0000000000..f652783027
--- /dev/null
+++ b/src/lib/libssl/src/crypto/idea/Makefile
@@ -0,0 +1,92 @@
1#
2# SSLeay/crypto/idea/Makefile
3#
4
5DIR= idea
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=ideatest.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=i_cbc.c i_cfb64.c i_ofb64.c i_ecb.c i_skey.c
26LIBOBJ=i_cbc.o i_cfb64.o i_ofb64.o i_ecb.o i_skey.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= idea.h
31HEADER= idea_lcl.h $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80i_cbc.o: ../../include/openssl/idea.h ../../include/openssl/opensslconf.h
81i_cbc.o: i_cbc.c idea_lcl.h
82i_cfb64.o: ../../include/openssl/idea.h ../../include/openssl/opensslconf.h
83i_cfb64.o: i_cfb64.c idea_lcl.h
84i_ecb.o: ../../include/openssl/idea.h ../../include/openssl/opensslconf.h
85i_ecb.o: ../../include/openssl/opensslv.h i_ecb.c idea_lcl.h
86i_ofb64.o: ../../include/openssl/idea.h ../../include/openssl/opensslconf.h
87i_ofb64.o: i_ofb64.c idea_lcl.h
88i_skey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
89i_skey.o: ../../include/openssl/idea.h ../../include/openssl/opensslconf.h
90i_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
91i_skey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
92i_skey.o: i_skey.c idea_lcl.h
diff --git a/src/lib/libssl/src/crypto/idea/idea.h b/src/lib/libssl/src/crypto/idea/idea.h
index 67132414ee..bf41844fd7 100644
--- a/src/lib/libssl/src/crypto/idea/idea.h
+++ b/src/lib/libssl/src/crypto/idea/idea.h
@@ -82,6 +82,10 @@ typedef struct idea_key_st
82const char *idea_options(void); 82const char *idea_options(void);
83void idea_ecb_encrypt(const unsigned char *in, unsigned char *out, 83void idea_ecb_encrypt(const unsigned char *in, unsigned char *out,
84 IDEA_KEY_SCHEDULE *ks); 84 IDEA_KEY_SCHEDULE *ks);
85#ifdef OPENSSL_FIPS
86void private_idea_set_encrypt_key(const unsigned char *key,
87 IDEA_KEY_SCHEDULE *ks);
88#endif
85void idea_set_encrypt_key(const unsigned char *key, IDEA_KEY_SCHEDULE *ks); 89void idea_set_encrypt_key(const unsigned char *key, IDEA_KEY_SCHEDULE *ks);
86void idea_set_decrypt_key(IDEA_KEY_SCHEDULE *ek, IDEA_KEY_SCHEDULE *dk); 90void idea_set_decrypt_key(IDEA_KEY_SCHEDULE *ek, IDEA_KEY_SCHEDULE *dk);
87void idea_cbc_encrypt(const unsigned char *in, unsigned char *out, 91void idea_cbc_encrypt(const unsigned char *in, unsigned char *out,
diff --git a/src/lib/libssl/src/crypto/krb5/Makefile b/src/lib/libssl/src/crypto/krb5/Makefile
new file mode 100644
index 0000000000..25cc695e8d
--- /dev/null
+++ b/src/lib/libssl/src/crypto/krb5/Makefile
@@ -0,0 +1,88 @@
1#
2# OpenSSL/krb5/Makefile
3#
4
5DIR= krb5
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile README
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= krb5_asn.c
26
27LIBOBJ= krb5_asn.o
28
29SRC= $(LIBSRC)
30
31EXHEADER= krb5_asn.h
32HEADER= $(EXHEADER)
33
34ALL= $(GENERAL) $(SRC) $(HEADER)
35
36top:
37 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
38
39all: lib
40
41lib: $(LIBOBJ)
42 $(AR) $(LIB) $(LIBOBJ)
43 $(RANLIB) $(LIB) || echo Never mind.
44 @touch lib
45
46files:
47 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
48
49links:
50 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
51 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
52 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
53
54install:
55 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
56 do \
57 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
58 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
59 done;
60
61tags:
62 ctags $(SRC)
63
64tests:
65
66lint:
67 lint -DLINT $(INCLUDES) $(SRC)>fluff
68
69depend:
70 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(LIBSRC)
71
72dclean:
73 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
74 mv -f Makefile.new $(MAKEFILE)
75
76clean:
77 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
78
79# DO NOT DELETE THIS LINE -- make depend depends on it.
80
81krb5_asn.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
82krb5_asn.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
83krb5_asn.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
84krb5_asn.o: ../../include/openssl/krb5_asn.h
85krb5_asn.o: ../../include/openssl/opensslconf.h
86krb5_asn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
87krb5_asn.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
88krb5_asn.o: ../../include/openssl/symhacks.h krb5_asn.c
diff --git a/src/lib/libssl/src/crypto/lhash/Makefile b/src/lib/libssl/src/crypto/lhash/Makefile
new file mode 100644
index 0000000000..d325a1644d
--- /dev/null
+++ b/src/lib/libssl/src/crypto/lhash/Makefile
@@ -0,0 +1,91 @@
1#
2# SSLeay/crypto/lhash/Makefile
3#
4
5DIR= lhash
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=lhash.c lh_stats.c
26LIBOBJ=lhash.o lh_stats.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= lhash.h
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80lh_stats.o: ../../e_os.h ../../include/openssl/bio.h
81lh_stats.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
82lh_stats.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
83lh_stats.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
84lh_stats.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
85lh_stats.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
86lh_stats.o: ../cryptlib.h lh_stats.c
87lhash.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
88lhash.o: ../../include/openssl/e_os2.h ../../include/openssl/lhash.h
89lhash.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
90lhash.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
91lhash.o: ../../include/openssl/symhacks.h lhash.c
diff --git a/src/lib/libssl/src/crypto/md2/Makefile b/src/lib/libssl/src/crypto/md2/Makefile
new file mode 100644
index 0000000000..90628511da
--- /dev/null
+++ b/src/lib/libssl/src/crypto/md2/Makefile
@@ -0,0 +1,93 @@
1#
2# SSLeay/crypto/md/Makefile
3#
4
5DIR= md2
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=md2test.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=md2_dgst.c md2_one.c
26LIBOBJ=md2_dgst.o md2_one.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= md2.h
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80md2_dgst.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
81md2_dgst.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
82md2_dgst.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
83md2_dgst.o: ../../include/openssl/md2.h ../../include/openssl/opensslconf.h
84md2_dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
85md2_dgst.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
86md2_dgst.o: md2_dgst.c
87md2_one.o: ../../e_os.h ../../include/openssl/bio.h
88md2_one.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
89md2_one.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
90md2_one.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
91md2_one.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
92md2_one.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
93md2_one.o: ../../include/openssl/symhacks.h ../cryptlib.h md2_one.c
diff --git a/src/lib/libssl/src/crypto/md2/md2.h b/src/lib/libssl/src/crypto/md2/md2.h
index ad9241455c..d0ef9da08e 100644
--- a/src/lib/libssl/src/crypto/md2/md2.h
+++ b/src/lib/libssl/src/crypto/md2/md2.h
@@ -80,6 +80,9 @@ typedef struct MD2state_st
80 } MD2_CTX; 80 } MD2_CTX;
81 81
82const char *MD2_options(void); 82const char *MD2_options(void);
83#ifdef OPENSSL_FIPS
84int private_MD2_Init(MD2_CTX *c);
85#endif
83int MD2_Init(MD2_CTX *c); 86int MD2_Init(MD2_CTX *c);
84int MD2_Update(MD2_CTX *c, const unsigned char *data, unsigned long len); 87int MD2_Update(MD2_CTX *c, const unsigned char *data, unsigned long len);
85int MD2_Final(unsigned char *md, MD2_CTX *c); 88int MD2_Final(unsigned char *md, MD2_CTX *c);
diff --git a/src/lib/libssl/src/crypto/md2/md2_dgst.c b/src/lib/libssl/src/crypto/md2/md2_dgst.c
index ecb64f0ec4..8124acd687 100644
--- a/src/lib/libssl/src/crypto/md2/md2_dgst.c
+++ b/src/lib/libssl/src/crypto/md2/md2_dgst.c
@@ -62,6 +62,8 @@
62#include <openssl/md2.h> 62#include <openssl/md2.h>
63#include <openssl/opensslv.h> 63#include <openssl/opensslv.h>
64#include <openssl/crypto.h> 64#include <openssl/crypto.h>
65#include <openssl/fips.h>
66#include <openssl/err.h>
65 67
66const char *MD2_version="MD2" OPENSSL_VERSION_PTEXT; 68const char *MD2_version="MD2" OPENSSL_VERSION_PTEXT;
67 69
@@ -116,7 +118,7 @@ const char *MD2_options(void)
116 return("md2(int)"); 118 return("md2(int)");
117 } 119 }
118 120
119int MD2_Init(MD2_CTX *c) 121FIPS_NON_FIPS_MD_Init(MD2)
120 { 122 {
121 c->num=0; 123 c->num=0;
122 memset(c->state,0,sizeof c->state); 124 memset(c->state,0,sizeof c->state);
diff --git a/src/lib/libssl/src/crypto/md32_common.h b/src/lib/libssl/src/crypto/md32_common.h
index 573850b122..733da6acaf 100644
--- a/src/lib/libssl/src/crypto/md32_common.h
+++ b/src/lib/libssl/src/crypto/md32_common.h
@@ -128,6 +128,10 @@
128 * <appro@fy.chalmers.se> 128 * <appro@fy.chalmers.se>
129 */ 129 */
130 130
131#include <openssl/crypto.h>
132#include <openssl/fips.h>
133#include <openssl/err.h>
134
131#if !defined(DATA_ORDER_IS_BIG_ENDIAN) && !defined(DATA_ORDER_IS_LITTLE_ENDIAN) 135#if !defined(DATA_ORDER_IS_BIG_ENDIAN) && !defined(DATA_ORDER_IS_LITTLE_ENDIAN)
132#error "DATA_ORDER must be defined!" 136#error "DATA_ORDER must be defined!"
133#endif 137#endif
@@ -207,7 +211,7 @@
207 : "cc"); \ 211 : "cc"); \
208 ret; \ 212 ret; \
209 }) 213 })
210# elif defined(__powerpc) || defined(__ppc) 214# elif defined(__powerpc) || defined(__ppc__) || defined(__powerpc64__)
211# define ROTATE(a,n) ({ register unsigned int ret; \ 215# define ROTATE(a,n) ({ register unsigned int ret; \
212 asm ( \ 216 asm ( \
213 "rlwinm %0,%1,%2,0,31" \ 217 "rlwinm %0,%1,%2,0,31" \
@@ -555,6 +559,14 @@ int HASH_FINAL (unsigned char *md, HASH_CTX *c)
555 static const unsigned char end[4]={0x80,0x00,0x00,0x00}; 559 static const unsigned char end[4]={0x80,0x00,0x00,0x00};
556 const unsigned char *cp=end; 560 const unsigned char *cp=end;
557 561
562#if 0
563 if(FIPS_mode() && !FIPS_md5_allowed())
564 {
565 FIPSerr(FIPS_F_HASH_FINAL,FIPS_R_NON_FIPS_METHOD);
566 return 0;
567 }
568#endif
569
558 /* c->num should definitly have room for at least one more byte. */ 570 /* c->num should definitly have room for at least one more byte. */
559 p=c->data; 571 p=c->data;
560 i=c->num>>2; 572 i=c->num>>2;
diff --git a/src/lib/libssl/src/crypto/md4/Makefile b/src/lib/libssl/src/crypto/md4/Makefile
new file mode 100644
index 0000000000..0b7c8d7ad8
--- /dev/null
+++ b/src/lib/libssl/src/crypto/md4/Makefile
@@ -0,0 +1,92 @@
1#
2# SSLeay/crypto/md4/Makefile
3#
4
5DIR= md4
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES=
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP=/usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18
19CFLAGS= $(INCLUDES) $(CFLAG)
20
21GENERAL=Makefile
22TEST=md4test.c
23APPS=md4.c
24
25LIB=$(TOP)/libcrypto.a
26LIBSRC=md4_dgst.c md4_one.c
27LIBOBJ=md4_dgst.o md4_one.o
28
29SRC= $(LIBSRC)
30
31EXHEADER= md4.h
32HEADER= md4_locl.h $(EXHEADER)
33
34ALL= $(GENERAL) $(SRC) $(HEADER)
35
36top:
37 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
38
39all: lib
40
41lib: $(LIBOBJ)
42 $(AR) $(LIB) $(LIBOBJ)
43 $(RANLIB) $(LIB) || echo Never mind.
44 @touch lib
45
46files:
47 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
48
49links:
50 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
51 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
52 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
53
54install:
55 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
56 do \
57 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
58 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
59 done;
60
61tags:
62 ctags $(SRC)
63
64tests:
65
66lint:
67 lint -DLINT $(INCLUDES) $(SRC)>fluff
68
69depend:
70 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
71
72dclean:
73 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
74 mv -f Makefile.new $(MAKEFILE)
75
76clean:
77 rm -f asm/mx86unix.cpp *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
78
79# DO NOT DELETE THIS LINE -- make depend depends on it.
80
81md4_dgst.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
82md4_dgst.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
83md4_dgst.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
84md4_dgst.o: ../../include/openssl/md4.h ../../include/openssl/opensslconf.h
85md4_dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
86md4_dgst.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
87md4_dgst.o: ../md32_common.h md4_dgst.c md4_locl.h
88md4_one.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
89md4_one.o: ../../include/openssl/md4.h ../../include/openssl/opensslconf.h
90md4_one.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
91md4_one.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
92md4_one.o: md4_one.c
diff --git a/src/lib/libssl/src/crypto/md4/md4.h b/src/lib/libssl/src/crypto/md4/md4.h
index 7a7b23682f..7e761efb62 100644
--- a/src/lib/libssl/src/crypto/md4/md4.h
+++ b/src/lib/libssl/src/crypto/md4/md4.h
@@ -104,6 +104,9 @@ typedef struct MD4state_st
104 int num; 104 int num;
105 } MD4_CTX; 105 } MD4_CTX;
106 106
107#ifdef OPENSSL_FIPS
108int private_MD4_Init(MD4_CTX *c);
109#endif
107int MD4_Init(MD4_CTX *c); 110int MD4_Init(MD4_CTX *c);
108int MD4_Update(MD4_CTX *c, const void *data, unsigned long len); 111int MD4_Update(MD4_CTX *c, const void *data, unsigned long len);
109int MD4_Final(unsigned char *md, MD4_CTX *c); 112int MD4_Final(unsigned char *md, MD4_CTX *c);
diff --git a/src/lib/libssl/src/crypto/md4/md4_dgst.c b/src/lib/libssl/src/crypto/md4/md4_dgst.c
index 7afb7185b6..ee7cc72262 100644
--- a/src/lib/libssl/src/crypto/md4/md4_dgst.c
+++ b/src/lib/libssl/src/crypto/md4/md4_dgst.c
@@ -70,7 +70,7 @@ const char *MD4_version="MD4" OPENSSL_VERSION_PTEXT;
70#define INIT_DATA_C (unsigned long)0x98badcfeL 70#define INIT_DATA_C (unsigned long)0x98badcfeL
71#define INIT_DATA_D (unsigned long)0x10325476L 71#define INIT_DATA_D (unsigned long)0x10325476L
72 72
73int MD4_Init(MD4_CTX *c) 73FIPS_NON_FIPS_MD_Init(MD4)
74 { 74 {
75 c->A=INIT_DATA_A; 75 c->A=INIT_DATA_A;
76 c->B=INIT_DATA_B; 76 c->B=INIT_DATA_B;
diff --git a/src/lib/libssl/src/crypto/md5/Makefile b/src/lib/libssl/src/crypto/md5/Makefile
new file mode 100644
index 0000000000..832446fff2
--- /dev/null
+++ b/src/lib/libssl/src/crypto/md5/Makefile
@@ -0,0 +1,128 @@
1#
2# SSLeay/crypto/md5/Makefile
3#
4
5DIR= md5
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES=-I.. -I$(TOP) -I../../include
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP=/usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18
19MD5_ASM_OBJ=
20
21CFLAGS= $(INCLUDES) $(CFLAG)
22ASFLAGS= $(INCLUDES) $(ASFLAG)
23
24GENERAL=Makefile
25TEST=md5test.c
26APPS=
27
28LIB=$(TOP)/libcrypto.a
29LIBSRC=md5_dgst.c md5_one.c
30LIBOBJ=md5_dgst.o md5_one.o $(MD5_ASM_OBJ)
31
32SRC= $(LIBSRC)
33
34EXHEADER= md5.h
35HEADER= md5_locl.h $(EXHEADER)
36
37ALL= $(GENERAL) $(SRC) $(HEADER)
38
39top:
40 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
41
42all: lib
43
44lib: $(LIBOBJ)
45 $(AR) $(LIB) $(LIBOBJ)
46 $(RANLIB) $(LIB) || echo Never mind.
47 @touch lib
48
49# elf
50asm/mx86-elf.s: asm/md5-586.pl ../perlasm/x86asm.pl
51 (cd asm; $(PERL) md5-586.pl elf $(CFLAGS) > mx86-elf.s)
52
53# a.out
54asm/mx86-out.o: asm/mx86unix.cpp
55 $(CPP) -DOUT asm/mx86unix.cpp | as -o asm/mx86-out.o
56
57# bsdi
58asm/mx86bsdi.o: asm/mx86unix.cpp
59 $(CPP) -DBSDI asm/mx86unix.cpp | sed 's/ :/:/' | as -o asm/mx86bsdi.o
60
61asm/mx86unix.cpp: asm/md5-586.pl ../perlasm/x86asm.pl
62 (cd asm; $(PERL) md5-586.pl cpp >mx86unix.cpp)
63
64asm/md5-sparcv8plus.o: asm/md5-sparcv9.S
65 $(CC) $(ASFLAGS) -DMD5_BLOCK_DATA_ORDER -c \
66 -o asm/md5-sparcv8plus.o asm/md5-sparcv9.S
67
68# Old GNU assembler doesn't understand V9 instructions, so we
69# hire /usr/ccs/bin/as to do the job. Note that option is called
70# *-gcc27, but even gcc 2>=8 users may experience similar problem
71# if they didn't bother to upgrade GNU assembler. Such users should
72# not choose this option, but be adviced to *remove* GNU assembler
73# or upgrade it.
74asm/md5-sparcv8plus-gcc27.o: asm/md5-sparcv9.S
75 $(CC) $(ASFLAGS) -DMD5_BLOCK_DATA_ORDER -E asm/md5-sparcv9.S | \
76 /usr/ccs/bin/as -xarch=v8plus - -o asm/md5-sparcv8plus-gcc27.o
77
78asm/md5-sparcv9.o: asm/md5-sparcv9.S
79 $(CC) $(ASFLAGS) -DMD5_BLOCK_DATA_ORDER -c \
80 -o asm/md5-sparcv9.o asm/md5-sparcv9.S
81
82files:
83 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
84
85links:
86 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
87 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
88 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
89
90install:
91 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
92 do \
93 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
94 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
95 done;
96
97tags:
98 ctags $(SRC)
99
100tests:
101
102lint:
103 lint -DLINT $(INCLUDES) $(SRC)>fluff
104
105depend:
106 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
107
108dclean:
109 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
110 mv -f Makefile.new $(MAKEFILE)
111
112clean:
113 rm -f asm/mx86unix.cpp asm/*-elf.* *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
114
115# DO NOT DELETE THIS LINE -- make depend depends on it.
116
117md5_dgst.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
118md5_dgst.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
119md5_dgst.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
120md5_dgst.o: ../../include/openssl/md5.h ../../include/openssl/opensslconf.h
121md5_dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
122md5_dgst.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
123md5_dgst.o: ../md32_common.h md5_dgst.c md5_locl.h
124md5_one.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
125md5_one.o: ../../include/openssl/md5.h ../../include/openssl/opensslconf.h
126md5_one.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
127md5_one.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
128md5_one.o: md5_one.c
diff --git a/src/lib/libssl/src/crypto/md5/md5.h b/src/lib/libssl/src/crypto/md5/md5.h
index a252e02115..c663dd1816 100644
--- a/src/lib/libssl/src/crypto/md5/md5.h
+++ b/src/lib/libssl/src/crypto/md5/md5.h
@@ -104,6 +104,9 @@ typedef struct MD5state_st
104 int num; 104 int num;
105 } MD5_CTX; 105 } MD5_CTX;
106 106
107#ifdef OPENSSL_FIPS
108int private_MD5_Init(MD5_CTX *c);
109#endif
107int MD5_Init(MD5_CTX *c); 110int MD5_Init(MD5_CTX *c);
108int MD5_Update(MD5_CTX *c, const void *data, unsigned long len); 111int MD5_Update(MD5_CTX *c, const void *data, unsigned long len);
109int MD5_Final(unsigned char *md, MD5_CTX *c); 112int MD5_Final(unsigned char *md, MD5_CTX *c);
diff --git a/src/lib/libssl/src/crypto/md5/md5_dgst.c b/src/lib/libssl/src/crypto/md5/md5_dgst.c
index 9c7abc3697..54b33c6509 100644
--- a/src/lib/libssl/src/crypto/md5/md5_dgst.c
+++ b/src/lib/libssl/src/crypto/md5/md5_dgst.c
@@ -70,7 +70,7 @@ const char *MD5_version="MD5" OPENSSL_VERSION_PTEXT;
70#define INIT_DATA_C (unsigned long)0x98badcfeL 70#define INIT_DATA_C (unsigned long)0x98badcfeL
71#define INIT_DATA_D (unsigned long)0x10325476L 71#define INIT_DATA_D (unsigned long)0x10325476L
72 72
73int MD5_Init(MD5_CTX *c) 73FIPS_NON_FIPS_MD_Init(MD5)
74 { 74 {
75 c->A=INIT_DATA_A; 75 c->A=INIT_DATA_A;
76 c->B=INIT_DATA_B; 76 c->B=INIT_DATA_B;
diff --git a/src/lib/libssl/src/crypto/mdc2/Makefile b/src/lib/libssl/src/crypto/mdc2/Makefile
new file mode 100644
index 0000000000..38c785bf95
--- /dev/null
+++ b/src/lib/libssl/src/crypto/mdc2/Makefile
@@ -0,0 +1,98 @@
1#
2# SSLeay/crypto/mdc2/Makefile
3#
4
5DIR= mdc2
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST= mdc2test.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=mdc2dgst.c mdc2_one.c
26LIBOBJ=mdc2dgst.o mdc2_one.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= mdc2.h
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80mdc2_one.o: ../../e_os.h ../../include/openssl/bio.h
81mdc2_one.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
82mdc2_one.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
83mdc2_one.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
84mdc2_one.o: ../../include/openssl/lhash.h ../../include/openssl/mdc2.h
85mdc2_one.o: ../../include/openssl/opensslconf.h
86mdc2_one.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
87mdc2_one.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
88mdc2_one.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
89mdc2_one.o: ../cryptlib.h mdc2_one.c
90mdc2dgst.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
91mdc2dgst.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
92mdc2dgst.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
93mdc2dgst.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
94mdc2dgst.o: ../../include/openssl/mdc2.h ../../include/openssl/opensslconf.h
95mdc2dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
96mdc2dgst.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
97mdc2dgst.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
98mdc2dgst.o: mdc2dgst.c
diff --git a/src/lib/libssl/src/crypto/mdc2/mdc2.h b/src/lib/libssl/src/crypto/mdc2/mdc2.h
index 793a8a0f13..4cba101f37 100644
--- a/src/lib/libssl/src/crypto/mdc2/mdc2.h
+++ b/src/lib/libssl/src/crypto/mdc2/mdc2.h
@@ -80,7 +80,9 @@ typedef struct mdc2_ctx_st
80 int pad_type; /* either 1 or 2, default 1 */ 80 int pad_type; /* either 1 or 2, default 1 */
81 } MDC2_CTX; 81 } MDC2_CTX;
82 82
83 83#ifdef OPENSSL_FIPS
84int private_MDC2_Init(MDC2_CTX *c);
85#endif
84int MDC2_Init(MDC2_CTX *c); 86int MDC2_Init(MDC2_CTX *c);
85int MDC2_Update(MDC2_CTX *c, const unsigned char *data, unsigned long len); 87int MDC2_Update(MDC2_CTX *c, const unsigned char *data, unsigned long len);
86int MDC2_Final(unsigned char *md, MDC2_CTX *c); 88int MDC2_Final(unsigned char *md, MDC2_CTX *c);
diff --git a/src/lib/libssl/src/crypto/o_str.c b/src/lib/libssl/src/crypto/o_str.c
new file mode 100644
index 0000000000..da8860491d
--- /dev/null
+++ b/src/lib/libssl/src/crypto/o_str.c
@@ -0,0 +1,96 @@
1/* crypto/o_str.c -*- mode:C; c-file-style: "eay" -*- */
2/* Written by Richard Levitte (richard@levitte.org) for the OpenSSL
3 * project 2003.
4 */
5/* ====================================================================
6 * Copyright (c) 2003 The OpenSSL Project. All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 *
12 * 1. Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 *
15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in
17 * the documentation and/or other materials provided with the
18 * distribution.
19 *
20 * 3. All advertising materials mentioning features or use of this
21 * software must display the following acknowledgment:
22 * "This product includes software developed by the OpenSSL Project
23 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
24 *
25 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
26 * endorse or promote products derived from this software without
27 * prior written permission. For written permission, please contact
28 * openssl-core@openssl.org.
29 *
30 * 5. Products derived from this software may not be called "OpenSSL"
31 * nor may "OpenSSL" appear in their names without prior written
32 * permission of the OpenSSL Project.
33 *
34 * 6. Redistributions of any form whatsoever must retain the following
35 * acknowledgment:
36 * "This product includes software developed by the OpenSSL Project
37 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
38 *
39 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
40 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
41 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
42 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
43 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
44 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
45 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
46 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
47 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
48 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
49 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
50 * OF THE POSSIBILITY OF SUCH DAMAGE.
51 * ====================================================================
52 *
53 * This product includes cryptographic software written by Eric Young
54 * (eay@cryptsoft.com). This product includes software written by Tim
55 * Hudson (tjh@cryptsoft.com).
56 *
57 */
58
59#include <ctype.h>
60#include <e_os.h>
61#include "o_str.h"
62
63int OPENSSL_strncasecmp(const char *str1, const char *str2, size_t n)
64 {
65#if defined(OPENSSL_IMPLEMENTS_strncasecmp)
66 while (*str1 && *str2 && n)
67 {
68 int res = toupper(*str1) - toupper(*str2);
69 if (res) return res < 0 ? -1 : 1;
70 str1++;
71 str2++;
72 n--;
73 }
74 if (n == 0)
75 return 0;
76 if (*str1)
77 return 1;
78 if (*str2)
79 return -1;
80 return 0;
81#else
82 /* Recursion hazard warning! Whenever strncasecmp is #defined as
83 * OPENSSL_strncasecmp, OPENSSL_IMPLEMENTS_strncasecmp must be
84 * defined as well. */
85 return strncasecmp(str1, str2, n);
86#endif
87 }
88int OPENSSL_strcasecmp(const char *str1, const char *str2)
89 {
90#if defined(OPENSSL_IMPLEMENTS_strncasecmp)
91 return OPENSSL_strncasecmp(str1, str2, (size_t)-1);
92#else
93 return strcasecmp(str1, str2);
94#endif
95 }
96
diff --git a/src/lib/libssl/src/crypto/o_str.h b/src/lib/libssl/src/crypto/o_str.h
new file mode 100644
index 0000000000..4a70a9e00b
--- /dev/null
+++ b/src/lib/libssl/src/crypto/o_str.h
@@ -0,0 +1,67 @@
1/* crypto/o_str.h -*- mode:C; c-file-style: "eay" -*- */
2/* Written by Richard Levitte (richard@levitte.org) for the OpenSSL
3 * project 2003.
4 */
5/* ====================================================================
6 * Copyright (c) 2003 The OpenSSL Project. All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 *
12 * 1. Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 *
15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in
17 * the documentation and/or other materials provided with the
18 * distribution.
19 *
20 * 3. All advertising materials mentioning features or use of this
21 * software must display the following acknowledgment:
22 * "This product includes software developed by the OpenSSL Project
23 * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
24 *
25 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
26 * endorse or promote products derived from this software without
27 * prior written permission. For written permission, please contact
28 * licensing@OpenSSL.org.
29 *
30 * 5. Products derived from this software may not be called "OpenSSL"
31 * nor may "OpenSSL" appear in their names without prior written
32 * permission of the OpenSSL Project.
33 *
34 * 6. Redistributions of any form whatsoever must retain the following
35 * acknowledgment:
36 * "This product includes software developed by the OpenSSL Project
37 * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
38 *
39 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
40 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
41 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
42 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
43 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
44 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
45 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
46 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
47 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
48 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
49 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
50 * OF THE POSSIBILITY OF SUCH DAMAGE.
51 * ====================================================================
52 *
53 * This product includes cryptographic software written by Eric Young
54 * (eay@cryptsoft.com). This product includes software written by Tim
55 * Hudson (tjh@cryptsoft.com).
56 *
57 */
58
59#ifndef HEADER_O_STR_H
60#define HEADER_O_STR_H
61
62#include <stddef.h> /* to get size_t */
63
64int OPENSSL_strcasecmp(const char *str1, const char *str2);
65int OPENSSL_strncasecmp(const char *str1, const char *str2, size_t n);
66
67#endif
diff --git a/src/lib/libssl/src/crypto/o_time.c b/src/lib/libssl/src/crypto/o_time.c
index 785468131e..e29091d650 100644
--- a/src/lib/libssl/src/crypto/o_time.c
+++ b/src/lib/libssl/src/crypto/o_time.c
@@ -114,16 +114,28 @@ struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result)
114 return NULL; 114 return NULL;
115 logvalue[reslen] = '\0'; 115 logvalue[reslen] = '\0';
116 116
117 t = *timer;
118
119/* The following is extracted from the DEC C header time.h */
120/*
121** Beginning in OpenVMS Version 7.0 mktime, time, ctime, strftime
122** have two implementations. One implementation is provided
123** for compatibility and deals with time in terms of local time,
124** the other __utc_* deals with time in terms of UTC.
125*/
126/* We use the same conditions as in said time.h to check if we should
127 assume that t contains local time (and should therefore be adjusted)
128 or UTC (and should therefore be left untouched). */
129#if __CRTL_VER < 70000000 || defined _VMS_V6_SOURCE
117 /* Get the numerical value of the equivalence string */ 130 /* Get the numerical value of the equivalence string */
118 status = atoi(logvalue); 131 status = atoi(logvalue);
119 132
120 /* and use it to move time to GMT */ 133 /* and use it to move time to GMT */
121 t = *timer - status; 134 t -= status;
135#endif
122 136
123 /* then convert the result to the time structure */ 137 /* then convert the result to the time structure */
124#ifndef OPENSSL_THREADS 138
125 ts=(struct tm *)localtime(&t);
126#else
127 /* Since there was no gmtime_r() to do this stuff for us, 139 /* Since there was no gmtime_r() to do this stuff for us,
128 we have to do it the hard way. */ 140 we have to do it the hard way. */
129 { 141 {
@@ -198,7 +210,6 @@ struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result)
198 result->tm_isdst = 0; /* There's no way to know... */ 210 result->tm_isdst = 0; /* There's no way to know... */
199 211
200 ts = result; 212 ts = result;
201#endif
202 } 213 }
203 } 214 }
204#endif 215#endif
diff --git a/src/lib/libssl/src/crypto/objects/Makefile b/src/lib/libssl/src/crypto/objects/Makefile
new file mode 100644
index 0000000000..e449147129
--- /dev/null
+++ b/src/lib/libssl/src/crypto/objects/Makefile
@@ -0,0 +1,122 @@
1#
2# SSLeay/crypto/objects/Makefile
3#
4
5DIR= objects
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17PERL= perl
18
19CFLAGS= $(INCLUDES) $(CFLAG)
20
21GENERAL=Makefile README
22TEST=
23APPS=
24
25LIB=$(TOP)/libcrypto.a
26LIBSRC= o_names.c obj_dat.c obj_lib.c obj_err.c
27LIBOBJ= o_names.o obj_dat.o obj_lib.o obj_err.o
28
29SRC= $(LIBSRC)
30
31EXHEADER= objects.h obj_mac.h
32HEADER= $(EXHEADER) obj_dat.h
33
34ALL= $(GENERAL) $(SRC) $(HEADER)
35
36top:
37 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
38
39all: obj_dat.h lib
40
41lib: $(LIBOBJ)
42 $(AR) $(LIB) $(LIBOBJ)
43 $(RANLIB) $(LIB) || echo Never mind.
44 @touch lib
45
46obj_dat.h: obj_dat.pl obj_mac.h
47 $(PERL) obj_dat.pl obj_mac.h obj_dat.h
48
49# objects.pl both reads and writes obj_mac.num
50obj_mac.h: objects.pl objects.txt obj_mac.num
51 $(PERL) objects.pl objects.txt obj_mac.num obj_mac.h
52 @sleep 1; touch obj_mac.h; sleep 1
53
54files:
55 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
56
57links:
58 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
59 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
60 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
61
62install:
63 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
64 do \
65 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
66 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
67 done;
68
69tags:
70 ctags $(SRC)
71
72tests:
73
74lint:
75 lint -DLINT $(INCLUDES) $(SRC)>fluff
76
77depend:
78 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
79
80dclean:
81 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
82 mv -f Makefile.new $(MAKEFILE)
83
84clean:
85 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
86
87# DO NOT DELETE THIS LINE -- make depend depends on it.
88
89o_names.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
90o_names.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
91o_names.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
92o_names.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
93o_names.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
94o_names.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
95o_names.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
96o_names.o: ../../include/openssl/symhacks.h o_names.c
97obj_dat.o: ../../e_os.h ../../include/openssl/asn1.h
98obj_dat.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
99obj_dat.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
100obj_dat.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
101obj_dat.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
102obj_dat.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
103obj_dat.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
104obj_dat.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
105obj_dat.o: ../../include/openssl/symhacks.h ../cryptlib.h obj_dat.c obj_dat.h
106obj_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
107obj_err.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
108obj_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
109obj_err.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
110obj_err.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
111obj_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
112obj_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
113obj_err.o: ../../include/openssl/symhacks.h obj_err.c
114obj_lib.o: ../../e_os.h ../../include/openssl/asn1.h
115obj_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
116obj_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
117obj_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
118obj_lib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
119obj_lib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
120obj_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
121obj_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
122obj_lib.o: ../../include/openssl/symhacks.h ../cryptlib.h obj_lib.c
diff --git a/src/lib/libssl/src/crypto/objects/o_names.c b/src/lib/libssl/src/crypto/objects/o_names.c
index b4453b4a98..28c9370ca3 100644
--- a/src/lib/libssl/src/crypto/objects/o_names.c
+++ b/src/lib/libssl/src/crypto/objects/o_names.c
@@ -2,6 +2,7 @@
2#include <stdlib.h> 2#include <stdlib.h>
3#include <string.h> 3#include <string.h>
4 4
5#include <openssl/err.h>
5#include <openssl/lhash.h> 6#include <openssl/lhash.h>
6#include <openssl/objects.h> 7#include <openssl/objects.h>
7#include <openssl/safestack.h> 8#include <openssl/safestack.h>
@@ -80,7 +81,11 @@ int OBJ_NAME_new_index(unsigned long (*hash_func)(const char *),
80 MemCheck_off(); 81 MemCheck_off();
81 name_funcs = OPENSSL_malloc(sizeof(NAME_FUNCS)); 82 name_funcs = OPENSSL_malloc(sizeof(NAME_FUNCS));
82 MemCheck_on(); 83 MemCheck_on();
83 if (!name_funcs) return(0); 84 if (!name_funcs)
85 {
86 OBJerr(OBJ_F_OBJ_NAME_NEW_INDEX,ERR_R_MALLOC_FAILURE);
87 return(0);
88 }
84 name_funcs->hash_func = lh_strhash; 89 name_funcs->hash_func = lh_strhash;
85 name_funcs->cmp_func = OPENSSL_strcmp; 90 name_funcs->cmp_func = OPENSSL_strcmp;
86 name_funcs->free_func = 0; /* NULL is often declared to 91 name_funcs->free_func = 0; /* NULL is often declared to
diff --git a/src/lib/libssl/src/crypto/objects/obj_dat.c b/src/lib/libssl/src/crypto/objects/obj_dat.c
index 4534dc0985..f549d078ef 100644
--- a/src/lib/libssl/src/crypto/objects/obj_dat.c
+++ b/src/lib/libssl/src/crypto/objects/obj_dat.c
@@ -236,13 +236,13 @@ int OBJ_add_object(const ASN1_OBJECT *obj)
236 if (added == NULL) 236 if (added == NULL)
237 if (!init_added()) return(0); 237 if (!init_added()) return(0);
238 if ((o=OBJ_dup(obj)) == NULL) goto err; 238 if ((o=OBJ_dup(obj)) == NULL) goto err;
239 if (!(ao[ADDED_NID]=(ADDED_OBJ *)OPENSSL_malloc(sizeof(ADDED_OBJ)))) goto err; 239 if (!(ao[ADDED_NID]=(ADDED_OBJ *)OPENSSL_malloc(sizeof(ADDED_OBJ)))) goto err2;
240 if ((o->length != 0) && (obj->data != NULL)) 240 if ((o->length != 0) && (obj->data != NULL))
241 ao[ADDED_DATA]=(ADDED_OBJ *)OPENSSL_malloc(sizeof(ADDED_OBJ)); 241 if (!(ao[ADDED_DATA]=(ADDED_OBJ *)OPENSSL_malloc(sizeof(ADDED_OBJ)))) goto err2;
242 if (o->sn != NULL) 242 if (o->sn != NULL)
243 ao[ADDED_SNAME]=(ADDED_OBJ *)OPENSSL_malloc(sizeof(ADDED_OBJ)); 243 if (!(ao[ADDED_SNAME]=(ADDED_OBJ *)OPENSSL_malloc(sizeof(ADDED_OBJ)))) goto err2;
244 if (o->ln != NULL) 244 if (o->ln != NULL)
245 ao[ADDED_LNAME]=(ADDED_OBJ *)OPENSSL_malloc(sizeof(ADDED_OBJ)); 245 if (!(ao[ADDED_LNAME]=(ADDED_OBJ *)OPENSSL_malloc(sizeof(ADDED_OBJ)))) goto err2;
246 246
247 for (i=ADDED_DATA; i<=ADDED_NID; i++) 247 for (i=ADDED_DATA; i<=ADDED_NID; i++)
248 { 248 {
@@ -260,6 +260,8 @@ int OBJ_add_object(const ASN1_OBJECT *obj)
260 ASN1_OBJECT_FLAG_DYNAMIC_DATA); 260 ASN1_OBJECT_FLAG_DYNAMIC_DATA);
261 261
262 return(o->nid); 262 return(o->nid);
263err2:
264 OBJerr(OBJ_F_OBJ_ADD_OBJECT,ERR_R_MALLOC_FAILURE);
263err: 265err:
264 for (i=ADDED_DATA; i<=ADDED_NID; i++) 266 for (i=ADDED_DATA; i<=ADDED_NID; i++)
265 if (ao[i] != NULL) OPENSSL_free(ao[i]); 267 if (ao[i] != NULL) OPENSSL_free(ao[i]);
@@ -648,7 +650,7 @@ int OBJ_create(const char *oid, const char *sn, const char *ln)
648 650
649 if ((buf=(unsigned char *)OPENSSL_malloc(i)) == NULL) 651 if ((buf=(unsigned char *)OPENSSL_malloc(i)) == NULL)
650 { 652 {
651 OBJerr(OBJ_F_OBJ_CREATE,OBJ_R_MALLOC_FAILURE); 653 OBJerr(OBJ_F_OBJ_CREATE,ERR_R_MALLOC_FAILURE);
652 return(0); 654 return(0);
653 } 655 }
654 i=a2d_ASN1_OBJECT(buf,i,oid,-1); 656 i=a2d_ASN1_OBJECT(buf,i,oid,-1);
diff --git a/src/lib/libssl/src/crypto/objects/obj_dat.h b/src/lib/libssl/src/crypto/objects/obj_dat.h
index 969b18a341..8785127055 100644
--- a/src/lib/libssl/src/crypto/objects/obj_dat.h
+++ b/src/lib/libssl/src/crypto/objects/obj_dat.h
@@ -62,12 +62,12 @@
62 * [including the GNU Public Licence.] 62 * [including the GNU Public Licence.]
63 */ 63 */
64 64
65#define NUM_NID 650 65#define NUM_NID 668
66#define NUM_SN 643 66#define NUM_SN 660
67#define NUM_LN 643 67#define NUM_LN 660
68#define NUM_OBJ 617 68#define NUM_OBJ 624
69 69
70static unsigned char lvalues[4455]={ 70static unsigned char lvalues[4500]={
710x00, /* [ 0] OBJ_undef */ 710x00, /* [ 0] OBJ_undef */
720x2A,0x86,0x48,0x86,0xF7,0x0D, /* [ 1] OBJ_rsadsi */ 720x2A,0x86,0x48,0x86,0xF7,0x0D, /* [ 1] OBJ_rsadsi */
730x2A,0x86,0x48,0x86,0xF7,0x0D,0x01, /* [ 7] OBJ_pkcs */ 730x2A,0x86,0x48,0x86,0xF7,0x0D,0x01, /* [ 7] OBJ_pkcs */
@@ -685,6 +685,13 @@ static unsigned char lvalues[4455]={
6850x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x06,/* [4425] OBJ_rsaOAEPEncryptionSET */ 6850x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x06,/* [4425] OBJ_rsaOAEPEncryptionSET */
6860x2B,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x02,/* [4434] OBJ_ms_smartcard_login */ 6860x2B,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x02,/* [4434] OBJ_ms_smartcard_login */
6870x2B,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x03,/* [4444] OBJ_ms_upn */ 6870x2B,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x03,/* [4444] OBJ_ms_upn */
6880x55,0x04,0x09, /* [4454] OBJ_streetAddress */
6890x55,0x04,0x11, /* [4457] OBJ_postalCode */
6900x2B,0x06,0x01,0x05,0x05,0x07,0x15, /* [4460] OBJ_id_ppl */
6910x2B,0x06,0x01,0x05,0x05,0x07,0x01,0x0E, /* [4467] OBJ_proxyCertInfo */
6920x2B,0x06,0x01,0x05,0x05,0x07,0x15,0x00, /* [4475] OBJ_id_ppl_anyLanguage */
6930x2B,0x06,0x01,0x05,0x05,0x07,0x15,0x01, /* [4483] OBJ_id_ppl_inheritAll */
6940x2B,0x06,0x01,0x05,0x05,0x07,0x15,0x02, /* [4491] OBJ_Independent */
688}; 695};
689 696
690static ASN1_OBJECT nid_objs[NUM_NID]={ 697static ASN1_OBJECT nid_objs[NUM_NID]={
@@ -1728,20 +1735,47 @@ static ASN1_OBJECT nid_objs[NUM_NID]={
1728 10,&(lvalues[4434]),0}, 1735 10,&(lvalues[4434]),0},
1729{"msUPN","Microsoft Universal Principal Name",NID_ms_upn,10, 1736{"msUPN","Microsoft Universal Principal Name",NID_ms_upn,10,
1730 &(lvalues[4444]),0}, 1737 &(lvalues[4444]),0},
1738{"AES-128-CFB1","aes-128-cfb1",NID_aes_128_cfb1,0,NULL},
1739{"AES-192-CFB1","aes-192-cfb1",NID_aes_192_cfb1,0,NULL},
1740{"AES-256-CFB1","aes-256-cfb1",NID_aes_256_cfb1,0,NULL},
1741{"AES-128-CFB8","aes-128-cfb8",NID_aes_128_cfb8,0,NULL},
1742{"AES-192-CFB8","aes-192-cfb8",NID_aes_192_cfb8,0,NULL},
1743{"AES-256-CFB8","aes-256-cfb8",NID_aes_256_cfb8,0,NULL},
1744{"DES-CFB1","des-cfb1",NID_des_cfb1,0,NULL},
1745{"DES-CFB8","des-cfb8",NID_des_cfb8,0,NULL},
1746{"DES-EDE3-CFB1","des-ede3-cfb1",NID_des_ede3_cfb1,0,NULL},
1747{"DES-EDE3-CFB8","des-ede3-cfb8",NID_des_ede3_cfb8,0,NULL},
1748{"streetAddress","streetAddress",NID_streetAddress,3,&(lvalues[4454]),0},
1749{"postalCode","postalCode",NID_postalCode,3,&(lvalues[4457]),0},
1750{"id-ppl","id-ppl",NID_id_ppl,7,&(lvalues[4460]),0},
1751{"proxyCertInfo","Proxy Certificate Information",NID_proxyCertInfo,8,
1752 &(lvalues[4467]),0},
1753{"id-ppl-anyLanguage","Any language",NID_id_ppl_anyLanguage,8,
1754 &(lvalues[4475]),0},
1755{"id-ppl-inheritAll","Inherit all",NID_id_ppl_inheritAll,8,
1756 &(lvalues[4483]),0},
1757{NULL,NULL,NID_undef,0,NULL},
1758{"id-ppl-independent","Independent",NID_Independent,8,&(lvalues[4491]),0},
1731}; 1759};
1732 1760
1733static ASN1_OBJECT *sn_objs[NUM_SN]={ 1761static ASN1_OBJECT *sn_objs[NUM_SN]={
1734&(nid_objs[364]),/* "AD_DVCS" */ 1762&(nid_objs[364]),/* "AD_DVCS" */
1735&(nid_objs[419]),/* "AES-128-CBC" */ 1763&(nid_objs[419]),/* "AES-128-CBC" */
1736&(nid_objs[421]),/* "AES-128-CFB" */ 1764&(nid_objs[421]),/* "AES-128-CFB" */
1765&(nid_objs[650]),/* "AES-128-CFB1" */
1766&(nid_objs[653]),/* "AES-128-CFB8" */
1737&(nid_objs[418]),/* "AES-128-ECB" */ 1767&(nid_objs[418]),/* "AES-128-ECB" */
1738&(nid_objs[420]),/* "AES-128-OFB" */ 1768&(nid_objs[420]),/* "AES-128-OFB" */
1739&(nid_objs[423]),/* "AES-192-CBC" */ 1769&(nid_objs[423]),/* "AES-192-CBC" */
1740&(nid_objs[425]),/* "AES-192-CFB" */ 1770&(nid_objs[425]),/* "AES-192-CFB" */
1771&(nid_objs[651]),/* "AES-192-CFB1" */
1772&(nid_objs[654]),/* "AES-192-CFB8" */
1741&(nid_objs[422]),/* "AES-192-ECB" */ 1773&(nid_objs[422]),/* "AES-192-ECB" */
1742&(nid_objs[424]),/* "AES-192-OFB" */ 1774&(nid_objs[424]),/* "AES-192-OFB" */
1743&(nid_objs[427]),/* "AES-256-CBC" */ 1775&(nid_objs[427]),/* "AES-256-CBC" */
1744&(nid_objs[429]),/* "AES-256-CFB" */ 1776&(nid_objs[429]),/* "AES-256-CFB" */
1777&(nid_objs[652]),/* "AES-256-CFB1" */
1778&(nid_objs[655]),/* "AES-256-CFB8" */
1745&(nid_objs[426]),/* "AES-256-ECB" */ 1779&(nid_objs[426]),/* "AES-256-ECB" */
1746&(nid_objs[428]),/* "AES-256-OFB" */ 1780&(nid_objs[428]),/* "AES-256-OFB" */
1747&(nid_objs[91]),/* "BF-CBC" */ 1781&(nid_objs[91]),/* "BF-CBC" */
@@ -1762,6 +1796,8 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
1762&(nid_objs[31]),/* "DES-CBC" */ 1796&(nid_objs[31]),/* "DES-CBC" */
1763&(nid_objs[643]),/* "DES-CDMF" */ 1797&(nid_objs[643]),/* "DES-CDMF" */
1764&(nid_objs[30]),/* "DES-CFB" */ 1798&(nid_objs[30]),/* "DES-CFB" */
1799&(nid_objs[656]),/* "DES-CFB1" */
1800&(nid_objs[657]),/* "DES-CFB8" */
1765&(nid_objs[29]),/* "DES-ECB" */ 1801&(nid_objs[29]),/* "DES-ECB" */
1766&(nid_objs[32]),/* "DES-EDE" */ 1802&(nid_objs[32]),/* "DES-EDE" */
1767&(nid_objs[43]),/* "DES-EDE-CBC" */ 1803&(nid_objs[43]),/* "DES-EDE-CBC" */
@@ -1770,6 +1806,8 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
1770&(nid_objs[33]),/* "DES-EDE3" */ 1806&(nid_objs[33]),/* "DES-EDE3" */
1771&(nid_objs[44]),/* "DES-EDE3-CBC" */ 1807&(nid_objs[44]),/* "DES-EDE3-CBC" */
1772&(nid_objs[61]),/* "DES-EDE3-CFB" */ 1808&(nid_objs[61]),/* "DES-EDE3-CFB" */
1809&(nid_objs[658]),/* "DES-EDE3-CFB1" */
1810&(nid_objs[659]),/* "DES-EDE3-CFB8" */
1773&(nid_objs[63]),/* "DES-EDE3-OFB" */ 1811&(nid_objs[63]),/* "DES-EDE3-OFB" */
1774&(nid_objs[45]),/* "DES-OFB" */ 1812&(nid_objs[45]),/* "DES-OFB" */
1775&(nid_objs[80]),/* "DESX-CBC" */ 1813&(nid_objs[80]),/* "DESX-CBC" */
@@ -2022,6 +2060,10 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
2022&(nid_objs[271]),/* "id-pkix1-explicit-93" */ 2060&(nid_objs[271]),/* "id-pkix1-explicit-93" */
2023&(nid_objs[270]),/* "id-pkix1-implicit-88" */ 2061&(nid_objs[270]),/* "id-pkix1-implicit-88" */
2024&(nid_objs[272]),/* "id-pkix1-implicit-93" */ 2062&(nid_objs[272]),/* "id-pkix1-implicit-93" */
2063&(nid_objs[662]),/* "id-ppl" */
2064&(nid_objs[664]),/* "id-ppl-anyLanguage" */
2065&(nid_objs[667]),/* "id-ppl-independent" */
2066&(nid_objs[665]),/* "id-ppl-inheritAll" */
2025&(nid_objs[267]),/* "id-qcs" */ 2067&(nid_objs[267]),/* "id-qcs" */
2026&(nid_objs[359]),/* "id-qcs-pkixQCSyntax-v1" */ 2068&(nid_objs[359]),/* "id-qcs-pkixQCSyntax-v1" */
2027&(nid_objs[259]),/* "id-qt" */ 2069&(nid_objs[259]),/* "id-qt" */
@@ -2186,6 +2228,7 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
2186&(nid_objs[151]),/* "pkcs8ShroudedKeyBag" */ 2228&(nid_objs[151]),/* "pkcs8ShroudedKeyBag" */
2187&(nid_objs[47]),/* "pkcs9" */ 2229&(nid_objs[47]),/* "pkcs9" */
2188&(nid_objs[401]),/* "policyConstraints" */ 2230&(nid_objs[401]),/* "policyConstraints" */
2231&(nid_objs[661]),/* "postalCode" */
2189&(nid_objs[406]),/* "prime-field" */ 2232&(nid_objs[406]),/* "prime-field" */
2190&(nid_objs[409]),/* "prime192v1" */ 2233&(nid_objs[409]),/* "prime192v1" */
2191&(nid_objs[410]),/* "prime192v2" */ 2234&(nid_objs[410]),/* "prime192v2" */
@@ -2196,6 +2239,7 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
2196&(nid_objs[415]),/* "prime256v1" */ 2239&(nid_objs[415]),/* "prime256v1" */
2197&(nid_objs[385]),/* "private" */ 2240&(nid_objs[385]),/* "private" */
2198&(nid_objs[84]),/* "privateKeyUsagePeriod" */ 2241&(nid_objs[84]),/* "privateKeyUsagePeriod" */
2242&(nid_objs[663]),/* "proxyCertInfo" */
2199&(nid_objs[510]),/* "pseudonym" */ 2243&(nid_objs[510]),/* "pseudonym" */
2200&(nid_objs[435]),/* "pss" */ 2244&(nid_objs[435]),/* "pss" */
2201&(nid_objs[286]),/* "qcStatements" */ 2245&(nid_objs[286]),/* "qcStatements" */
@@ -2355,6 +2399,7 @@ static ASN1_OBJECT *sn_objs[NUM_SN]={
2355&(nid_objs[454]),/* "simpleSecurityObject" */ 2399&(nid_objs[454]),/* "simpleSecurityObject" */
2356&(nid_objs[496]),/* "singleLevelQuality" */ 2400&(nid_objs[496]),/* "singleLevelQuality" */
2357&(nid_objs[387]),/* "snmpv2" */ 2401&(nid_objs[387]),/* "snmpv2" */
2402&(nid_objs[660]),/* "streetAddress" */
2358&(nid_objs[85]),/* "subjectAltName" */ 2403&(nid_objs[85]),/* "subjectAltName" */
2359&(nid_objs[398]),/* "subjectInfoAccess" */ 2404&(nid_objs[398]),/* "subjectInfoAccess" */
2360&(nid_objs[82]),/* "subjectKeyIdentifier" */ 2405&(nid_objs[82]),/* "subjectKeyIdentifier" */
@@ -2380,6 +2425,7 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
2380&(nid_objs[363]),/* "AD Time Stamping" */ 2425&(nid_objs[363]),/* "AD Time Stamping" */
2381&(nid_objs[405]),/* "ANSI X9.62" */ 2426&(nid_objs[405]),/* "ANSI X9.62" */
2382&(nid_objs[368]),/* "Acceptable OCSP Responses" */ 2427&(nid_objs[368]),/* "Acceptable OCSP Responses" */
2428&(nid_objs[664]),/* "Any language" */
2383&(nid_objs[177]),/* "Authority Information Access" */ 2429&(nid_objs[177]),/* "Authority Information Access" */
2384&(nid_objs[365]),/* "Basic OCSP Response" */ 2430&(nid_objs[365]),/* "Basic OCSP Response" */
2385&(nid_objs[285]),/* "Biometric Info" */ 2431&(nid_objs[285]),/* "Biometric Info" */
@@ -2402,6 +2448,8 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
2402&(nid_objs[296]),/* "IPSec User" */ 2448&(nid_objs[296]),/* "IPSec User" */
2403&(nid_objs[182]),/* "ISO Member Body" */ 2449&(nid_objs[182]),/* "ISO Member Body" */
2404&(nid_objs[183]),/* "ISO US Member Body" */ 2450&(nid_objs[183]),/* "ISO US Member Body" */
2451&(nid_objs[667]),/* "Independent" */
2452&(nid_objs[665]),/* "Inherit all" */
2405&(nid_objs[142]),/* "Invalidity Date" */ 2453&(nid_objs[142]),/* "Invalidity Date" */
2406&(nid_objs[504]),/* "MIME MHS" */ 2454&(nid_objs[504]),/* "MIME MHS" */
2407&(nid_objs[388]),/* "Mail" */ 2455&(nid_objs[388]),/* "Mail" */
@@ -2442,6 +2490,7 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
2442&(nid_objs[164]),/* "Policy Qualifier CPS" */ 2490&(nid_objs[164]),/* "Policy Qualifier CPS" */
2443&(nid_objs[165]),/* "Policy Qualifier User Notice" */ 2491&(nid_objs[165]),/* "Policy Qualifier User Notice" */
2444&(nid_objs[385]),/* "Private" */ 2492&(nid_objs[385]),/* "Private" */
2493&(nid_objs[663]),/* "Proxy Certificate Information" */
2445&(nid_objs[ 1]),/* "RSA Data Security, Inc." */ 2494&(nid_objs[ 1]),/* "RSA Data Security, Inc." */
2446&(nid_objs[ 2]),/* "RSA Data Security, Inc. PKCS" */ 2495&(nid_objs[ 2]),/* "RSA Data Security, Inc. PKCS" */
2447&(nid_objs[188]),/* "S/MIME" */ 2496&(nid_objs[188]),/* "S/MIME" */
@@ -2485,14 +2534,20 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
2485&(nid_objs[606]),/* "additional verification" */ 2534&(nid_objs[606]),/* "additional verification" */
2486&(nid_objs[419]),/* "aes-128-cbc" */ 2535&(nid_objs[419]),/* "aes-128-cbc" */
2487&(nid_objs[421]),/* "aes-128-cfb" */ 2536&(nid_objs[421]),/* "aes-128-cfb" */
2537&(nid_objs[650]),/* "aes-128-cfb1" */
2538&(nid_objs[653]),/* "aes-128-cfb8" */
2488&(nid_objs[418]),/* "aes-128-ecb" */ 2539&(nid_objs[418]),/* "aes-128-ecb" */
2489&(nid_objs[420]),/* "aes-128-ofb" */ 2540&(nid_objs[420]),/* "aes-128-ofb" */
2490&(nid_objs[423]),/* "aes-192-cbc" */ 2541&(nid_objs[423]),/* "aes-192-cbc" */
2491&(nid_objs[425]),/* "aes-192-cfb" */ 2542&(nid_objs[425]),/* "aes-192-cfb" */
2543&(nid_objs[651]),/* "aes-192-cfb1" */
2544&(nid_objs[654]),/* "aes-192-cfb8" */
2492&(nid_objs[422]),/* "aes-192-ecb" */ 2545&(nid_objs[422]),/* "aes-192-ecb" */
2493&(nid_objs[424]),/* "aes-192-ofb" */ 2546&(nid_objs[424]),/* "aes-192-ofb" */
2494&(nid_objs[427]),/* "aes-256-cbc" */ 2547&(nid_objs[427]),/* "aes-256-cbc" */
2495&(nid_objs[429]),/* "aes-256-cfb" */ 2548&(nid_objs[429]),/* "aes-256-cfb" */
2549&(nid_objs[652]),/* "aes-256-cfb1" */
2550&(nid_objs[655]),/* "aes-256-cfb8" */
2496&(nid_objs[426]),/* "aes-256-ecb" */ 2551&(nid_objs[426]),/* "aes-256-ecb" */
2497&(nid_objs[428]),/* "aes-256-ofb" */ 2552&(nid_objs[428]),/* "aes-256-ofb" */
2498&(nid_objs[376]),/* "algorithm" */ 2553&(nid_objs[376]),/* "algorithm" */
@@ -2531,6 +2586,8 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
2531&(nid_objs[31]),/* "des-cbc" */ 2586&(nid_objs[31]),/* "des-cbc" */
2532&(nid_objs[643]),/* "des-cdmf" */ 2587&(nid_objs[643]),/* "des-cdmf" */
2533&(nid_objs[30]),/* "des-cfb" */ 2588&(nid_objs[30]),/* "des-cfb" */
2589&(nid_objs[656]),/* "des-cfb1" */
2590&(nid_objs[657]),/* "des-cfb8" */
2534&(nid_objs[29]),/* "des-ecb" */ 2591&(nid_objs[29]),/* "des-ecb" */
2535&(nid_objs[32]),/* "des-ede" */ 2592&(nid_objs[32]),/* "des-ede" */
2536&(nid_objs[43]),/* "des-ede-cbc" */ 2593&(nid_objs[43]),/* "des-ede-cbc" */
@@ -2539,6 +2596,8 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
2539&(nid_objs[33]),/* "des-ede3" */ 2596&(nid_objs[33]),/* "des-ede3" */
2540&(nid_objs[44]),/* "des-ede3-cbc" */ 2597&(nid_objs[44]),/* "des-ede3-cbc" */
2541&(nid_objs[61]),/* "des-ede3-cfb" */ 2598&(nid_objs[61]),/* "des-ede3-cfb" */
2599&(nid_objs[658]),/* "des-ede3-cfb1" */
2600&(nid_objs[659]),/* "des-ede3-cfb8" */
2542&(nid_objs[63]),/* "des-ede3-ofb" */ 2601&(nid_objs[63]),/* "des-ede3-ofb" */
2543&(nid_objs[45]),/* "des-ofb" */ 2602&(nid_objs[45]),/* "des-ofb" */
2544&(nid_objs[107]),/* "description" */ 2603&(nid_objs[107]),/* "description" */
@@ -2668,6 +2727,7 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
2668&(nid_objs[271]),/* "id-pkix1-explicit-93" */ 2727&(nid_objs[271]),/* "id-pkix1-explicit-93" */
2669&(nid_objs[270]),/* "id-pkix1-implicit-88" */ 2728&(nid_objs[270]),/* "id-pkix1-implicit-88" */
2670&(nid_objs[272]),/* "id-pkix1-implicit-93" */ 2729&(nid_objs[272]),/* "id-pkix1-implicit-93" */
2730&(nid_objs[662]),/* "id-ppl" */
2671&(nid_objs[267]),/* "id-qcs" */ 2731&(nid_objs[267]),/* "id-qcs" */
2672&(nid_objs[359]),/* "id-qcs-pkixQCSyntax-v1" */ 2732&(nid_objs[359]),/* "id-qcs-pkixQCSyntax-v1" */
2673&(nid_objs[259]),/* "id-qt" */ 2733&(nid_objs[259]),/* "id-qt" */
@@ -2831,6 +2891,7 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
2831&(nid_objs[22]),/* "pkcs7-signedData" */ 2891&(nid_objs[22]),/* "pkcs7-signedData" */
2832&(nid_objs[151]),/* "pkcs8ShroudedKeyBag" */ 2892&(nid_objs[151]),/* "pkcs8ShroudedKeyBag" */
2833&(nid_objs[47]),/* "pkcs9" */ 2893&(nid_objs[47]),/* "pkcs9" */
2894&(nid_objs[661]),/* "postalCode" */
2834&(nid_objs[406]),/* "prime-field" */ 2895&(nid_objs[406]),/* "prime-field" */
2835&(nid_objs[409]),/* "prime192v1" */ 2896&(nid_objs[409]),/* "prime192v1" */
2836&(nid_objs[410]),/* "prime192v2" */ 2897&(nid_objs[410]),/* "prime192v2" */
@@ -3003,6 +3064,7 @@ static ASN1_OBJECT *ln_objs[NUM_LN]={
3003&(nid_objs[454]),/* "simpleSecurityObject" */ 3064&(nid_objs[454]),/* "simpleSecurityObject" */
3004&(nid_objs[496]),/* "singleLevelQuality" */ 3065&(nid_objs[496]),/* "singleLevelQuality" */
3005&(nid_objs[16]),/* "stateOrProvinceName" */ 3066&(nid_objs[16]),/* "stateOrProvinceName" */
3067&(nid_objs[660]),/* "streetAddress" */
3006&(nid_objs[498]),/* "subtreeMaximumQuality" */ 3068&(nid_objs[498]),/* "subtreeMaximumQuality" */
3007&(nid_objs[497]),/* "subtreeMinimumQuality" */ 3069&(nid_objs[497]),/* "subtreeMinimumQuality" */
3008&(nid_objs[100]),/* "surname" */ 3070&(nid_objs[100]),/* "surname" */
@@ -3046,10 +3108,12 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
3046&(nid_objs[14]),/* OBJ_countryName 2 5 4 6 */ 3108&(nid_objs[14]),/* OBJ_countryName 2 5 4 6 */
3047&(nid_objs[15]),/* OBJ_localityName 2 5 4 7 */ 3109&(nid_objs[15]),/* OBJ_localityName 2 5 4 7 */
3048&(nid_objs[16]),/* OBJ_stateOrProvinceName 2 5 4 8 */ 3110&(nid_objs[16]),/* OBJ_stateOrProvinceName 2 5 4 8 */
3111&(nid_objs[660]),/* OBJ_streetAddress 2 5 4 9 */
3049&(nid_objs[17]),/* OBJ_organizationName 2 5 4 10 */ 3112&(nid_objs[17]),/* OBJ_organizationName 2 5 4 10 */
3050&(nid_objs[18]),/* OBJ_organizationalUnitName 2 5 4 11 */ 3113&(nid_objs[18]),/* OBJ_organizationalUnitName 2 5 4 11 */
3051&(nid_objs[106]),/* OBJ_title 2 5 4 12 */ 3114&(nid_objs[106]),/* OBJ_title 2 5 4 12 */
3052&(nid_objs[107]),/* OBJ_description 2 5 4 13 */ 3115&(nid_objs[107]),/* OBJ_description 2 5 4 13 */
3116&(nid_objs[661]),/* OBJ_postalCode 2 5 4 17 */
3053&(nid_objs[173]),/* OBJ_name 2 5 4 41 */ 3117&(nid_objs[173]),/* OBJ_name 2 5 4 41 */
3054&(nid_objs[99]),/* OBJ_givenName 2 5 4 42 */ 3118&(nid_objs[99]),/* OBJ_givenName 2 5 4 42 */
3055&(nid_objs[101]),/* OBJ_initials 2 5 4 43 */ 3119&(nid_objs[101]),/* OBJ_initials 2 5 4 43 */
@@ -3270,6 +3334,7 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
3270&(nid_objs[266]),/* OBJ_id_aca 1 3 6 1 5 5 7 10 */ 3334&(nid_objs[266]),/* OBJ_id_aca 1 3 6 1 5 5 7 10 */
3271&(nid_objs[267]),/* OBJ_id_qcs 1 3 6 1 5 5 7 11 */ 3335&(nid_objs[267]),/* OBJ_id_qcs 1 3 6 1 5 5 7 11 */
3272&(nid_objs[268]),/* OBJ_id_cct 1 3 6 1 5 5 7 12 */ 3336&(nid_objs[268]),/* OBJ_id_cct 1 3 6 1 5 5 7 12 */
3337&(nid_objs[662]),/* OBJ_id_ppl 1 3 6 1 5 5 7 21 */
3273&(nid_objs[176]),/* OBJ_id_ad 1 3 6 1 5 5 7 48 */ 3338&(nid_objs[176]),/* OBJ_id_ad 1 3 6 1 5 5 7 48 */
3274&(nid_objs[507]),/* OBJ_id_hex_partial_message 1 3 6 1 7 1 1 1 */ 3339&(nid_objs[507]),/* OBJ_id_hex_partial_message 1 3 6 1 7 1 1 1 */
3275&(nid_objs[508]),/* OBJ_id_hex_multipart_message 1 3 6 1 7 1 1 2 */ 3340&(nid_objs[508]),/* OBJ_id_hex_multipart_message 1 3 6 1 7 1 1 2 */
@@ -3323,6 +3388,7 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
3323&(nid_objs[292]),/* OBJ_sbqp_routerIdentifier 1 3 6 1 5 5 7 1 9 */ 3388&(nid_objs[292]),/* OBJ_sbqp_routerIdentifier 1 3 6 1 5 5 7 1 9 */
3324&(nid_objs[397]),/* OBJ_ac_proxying 1 3 6 1 5 5 7 1 10 */ 3389&(nid_objs[397]),/* OBJ_ac_proxying 1 3 6 1 5 5 7 1 10 */
3325&(nid_objs[398]),/* OBJ_sinfo_access 1 3 6 1 5 5 7 1 11 */ 3390&(nid_objs[398]),/* OBJ_sinfo_access 1 3 6 1 5 5 7 1 11 */
3391&(nid_objs[663]),/* OBJ_proxyCertInfo 1 3 6 1 5 5 7 1 14 */
3326&(nid_objs[164]),/* OBJ_id_qt_cps 1 3 6 1 5 5 7 2 1 */ 3392&(nid_objs[164]),/* OBJ_id_qt_cps 1 3 6 1 5 5 7 2 1 */
3327&(nid_objs[165]),/* OBJ_id_qt_unotice 1 3 6 1 5 5 7 2 2 */ 3393&(nid_objs[165]),/* OBJ_id_qt_unotice 1 3 6 1 5 5 7 2 2 */
3328&(nid_objs[293]),/* OBJ_textNotice 1 3 6 1 5 5 7 2 3 */ 3394&(nid_objs[293]),/* OBJ_textNotice 1 3 6 1 5 5 7 2 3 */
@@ -3393,6 +3459,9 @@ static ASN1_OBJECT *obj_objs[NUM_OBJ]={
3393&(nid_objs[360]),/* OBJ_id_cct_crs 1 3 6 1 5 5 7 12 1 */ 3459&(nid_objs[360]),/* OBJ_id_cct_crs 1 3 6 1 5 5 7 12 1 */
3394&(nid_objs[361]),/* OBJ_id_cct_PKIData 1 3 6 1 5 5 7 12 2 */ 3460&(nid_objs[361]),/* OBJ_id_cct_PKIData 1 3 6 1 5 5 7 12 2 */
3395&(nid_objs[362]),/* OBJ_id_cct_PKIResponse 1 3 6 1 5 5 7 12 3 */ 3461&(nid_objs[362]),/* OBJ_id_cct_PKIResponse 1 3 6 1 5 5 7 12 3 */
3462&(nid_objs[664]),/* OBJ_id_ppl_anyLanguage 1 3 6 1 5 5 7 21 0 */
3463&(nid_objs[665]),/* OBJ_id_ppl_inheritAll 1 3 6 1 5 5 7 21 1 */
3464&(nid_objs[667]),/* OBJ_Independent 1 3 6 1 5 5 7 21 2 */
3396&(nid_objs[178]),/* OBJ_ad_OCSP 1 3 6 1 5 5 7 48 1 */ 3465&(nid_objs[178]),/* OBJ_ad_OCSP 1 3 6 1 5 5 7 48 1 */
3397&(nid_objs[179]),/* OBJ_ad_ca_issuers 1 3 6 1 5 5 7 48 2 */ 3466&(nid_objs[179]),/* OBJ_ad_ca_issuers 1 3 6 1 5 5 7 48 2 */
3398&(nid_objs[363]),/* OBJ_ad_timeStamping 1 3 6 1 5 5 7 48 3 */ 3467&(nid_objs[363]),/* OBJ_ad_timeStamping 1 3 6 1 5 5 7 48 3 */
diff --git a/src/lib/libssl/src/crypto/objects/obj_err.c b/src/lib/libssl/src/crypto/objects/obj_err.c
index 80ab6855af..2b5f43e3cc 100644
--- a/src/lib/libssl/src/crypto/objects/obj_err.c
+++ b/src/lib/libssl/src/crypto/objects/obj_err.c
@@ -1,6 +1,6 @@
1/* crypto/objects/obj_err.c */ 1/* crypto/objects/obj_err.c */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
@@ -66,8 +66,10 @@
66#ifndef OPENSSL_NO_ERR 66#ifndef OPENSSL_NO_ERR
67static ERR_STRING_DATA OBJ_str_functs[]= 67static ERR_STRING_DATA OBJ_str_functs[]=
68 { 68 {
69{ERR_PACK(0,OBJ_F_OBJ_ADD_OBJECT,0), "OBJ_add_object"},
69{ERR_PACK(0,OBJ_F_OBJ_CREATE,0), "OBJ_create"}, 70{ERR_PACK(0,OBJ_F_OBJ_CREATE,0), "OBJ_create"},
70{ERR_PACK(0,OBJ_F_OBJ_DUP,0), "OBJ_dup"}, 71{ERR_PACK(0,OBJ_F_OBJ_DUP,0), "OBJ_dup"},
72{ERR_PACK(0,OBJ_F_OBJ_NAME_NEW_INDEX,0), "OBJ_NAME_new_index"},
71{ERR_PACK(0,OBJ_F_OBJ_NID2LN,0), "OBJ_nid2ln"}, 73{ERR_PACK(0,OBJ_F_OBJ_NID2LN,0), "OBJ_nid2ln"},
72{ERR_PACK(0,OBJ_F_OBJ_NID2OBJ,0), "OBJ_nid2obj"}, 74{ERR_PACK(0,OBJ_F_OBJ_NID2OBJ,0), "OBJ_nid2obj"},
73{ERR_PACK(0,OBJ_F_OBJ_NID2SN,0), "OBJ_nid2sn"}, 75{ERR_PACK(0,OBJ_F_OBJ_NID2SN,0), "OBJ_nid2sn"},
diff --git a/src/lib/libssl/src/crypto/objects/obj_mac.h b/src/lib/libssl/src/crypto/objects/obj_mac.h
index 7645012298..d28894cf41 100644
--- a/src/lib/libssl/src/crypto/objects/obj_mac.h
+++ b/src/lib/libssl/src/crypto/objects/obj_mac.h
@@ -950,6 +950,10 @@
950#define NID_id_cct 268 950#define NID_id_cct 268
951#define OBJ_id_cct OBJ_id_pkix,12L 951#define OBJ_id_cct OBJ_id_pkix,12L
952 952
953#define SN_id_ppl "id-ppl"
954#define NID_id_ppl 662
955#define OBJ_id_ppl OBJ_id_pkix,21L
956
953#define SN_id_ad "id-ad" 957#define SN_id_ad "id-ad"
954#define NID_id_ad 176 958#define NID_id_ad 176
955#define OBJ_id_ad OBJ_id_pkix,48L 959#define OBJ_id_ad OBJ_id_pkix,48L
@@ -1065,6 +1069,11 @@
1065#define NID_sinfo_access 398 1069#define NID_sinfo_access 398
1066#define OBJ_sinfo_access OBJ_id_pe,11L 1070#define OBJ_sinfo_access OBJ_id_pe,11L
1067 1071
1072#define SN_proxyCertInfo "proxyCertInfo"
1073#define LN_proxyCertInfo "Proxy Certificate Information"
1074#define NID_proxyCertInfo 663
1075#define OBJ_proxyCertInfo OBJ_id_pe,14L
1076
1068#define SN_id_qt_cps "id-qt-cps" 1077#define SN_id_qt_cps "id-qt-cps"
1069#define LN_id_qt_cps "Policy Qualifier CPS" 1078#define LN_id_qt_cps "Policy Qualifier CPS"
1070#define NID_id_qt_cps 164 1079#define NID_id_qt_cps 164
@@ -1389,6 +1398,21 @@
1389#define NID_id_cct_PKIResponse 362 1398#define NID_id_cct_PKIResponse 362
1390#define OBJ_id_cct_PKIResponse OBJ_id_cct,3L 1399#define OBJ_id_cct_PKIResponse OBJ_id_cct,3L
1391 1400
1401#define SN_id_ppl_anyLanguage "id-ppl-anyLanguage"
1402#define LN_id_ppl_anyLanguage "Any language"
1403#define NID_id_ppl_anyLanguage 664
1404#define OBJ_id_ppl_anyLanguage OBJ_id_ppl,0L
1405
1406#define SN_id_ppl_inheritAll "id-ppl-inheritAll"
1407#define LN_id_ppl_inheritAll "Inherit all"
1408#define NID_id_ppl_inheritAll 665
1409#define OBJ_id_ppl_inheritAll OBJ_id_ppl,1L
1410
1411#define SN_Independent "id-ppl-independent"
1412#define LN_Independent "Independent"
1413#define NID_Independent 667
1414#define OBJ_Independent OBJ_id_ppl,2L
1415
1392#define SN_ad_OCSP "OCSP" 1416#define SN_ad_OCSP "OCSP"
1393#define LN_ad_OCSP "OCSP" 1417#define LN_ad_OCSP "OCSP"
1394#define NID_ad_OCSP 178 1418#define NID_ad_OCSP 178
@@ -1619,6 +1643,10 @@
1619#define NID_stateOrProvinceName 16 1643#define NID_stateOrProvinceName 16
1620#define OBJ_stateOrProvinceName OBJ_X509,8L 1644#define OBJ_stateOrProvinceName OBJ_X509,8L
1621 1645
1646#define LN_streetAddress "streetAddress"
1647#define NID_streetAddress 660
1648#define OBJ_streetAddress OBJ_X509,9L
1649
1622#define SN_organizationName "O" 1650#define SN_organizationName "O"
1623#define LN_organizationName "organizationName" 1651#define LN_organizationName "organizationName"
1624#define NID_organizationName 17 1652#define NID_organizationName 17
@@ -1637,6 +1665,10 @@
1637#define NID_description 107 1665#define NID_description 107
1638#define OBJ_description OBJ_X509,13L 1666#define OBJ_description OBJ_X509,13L
1639 1667
1668#define LN_postalCode "postalCode"
1669#define NID_postalCode 661
1670#define OBJ_postalCode OBJ_X509,17L
1671
1640#define SN_name "name" 1672#define SN_name "name"
1641#define LN_name "name" 1673#define LN_name "name"
1642#define NID_name 173 1674#define NID_name 173
@@ -2009,6 +2041,46 @@
2009#define NID_aes_256_cfb128 429 2041#define NID_aes_256_cfb128 429
2010#define OBJ_aes_256_cfb128 OBJ_aes,44L 2042#define OBJ_aes_256_cfb128 OBJ_aes,44L
2011 2043
2044#define SN_aes_128_cfb1 "AES-128-CFB1"
2045#define LN_aes_128_cfb1 "aes-128-cfb1"
2046#define NID_aes_128_cfb1 650
2047
2048#define SN_aes_192_cfb1 "AES-192-CFB1"
2049#define LN_aes_192_cfb1 "aes-192-cfb1"
2050#define NID_aes_192_cfb1 651
2051
2052#define SN_aes_256_cfb1 "AES-256-CFB1"
2053#define LN_aes_256_cfb1 "aes-256-cfb1"
2054#define NID_aes_256_cfb1 652
2055
2056#define SN_aes_128_cfb8 "AES-128-CFB8"
2057#define LN_aes_128_cfb8 "aes-128-cfb8"
2058#define NID_aes_128_cfb8 653
2059
2060#define SN_aes_192_cfb8 "AES-192-CFB8"
2061#define LN_aes_192_cfb8 "aes-192-cfb8"
2062#define NID_aes_192_cfb8 654
2063
2064#define SN_aes_256_cfb8 "AES-256-CFB8"
2065#define LN_aes_256_cfb8 "aes-256-cfb8"
2066#define NID_aes_256_cfb8 655
2067
2068#define SN_des_cfb1 "DES-CFB1"
2069#define LN_des_cfb1 "des-cfb1"
2070#define NID_des_cfb1 656
2071
2072#define SN_des_cfb8 "DES-CFB8"
2073#define LN_des_cfb8 "des-cfb8"
2074#define NID_des_cfb8 657
2075
2076#define SN_des_ede3_cfb1 "DES-EDE3-CFB1"
2077#define LN_des_ede3_cfb1 "des-ede3-cfb1"
2078#define NID_des_ede3_cfb1 658
2079
2080#define SN_des_ede3_cfb8 "DES-EDE3-CFB8"
2081#define LN_des_ede3_cfb8 "des-ede3-cfb8"
2082#define NID_des_ede3_cfb8 659
2083
2012#define SN_hold_instruction_code "holdInstructionCode" 2084#define SN_hold_instruction_code "holdInstructionCode"
2013#define LN_hold_instruction_code "Hold Instruction Code" 2085#define LN_hold_instruction_code "Hold Instruction Code"
2014#define NID_hold_instruction_code 430 2086#define NID_hold_instruction_code 430
diff --git a/src/lib/libssl/src/crypto/objects/obj_mac.num b/src/lib/libssl/src/crypto/objects/obj_mac.num
index 9838072b65..0e64a929ba 100644
--- a/src/lib/libssl/src/crypto/objects/obj_mac.num
+++ b/src/lib/libssl/src/crypto/objects/obj_mac.num
@@ -647,3 +647,21 @@ joint_iso_itu_t 646
647international_organizations 647 647international_organizations 647
648ms_smartcard_login 648 648ms_smartcard_login 648
649ms_upn 649 649ms_upn 649
650aes_128_cfb1 650
651aes_192_cfb1 651
652aes_256_cfb1 652
653aes_128_cfb8 653
654aes_192_cfb8 654
655aes_256_cfb8 655
656des_cfb1 656
657des_cfb8 657
658des_ede3_cfb1 658
659des_ede3_cfb8 659
660streetAddress 660
661postalCode 661
662id_ppl 662
663proxyCertInfo 663
664id_ppl_anyLanguage 664
665id_ppl_inheritAll 665
666id_ppl_independent 666
667Independent 667
diff --git a/src/lib/libssl/src/crypto/objects/objects.h b/src/lib/libssl/src/crypto/objects/objects.h
index de10532813..f859d859b8 100644
--- a/src/lib/libssl/src/crypto/objects/objects.h
+++ b/src/lib/libssl/src/crypto/objects/objects.h
@@ -1026,8 +1026,10 @@ void ERR_load_OBJ_strings(void);
1026/* Error codes for the OBJ functions. */ 1026/* Error codes for the OBJ functions. */
1027 1027
1028/* Function codes. */ 1028/* Function codes. */
1029#define OBJ_F_OBJ_ADD_OBJECT 105
1029#define OBJ_F_OBJ_CREATE 100 1030#define OBJ_F_OBJ_CREATE 100
1030#define OBJ_F_OBJ_DUP 101 1031#define OBJ_F_OBJ_DUP 101
1032#define OBJ_F_OBJ_NAME_NEW_INDEX 106
1031#define OBJ_F_OBJ_NID2LN 102 1033#define OBJ_F_OBJ_NID2LN 102
1032#define OBJ_F_OBJ_NID2OBJ 103 1034#define OBJ_F_OBJ_NID2OBJ 103
1033#define OBJ_F_OBJ_NID2SN 104 1035#define OBJ_F_OBJ_NID2SN 104
diff --git a/src/lib/libssl/src/crypto/objects/objects.txt b/src/lib/libssl/src/crypto/objects/objects.txt
index 3ba11f65cc..50e9031e61 100644
--- a/src/lib/libssl/src/crypto/objects/objects.txt
+++ b/src/lib/libssl/src/crypto/objects/objects.txt
@@ -312,6 +312,7 @@ id-pkix 9 : id-pda
312id-pkix 10 : id-aca 312id-pkix 10 : id-aca
313id-pkix 11 : id-qcs 313id-pkix 11 : id-qcs
314id-pkix 12 : id-cct 314id-pkix 12 : id-cct
315id-pkix 21 : id-ppl
315id-pkix 48 : id-ad 316id-pkix 48 : id-ad
316 317
317# PKIX Modules 318# PKIX Modules
@@ -346,6 +347,7 @@ id-pe 9 : sbqp-routerIdentifier
346id-pe 10 : ac-proxying 347id-pe 10 : ac-proxying
347!Cname sinfo-access 348!Cname sinfo-access
348id-pe 11 : subjectInfoAccess : Subject Information Access 349id-pe 11 : subjectInfoAccess : Subject Information Access
350id-pe 14 : proxyCertInfo : Proxy Certificate Information
349 351
350# PKIX policyQualifiers for Internet policy qualifiers 352# PKIX policyQualifiers for Internet policy qualifiers
351id-qt 1 : id-qt-cps : Policy Qualifier CPS 353id-qt 1 : id-qt-cps : Policy Qualifier CPS
@@ -461,6 +463,11 @@ id-cct 1 : id-cct-crs
461id-cct 2 : id-cct-PKIData 463id-cct 2 : id-cct-PKIData
462id-cct 3 : id-cct-PKIResponse 464id-cct 3 : id-cct-PKIResponse
463 465
466# Predefined Proxy Certificate policy languages
467id-ppl 0 : id-ppl-anyLanguage : Any language
468id-ppl 1 : id-ppl-inheritAll : Inherit all
469id-ppl 2 : id-ppl-independent : Independent
470
464# access descriptors for authority info access extension 471# access descriptors for authority info access extension
465!Cname ad-OCSP 472!Cname ad-OCSP
466id-ad 1 : OCSP : OCSP 473id-ad 1 : OCSP : OCSP
@@ -536,10 +543,12 @@ X509 5 : : serialNumber
536X509 6 : C : countryName 543X509 6 : C : countryName
537X509 7 : L : localityName 544X509 7 : L : localityName
538X509 8 : ST : stateOrProvinceName 545X509 8 : ST : stateOrProvinceName
546X509 9 : : streetAddress
539X509 10 : O : organizationName 547X509 10 : O : organizationName
540X509 11 : OU : organizationalUnitName 548X509 11 : OU : organizationalUnitName
541X509 12 : : title 549X509 12 : : title
542X509 13 : : description 550X509 13 : : description
551X509 17 : : postalCode
543X509 41 : name : name 552X509 41 : name : name
544X509 42 : GN : givenName 553X509 42 : GN : givenName
545X509 43 : : initials 554X509 43 : : initials
@@ -681,6 +690,19 @@ aes 43 : AES-256-OFB : aes-256-ofb
681!Cname aes-256-cfb128 690!Cname aes-256-cfb128
682aes 44 : AES-256-CFB : aes-256-cfb 691aes 44 : AES-256-CFB : aes-256-cfb
683 692
693# There are no OIDs for these modes...
694
695 : AES-128-CFB1 : aes-128-cfb1
696 : AES-192-CFB1 : aes-192-cfb1
697 : AES-256-CFB1 : aes-256-cfb1
698 : AES-128-CFB8 : aes-128-cfb8
699 : AES-192-CFB8 : aes-192-cfb8
700 : AES-256-CFB8 : aes-256-cfb8
701 : DES-CFB1 : des-cfb1
702 : DES-CFB8 : des-cfb8
703 : DES-EDE3-CFB1 : des-ede3-cfb1
704 : DES-EDE3-CFB8 : des-ede3-cfb8
705
684# Hold instruction CRL entry extension 706# Hold instruction CRL entry extension
685!Cname hold-instruction-code 707!Cname hold-instruction-code
686id-ce 23 : holdInstructionCode : Hold Instruction Code 708id-ce 23 : holdInstructionCode : Hold Instruction Code
diff --git a/src/lib/libssl/src/crypto/ocsp/Makefile b/src/lib/libssl/src/crypto/ocsp/Makefile
new file mode 100644
index 0000000000..59f7098d9e
--- /dev/null
+++ b/src/lib/libssl/src/crypto/ocsp/Makefile
@@ -0,0 +1,291 @@
1#
2# OpenSSL/ocsp/Makefile
3#
4
5DIR= ocsp
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile README
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= ocsp_asn.c ocsp_ext.c ocsp_ht.c ocsp_lib.c ocsp_cl.c \
26 ocsp_srv.c ocsp_prn.c ocsp_vfy.c ocsp_err.c
27
28LIBOBJ= ocsp_asn.o ocsp_ext.o ocsp_ht.o ocsp_lib.o ocsp_cl.o \
29 ocsp_srv.o ocsp_prn.o ocsp_vfy.o ocsp_err.o
30
31SRC= $(LIBSRC)
32
33EXHEADER= ocsp.h
34HEADER= $(EXHEADER)
35
36ALL= $(GENERAL) $(SRC) $(HEADER)
37
38top:
39 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
40
41all: lib
42
43lib: $(LIBOBJ)
44 $(AR) $(LIB) $(LIBOBJ)
45 $(RANLIB) $(LIB) || echo Never mind.
46 @touch lib
47
48files:
49 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
50
51links:
52 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
53 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
54 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
55
56install:
57 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
58 do \
59 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
60 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
61 done;
62
63tags:
64 ctags $(SRC)
65
66tests:
67
68lint:
69 lint -DLINT $(INCLUDES) $(SRC)>fluff
70
71depend:
72 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(LIBSRC)
73
74dclean:
75 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
76 mv -f Makefile.new $(MAKEFILE)
77
78clean:
79 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
80
81# DO NOT DELETE THIS LINE -- make depend depends on it.
82
83ocsp_asn.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
84ocsp_asn.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
85ocsp_asn.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
86ocsp_asn.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
87ocsp_asn.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
88ocsp_asn.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
89ocsp_asn.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
90ocsp_asn.o: ../../include/openssl/e_os2.h ../../include/openssl/evp.h
91ocsp_asn.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
92ocsp_asn.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
93ocsp_asn.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
94ocsp_asn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
95ocsp_asn.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
96ocsp_asn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
97ocsp_asn.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
98ocsp_asn.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
99ocsp_asn.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
100ocsp_asn.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
101ocsp_asn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
102ocsp_asn.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
103ocsp_asn.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
104ocsp_asn.o: ../../include/openssl/x509v3.h ocsp_asn.c
105ocsp_cl.o: ../../e_os.h ../../include/openssl/aes.h
106ocsp_cl.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
107ocsp_cl.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
108ocsp_cl.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
109ocsp_cl.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
110ocsp_cl.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
111ocsp_cl.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
112ocsp_cl.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
113ocsp_cl.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
114ocsp_cl.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
115ocsp_cl.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
116ocsp_cl.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
117ocsp_cl.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
118ocsp_cl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
119ocsp_cl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
120ocsp_cl.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
121ocsp_cl.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
122ocsp_cl.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
123ocsp_cl.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
124ocsp_cl.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
125ocsp_cl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
126ocsp_cl.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
127ocsp_cl.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
128ocsp_cl.o: ../../include/openssl/x509v3.h ../cryptlib.h ocsp_cl.c
129ocsp_err.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
130ocsp_err.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
131ocsp_err.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
132ocsp_err.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
133ocsp_err.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
134ocsp_err.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
135ocsp_err.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
136ocsp_err.o: ../../include/openssl/err.h ../../include/openssl/evp.h
137ocsp_err.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
138ocsp_err.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
139ocsp_err.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
140ocsp_err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
141ocsp_err.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
142ocsp_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
143ocsp_err.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
144ocsp_err.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
145ocsp_err.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
146ocsp_err.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
147ocsp_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
148ocsp_err.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
149ocsp_err.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
150ocsp_err.o: ../../include/openssl/x509v3.h ocsp_err.c
151ocsp_ext.o: ../../e_os.h ../../include/openssl/aes.h
152ocsp_ext.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
153ocsp_ext.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
154ocsp_ext.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
155ocsp_ext.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
156ocsp_ext.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
157ocsp_ext.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
158ocsp_ext.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
159ocsp_ext.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
160ocsp_ext.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
161ocsp_ext.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
162ocsp_ext.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
163ocsp_ext.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
164ocsp_ext.o: ../../include/openssl/opensslconf.h
165ocsp_ext.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
166ocsp_ext.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
167ocsp_ext.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
168ocsp_ext.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
169ocsp_ext.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
170ocsp_ext.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
171ocsp_ext.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
172ocsp_ext.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
173ocsp_ext.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
174ocsp_ext.o: ../cryptlib.h ocsp_ext.c
175ocsp_ht.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
176ocsp_ht.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
177ocsp_ht.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
178ocsp_ht.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
179ocsp_ht.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
180ocsp_ht.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
181ocsp_ht.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
182ocsp_ht.o: ../../include/openssl/err.h ../../include/openssl/evp.h
183ocsp_ht.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
184ocsp_ht.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
185ocsp_ht.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
186ocsp_ht.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
187ocsp_ht.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
188ocsp_ht.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
189ocsp_ht.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
190ocsp_ht.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
191ocsp_ht.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
192ocsp_ht.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
193ocsp_ht.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
194ocsp_ht.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
195ocsp_ht.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
196ocsp_ht.o: ../../include/openssl/x509v3.h ocsp_ht.c
197ocsp_lib.o: ../../e_os.h ../../include/openssl/aes.h
198ocsp_lib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
199ocsp_lib.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
200ocsp_lib.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
201ocsp_lib.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
202ocsp_lib.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
203ocsp_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
204ocsp_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
205ocsp_lib.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
206ocsp_lib.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
207ocsp_lib.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
208ocsp_lib.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
209ocsp_lib.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
210ocsp_lib.o: ../../include/openssl/opensslconf.h
211ocsp_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
212ocsp_lib.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
213ocsp_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
214ocsp_lib.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
215ocsp_lib.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
216ocsp_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
217ocsp_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
218ocsp_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
219ocsp_lib.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
220ocsp_lib.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
221ocsp_lib.o: ../cryptlib.h ocsp_lib.c
222ocsp_prn.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
223ocsp_prn.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
224ocsp_prn.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
225ocsp_prn.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
226ocsp_prn.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
227ocsp_prn.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
228ocsp_prn.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
229ocsp_prn.o: ../../include/openssl/err.h ../../include/openssl/evp.h
230ocsp_prn.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
231ocsp_prn.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
232ocsp_prn.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
233ocsp_prn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
234ocsp_prn.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
235ocsp_prn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
236ocsp_prn.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
237ocsp_prn.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
238ocsp_prn.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
239ocsp_prn.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
240ocsp_prn.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
241ocsp_prn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
242ocsp_prn.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
243ocsp_prn.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
244ocsp_prn.o: ../../include/openssl/x509v3.h ocsp_prn.c
245ocsp_srv.o: ../../e_os.h ../../include/openssl/aes.h
246ocsp_srv.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
247ocsp_srv.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
248ocsp_srv.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
249ocsp_srv.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
250ocsp_srv.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
251ocsp_srv.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
252ocsp_srv.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
253ocsp_srv.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
254ocsp_srv.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
255ocsp_srv.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
256ocsp_srv.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
257ocsp_srv.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
258ocsp_srv.o: ../../include/openssl/opensslconf.h
259ocsp_srv.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
260ocsp_srv.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
261ocsp_srv.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
262ocsp_srv.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
263ocsp_srv.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
264ocsp_srv.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
265ocsp_srv.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
266ocsp_srv.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
267ocsp_srv.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
268ocsp_srv.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
269ocsp_srv.o: ../cryptlib.h ocsp_srv.c
270ocsp_vfy.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
271ocsp_vfy.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
272ocsp_vfy.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
273ocsp_vfy.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
274ocsp_vfy.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
275ocsp_vfy.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
276ocsp_vfy.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
277ocsp_vfy.o: ../../include/openssl/err.h ../../include/openssl/evp.h
278ocsp_vfy.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
279ocsp_vfy.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
280ocsp_vfy.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
281ocsp_vfy.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
282ocsp_vfy.o: ../../include/openssl/ocsp.h ../../include/openssl/opensslconf.h
283ocsp_vfy.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
284ocsp_vfy.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
285ocsp_vfy.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
286ocsp_vfy.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
287ocsp_vfy.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
288ocsp_vfy.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
289ocsp_vfy.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
290ocsp_vfy.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
291ocsp_vfy.o: ../../include/openssl/x509v3.h ocsp_vfy.c
diff --git a/src/lib/libssl/src/crypto/opensslv.h b/src/lib/libssl/src/crypto/opensslv.h
index 02f1710fb3..5d5f688edd 100644
--- a/src/lib/libssl/src/crypto/opensslv.h
+++ b/src/lib/libssl/src/crypto/opensslv.h
@@ -25,8 +25,12 @@
25 * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for 25 * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for
26 * major minor fix final patch/beta) 26 * major minor fix final patch/beta)
27 */ 27 */
28#define OPENSSL_VERSION_NUMBER 0x0090704fL 28#define OPENSSL_VERSION_NUMBER 0x0090707fL
29#define OPENSSL_VERSION_TEXT "OpenSSL 0.9.7d 17 Mar 2004" 29#ifdef OPENSSL_FIPS
30#define OPENSSL_VERSION_TEXT "OpenSSL 0.9.7g-fips 11 Apr 2005"
31#else
32#define OPENSSL_VERSION_TEXT "OpenSSL 0.9.7g 11 Apr 2005"
33#endif
30#define OPENSSL_VERSION_PTEXT " part of " OPENSSL_VERSION_TEXT 34#define OPENSSL_VERSION_PTEXT " part of " OPENSSL_VERSION_TEXT
31 35
32 36
diff --git a/src/lib/libssl/src/crypto/pem/Makefile b/src/lib/libssl/src/crypto/pem/Makefile
new file mode 100644
index 0000000000..f3dfea2ac8
--- /dev/null
+++ b/src/lib/libssl/src/crypto/pem/Makefile
@@ -0,0 +1,335 @@
1#
2# SSLeay/crypto/pem/Makefile
3#
4
5DIR= pem
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= pem_sign.c pem_seal.c pem_info.c pem_lib.c pem_all.c pem_err.c \
26 pem_x509.c pem_xaux.c pem_oth.c pem_pk8.c pem_pkey.c
27
28LIBOBJ= pem_sign.o pem_seal.o pem_info.o pem_lib.o pem_all.o pem_err.o \
29 pem_x509.o pem_xaux.o pem_oth.o pem_pk8.o pem_pkey.o
30
31SRC= $(LIBSRC)
32
33EXHEADER= pem.h pem2.h
34HEADER= $(EXHEADER)
35
36ALL= $(GENERAL) $(SRC) $(HEADER)
37
38top:
39 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
40
41all: lib
42
43lib: $(LIBOBJ)
44 $(AR) $(LIB) $(LIBOBJ)
45 $(RANLIB) $(LIB) || echo Never mind.
46 @touch lib
47
48files:
49 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
50
51links: $(EXHEADER)
52 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
53 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
54 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
55
56install:
57 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
58 do \
59 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
60 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
61 done;
62
63tags:
64 ctags $(SRC)
65
66tests:
67
68lint:
69 lint -DLINT $(INCLUDES) $(SRC)>fluff
70
71depend:
72 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(LIBSRC)
73
74dclean:
75 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
76 mv -f Makefile.new $(MAKEFILE)
77
78clean:
79 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
80
81# DO NOT DELETE THIS LINE -- make depend depends on it.
82
83pem_all.o: ../../e_os.h ../../include/openssl/aes.h
84pem_all.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
85pem_all.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
86pem_all.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
87pem_all.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
88pem_all.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
89pem_all.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
90pem_all.o: ../../include/openssl/err.h ../../include/openssl/evp.h
91pem_all.o: ../../include/openssl/fips.h ../../include/openssl/idea.h
92pem_all.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
93pem_all.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
94pem_all.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
95pem_all.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
96pem_all.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
97pem_all.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
98pem_all.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
99pem_all.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
100pem_all.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
101pem_all.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
102pem_all.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
103pem_all.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
104pem_all.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
105pem_all.o: ../cryptlib.h pem_all.c
106pem_err.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
107pem_err.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
108pem_err.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
109pem_err.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
110pem_err.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
111pem_err.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
112pem_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
113pem_err.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
114pem_err.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
115pem_err.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
116pem_err.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
117pem_err.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
118pem_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
119pem_err.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
120pem_err.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
121pem_err.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
122pem_err.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
123pem_err.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
124pem_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
125pem_err.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
126pem_err.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
127pem_err.o: pem_err.c
128pem_info.o: ../../e_os.h ../../include/openssl/aes.h
129pem_info.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
130pem_info.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
131pem_info.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
132pem_info.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
133pem_info.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
134pem_info.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
135pem_info.o: ../../include/openssl/err.h ../../include/openssl/evp.h
136pem_info.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
137pem_info.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
138pem_info.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
139pem_info.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
140pem_info.o: ../../include/openssl/opensslconf.h
141pem_info.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
142pem_info.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
143pem_info.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
144pem_info.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
145pem_info.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
146pem_info.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
147pem_info.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
148pem_info.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
149pem_info.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
150pem_info.o: ../cryptlib.h pem_info.c
151pem_lib.o: ../../e_os.h ../../include/openssl/aes.h
152pem_lib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
153pem_lib.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
154pem_lib.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
155pem_lib.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
156pem_lib.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
157pem_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
158pem_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
159pem_lib.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
160pem_lib.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
161pem_lib.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
162pem_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
163pem_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
164pem_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
165pem_lib.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs12.h
166pem_lib.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
167pem_lib.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
168pem_lib.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
169pem_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
170pem_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
171pem_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
172pem_lib.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
173pem_lib.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pem_lib.c
174pem_oth.o: ../../e_os.h ../../include/openssl/aes.h
175pem_oth.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
176pem_oth.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
177pem_oth.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
178pem_oth.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
179pem_oth.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
180pem_oth.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
181pem_oth.o: ../../include/openssl/err.h ../../include/openssl/evp.h
182pem_oth.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
183pem_oth.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
184pem_oth.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
185pem_oth.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
186pem_oth.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
187pem_oth.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
188pem_oth.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
189pem_oth.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
190pem_oth.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
191pem_oth.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
192pem_oth.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
193pem_oth.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
194pem_oth.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
195pem_oth.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
196pem_oth.o: ../cryptlib.h pem_oth.c
197pem_pk8.o: ../../e_os.h ../../include/openssl/aes.h
198pem_pk8.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
199pem_pk8.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
200pem_pk8.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
201pem_pk8.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
202pem_pk8.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
203pem_pk8.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
204pem_pk8.o: ../../include/openssl/err.h ../../include/openssl/evp.h
205pem_pk8.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
206pem_pk8.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
207pem_pk8.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
208pem_pk8.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
209pem_pk8.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
210pem_pk8.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
211pem_pk8.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs12.h
212pem_pk8.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
213pem_pk8.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
214pem_pk8.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
215pem_pk8.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
216pem_pk8.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
217pem_pk8.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
218pem_pk8.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
219pem_pk8.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pem_pk8.c
220pem_pkey.o: ../../e_os.h ../../include/openssl/aes.h
221pem_pkey.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
222pem_pkey.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
223pem_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
224pem_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
225pem_pkey.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
226pem_pkey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
227pem_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
228pem_pkey.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
229pem_pkey.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
230pem_pkey.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
231pem_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
232pem_pkey.o: ../../include/openssl/opensslconf.h
233pem_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
234pem_pkey.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
235pem_pkey.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
236pem_pkey.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
237pem_pkey.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
238pem_pkey.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
239pem_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
240pem_pkey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
241pem_pkey.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
242pem_pkey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
243pem_pkey.o: ../cryptlib.h pem_pkey.c
244pem_seal.o: ../../e_os.h ../../include/openssl/aes.h
245pem_seal.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
246pem_seal.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
247pem_seal.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
248pem_seal.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
249pem_seal.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
250pem_seal.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
251pem_seal.o: ../../include/openssl/err.h ../../include/openssl/evp.h
252pem_seal.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
253pem_seal.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
254pem_seal.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
255pem_seal.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
256pem_seal.o: ../../include/openssl/opensslconf.h
257pem_seal.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
258pem_seal.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
259pem_seal.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
260pem_seal.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
261pem_seal.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
262pem_seal.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
263pem_seal.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
264pem_seal.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
265pem_seal.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
266pem_seal.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pem_seal.c
267pem_sign.o: ../../e_os.h ../../include/openssl/aes.h
268pem_sign.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
269pem_sign.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
270pem_sign.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
271pem_sign.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
272pem_sign.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
273pem_sign.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
274pem_sign.o: ../../include/openssl/err.h ../../include/openssl/evp.h
275pem_sign.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
276pem_sign.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
277pem_sign.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
278pem_sign.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
279pem_sign.o: ../../include/openssl/opensslconf.h
280pem_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
281pem_sign.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
282pem_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
283pem_sign.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
284pem_sign.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
285pem_sign.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
286pem_sign.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
287pem_sign.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
288pem_sign.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
289pem_sign.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pem_sign.c
290pem_x509.o: ../../e_os.h ../../include/openssl/aes.h
291pem_x509.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
292pem_x509.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
293pem_x509.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
294pem_x509.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
295pem_x509.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
296pem_x509.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
297pem_x509.o: ../../include/openssl/err.h ../../include/openssl/evp.h
298pem_x509.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
299pem_x509.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
300pem_x509.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
301pem_x509.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
302pem_x509.o: ../../include/openssl/opensslconf.h
303pem_x509.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
304pem_x509.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
305pem_x509.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
306pem_x509.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
307pem_x509.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
308pem_x509.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
309pem_x509.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
310pem_x509.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
311pem_x509.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
312pem_x509.o: ../cryptlib.h pem_x509.c
313pem_xaux.o: ../../e_os.h ../../include/openssl/aes.h
314pem_xaux.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
315pem_xaux.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
316pem_xaux.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
317pem_xaux.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
318pem_xaux.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
319pem_xaux.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
320pem_xaux.o: ../../include/openssl/err.h ../../include/openssl/evp.h
321pem_xaux.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
322pem_xaux.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
323pem_xaux.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
324pem_xaux.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
325pem_xaux.o: ../../include/openssl/opensslconf.h
326pem_xaux.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
327pem_xaux.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
328pem_xaux.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
329pem_xaux.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
330pem_xaux.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
331pem_xaux.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
332pem_xaux.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
333pem_xaux.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
334pem_xaux.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
335pem_xaux.o: ../cryptlib.h pem_xaux.c
diff --git a/src/lib/libssl/src/crypto/pem/pem_all.c b/src/lib/libssl/src/crypto/pem/pem_all.c
index e72b7134ce..07963314c9 100644
--- a/src/lib/libssl/src/crypto/pem/pem_all.c
+++ b/src/lib/libssl/src/crypto/pem/pem_all.c
@@ -64,6 +64,7 @@
64#include <openssl/x509.h> 64#include <openssl/x509.h>
65#include <openssl/pkcs7.h> 65#include <openssl/pkcs7.h>
66#include <openssl/pem.h> 66#include <openssl/pem.h>
67#include <openssl/fips.h>
67 68
68#ifndef OPENSSL_NO_RSA 69#ifndef OPENSSL_NO_RSA
69static RSA *pkey_get_rsa(EVP_PKEY *key, RSA **rsa); 70static RSA *pkey_get_rsa(EVP_PKEY *key, RSA **rsa);
@@ -128,7 +129,49 @@ RSA *PEM_read_RSAPrivateKey(FILE *fp, RSA **rsa, pem_password_cb *cb,
128 129
129#endif 130#endif
130 131
132#ifdef OPENSSL_FIPS
133
134int PEM_write_bio_RSAPrivateKey(BIO *bp, RSA *x, const EVP_CIPHER *enc,
135 unsigned char *kstr, int klen,
136 pem_password_cb *cb, void *u)
137{
138 EVP_PKEY *k;
139 int ret;
140 k = EVP_PKEY_new();
141 if (!k)
142 return 0;
143 EVP_PKEY_set1_RSA(k, x);
144
145 ret = PEM_write_bio_PrivateKey(bp, k, enc, kstr, klen, cb, u);
146 EVP_PKEY_free(k);
147 return ret;
148}
149
150#ifndef OPENSSL_NO_FP_API
151int PEM_write_RSAPrivateKey(FILE *fp, RSA *x, const EVP_CIPHER *enc,
152 unsigned char *kstr, int klen,
153 pem_password_cb *cb, void *u)
154{
155 EVP_PKEY *k;
156 int ret;
157 k = EVP_PKEY_new();
158 if (!k)
159 return 0;
160
161 EVP_PKEY_set1_RSA(k, x);
162
163 ret = PEM_write_PrivateKey(fp, k, enc, kstr, klen, cb, u);
164 EVP_PKEY_free(k);
165 return ret;
166}
167#endif
168
169#else
170
131IMPLEMENT_PEM_write_cb(RSAPrivateKey, RSA, PEM_STRING_RSA, RSAPrivateKey) 171IMPLEMENT_PEM_write_cb(RSAPrivateKey, RSA, PEM_STRING_RSA, RSAPrivateKey)
172
173#endif
174
132IMPLEMENT_PEM_rw(RSAPublicKey, RSA, PEM_STRING_RSA_PUBLIC, RSAPublicKey) 175IMPLEMENT_PEM_rw(RSAPublicKey, RSA, PEM_STRING_RSA_PUBLIC, RSAPublicKey)
133IMPLEMENT_PEM_rw(RSA_PUBKEY, RSA, PEM_STRING_PUBLIC, RSA_PUBKEY) 176IMPLEMENT_PEM_rw(RSA_PUBKEY, RSA, PEM_STRING_PUBLIC, RSA_PUBKEY)
134 177
@@ -158,7 +201,48 @@ DSA *PEM_read_bio_DSAPrivateKey(BIO *bp, DSA **dsa, pem_password_cb *cb,
158 return pkey_get_dsa(pktmp, dsa); 201 return pkey_get_dsa(pktmp, dsa);
159} 202}
160 203
204
205#ifdef OPENSSL_FIPS
206
207int PEM_write_bio_DSAPrivateKey(BIO *bp, DSA *x, const EVP_CIPHER *enc,
208 unsigned char *kstr, int klen,
209 pem_password_cb *cb, void *u)
210{
211 EVP_PKEY *k;
212 int ret;
213 k = EVP_PKEY_new();
214 if (!k)
215 return 0;
216 EVP_PKEY_set1_DSA(k, x);
217
218 ret = PEM_write_bio_PrivateKey(bp, k, enc, kstr, klen, cb, u);
219 EVP_PKEY_free(k);
220 return ret;
221}
222
223#ifndef OPENSSL_NO_FP_API
224int PEM_write_DSAPrivateKey(FILE *fp, DSA *x, const EVP_CIPHER *enc,
225 unsigned char *kstr, int klen,
226 pem_password_cb *cb, void *u)
227{
228 EVP_PKEY *k;
229 int ret;
230 k = EVP_PKEY_new();
231 if (!k)
232 return 0;
233 EVP_PKEY_set1_DSA(k, x);
234 ret = PEM_write_PrivateKey(fp, k, enc, kstr, klen, cb, u);
235 EVP_PKEY_free(k);
236 return ret;
237}
238#endif
239
240#else
241
161IMPLEMENT_PEM_write_cb(DSAPrivateKey, DSA, PEM_STRING_DSA, DSAPrivateKey) 242IMPLEMENT_PEM_write_cb(DSAPrivateKey, DSA, PEM_STRING_DSA, DSAPrivateKey)
243
244#endif
245
162IMPLEMENT_PEM_rw(DSA_PUBKEY, DSA, PEM_STRING_PUBLIC, DSA_PUBKEY) 246IMPLEMENT_PEM_rw(DSA_PUBKEY, DSA, PEM_STRING_PUBLIC, DSA_PUBKEY)
163 247
164#ifndef OPENSSL_NO_FP_API 248#ifndef OPENSSL_NO_FP_API
@@ -190,7 +274,42 @@ IMPLEMENT_PEM_rw(DHparams, DH, PEM_STRING_DHPARAMS, DHparams)
190 * (When reading, parameter PEM_STRING_EVP_PKEY is a wildcard for anything 274 * (When reading, parameter PEM_STRING_EVP_PKEY is a wildcard for anything
191 * appropriate.) 275 * appropriate.)
192 */ 276 */
277
278#ifdef OPENSSL_FIPS
279
280int PEM_write_bio_PrivateKey(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc,
281 unsigned char *kstr, int klen,
282 pem_password_cb *cb, void *u)
283 {
284 if (FIPS_mode())
285 return PEM_write_bio_PKCS8PrivateKey(bp, x, enc,
286 (char *)kstr, klen, cb, u);
287 else
288 return PEM_ASN1_write_bio((int (*)())i2d_PrivateKey,
289 (((x)->type == EVP_PKEY_DSA)?PEM_STRING_DSA:PEM_STRING_RSA),
290 bp,(char *)x,enc,kstr,klen,cb,u);
291 }
292
293#ifndef OPENSSL_NO_FP_API
294int PEM_write_PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc,
295 unsigned char *kstr, int klen,
296 pem_password_cb *cb, void *u)
297 {
298 if (FIPS_mode())
299 return PEM_write_PKCS8PrivateKey(fp, x, enc,
300 (char *)kstr, klen, cb, u);
301 else
302 return PEM_ASN1_write((int (*)())i2d_PrivateKey,
303 (((x)->type == EVP_PKEY_DSA)?PEM_STRING_DSA:PEM_STRING_RSA),
304 fp,(char *)x,enc,kstr,klen,cb,u);
305 }
306#endif
307
308#else
309
193IMPLEMENT_PEM_write_cb(PrivateKey, EVP_PKEY, ((x->type == EVP_PKEY_DSA)?PEM_STRING_DSA:PEM_STRING_RSA), PrivateKey) 310IMPLEMENT_PEM_write_cb(PrivateKey, EVP_PKEY, ((x->type == EVP_PKEY_DSA)?PEM_STRING_DSA:PEM_STRING_RSA), PrivateKey)
194 311
312#endif
313
195IMPLEMENT_PEM_rw(PUBKEY, EVP_PKEY, PEM_STRING_PUBLIC, PUBKEY) 314IMPLEMENT_PEM_rw(PUBKEY, EVP_PKEY, PEM_STRING_PUBLIC, PUBKEY)
196 315
diff --git a/src/lib/libssl/src/crypto/pem/pem_lib.c b/src/lib/libssl/src/crypto/pem/pem_lib.c
index 7785039b99..82815067b3 100644
--- a/src/lib/libssl/src/crypto/pem/pem_lib.c
+++ b/src/lib/libssl/src/crypto/pem/pem_lib.c
@@ -73,7 +73,7 @@ const char *PEM_version="PEM" OPENSSL_VERSION_PTEXT;
73 73
74#define MIN_LENGTH 4 74#define MIN_LENGTH 4
75 75
76static int load_iv(unsigned char **fromp,unsigned char *to, int num); 76static int load_iv(char **fromp,unsigned char *to, int num);
77static int check_pem(const char *nm, const char *name); 77static int check_pem(const char *nm, const char *name);
78 78
79int PEM_def_callback(char *buf, int num, int w, void *key) 79int PEM_def_callback(char *buf, int num, int w, void *key)
@@ -301,7 +301,7 @@ int PEM_ASN1_write_bio(int (*i2d)(), const char *name, BIO *bp, char *x,
301 301
302 if ((dsize=i2d(x,NULL)) < 0) 302 if ((dsize=i2d(x,NULL)) < 0)
303 { 303 {
304 PEMerr(PEM_F_PEM_ASN1_WRITE_BIO,ERR_R_MALLOC_FAILURE); 304 PEMerr(PEM_F_PEM_ASN1_WRITE_BIO,ERR_R_ASN1_LIB);
305 dsize=0; 305 dsize=0;
306 goto err; 306 goto err;
307 } 307 }
@@ -432,6 +432,7 @@ int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher)
432 int o; 432 int o;
433 const EVP_CIPHER *enc=NULL; 433 const EVP_CIPHER *enc=NULL;
434 char *p,c; 434 char *p,c;
435 char **header_pp = &header;
435 436
436 cipher->cipher=NULL; 437 cipher->cipher=NULL;
437 if ((header == NULL) || (*header == '\0') || (*header == '\n')) 438 if ((header == NULL) || (*header == '\0') || (*header == '\n'))
@@ -478,15 +479,16 @@ int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher)
478 PEMerr(PEM_F_PEM_GET_EVP_CIPHER_INFO,PEM_R_UNSUPPORTED_ENCRYPTION); 479 PEMerr(PEM_F_PEM_GET_EVP_CIPHER_INFO,PEM_R_UNSUPPORTED_ENCRYPTION);
479 return(0); 480 return(0);
480 } 481 }
481 if (!load_iv((unsigned char **)&header,&(cipher->iv[0]),enc->iv_len)) return(0); 482 if (!load_iv(header_pp,&(cipher->iv[0]),enc->iv_len))
483 return(0);
482 484
483 return(1); 485 return(1);
484 } 486 }
485 487
486static int load_iv(unsigned char **fromp, unsigned char *to, int num) 488static int load_iv(char **fromp, unsigned char *to, int num)
487 { 489 {
488 int v,i; 490 int v,i;
489 unsigned char *from; 491 char *from;
490 492
491 from= *fromp; 493 from= *fromp;
492 for (i=0; i<num; i++) to[i]=0; 494 for (i=0; i<num; i++) to[i]=0;
@@ -623,6 +625,9 @@ int PEM_read_bio(BIO *bp, char **name, char **header, unsigned char **data,
623 dataB=BUF_MEM_new(); 625 dataB=BUF_MEM_new();
624 if ((nameB == NULL) || (headerB == NULL) || (dataB == NULL)) 626 if ((nameB == NULL) || (headerB == NULL) || (dataB == NULL))
625 { 627 {
628 BUF_MEM_free(nameB);
629 BUF_MEM_free(headerB);
630 BUF_MEM_free(dataB);
626 PEMerr(PEM_F_PEM_READ_BIO,ERR_R_MALLOC_FAILURE); 631 PEMerr(PEM_F_PEM_READ_BIO,ERR_R_MALLOC_FAILURE);
627 return(0); 632 return(0);
628 } 633 }
diff --git a/src/lib/libssl/src/crypto/pem/pem_pkey.c b/src/lib/libssl/src/crypto/pem/pem_pkey.c
index f77c949e87..9ecdbd5419 100644
--- a/src/lib/libssl/src/crypto/pem/pem_pkey.c
+++ b/src/lib/libssl/src/crypto/pem/pem_pkey.c
@@ -104,6 +104,7 @@ EVP_PKEY *PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, vo
104 if (klen <= 0) { 104 if (klen <= 0) {
105 PEMerr(PEM_F_PEM_ASN1_READ_BIO, 105 PEMerr(PEM_F_PEM_ASN1_READ_BIO,
106 PEM_R_BAD_PASSWORD_READ); 106 PEM_R_BAD_PASSWORD_READ);
107 X509_SIG_free(p8);
107 goto err; 108 goto err;
108 } 109 }
109 p8inf = PKCS8_decrypt(p8, psbuf, klen); 110 p8inf = PKCS8_decrypt(p8, psbuf, klen);
diff --git a/src/lib/libssl/src/crypto/perlasm/x86asm.pl b/src/lib/libssl/src/crypto/perlasm/x86asm.pl
index 1cb96e914a..bef2667079 100644
--- a/src/lib/libssl/src/crypto/perlasm/x86asm.pl
+++ b/src/lib/libssl/src/crypto/perlasm/x86asm.pl
@@ -124,4 +124,6 @@ BSDI - a.out with a very primative version of as.
124EOF 124EOF
125 } 125 }
126 126
127sub main'align() {} # swallow align statements in 0.9.7 context
128
1271; 1291;
diff --git a/src/lib/libssl/src/crypto/perlasm/x86ms.pl b/src/lib/libssl/src/crypto/perlasm/x86ms.pl
index fbb4afb9bd..b6bd744057 100644
--- a/src/lib/libssl/src/crypto/perlasm/x86ms.pl
+++ b/src/lib/libssl/src/crypto/perlasm/x86ms.pl
@@ -160,6 +160,7 @@ sub main'not { &out1("not",@_); }
160sub main'call { &out1("call",($_[0]=~/^\$L/?'':'_').$_[0]); } 160sub main'call { &out1("call",($_[0]=~/^\$L/?'':'_').$_[0]); }
161sub main'ret { &out0("ret"); } 161sub main'ret { &out0("ret"); }
162sub main'nop { &out0("nop"); } 162sub main'nop { &out0("nop"); }
163sub main'movz { &out2("movzx",@_); }
163 164
164sub out2 165sub out2
165 { 166 {
diff --git a/src/lib/libssl/src/crypto/perlasm/x86nasm.pl b/src/lib/libssl/src/crypto/perlasm/x86nasm.pl
index 30346af4ea..5009acb4b3 100644
--- a/src/lib/libssl/src/crypto/perlasm/x86nasm.pl
+++ b/src/lib/libssl/src/crypto/perlasm/x86nasm.pl
@@ -86,7 +86,7 @@ sub get_mem
86 { 86 {
87 my($size,$addr,$reg1,$reg2,$idx)=@_; 87 my($size,$addr,$reg1,$reg2,$idx)=@_;
88 my($t,$post); 88 my($t,$post);
89 my($ret)="["; 89 my($ret)="$size [";
90 $addr =~ s/^\s+//; 90 $addr =~ s/^\s+//;
91 if ($addr =~ /^(.+)\+(.+)$/) 91 if ($addr =~ /^(.+)\+(.+)$/)
92 { 92 {
@@ -169,6 +169,7 @@ sub main'not { &out1("not",@_); }
169sub main'call { &out1("call",($_[0]=~/^\$L/?'':'_').$_[0]); } 169sub main'call { &out1("call",($_[0]=~/^\$L/?'':'_').$_[0]); }
170sub main'ret { &out0("ret"); } 170sub main'ret { &out0("ret"); }
171sub main'nop { &out0("nop"); } 171sub main'nop { &out0("nop"); }
172sub main'movz { &out2("movzx",@_); }
172 173
173sub out2 174sub out2
174 { 175 {
@@ -176,6 +177,11 @@ sub out2
176 my($l,$t); 177 my($l,$t);
177 178
178 push(@out,"\t$name\t"); 179 push(@out,"\t$name\t");
180 if ($name eq "lea")
181 {
182 $p1 =~ s/^[^\[]*\[/\[/;
183 $p2 =~ s/^[^\[]*\[/\[/;
184 }
179 $t=&conv($p1).","; 185 $t=&conv($p1).",";
180 $l=length($t); 186 $l=length($t);
181 push(@out,$t); 187 push(@out,$t);
diff --git a/src/lib/libssl/src/crypto/perlasm/x86unix.pl b/src/lib/libssl/src/crypto/perlasm/x86unix.pl
index 10b669bf04..a31a25c12b 100644
--- a/src/lib/libssl/src/crypto/perlasm/x86unix.pl
+++ b/src/lib/libssl/src/crypto/perlasm/x86unix.pl
@@ -137,12 +137,12 @@ sub main'shl { &out2("sall",@_); }
137sub main'shr { &out2("shrl",@_); } 137sub main'shr { &out2("shrl",@_); }
138sub main'xor { &out2("xorl",@_); } 138sub main'xor { &out2("xorl",@_); }
139sub main'xorb { &out2("xorb",@_); } 139sub main'xorb { &out2("xorb",@_); }
140sub main'add { &out2("addl",@_); } 140sub main'add { &out2($_[0]=~/%[a-d][lh]/?"addb":"addl",@_); }
141sub main'adc { &out2("adcl",@_); } 141sub main'adc { &out2("adcl",@_); }
142sub main'sub { &out2("subl",@_); } 142sub main'sub { &out2("subl",@_); }
143sub main'rotl { &out2("roll",@_); } 143sub main'rotl { &out2("roll",@_); }
144sub main'rotr { &out2("rorl",@_); } 144sub main'rotr { &out2("rorl",@_); }
145sub main'exch { &out2("xchg",@_); } 145sub main'exch { &out2($_[0]=~/%[a-d][lh]/?"xchgb":"xchgl",@_); }
146sub main'cmp { &out2("cmpl",@_); } 146sub main'cmp { &out2("cmpl",@_); }
147sub main'lea { &out2("leal",@_); } 147sub main'lea { &out2("leal",@_); }
148sub main'mul { &out1("mull",@_); } 148sub main'mul { &out1("mull",@_); }
@@ -164,7 +164,7 @@ sub main'jc { &out1("jc",@_); }
164sub main'jnc { &out1("jnc",@_); } 164sub main'jnc { &out1("jnc",@_); }
165sub main'jno { &out1("jno",@_); } 165sub main'jno { &out1("jno",@_); }
166sub main'dec { &out1("decl",@_); } 166sub main'dec { &out1("decl",@_); }
167sub main'inc { &out1("incl",@_); } 167sub main'inc { &out1($_[0]=~/%[a-d][hl]/?"incb":"incl",@_); }
168sub main'push { &out1("pushl",@_); $stack+=4; } 168sub main'push { &out1("pushl",@_); $stack+=4; }
169sub main'pop { &out1("popl",@_); $stack-=4; } 169sub main'pop { &out1("popl",@_); $stack-=4; }
170sub main'pushf { &out0("pushf"); $stack+=4; } 170sub main'pushf { &out0("pushf"); $stack+=4; }
@@ -173,6 +173,7 @@ sub main'not { &out1("notl",@_); }
173sub main'call { &out1("call",($_[0]=~/^\.L/?'':$under).$_[0]); } 173sub main'call { &out1("call",($_[0]=~/^\.L/?'':$under).$_[0]); }
174sub main'ret { &out0("ret"); } 174sub main'ret { &out0("ret"); }
175sub main'nop { &out0("nop"); } 175sub main'nop { &out0("nop"); }
176sub main'movz { &out2("movzbl",@_); }
176 177
177# The bswapl instruction is new for the 486. Emulate if i386. 178# The bswapl instruction is new for the 486. Emulate if i386.
178sub main'bswap 179sub main'bswap
diff --git a/src/lib/libssl/src/crypto/pkcs12/Makefile b/src/lib/libssl/src/crypto/pkcs12/Makefile
new file mode 100644
index 0000000000..854b641f7c
--- /dev/null
+++ b/src/lib/libssl/src/crypto/pkcs12/Makefile
@@ -0,0 +1,415 @@
1#
2# SSLeay/crypto/pkcs12/Makefile
3#
4
5DIR= pkcs12
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= p12_add.c p12_asn.c p12_attr.c p12_crpt.c p12_crt.c p12_decr.c \
26 p12_init.c p12_key.c p12_kiss.c p12_mutl.c\
27 p12_utl.c p12_npas.c pk12err.c p12_p8d.c p12_p8e.c
28LIBOBJ= p12_add.o p12_asn.o p12_attr.o p12_crpt.o p12_crt.o p12_decr.o \
29 p12_init.o p12_key.o p12_kiss.o p12_mutl.o\
30 p12_utl.o p12_npas.o pk12err.o p12_p8d.o p12_p8e.o
31
32SRC= $(LIBSRC)
33
34EXHEADER= pkcs12.h
35HEADER= $(EXHEADER)
36
37ALL= $(GENERAL) $(SRC) $(HEADER)
38
39top:
40 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
41
42test:
43
44all: lib
45
46lib: $(LIBOBJ)
47 $(AR) $(LIB) $(LIBOBJ)
48 $(RANLIB) $(LIB) || echo Never mind.
49 @touch lib
50
51files:
52 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
53
54links:
55 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
56 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
57 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
58
59install:
60 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
61 do \
62 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
63 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
64 done;
65
66tags:
67 ctags $(SRC)
68
69tests:
70
71lint:
72 lint -DLINT $(INCLUDES) $(SRC)>fluff
73
74depend:
75 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
76
77dclean:
78 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
79 mv -f Makefile.new $(MAKEFILE)
80
81clean:
82 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
83
84# DO NOT DELETE THIS LINE -- make depend depends on it.
85
86p12_add.o: ../../e_os.h ../../include/openssl/aes.h
87p12_add.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
88p12_add.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
89p12_add.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
90p12_add.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
91p12_add.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
92p12_add.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
93p12_add.o: ../../include/openssl/err.h ../../include/openssl/evp.h
94p12_add.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
95p12_add.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
96p12_add.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
97p12_add.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
98p12_add.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
99p12_add.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
100p12_add.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
101p12_add.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
102p12_add.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
103p12_add.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
104p12_add.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
105p12_add.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
106p12_add.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
107p12_add.o: ../cryptlib.h p12_add.c
108p12_asn.o: ../../e_os.h ../../include/openssl/aes.h
109p12_asn.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
110p12_asn.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
111p12_asn.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
112p12_asn.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
113p12_asn.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
114p12_asn.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
115p12_asn.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
116p12_asn.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
117p12_asn.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
118p12_asn.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
119p12_asn.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
120p12_asn.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
121p12_asn.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
122p12_asn.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
123p12_asn.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
124p12_asn.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
125p12_asn.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
126p12_asn.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
127p12_asn.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
128p12_asn.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
129p12_asn.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_asn.c
130p12_attr.o: ../../e_os.h ../../include/openssl/aes.h
131p12_attr.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
132p12_attr.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
133p12_attr.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
134p12_attr.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
135p12_attr.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
136p12_attr.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
137p12_attr.o: ../../include/openssl/err.h ../../include/openssl/evp.h
138p12_attr.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
139p12_attr.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
140p12_attr.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
141p12_attr.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
142p12_attr.o: ../../include/openssl/opensslconf.h
143p12_attr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
144p12_attr.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
145p12_attr.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
146p12_attr.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
147p12_attr.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
148p12_attr.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
149p12_attr.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
150p12_attr.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
151p12_attr.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_attr.c
152p12_crpt.o: ../../e_os.h ../../include/openssl/aes.h
153p12_crpt.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
154p12_crpt.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
155p12_crpt.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
156p12_crpt.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
157p12_crpt.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
158p12_crpt.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
159p12_crpt.o: ../../include/openssl/err.h ../../include/openssl/evp.h
160p12_crpt.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
161p12_crpt.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
162p12_crpt.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
163p12_crpt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
164p12_crpt.o: ../../include/openssl/opensslconf.h
165p12_crpt.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
166p12_crpt.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
167p12_crpt.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
168p12_crpt.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
169p12_crpt.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
170p12_crpt.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
171p12_crpt.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
172p12_crpt.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
173p12_crpt.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_crpt.c
174p12_crt.o: ../../e_os.h ../../include/openssl/aes.h
175p12_crt.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
176p12_crt.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
177p12_crt.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
178p12_crt.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
179p12_crt.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
180p12_crt.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
181p12_crt.o: ../../include/openssl/err.h ../../include/openssl/evp.h
182p12_crt.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
183p12_crt.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
184p12_crt.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
185p12_crt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
186p12_crt.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
187p12_crt.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
188p12_crt.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
189p12_crt.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
190p12_crt.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
191p12_crt.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
192p12_crt.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
193p12_crt.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
194p12_crt.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
195p12_crt.o: ../cryptlib.h p12_crt.c
196p12_decr.o: ../../e_os.h ../../include/openssl/aes.h
197p12_decr.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
198p12_decr.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
199p12_decr.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
200p12_decr.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
201p12_decr.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
202p12_decr.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
203p12_decr.o: ../../include/openssl/err.h ../../include/openssl/evp.h
204p12_decr.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
205p12_decr.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
206p12_decr.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
207p12_decr.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
208p12_decr.o: ../../include/openssl/opensslconf.h
209p12_decr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
210p12_decr.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
211p12_decr.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
212p12_decr.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
213p12_decr.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
214p12_decr.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
215p12_decr.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
216p12_decr.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
217p12_decr.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_decr.c
218p12_init.o: ../../e_os.h ../../include/openssl/aes.h
219p12_init.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
220p12_init.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
221p12_init.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
222p12_init.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
223p12_init.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
224p12_init.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
225p12_init.o: ../../include/openssl/err.h ../../include/openssl/evp.h
226p12_init.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
227p12_init.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
228p12_init.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
229p12_init.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
230p12_init.o: ../../include/openssl/opensslconf.h
231p12_init.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
232p12_init.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
233p12_init.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
234p12_init.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
235p12_init.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
236p12_init.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
237p12_init.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
238p12_init.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
239p12_init.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_init.c
240p12_key.o: ../../e_os.h ../../include/openssl/aes.h
241p12_key.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
242p12_key.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
243p12_key.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
244p12_key.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
245p12_key.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
246p12_key.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
247p12_key.o: ../../include/openssl/err.h ../../include/openssl/evp.h
248p12_key.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
249p12_key.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
250p12_key.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
251p12_key.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
252p12_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
253p12_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
254p12_key.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
255p12_key.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
256p12_key.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
257p12_key.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
258p12_key.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
259p12_key.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
260p12_key.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
261p12_key.o: ../cryptlib.h p12_key.c
262p12_kiss.o: ../../e_os.h ../../include/openssl/aes.h
263p12_kiss.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
264p12_kiss.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
265p12_kiss.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
266p12_kiss.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
267p12_kiss.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
268p12_kiss.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
269p12_kiss.o: ../../include/openssl/err.h ../../include/openssl/evp.h
270p12_kiss.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
271p12_kiss.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
272p12_kiss.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
273p12_kiss.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
274p12_kiss.o: ../../include/openssl/opensslconf.h
275p12_kiss.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
276p12_kiss.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
277p12_kiss.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
278p12_kiss.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
279p12_kiss.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
280p12_kiss.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
281p12_kiss.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
282p12_kiss.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
283p12_kiss.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p12_kiss.c
284p12_mutl.o: ../../e_os.h ../../include/openssl/aes.h
285p12_mutl.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
286p12_mutl.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
287p12_mutl.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
288p12_mutl.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
289p12_mutl.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
290p12_mutl.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
291p12_mutl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
292p12_mutl.o: ../../include/openssl/hmac.h ../../include/openssl/idea.h
293p12_mutl.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
294p12_mutl.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
295p12_mutl.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
296p12_mutl.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
297p12_mutl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
298p12_mutl.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
299p12_mutl.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
300p12_mutl.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
301p12_mutl.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
302p12_mutl.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
303p12_mutl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
304p12_mutl.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
305p12_mutl.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
306p12_mutl.o: ../cryptlib.h p12_mutl.c
307p12_npas.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
308p12_npas.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
309p12_npas.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
310p12_npas.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
311p12_npas.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
312p12_npas.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
313p12_npas.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
314p12_npas.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
315p12_npas.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
316p12_npas.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
317p12_npas.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
318p12_npas.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
319p12_npas.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
320p12_npas.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
321p12_npas.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
322p12_npas.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
323p12_npas.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
324p12_npas.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
325p12_npas.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
326p12_npas.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
327p12_npas.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
328p12_npas.o: ../../include/openssl/x509_vfy.h p12_npas.c
329p12_p8d.o: ../../e_os.h ../../include/openssl/aes.h
330p12_p8d.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
331p12_p8d.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
332p12_p8d.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
333p12_p8d.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
334p12_p8d.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
335p12_p8d.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
336p12_p8d.o: ../../include/openssl/err.h ../../include/openssl/evp.h
337p12_p8d.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
338p12_p8d.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
339p12_p8d.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
340p12_p8d.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
341p12_p8d.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
342p12_p8d.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
343p12_p8d.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
344p12_p8d.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
345p12_p8d.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
346p12_p8d.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
347p12_p8d.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
348p12_p8d.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
349p12_p8d.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
350p12_p8d.o: ../cryptlib.h p12_p8d.c
351p12_p8e.o: ../../e_os.h ../../include/openssl/aes.h
352p12_p8e.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
353p12_p8e.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
354p12_p8e.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
355p12_p8e.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
356p12_p8e.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
357p12_p8e.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
358p12_p8e.o: ../../include/openssl/err.h ../../include/openssl/evp.h
359p12_p8e.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
360p12_p8e.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
361p12_p8e.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
362p12_p8e.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
363p12_p8e.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
364p12_p8e.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
365p12_p8e.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
366p12_p8e.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
367p12_p8e.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
368p12_p8e.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
369p12_p8e.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
370p12_p8e.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
371p12_p8e.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
372p12_p8e.o: ../cryptlib.h p12_p8e.c
373p12_utl.o: ../../e_os.h ../../include/openssl/aes.h
374p12_utl.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
375p12_utl.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
376p12_utl.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
377p12_utl.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
378p12_utl.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
379p12_utl.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
380p12_utl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
381p12_utl.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
382p12_utl.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
383p12_utl.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
384p12_utl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
385p12_utl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
386p12_utl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs12.h
387p12_utl.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
388p12_utl.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
389p12_utl.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
390p12_utl.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
391p12_utl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
392p12_utl.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
393p12_utl.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
394p12_utl.o: ../cryptlib.h p12_utl.c
395pk12err.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
396pk12err.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
397pk12err.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
398pk12err.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
399pk12err.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
400pk12err.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
401pk12err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
402pk12err.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
403pk12err.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
404pk12err.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
405pk12err.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
406pk12err.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
407pk12err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
408pk12err.o: ../../include/openssl/pkcs12.h ../../include/openssl/pkcs7.h
409pk12err.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
410pk12err.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
411pk12err.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
412pk12err.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
413pk12err.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
414pk12err.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
415pk12err.o: ../../include/openssl/x509_vfy.h pk12err.c
diff --git a/src/lib/libssl/src/crypto/pkcs12/p12_crpt.c b/src/lib/libssl/src/crypto/pkcs12/p12_crpt.c
index 5e8958612b..003ec7a33e 100644
--- a/src/lib/libssl/src/crypto/pkcs12/p12_crpt.c
+++ b/src/lib/libssl/src/crypto/pkcs12/p12_crpt.c
@@ -88,7 +88,7 @@ int PKCS12_PBE_keyivgen (EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
88 ASN1_TYPE *param, const EVP_CIPHER *cipher, const EVP_MD *md, int en_de) 88 ASN1_TYPE *param, const EVP_CIPHER *cipher, const EVP_MD *md, int en_de)
89{ 89{
90 PBEPARAM *pbe; 90 PBEPARAM *pbe;
91 int saltlen, iter; 91 int saltlen, iter, ret;
92 unsigned char *salt, *pbuf; 92 unsigned char *salt, *pbuf;
93 unsigned char key[EVP_MAX_KEY_LENGTH], iv[EVP_MAX_IV_LENGTH]; 93 unsigned char key[EVP_MAX_KEY_LENGTH], iv[EVP_MAX_IV_LENGTH];
94 94
@@ -117,8 +117,8 @@ int PKCS12_PBE_keyivgen (EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
117 return 0; 117 return 0;
118 } 118 }
119 PBEPARAM_free(pbe); 119 PBEPARAM_free(pbe);
120 EVP_CipherInit_ex(ctx, cipher, NULL, key, iv, en_de); 120 ret = EVP_CipherInit_ex(ctx, cipher, NULL, key, iv, en_de);
121 OPENSSL_cleanse(key, EVP_MAX_KEY_LENGTH); 121 OPENSSL_cleanse(key, EVP_MAX_KEY_LENGTH);
122 OPENSSL_cleanse(iv, EVP_MAX_IV_LENGTH); 122 OPENSSL_cleanse(iv, EVP_MAX_IV_LENGTH);
123 return 1; 123 return ret;
124} 124}
diff --git a/src/lib/libssl/src/crypto/pkcs12/p12_init.c b/src/lib/libssl/src/crypto/pkcs12/p12_init.c
index eb837a78cf..5276b12669 100644
--- a/src/lib/libssl/src/crypto/pkcs12/p12_init.c
+++ b/src/lib/libssl/src/crypto/pkcs12/p12_init.c
@@ -76,15 +76,17 @@ PKCS12 *PKCS12_init (int mode)
76 if (!(pkcs12->authsafes->d.data = 76 if (!(pkcs12->authsafes->d.data =
77 M_ASN1_OCTET_STRING_new())) { 77 M_ASN1_OCTET_STRING_new())) {
78 PKCS12err(PKCS12_F_PKCS12_INIT,ERR_R_MALLOC_FAILURE); 78 PKCS12err(PKCS12_F_PKCS12_INIT,ERR_R_MALLOC_FAILURE);
79 return NULL; 79 goto err;
80 } 80 }
81 break; 81 break;
82 default: 82 default:
83 PKCS12err(PKCS12_F_PKCS12_INIT,PKCS12_R_UNSUPPORTED_PKCS12_MODE); 83 PKCS12err(PKCS12_F_PKCS12_INIT,
84 PKCS12_free(pkcs12); 84 PKCS12_R_UNSUPPORTED_PKCS12_MODE);
85 return NULL; 85 goto err;
86 break;
87 } 86 }
88 87
89 return pkcs12; 88 return pkcs12;
89err:
90 if (pkcs12 != NULL) PKCS12_free(pkcs12);
91 return NULL;
90} 92}
diff --git a/src/lib/libssl/src/crypto/pkcs12/p12_kiss.c b/src/lib/libssl/src/crypto/pkcs12/p12_kiss.c
index 885087ad00..2b31999e11 100644
--- a/src/lib/libssl/src/crypto/pkcs12/p12_kiss.c
+++ b/src/lib/libssl/src/crypto/pkcs12/p12_kiss.c
@@ -249,14 +249,26 @@ static int parse_bag(PKCS12_SAFEBAG *bag, const char *pass, int passlen,
249 if (M_PKCS12_cert_bag_type(bag) != NID_x509Certificate ) 249 if (M_PKCS12_cert_bag_type(bag) != NID_x509Certificate )
250 return 1; 250 return 1;
251 if (!(x509 = PKCS12_certbag2x509(bag))) return 0; 251 if (!(x509 = PKCS12_certbag2x509(bag))) return 0;
252 if(ckid) X509_keyid_set1(x509, ckid->data, ckid->length); 252 if(ckid)
253 {
254 if (!X509_keyid_set1(x509, ckid->data, ckid->length))
255 {
256 X509_free(x509);
257 return 0;
258 }
259 }
253 if(fname) { 260 if(fname) {
254 int len; 261 int len, r;
255 unsigned char *data; 262 unsigned char *data;
256 len = ASN1_STRING_to_UTF8(&data, fname); 263 len = ASN1_STRING_to_UTF8(&data, fname);
257 if(len > 0) { 264 if(len > 0) {
258 X509_alias_set1(x509, data, len); 265 r = X509_alias_set1(x509, data, len);
259 OPENSSL_free(data); 266 OPENSSL_free(data);
267 if (!r)
268 {
269 X509_free(x509);
270 return 0;
271 }
260 } 272 }
261 } 273 }
262 274
diff --git a/src/lib/libssl/src/crypto/pkcs12/p12_mutl.c b/src/lib/libssl/src/crypto/pkcs12/p12_mutl.c
index 0fb67f74b8..4886b9b289 100644
--- a/src/lib/libssl/src/crypto/pkcs12/p12_mutl.c
+++ b/src/lib/libssl/src/crypto/pkcs12/p12_mutl.c
@@ -148,7 +148,10 @@ int PKCS12_setup_mac (PKCS12 *p12, int iter, unsigned char *salt, int saltlen,
148 PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE); 148 PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE);
149 return 0; 149 return 0;
150 } 150 }
151 ASN1_INTEGER_set(p12->mac->iter, iter); 151 if (!ASN1_INTEGER_set(p12->mac->iter, iter)) {
152 PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE);
153 return 0;
154 }
152 } 155 }
153 if (!saltlen) saltlen = PKCS12_SALT_LEN; 156 if (!saltlen) saltlen = PKCS12_SALT_LEN;
154 p12->mac->salt->length = saltlen; 157 p12->mac->salt->length = saltlen;
diff --git a/src/lib/libssl/src/crypto/pkcs7/Makefile b/src/lib/libssl/src/crypto/pkcs7/Makefile
new file mode 100644
index 0000000000..f15c65f690
--- /dev/null
+++ b/src/lib/libssl/src/crypto/pkcs7/Makefile
@@ -0,0 +1,241 @@
1#
2# SSLeay/crypto/pkcs7/Makefile
3#
4
5DIR= pkcs7
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18PEX_LIBS=
19EX_LIBS=
20
21CFLAGS= $(INCLUDES) $(CFLAG)
22
23GENERAL=Makefile README
24TEST=
25APPS=
26
27LIB=$(TOP)/libcrypto.a
28LIBSRC= pk7_asn1.c pk7_lib.c pkcs7err.c pk7_doit.c pk7_smime.c pk7_attr.c \
29 pk7_mime.c
30LIBOBJ= pk7_asn1.o pk7_lib.o pkcs7err.o pk7_doit.o pk7_smime.o pk7_attr.o \
31 pk7_mime.o
32
33SRC= $(LIBSRC)
34
35EXHEADER= pkcs7.h
36HEADER= $(EXHEADER)
37
38ALL= $(GENERAL) $(SRC) $(HEADER)
39
40top:
41 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
42
43test:
44
45all: lib
46
47testapps: enc dec sign verify
48
49enc: enc.o lib
50 $(CC) $(CFLAGS) -o enc enc.o $(PEX_LIBS) $(LIB) $(EX_LIBS)
51
52dec: dec.o lib
53 $(CC) $(CFLAGS) -o dec dec.o $(PEX_LIBS) $(LIB) $(EX_LIBS)
54
55sign: sign.o lib
56 $(CC) $(CFLAGS) -o sign sign.o $(PEX_LIBS) $(LIB) $(EX_LIBS)
57
58verify: verify.o example.o lib
59 $(CC) $(CFLAGS) -o verify verify.o $(PEX_LIBS) example.o $(LIB) $(EX_LIBS)
60
61lib: $(LIBOBJ)
62 $(AR) $(LIB) $(LIBOBJ)
63 $(RANLIB) $(LIB) || echo Never mind.
64 @touch lib
65
66files:
67 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
68
69links:
70 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
71 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
72 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
73
74install:
75 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
76 do \
77 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
78 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
79 done;
80
81tags:
82 ctags $(SRC)
83
84tests:
85
86lint:
87 lint -DLINT $(INCLUDES) $(SRC)>fluff
88
89depend:
90 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
91
92dclean:
93 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
94 mv -f Makefile.new $(MAKEFILE)
95
96clean:
97 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff enc dec sign verify
98
99# DO NOT DELETE THIS LINE -- make depend depends on it.
100
101pk7_asn1.o: ../../e_os.h ../../include/openssl/aes.h
102pk7_asn1.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
103pk7_asn1.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
104pk7_asn1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
105pk7_asn1.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
106pk7_asn1.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
107pk7_asn1.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
108pk7_asn1.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
109pk7_asn1.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
110pk7_asn1.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
111pk7_asn1.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
112pk7_asn1.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
113pk7_asn1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
114pk7_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
115pk7_asn1.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
116pk7_asn1.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
117pk7_asn1.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
118pk7_asn1.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
119pk7_asn1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
120pk7_asn1.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
121pk7_asn1.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
122pk7_asn1.o: ../cryptlib.h pk7_asn1.c
123pk7_attr.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
124pk7_attr.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
125pk7_attr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
126pk7_attr.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
127pk7_attr.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
128pk7_attr.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
129pk7_attr.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
130pk7_attr.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
131pk7_attr.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
132pk7_attr.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
133pk7_attr.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
134pk7_attr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
135pk7_attr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
136pk7_attr.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
137pk7_attr.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
138pk7_attr.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
139pk7_attr.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
140pk7_attr.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
141pk7_attr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
142pk7_attr.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
143pk7_attr.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
144pk7_attr.o: pk7_attr.c
145pk7_doit.o: ../../e_os.h ../../include/openssl/aes.h
146pk7_doit.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
147pk7_doit.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
148pk7_doit.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
149pk7_doit.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
150pk7_doit.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
151pk7_doit.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
152pk7_doit.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
153pk7_doit.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
154pk7_doit.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
155pk7_doit.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
156pk7_doit.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
157pk7_doit.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
158pk7_doit.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
159pk7_doit.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
160pk7_doit.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
161pk7_doit.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
162pk7_doit.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
163pk7_doit.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
164pk7_doit.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
165pk7_doit.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
166pk7_doit.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
167pk7_doit.o: ../cryptlib.h pk7_doit.c
168pk7_lib.o: ../../e_os.h ../../include/openssl/aes.h
169pk7_lib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
170pk7_lib.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
171pk7_lib.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
172pk7_lib.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
173pk7_lib.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
174pk7_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
175pk7_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
176pk7_lib.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
177pk7_lib.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
178pk7_lib.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
179pk7_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
180pk7_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
181pk7_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
182pk7_lib.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
183pk7_lib.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
184pk7_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
185pk7_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
186pk7_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
187pk7_lib.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
188pk7_lib.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pk7_lib.c
189pk7_mime.o: ../../e_os.h ../../include/openssl/aes.h
190pk7_mime.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
191pk7_mime.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
192pk7_mime.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
193pk7_mime.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
194pk7_mime.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
195pk7_mime.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
196pk7_mime.o: ../../include/openssl/err.h ../../include/openssl/evp.h
197pk7_mime.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
198pk7_mime.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
199pk7_mime.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
200pk7_mime.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
201pk7_mime.o: ../../include/openssl/opensslconf.h
202pk7_mime.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
203pk7_mime.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
204pk7_mime.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
205pk7_mime.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
206pk7_mime.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
207pk7_mime.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
208pk7_mime.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
209pk7_mime.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
210pk7_mime.o: ../../include/openssl/x509_vfy.h ../cryptlib.h pk7_mime.c
211pk7_smime.o: ../../e_os.h ../../include/openssl/aes.h
212pk7_smime.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
213pk7_smime.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
214pk7_smime.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
215pk7_smime.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
216pk7_smime.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
217pk7_smime.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
218pk7_smime.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
219pk7_smime.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
220pk7_smime.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
221pk7_smime.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
222pk7_smime.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
223pk7_smime.o: ../../include/openssl/objects.h
224pk7_smime.o: ../../include/openssl/opensslconf.h
225pk7_smime.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
226pk7_smime.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
227pk7_smime.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
228pk7_smime.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
229pk7_smime.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
230pk7_smime.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
231pk7_smime.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
232pk7_smime.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
233pk7_smime.o: ../../include/openssl/x509v3.h ../cryptlib.h pk7_smime.c
234pkcs7err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
235pkcs7err.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
236pkcs7err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
237pkcs7err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
238pkcs7err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
239pkcs7err.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
240pkcs7err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
241pkcs7err.o: pkcs7err.c
diff --git a/src/lib/libssl/src/crypto/pkcs7/pk7_attr.c b/src/lib/libssl/src/crypto/pkcs7/pk7_attr.c
index 5ff5a88b5c..039141027a 100644
--- a/src/lib/libssl/src/crypto/pkcs7/pk7_attr.c
+++ b/src/lib/libssl/src/crypto/pkcs7/pk7_attr.c
@@ -3,7 +3,7 @@
3 * project 2001. 3 * project 2001.
4 */ 4 */
5/* ==================================================================== 5/* ====================================================================
6 * Copyright (c) 2001 The OpenSSL Project. All rights reserved. 6 * Copyright (c) 2001-2004 The OpenSSL Project. All rights reserved.
7 * 7 *
8 * Redistribution and use in source and binary forms, with or without 8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions 9 * modification, are permitted provided that the following conditions
@@ -94,17 +94,18 @@ int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, STACK_OF(X509_ALGOR) *cap)
94} 94}
95 95
96STACK_OF(X509_ALGOR) *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si) 96STACK_OF(X509_ALGOR) *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si)
97{ 97 {
98 ASN1_TYPE *cap; 98 ASN1_TYPE *cap;
99 unsigned char *p; 99 unsigned char *p;
100 cap = PKCS7_get_signed_attribute(si, NID_SMIMECapabilities); 100 cap = PKCS7_get_signed_attribute(si, NID_SMIMECapabilities);
101 if (!cap) return NULL; 101 if (!cap || (cap->type != V_ASN1_SEQUENCE))
102 return NULL;
102 p = cap->value.sequence->data; 103 p = cap->value.sequence->data;
103 return d2i_ASN1_SET_OF_X509_ALGOR(NULL, &p, 104 return d2i_ASN1_SET_OF_X509_ALGOR(NULL, &p,
104 cap->value.sequence->length, 105 cap->value.sequence->length,
105 d2i_X509_ALGOR, X509_ALGOR_free, 106 d2i_X509_ALGOR, X509_ALGOR_free,
106 V_ASN1_SEQUENCE, V_ASN1_UNIVERSAL); 107 V_ASN1_SEQUENCE, V_ASN1_UNIVERSAL);
107} 108 }
108 109
109/* Basic smime-capabilities OID and optional integer arg */ 110/* Basic smime-capabilities OID and optional integer arg */
110int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg) 111int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg)
diff --git a/src/lib/libssl/src/crypto/pkcs7/pk7_doit.c b/src/lib/libssl/src/crypto/pkcs7/pk7_doit.c
index 35c7dcd0b3..4ac29ae14d 100644
--- a/src/lib/libssl/src/crypto/pkcs7/pk7_doit.c
+++ b/src/lib/libssl/src/crypto/pkcs7/pk7_doit.c
@@ -239,7 +239,13 @@ BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio)
239 OPENSSL_free(tmp); 239 OPENSSL_free(tmp);
240 goto err; 240 goto err;
241 } 241 }
242 M_ASN1_OCTET_STRING_set(ri->enc_key,tmp,jj); 242 if (!M_ASN1_OCTET_STRING_set(ri->enc_key,tmp,jj))
243 {
244 PKCS7err(PKCS7_F_PKCS7_DATAINIT,
245 ERR_R_MALLOC_FAILURE);
246 OPENSSL_free(tmp);
247 goto err;
248 }
243 } 249 }
244 OPENSSL_free(tmp); 250 OPENSSL_free(tmp);
245 OPENSSL_cleanse(key, keylen); 251 OPENSSL_cleanse(key, keylen);
@@ -257,10 +263,15 @@ BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio)
257 bio=BIO_new(BIO_s_null()); 263 bio=BIO_new(BIO_s_null());
258 else 264 else
259 { 265 {
260 ASN1_OCTET_STRING *os; 266 if (PKCS7_type_is_signed(p7))
261 os = PKCS7_get_octet_string(p7->d.sign->contents); 267 {
262 if (os && os->length > 0) 268 ASN1_OCTET_STRING *os;
263 bio = BIO_new_mem_buf(os->data, os->length); 269 os = PKCS7_get_octet_string(
270 p7->d.sign->contents);
271 if (os && os->length > 0)
272 bio = BIO_new_mem_buf(os->data,
273 os->length);
274 }
264 if(bio == NULL) 275 if(bio == NULL)
265 { 276 {
266 bio=BIO_new(BIO_s_mem()); 277 bio=BIO_new(BIO_s_mem());
@@ -515,12 +526,20 @@ int PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
515 case NID_pkcs7_signedAndEnveloped: 526 case NID_pkcs7_signedAndEnveloped:
516 /* XXXXXXXXXXXXXXXX */ 527 /* XXXXXXXXXXXXXXXX */
517 si_sk=p7->d.signed_and_enveloped->signer_info; 528 si_sk=p7->d.signed_and_enveloped->signer_info;
518 os=M_ASN1_OCTET_STRING_new(); 529 if (!(os=M_ASN1_OCTET_STRING_new()))
530 {
531 PKCS7err(PKCS7_F_PKCS7_DATASIGN,ERR_R_MALLOC_FAILURE);
532 goto err;
533 }
519 p7->d.signed_and_enveloped->enc_data->enc_data=os; 534 p7->d.signed_and_enveloped->enc_data->enc_data=os;
520 break; 535 break;
521 case NID_pkcs7_enveloped: 536 case NID_pkcs7_enveloped:
522 /* XXXXXXXXXXXXXXXX */ 537 /* XXXXXXXXXXXXXXXX */
523 os=M_ASN1_OCTET_STRING_new(); 538 if (!(os=M_ASN1_OCTET_STRING_new()))
539 {
540 PKCS7err(PKCS7_F_PKCS7_DATASIGN,ERR_R_MALLOC_FAILURE);
541 goto err;
542 }
524 p7->d.enveloped->enc_data->enc_data=os; 543 p7->d.enveloped->enc_data->enc_data=os;
525 break; 544 break;
526 case NID_pkcs7_signed: 545 case NID_pkcs7_signed:
@@ -594,7 +613,12 @@ int PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
594 if (!PKCS7_get_signed_attribute(si, 613 if (!PKCS7_get_signed_attribute(si,
595 NID_pkcs9_signingTime)) 614 NID_pkcs9_signingTime))
596 { 615 {
597 sign_time=X509_gmtime_adj(NULL,0); 616 if (!(sign_time=X509_gmtime_adj(NULL,0)))
617 {
618 PKCS7err(PKCS7_F_PKCS7_DATASIGN,
619 ERR_R_MALLOC_FAILURE);
620 goto err;
621 }
598 PKCS7_add_signed_attribute(si, 622 PKCS7_add_signed_attribute(si,
599 NID_pkcs9_signingTime, 623 NID_pkcs9_signingTime,
600 V_ASN1_UTCTIME,sign_time); 624 V_ASN1_UTCTIME,sign_time);
@@ -603,8 +627,19 @@ int PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
603 /* Add digest */ 627 /* Add digest */
604 md_tmp=EVP_MD_CTX_md(&ctx_tmp); 628 md_tmp=EVP_MD_CTX_md(&ctx_tmp);
605 EVP_DigestFinal_ex(&ctx_tmp,md_data,&md_len); 629 EVP_DigestFinal_ex(&ctx_tmp,md_data,&md_len);
606 digest=M_ASN1_OCTET_STRING_new(); 630 if (!(digest=M_ASN1_OCTET_STRING_new()))
607 M_ASN1_OCTET_STRING_set(digest,md_data,md_len); 631 {
632 PKCS7err(PKCS7_F_PKCS7_DATASIGN,
633 ERR_R_MALLOC_FAILURE);
634 goto err;
635 }
636 if (!M_ASN1_OCTET_STRING_set(digest,md_data,
637 md_len))
638 {
639 PKCS7err(PKCS7_F_PKCS7_DATASIGN,
640 ERR_R_MALLOC_FAILURE);
641 goto err;
642 }
608 PKCS7_add_signed_attribute(si, 643 PKCS7_add_signed_attribute(si,
609 NID_pkcs9_messageDigest, 644 NID_pkcs9_messageDigest,
610 V_ASN1_OCTET_STRING,digest); 645 V_ASN1_OCTET_STRING,digest);
diff --git a/src/lib/libssl/src/crypto/pkcs7/pk7_lib.c b/src/lib/libssl/src/crypto/pkcs7/pk7_lib.c
index 985b07245c..ee1817c7af 100644
--- a/src/lib/libssl/src/crypto/pkcs7/pk7_lib.c
+++ b/src/lib/libssl/src/crypto/pkcs7/pk7_lib.c
@@ -164,7 +164,12 @@ int PKCS7_set_type(PKCS7 *p7, int type)
164 p7->type=obj; 164 p7->type=obj;
165 if ((p7->d.sign=PKCS7_SIGNED_new()) == NULL) 165 if ((p7->d.sign=PKCS7_SIGNED_new()) == NULL)
166 goto err; 166 goto err;
167 ASN1_INTEGER_set(p7->d.sign->version,1); 167 if (!ASN1_INTEGER_set(p7->d.sign->version,1))
168 {
169 PKCS7_SIGNED_free(p7->d.sign);
170 p7->d.sign=NULL;
171 goto err;
172 }
168 break; 173 break;
169 case NID_pkcs7_data: 174 case NID_pkcs7_data:
170 p7->type=obj; 175 p7->type=obj;
@@ -176,6 +181,8 @@ int PKCS7_set_type(PKCS7 *p7, int type)
176 if ((p7->d.signed_and_enveloped=PKCS7_SIGN_ENVELOPE_new()) 181 if ((p7->d.signed_and_enveloped=PKCS7_SIGN_ENVELOPE_new())
177 == NULL) goto err; 182 == NULL) goto err;
178 ASN1_INTEGER_set(p7->d.signed_and_enveloped->version,1); 183 ASN1_INTEGER_set(p7->d.signed_and_enveloped->version,1);
184 if (!ASN1_INTEGER_set(p7->d.signed_and_enveloped->version,1))
185 goto err;
179 p7->d.signed_and_enveloped->enc_data->content_type 186 p7->d.signed_and_enveloped->enc_data->content_type
180 = OBJ_nid2obj(NID_pkcs7_data); 187 = OBJ_nid2obj(NID_pkcs7_data);
181 break; 188 break;
@@ -183,7 +190,8 @@ int PKCS7_set_type(PKCS7 *p7, int type)
183 p7->type=obj; 190 p7->type=obj;
184 if ((p7->d.enveloped=PKCS7_ENVELOPE_new()) 191 if ((p7->d.enveloped=PKCS7_ENVELOPE_new())
185 == NULL) goto err; 192 == NULL) goto err;
186 ASN1_INTEGER_set(p7->d.enveloped->version,0); 193 if (!ASN1_INTEGER_set(p7->d.enveloped->version,0))
194 goto err;
187 p7->d.enveloped->enc_data->content_type 195 p7->d.enveloped->enc_data->content_type
188 = OBJ_nid2obj(NID_pkcs7_data); 196 = OBJ_nid2obj(NID_pkcs7_data);
189 break; 197 break;
@@ -191,7 +199,8 @@ int PKCS7_set_type(PKCS7 *p7, int type)
191 p7->type=obj; 199 p7->type=obj;
192 if ((p7->d.encrypted=PKCS7_ENCRYPT_new()) 200 if ((p7->d.encrypted=PKCS7_ENCRYPT_new())
193 == NULL) goto err; 201 == NULL) goto err;
194 ASN1_INTEGER_set(p7->d.encrypted->version,0); 202 if (!ASN1_INTEGER_set(p7->d.encrypted->version,0))
203 goto err;
195 p7->d.encrypted->enc_data->content_type 204 p7->d.encrypted->enc_data->content_type
196 = OBJ_nid2obj(NID_pkcs7_data); 205 = OBJ_nid2obj(NID_pkcs7_data);
197 break; 206 break;
@@ -318,15 +327,18 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey,
318 if (pkey->type == EVP_PKEY_DSA) is_dsa = 1; 327 if (pkey->type == EVP_PKEY_DSA) is_dsa = 1;
319 else is_dsa = 0; 328 else is_dsa = 0;
320 /* We now need to add another PKCS7_SIGNER_INFO entry */ 329 /* We now need to add another PKCS7_SIGNER_INFO entry */
321 ASN1_INTEGER_set(p7i->version,1); 330 if (!ASN1_INTEGER_set(p7i->version,1))
322 X509_NAME_set(&p7i->issuer_and_serial->issuer, 331 goto err;
323 X509_get_issuer_name(x509)); 332 if (!X509_NAME_set(&p7i->issuer_and_serial->issuer,
333 X509_get_issuer_name(x509)))
334 goto err;
324 335
325 /* because ASN1_INTEGER_set is used to set a 'long' we will do 336 /* because ASN1_INTEGER_set is used to set a 'long' we will do
326 * things the ugly way. */ 337 * things the ugly way. */
327 M_ASN1_INTEGER_free(p7i->issuer_and_serial->serial); 338 M_ASN1_INTEGER_free(p7i->issuer_and_serial->serial);
328 p7i->issuer_and_serial->serial= 339 if (!(p7i->issuer_and_serial->serial=
329 M_ASN1_INTEGER_dup(X509_get_serialNumber(x509)); 340 M_ASN1_INTEGER_dup(X509_get_serialNumber(x509))))
341 goto err;
330 342
331 /* lets keep the pkey around for a while */ 343 /* lets keep the pkey around for a while */
332 CRYPTO_add(&pkey->references,1,CRYPTO_LOCK_EVP_PKEY); 344 CRYPTO_add(&pkey->references,1,CRYPTO_LOCK_EVP_PKEY);
@@ -423,16 +435,20 @@ int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri)
423 435
424int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509) 436int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509)
425 { 437 {
426 ASN1_INTEGER_set(p7i->version,0); 438 if (!ASN1_INTEGER_set(p7i->version,0))
427 X509_NAME_set(&p7i->issuer_and_serial->issuer, 439 return 0;
428 X509_get_issuer_name(x509)); 440 if (!X509_NAME_set(&p7i->issuer_and_serial->issuer,
441 X509_get_issuer_name(x509)))
442 return 0;
429 443
430 M_ASN1_INTEGER_free(p7i->issuer_and_serial->serial); 444 M_ASN1_INTEGER_free(p7i->issuer_and_serial->serial);
431 p7i->issuer_and_serial->serial= 445 if (!(p7i->issuer_and_serial->serial=
432 M_ASN1_INTEGER_dup(X509_get_serialNumber(x509)); 446 M_ASN1_INTEGER_dup(X509_get_serialNumber(x509))))
447 return 0;
433 448
434 X509_ALGOR_free(p7i->key_enc_algor); 449 X509_ALGOR_free(p7i->key_enc_algor);
435 p7i->key_enc_algor= X509_ALGOR_dup(x509->cert_info->key->algor); 450 if (!(p7i->key_enc_algor= X509_ALGOR_dup(x509->cert_info->key->algor)))
451 return 0;
436 452
437 CRYPTO_add(&x509->references,1,CRYPTO_LOCK_X509); 453 CRYPTO_add(&x509->references,1,CRYPTO_LOCK_X509);
438 p7i->cert=x509; 454 p7i->cert=x509;
diff --git a/src/lib/libssl/src/crypto/pkcs7/pk7_smime.c b/src/lib/libssl/src/crypto/pkcs7/pk7_smime.c
index 6e5735de11..a852b49235 100644
--- a/src/lib/libssl/src/crypto/pkcs7/pk7_smime.c
+++ b/src/lib/libssl/src/crypto/pkcs7/pk7_smime.c
@@ -155,7 +155,7 @@ int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store,
155 char buf[4096]; 155 char buf[4096];
156 int i, j=0, k, ret = 0; 156 int i, j=0, k, ret = 0;
157 BIO *p7bio; 157 BIO *p7bio;
158 BIO *tmpout; 158 BIO *tmpin, *tmpout;
159 159
160 if(!p7) { 160 if(!p7) {
161 PKCS7err(PKCS7_F_PKCS7_VERIFY,PKCS7_R_INVALID_NULL_POINTER); 161 PKCS7err(PKCS7_F_PKCS7_VERIFY,PKCS7_R_INVALID_NULL_POINTER);
@@ -228,7 +228,30 @@ int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store,
228 /* Check for revocation status here */ 228 /* Check for revocation status here */
229 } 229 }
230 230
231 p7bio=PKCS7_dataInit(p7,indata); 231 /* Performance optimization: if the content is a memory BIO then
232 * store its contents in a temporary read only memory BIO. This
233 * avoids potentially large numbers of slow copies of data which will
234 * occur when reading from a read write memory BIO when signatures
235 * are calculated.
236 */
237
238 if (indata && (BIO_method_type(indata) == BIO_TYPE_MEM))
239 {
240 char *ptr;
241 long len;
242 len = BIO_get_mem_data(indata, &ptr);
243 tmpin = BIO_new_mem_buf(ptr, len);
244 if (tmpin == NULL)
245 {
246 PKCS7err(PKCS7_F_PKCS7_VERIFY,ERR_R_MALLOC_FAILURE);
247 return 0;
248 }
249 }
250 else
251 tmpin = indata;
252
253
254 p7bio=PKCS7_dataInit(p7,tmpin);
232 255
233 if(flags & PKCS7_TEXT) { 256 if(flags & PKCS7_TEXT) {
234 if(!(tmpout = BIO_new(BIO_s_mem()))) { 257 if(!(tmpout = BIO_new(BIO_s_mem()))) {
@@ -270,9 +293,15 @@ int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store,
270 ret = 1; 293 ret = 1;
271 294
272 err: 295 err:
296
297 if (tmpin == indata)
298 {
299 if(indata) BIO_pop(p7bio);
300 BIO_free_all(p7bio);
301 }
302 else
303 BIO_free_all(tmpin);
273 304
274 if(indata) BIO_pop(p7bio);
275 BIO_free_all(p7bio);
276 sk_X509_free(signers); 305 sk_X509_free(signers);
277 306
278 return ret; 307 return ret;
@@ -296,10 +325,6 @@ STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, int flags)
296 PKCS7err(PKCS7_F_PKCS7_GET0_SIGNERS,PKCS7_R_WRONG_CONTENT_TYPE); 325 PKCS7err(PKCS7_F_PKCS7_GET0_SIGNERS,PKCS7_R_WRONG_CONTENT_TYPE);
297 return NULL; 326 return NULL;
298 } 327 }
299 if(!(signers = sk_X509_new_null())) {
300 PKCS7err(PKCS7_F_PKCS7_GET0_SIGNERS,ERR_R_MALLOC_FAILURE);
301 return NULL;
302 }
303 328
304 /* Collect all the signers together */ 329 /* Collect all the signers together */
305 330
@@ -310,6 +335,11 @@ STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, int flags)
310 return 0; 335 return 0;
311 } 336 }
312 337
338 if(!(signers = sk_X509_new_null())) {
339 PKCS7err(PKCS7_F_PKCS7_GET0_SIGNERS,ERR_R_MALLOC_FAILURE);
340 return NULL;
341 }
342
313 for (i = 0; i < sk_PKCS7_SIGNER_INFO_num(sinfos); i++) 343 for (i = 0; i < sk_PKCS7_SIGNER_INFO_num(sinfos); i++)
314 { 344 {
315 si = sk_PKCS7_SIGNER_INFO_value(sinfos, i); 345 si = sk_PKCS7_SIGNER_INFO_value(sinfos, i);
diff --git a/src/lib/libssl/src/crypto/rand/Makefile b/src/lib/libssl/src/crypto/rand/Makefile
new file mode 100644
index 0000000000..665eaa18e5
--- /dev/null
+++ b/src/lib/libssl/src/crypto/rand/Makefile
@@ -0,0 +1,196 @@
1#
2# SSLeay/crypto/rand/Makefile
3#
4
5DIR= rand
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST= randtest.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=md_rand.c randfile.c rand_lib.c rand_err.c rand_egd.c \
26 rand_win.c rand_unix.c rand_os2.c
27LIBOBJ=md_rand.o randfile.o rand_lib.o rand_err.o rand_egd.o \
28 rand_win.o rand_unix.o rand_os2.o
29
30SRC= $(LIBSRC)
31
32EXHEADER= rand.h
33HEADER= $(EXHEADER)
34
35ALL= $(GENERAL) $(SRC) $(HEADER)
36
37top:
38 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
39
40all: lib
41
42lib: $(LIBOBJ)
43 $(AR) $(LIB) $(LIBOBJ)
44 $(RANLIB) $(LIB) || echo Never mind.
45 @touch lib
46
47files:
48 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
49
50links:
51 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
52 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
53 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
54
55install:
56 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
57 do \
58 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
59 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
60 done;
61
62tags:
63 ctags $(SRC)
64
65tests:
66
67lint:
68 lint -DLINT $(INCLUDES) $(SRC)>fluff
69
70depend:
71 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
72
73dclean:
74 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
75 mv -f Makefile.new $(MAKEFILE)
76
77clean:
78 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
79
80# DO NOT DELETE THIS LINE -- make depend depends on it.
81
82md_rand.o: ../../e_os.h ../../include/openssl/aes.h
83md_rand.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
84md_rand.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
85md_rand.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
86md_rand.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
87md_rand.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
88md_rand.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
89md_rand.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
90md_rand.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
91md_rand.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
92md_rand.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
93md_rand.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
94md_rand.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
95md_rand.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
96md_rand.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
97md_rand.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
98md_rand.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
99md_rand.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
100md_rand.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
101md_rand.o: ../../include/openssl/ui_compat.h md_rand.c rand_lcl.h
102rand_egd.o: ../../include/openssl/buffer.h ../../include/openssl/e_os2.h
103rand_egd.o: ../../include/openssl/opensslconf.h
104rand_egd.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
105rand_egd.o: rand_egd.c
106rand_err.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
107rand_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
108rand_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
109rand_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
110rand_err.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
111rand_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
112rand_err.o: rand_err.c
113rand_lib.o: ../../e_os.h ../../include/openssl/asn1.h
114rand_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
115rand_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
116rand_lib.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
117rand_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
118rand_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
119rand_lib.o: ../../include/openssl/err.h ../../include/openssl/fips.h
120rand_lib.o: ../../include/openssl/fips_rand.h ../../include/openssl/lhash.h
121rand_lib.o: ../../include/openssl/opensslconf.h
122rand_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
123rand_lib.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
124rand_lib.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
125rand_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
126rand_lib.o: ../../include/openssl/ui_compat.h ../cryptlib.h rand_lib.c
127rand_os2.o: ../../e_os.h ../../include/openssl/aes.h
128rand_os2.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
129rand_os2.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
130rand_os2.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
131rand_os2.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
132rand_os2.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
133rand_os2.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
134rand_os2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
135rand_os2.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
136rand_os2.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
137rand_os2.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
138rand_os2.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
139rand_os2.o: ../../include/openssl/opensslconf.h
140rand_os2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
141rand_os2.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
142rand_os2.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
143rand_os2.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
144rand_os2.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
145rand_os2.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
146rand_os2.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
147rand_os2.o: ../cryptlib.h rand_lcl.h rand_os2.c
148rand_unix.o: ../../e_os.h ../../include/openssl/aes.h
149rand_unix.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
150rand_unix.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
151rand_unix.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
152rand_unix.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
153rand_unix.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
154rand_unix.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
155rand_unix.o: ../../include/openssl/err.h ../../include/openssl/evp.h
156rand_unix.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
157rand_unix.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
158rand_unix.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
159rand_unix.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
160rand_unix.o: ../../include/openssl/opensslconf.h
161rand_unix.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
162rand_unix.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
163rand_unix.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
164rand_unix.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
165rand_unix.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
166rand_unix.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
167rand_unix.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
168rand_unix.o: ../cryptlib.h rand_lcl.h rand_unix.c
169rand_win.o: ../../e_os.h ../../include/openssl/aes.h
170rand_win.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
171rand_win.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
172rand_win.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
173rand_win.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
174rand_win.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
175rand_win.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
176rand_win.o: ../../include/openssl/err.h ../../include/openssl/evp.h
177rand_win.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
178rand_win.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
179rand_win.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
180rand_win.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
181rand_win.o: ../../include/openssl/opensslconf.h
182rand_win.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
183rand_win.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
184rand_win.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
185rand_win.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
186rand_win.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
187rand_win.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
188rand_win.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
189rand_win.o: ../cryptlib.h rand_lcl.h rand_win.c
190randfile.o: ../../e_os.h ../../include/openssl/buffer.h
191randfile.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
192randfile.o: ../../include/openssl/opensslconf.h
193randfile.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
194randfile.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
195randfile.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
196randfile.o: randfile.c
diff --git a/src/lib/libssl/src/crypto/rand/md_rand.c b/src/lib/libssl/src/crypto/rand/md_rand.c
index eeffc0df4c..c84968df88 100644
--- a/src/lib/libssl/src/crypto/rand/md_rand.c
+++ b/src/lib/libssl/src/crypto/rand/md_rand.c
@@ -126,6 +126,7 @@
126 126
127#include <openssl/crypto.h> 127#include <openssl/crypto.h>
128#include <openssl/err.h> 128#include <openssl/err.h>
129#include <openssl/fips.h>
129 130
130#ifdef BN_DEBUG 131#ifdef BN_DEBUG
131# define PREDICT 132# define PREDICT
@@ -332,6 +333,14 @@ static int ssleay_rand_bytes(unsigned char *buf, int num)
332#endif 333#endif
333 int do_stir_pool = 0; 334 int do_stir_pool = 0;
334 335
336#ifdef OPENSSL_FIPS
337 if(FIPS_mode())
338 {
339 FIPSerr(FIPS_F_SSLEAY_RAND_BYTES,FIPS_R_NON_FIPS_METHOD);
340 return 0;
341 }
342#endif
343
335#ifdef PREDICT 344#ifdef PREDICT
336 if (rand_predictable) 345 if (rand_predictable)
337 { 346 {
diff --git a/src/lib/libssl/src/crypto/rand/rand.h b/src/lib/libssl/src/crypto/rand/rand.h
index 606382dd21..604df9be6c 100644
--- a/src/lib/libssl/src/crypto/rand/rand.h
+++ b/src/lib/libssl/src/crypto/rand/rand.h
@@ -71,6 +71,10 @@
71extern "C" { 71extern "C" {
72#endif 72#endif
73 73
74#if defined(OPENSSL_FIPS)
75#define FIPS_RAND_SIZE_T int
76#endif
77
74typedef struct rand_meth_st 78typedef struct rand_meth_st
75 { 79 {
76 void (*seed)(const void *buf, int num); 80 void (*seed)(const void *buf, int num);
@@ -121,11 +125,17 @@ void ERR_load_RAND_strings(void);
121/* Error codes for the RAND functions. */ 125/* Error codes for the RAND functions. */
122 126
123/* Function codes. */ 127/* Function codes. */
128#define RAND_F_FIPS_RAND_BYTES 102
124#define RAND_F_RAND_GET_RAND_METHOD 101 129#define RAND_F_RAND_GET_RAND_METHOD 101
125#define RAND_F_SSLEAY_RAND_BYTES 100 130#define RAND_F_SSLEAY_RAND_BYTES 100
126 131
127/* Reason codes. */ 132/* Reason codes. */
133#define RAND_R_NON_FIPS_METHOD 101
134#define RAND_R_PRNG_ASKING_FOR_TOO_MUCH 105
135#define RAND_R_PRNG_NOT_REKEYED 103
136#define RAND_R_PRNG_NOT_RESEEDED 104
128#define RAND_R_PRNG_NOT_SEEDED 100 137#define RAND_R_PRNG_NOT_SEEDED 100
138#define RAND_R_PRNG_STUCK 102
129 139
130#ifdef __cplusplus 140#ifdef __cplusplus
131} 141}
diff --git a/src/lib/libssl/src/crypto/rand/rand_egd.c b/src/lib/libssl/src/crypto/rand/rand_egd.c
index 6f742900a0..cd666abfcb 100644
--- a/src/lib/libssl/src/crypto/rand/rand_egd.c
+++ b/src/lib/libssl/src/crypto/rand/rand_egd.c
@@ -95,7 +95,7 @@
95 * RAND_egd() is a wrapper for RAND_egd_bytes() with numbytes=255. 95 * RAND_egd() is a wrapper for RAND_egd_bytes() with numbytes=255.
96 */ 96 */
97 97
98#if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_VXWORKS) 98#if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_VOS)
99int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes) 99int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes)
100 { 100 {
101 return(-1); 101 return(-1);
@@ -216,7 +216,9 @@ int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes)
216 while (numbytes != 1) 216 while (numbytes != 1)
217 { 217 {
218 num = read(fd, egdbuf, 1); 218 num = read(fd, egdbuf, 1);
219 if (num >= 0) 219 if (num == 0)
220 goto err; /* descriptor closed */
221 else if (num > 0)
220 numbytes += num; 222 numbytes += num;
221 else 223 else
222 { 224 {
@@ -246,7 +248,9 @@ int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes)
246 while (numbytes != egdbuf[0]) 248 while (numbytes != egdbuf[0])
247 { 249 {
248 num = read(fd, retrievebuf + numbytes, egdbuf[0] - numbytes); 250 num = read(fd, retrievebuf + numbytes, egdbuf[0] - numbytes);
249 if (num >= 0) 251 if (num == 0)
252 goto err; /* descriptor closed */
253 else if (num > 0)
250 numbytes += num; 254 numbytes += num;
251 else 255 else
252 { 256 {
diff --git a/src/lib/libssl/src/crypto/rand/rand_err.c b/src/lib/libssl/src/crypto/rand/rand_err.c
index b77267e213..95574659ac 100644
--- a/src/lib/libssl/src/crypto/rand/rand_err.c
+++ b/src/lib/libssl/src/crypto/rand/rand_err.c
@@ -1,6 +1,6 @@
1/* crypto/rand/rand_err.c */ 1/* crypto/rand/rand_err.c */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 1999-2003 The OpenSSL Project. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
@@ -66,6 +66,7 @@
66#ifndef OPENSSL_NO_ERR 66#ifndef OPENSSL_NO_ERR
67static ERR_STRING_DATA RAND_str_functs[]= 67static ERR_STRING_DATA RAND_str_functs[]=
68 { 68 {
69{ERR_PACK(0,RAND_F_FIPS_RAND_BYTES,0), "FIPS_RAND_BYTES"},
69{ERR_PACK(0,RAND_F_RAND_GET_RAND_METHOD,0), "RAND_get_rand_method"}, 70{ERR_PACK(0,RAND_F_RAND_GET_RAND_METHOD,0), "RAND_get_rand_method"},
70{ERR_PACK(0,RAND_F_SSLEAY_RAND_BYTES,0), "SSLEAY_RAND_BYTES"}, 71{ERR_PACK(0,RAND_F_SSLEAY_RAND_BYTES,0), "SSLEAY_RAND_BYTES"},
71{0,NULL} 72{0,NULL}
@@ -73,7 +74,12 @@ static ERR_STRING_DATA RAND_str_functs[]=
73 74
74static ERR_STRING_DATA RAND_str_reasons[]= 75static ERR_STRING_DATA RAND_str_reasons[]=
75 { 76 {
77{RAND_R_NON_FIPS_METHOD ,"non fips method"},
78{RAND_R_PRNG_ASKING_FOR_TOO_MUCH ,"prng asking for too much"},
79{RAND_R_PRNG_NOT_REKEYED ,"prng not rekeyed"},
80{RAND_R_PRNG_NOT_RESEEDED ,"prng not reseeded"},
76{RAND_R_PRNG_NOT_SEEDED ,"PRNG not seeded"}, 81{RAND_R_PRNG_NOT_SEEDED ,"PRNG not seeded"},
82{RAND_R_PRNG_STUCK ,"prng stuck"},
77{0,NULL} 83{0,NULL}
78 }; 84 };
79 85
diff --git a/src/lib/libssl/src/crypto/rand/rand_lib.c b/src/lib/libssl/src/crypto/rand/rand_lib.c
index 513e338985..88f1b56d91 100644
--- a/src/lib/libssl/src/crypto/rand/rand_lib.c
+++ b/src/lib/libssl/src/crypto/rand/rand_lib.c
@@ -63,6 +63,8 @@
63#ifndef OPENSSL_NO_ENGINE 63#ifndef OPENSSL_NO_ENGINE
64#include <openssl/engine.h> 64#include <openssl/engine.h>
65#endif 65#endif
66#include <openssl/fips.h>
67#include <openssl/fips_rand.h>
66 68
67#ifndef OPENSSL_NO_ENGINE 69#ifndef OPENSSL_NO_ENGINE
68/* non-NULL if default_RAND_meth is ENGINE-provided */ 70/* non-NULL if default_RAND_meth is ENGINE-provided */
@@ -85,6 +87,16 @@ int RAND_set_rand_method(const RAND_METHOD *meth)
85 87
86const RAND_METHOD *RAND_get_rand_method(void) 88const RAND_METHOD *RAND_get_rand_method(void)
87 { 89 {
90#ifdef OPENSSL_FIPS
91 if(FIPS_mode()
92 && default_RAND_meth != FIPS_rand_check())
93 {
94 RANDerr(RAND_F_RAND_GET_RAND_METHOD,RAND_R_NON_FIPS_METHOD);
95 return 0;
96 }
97#endif
98
99
88 if (!default_RAND_meth) 100 if (!default_RAND_meth)
89 { 101 {
90#ifndef OPENSSL_NO_ENGINE 102#ifndef OPENSSL_NO_ENGINE
diff --git a/src/lib/libssl/src/crypto/rand/rand_unix.c b/src/lib/libssl/src/crypto/rand/rand_unix.c
index 0599719dd1..9376554fae 100644
--- a/src/lib/libssl/src/crypto/rand/rand_unix.c
+++ b/src/lib/libssl/src/crypto/rand/rand_unix.c
@@ -120,6 +120,7 @@
120#include <sys/types.h> 120#include <sys/types.h>
121#include <sys/time.h> 121#include <sys/time.h>
122#include <sys/times.h> 122#include <sys/times.h>
123#include <sys/stat.h>
123#include <fcntl.h> 124#include <fcntl.h>
124#include <unistd.h> 125#include <unistd.h>
125#include <time.h> 126#include <time.h>
@@ -151,9 +152,9 @@ int RAND_poll(void)
151 int n = 0; 152 int n = 0;
152#endif 153#endif
153#ifdef DEVRANDOM 154#ifdef DEVRANDOM
154 static const char *randomfiles[] = { DEVRANDOM, NULL }; 155 static const char *randomfiles[] = { DEVRANDOM };
155 const char **randomfile = NULL; 156 struct stat randomstats[sizeof(randomfiles)/sizeof(randomfiles[0])];
156 int fd; 157 int fd,i;
157#endif 158#endif
158#ifdef DEVRANDOM_EGD 159#ifdef DEVRANDOM_EGD
159 static const char *egdsockets[] = { DEVRANDOM_EGD, NULL }; 160 static const char *egdsockets[] = { DEVRANDOM_EGD, NULL };
@@ -161,26 +162,42 @@ int RAND_poll(void)
161#endif 162#endif
162 163
163#ifdef DEVRANDOM 164#ifdef DEVRANDOM
165 memset(randomstats,0,sizeof(randomstats));
164 /* Use a random entropy pool device. Linux, FreeBSD and OpenBSD 166 /* Use a random entropy pool device. Linux, FreeBSD and OpenBSD
165 * have this. Use /dev/urandom if you can as /dev/random may block 167 * have this. Use /dev/urandom if you can as /dev/random may block
166 * if it runs out of random entries. */ 168 * if it runs out of random entries. */
167 169
168 for (randomfile = randomfiles; *randomfile && n < ENTROPY_NEEDED; randomfile++) 170 for (i=0; i<sizeof(randomfiles)/sizeof(randomfiles[0]) && n < ENTROPY_NEEDED; i++)
169 { 171 {
170 if ((fd = open(*randomfile, O_RDONLY|O_NONBLOCK 172 if ((fd = open(randomfiles[i], O_RDONLY
173#ifdef O_NONBLOCK
174 |O_NONBLOCK
175#endif
176#ifdef O_BINARY
177 |O_BINARY
178#endif
171#ifdef O_NOCTTY /* If it happens to be a TTY (god forbid), do not make it 179#ifdef O_NOCTTY /* If it happens to be a TTY (god forbid), do not make it
172 our controlling tty */ 180 our controlling tty */
173 |O_NOCTTY 181 |O_NOCTTY
174#endif 182#endif
175#ifdef O_NOFOLLOW /* Fail if the file is a symbolic link */
176 |O_NOFOLLOW
177#endif
178 )) >= 0) 183 )) >= 0)
179 { 184 {
180 struct timeval t = { 0, 10*1000 }; /* Spend 10ms on 185 struct timeval t = { 0, 10*1000 }; /* Spend 10ms on
181 each file. */ 186 each file. */
182 int r; 187 int r,j;
183 fd_set fset; 188 fd_set fset;
189 struct stat *st=&randomstats[i];
190
191 /* Avoid using same input... Used to be O_NOFOLLOW
192 * above, but it's not universally appropriate... */
193 if (fstat(fd,st) != 0) { close(fd); continue; }
194 for (j=0;j<i;j++)
195 {
196 if (randomstats[j].st_ino==st->st_ino &&
197 randomstats[j].st_dev==st->st_dev)
198 break;
199 }
200 if (j<i) { close(fd); continue; }
184 201
185 do 202 do
186 { 203 {
diff --git a/src/lib/libssl/src/crypto/rand/rand_vms.c b/src/lib/libssl/src/crypto/rand/rand_vms.c
index 29b2d7af0b..1267a3acae 100644
--- a/src/lib/libssl/src/crypto/rand/rand_vms.c
+++ b/src/lib/libssl/src/crypto/rand/rand_vms.c
@@ -101,11 +101,12 @@ int RAND_poll(void)
101 pitem = item; 101 pitem = item;
102 102
103 /* Setup */ 103 /* Setup */
104 while (pitems_data->length) 104 while (pitems_data->length
105 && (total_length + pitems_data->length <= 256))
105 { 106 {
106 pitem->length = pitems_data->length; 107 pitem->length = pitems_data->length;
107 pitem->code = pitems_data->code; 108 pitem->code = pitems_data->code;
108 pitem->buffer = (long *)data_buffer[total_length]; 109 pitem->buffer = (long *)&data_buffer[total_length];
109 pitem->retlen = 0; 110 pitem->retlen = 0;
110 total_length += pitems_data->length; 111 total_length += pitems_data->length;
111 pitems_data++; 112 pitems_data++;
diff --git a/src/lib/libssl/src/crypto/rand/rand_win.c b/src/lib/libssl/src/crypto/rand/rand_win.c
index 3584842224..30c69161ef 100644
--- a/src/lib/libssl/src/crypto/rand/rand_win.c
+++ b/src/lib/libssl/src/crypto/rand/rand_win.c
@@ -125,7 +125,7 @@
125 * http://developer.intel.com/design/security/rng/redist_license.htm 125 * http://developer.intel.com/design/security/rng/redist_license.htm
126 */ 126 */
127#define PROV_INTEL_SEC 22 127#define PROV_INTEL_SEC 22
128#define INTEL_DEF_PROV TEXT("Intel Hardware Cryptographic Service Provider") 128#define INTEL_DEF_PROV L"Intel Hardware Cryptographic Service Provider"
129 129
130static void readtimer(void); 130static void readtimer(void);
131static void readscreen(void); 131static void readscreen(void);
@@ -152,7 +152,7 @@ typedef struct tagCURSORINFO
152#define CURSOR_SHOWING 0x00000001 152#define CURSOR_SHOWING 0x00000001
153#endif /* CURSOR_SHOWING */ 153#endif /* CURSOR_SHOWING */
154 154
155typedef BOOL (WINAPI *CRYPTACQUIRECONTEXT)(HCRYPTPROV *, LPCTSTR, LPCTSTR, 155typedef BOOL (WINAPI *CRYPTACQUIRECONTEXTW)(HCRYPTPROV *, LPCWSTR, LPCWSTR,
156 DWORD, DWORD); 156 DWORD, DWORD);
157typedef BOOL (WINAPI *CRYPTGENRANDOM)(HCRYPTPROV, DWORD, BYTE *); 157typedef BOOL (WINAPI *CRYPTGENRANDOM)(HCRYPTPROV, DWORD, BYTE *);
158typedef BOOL (WINAPI *CRYPTRELEASECONTEXT)(HCRYPTPROV, DWORD); 158typedef BOOL (WINAPI *CRYPTRELEASECONTEXT)(HCRYPTPROV, DWORD);
@@ -194,7 +194,7 @@ int RAND_poll(void)
194 HWND h; 194 HWND h;
195 195
196 HMODULE advapi, kernel, user, netapi; 196 HMODULE advapi, kernel, user, netapi;
197 CRYPTACQUIRECONTEXT acquire = 0; 197 CRYPTACQUIRECONTEXTW acquire = 0;
198 CRYPTGENRANDOM gen = 0; 198 CRYPTGENRANDOM gen = 0;
199 CRYPTRELEASECONTEXT release = 0; 199 CRYPTRELEASECONTEXT release = 0;
200#if 1 /* There was previously a problem with NETSTATGET. Currently, this 200#if 1 /* There was previously a problem with NETSTATGET. Currently, this
@@ -213,6 +213,9 @@ int RAND_poll(void)
213 GetVersionEx( &osverinfo ) ; 213 GetVersionEx( &osverinfo ) ;
214 214
215#if defined(OPENSSL_SYS_WINCE) && WCEPLATFORM!=MS_HPC_PRO 215#if defined(OPENSSL_SYS_WINCE) && WCEPLATFORM!=MS_HPC_PRO
216#ifndef CryptAcquireContext
217#define CryptAcquireContext CryptAcquireContextW
218#endif
216 /* poll the CryptoAPI PRNG */ 219 /* poll the CryptoAPI PRNG */
217 /* The CryptoAPI returns sizeof(buf) bytes of randomness */ 220 /* The CryptoAPI returns sizeof(buf) bytes of randomness */
218 if (CryptAcquireContext(&hProvider, 0, 0, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) 221 if (CryptAcquireContext(&hProvider, 0, 0, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
@@ -223,21 +226,35 @@ int RAND_poll(void)
223 } 226 }
224#endif 227#endif
225 228
229#ifndef OPENSSL_SYS_WINCE
230 /*
231 * None of below libraries are present on Windows CE, which is
232 * why we #ifndef the whole section. This also excuses us from
233 * handling the GetProcAddress issue. The trouble is that in
234 * real Win32 API GetProcAddress is available in ANSI flavor
235 * only. In WinCE on the other hand GetProcAddress is a macro
236 * most commonly defined as GetProcAddressW, which accepts
237 * Unicode argument. If we were to call GetProcAddress under
238 * WinCE, I'd recommend to either redefine GetProcAddress as
239 * GetProcAddressA (there seem to be one in common CE spec) or
240 * implement own shim routine, which would accept ANSI argument
241 * and expand it to Unicode.
242 */
243
226 /* load functions dynamically - not available on all systems */ 244 /* load functions dynamically - not available on all systems */
227 advapi = LoadLibrary(TEXT("ADVAPI32.DLL")); 245 advapi = LoadLibrary(TEXT("ADVAPI32.DLL"));
228 kernel = LoadLibrary(TEXT("KERNEL32.DLL")); 246 kernel = LoadLibrary(TEXT("KERNEL32.DLL"));
229 user = LoadLibrary(TEXT("USER32.DLL")); 247 user = LoadLibrary(TEXT("USER32.DLL"));
230 netapi = LoadLibrary(TEXT("NETAPI32.DLL")); 248 netapi = LoadLibrary(TEXT("NETAPI32.DLL"));
231 249
232#ifndef OPENSSL_SYS_WINCE
233#if 1 /* There was previously a problem with NETSTATGET. Currently, this 250#if 1 /* There was previously a problem with NETSTATGET. Currently, this
234 * section is still experimental, but if all goes well, this conditional 251 * section is still experimental, but if all goes well, this conditional
235 * will be removed 252 * will be removed
236 */ 253 */
237 if (netapi) 254 if (netapi)
238 { 255 {
239 netstatget = (NETSTATGET) GetProcAddress(netapi,TEXT("NetStatisticsGet")); 256 netstatget = (NETSTATGET) GetProcAddress(netapi,"NetStatisticsGet");
240 netfree = (NETFREE) GetProcAddress(netapi,TEXT("NetApiBufferFree")); 257 netfree = (NETFREE) GetProcAddress(netapi,"NetApiBufferFree");
241 } 258 }
242 259
243 if (netstatget && netfree) 260 if (netstatget && netfree)
@@ -264,9 +281,7 @@ int RAND_poll(void)
264 if (netapi) 281 if (netapi)
265 FreeLibrary(netapi); 282 FreeLibrary(netapi);
266#endif /* 1 */ 283#endif /* 1 */
267#endif /* !OPENSSL_SYS_WINCE */ 284
268
269#ifndef OPENSSL_SYS_WINCE
270 /* It appears like this can cause an exception deep within ADVAPI32.DLL 285 /* It appears like this can cause an exception deep within ADVAPI32.DLL
271 * at random times on Windows 2000. Reported by Jeffrey Altman. 286 * at random times on Windows 2000. Reported by Jeffrey Altman.
272 * Only use it on NT. 287 * Only use it on NT.
@@ -321,16 +336,20 @@ int RAND_poll(void)
321 free(buf); 336 free(buf);
322 } 337 }
323#endif 338#endif
324#endif /* !OPENSSL_SYS_WINCE */
325 339
326 if (advapi) 340 if (advapi)
327 { 341 {
328 acquire = (CRYPTACQUIRECONTEXT) GetProcAddress(advapi, 342 /*
329 TEXT("CryptAcquireContextA")); 343 * If it's available, then it's available in both ANSI
344 * and UNICODE flavors even in Win9x, documentation says.
345 * We favor Unicode...
346 */
347 acquire = (CRYPTACQUIRECONTEXTW) GetProcAddress(advapi,
348 "CryptAcquireContextW");
330 gen = (CRYPTGENRANDOM) GetProcAddress(advapi, 349 gen = (CRYPTGENRANDOM) GetProcAddress(advapi,
331 TEXT("CryptGenRandom")); 350 "CryptGenRandom");
332 release = (CRYPTRELEASECONTEXT) GetProcAddress(advapi, 351 release = (CRYPTRELEASECONTEXT) GetProcAddress(advapi,
333 TEXT("CryptReleaseContext")); 352 "CryptReleaseContext");
334 } 353 }
335 354
336 if (acquire && gen && release) 355 if (acquire && gen && release)
@@ -367,26 +386,15 @@ int RAND_poll(void)
367 if (advapi) 386 if (advapi)
368 FreeLibrary(advapi); 387 FreeLibrary(advapi);
369 388
370 /* timer data */
371 readtimer();
372
373 /* memory usage statistics */
374 GlobalMemoryStatus(&m);
375 RAND_add(&m, sizeof(m), 1);
376
377 /* process ID */
378 w = GetCurrentProcessId();
379 RAND_add(&w, sizeof(w), 1);
380
381 if (user) 389 if (user)
382 { 390 {
383 GETCURSORINFO cursor; 391 GETCURSORINFO cursor;
384 GETFOREGROUNDWINDOW win; 392 GETFOREGROUNDWINDOW win;
385 GETQUEUESTATUS queue; 393 GETQUEUESTATUS queue;
386 394
387 win = (GETFOREGROUNDWINDOW) GetProcAddress(user, TEXT("GetForegroundWindow")); 395 win = (GETFOREGROUNDWINDOW) GetProcAddress(user, "GetForegroundWindow");
388 cursor = (GETCURSORINFO) GetProcAddress(user, TEXT("GetCursorInfo")); 396 cursor = (GETCURSORINFO) GetProcAddress(user, "GetCursorInfo");
389 queue = (GETQUEUESTATUS) GetProcAddress(user, TEXT("GetQueueStatus")); 397 queue = (GETQUEUESTATUS) GetProcAddress(user, "GetQueueStatus");
390 398
391 if (win) 399 if (win)
392 { 400 {
@@ -458,19 +466,19 @@ int RAND_poll(void)
458 MODULEENTRY32 m; 466 MODULEENTRY32 m;
459 467
460 snap = (CREATETOOLHELP32SNAPSHOT) 468 snap = (CREATETOOLHELP32SNAPSHOT)
461 GetProcAddress(kernel, TEXT("CreateToolhelp32Snapshot")); 469 GetProcAddress(kernel, "CreateToolhelp32Snapshot");
462 close_snap = (CLOSETOOLHELP32SNAPSHOT) 470 close_snap = (CLOSETOOLHELP32SNAPSHOT)
463 GetProcAddress(kernel, TEXT("CloseToolhelp32Snapshot")); 471 GetProcAddress(kernel, "CloseToolhelp32Snapshot");
464 heap_first = (HEAP32FIRST) GetProcAddress(kernel, TEXT("Heap32First")); 472 heap_first = (HEAP32FIRST) GetProcAddress(kernel, "Heap32First");
465 heap_next = (HEAP32NEXT) GetProcAddress(kernel, TEXT("Heap32Next")); 473 heap_next = (HEAP32NEXT) GetProcAddress(kernel, "Heap32Next");
466 heaplist_first = (HEAP32LIST) GetProcAddress(kernel, TEXT("Heap32ListFirst")); 474 heaplist_first = (HEAP32LIST) GetProcAddress(kernel, "Heap32ListFirst");
467 heaplist_next = (HEAP32LIST) GetProcAddress(kernel, TEXT("Heap32ListNext")); 475 heaplist_next = (HEAP32LIST) GetProcAddress(kernel, "Heap32ListNext");
468 process_first = (PROCESS32) GetProcAddress(kernel, TEXT("Process32First")); 476 process_first = (PROCESS32) GetProcAddress(kernel, "Process32First");
469 process_next = (PROCESS32) GetProcAddress(kernel, TEXT("Process32Next")); 477 process_next = (PROCESS32) GetProcAddress(kernel, "Process32Next");
470 thread_first = (THREAD32) GetProcAddress(kernel, TEXT("Thread32First")); 478 thread_first = (THREAD32) GetProcAddress(kernel, "Thread32First");
471 thread_next = (THREAD32) GetProcAddress(kernel, TEXT("Thread32Next")); 479 thread_next = (THREAD32) GetProcAddress(kernel, "Thread32Next");
472 module_first = (MODULE32) GetProcAddress(kernel, TEXT("Module32First")); 480 module_first = (MODULE32) GetProcAddress(kernel, "Module32First");
473 module_next = (MODULE32) GetProcAddress(kernel, TEXT("Module32Next")); 481 module_next = (MODULE32) GetProcAddress(kernel, "Module32Next");
474 482
475 if (snap && heap_first && heap_next && heaplist_first && 483 if (snap && heap_first && heap_next && heaplist_first &&
476 heaplist_next && process_first && process_next && 484 heaplist_next && process_first && process_next &&
@@ -546,6 +554,18 @@ int RAND_poll(void)
546 554
547 FreeLibrary(kernel); 555 FreeLibrary(kernel);
548 } 556 }
557#endif /* !OPENSSL_SYS_WINCE */
558
559 /* timer data */
560 readtimer();
561
562 /* memory usage statistics */
563 GlobalMemoryStatus(&m);
564 RAND_add(&m, sizeof(m), 1);
565
566 /* process ID */
567 w = GetCurrentProcessId();
568 RAND_add(&w, sizeof(w), 1);
549 569
550#if 0 570#if 0
551 printf("Exiting RAND_poll\n"); 571 printf("Exiting RAND_poll\n");
@@ -607,7 +627,7 @@ static void readtimer(void)
607 DWORD w; 627 DWORD w;
608 LARGE_INTEGER l; 628 LARGE_INTEGER l;
609 static int have_perfc = 1; 629 static int have_perfc = 1;
610#if defined(_MSC_VER) && !defined(OPENSSL_SYS_WINCE) 630#if defined(_MSC_VER) && defined(_M_X86)
611 static int have_tsc = 1; 631 static int have_tsc = 1;
612 DWORD cyclecount; 632 DWORD cyclecount;
613 633
@@ -660,7 +680,7 @@ static void readtimer(void)
660 680
661static void readscreen(void) 681static void readscreen(void)
662{ 682{
663#ifndef OPENSSL_SYS_WINCE 683#if !defined(OPENSSL_SYS_WINCE) && !defined(OPENSSL_SYS_WIN32_CYGWIN)
664 HDC hScrDC; /* screen DC */ 684 HDC hScrDC; /* screen DC */
665 HDC hMemDC; /* memory DC */ 685 HDC hMemDC; /* memory DC */
666 HBITMAP hBitmap; /* handle for our bitmap */ 686 HBITMAP hBitmap; /* handle for our bitmap */
diff --git a/src/lib/libssl/src/crypto/rand/randfile.c b/src/lib/libssl/src/crypto/rand/randfile.c
index f5d0843d13..c7fba496a8 100644
--- a/src/lib/libssl/src/crypto/rand/randfile.c
+++ b/src/lib/libssl/src/crypto/rand/randfile.c
@@ -166,6 +166,7 @@ int RAND_write_file(const char *file)
166 } 166 }
167 167
168#if defined(O_CREAT) && !defined(OPENSSL_SYS_WIN32) 168#if defined(O_CREAT) && !defined(OPENSSL_SYS_WIN32)
169 {
169 /* For some reason Win32 can't write to files created this way */ 170 /* For some reason Win32 can't write to files created this way */
170 171
171 /* chmod(..., 0600) is too late to protect the file, 172 /* chmod(..., 0600) is too late to protect the file,
@@ -173,6 +174,7 @@ int RAND_write_file(const char *file)
173 int fd = open(file, O_CREAT, 0600); 174 int fd = open(file, O_CREAT, 0600);
174 if (fd != -1) 175 if (fd != -1)
175 out = fdopen(fd, "wb"); 176 out = fdopen(fd, "wb");
177 }
176#endif 178#endif
177 if (out == NULL) 179 if (out == NULL)
178 out = fopen(file,"wb"); 180 out = fopen(file,"wb");
diff --git a/src/lib/libssl/src/crypto/rc2/Makefile b/src/lib/libssl/src/crypto/rc2/Makefile
new file mode 100644
index 0000000000..18edaca6c6
--- /dev/null
+++ b/src/lib/libssl/src/crypto/rc2/Makefile
@@ -0,0 +1,92 @@
1#
2# SSLeay/crypto/rc2/Makefile
3#
4
5DIR= rc2
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=rc2test.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=rc2_ecb.c rc2_skey.c rc2_cbc.c rc2cfb64.c rc2ofb64.c
26LIBOBJ=rc2_ecb.o rc2_skey.o rc2_cbc.o rc2cfb64.o rc2ofb64.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= rc2.h
31HEADER= rc2_locl.h $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80rc2_cbc.o: ../../include/openssl/opensslconf.h ../../include/openssl/rc2.h
81rc2_cbc.o: rc2_cbc.c rc2_locl.h
82rc2_ecb.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
83rc2_ecb.o: ../../include/openssl/rc2.h rc2_ecb.c rc2_locl.h
84rc2_skey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
85rc2_skey.o: ../../include/openssl/opensslconf.h
86rc2_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/rc2.h
87rc2_skey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
88rc2_skey.o: ../../include/openssl/symhacks.h rc2_locl.h rc2_skey.c
89rc2cfb64.o: ../../include/openssl/opensslconf.h ../../include/openssl/rc2.h
90rc2cfb64.o: rc2_locl.h rc2cfb64.c
91rc2ofb64.o: ../../include/openssl/opensslconf.h ../../include/openssl/rc2.h
92rc2ofb64.o: rc2_locl.h rc2ofb64.c
diff --git a/src/lib/libssl/src/crypto/rc2/rc2.h b/src/lib/libssl/src/crypto/rc2/rc2.h
index 7816b454dc..71788158d8 100644
--- a/src/lib/libssl/src/crypto/rc2/rc2.h
+++ b/src/lib/libssl/src/crypto/rc2/rc2.h
@@ -79,7 +79,10 @@ typedef struct rc2_key_st
79 RC2_INT data[64]; 79 RC2_INT data[64];
80 } RC2_KEY; 80 } RC2_KEY;
81 81
82 82#ifdef OPENSSL_FIPS
83void private_RC2_set_key(RC2_KEY *key, int len, const unsigned char *data,
84 int bits);
85#endif
83void RC2_set_key(RC2_KEY *key, int len, const unsigned char *data,int bits); 86void RC2_set_key(RC2_KEY *key, int len, const unsigned char *data,int bits);
84void RC2_ecb_encrypt(const unsigned char *in,unsigned char *out,RC2_KEY *key, 87void RC2_ecb_encrypt(const unsigned char *in,unsigned char *out,RC2_KEY *key,
85 int enc); 88 int enc);
diff --git a/src/lib/libssl/src/crypto/rc2/rc2_skey.c b/src/lib/libssl/src/crypto/rc2/rc2_skey.c
index cab3080c73..22f372f85c 100644
--- a/src/lib/libssl/src/crypto/rc2/rc2_skey.c
+++ b/src/lib/libssl/src/crypto/rc2/rc2_skey.c
@@ -57,6 +57,7 @@
57 */ 57 */
58 58
59#include <openssl/rc2.h> 59#include <openssl/rc2.h>
60#include <openssl/crypto.h>
60#include "rc2_locl.h" 61#include "rc2_locl.h"
61 62
62static unsigned char key_table[256]={ 63static unsigned char key_table[256]={
@@ -90,7 +91,19 @@ static unsigned char key_table[256]={
90 * BSAFE uses the 'retarded' version. What I previously shipped is 91 * BSAFE uses the 'retarded' version. What I previously shipped is
91 * the same as specifying 1024 for the 'bits' parameter. Bsafe uses 92 * the same as specifying 1024 for the 'bits' parameter. Bsafe uses
92 * a version where the bits parameter is the same as len*8 */ 93 * a version where the bits parameter is the same as len*8 */
94
95#ifdef OPENSSL_FIPS
96void RC2_set_key(RC2_KEY *key, int len, const unsigned char *data, int bits)
97 {
98 if (FIPS_mode())
99 FIPS_BAD_ABORT(RC2)
100 private_RC2_set_key(key, len, data, bits);
101 }
102void private_RC2_set_key(RC2_KEY *key, int len, const unsigned char *data,
103 int bits)
104#else
93void RC2_set_key(RC2_KEY *key, int len, const unsigned char *data, int bits) 105void RC2_set_key(RC2_KEY *key, int len, const unsigned char *data, int bits)
106#endif
94 { 107 {
95 int i,j; 108 int i,j;
96 unsigned char *k; 109 unsigned char *k;
diff --git a/src/lib/libssl/src/crypto/rc4/Makefile b/src/lib/libssl/src/crypto/rc4/Makefile
new file mode 100644
index 0000000000..64e06924f4
--- /dev/null
+++ b/src/lib/libssl/src/crypto/rc4/Makefile
@@ -0,0 +1,123 @@
1#
2# SSLeay/crypto/rc4/Makefile
3#
4
5DIR= rc4
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES=
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP=/usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18
19RC4_ENC=rc4_enc.o
20# or use
21#RC4_ENC=asm/rx86-elf.o
22#RC4_ENC=asm/rx86-out.o
23#RC4_ENC=asm/rx86-sol.o
24#RC4_ENC=asm/rx86bdsi.o
25
26CFLAGS= $(INCLUDES) $(CFLAG)
27ASFLAGS= $(INCLUDES) $(ASFLAG)
28
29GENERAL=Makefile
30TEST=rc4test.c
31APPS=
32
33LIB=$(TOP)/libcrypto.a
34LIBSRC=rc4_skey.c rc4_enc.c
35LIBOBJ=rc4_skey.o $(RC4_ENC)
36
37SRC= $(LIBSRC)
38
39EXHEADER= rc4.h
40HEADER= $(EXHEADER) rc4_locl.h
41
42ALL= $(GENERAL) $(SRC) $(HEADER)
43
44top:
45 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
46
47all: lib
48
49lib: $(LIBOBJ)
50 $(AR) $(LIB) $(LIBOBJ)
51 $(RANLIB) $(LIB) || echo Never mind.
52 @touch lib
53
54# elf
55asm/rx86-elf.s: asm/rc4-586.pl ../perlasm/x86asm.pl
56 (cd asm; $(PERL) rc4-586.pl elf $(CFLAGS) > rx86-elf.s)
57
58# a.out
59asm/rx86-out.o: asm/rx86unix.cpp
60 $(CPP) -DOUT asm/rx86unix.cpp | as -o asm/rx86-out.o
61
62# bsdi
63asm/rx86bsdi.o: asm/rx86unix.cpp
64 $(CPP) -DBSDI asm/rx86unix.cpp | sed 's/ :/:/' | as -o asm/rx86bsdi.o
65
66asm/rx86unix.cpp: asm/rc4-586.pl ../perlasm/x86asm.pl
67 (cd asm; $(PERL) rc4-586.pl cpp >rx86unix.cpp)
68
69asm/rc4-amd64.s: asm/rc4-amd64.pl; $(PERL) asm/rc4-amd64.pl $@
70
71asm/rc4-ia64.s: asm/rc4-ia64.S
72 $(CC) $(CFLAGS) -E asm/rc4-ia64.S > $@
73
74files:
75 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
76
77links:
78 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
79 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
80 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
81
82install:
83 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
84 do \
85 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
86 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
87 done;
88
89tags:
90 ctags $(SRC)
91
92tests:
93
94lint:
95 lint -DLINT $(INCLUDES) $(SRC)>fluff
96
97depend:
98 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
99
100dclean:
101 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
102 mv -f Makefile.new $(MAKEFILE)
103
104clean:
105 rm -f asm/rx86unix.cpp asm/*-elf.* *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff asm/*.o
106
107# DO NOT DELETE THIS LINE -- make depend depends on it.
108
109rc4_enc.o: ../../e_os.h ../../include/openssl/bio.h
110rc4_enc.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
111rc4_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
112rc4_enc.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
113rc4_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/rc4.h
114rc4_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
115rc4_enc.o: ../../include/openssl/symhacks.h ../cryptlib.h rc4_enc.c rc4_locl.h
116rc4_skey.o: ../../e_os.h ../../include/openssl/bio.h
117rc4_skey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
118rc4_skey.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
119rc4_skey.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
120rc4_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/rc4.h
121rc4_skey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
122rc4_skey.o: ../../include/openssl/symhacks.h ../cryptlib.h rc4_locl.h
123rc4_skey.o: rc4_skey.c
diff --git a/src/lib/libssl/src/crypto/rc4/asm/rc4-586.pl b/src/lib/libssl/src/crypto/rc4/asm/rc4-586.pl
index 7ef889e5a1..d6e98f0811 100644
--- a/src/lib/libssl/src/crypto/rc4/asm/rc4-586.pl
+++ b/src/lib/libssl/src/crypto/rc4/asm/rc4-586.pl
@@ -1,16 +1,37 @@
1#!/usr/local/bin/perl 1#!/usr/local/bin/perl
2 2
3# define for pentium pro friendly version 3# At some point it became apparent that the original SSLeay RC4
4# assembler implementation performs suboptimaly on latest IA-32
5# microarchitectures. After re-tuning performance has changed as
6# following:
7#
8# Pentium +0%
9# Pentium III +17%
10# AMD +52%(*)
11# P4 +180%(**)
12#
13# (*) This number is actually a trade-off:-) It's possible to
14# achieve +72%, but at the cost of -48% off PIII performance.
15# In other words code performing further 13% faster on AMD
16# would perform almost 2 times slower on Intel PIII...
17# For reference! This code delivers ~80% of rc4-amd64.pl
18# performance on the same Opteron machine.
19# (**) This number requires compressed key schedule set up by
20# RC4_set_key and therefore doesn't apply to 0.9.7 [option for
21# compressed key schedule is implemented in 0.9.8 and later,
22# see commentary section in rc4_skey.c for further details].
23#
24# <appro@fy.chalmers.se>
4 25
5push(@INC,"perlasm","../../perlasm"); 26push(@INC,"perlasm","../../perlasm");
6require "x86asm.pl"; 27require "x86asm.pl";
7 28
8&asm_init($ARGV[0],"rc4-586.pl"); 29&asm_init($ARGV[0],"rc4-586.pl");
9 30
10$tx="eax"; 31$x="eax";
11$ty="ebx"; 32$y="ebx";
12$x="ecx"; 33$tx="ecx";
13$y="edx"; 34$ty="edx";
14$in="esi"; 35$in="esi";
15$out="edi"; 36$out="edi";
16$d="ebp"; 37$d="ebp";
@@ -31,7 +52,7 @@ sub RC4_loop
31 { 52 {
32 &mov($ty, &swtmp(2)); 53 &mov($ty, &swtmp(2));
33 &cmp($ty, $in); 54 &cmp($ty, $in);
34 &jle(&label("finished")); 55 &jbe(&label("finished"));
35 &inc($in); 56 &inc($in);
36 } 57 }
37 else 58 else
@@ -39,27 +60,23 @@ sub RC4_loop
39 &add($ty, 8); 60 &add($ty, 8);
40 &inc($in); 61 &inc($in);
41 &cmp($ty, $in); 62 &cmp($ty, $in);
42 &jl(&label("finished")); 63 &jb(&label("finished"));
43 &mov(&swtmp(2), $ty); 64 &mov(&swtmp(2), $ty);
44 } 65 }
45 } 66 }
46 # Moved out 67 # Moved out
47 # &mov( $tx, &DWP(0,$d,$x,4)) if $p < 0; 68 # &mov( $tx, &DWP(0,$d,$x,4)) if $p < 0;
48 69
49 &add( $y, $tx); 70 &add( &LB($y), &LB($tx));
50 &and( $y, 0xff);
51 &inc( $x); # NEXT ROUND
52 &mov( $ty, &DWP(0,$d,$y,4)); 71 &mov( $ty, &DWP(0,$d,$y,4));
53 # XXX 72 # XXX
54 &mov( &DWP(-4,$d,$x,4),$ty); # AGI 73 &mov( &DWP(0,$d,$x,4),$ty);
55 &add( $ty, $tx); 74 &add( $ty, $tx);
56 &and( $x, 0xff); # NEXT ROUND
57 &and( $ty, 0xff);
58 &mov( &DWP(0,$d,$y,4),$tx); 75 &mov( &DWP(0,$d,$y,4),$tx);
59 &nop(); 76 &and( $ty, 0xff);
60 &mov( $ty, &DWP(0,$d,$ty,4)); 77 &inc( &LB($x)); # NEXT ROUND
61 &mov( $tx, &DWP(0,$d,$x,4)) if $p < 1; # NEXT ROUND 78 &mov( $tx, &DWP(0,$d,$x,4)) if $p < 1; # NEXT ROUND
62 # XXX 79 &mov( $ty, &DWP(0,$d,$ty,4));
63 80
64 if (!$char) 81 if (!$char)
65 { 82 {
@@ -88,35 +105,47 @@ sub RC4
88 105
89 &function_begin_B($name,""); 106 &function_begin_B($name,"");
90 107
108 &mov($ty,&wparam(1)); # len
109 &cmp($ty,0);
110 &jne(&label("proceed"));
111 &ret();
112 &set_label("proceed");
113
91 &comment(""); 114 &comment("");
92 115
93 &push("ebp"); 116 &push("ebp");
94 &push("ebx"); 117 &push("ebx");
95 &mov( $d, &wparam(0)); # key
96 &mov( $ty, &wparam(1)); # num
97 &push("esi"); 118 &push("esi");
98 &push("edi"); 119 &xor( $x, $x); # avoid partial register stalls
120 &push("edi");
121 &xor( $y, $y); # avoid partial register stalls
122 &mov( $d, &wparam(0)); # key
123 &mov( $in, &wparam(2));
99 124
100 &mov( $x, &DWP(0,$d,"",1)); 125 &movb( &LB($x), &BP(0,$d,"",1));
101 &mov( $y, &DWP(4,$d,"",1)); 126 &movb( &LB($y), &BP(4,$d,"",1));
102 127
103 &mov( $in, &wparam(2)); 128 &mov( $out, &wparam(3));
104 &inc( $x); 129 &inc( &LB($x));
105 130
106 &stack_push(3); # 3 temp variables 131 &stack_push(3); # 3 temp variables
107 &add( $d, 8); 132 &add( $d, 8);
108 &and( $x, 0xff); 133
134 # detect compressed schedule, see commentary section in rc4_skey.c...
135 # in 0.9.7 context ~50 bytes below RC4_CHAR label remain redundant,
136 # as compressed key schedule is set up in 0.9.8 and later.
137 &cmp(&DWP(256,$d),-1);
138 &je(&label("RC4_CHAR"));
109 139
110 &lea( $ty, &DWP(-8,$ty,$in)); 140 &lea( $ty, &DWP(-8,$ty,$in));
111 141
112 # check for 0 length input 142 # check for 0 length input
113 143
114 &mov( $out, &wparam(3));
115 &mov( &swtmp(2), $ty); # this is now address to exit at 144 &mov( &swtmp(2), $ty); # this is now address to exit at
116 &mov( $tx, &DWP(0,$d,$x,4)); 145 &mov( $tx, &DWP(0,$d,$x,4));
117 146
118 &cmp( $ty, $in); 147 &cmp( $ty, $in);
119 &jl( &label("end")); # less than 8 bytes 148 &jb( &label("end")); # less than 8 bytes
120 149
121 &set_label("start"); 150 &set_label("start");
122 151
@@ -148,7 +177,7 @@ sub RC4
148 &mov( &DWP(-4,$out,"",0), $tx); 177 &mov( &DWP(-4,$out,"",0), $tx);
149 &mov( $tx, &DWP(0,$d,$x,4)); 178 &mov( $tx, &DWP(0,$d,$x,4));
150 &cmp($in, $ty); 179 &cmp($in, $ty);
151 &jle(&label("start")); 180 &jbe(&label("start"));
152 181
153 &set_label("end"); 182 &set_label("end");
154 183
@@ -162,10 +191,37 @@ sub RC4
162 &RC4_loop(5,0,1); 191 &RC4_loop(5,0,1);
163 &RC4_loop(6,1,1); 192 &RC4_loop(6,1,1);
164 193
194 &jmp(&label("finished"));
195
196 &align(16);
197 # this is essentially Intel P4 specific codepath, see rc4_skey.c,
198 # and is engaged in 0.9.8 and later context...
199 &set_label("RC4_CHAR");
200
201 &lea ($ty,&DWP(0,$in,$ty));
202 &mov (&swtmp(2),$ty);
203
204 # strangely enough unrolled loop performs over 20% slower...
205 &set_label("RC4_CHAR_loop");
206 &movz ($tx,&BP(0,$d,$x));
207 &add (&LB($y),&LB($tx));
208 &movz ($ty,&BP(0,$d,$y));
209 &movb (&BP(0,$d,$y),&LB($tx));
210 &movb (&BP(0,$d,$x),&LB($ty));
211 &add (&LB($ty),&LB($tx));
212 &movz ($ty,&BP(0,$d,$ty));
213 &xorb (&LB($ty),&BP(0,$in));
214 &movb (&BP(0,$out),&LB($ty));
215 &inc (&LB($x));
216 &inc ($in);
217 &inc ($out);
218 &cmp ($in,&swtmp(2));
219 &jb (&label("RC4_CHAR_loop"));
220
165 &set_label("finished"); 221 &set_label("finished");
166 &dec( $x); 222 &dec( $x);
167 &stack_pop(3); 223 &stack_pop(3);
168 &mov( &DWP(-4,$d,"",0),$y); 224 &movb( &BP(-4,$d,"",0),&LB($y));
169 &movb( &BP(-8,$d,"",0),&LB($x)); 225 &movb( &BP(-8,$d,"",0),&LB($x));
170 226
171 &function_end($name); 227 &function_end($name);
diff --git a/src/lib/libssl/src/crypto/rc4/asm/rc4-ia64.S b/src/lib/libssl/src/crypto/rc4/asm/rc4-ia64.S
new file mode 100644
index 0000000000..b517d2e88f
--- /dev/null
+++ b/src/lib/libssl/src/crypto/rc4/asm/rc4-ia64.S
@@ -0,0 +1,157 @@
1// ====================================================================
2// Written by Andy Polyakov <appro@fy.chalmers.se> for the OpenSSL
3// project.
4//
5// Rights for redistribution and usage in source and binary forms are
6// granted according to the OpenSSL license. Warranty of any kind is
7// disclaimed.
8// ====================================================================
9
10.ident "rc4-ia64.S, Version 1.1"
11.ident "IA-64 ISA artwork by Andy Polyakov <appro@fy.chalmers.se>"
12
13// What's wrong with compiler generated code? Because of the nature of
14// C language, compiler doesn't [dare to] reorder load and stores. But
15// being memory-bound, RC4 should benefit from reorder [on in-order-
16// execution core such as IA-64]. But what can we reorder? At the very
17// least we can safely reorder references to key schedule in respect
18// to input and output streams. Secondly, from the first [close] glance
19// it appeared that it's possible to pull up some references to
20// elements of the key schedule itself. Original rationale ["prior
21// loads are not safe only for "degenerated" key schedule, when some
22// elements equal to the same value"] was kind of sloppy. I should have
23// formulated as it really was: if we assume that pulling up reference
24// to key[x+1] is not safe, then it would mean that key schedule would
25// "degenerate," which is never the case. The problem is that this
26// holds true in respect to references to key[x], but not to key[y].
27// Legitimate "collisions" do occur within every 256^2 bytes window.
28// Fortunately there're enough free instruction slots to keep prior
29// reference to key[x+1], detect "collision" and compensate for it.
30// All this without sacrificing a single clock cycle:-)
31// Furthermore. In order to compress loop body to the minimum, I chose
32// to deploy deposit instruction, which substitutes for the whole
33// key->data+((x&255)<<log2(sizeof(key->data[0]))). This unfortunately
34// requires key->data to be aligned at sizeof(key->data) boundary.
35// This is why you'll find "RC4_INT pad[512-256-2];" addenum to RC4_KEY
36// and "d=(RC4_INT *)(((size_t)(d+255))&~(sizeof(key->data)-1));" in
37// rc4_skey.c [and rc4_enc.c, where it's retained for debugging
38// purposes]. Throughput is ~210MBps on 900MHz CPU, which is is >3x
39// faster than gcc generated code and +30% - if compared to HP-UX C.
40// Unrolling loop below should give >30% on top of that...
41
42.text
43.explicit
44
45#if defined(_HPUX_SOURCE) && !defined(_LP64)
46# define ADDP addp4
47#else
48# define ADDP add
49#endif
50
51#define SZ 4 // this is set to sizeof(RC4_INT)
52// SZ==4 seems to be optimal. At least SZ==8 is not any faster, not for
53// assembler implementation, while SZ==1 code is ~30% slower.
54#if SZ==1 // RC4_INT is unsigned char
55# define LDKEY ld1
56# define STKEY st1
57# define OFF 0
58#elif SZ==4 // RC4_INT is unsigned int
59# define LDKEY ld4
60# define STKEY st4
61# define OFF 2
62#elif SZ==8 // RC4_INT is unsigned long
63# define LDKEY ld8
64# define STKEY st8
65# define OFF 3
66#endif
67
68out=r8; // [expanded] output pointer
69inp=r9; // [expanded] output pointer
70prsave=r10;
71key=r28; // [expanded] pointer to RC4_KEY
72ksch=r29; // (key->data+255)[&~(sizeof(key->data)-1)]
73xx=r30;
74yy=r31;
75
76// void RC4(RC4_KEY *key,size_t len,const void *inp,void *out);
77.global RC4#
78.proc RC4#
79.align 32
80.skip 16
81RC4:
82 .prologue
83 .fframe 0
84 .save ar.pfs,r2
85 .save ar.lc,r3
86 .save pr,prsave
87{ .mii; alloc r2=ar.pfs,4,12,0,16
88 mov prsave=pr
89 ADDP key=0,in0 };;
90{ .mib; cmp.eq p6,p0=0,in1 // len==0?
91 mov r3=ar.lc
92(p6) br.ret.spnt.many b0 };; // emergency exit
93
94 .body
95 .rotr dat[4],key_x[4],tx[2],rnd[2],key_y[2],ty[1];
96
97{ .mib; LDKEY xx=[key],SZ // load key->x
98 add in1=-1,in1 // adjust len for loop counter
99 nop.b 0 }
100{ .mib; ADDP inp=0,in2
101 ADDP out=0,in3
102 brp.loop.imp .Ltop,.Lexit-16 };;
103{ .mmi; LDKEY yy=[key] // load key->y
104 add ksch=(255+1)*SZ,key // as ksch will be used with
105 // deposit instruction only,
106 // I don't have to &~255...
107 mov ar.lc=in1 }
108{ .mmi; mov key_y[1]=r0 // guarantee inequality
109 // in first iteration
110 add xx=1,xx
111 mov pr.rot=1<<16 };;
112{ .mii; nop.m 0
113 dep key_x[1]=xx,ksch,OFF,8
114 mov ar.ec=3 };; // note that epilogue counter
115 // is off by 1. I compensate
116 // for this at exit...
117.Ltop:
118// The loop is scheduled for 3*(n+2) spin-rate on Itanium 2, which
119// theoretically gives asymptotic performance of clock frequency
120// divided by 3 bytes per seconds, or 500MBps on 1.5GHz CPU. Measured
121// performance however is distinctly lower than 1/4:-( The culplrit
122// seems to be *(out++)=dat, which inadvertently splits the bundle,
123// even though there is M-port available... Unrolling is due...
124// Unrolled loop should collect output with variable shift instruction
125// in order to avoid starvation for integer shifter... It should be
126// possible to get pretty close to theoretical peak...
127{ .mmi; (p16) LDKEY tx[0]=[key_x[1]] // tx=key[xx]
128 (p17) LDKEY ty[0]=[key_y[1]] // ty=key[yy]
129 (p18) dep rnd[1]=rnd[1],ksch,OFF,8} // &key[(tx+ty)&255]
130{ .mmi; (p19) st1 [out]=dat[3],1 // *(out++)=dat
131 (p16) add xx=1,xx // x++
132 (p16) cmp.ne.unc p20,p21=key_x[1],key_y[1] };;
133{ .mmi; (p18) LDKEY rnd[1]=[rnd[1]] // rnd=key[(tx+ty)&255]
134 (p16) ld1 dat[0]=[inp],1 // dat=*(inp++)
135 (p16) dep key_x[0]=xx,ksch,OFF,8 } // &key[xx&255]
136.pred.rel "mutex",p20,p21
137{ .mmi; (p21) add yy=yy,tx[1] // (p16)
138 (p20) add yy=yy,tx[0] // (p16) y+=tx
139 (p21) mov tx[0]=tx[1] };; // (p16)
140{ .mmi; (p17) STKEY [key_y[1]]=tx[1] // key[yy]=tx
141 (p17) STKEY [key_x[2]]=ty[0] // key[xx]=ty
142 (p16) dep key_y[0]=yy,ksch,OFF,8 } // &key[yy&255]
143{ .mmb; (p17) add rnd[0]=tx[1],ty[0] // tx+=ty
144 (p18) xor dat[2]=dat[2],rnd[1] // dat^=rnd
145 br.ctop.sptk .Ltop };;
146.Lexit:
147{ .mib; STKEY [key]=yy,-SZ // save key->y
148 mov pr=prsave,0x1ffff
149 nop.b 0 }
150{ .mib; st1 [out]=dat[3],1 // compensate for truncated
151 // epilogue counter
152 add xx=-1,xx
153 nop.b 0 };;
154{ .mib; STKEY [key]=xx // save key->x
155 mov ar.lc=r3
156 br.ret.sptk.many b0 };;
157.endp RC4#
diff --git a/src/lib/libssl/src/crypto/rc4/rc4.h b/src/lib/libssl/src/crypto/rc4/rc4.h
index 8722091f2e..dd90d9fde0 100644
--- a/src/lib/libssl/src/crypto/rc4/rc4.h
+++ b/src/lib/libssl/src/crypto/rc4/rc4.h
@@ -73,10 +73,17 @@ typedef struct rc4_key_st
73 { 73 {
74 RC4_INT x,y; 74 RC4_INT x,y;
75 RC4_INT data[256]; 75 RC4_INT data[256];
76#if defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
77 /* see crypto/rc4/asm/rc4-ia64.S for further details... */
78 RC4_INT pad[512-256-2];
79#endif
76 } RC4_KEY; 80 } RC4_KEY;
77 81
78 82
79const char *RC4_options(void); 83const char *RC4_options(void);
84#ifdef OPENSSL_FIPS
85void private_RC4_set_key(RC4_KEY *key, int len, const unsigned char *data);
86#endif
80void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data); 87void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data);
81void RC4(RC4_KEY *key, unsigned long len, const unsigned char *indata, 88void RC4(RC4_KEY *key, unsigned long len, const unsigned char *indata,
82 unsigned char *outdata); 89 unsigned char *outdata);
diff --git a/src/lib/libssl/src/crypto/rc4/rc4_enc.c b/src/lib/libssl/src/crypto/rc4/rc4_enc.c
index d5f18a3a70..81a97ea3b7 100644
--- a/src/lib/libssl/src/crypto/rc4/rc4_enc.c
+++ b/src/lib/libssl/src/crypto/rc4/rc4_enc.c
@@ -77,6 +77,10 @@ void RC4(RC4_KEY *key, unsigned long len, const unsigned char *indata,
77 x=key->x; 77 x=key->x;
78 y=key->y; 78 y=key->y;
79 d=key->data; 79 d=key->data;
80#if defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
81 /* see crypto/rc4/asm/rc4-ia64.S for further details... */
82 d=(RC4_INT *)(((size_t)(d+255))&~(sizeof(key->data)-1));
83#endif
80 84
81#if defined(RC4_CHUNK) 85#if defined(RC4_CHUNK)
82 /* 86 /*
diff --git a/src/lib/libssl/src/crypto/rc4/rc4_locl.h b/src/lib/libssl/src/crypto/rc4/rc4_locl.h
index 3bb80b6ce9..c712e1632e 100644
--- a/src/lib/libssl/src/crypto/rc4/rc4_locl.h
+++ b/src/lib/libssl/src/crypto/rc4/rc4_locl.h
@@ -1,4 +1,5 @@
1#ifndef HEADER_RC4_LOCL_H 1#ifndef HEADER_RC4_LOCL_H
2#define HEADER_RC4_LOCL_H 2#define HEADER_RC4_LOCL_H
3#include <openssl/opensslconf.h> 3#include <openssl/opensslconf.h>
4#include <cryptlib.h>
4#endif 5#endif
diff --git a/src/lib/libssl/src/crypto/rc4/rc4_skey.c b/src/lib/libssl/src/crypto/rc4/rc4_skey.c
index bb10c1ebe2..07234f061a 100644
--- a/src/lib/libssl/src/crypto/rc4/rc4_skey.c
+++ b/src/lib/libssl/src/crypto/rc4/rc4_skey.c
@@ -57,6 +57,7 @@
57 */ 57 */
58 58
59#include <openssl/rc4.h> 59#include <openssl/rc4.h>
60#include <openssl/crypto.h>
60#include "rc4_locl.h" 61#include "rc4_locl.h"
61#include <openssl/opensslv.h> 62#include <openssl/opensslv.h>
62 63
@@ -85,7 +86,7 @@ const char *RC4_options(void)
85 * Date: Wed, 14 Sep 1994 06:35:31 GMT 86 * Date: Wed, 14 Sep 1994 06:35:31 GMT
86 */ 87 */
87 88
88void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data) 89FIPS_NON_FIPS_VCIPHER_Init(RC4)
89 { 90 {
90 register RC4_INT tmp; 91 register RC4_INT tmp;
91 register int id1,id2; 92 register int id1,id2;
@@ -93,6 +94,11 @@ void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data)
93 unsigned int i; 94 unsigned int i;
94 95
95 d= &(key->data[0]); 96 d= &(key->data[0]);
97#if defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
98 /* see crypto/rc4/asm/rc4-ia64.S for further details... */
99 d=(RC4_INT *)(((size_t)(d+255))&~(sizeof(key->data)-1));
100#endif
101
96 for (i=0; i<256; i++) 102 for (i=0; i<256; i++)
97 d[i]=i; 103 d[i]=i;
98 key->x = 0; 104 key->x = 0;
diff --git a/src/lib/libssl/src/crypto/rc5/Makefile b/src/lib/libssl/src/crypto/rc5/Makefile
new file mode 100644
index 0000000000..3a8d309b29
--- /dev/null
+++ b/src/lib/libssl/src/crypto/rc5/Makefile
@@ -0,0 +1,110 @@
1#
2# SSLeay/crypto/rc5/Makefile
3#
4
5DIR= rc5
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES=
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP=/usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18
19RC5_ENC= rc5_enc.o
20# or use
21#DES_ENC= r586-elf.o
22
23CFLAGS= $(INCLUDES) $(CFLAG)
24ASFLAGS= $(INCLUDES) $(ASFLAG)
25
26GENERAL=Makefile
27TEST=rc5test.c
28APPS=
29
30LIB=$(TOP)/libcrypto.a
31LIBSRC=rc5_skey.c rc5_ecb.c rc5_enc.c rc5cfb64.c rc5ofb64.c
32LIBOBJ=rc5_skey.o rc5_ecb.o $(RC5_ENC) rc5cfb64.o rc5ofb64.o
33
34SRC= $(LIBSRC)
35
36EXHEADER= rc5.h
37HEADER= rc5_locl.h $(EXHEADER)
38
39ALL= $(GENERAL) $(SRC) $(HEADER)
40
41top:
42 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
43
44all: lib
45
46lib: $(LIBOBJ)
47 $(AR) $(LIB) $(LIBOBJ)
48 $(RANLIB) $(LIB) || echo Never mind.
49 @touch lib
50
51# elf
52asm/r586-elf.s: asm/rc5-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
53 (cd asm; $(PERL) rc5-586.pl elf $(CFLAGS) > r586-elf.s)
54
55# a.out
56asm/r586-out.o: asm/r586unix.cpp
57 $(CPP) -DOUT asm/r586unix.cpp | as -o asm/r586-out.o
58
59# bsdi
60asm/r586bsdi.o: asm/r586unix.cpp
61 $(CPP) -DBSDI asm/r586unix.cpp | sed 's/ :/:/' | as -o asm/r586bsdi.o
62
63asm/r586unix.cpp: asm/rc5-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
64 (cd asm; $(PERL) rc5-586.pl cpp >r586unix.cpp)
65
66files:
67 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
68
69links:
70 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
71 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
72 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
73
74install:
75 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
76 do \
77 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
78 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
79 done;
80
81tags:
82 ctags $(SRC)
83
84tests:
85
86lint:
87 lint -DLINT $(INCLUDES) $(SRC)>fluff
88
89depend:
90 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
91
92dclean:
93 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
94 mv -f Makefile.new $(MAKEFILE)
95
96clean:
97 rm -f asm/r586unix.cpp asm/*-elf.* *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
98
99# DO NOT DELETE THIS LINE -- make depend depends on it.
100
101rc5_ecb.o: ../../include/openssl/opensslv.h ../../include/openssl/rc5.h
102rc5_ecb.o: rc5_ecb.c rc5_locl.h
103rc5_enc.o: ../../include/openssl/rc5.h rc5_enc.c rc5_locl.h
104rc5_skey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
105rc5_skey.o: ../../include/openssl/opensslconf.h
106rc5_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/rc5.h
107rc5_skey.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
108rc5_skey.o: ../../include/openssl/symhacks.h rc5_locl.h rc5_skey.c
109rc5cfb64.o: ../../include/openssl/rc5.h rc5_locl.h rc5cfb64.c
110rc5ofb64.o: ../../include/openssl/rc5.h rc5_locl.h rc5ofb64.c
diff --git a/src/lib/libssl/src/crypto/rc5/rc5.h b/src/lib/libssl/src/crypto/rc5/rc5.h
index 4adfd2db5a..aa3f26920b 100644
--- a/src/lib/libssl/src/crypto/rc5/rc5.h
+++ b/src/lib/libssl/src/crypto/rc5/rc5.h
@@ -92,7 +92,10 @@ typedef struct rc5_key_st
92 RC5_32_INT data[2*(RC5_16_ROUNDS+1)]; 92 RC5_32_INT data[2*(RC5_16_ROUNDS+1)];
93 } RC5_32_KEY; 93 } RC5_32_KEY;
94 94
95 95#ifdef OPENSSL_FIPS
96void private_RC5_32_set_key(RC5_32_KEY *key, int len, const unsigned char *data,
97 int rounds);
98#endif
96void RC5_32_set_key(RC5_32_KEY *key, int len, const unsigned char *data, 99void RC5_32_set_key(RC5_32_KEY *key, int len, const unsigned char *data,
97 int rounds); 100 int rounds);
98void RC5_32_ecb_encrypt(const unsigned char *in,unsigned char *out,RC5_32_KEY *key, 101void RC5_32_ecb_encrypt(const unsigned char *in,unsigned char *out,RC5_32_KEY *key,
diff --git a/src/lib/libssl/src/crypto/ripemd/Makefile b/src/lib/libssl/src/crypto/ripemd/Makefile
new file mode 100644
index 0000000000..dc086e3434
--- /dev/null
+++ b/src/lib/libssl/src/crypto/ripemd/Makefile
@@ -0,0 +1,111 @@
1#
2# SSLeay/crypto/ripemd/Makefile
3#
4
5DIR= ripemd
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES=
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP=/usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18
19RIP_ASM_OBJ=
20
21CFLAGS= $(INCLUDES) $(CFLAG)
22ASFLAGS= $(INCLUDES) $(ASFLAG)
23
24GENERAL=Makefile
25TEST=rmdtest.c
26APPS=
27
28LIB=$(TOP)/libcrypto.a
29LIBSRC=rmd_dgst.c rmd_one.c
30LIBOBJ=rmd_dgst.o rmd_one.o $(RMD160_ASM_OBJ)
31
32SRC= $(LIBSRC)
33
34EXHEADER= ripemd.h
35HEADER= rmd_locl.h rmdconst.h $(EXHEADER)
36
37ALL= $(GENERAL) $(SRC) $(HEADER)
38
39top:
40 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
41
42all: lib
43
44lib: $(LIBOBJ)
45 $(AR) $(LIB) $(LIBOBJ)
46 $(RANLIB) $(LIB) || echo Never mind.
47 @touch lib
48
49# elf
50asm/rm86-elf.s: asm/rmd-586.pl ../perlasm/x86asm.pl
51 (cd asm; $(PERL) rmd-586.pl elf $(CFLAGS) > rm86-elf.s)
52
53# a.out
54asm/rm86-out.o: asm/rm86unix.cpp
55 $(CPP) -DOUT asm/rm86unix.cpp | as -o asm/rm86-out.o
56
57# bsdi
58asm/rm86bsdi.o: asm/rm86unix.cpp
59 $(CPP) -DBSDI asm/rm86unix.cpp | sed 's/ :/:/' | as -o asm/rm86bsdi.o
60
61asm/rm86unix.cpp: asm/rmd-586.pl ../perlasm/x86asm.pl
62 (cd asm; $(PERL) rmd-586.pl cpp >rm86unix.cpp)
63
64files:
65 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
66
67links:
68 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
69 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
70 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
71
72install:
73 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
74 do \
75 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
76 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
77 done;
78
79tags:
80 ctags $(SRC)
81
82tests:
83
84lint:
85 lint -DLINT $(INCLUDES) $(SRC)>fluff
86
87depend:
88 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
89
90dclean:
91 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
92 mv -f Makefile.new $(MAKEFILE)
93
94clean:
95 rm -f asm/rm86unix.cpp asm/*-elf.* *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
96
97# DO NOT DELETE THIS LINE -- make depend depends on it.
98
99rmd_dgst.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
100rmd_dgst.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
101rmd_dgst.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
102rmd_dgst.o: ../../include/openssl/opensslconf.h
103rmd_dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/ripemd.h
104rmd_dgst.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
105rmd_dgst.o: ../../include/openssl/symhacks.h ../md32_common.h rmd_dgst.c
106rmd_dgst.o: rmd_locl.h rmdconst.h
107rmd_one.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
108rmd_one.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
109rmd_one.o: ../../include/openssl/ripemd.h ../../include/openssl/safestack.h
110rmd_one.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
111rmd_one.o: rmd_one.c
diff --git a/src/lib/libssl/src/crypto/ripemd/ripemd.h b/src/lib/libssl/src/crypto/ripemd/ripemd.h
index 78d5f36560..7d0d998189 100644
--- a/src/lib/libssl/src/crypto/ripemd/ripemd.h
+++ b/src/lib/libssl/src/crypto/ripemd/ripemd.h
@@ -90,6 +90,9 @@ typedef struct RIPEMD160state_st
90 int num; 90 int num;
91 } RIPEMD160_CTX; 91 } RIPEMD160_CTX;
92 92
93#ifdef OPENSSL_FIPS
94int private_RIPEMD160_Init(RIPEMD160_CTX *c);
95#endif
93int RIPEMD160_Init(RIPEMD160_CTX *c); 96int RIPEMD160_Init(RIPEMD160_CTX *c);
94int RIPEMD160_Update(RIPEMD160_CTX *c, const void *data, unsigned long len); 97int RIPEMD160_Update(RIPEMD160_CTX *c, const void *data, unsigned long len);
95int RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c); 98int RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c);
diff --git a/src/lib/libssl/src/crypto/ripemd/rmd_dgst.c b/src/lib/libssl/src/crypto/ripemd/rmd_dgst.c
index f351f00eea..5dff6bafa1 100644
--- a/src/lib/libssl/src/crypto/ripemd/rmd_dgst.c
+++ b/src/lib/libssl/src/crypto/ripemd/rmd_dgst.c
@@ -58,6 +58,7 @@
58 58
59#include <stdio.h> 59#include <stdio.h>
60#include "rmd_locl.h" 60#include "rmd_locl.h"
61#include <openssl/fips.h>
61#include <openssl/opensslv.h> 62#include <openssl/opensslv.h>
62 63
63const char *RMD160_version="RIPE-MD160" OPENSSL_VERSION_PTEXT; 64const char *RMD160_version="RIPE-MD160" OPENSSL_VERSION_PTEXT;
@@ -69,7 +70,7 @@ const char *RMD160_version="RIPE-MD160" OPENSSL_VERSION_PTEXT;
69 void ripemd160_block(RIPEMD160_CTX *c, unsigned long *p,int num); 70 void ripemd160_block(RIPEMD160_CTX *c, unsigned long *p,int num);
70# endif 71# endif
71 72
72int RIPEMD160_Init(RIPEMD160_CTX *c) 73FIPS_NON_FIPS_MD_Init(RIPEMD160)
73 { 74 {
74 c->A=RIPEMD160_A; 75 c->A=RIPEMD160_A;
75 c->B=RIPEMD160_B; 76 c->B=RIPEMD160_B;
diff --git a/src/lib/libssl/src/crypto/rsa/Makefile b/src/lib/libssl/src/crypto/rsa/Makefile
new file mode 100644
index 0000000000..5748b0d3d0
--- /dev/null
+++ b/src/lib/libssl/src/crypto/rsa/Makefile
@@ -0,0 +1,239 @@
1#
2# SSLeay/crypto/rsa/Makefile
3#
4
5DIR= rsa
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=rsa_test.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= rsa_eay.c rsa_gen.c rsa_lib.c rsa_sign.c rsa_saos.c rsa_err.c \
26 rsa_pk1.c rsa_ssl.c rsa_none.c rsa_oaep.c rsa_chk.c rsa_null.c \
27 rsa_asn1.c
28LIBOBJ= rsa_eay.o rsa_gen.o rsa_lib.o rsa_sign.o rsa_saos.o rsa_err.o \
29 rsa_pk1.o rsa_ssl.o rsa_none.o rsa_oaep.o rsa_chk.o rsa_null.o \
30 rsa_asn1.o
31
32SRC= $(LIBSRC)
33
34EXHEADER= rsa.h
35HEADER= $(EXHEADER)
36
37ALL= $(GENERAL) $(SRC) $(HEADER)
38
39top:
40 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
41
42all: lib
43
44lib: $(LIBOBJ)
45 $(AR) $(LIB) $(LIBOBJ)
46 $(RANLIB) $(LIB) || echo Never mind.
47 @touch lib
48
49files:
50 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
51
52links:
53 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
54 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
55 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
56
57install:
58 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
59 do \
60 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
61 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
62 done;
63
64tags:
65 ctags $(SRC)
66
67tests:
68
69lint:
70 lint -DLINT $(INCLUDES) $(SRC)>fluff
71
72depend:
73 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
74
75dclean:
76 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
77 mv -f Makefile.new $(MAKEFILE)
78
79clean:
80 rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
81
82# DO NOT DELETE THIS LINE -- make depend depends on it.
83
84rsa_asn1.o: ../../e_os.h ../../include/openssl/asn1.h
85rsa_asn1.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
86rsa_asn1.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
87rsa_asn1.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
88rsa_asn1.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
89rsa_asn1.o: ../../include/openssl/opensslconf.h
90rsa_asn1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
91rsa_asn1.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
92rsa_asn1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
93rsa_asn1.o: ../cryptlib.h rsa_asn1.c
94rsa_chk.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
95rsa_chk.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
96rsa_chk.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
97rsa_chk.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
98rsa_chk.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
99rsa_chk.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
100rsa_chk.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
101rsa_chk.o: rsa_chk.c
102rsa_eay.o: ../../e_os.h ../../include/openssl/asn1.h
103rsa_eay.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
104rsa_eay.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
105rsa_eay.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
106rsa_eay.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
107rsa_eay.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
108rsa_eay.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
109rsa_eay.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
110rsa_eay.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_eay.c
111rsa_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
112rsa_err.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
113rsa_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
114rsa_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
115rsa_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
116rsa_err.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
117rsa_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
118rsa_err.o: rsa_err.c
119rsa_gen.o: ../../e_os.h ../../include/openssl/asn1.h
120rsa_gen.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
121rsa_gen.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
122rsa_gen.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
123rsa_gen.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
124rsa_gen.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
125rsa_gen.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
126rsa_gen.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
127rsa_gen.o: ../cryptlib.h rsa_gen.c
128rsa_lib.o: ../../e_os.h ../../include/openssl/asn1.h
129rsa_lib.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
130rsa_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
131rsa_lib.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
132rsa_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
133rsa_lib.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
134rsa_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
135rsa_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
136rsa_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
137rsa_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
138rsa_lib.o: ../../include/openssl/ui.h ../cryptlib.h rsa_lib.c
139rsa_none.o: ../../e_os.h ../../include/openssl/asn1.h
140rsa_none.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
141rsa_none.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
142rsa_none.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
143rsa_none.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
144rsa_none.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
145rsa_none.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
146rsa_none.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
147rsa_none.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_none.c
148rsa_null.o: ../../e_os.h ../../include/openssl/asn1.h
149rsa_null.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
150rsa_null.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
151rsa_null.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
152rsa_null.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
153rsa_null.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
154rsa_null.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
155rsa_null.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
156rsa_null.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_null.c
157rsa_oaep.o: ../../e_os.h ../../include/openssl/aes.h
158rsa_oaep.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
159rsa_oaep.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
160rsa_oaep.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
161rsa_oaep.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
162rsa_oaep.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
163rsa_oaep.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
164rsa_oaep.o: ../../include/openssl/err.h ../../include/openssl/evp.h
165rsa_oaep.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
166rsa_oaep.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
167rsa_oaep.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
168rsa_oaep.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
169rsa_oaep.o: ../../include/openssl/opensslconf.h
170rsa_oaep.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
171rsa_oaep.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
172rsa_oaep.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
173rsa_oaep.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
174rsa_oaep.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
175rsa_oaep.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
176rsa_oaep.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
177rsa_oaep.o: ../cryptlib.h rsa_oaep.c
178rsa_pk1.o: ../../e_os.h ../../include/openssl/asn1.h
179rsa_pk1.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
180rsa_pk1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
181rsa_pk1.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
182rsa_pk1.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
183rsa_pk1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
184rsa_pk1.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
185rsa_pk1.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
186rsa_pk1.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_pk1.c
187rsa_saos.o: ../../e_os.h ../../include/openssl/aes.h
188rsa_saos.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
189rsa_saos.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
190rsa_saos.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
191rsa_saos.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
192rsa_saos.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
193rsa_saos.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
194rsa_saos.o: ../../include/openssl/err.h ../../include/openssl/evp.h
195rsa_saos.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
196rsa_saos.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
197rsa_saos.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
198rsa_saos.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
199rsa_saos.o: ../../include/openssl/opensslconf.h
200rsa_saos.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
201rsa_saos.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
202rsa_saos.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
203rsa_saos.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
204rsa_saos.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
205rsa_saos.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
206rsa_saos.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
207rsa_saos.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
208rsa_saos.o: ../cryptlib.h rsa_saos.c
209rsa_sign.o: ../../e_os.h ../../include/openssl/aes.h
210rsa_sign.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
211rsa_sign.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
212rsa_sign.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
213rsa_sign.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
214rsa_sign.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
215rsa_sign.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
216rsa_sign.o: ../../include/openssl/err.h ../../include/openssl/evp.h
217rsa_sign.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
218rsa_sign.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
219rsa_sign.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
220rsa_sign.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
221rsa_sign.o: ../../include/openssl/opensslconf.h
222rsa_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
223rsa_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
224rsa_sign.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
225rsa_sign.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
226rsa_sign.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
227rsa_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
228rsa_sign.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
229rsa_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
230rsa_sign.o: ../cryptlib.h rsa_sign.c
231rsa_ssl.o: ../../e_os.h ../../include/openssl/asn1.h
232rsa_ssl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
233rsa_ssl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
234rsa_ssl.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
235rsa_ssl.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
236rsa_ssl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
237rsa_ssl.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
238rsa_ssl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
239rsa_ssl.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_ssl.c
diff --git a/src/lib/libssl/src/crypto/rsa/rsa.h b/src/lib/libssl/src/crypto/rsa/rsa.h
index 62fa745f79..fc3bb5f86d 100644
--- a/src/lib/libssl/src/crypto/rsa/rsa.h
+++ b/src/lib/libssl/src/crypto/rsa/rsa.h
@@ -72,6 +72,10 @@
72#error RSA is disabled. 72#error RSA is disabled.
73#endif 73#endif
74 74
75#if defined(OPENSSL_FIPS)
76#define FIPS_RSA_SIZE_T int
77#endif
78
75#ifdef __cplusplus 79#ifdef __cplusplus
76extern "C" { 80extern "C" {
77#endif 81#endif
diff --git a/src/lib/libssl/src/crypto/rsa/rsa_eay.c b/src/lib/libssl/src/crypto/rsa/rsa_eay.c
index e0d286266e..d4caab3f95 100644
--- a/src/lib/libssl/src/crypto/rsa/rsa_eay.c
+++ b/src/lib/libssl/src/crypto/rsa/rsa_eay.c
@@ -62,7 +62,7 @@
62#include <openssl/rsa.h> 62#include <openssl/rsa.h>
63#include <openssl/rand.h> 63#include <openssl/rand.h>
64 64
65#ifndef RSA_NULL 65#if !defined(RSA_NULL) && !defined(OPENSSL_FIPS)
66 66
67static int RSA_eay_public_encrypt(int flen, const unsigned char *from, 67static int RSA_eay_public_encrypt(int flen, const unsigned char *from,
68 unsigned char *to, RSA *rsa,int padding); 68 unsigned char *to, RSA *rsa,int padding);
diff --git a/src/lib/libssl/src/crypto/rsa/rsa_gen.c b/src/lib/libssl/src/crypto/rsa/rsa_gen.c
index 00c25adbc5..adb5e34da5 100644
--- a/src/lib/libssl/src/crypto/rsa/rsa_gen.c
+++ b/src/lib/libssl/src/crypto/rsa/rsa_gen.c
@@ -62,6 +62,8 @@
62#include <openssl/bn.h> 62#include <openssl/bn.h>
63#include <openssl/rsa.h> 63#include <openssl/rsa.h>
64 64
65#ifndef OPENSSL_FIPS
66
65RSA *RSA_generate_key(int bits, unsigned long e_value, 67RSA *RSA_generate_key(int bits, unsigned long e_value,
66 void (*callback)(int,int,void *), void *cb_arg) 68 void (*callback)(int,int,void *), void *cb_arg)
67 { 69 {
@@ -195,3 +197,4 @@ err:
195 return(rsa); 197 return(rsa);
196 } 198 }
197 199
200#endif
diff --git a/src/lib/libssl/src/crypto/rsa/rsa_saos.c b/src/lib/libssl/src/crypto/rsa/rsa_saos.c
index f462716a57..24fc94835e 100644
--- a/src/lib/libssl/src/crypto/rsa/rsa_saos.c
+++ b/src/lib/libssl/src/crypto/rsa/rsa_saos.c
@@ -139,8 +139,11 @@ int RSA_verify_ASN1_OCTET_STRING(int dtype,
139 ret=1; 139 ret=1;
140err: 140err:
141 if (sig != NULL) M_ASN1_OCTET_STRING_free(sig); 141 if (sig != NULL) M_ASN1_OCTET_STRING_free(sig);
142 OPENSSL_cleanse(s,(unsigned int)siglen); 142 if (s != NULL)
143 OPENSSL_free(s); 143 {
144 OPENSSL_cleanse(s,(unsigned int)siglen);
145 OPENSSL_free(s);
146 }
144 return(ret); 147 return(ret);
145 } 148 }
146 149
diff --git a/src/lib/libssl/src/crypto/rsa/rsa_sign.c b/src/lib/libssl/src/crypto/rsa/rsa_sign.c
index 8a1e642183..cee09eccb1 100644
--- a/src/lib/libssl/src/crypto/rsa/rsa_sign.c
+++ b/src/lib/libssl/src/crypto/rsa/rsa_sign.c
@@ -169,7 +169,7 @@ int RSA_verify(int dtype, const unsigned char *m, unsigned int m_len,
169 } 169 }
170 if((dtype == NID_md5_sha1) && (m_len != SSL_SIG_LENGTH) ) { 170 if((dtype == NID_md5_sha1) && (m_len != SSL_SIG_LENGTH) ) {
171 RSAerr(RSA_F_RSA_VERIFY,RSA_R_INVALID_MESSAGE_LENGTH); 171 RSAerr(RSA_F_RSA_VERIFY,RSA_R_INVALID_MESSAGE_LENGTH);
172 return(0); 172 goto err;
173 } 173 }
174 i=RSA_public_decrypt((int)siglen,sigbuf,s,rsa,RSA_PKCS1_PADDING); 174 i=RSA_public_decrypt((int)siglen,sigbuf,s,rsa,RSA_PKCS1_PADDING);
175 175
@@ -222,8 +222,11 @@ int RSA_verify(int dtype, const unsigned char *m, unsigned int m_len,
222 } 222 }
223err: 223err:
224 if (sig != NULL) X509_SIG_free(sig); 224 if (sig != NULL) X509_SIG_free(sig);
225 OPENSSL_cleanse(s,(unsigned int)siglen); 225 if (s != NULL)
226 OPENSSL_free(s); 226 {
227 OPENSSL_cleanse(s,(unsigned int)siglen);
228 OPENSSL_free(s);
229 }
227 return(ret); 230 return(ret);
228 } 231 }
229 232
diff --git a/src/lib/libssl/src/crypto/sha/Makefile b/src/lib/libssl/src/crypto/sha/Makefile
new file mode 100644
index 0000000000..0426786aa0
--- /dev/null
+++ b/src/lib/libssl/src/crypto/sha/Makefile
@@ -0,0 +1,127 @@
1#
2# SSLeay/crypto/sha/Makefile
3#
4
5DIR= sha
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES=
10CFLAG=-g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP=/usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17AR= ar r
18
19SHA1_ASM_OBJ=
20
21CFLAGS= $(INCLUDES) $(CFLAG)
22ASFLAGS= $(INCLUDES) $(ASFLAG)
23
24GENERAL=Makefile
25TEST=shatest.c sha1test.c
26APPS=
27
28LIB=$(TOP)/libcrypto.a
29LIBSRC=sha_dgst.c sha1dgst.c sha_one.c sha1_one.c
30LIBOBJ=sha_dgst.o sha1dgst.o sha_one.o sha1_one.o $(SHA1_ASM_OBJ)
31
32SRC= $(LIBSRC)
33
34EXHEADER= sha.h
35HEADER= sha_locl.h $(EXHEADER)
36
37ALL= $(GENERAL) $(SRC) $(HEADER)
38
39top:
40 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
41
42all: lib
43
44lib: $(LIBOBJ)
45 $(AR) $(LIB) $(LIBOBJ)
46 $(RANLIB) $(LIB) || echo Never mind.
47 @touch lib
48
49# elf
50asm/sx86-elf.s: asm/sha1-586.pl ../perlasm/x86asm.pl
51 (cd asm; $(PERL) sha1-586.pl elf $(CFLAGS) $(PROCESSOR) > sx86-elf.s)
52
53# a.out
54asm/sx86-out.o: asm/sx86unix.cpp
55 $(CPP) -DOUT asm/sx86unix.cpp | as -o asm/sx86-out.o
56
57# bsdi
58asm/sx86bsdi.o: asm/sx86unix.cpp
59 $(CPP) -DBSDI asm/sx86unix.cpp | sed 's/ :/:/' | as -o asm/sx86bsdi.o
60
61asm/sx86unix.cpp: asm/sha1-586.pl ../perlasm/x86asm.pl
62 (cd asm; $(PERL) sha1-586.pl cpp $(PROCESSOR) >sx86unix.cpp)
63
64asm/sha1-ia64.s: asm/sha1-ia64.pl
65 (cd asm; $(PERL) sha1-ia64.pl $(CFLAGS) ) > $@
66
67files:
68 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
69
70links:
71 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
72 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
73 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
74
75install:
76 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
77 do \
78 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
79 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
80 done;
81
82tags:
83 ctags $(SRC)
84
85tests:
86
87lint:
88 lint -DLINT $(INCLUDES) $(SRC)>fluff
89
90depend:
91 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
92
93dclean:
94 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
95 mv -f Makefile.new $(MAKEFILE)
96
97clean:
98 rm -f asm/sx86unix.cpp asm/*-elf.* *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff asm/*.o
99
100# DO NOT DELETE THIS LINE -- make depend depends on it.
101
102sha1_one.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
103sha1_one.o: ../../include/openssl/opensslconf.h
104sha1_one.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
105sha1_one.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
106sha1_one.o: ../../include/openssl/symhacks.h sha1_one.c
107sha1dgst.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
108sha1dgst.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
109sha1dgst.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
110sha1dgst.o: ../../include/openssl/opensslconf.h
111sha1dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
112sha1dgst.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
113sha1dgst.o: ../../include/openssl/symhacks.h ../md32_common.h sha1dgst.c
114sha1dgst.o: sha_locl.h
115sha_dgst.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
116sha_dgst.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
117sha_dgst.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
118sha_dgst.o: ../../include/openssl/opensslconf.h
119sha_dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
120sha_dgst.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
121sha_dgst.o: ../../include/openssl/symhacks.h ../md32_common.h sha_dgst.c
122sha_dgst.o: sha_locl.h
123sha_one.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
124sha_one.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
125sha_one.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
126sha_one.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
127sha_one.o: sha_one.c
diff --git a/src/lib/libssl/src/crypto/sha/asm/sha1-586.pl b/src/lib/libssl/src/crypto/sha/asm/sha1-586.pl
index e00f709553..041acc0348 100644
--- a/src/lib/libssl/src/crypto/sha/asm/sha1-586.pl
+++ b/src/lib/libssl/src/crypto/sha/asm/sha1-586.pl
@@ -405,7 +405,7 @@ sub sha1_block_data
405 &mov(&DWP(16,$tmp1,"",0),$E); 405 &mov(&DWP(16,$tmp1,"",0),$E);
406 &cmp("esi","eax"); 406 &cmp("esi","eax");
407 &mov(&DWP( 4,$tmp1,"",0),$B); 407 &mov(&DWP( 4,$tmp1,"",0),$B);
408 &jl(&label("start")); 408 &jb(&label("start"));
409 409
410 &stack_pop(18+9); 410 &stack_pop(18+9);
411 &pop("edi"); 411 &pop("edi");
diff --git a/src/lib/libssl/src/crypto/sha/asm/sha1-ia64.pl b/src/lib/libssl/src/crypto/sha/asm/sha1-ia64.pl
new file mode 100644
index 0000000000..cb9dfad124
--- /dev/null
+++ b/src/lib/libssl/src/crypto/sha/asm/sha1-ia64.pl
@@ -0,0 +1,549 @@
1#!/usr/bin/env perl
2#
3# ====================================================================
4# Written by Andy Polyakov <appro@fy.chalmers.se> for the OpenSSL
5# project. Rights for redistribution and usage in source and binary
6# forms are granted according to the OpenSSL license.
7# ====================================================================
8#
9# Eternal question is what's wrong with compiler generated code? The
10# trick is that it's possible to reduce the number of shifts required
11# to perform rotations by maintaining copy of 32-bit value in upper
12# bits of 64-bit register. Just follow mux2 and shrp instructions...
13# Performance under big-endian OS such as HP-UX is 179MBps*1GHz, which
14# is >50% better than HP C and >2x better than gcc. As of this moment
15# performance under little-endian OS such as Linux and Windows will be
16# a bit lower, because data has to be picked in reverse byte-order.
17# It's possible to resolve this issue by implementing third function,
18# sha1_block_asm_data_order_aligned, which would temporarily flip
19# BE field in User Mask register...
20
21$code=<<___;
22.ident \"sha1-ia64.s, version 1.0\"
23.ident \"IA-64 ISA artwork by Andy Polyakov <appro\@fy.chalmers.se>\"
24.explicit
25
26___
27
28
29if ($^O eq "hpux") {
30 $ADDP="addp4";
31 for (@ARGV) { $ADDP="add" if (/[\+DD|\-mlp]64/); }
32} else { $ADDP="add"; }
33for (@ARGV) { $big_endian=1 if (/\-DB_ENDIAN/);
34 $big_endian=0 if (/\-DL_ENDIAN/); }
35if (!defined($big_endian))
36 { $big_endian=(unpack('L',pack('N',1))==1); }
37
38#$human=1;
39if ($human) { # useful for visual code auditing...
40 ($A,$B,$C,$D,$E,$T) = ("A","B","C","D","E","T");
41 ($h0,$h1,$h2,$h3,$h4) = ("h0","h1","h2","h3","h4");
42 ($K_00_19, $K_20_39, $K_40_59, $K_60_79) =
43 ( "K_00_19","K_20_39","K_40_59","K_60_79" );
44 @X= ( "X0", "X1", "X2", "X3", "X4", "X5", "X6", "X7",
45 "X8", "X9","X10","X11","X12","X13","X14","X15" );
46}
47else {
48 ($A,$B,$C,$D,$E,$T) = ("loc0","loc1","loc2","loc3","loc4","loc5");
49 ($h0,$h1,$h2,$h3,$h4) = ("loc6","loc7","loc8","loc9","loc10");
50 ($K_00_19, $K_20_39, $K_40_59, $K_60_79) =
51 ( "r14", "r15", "loc11", "loc12" );
52 @X= ( "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23",
53 "r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31" );
54}
55
56sub BODY_00_15 {
57local *code=shift;
58local ($i,$a,$b,$c,$d,$e,$f,$unaligned)=@_;
59
60if ($unaligned) {
61 $code.=<<___;
62{ .mmi; ld1 tmp0=[inp],2 // MSB
63 ld1 tmp1=[tmp3],2 };;
64{ .mmi; ld1 tmp2=[inp],2
65 ld1 $X[$i&0xf]=[tmp3],2 // LSB
66 dep tmp1=tmp0,tmp1,8,8 };;
67{ .mii; cmp.ne p16,p0=r0,r0 // no misaligned prefetch
68 dep $X[$i&0xf]=tmp2,$X[$i&0xf],8,8;;
69 dep $X[$i&0xf]=tmp1,$X[$i&0xf],16,16 };;
70{ .mmi; nop.m 0
71___
72 }
73elsif ($i<15) {
74 $code.=<<___;
75{ .mmi; ld4 $X[($i+1)&0xf]=[inp],4 // prefetch
76___
77 }
78else {
79 $code.=<<___;
80{ .mmi; nop.m 0
81___
82 }
83if ($i<15) {
84 $code.=<<___;
85 and tmp0=$c,$b
86 dep.z tmp5=$a,5,27 } // a<<5
87{ .mmi; andcm tmp1=$d,$b
88 add tmp4=$e,$K_00_19 };;
89{ .mmi; or tmp0=tmp0,tmp1 // F_00_19(b,c,d)=(b&c)|(~b&d)
90 add $f=tmp4,$X[$i&0xf] // f=xi+e+K_00_19
91 extr.u tmp1=$a,27,5 };; // a>>27
92{ .mib; add $f=$f,tmp0 // f+=F_00_19(b,c,d)
93 shrp $b=tmp6,tmp6,2 } // b=ROTATE(b,30)
94{ .mib; or tmp1=tmp1,tmp5 // ROTATE(a,5)
95 mux2 tmp6=$a,0x44 };; // see b in next iteration
96{ .mii; add $f=$f,tmp1 // f+=ROTATE(a,5)
97 mux2 $X[$i&0xf]=$X[$i&0xf],0x44
98 nop.i 0 };;
99
100___
101 }
102else {
103 $code.=<<___;
104 and tmp0=$c,$b
105 dep.z tmp5=$a,5,27 } // a<<5 ;;?
106{ .mmi; andcm tmp1=$d,$b
107 add tmp4=$e,$K_00_19 };;
108{ .mmi; or tmp0=tmp0,tmp1 // F_00_19(b,c,d)=(b&c)|(~b&d)
109 add $f=tmp4,$X[$i&0xf] // f=xi+e+K_00_19
110 extr.u tmp1=$a,27,5 } // a>>27
111{ .mmi; xor tmp2=$X[($i+0+1)&0xf],$X[($i+2+1)&0xf] // +1
112 xor tmp3=$X[($i+8+1)&0xf],$X[($i+13+1)&0xf] // +1
113 nop.i 0 };;
114{ .mmi; add $f=$f,tmp0 // f+=F_00_19(b,c,d)
115 xor tmp2=tmp2,tmp3 // +1
116 shrp $b=tmp6,tmp6,2 } // b=ROTATE(b,30)
117{ .mmi; or tmp1=tmp1,tmp5 // ROTATE(a,5)
118 mux2 tmp6=$a,0x44 };; // see b in next iteration
119{ .mii; add $f=$f,tmp1 // f+=ROTATE(a,5)
120 shrp $e=tmp2,tmp2,31 // f+1=ROTATE(x[0]^x[2]^x[8]^x[13],1)
121 mux2 $X[$i&0xf]=$X[$i&0xf],0x44 };;
122
123___
124 }
125}
126
127sub BODY_16_19 {
128local *code=shift;
129local ($i,$a,$b,$c,$d,$e,$f)=@_;
130
131$code.=<<___;
132{ .mmi; mov $X[$i&0xf]=$f // Xupdate
133 and tmp0=$c,$b
134 dep.z tmp5=$a,5,27 } // a<<5
135{ .mmi; andcm tmp1=$d,$b
136 add tmp4=$e,$K_00_19 };;
137{ .mmi; or tmp0=tmp0,tmp1 // F_00_19(b,c,d)=(b&c)|(~b&d)
138 add $f=$f,tmp4 // f+=e+K_00_19
139 extr.u tmp1=$a,27,5 } // a>>27
140{ .mmi; xor tmp2=$X[($i+0+1)&0xf],$X[($i+2+1)&0xf] // +1
141 xor tmp3=$X[($i+8+1)&0xf],$X[($i+13+1)&0xf] // +1
142 nop.i 0 };;
143{ .mmi; add $f=$f,tmp0 // f+=F_00_19(b,c,d)
144 xor tmp2=tmp2,tmp3 // +1
145 shrp $b=tmp6,tmp6,2 } // b=ROTATE(b,30)
146{ .mmi; or tmp1=tmp1,tmp5 // ROTATE(a,5)
147 mux2 tmp6=$a,0x44 };; // see b in next iteration
148{ .mii; add $f=$f,tmp1 // f+=ROTATE(a,5)
149 shrp $e=tmp2,tmp2,31 // f+1=ROTATE(x[0]^x[2]^x[8]^x[13],1)
150 nop.i 0 };;
151
152___
153}
154
155sub BODY_20_39 {
156local *code=shift;
157local ($i,$a,$b,$c,$d,$e,$f,$Konst)=@_;
158 $Konst = $K_20_39 if (!defined($Konst));
159
160if ($i<79) {
161$code.=<<___;
162{ .mib; mov $X[$i&0xf]=$f // Xupdate
163 dep.z tmp5=$a,5,27 } // a<<5
164{ .mib; xor tmp0=$c,$b
165 add tmp4=$e,$Konst };;
166{ .mmi; xor tmp0=tmp0,$d // F_20_39(b,c,d)=b^c^d
167 add $f=$f,tmp4 // f+=e+K_20_39
168 extr.u tmp1=$a,27,5 } // a>>27
169{ .mmi; xor tmp2=$X[($i+0+1)&0xf],$X[($i+2+1)&0xf] // +1
170 xor tmp3=$X[($i+8+1)&0xf],$X[($i+13+1)&0xf] // +1
171 nop.i 0 };;
172{ .mmi; add $f=$f,tmp0 // f+=F_20_39(b,c,d)
173 xor tmp2=tmp2,tmp3 // +1
174 shrp $b=tmp6,tmp6,2 } // b=ROTATE(b,30)
175{ .mmi; or tmp1=tmp1,tmp5 // ROTATE(a,5)
176 mux2 tmp6=$a,0x44 };; // see b in next iteration
177{ .mii; add $f=$f,tmp1 // f+=ROTATE(a,5)
178 shrp $e=tmp2,tmp2,31 // f+1=ROTATE(x[0]^x[2]^x[8]^x[13],1)
179 nop.i 0 };;
180
181___
182}
183else {
184$code.=<<___;
185{ .mib; mov $X[$i&0xf]=$f // Xupdate
186 dep.z tmp5=$a,5,27 } // a<<5
187{ .mib; xor tmp0=$c,$b
188 add tmp4=$e,$Konst };;
189{ .mib; xor tmp0=tmp0,$d // F_20_39(b,c,d)=b^c^d
190 extr.u tmp1=$a,27,5 } // a>>27
191{ .mib; add $f=$f,tmp4 // f+=e+K_20_39
192 add $h1=$h1,$a };; // wrap up
193{ .mmi;
194(p16) ld4.s $X[0]=[inp],4 // non-faulting prefetch
195 add $f=$f,tmp0 // f+=F_20_39(b,c,d)
196 shrp $b=tmp6,tmp6,2 } // b=ROTATE(b,30) ;;?
197{ .mmi; or tmp1=tmp1,tmp5 // ROTATE(a,5)
198 add $h3=$h3,$c };; // wrap up
199{ .mib; add tmp3=1,inp // used in unaligned codepath
200 add $f=$f,tmp1 } // f+=ROTATE(a,5)
201{ .mib; add $h2=$h2,$b // wrap up
202 add $h4=$h4,$d };; // wrap up
203
204___
205}
206}
207
208sub BODY_40_59 {
209local *code=shift;
210local ($i,$a,$b,$c,$d,$e,$f)=@_;
211
212$code.=<<___;
213{ .mmi; mov $X[$i&0xf]=$f // Xupdate
214 and tmp0=$c,$b
215 dep.z tmp5=$a,5,27 } // a<<5
216{ .mmi; and tmp1=$d,$b
217 add tmp4=$e,$K_40_59 };;
218{ .mmi; or tmp0=tmp0,tmp1 // (b&c)|(b&d)
219 add $f=$f,tmp4 // f+=e+K_40_59
220 extr.u tmp1=$a,27,5 } // a>>27
221{ .mmi; and tmp4=$c,$d
222 xor tmp2=$X[($i+0+1)&0xf],$X[($i+2+1)&0xf] // +1
223 xor tmp3=$X[($i+8+1)&0xf],$X[($i+13+1)&0xf] // +1
224 };;
225{ .mmi; or tmp1=tmp1,tmp5 // ROTATE(a,5)
226 xor tmp2=tmp2,tmp3 // +1
227 shrp $b=tmp6,tmp6,2 } // b=ROTATE(b,30)
228{ .mmi; or tmp0=tmp0,tmp4 // F_40_59(b,c,d)=(b&c)|(b&d)|(c&d)
229 mux2 tmp6=$a,0x44 };; // see b in next iteration
230{ .mii; add $f=$f,tmp0 // f+=F_40_59(b,c,d)
231 shrp $e=tmp2,tmp2,31;; // f+1=ROTATE(x[0]^x[2]^x[8]^x[13],1)
232 add $f=$f,tmp1 };; // f+=ROTATE(a,5)
233
234___
235}
236sub BODY_60_79 { &BODY_20_39(@_,$K_60_79); }
237
238$code.=<<___;
239.text
240
241tmp0=r8;
242tmp1=r9;
243tmp2=r10;
244tmp3=r11;
245ctx=r32; // in0
246inp=r33; // in1
247
248// void sha1_block_asm_host_order(SHA_CTX *c,const void *p,size_t num);
249.global sha1_block_asm_host_order#
250.proc sha1_block_asm_host_order#
251.align 32
252sha1_block_asm_host_order:
253 .prologue
254 .fframe 0
255 .save ar.pfs,r0
256 .save ar.lc,r3
257{ .mmi; alloc tmp1=ar.pfs,3,15,0,0
258 $ADDP tmp0=4,ctx
259 mov r3=ar.lc }
260{ .mmi; $ADDP ctx=0,ctx
261 $ADDP inp=0,inp
262 mov r2=pr };;
263tmp4=in2;
264tmp5=loc13;
265tmp6=loc14;
266 .body
267{ .mlx; ld4 $h0=[ctx],8
268 movl $K_00_19=0x5a827999 }
269{ .mlx; ld4 $h1=[tmp0],8
270 movl $K_20_39=0x6ed9eba1 };;
271{ .mlx; ld4 $h2=[ctx],8
272 movl $K_40_59=0x8f1bbcdc }
273{ .mlx; ld4 $h3=[tmp0]
274 movl $K_60_79=0xca62c1d6 };;
275{ .mmi; ld4 $h4=[ctx],-16
276 add in2=-1,in2 // adjust num for ar.lc
277 mov ar.ec=1 };;
278{ .mmi; ld4 $X[0]=[inp],4 // prefetch
279 cmp.ne p16,p0=r0,in2 // prefecth at loop end
280 mov ar.lc=in2 };; // brp.loop.imp: too far
281
282.Lhtop:
283{ .mmi; mov $A=$h0
284 mov $B=$h1
285 mux2 tmp6=$h1,0x44 }
286{ .mmi; mov $C=$h2
287 mov $D=$h3
288 mov $E=$h4 };;
289
290___
291
292 &BODY_00_15(\$code, 0,$A,$B,$C,$D,$E,$T);
293 &BODY_00_15(\$code, 1,$T,$A,$B,$C,$D,$E);
294 &BODY_00_15(\$code, 2,$E,$T,$A,$B,$C,$D);
295 &BODY_00_15(\$code, 3,$D,$E,$T,$A,$B,$C);
296 &BODY_00_15(\$code, 4,$C,$D,$E,$T,$A,$B);
297 &BODY_00_15(\$code, 5,$B,$C,$D,$E,$T,$A);
298 &BODY_00_15(\$code, 6,$A,$B,$C,$D,$E,$T);
299 &BODY_00_15(\$code, 7,$T,$A,$B,$C,$D,$E);
300 &BODY_00_15(\$code, 8,$E,$T,$A,$B,$C,$D);
301 &BODY_00_15(\$code, 9,$D,$E,$T,$A,$B,$C);
302 &BODY_00_15(\$code,10,$C,$D,$E,$T,$A,$B);
303 &BODY_00_15(\$code,11,$B,$C,$D,$E,$T,$A);
304 &BODY_00_15(\$code,12,$A,$B,$C,$D,$E,$T);
305 &BODY_00_15(\$code,13,$T,$A,$B,$C,$D,$E);
306 &BODY_00_15(\$code,14,$E,$T,$A,$B,$C,$D);
307 &BODY_00_15(\$code,15,$D,$E,$T,$A,$B,$C);
308
309 &BODY_16_19(\$code,16,$C,$D,$E,$T,$A,$B);
310 &BODY_16_19(\$code,17,$B,$C,$D,$E,$T,$A);
311 &BODY_16_19(\$code,18,$A,$B,$C,$D,$E,$T);
312 &BODY_16_19(\$code,19,$T,$A,$B,$C,$D,$E);
313
314 &BODY_20_39(\$code,20,$E,$T,$A,$B,$C,$D);
315 &BODY_20_39(\$code,21,$D,$E,$T,$A,$B,$C);
316 &BODY_20_39(\$code,22,$C,$D,$E,$T,$A,$B);
317 &BODY_20_39(\$code,23,$B,$C,$D,$E,$T,$A);
318 &BODY_20_39(\$code,24,$A,$B,$C,$D,$E,$T);
319 &BODY_20_39(\$code,25,$T,$A,$B,$C,$D,$E);
320 &BODY_20_39(\$code,26,$E,$T,$A,$B,$C,$D);
321 &BODY_20_39(\$code,27,$D,$E,$T,$A,$B,$C);
322 &BODY_20_39(\$code,28,$C,$D,$E,$T,$A,$B);
323 &BODY_20_39(\$code,29,$B,$C,$D,$E,$T,$A);
324 &BODY_20_39(\$code,30,$A,$B,$C,$D,$E,$T);
325 &BODY_20_39(\$code,31,$T,$A,$B,$C,$D,$E);
326 &BODY_20_39(\$code,32,$E,$T,$A,$B,$C,$D);
327 &BODY_20_39(\$code,33,$D,$E,$T,$A,$B,$C);
328 &BODY_20_39(\$code,34,$C,$D,$E,$T,$A,$B);
329 &BODY_20_39(\$code,35,$B,$C,$D,$E,$T,$A);
330 &BODY_20_39(\$code,36,$A,$B,$C,$D,$E,$T);
331 &BODY_20_39(\$code,37,$T,$A,$B,$C,$D,$E);
332 &BODY_20_39(\$code,38,$E,$T,$A,$B,$C,$D);
333 &BODY_20_39(\$code,39,$D,$E,$T,$A,$B,$C);
334
335 &BODY_40_59(\$code,40,$C,$D,$E,$T,$A,$B);
336 &BODY_40_59(\$code,41,$B,$C,$D,$E,$T,$A);
337 &BODY_40_59(\$code,42,$A,$B,$C,$D,$E,$T);
338 &BODY_40_59(\$code,43,$T,$A,$B,$C,$D,$E);
339 &BODY_40_59(\$code,44,$E,$T,$A,$B,$C,$D);
340 &BODY_40_59(\$code,45,$D,$E,$T,$A,$B,$C);
341 &BODY_40_59(\$code,46,$C,$D,$E,$T,$A,$B);
342 &BODY_40_59(\$code,47,$B,$C,$D,$E,$T,$A);
343 &BODY_40_59(\$code,48,$A,$B,$C,$D,$E,$T);
344 &BODY_40_59(\$code,49,$T,$A,$B,$C,$D,$E);
345 &BODY_40_59(\$code,50,$E,$T,$A,$B,$C,$D);
346 &BODY_40_59(\$code,51,$D,$E,$T,$A,$B,$C);
347 &BODY_40_59(\$code,52,$C,$D,$E,$T,$A,$B);
348 &BODY_40_59(\$code,53,$B,$C,$D,$E,$T,$A);
349 &BODY_40_59(\$code,54,$A,$B,$C,$D,$E,$T);
350 &BODY_40_59(\$code,55,$T,$A,$B,$C,$D,$E);
351 &BODY_40_59(\$code,56,$E,$T,$A,$B,$C,$D);
352 &BODY_40_59(\$code,57,$D,$E,$T,$A,$B,$C);
353 &BODY_40_59(\$code,58,$C,$D,$E,$T,$A,$B);
354 &BODY_40_59(\$code,59,$B,$C,$D,$E,$T,$A);
355
356 &BODY_60_79(\$code,60,$A,$B,$C,$D,$E,$T);
357 &BODY_60_79(\$code,61,$T,$A,$B,$C,$D,$E);
358 &BODY_60_79(\$code,62,$E,$T,$A,$B,$C,$D);
359 &BODY_60_79(\$code,63,$D,$E,$T,$A,$B,$C);
360 &BODY_60_79(\$code,64,$C,$D,$E,$T,$A,$B);
361 &BODY_60_79(\$code,65,$B,$C,$D,$E,$T,$A);
362 &BODY_60_79(\$code,66,$A,$B,$C,$D,$E,$T);
363 &BODY_60_79(\$code,67,$T,$A,$B,$C,$D,$E);
364 &BODY_60_79(\$code,68,$E,$T,$A,$B,$C,$D);
365 &BODY_60_79(\$code,69,$D,$E,$T,$A,$B,$C);
366 &BODY_60_79(\$code,70,$C,$D,$E,$T,$A,$B);
367 &BODY_60_79(\$code,71,$B,$C,$D,$E,$T,$A);
368 &BODY_60_79(\$code,72,$A,$B,$C,$D,$E,$T);
369 &BODY_60_79(\$code,73,$T,$A,$B,$C,$D,$E);
370 &BODY_60_79(\$code,74,$E,$T,$A,$B,$C,$D);
371 &BODY_60_79(\$code,75,$D,$E,$T,$A,$B,$C);
372 &BODY_60_79(\$code,76,$C,$D,$E,$T,$A,$B);
373 &BODY_60_79(\$code,77,$B,$C,$D,$E,$T,$A);
374 &BODY_60_79(\$code,78,$A,$B,$C,$D,$E,$T);
375 &BODY_60_79(\$code,79,$T,$A,$B,$C,$D,$E);
376
377$code.=<<___;
378{ .mmb; add $h0=$h0,$E
379 nop.m 0
380 br.ctop.dptk.many .Lhtop };;
381.Lhend:
382{ .mmi; add tmp0=4,ctx
383 mov ar.lc=r3 };;
384{ .mmi; st4 [ctx]=$h0,8
385 st4 [tmp0]=$h1,8 };;
386{ .mmi; st4 [ctx]=$h2,8
387 st4 [tmp0]=$h3 };;
388{ .mib; st4 [ctx]=$h4,-16
389 mov pr=r2,0x1ffff
390 br.ret.sptk.many b0 };;
391.endp sha1_block_asm_host_order#
392___
393
394
395$code.=<<___;
396// void sha1_block_asm_data_order(SHA_CTX *c,const void *p,size_t num);
397.global sha1_block_asm_data_order#
398.proc sha1_block_asm_data_order#
399.align 32
400sha1_block_asm_data_order:
401___
402$code.=<<___ if ($big_endian);
403{ .mmi; and r2=3,inp };;
404{ .mib; cmp.eq p6,p0=r0,r2
405(p6) br.dptk.many sha1_block_asm_host_order };;
406___
407$code.=<<___;
408 .prologue
409 .fframe 0
410 .save ar.pfs,r0
411 .save ar.lc,r3
412{ .mmi; alloc tmp1=ar.pfs,3,15,0,0
413 $ADDP tmp0=4,ctx
414 mov r3=ar.lc }
415{ .mmi; $ADDP ctx=0,ctx
416 $ADDP inp=0,inp
417 mov r2=pr };;
418tmp4=in2;
419tmp5=loc13;
420tmp6=loc14;
421 .body
422{ .mlx; ld4 $h0=[ctx],8
423 movl $K_00_19=0x5a827999 }
424{ .mlx; ld4 $h1=[tmp0],8
425 movl $K_20_39=0x6ed9eba1 };;
426{ .mlx; ld4 $h2=[ctx],8
427 movl $K_40_59=0x8f1bbcdc }
428{ .mlx; ld4 $h3=[tmp0]
429 movl $K_60_79=0xca62c1d6 };;
430{ .mmi; ld4 $h4=[ctx],-16
431 add in2=-1,in2 // adjust num for ar.lc
432 mov ar.ec=1 };;
433{ .mmi; nop.m 0
434 add tmp3=1,inp
435 mov ar.lc=in2 };; // brp.loop.imp: too far
436
437.Ldtop:
438{ .mmi; mov $A=$h0
439 mov $B=$h1
440 mux2 tmp6=$h1,0x44 }
441{ .mmi; mov $C=$h2
442 mov $D=$h3
443 mov $E=$h4 };;
444
445___
446
447 &BODY_00_15(\$code, 0,$A,$B,$C,$D,$E,$T,1);
448 &BODY_00_15(\$code, 1,$T,$A,$B,$C,$D,$E,1);
449 &BODY_00_15(\$code, 2,$E,$T,$A,$B,$C,$D,1);
450 &BODY_00_15(\$code, 3,$D,$E,$T,$A,$B,$C,1);
451 &BODY_00_15(\$code, 4,$C,$D,$E,$T,$A,$B,1);
452 &BODY_00_15(\$code, 5,$B,$C,$D,$E,$T,$A,1);
453 &BODY_00_15(\$code, 6,$A,$B,$C,$D,$E,$T,1);
454 &BODY_00_15(\$code, 7,$T,$A,$B,$C,$D,$E,1);
455 &BODY_00_15(\$code, 8,$E,$T,$A,$B,$C,$D,1);
456 &BODY_00_15(\$code, 9,$D,$E,$T,$A,$B,$C,1);
457 &BODY_00_15(\$code,10,$C,$D,$E,$T,$A,$B,1);
458 &BODY_00_15(\$code,11,$B,$C,$D,$E,$T,$A,1);
459 &BODY_00_15(\$code,12,$A,$B,$C,$D,$E,$T,1);
460 &BODY_00_15(\$code,13,$T,$A,$B,$C,$D,$E,1);
461 &BODY_00_15(\$code,14,$E,$T,$A,$B,$C,$D,1);
462 &BODY_00_15(\$code,15,$D,$E,$T,$A,$B,$C,1);
463
464 &BODY_16_19(\$code,16,$C,$D,$E,$T,$A,$B);
465 &BODY_16_19(\$code,17,$B,$C,$D,$E,$T,$A);
466 &BODY_16_19(\$code,18,$A,$B,$C,$D,$E,$T);
467 &BODY_16_19(\$code,19,$T,$A,$B,$C,$D,$E);
468
469 &BODY_20_39(\$code,20,$E,$T,$A,$B,$C,$D);
470 &BODY_20_39(\$code,21,$D,$E,$T,$A,$B,$C);
471 &BODY_20_39(\$code,22,$C,$D,$E,$T,$A,$B);
472 &BODY_20_39(\$code,23,$B,$C,$D,$E,$T,$A);
473 &BODY_20_39(\$code,24,$A,$B,$C,$D,$E,$T);
474 &BODY_20_39(\$code,25,$T,$A,$B,$C,$D,$E);
475 &BODY_20_39(\$code,26,$E,$T,$A,$B,$C,$D);
476 &BODY_20_39(\$code,27,$D,$E,$T,$A,$B,$C);
477 &BODY_20_39(\$code,28,$C,$D,$E,$T,$A,$B);
478 &BODY_20_39(\$code,29,$B,$C,$D,$E,$T,$A);
479 &BODY_20_39(\$code,30,$A,$B,$C,$D,$E,$T);
480 &BODY_20_39(\$code,31,$T,$A,$B,$C,$D,$E);
481 &BODY_20_39(\$code,32,$E,$T,$A,$B,$C,$D);
482 &BODY_20_39(\$code,33,$D,$E,$T,$A,$B,$C);
483 &BODY_20_39(\$code,34,$C,$D,$E,$T,$A,$B);
484 &BODY_20_39(\$code,35,$B,$C,$D,$E,$T,$A);
485 &BODY_20_39(\$code,36,$A,$B,$C,$D,$E,$T);
486 &BODY_20_39(\$code,37,$T,$A,$B,$C,$D,$E);
487 &BODY_20_39(\$code,38,$E,$T,$A,$B,$C,$D);
488 &BODY_20_39(\$code,39,$D,$E,$T,$A,$B,$C);
489
490 &BODY_40_59(\$code,40,$C,$D,$E,$T,$A,$B);
491 &BODY_40_59(\$code,41,$B,$C,$D,$E,$T,$A);
492 &BODY_40_59(\$code,42,$A,$B,$C,$D,$E,$T);
493 &BODY_40_59(\$code,43,$T,$A,$B,$C,$D,$E);
494 &BODY_40_59(\$code,44,$E,$T,$A,$B,$C,$D);
495 &BODY_40_59(\$code,45,$D,$E,$T,$A,$B,$C);
496 &BODY_40_59(\$code,46,$C,$D,$E,$T,$A,$B);
497 &BODY_40_59(\$code,47,$B,$C,$D,$E,$T,$A);
498 &BODY_40_59(\$code,48,$A,$B,$C,$D,$E,$T);
499 &BODY_40_59(\$code,49,$T,$A,$B,$C,$D,$E);
500 &BODY_40_59(\$code,50,$E,$T,$A,$B,$C,$D);
501 &BODY_40_59(\$code,51,$D,$E,$T,$A,$B,$C);
502 &BODY_40_59(\$code,52,$C,$D,$E,$T,$A,$B);
503 &BODY_40_59(\$code,53,$B,$C,$D,$E,$T,$A);
504 &BODY_40_59(\$code,54,$A,$B,$C,$D,$E,$T);
505 &BODY_40_59(\$code,55,$T,$A,$B,$C,$D,$E);
506 &BODY_40_59(\$code,56,$E,$T,$A,$B,$C,$D);
507 &BODY_40_59(\$code,57,$D,$E,$T,$A,$B,$C);
508 &BODY_40_59(\$code,58,$C,$D,$E,$T,$A,$B);
509 &BODY_40_59(\$code,59,$B,$C,$D,$E,$T,$A);
510
511 &BODY_60_79(\$code,60,$A,$B,$C,$D,$E,$T);
512 &BODY_60_79(\$code,61,$T,$A,$B,$C,$D,$E);
513 &BODY_60_79(\$code,62,$E,$T,$A,$B,$C,$D);
514 &BODY_60_79(\$code,63,$D,$E,$T,$A,$B,$C);
515 &BODY_60_79(\$code,64,$C,$D,$E,$T,$A,$B);
516 &BODY_60_79(\$code,65,$B,$C,$D,$E,$T,$A);
517 &BODY_60_79(\$code,66,$A,$B,$C,$D,$E,$T);
518 &BODY_60_79(\$code,67,$T,$A,$B,$C,$D,$E);
519 &BODY_60_79(\$code,68,$E,$T,$A,$B,$C,$D);
520 &BODY_60_79(\$code,69,$D,$E,$T,$A,$B,$C);
521 &BODY_60_79(\$code,70,$C,$D,$E,$T,$A,$B);
522 &BODY_60_79(\$code,71,$B,$C,$D,$E,$T,$A);
523 &BODY_60_79(\$code,72,$A,$B,$C,$D,$E,$T);
524 &BODY_60_79(\$code,73,$T,$A,$B,$C,$D,$E);
525 &BODY_60_79(\$code,74,$E,$T,$A,$B,$C,$D);
526 &BODY_60_79(\$code,75,$D,$E,$T,$A,$B,$C);
527 &BODY_60_79(\$code,76,$C,$D,$E,$T,$A,$B);
528 &BODY_60_79(\$code,77,$B,$C,$D,$E,$T,$A);
529 &BODY_60_79(\$code,78,$A,$B,$C,$D,$E,$T);
530 &BODY_60_79(\$code,79,$T,$A,$B,$C,$D,$E);
531
532$code.=<<___;
533{ .mmb; add $h0=$h0,$E
534 nop.m 0
535 br.ctop.dptk.many .Ldtop };;
536.Ldend:
537{ .mmi; add tmp0=4,ctx
538 mov ar.lc=r3 };;
539{ .mmi; st4 [ctx]=$h0,8
540 st4 [tmp0]=$h1,8 };;
541{ .mmi; st4 [ctx]=$h2,8
542 st4 [tmp0]=$h3 };;
543{ .mib; st4 [ctx]=$h4,-16
544 mov pr=r2,0x1ffff
545 br.ret.sptk.many b0 };;
546.endp sha1_block_asm_data_order#
547___
548
549print $code;
diff --git a/src/lib/libssl/src/crypto/sha/sha.h b/src/lib/libssl/src/crypto/sha/sha.h
index 3fd54a10cc..79c07b0fd1 100644
--- a/src/lib/libssl/src/crypto/sha/sha.h
+++ b/src/lib/libssl/src/crypto/sha/sha.h
@@ -69,6 +69,10 @@ extern "C" {
69#error SHA is disabled. 69#error SHA is disabled.
70#endif 70#endif
71 71
72#if defined(OPENSSL_FIPS)
73#define FIPS_SHA_SIZE_T unsigned long
74#endif
75
72/* 76/*
73 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 77 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
74 * ! SHA_LONG has to be at least 32 bits wide. If it's wider, then ! 78 * ! SHA_LONG has to be at least 32 bits wide. If it's wider, then !
@@ -101,6 +105,9 @@ typedef struct SHAstate_st
101 } SHA_CTX; 105 } SHA_CTX;
102 106
103#ifndef OPENSSL_NO_SHA0 107#ifndef OPENSSL_NO_SHA0
108#ifdef OPENSSL_FIPS
109int private_SHA_Init(SHA_CTX *c);
110#endif
104int SHA_Init(SHA_CTX *c); 111int SHA_Init(SHA_CTX *c);
105int SHA_Update(SHA_CTX *c, const void *data, unsigned long len); 112int SHA_Update(SHA_CTX *c, const void *data, unsigned long len);
106int SHA_Final(unsigned char *md, SHA_CTX *c); 113int SHA_Final(unsigned char *md, SHA_CTX *c);
diff --git a/src/lib/libssl/src/crypto/sha/sha1dgst.c b/src/lib/libssl/src/crypto/sha/sha1dgst.c
index 182f65982a..1e2009b760 100644
--- a/src/lib/libssl/src/crypto/sha/sha1dgst.c
+++ b/src/lib/libssl/src/crypto/sha/sha1dgst.c
@@ -62,12 +62,20 @@
62#define SHA_1 62#define SHA_1
63 63
64#include <openssl/opensslv.h> 64#include <openssl/opensslv.h>
65#include <openssl/opensslconf.h>
65 66
67#ifndef OPENSSL_FIPS
66const char *SHA1_version="SHA1" OPENSSL_VERSION_PTEXT; 68const char *SHA1_version="SHA1" OPENSSL_VERSION_PTEXT;
67 69
68/* The implementation is in ../md32_common.h */ 70/* The implementation is in ../md32_common.h */
69 71
70#include "sha_locl.h" 72#include "sha_locl.h"
71 73
74#else /* ndef OPENSSL_FIPS */
75
76static void *dummy=&dummy;
77
78#endif /* ndef OPENSSL_FIPS */
79
72#endif 80#endif
73 81
diff --git a/src/lib/libssl/src/crypto/sha/sha_locl.h b/src/lib/libssl/src/crypto/sha/sha_locl.h
index 2dd63a62a6..a3623f72da 100644
--- a/src/lib/libssl/src/crypto/sha/sha_locl.h
+++ b/src/lib/libssl/src/crypto/sha/sha_locl.h
@@ -121,6 +121,11 @@
121# define sha1_block_data_order sha1_block_asm_data_order 121# define sha1_block_data_order sha1_block_asm_data_order
122# define DONT_IMPLEMENT_BLOCK_DATA_ORDER 122# define DONT_IMPLEMENT_BLOCK_DATA_ORDER
123# define HASH_BLOCK_DATA_ORDER_ALIGNED sha1_block_asm_data_order 123# define HASH_BLOCK_DATA_ORDER_ALIGNED sha1_block_asm_data_order
124# elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
125# define sha1_block_host_order sha1_block_asm_host_order
126# define DONT_IMPLEMENT_BLOCK_HOST_ORDER
127# define sha1_block_data_order sha1_block_asm_data_order
128# define DONT_IMPLEMENT_BLOCK_DATA_ORDER
124# endif 129# endif
125# endif 130# endif
126 void sha1_block_host_order (SHA_CTX *c, const void *p,int num); 131 void sha1_block_host_order (SHA_CTX *c, const void *p,int num);
@@ -138,7 +143,11 @@
138#define INIT_DATA_h3 0x10325476UL 143#define INIT_DATA_h3 0x10325476UL
139#define INIT_DATA_h4 0xc3d2e1f0UL 144#define INIT_DATA_h4 0xc3d2e1f0UL
140 145
146#if defined(SHA_0) && defined(OPENSSL_FIPS)
147FIPS_NON_FIPS_MD_Init(SHA)
148#else
141int HASH_INIT (SHA_CTX *c) 149int HASH_INIT (SHA_CTX *c)
150#endif
142 { 151 {
143 c->h0=INIT_DATA_h0; 152 c->h0=INIT_DATA_h0;
144 c->h1=INIT_DATA_h1; 153 c->h1=INIT_DATA_h1;
diff --git a/src/lib/libssl/src/crypto/sha/shatest.c b/src/lib/libssl/src/crypto/sha/shatest.c
index 5d2b1d3b1a..ff702aa53e 100644
--- a/src/lib/libssl/src/crypto/sha/shatest.c
+++ b/src/lib/libssl/src/crypto/sha/shatest.c
@@ -62,10 +62,10 @@
62 62
63#include "../e_os.h" 63#include "../e_os.h"
64 64
65#ifdef OPENSSL_NO_SHA 65#if defined(OPENSSL_NO_SHA) || defined(OPENSSL_NO_SHA0)
66int main(int argc, char *argv[]) 66int main(int argc, char *argv[])
67{ 67{
68 printf("No SHA support\n"); 68 printf("No SHA0 support\n");
69 return(0); 69 return(0);
70} 70}
71#else 71#else
diff --git a/src/lib/libssl/src/crypto/stack/Makefile b/src/lib/libssl/src/crypto/stack/Makefile
new file mode 100644
index 0000000000..4d5199a000
--- /dev/null
+++ b/src/lib/libssl/src/crypto/stack/Makefile
@@ -0,0 +1,86 @@
1#
2# SSLeay/crypto/stack/Makefile
3#
4
5DIR= stack
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=stack.c
26LIBOBJ=stack.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= stack.h safestack.h
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80stack.o: ../../e_os.h ../../include/openssl/bio.h
81stack.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
82stack.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
83stack.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
84stack.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
85stack.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
86stack.o: ../cryptlib.h stack.c
diff --git a/src/lib/libssl/src/crypto/stack/safestack.h b/src/lib/libssl/src/crypto/stack/safestack.h
index ed9ed2c23a..bd1121c279 100644
--- a/src/lib/libssl/src/crypto/stack/safestack.h
+++ b/src/lib/libssl/src/crypto/stack/safestack.h
@@ -113,6 +113,8 @@ STACK_OF(type) \
113 ((type * (*)(STACK_OF(type) *))sk_pop)(st) 113 ((type * (*)(STACK_OF(type) *))sk_pop)(st)
114#define SKM_sk_sort(type, st) \ 114#define SKM_sk_sort(type, st) \
115 ((void (*)(STACK_OF(type) *))sk_sort)(st) 115 ((void (*)(STACK_OF(type) *))sk_sort)(st)
116#define SKM_sk_is_sorted(type, st) \
117 ((int (*)(const STACK_OF(type) *))sk_is_sorted)(st)
116 118
117#define SKM_ASN1_SET_OF_d2i(type, st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ 119#define SKM_ASN1_SET_OF_d2i(type, st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
118 ((STACK_OF(type) * (*) (STACK_OF(type) **,unsigned char **, long , \ 120 ((STACK_OF(type) * (*) (STACK_OF(type) **,unsigned char **, long , \
@@ -187,6 +189,8 @@ STACK_OF(type) \
187 ((type *)sk_pop(st)) 189 ((type *)sk_pop(st))
188#define SKM_sk_sort(type, st) \ 190#define SKM_sk_sort(type, st) \
189 sk_sort(st) 191 sk_sort(st)
192#define SKM_sk_is_sorted(type, st) \
193 sk_is_sorted(st)
190 194
191#define SKM_ASN1_SET_OF_d2i(type, st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ 195#define SKM_ASN1_SET_OF_d2i(type, st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
192 d2i_ASN1_SET(st,pp,length, (char *(*)())d2i_func, (void (*)(void *))free_func, ex_tag,ex_class) 196 d2i_ASN1_SET(st,pp,length, (char *(*)())d2i_func, (void (*)(void *))free_func, ex_tag,ex_class)
@@ -223,6 +227,7 @@ STACK_OF(type) \
223#define sk_ACCESS_DESCRIPTION_shift(st) SKM_sk_shift(ACCESS_DESCRIPTION, (st)) 227#define sk_ACCESS_DESCRIPTION_shift(st) SKM_sk_shift(ACCESS_DESCRIPTION, (st))
224#define sk_ACCESS_DESCRIPTION_pop(st) SKM_sk_pop(ACCESS_DESCRIPTION, (st)) 228#define sk_ACCESS_DESCRIPTION_pop(st) SKM_sk_pop(ACCESS_DESCRIPTION, (st))
225#define sk_ACCESS_DESCRIPTION_sort(st) SKM_sk_sort(ACCESS_DESCRIPTION, (st)) 229#define sk_ACCESS_DESCRIPTION_sort(st) SKM_sk_sort(ACCESS_DESCRIPTION, (st))
230#define sk_ACCESS_DESCRIPTION_is_sorted(st) SKM_sk_is_sorted(ACCESS_DESCRIPTION, (st))
226 231
227#define sk_ASN1_GENERALSTRING_new(st) SKM_sk_new(ASN1_GENERALSTRING, (st)) 232#define sk_ASN1_GENERALSTRING_new(st) SKM_sk_new(ASN1_GENERALSTRING, (st))
228#define sk_ASN1_GENERALSTRING_new_null() SKM_sk_new_null(ASN1_GENERALSTRING) 233#define sk_ASN1_GENERALSTRING_new_null() SKM_sk_new_null(ASN1_GENERALSTRING)
@@ -243,6 +248,7 @@ STACK_OF(type) \
243#define sk_ASN1_GENERALSTRING_shift(st) SKM_sk_shift(ASN1_GENERALSTRING, (st)) 248#define sk_ASN1_GENERALSTRING_shift(st) SKM_sk_shift(ASN1_GENERALSTRING, (st))
244#define sk_ASN1_GENERALSTRING_pop(st) SKM_sk_pop(ASN1_GENERALSTRING, (st)) 249#define sk_ASN1_GENERALSTRING_pop(st) SKM_sk_pop(ASN1_GENERALSTRING, (st))
245#define sk_ASN1_GENERALSTRING_sort(st) SKM_sk_sort(ASN1_GENERALSTRING, (st)) 250#define sk_ASN1_GENERALSTRING_sort(st) SKM_sk_sort(ASN1_GENERALSTRING, (st))
251#define sk_ASN1_GENERALSTRING_is_sorted(st) SKM_sk_is_sorted(ASN1_GENERALSTRING, (st))
246 252
247#define sk_ASN1_INTEGER_new(st) SKM_sk_new(ASN1_INTEGER, (st)) 253#define sk_ASN1_INTEGER_new(st) SKM_sk_new(ASN1_INTEGER, (st))
248#define sk_ASN1_INTEGER_new_null() SKM_sk_new_null(ASN1_INTEGER) 254#define sk_ASN1_INTEGER_new_null() SKM_sk_new_null(ASN1_INTEGER)
@@ -263,6 +269,7 @@ STACK_OF(type) \
263#define sk_ASN1_INTEGER_shift(st) SKM_sk_shift(ASN1_INTEGER, (st)) 269#define sk_ASN1_INTEGER_shift(st) SKM_sk_shift(ASN1_INTEGER, (st))
264#define sk_ASN1_INTEGER_pop(st) SKM_sk_pop(ASN1_INTEGER, (st)) 270#define sk_ASN1_INTEGER_pop(st) SKM_sk_pop(ASN1_INTEGER, (st))
265#define sk_ASN1_INTEGER_sort(st) SKM_sk_sort(ASN1_INTEGER, (st)) 271#define sk_ASN1_INTEGER_sort(st) SKM_sk_sort(ASN1_INTEGER, (st))
272#define sk_ASN1_INTEGER_is_sorted(st) SKM_sk_is_sorted(ASN1_INTEGER, (st))
266 273
267#define sk_ASN1_OBJECT_new(st) SKM_sk_new(ASN1_OBJECT, (st)) 274#define sk_ASN1_OBJECT_new(st) SKM_sk_new(ASN1_OBJECT, (st))
268#define sk_ASN1_OBJECT_new_null() SKM_sk_new_null(ASN1_OBJECT) 275#define sk_ASN1_OBJECT_new_null() SKM_sk_new_null(ASN1_OBJECT)
@@ -283,6 +290,7 @@ STACK_OF(type) \
283#define sk_ASN1_OBJECT_shift(st) SKM_sk_shift(ASN1_OBJECT, (st)) 290#define sk_ASN1_OBJECT_shift(st) SKM_sk_shift(ASN1_OBJECT, (st))
284#define sk_ASN1_OBJECT_pop(st) SKM_sk_pop(ASN1_OBJECT, (st)) 291#define sk_ASN1_OBJECT_pop(st) SKM_sk_pop(ASN1_OBJECT, (st))
285#define sk_ASN1_OBJECT_sort(st) SKM_sk_sort(ASN1_OBJECT, (st)) 292#define sk_ASN1_OBJECT_sort(st) SKM_sk_sort(ASN1_OBJECT, (st))
293#define sk_ASN1_OBJECT_is_sorted(st) SKM_sk_is_sorted(ASN1_OBJECT, (st))
286 294
287#define sk_ASN1_STRING_TABLE_new(st) SKM_sk_new(ASN1_STRING_TABLE, (st)) 295#define sk_ASN1_STRING_TABLE_new(st) SKM_sk_new(ASN1_STRING_TABLE, (st))
288#define sk_ASN1_STRING_TABLE_new_null() SKM_sk_new_null(ASN1_STRING_TABLE) 296#define sk_ASN1_STRING_TABLE_new_null() SKM_sk_new_null(ASN1_STRING_TABLE)
@@ -303,6 +311,7 @@ STACK_OF(type) \
303#define sk_ASN1_STRING_TABLE_shift(st) SKM_sk_shift(ASN1_STRING_TABLE, (st)) 311#define sk_ASN1_STRING_TABLE_shift(st) SKM_sk_shift(ASN1_STRING_TABLE, (st))
304#define sk_ASN1_STRING_TABLE_pop(st) SKM_sk_pop(ASN1_STRING_TABLE, (st)) 312#define sk_ASN1_STRING_TABLE_pop(st) SKM_sk_pop(ASN1_STRING_TABLE, (st))
305#define sk_ASN1_STRING_TABLE_sort(st) SKM_sk_sort(ASN1_STRING_TABLE, (st)) 313#define sk_ASN1_STRING_TABLE_sort(st) SKM_sk_sort(ASN1_STRING_TABLE, (st))
314#define sk_ASN1_STRING_TABLE_is_sorted(st) SKM_sk_is_sorted(ASN1_STRING_TABLE, (st))
306 315
307#define sk_ASN1_TYPE_new(st) SKM_sk_new(ASN1_TYPE, (st)) 316#define sk_ASN1_TYPE_new(st) SKM_sk_new(ASN1_TYPE, (st))
308#define sk_ASN1_TYPE_new_null() SKM_sk_new_null(ASN1_TYPE) 317#define sk_ASN1_TYPE_new_null() SKM_sk_new_null(ASN1_TYPE)
@@ -323,6 +332,7 @@ STACK_OF(type) \
323#define sk_ASN1_TYPE_shift(st) SKM_sk_shift(ASN1_TYPE, (st)) 332#define sk_ASN1_TYPE_shift(st) SKM_sk_shift(ASN1_TYPE, (st))
324#define sk_ASN1_TYPE_pop(st) SKM_sk_pop(ASN1_TYPE, (st)) 333#define sk_ASN1_TYPE_pop(st) SKM_sk_pop(ASN1_TYPE, (st))
325#define sk_ASN1_TYPE_sort(st) SKM_sk_sort(ASN1_TYPE, (st)) 334#define sk_ASN1_TYPE_sort(st) SKM_sk_sort(ASN1_TYPE, (st))
335#define sk_ASN1_TYPE_is_sorted(st) SKM_sk_is_sorted(ASN1_TYPE, (st))
326 336
327#define sk_ASN1_VALUE_new(st) SKM_sk_new(ASN1_VALUE, (st)) 337#define sk_ASN1_VALUE_new(st) SKM_sk_new(ASN1_VALUE, (st))
328#define sk_ASN1_VALUE_new_null() SKM_sk_new_null(ASN1_VALUE) 338#define sk_ASN1_VALUE_new_null() SKM_sk_new_null(ASN1_VALUE)
@@ -343,6 +353,7 @@ STACK_OF(type) \
343#define sk_ASN1_VALUE_shift(st) SKM_sk_shift(ASN1_VALUE, (st)) 353#define sk_ASN1_VALUE_shift(st) SKM_sk_shift(ASN1_VALUE, (st))
344#define sk_ASN1_VALUE_pop(st) SKM_sk_pop(ASN1_VALUE, (st)) 354#define sk_ASN1_VALUE_pop(st) SKM_sk_pop(ASN1_VALUE, (st))
345#define sk_ASN1_VALUE_sort(st) SKM_sk_sort(ASN1_VALUE, (st)) 355#define sk_ASN1_VALUE_sort(st) SKM_sk_sort(ASN1_VALUE, (st))
356#define sk_ASN1_VALUE_is_sorted(st) SKM_sk_is_sorted(ASN1_VALUE, (st))
346 357
347#define sk_BIO_new(st) SKM_sk_new(BIO, (st)) 358#define sk_BIO_new(st) SKM_sk_new(BIO, (st))
348#define sk_BIO_new_null() SKM_sk_new_null(BIO) 359#define sk_BIO_new_null() SKM_sk_new_null(BIO)
@@ -363,6 +374,7 @@ STACK_OF(type) \
363#define sk_BIO_shift(st) SKM_sk_shift(BIO, (st)) 374#define sk_BIO_shift(st) SKM_sk_shift(BIO, (st))
364#define sk_BIO_pop(st) SKM_sk_pop(BIO, (st)) 375#define sk_BIO_pop(st) SKM_sk_pop(BIO, (st))
365#define sk_BIO_sort(st) SKM_sk_sort(BIO, (st)) 376#define sk_BIO_sort(st) SKM_sk_sort(BIO, (st))
377#define sk_BIO_is_sorted(st) SKM_sk_is_sorted(BIO, (st))
366 378
367#define sk_CONF_IMODULE_new(st) SKM_sk_new(CONF_IMODULE, (st)) 379#define sk_CONF_IMODULE_new(st) SKM_sk_new(CONF_IMODULE, (st))
368#define sk_CONF_IMODULE_new_null() SKM_sk_new_null(CONF_IMODULE) 380#define sk_CONF_IMODULE_new_null() SKM_sk_new_null(CONF_IMODULE)
@@ -383,6 +395,7 @@ STACK_OF(type) \
383#define sk_CONF_IMODULE_shift(st) SKM_sk_shift(CONF_IMODULE, (st)) 395#define sk_CONF_IMODULE_shift(st) SKM_sk_shift(CONF_IMODULE, (st))
384#define sk_CONF_IMODULE_pop(st) SKM_sk_pop(CONF_IMODULE, (st)) 396#define sk_CONF_IMODULE_pop(st) SKM_sk_pop(CONF_IMODULE, (st))
385#define sk_CONF_IMODULE_sort(st) SKM_sk_sort(CONF_IMODULE, (st)) 397#define sk_CONF_IMODULE_sort(st) SKM_sk_sort(CONF_IMODULE, (st))
398#define sk_CONF_IMODULE_is_sorted(st) SKM_sk_is_sorted(CONF_IMODULE, (st))
386 399
387#define sk_CONF_MODULE_new(st) SKM_sk_new(CONF_MODULE, (st)) 400#define sk_CONF_MODULE_new(st) SKM_sk_new(CONF_MODULE, (st))
388#define sk_CONF_MODULE_new_null() SKM_sk_new_null(CONF_MODULE) 401#define sk_CONF_MODULE_new_null() SKM_sk_new_null(CONF_MODULE)
@@ -403,6 +416,7 @@ STACK_OF(type) \
403#define sk_CONF_MODULE_shift(st) SKM_sk_shift(CONF_MODULE, (st)) 416#define sk_CONF_MODULE_shift(st) SKM_sk_shift(CONF_MODULE, (st))
404#define sk_CONF_MODULE_pop(st) SKM_sk_pop(CONF_MODULE, (st)) 417#define sk_CONF_MODULE_pop(st) SKM_sk_pop(CONF_MODULE, (st))
405#define sk_CONF_MODULE_sort(st) SKM_sk_sort(CONF_MODULE, (st)) 418#define sk_CONF_MODULE_sort(st) SKM_sk_sort(CONF_MODULE, (st))
419#define sk_CONF_MODULE_is_sorted(st) SKM_sk_is_sorted(CONF_MODULE, (st))
406 420
407#define sk_CONF_VALUE_new(st) SKM_sk_new(CONF_VALUE, (st)) 421#define sk_CONF_VALUE_new(st) SKM_sk_new(CONF_VALUE, (st))
408#define sk_CONF_VALUE_new_null() SKM_sk_new_null(CONF_VALUE) 422#define sk_CONF_VALUE_new_null() SKM_sk_new_null(CONF_VALUE)
@@ -423,6 +437,7 @@ STACK_OF(type) \
423#define sk_CONF_VALUE_shift(st) SKM_sk_shift(CONF_VALUE, (st)) 437#define sk_CONF_VALUE_shift(st) SKM_sk_shift(CONF_VALUE, (st))
424#define sk_CONF_VALUE_pop(st) SKM_sk_pop(CONF_VALUE, (st)) 438#define sk_CONF_VALUE_pop(st) SKM_sk_pop(CONF_VALUE, (st))
425#define sk_CONF_VALUE_sort(st) SKM_sk_sort(CONF_VALUE, (st)) 439#define sk_CONF_VALUE_sort(st) SKM_sk_sort(CONF_VALUE, (st))
440#define sk_CONF_VALUE_is_sorted(st) SKM_sk_is_sorted(CONF_VALUE, (st))
426 441
427#define sk_CRYPTO_EX_DATA_FUNCS_new(st) SKM_sk_new(CRYPTO_EX_DATA_FUNCS, (st)) 442#define sk_CRYPTO_EX_DATA_FUNCS_new(st) SKM_sk_new(CRYPTO_EX_DATA_FUNCS, (st))
428#define sk_CRYPTO_EX_DATA_FUNCS_new_null() SKM_sk_new_null(CRYPTO_EX_DATA_FUNCS) 443#define sk_CRYPTO_EX_DATA_FUNCS_new_null() SKM_sk_new_null(CRYPTO_EX_DATA_FUNCS)
@@ -443,6 +458,7 @@ STACK_OF(type) \
443#define sk_CRYPTO_EX_DATA_FUNCS_shift(st) SKM_sk_shift(CRYPTO_EX_DATA_FUNCS, (st)) 458#define sk_CRYPTO_EX_DATA_FUNCS_shift(st) SKM_sk_shift(CRYPTO_EX_DATA_FUNCS, (st))
444#define sk_CRYPTO_EX_DATA_FUNCS_pop(st) SKM_sk_pop(CRYPTO_EX_DATA_FUNCS, (st)) 459#define sk_CRYPTO_EX_DATA_FUNCS_pop(st) SKM_sk_pop(CRYPTO_EX_DATA_FUNCS, (st))
445#define sk_CRYPTO_EX_DATA_FUNCS_sort(st) SKM_sk_sort(CRYPTO_EX_DATA_FUNCS, (st)) 460#define sk_CRYPTO_EX_DATA_FUNCS_sort(st) SKM_sk_sort(CRYPTO_EX_DATA_FUNCS, (st))
461#define sk_CRYPTO_EX_DATA_FUNCS_is_sorted(st) SKM_sk_is_sorted(CRYPTO_EX_DATA_FUNCS, (st))
446 462
447#define sk_CRYPTO_dynlock_new(st) SKM_sk_new(CRYPTO_dynlock, (st)) 463#define sk_CRYPTO_dynlock_new(st) SKM_sk_new(CRYPTO_dynlock, (st))
448#define sk_CRYPTO_dynlock_new_null() SKM_sk_new_null(CRYPTO_dynlock) 464#define sk_CRYPTO_dynlock_new_null() SKM_sk_new_null(CRYPTO_dynlock)
@@ -463,6 +479,7 @@ STACK_OF(type) \
463#define sk_CRYPTO_dynlock_shift(st) SKM_sk_shift(CRYPTO_dynlock, (st)) 479#define sk_CRYPTO_dynlock_shift(st) SKM_sk_shift(CRYPTO_dynlock, (st))
464#define sk_CRYPTO_dynlock_pop(st) SKM_sk_pop(CRYPTO_dynlock, (st)) 480#define sk_CRYPTO_dynlock_pop(st) SKM_sk_pop(CRYPTO_dynlock, (st))
465#define sk_CRYPTO_dynlock_sort(st) SKM_sk_sort(CRYPTO_dynlock, (st)) 481#define sk_CRYPTO_dynlock_sort(st) SKM_sk_sort(CRYPTO_dynlock, (st))
482#define sk_CRYPTO_dynlock_is_sorted(st) SKM_sk_is_sorted(CRYPTO_dynlock, (st))
466 483
467#define sk_DIST_POINT_new(st) SKM_sk_new(DIST_POINT, (st)) 484#define sk_DIST_POINT_new(st) SKM_sk_new(DIST_POINT, (st))
468#define sk_DIST_POINT_new_null() SKM_sk_new_null(DIST_POINT) 485#define sk_DIST_POINT_new_null() SKM_sk_new_null(DIST_POINT)
@@ -483,6 +500,7 @@ STACK_OF(type) \
483#define sk_DIST_POINT_shift(st) SKM_sk_shift(DIST_POINT, (st)) 500#define sk_DIST_POINT_shift(st) SKM_sk_shift(DIST_POINT, (st))
484#define sk_DIST_POINT_pop(st) SKM_sk_pop(DIST_POINT, (st)) 501#define sk_DIST_POINT_pop(st) SKM_sk_pop(DIST_POINT, (st))
485#define sk_DIST_POINT_sort(st) SKM_sk_sort(DIST_POINT, (st)) 502#define sk_DIST_POINT_sort(st) SKM_sk_sort(DIST_POINT, (st))
503#define sk_DIST_POINT_is_sorted(st) SKM_sk_is_sorted(DIST_POINT, (st))
486 504
487#define sk_ENGINE_new(st) SKM_sk_new(ENGINE, (st)) 505#define sk_ENGINE_new(st) SKM_sk_new(ENGINE, (st))
488#define sk_ENGINE_new_null() SKM_sk_new_null(ENGINE) 506#define sk_ENGINE_new_null() SKM_sk_new_null(ENGINE)
@@ -503,6 +521,7 @@ STACK_OF(type) \
503#define sk_ENGINE_shift(st) SKM_sk_shift(ENGINE, (st)) 521#define sk_ENGINE_shift(st) SKM_sk_shift(ENGINE, (st))
504#define sk_ENGINE_pop(st) SKM_sk_pop(ENGINE, (st)) 522#define sk_ENGINE_pop(st) SKM_sk_pop(ENGINE, (st))
505#define sk_ENGINE_sort(st) SKM_sk_sort(ENGINE, (st)) 523#define sk_ENGINE_sort(st) SKM_sk_sort(ENGINE, (st))
524#define sk_ENGINE_is_sorted(st) SKM_sk_is_sorted(ENGINE, (st))
506 525
507#define sk_ENGINE_CLEANUP_ITEM_new(st) SKM_sk_new(ENGINE_CLEANUP_ITEM, (st)) 526#define sk_ENGINE_CLEANUP_ITEM_new(st) SKM_sk_new(ENGINE_CLEANUP_ITEM, (st))
508#define sk_ENGINE_CLEANUP_ITEM_new_null() SKM_sk_new_null(ENGINE_CLEANUP_ITEM) 527#define sk_ENGINE_CLEANUP_ITEM_new_null() SKM_sk_new_null(ENGINE_CLEANUP_ITEM)
@@ -523,6 +542,7 @@ STACK_OF(type) \
523#define sk_ENGINE_CLEANUP_ITEM_shift(st) SKM_sk_shift(ENGINE_CLEANUP_ITEM, (st)) 542#define sk_ENGINE_CLEANUP_ITEM_shift(st) SKM_sk_shift(ENGINE_CLEANUP_ITEM, (st))
524#define sk_ENGINE_CLEANUP_ITEM_pop(st) SKM_sk_pop(ENGINE_CLEANUP_ITEM, (st)) 543#define sk_ENGINE_CLEANUP_ITEM_pop(st) SKM_sk_pop(ENGINE_CLEANUP_ITEM, (st))
525#define sk_ENGINE_CLEANUP_ITEM_sort(st) SKM_sk_sort(ENGINE_CLEANUP_ITEM, (st)) 544#define sk_ENGINE_CLEANUP_ITEM_sort(st) SKM_sk_sort(ENGINE_CLEANUP_ITEM, (st))
545#define sk_ENGINE_CLEANUP_ITEM_is_sorted(st) SKM_sk_is_sorted(ENGINE_CLEANUP_ITEM, (st))
526 546
527#define sk_GENERAL_NAME_new(st) SKM_sk_new(GENERAL_NAME, (st)) 547#define sk_GENERAL_NAME_new(st) SKM_sk_new(GENERAL_NAME, (st))
528#define sk_GENERAL_NAME_new_null() SKM_sk_new_null(GENERAL_NAME) 548#define sk_GENERAL_NAME_new_null() SKM_sk_new_null(GENERAL_NAME)
@@ -543,6 +563,7 @@ STACK_OF(type) \
543#define sk_GENERAL_NAME_shift(st) SKM_sk_shift(GENERAL_NAME, (st)) 563#define sk_GENERAL_NAME_shift(st) SKM_sk_shift(GENERAL_NAME, (st))
544#define sk_GENERAL_NAME_pop(st) SKM_sk_pop(GENERAL_NAME, (st)) 564#define sk_GENERAL_NAME_pop(st) SKM_sk_pop(GENERAL_NAME, (st))
545#define sk_GENERAL_NAME_sort(st) SKM_sk_sort(GENERAL_NAME, (st)) 565#define sk_GENERAL_NAME_sort(st) SKM_sk_sort(GENERAL_NAME, (st))
566#define sk_GENERAL_NAME_is_sorted(st) SKM_sk_is_sorted(GENERAL_NAME, (st))
546 567
547#define sk_KRB5_APREQBODY_new(st) SKM_sk_new(KRB5_APREQBODY, (st)) 568#define sk_KRB5_APREQBODY_new(st) SKM_sk_new(KRB5_APREQBODY, (st))
548#define sk_KRB5_APREQBODY_new_null() SKM_sk_new_null(KRB5_APREQBODY) 569#define sk_KRB5_APREQBODY_new_null() SKM_sk_new_null(KRB5_APREQBODY)
@@ -563,6 +584,7 @@ STACK_OF(type) \
563#define sk_KRB5_APREQBODY_shift(st) SKM_sk_shift(KRB5_APREQBODY, (st)) 584#define sk_KRB5_APREQBODY_shift(st) SKM_sk_shift(KRB5_APREQBODY, (st))
564#define sk_KRB5_APREQBODY_pop(st) SKM_sk_pop(KRB5_APREQBODY, (st)) 585#define sk_KRB5_APREQBODY_pop(st) SKM_sk_pop(KRB5_APREQBODY, (st))
565#define sk_KRB5_APREQBODY_sort(st) SKM_sk_sort(KRB5_APREQBODY, (st)) 586#define sk_KRB5_APREQBODY_sort(st) SKM_sk_sort(KRB5_APREQBODY, (st))
587#define sk_KRB5_APREQBODY_is_sorted(st) SKM_sk_is_sorted(KRB5_APREQBODY, (st))
566 588
567#define sk_KRB5_AUTHDATA_new(st) SKM_sk_new(KRB5_AUTHDATA, (st)) 589#define sk_KRB5_AUTHDATA_new(st) SKM_sk_new(KRB5_AUTHDATA, (st))
568#define sk_KRB5_AUTHDATA_new_null() SKM_sk_new_null(KRB5_AUTHDATA) 590#define sk_KRB5_AUTHDATA_new_null() SKM_sk_new_null(KRB5_AUTHDATA)
@@ -583,6 +605,7 @@ STACK_OF(type) \
583#define sk_KRB5_AUTHDATA_shift(st) SKM_sk_shift(KRB5_AUTHDATA, (st)) 605#define sk_KRB5_AUTHDATA_shift(st) SKM_sk_shift(KRB5_AUTHDATA, (st))
584#define sk_KRB5_AUTHDATA_pop(st) SKM_sk_pop(KRB5_AUTHDATA, (st)) 606#define sk_KRB5_AUTHDATA_pop(st) SKM_sk_pop(KRB5_AUTHDATA, (st))
585#define sk_KRB5_AUTHDATA_sort(st) SKM_sk_sort(KRB5_AUTHDATA, (st)) 607#define sk_KRB5_AUTHDATA_sort(st) SKM_sk_sort(KRB5_AUTHDATA, (st))
608#define sk_KRB5_AUTHDATA_is_sorted(st) SKM_sk_is_sorted(KRB5_AUTHDATA, (st))
586 609
587#define sk_KRB5_AUTHENTBODY_new(st) SKM_sk_new(KRB5_AUTHENTBODY, (st)) 610#define sk_KRB5_AUTHENTBODY_new(st) SKM_sk_new(KRB5_AUTHENTBODY, (st))
588#define sk_KRB5_AUTHENTBODY_new_null() SKM_sk_new_null(KRB5_AUTHENTBODY) 611#define sk_KRB5_AUTHENTBODY_new_null() SKM_sk_new_null(KRB5_AUTHENTBODY)
@@ -603,6 +626,7 @@ STACK_OF(type) \
603#define sk_KRB5_AUTHENTBODY_shift(st) SKM_sk_shift(KRB5_AUTHENTBODY, (st)) 626#define sk_KRB5_AUTHENTBODY_shift(st) SKM_sk_shift(KRB5_AUTHENTBODY, (st))
604#define sk_KRB5_AUTHENTBODY_pop(st) SKM_sk_pop(KRB5_AUTHENTBODY, (st)) 627#define sk_KRB5_AUTHENTBODY_pop(st) SKM_sk_pop(KRB5_AUTHENTBODY, (st))
605#define sk_KRB5_AUTHENTBODY_sort(st) SKM_sk_sort(KRB5_AUTHENTBODY, (st)) 628#define sk_KRB5_AUTHENTBODY_sort(st) SKM_sk_sort(KRB5_AUTHENTBODY, (st))
629#define sk_KRB5_AUTHENTBODY_is_sorted(st) SKM_sk_is_sorted(KRB5_AUTHENTBODY, (st))
606 630
607#define sk_KRB5_CHECKSUM_new(st) SKM_sk_new(KRB5_CHECKSUM, (st)) 631#define sk_KRB5_CHECKSUM_new(st) SKM_sk_new(KRB5_CHECKSUM, (st))
608#define sk_KRB5_CHECKSUM_new_null() SKM_sk_new_null(KRB5_CHECKSUM) 632#define sk_KRB5_CHECKSUM_new_null() SKM_sk_new_null(KRB5_CHECKSUM)
@@ -623,6 +647,7 @@ STACK_OF(type) \
623#define sk_KRB5_CHECKSUM_shift(st) SKM_sk_shift(KRB5_CHECKSUM, (st)) 647#define sk_KRB5_CHECKSUM_shift(st) SKM_sk_shift(KRB5_CHECKSUM, (st))
624#define sk_KRB5_CHECKSUM_pop(st) SKM_sk_pop(KRB5_CHECKSUM, (st)) 648#define sk_KRB5_CHECKSUM_pop(st) SKM_sk_pop(KRB5_CHECKSUM, (st))
625#define sk_KRB5_CHECKSUM_sort(st) SKM_sk_sort(KRB5_CHECKSUM, (st)) 649#define sk_KRB5_CHECKSUM_sort(st) SKM_sk_sort(KRB5_CHECKSUM, (st))
650#define sk_KRB5_CHECKSUM_is_sorted(st) SKM_sk_is_sorted(KRB5_CHECKSUM, (st))
626 651
627#define sk_KRB5_ENCDATA_new(st) SKM_sk_new(KRB5_ENCDATA, (st)) 652#define sk_KRB5_ENCDATA_new(st) SKM_sk_new(KRB5_ENCDATA, (st))
628#define sk_KRB5_ENCDATA_new_null() SKM_sk_new_null(KRB5_ENCDATA) 653#define sk_KRB5_ENCDATA_new_null() SKM_sk_new_null(KRB5_ENCDATA)
@@ -643,6 +668,7 @@ STACK_OF(type) \
643#define sk_KRB5_ENCDATA_shift(st) SKM_sk_shift(KRB5_ENCDATA, (st)) 668#define sk_KRB5_ENCDATA_shift(st) SKM_sk_shift(KRB5_ENCDATA, (st))
644#define sk_KRB5_ENCDATA_pop(st) SKM_sk_pop(KRB5_ENCDATA, (st)) 669#define sk_KRB5_ENCDATA_pop(st) SKM_sk_pop(KRB5_ENCDATA, (st))
645#define sk_KRB5_ENCDATA_sort(st) SKM_sk_sort(KRB5_ENCDATA, (st)) 670#define sk_KRB5_ENCDATA_sort(st) SKM_sk_sort(KRB5_ENCDATA, (st))
671#define sk_KRB5_ENCDATA_is_sorted(st) SKM_sk_is_sorted(KRB5_ENCDATA, (st))
646 672
647#define sk_KRB5_ENCKEY_new(st) SKM_sk_new(KRB5_ENCKEY, (st)) 673#define sk_KRB5_ENCKEY_new(st) SKM_sk_new(KRB5_ENCKEY, (st))
648#define sk_KRB5_ENCKEY_new_null() SKM_sk_new_null(KRB5_ENCKEY) 674#define sk_KRB5_ENCKEY_new_null() SKM_sk_new_null(KRB5_ENCKEY)
@@ -663,6 +689,7 @@ STACK_OF(type) \
663#define sk_KRB5_ENCKEY_shift(st) SKM_sk_shift(KRB5_ENCKEY, (st)) 689#define sk_KRB5_ENCKEY_shift(st) SKM_sk_shift(KRB5_ENCKEY, (st))
664#define sk_KRB5_ENCKEY_pop(st) SKM_sk_pop(KRB5_ENCKEY, (st)) 690#define sk_KRB5_ENCKEY_pop(st) SKM_sk_pop(KRB5_ENCKEY, (st))
665#define sk_KRB5_ENCKEY_sort(st) SKM_sk_sort(KRB5_ENCKEY, (st)) 691#define sk_KRB5_ENCKEY_sort(st) SKM_sk_sort(KRB5_ENCKEY, (st))
692#define sk_KRB5_ENCKEY_is_sorted(st) SKM_sk_is_sorted(KRB5_ENCKEY, (st))
666 693
667#define sk_KRB5_PRINCNAME_new(st) SKM_sk_new(KRB5_PRINCNAME, (st)) 694#define sk_KRB5_PRINCNAME_new(st) SKM_sk_new(KRB5_PRINCNAME, (st))
668#define sk_KRB5_PRINCNAME_new_null() SKM_sk_new_null(KRB5_PRINCNAME) 695#define sk_KRB5_PRINCNAME_new_null() SKM_sk_new_null(KRB5_PRINCNAME)
@@ -683,6 +710,7 @@ STACK_OF(type) \
683#define sk_KRB5_PRINCNAME_shift(st) SKM_sk_shift(KRB5_PRINCNAME, (st)) 710#define sk_KRB5_PRINCNAME_shift(st) SKM_sk_shift(KRB5_PRINCNAME, (st))
684#define sk_KRB5_PRINCNAME_pop(st) SKM_sk_pop(KRB5_PRINCNAME, (st)) 711#define sk_KRB5_PRINCNAME_pop(st) SKM_sk_pop(KRB5_PRINCNAME, (st))
685#define sk_KRB5_PRINCNAME_sort(st) SKM_sk_sort(KRB5_PRINCNAME, (st)) 712#define sk_KRB5_PRINCNAME_sort(st) SKM_sk_sort(KRB5_PRINCNAME, (st))
713#define sk_KRB5_PRINCNAME_is_sorted(st) SKM_sk_is_sorted(KRB5_PRINCNAME, (st))
686 714
687#define sk_KRB5_TKTBODY_new(st) SKM_sk_new(KRB5_TKTBODY, (st)) 715#define sk_KRB5_TKTBODY_new(st) SKM_sk_new(KRB5_TKTBODY, (st))
688#define sk_KRB5_TKTBODY_new_null() SKM_sk_new_null(KRB5_TKTBODY) 716#define sk_KRB5_TKTBODY_new_null() SKM_sk_new_null(KRB5_TKTBODY)
@@ -703,6 +731,7 @@ STACK_OF(type) \
703#define sk_KRB5_TKTBODY_shift(st) SKM_sk_shift(KRB5_TKTBODY, (st)) 731#define sk_KRB5_TKTBODY_shift(st) SKM_sk_shift(KRB5_TKTBODY, (st))
704#define sk_KRB5_TKTBODY_pop(st) SKM_sk_pop(KRB5_TKTBODY, (st)) 732#define sk_KRB5_TKTBODY_pop(st) SKM_sk_pop(KRB5_TKTBODY, (st))
705#define sk_KRB5_TKTBODY_sort(st) SKM_sk_sort(KRB5_TKTBODY, (st)) 733#define sk_KRB5_TKTBODY_sort(st) SKM_sk_sort(KRB5_TKTBODY, (st))
734#define sk_KRB5_TKTBODY_is_sorted(st) SKM_sk_is_sorted(KRB5_TKTBODY, (st))
706 735
707#define sk_MIME_HEADER_new(st) SKM_sk_new(MIME_HEADER, (st)) 736#define sk_MIME_HEADER_new(st) SKM_sk_new(MIME_HEADER, (st))
708#define sk_MIME_HEADER_new_null() SKM_sk_new_null(MIME_HEADER) 737#define sk_MIME_HEADER_new_null() SKM_sk_new_null(MIME_HEADER)
@@ -723,6 +752,7 @@ STACK_OF(type) \
723#define sk_MIME_HEADER_shift(st) SKM_sk_shift(MIME_HEADER, (st)) 752#define sk_MIME_HEADER_shift(st) SKM_sk_shift(MIME_HEADER, (st))
724#define sk_MIME_HEADER_pop(st) SKM_sk_pop(MIME_HEADER, (st)) 753#define sk_MIME_HEADER_pop(st) SKM_sk_pop(MIME_HEADER, (st))
725#define sk_MIME_HEADER_sort(st) SKM_sk_sort(MIME_HEADER, (st)) 754#define sk_MIME_HEADER_sort(st) SKM_sk_sort(MIME_HEADER, (st))
755#define sk_MIME_HEADER_is_sorted(st) SKM_sk_is_sorted(MIME_HEADER, (st))
726 756
727#define sk_MIME_PARAM_new(st) SKM_sk_new(MIME_PARAM, (st)) 757#define sk_MIME_PARAM_new(st) SKM_sk_new(MIME_PARAM, (st))
728#define sk_MIME_PARAM_new_null() SKM_sk_new_null(MIME_PARAM) 758#define sk_MIME_PARAM_new_null() SKM_sk_new_null(MIME_PARAM)
@@ -743,6 +773,7 @@ STACK_OF(type) \
743#define sk_MIME_PARAM_shift(st) SKM_sk_shift(MIME_PARAM, (st)) 773#define sk_MIME_PARAM_shift(st) SKM_sk_shift(MIME_PARAM, (st))
744#define sk_MIME_PARAM_pop(st) SKM_sk_pop(MIME_PARAM, (st)) 774#define sk_MIME_PARAM_pop(st) SKM_sk_pop(MIME_PARAM, (st))
745#define sk_MIME_PARAM_sort(st) SKM_sk_sort(MIME_PARAM, (st)) 775#define sk_MIME_PARAM_sort(st) SKM_sk_sort(MIME_PARAM, (st))
776#define sk_MIME_PARAM_is_sorted(st) SKM_sk_is_sorted(MIME_PARAM, (st))
746 777
747#define sk_NAME_FUNCS_new(st) SKM_sk_new(NAME_FUNCS, (st)) 778#define sk_NAME_FUNCS_new(st) SKM_sk_new(NAME_FUNCS, (st))
748#define sk_NAME_FUNCS_new_null() SKM_sk_new_null(NAME_FUNCS) 779#define sk_NAME_FUNCS_new_null() SKM_sk_new_null(NAME_FUNCS)
@@ -763,6 +794,7 @@ STACK_OF(type) \
763#define sk_NAME_FUNCS_shift(st) SKM_sk_shift(NAME_FUNCS, (st)) 794#define sk_NAME_FUNCS_shift(st) SKM_sk_shift(NAME_FUNCS, (st))
764#define sk_NAME_FUNCS_pop(st) SKM_sk_pop(NAME_FUNCS, (st)) 795#define sk_NAME_FUNCS_pop(st) SKM_sk_pop(NAME_FUNCS, (st))
765#define sk_NAME_FUNCS_sort(st) SKM_sk_sort(NAME_FUNCS, (st)) 796#define sk_NAME_FUNCS_sort(st) SKM_sk_sort(NAME_FUNCS, (st))
797#define sk_NAME_FUNCS_is_sorted(st) SKM_sk_is_sorted(NAME_FUNCS, (st))
766 798
767#define sk_OCSP_CERTID_new(st) SKM_sk_new(OCSP_CERTID, (st)) 799#define sk_OCSP_CERTID_new(st) SKM_sk_new(OCSP_CERTID, (st))
768#define sk_OCSP_CERTID_new_null() SKM_sk_new_null(OCSP_CERTID) 800#define sk_OCSP_CERTID_new_null() SKM_sk_new_null(OCSP_CERTID)
@@ -783,6 +815,7 @@ STACK_OF(type) \
783#define sk_OCSP_CERTID_shift(st) SKM_sk_shift(OCSP_CERTID, (st)) 815#define sk_OCSP_CERTID_shift(st) SKM_sk_shift(OCSP_CERTID, (st))
784#define sk_OCSP_CERTID_pop(st) SKM_sk_pop(OCSP_CERTID, (st)) 816#define sk_OCSP_CERTID_pop(st) SKM_sk_pop(OCSP_CERTID, (st))
785#define sk_OCSP_CERTID_sort(st) SKM_sk_sort(OCSP_CERTID, (st)) 817#define sk_OCSP_CERTID_sort(st) SKM_sk_sort(OCSP_CERTID, (st))
818#define sk_OCSP_CERTID_is_sorted(st) SKM_sk_is_sorted(OCSP_CERTID, (st))
786 819
787#define sk_OCSP_ONEREQ_new(st) SKM_sk_new(OCSP_ONEREQ, (st)) 820#define sk_OCSP_ONEREQ_new(st) SKM_sk_new(OCSP_ONEREQ, (st))
788#define sk_OCSP_ONEREQ_new_null() SKM_sk_new_null(OCSP_ONEREQ) 821#define sk_OCSP_ONEREQ_new_null() SKM_sk_new_null(OCSP_ONEREQ)
@@ -803,6 +836,7 @@ STACK_OF(type) \
803#define sk_OCSP_ONEREQ_shift(st) SKM_sk_shift(OCSP_ONEREQ, (st)) 836#define sk_OCSP_ONEREQ_shift(st) SKM_sk_shift(OCSP_ONEREQ, (st))
804#define sk_OCSP_ONEREQ_pop(st) SKM_sk_pop(OCSP_ONEREQ, (st)) 837#define sk_OCSP_ONEREQ_pop(st) SKM_sk_pop(OCSP_ONEREQ, (st))
805#define sk_OCSP_ONEREQ_sort(st) SKM_sk_sort(OCSP_ONEREQ, (st)) 838#define sk_OCSP_ONEREQ_sort(st) SKM_sk_sort(OCSP_ONEREQ, (st))
839#define sk_OCSP_ONEREQ_is_sorted(st) SKM_sk_is_sorted(OCSP_ONEREQ, (st))
806 840
807#define sk_OCSP_SINGLERESP_new(st) SKM_sk_new(OCSP_SINGLERESP, (st)) 841#define sk_OCSP_SINGLERESP_new(st) SKM_sk_new(OCSP_SINGLERESP, (st))
808#define sk_OCSP_SINGLERESP_new_null() SKM_sk_new_null(OCSP_SINGLERESP) 842#define sk_OCSP_SINGLERESP_new_null() SKM_sk_new_null(OCSP_SINGLERESP)
@@ -823,6 +857,7 @@ STACK_OF(type) \
823#define sk_OCSP_SINGLERESP_shift(st) SKM_sk_shift(OCSP_SINGLERESP, (st)) 857#define sk_OCSP_SINGLERESP_shift(st) SKM_sk_shift(OCSP_SINGLERESP, (st))
824#define sk_OCSP_SINGLERESP_pop(st) SKM_sk_pop(OCSP_SINGLERESP, (st)) 858#define sk_OCSP_SINGLERESP_pop(st) SKM_sk_pop(OCSP_SINGLERESP, (st))
825#define sk_OCSP_SINGLERESP_sort(st) SKM_sk_sort(OCSP_SINGLERESP, (st)) 859#define sk_OCSP_SINGLERESP_sort(st) SKM_sk_sort(OCSP_SINGLERESP, (st))
860#define sk_OCSP_SINGLERESP_is_sorted(st) SKM_sk_is_sorted(OCSP_SINGLERESP, (st))
826 861
827#define sk_PKCS12_SAFEBAG_new(st) SKM_sk_new(PKCS12_SAFEBAG, (st)) 862#define sk_PKCS12_SAFEBAG_new(st) SKM_sk_new(PKCS12_SAFEBAG, (st))
828#define sk_PKCS12_SAFEBAG_new_null() SKM_sk_new_null(PKCS12_SAFEBAG) 863#define sk_PKCS12_SAFEBAG_new_null() SKM_sk_new_null(PKCS12_SAFEBAG)
@@ -843,6 +878,7 @@ STACK_OF(type) \
843#define sk_PKCS12_SAFEBAG_shift(st) SKM_sk_shift(PKCS12_SAFEBAG, (st)) 878#define sk_PKCS12_SAFEBAG_shift(st) SKM_sk_shift(PKCS12_SAFEBAG, (st))
844#define sk_PKCS12_SAFEBAG_pop(st) SKM_sk_pop(PKCS12_SAFEBAG, (st)) 879#define sk_PKCS12_SAFEBAG_pop(st) SKM_sk_pop(PKCS12_SAFEBAG, (st))
845#define sk_PKCS12_SAFEBAG_sort(st) SKM_sk_sort(PKCS12_SAFEBAG, (st)) 880#define sk_PKCS12_SAFEBAG_sort(st) SKM_sk_sort(PKCS12_SAFEBAG, (st))
881#define sk_PKCS12_SAFEBAG_is_sorted(st) SKM_sk_is_sorted(PKCS12_SAFEBAG, (st))
846 882
847#define sk_PKCS7_new(st) SKM_sk_new(PKCS7, (st)) 883#define sk_PKCS7_new(st) SKM_sk_new(PKCS7, (st))
848#define sk_PKCS7_new_null() SKM_sk_new_null(PKCS7) 884#define sk_PKCS7_new_null() SKM_sk_new_null(PKCS7)
@@ -863,6 +899,7 @@ STACK_OF(type) \
863#define sk_PKCS7_shift(st) SKM_sk_shift(PKCS7, (st)) 899#define sk_PKCS7_shift(st) SKM_sk_shift(PKCS7, (st))
864#define sk_PKCS7_pop(st) SKM_sk_pop(PKCS7, (st)) 900#define sk_PKCS7_pop(st) SKM_sk_pop(PKCS7, (st))
865#define sk_PKCS7_sort(st) SKM_sk_sort(PKCS7, (st)) 901#define sk_PKCS7_sort(st) SKM_sk_sort(PKCS7, (st))
902#define sk_PKCS7_is_sorted(st) SKM_sk_is_sorted(PKCS7, (st))
866 903
867#define sk_PKCS7_RECIP_INFO_new(st) SKM_sk_new(PKCS7_RECIP_INFO, (st)) 904#define sk_PKCS7_RECIP_INFO_new(st) SKM_sk_new(PKCS7_RECIP_INFO, (st))
868#define sk_PKCS7_RECIP_INFO_new_null() SKM_sk_new_null(PKCS7_RECIP_INFO) 905#define sk_PKCS7_RECIP_INFO_new_null() SKM_sk_new_null(PKCS7_RECIP_INFO)
@@ -883,6 +920,7 @@ STACK_OF(type) \
883#define sk_PKCS7_RECIP_INFO_shift(st) SKM_sk_shift(PKCS7_RECIP_INFO, (st)) 920#define sk_PKCS7_RECIP_INFO_shift(st) SKM_sk_shift(PKCS7_RECIP_INFO, (st))
884#define sk_PKCS7_RECIP_INFO_pop(st) SKM_sk_pop(PKCS7_RECIP_INFO, (st)) 921#define sk_PKCS7_RECIP_INFO_pop(st) SKM_sk_pop(PKCS7_RECIP_INFO, (st))
885#define sk_PKCS7_RECIP_INFO_sort(st) SKM_sk_sort(PKCS7_RECIP_INFO, (st)) 922#define sk_PKCS7_RECIP_INFO_sort(st) SKM_sk_sort(PKCS7_RECIP_INFO, (st))
923#define sk_PKCS7_RECIP_INFO_is_sorted(st) SKM_sk_is_sorted(PKCS7_RECIP_INFO, (st))
886 924
887#define sk_PKCS7_SIGNER_INFO_new(st) SKM_sk_new(PKCS7_SIGNER_INFO, (st)) 925#define sk_PKCS7_SIGNER_INFO_new(st) SKM_sk_new(PKCS7_SIGNER_INFO, (st))
888#define sk_PKCS7_SIGNER_INFO_new_null() SKM_sk_new_null(PKCS7_SIGNER_INFO) 926#define sk_PKCS7_SIGNER_INFO_new_null() SKM_sk_new_null(PKCS7_SIGNER_INFO)
@@ -903,6 +941,7 @@ STACK_OF(type) \
903#define sk_PKCS7_SIGNER_INFO_shift(st) SKM_sk_shift(PKCS7_SIGNER_INFO, (st)) 941#define sk_PKCS7_SIGNER_INFO_shift(st) SKM_sk_shift(PKCS7_SIGNER_INFO, (st))
904#define sk_PKCS7_SIGNER_INFO_pop(st) SKM_sk_pop(PKCS7_SIGNER_INFO, (st)) 942#define sk_PKCS7_SIGNER_INFO_pop(st) SKM_sk_pop(PKCS7_SIGNER_INFO, (st))
905#define sk_PKCS7_SIGNER_INFO_sort(st) SKM_sk_sort(PKCS7_SIGNER_INFO, (st)) 943#define sk_PKCS7_SIGNER_INFO_sort(st) SKM_sk_sort(PKCS7_SIGNER_INFO, (st))
944#define sk_PKCS7_SIGNER_INFO_is_sorted(st) SKM_sk_is_sorted(PKCS7_SIGNER_INFO, (st))
906 945
907#define sk_POLICYINFO_new(st) SKM_sk_new(POLICYINFO, (st)) 946#define sk_POLICYINFO_new(st) SKM_sk_new(POLICYINFO, (st))
908#define sk_POLICYINFO_new_null() SKM_sk_new_null(POLICYINFO) 947#define sk_POLICYINFO_new_null() SKM_sk_new_null(POLICYINFO)
@@ -923,6 +962,7 @@ STACK_OF(type) \
923#define sk_POLICYINFO_shift(st) SKM_sk_shift(POLICYINFO, (st)) 962#define sk_POLICYINFO_shift(st) SKM_sk_shift(POLICYINFO, (st))
924#define sk_POLICYINFO_pop(st) SKM_sk_pop(POLICYINFO, (st)) 963#define sk_POLICYINFO_pop(st) SKM_sk_pop(POLICYINFO, (st))
925#define sk_POLICYINFO_sort(st) SKM_sk_sort(POLICYINFO, (st)) 964#define sk_POLICYINFO_sort(st) SKM_sk_sort(POLICYINFO, (st))
965#define sk_POLICYINFO_is_sorted(st) SKM_sk_is_sorted(POLICYINFO, (st))
926 966
927#define sk_POLICYQUALINFO_new(st) SKM_sk_new(POLICYQUALINFO, (st)) 967#define sk_POLICYQUALINFO_new(st) SKM_sk_new(POLICYQUALINFO, (st))
928#define sk_POLICYQUALINFO_new_null() SKM_sk_new_null(POLICYQUALINFO) 968#define sk_POLICYQUALINFO_new_null() SKM_sk_new_null(POLICYQUALINFO)
@@ -943,6 +983,7 @@ STACK_OF(type) \
943#define sk_POLICYQUALINFO_shift(st) SKM_sk_shift(POLICYQUALINFO, (st)) 983#define sk_POLICYQUALINFO_shift(st) SKM_sk_shift(POLICYQUALINFO, (st))
944#define sk_POLICYQUALINFO_pop(st) SKM_sk_pop(POLICYQUALINFO, (st)) 984#define sk_POLICYQUALINFO_pop(st) SKM_sk_pop(POLICYQUALINFO, (st))
945#define sk_POLICYQUALINFO_sort(st) SKM_sk_sort(POLICYQUALINFO, (st)) 985#define sk_POLICYQUALINFO_sort(st) SKM_sk_sort(POLICYQUALINFO, (st))
986#define sk_POLICYQUALINFO_is_sorted(st) SKM_sk_is_sorted(POLICYQUALINFO, (st))
946 987
947#define sk_SSL_CIPHER_new(st) SKM_sk_new(SSL_CIPHER, (st)) 988#define sk_SSL_CIPHER_new(st) SKM_sk_new(SSL_CIPHER, (st))
948#define sk_SSL_CIPHER_new_null() SKM_sk_new_null(SSL_CIPHER) 989#define sk_SSL_CIPHER_new_null() SKM_sk_new_null(SSL_CIPHER)
@@ -963,6 +1004,7 @@ STACK_OF(type) \
963#define sk_SSL_CIPHER_shift(st) SKM_sk_shift(SSL_CIPHER, (st)) 1004#define sk_SSL_CIPHER_shift(st) SKM_sk_shift(SSL_CIPHER, (st))
964#define sk_SSL_CIPHER_pop(st) SKM_sk_pop(SSL_CIPHER, (st)) 1005#define sk_SSL_CIPHER_pop(st) SKM_sk_pop(SSL_CIPHER, (st))
965#define sk_SSL_CIPHER_sort(st) SKM_sk_sort(SSL_CIPHER, (st)) 1006#define sk_SSL_CIPHER_sort(st) SKM_sk_sort(SSL_CIPHER, (st))
1007#define sk_SSL_CIPHER_is_sorted(st) SKM_sk_is_sorted(SSL_CIPHER, (st))
966 1008
967#define sk_SSL_COMP_new(st) SKM_sk_new(SSL_COMP, (st)) 1009#define sk_SSL_COMP_new(st) SKM_sk_new(SSL_COMP, (st))
968#define sk_SSL_COMP_new_null() SKM_sk_new_null(SSL_COMP) 1010#define sk_SSL_COMP_new_null() SKM_sk_new_null(SSL_COMP)
@@ -983,6 +1025,7 @@ STACK_OF(type) \
983#define sk_SSL_COMP_shift(st) SKM_sk_shift(SSL_COMP, (st)) 1025#define sk_SSL_COMP_shift(st) SKM_sk_shift(SSL_COMP, (st))
984#define sk_SSL_COMP_pop(st) SKM_sk_pop(SSL_COMP, (st)) 1026#define sk_SSL_COMP_pop(st) SKM_sk_pop(SSL_COMP, (st))
985#define sk_SSL_COMP_sort(st) SKM_sk_sort(SSL_COMP, (st)) 1027#define sk_SSL_COMP_sort(st) SKM_sk_sort(SSL_COMP, (st))
1028#define sk_SSL_COMP_is_sorted(st) SKM_sk_is_sorted(SSL_COMP, (st))
986 1029
987#define sk_SXNETID_new(st) SKM_sk_new(SXNETID, (st)) 1030#define sk_SXNETID_new(st) SKM_sk_new(SXNETID, (st))
988#define sk_SXNETID_new_null() SKM_sk_new_null(SXNETID) 1031#define sk_SXNETID_new_null() SKM_sk_new_null(SXNETID)
@@ -1003,6 +1046,7 @@ STACK_OF(type) \
1003#define sk_SXNETID_shift(st) SKM_sk_shift(SXNETID, (st)) 1046#define sk_SXNETID_shift(st) SKM_sk_shift(SXNETID, (st))
1004#define sk_SXNETID_pop(st) SKM_sk_pop(SXNETID, (st)) 1047#define sk_SXNETID_pop(st) SKM_sk_pop(SXNETID, (st))
1005#define sk_SXNETID_sort(st) SKM_sk_sort(SXNETID, (st)) 1048#define sk_SXNETID_sort(st) SKM_sk_sort(SXNETID, (st))
1049#define sk_SXNETID_is_sorted(st) SKM_sk_is_sorted(SXNETID, (st))
1006 1050
1007#define sk_UI_STRING_new(st) SKM_sk_new(UI_STRING, (st)) 1051#define sk_UI_STRING_new(st) SKM_sk_new(UI_STRING, (st))
1008#define sk_UI_STRING_new_null() SKM_sk_new_null(UI_STRING) 1052#define sk_UI_STRING_new_null() SKM_sk_new_null(UI_STRING)
@@ -1023,6 +1067,7 @@ STACK_OF(type) \
1023#define sk_UI_STRING_shift(st) SKM_sk_shift(UI_STRING, (st)) 1067#define sk_UI_STRING_shift(st) SKM_sk_shift(UI_STRING, (st))
1024#define sk_UI_STRING_pop(st) SKM_sk_pop(UI_STRING, (st)) 1068#define sk_UI_STRING_pop(st) SKM_sk_pop(UI_STRING, (st))
1025#define sk_UI_STRING_sort(st) SKM_sk_sort(UI_STRING, (st)) 1069#define sk_UI_STRING_sort(st) SKM_sk_sort(UI_STRING, (st))
1070#define sk_UI_STRING_is_sorted(st) SKM_sk_is_sorted(UI_STRING, (st))
1026 1071
1027#define sk_X509_new(st) SKM_sk_new(X509, (st)) 1072#define sk_X509_new(st) SKM_sk_new(X509, (st))
1028#define sk_X509_new_null() SKM_sk_new_null(X509) 1073#define sk_X509_new_null() SKM_sk_new_null(X509)
@@ -1043,6 +1088,7 @@ STACK_OF(type) \
1043#define sk_X509_shift(st) SKM_sk_shift(X509, (st)) 1088#define sk_X509_shift(st) SKM_sk_shift(X509, (st))
1044#define sk_X509_pop(st) SKM_sk_pop(X509, (st)) 1089#define sk_X509_pop(st) SKM_sk_pop(X509, (st))
1045#define sk_X509_sort(st) SKM_sk_sort(X509, (st)) 1090#define sk_X509_sort(st) SKM_sk_sort(X509, (st))
1091#define sk_X509_is_sorted(st) SKM_sk_is_sorted(X509, (st))
1046 1092
1047#define sk_X509V3_EXT_METHOD_new(st) SKM_sk_new(X509V3_EXT_METHOD, (st)) 1093#define sk_X509V3_EXT_METHOD_new(st) SKM_sk_new(X509V3_EXT_METHOD, (st))
1048#define sk_X509V3_EXT_METHOD_new_null() SKM_sk_new_null(X509V3_EXT_METHOD) 1094#define sk_X509V3_EXT_METHOD_new_null() SKM_sk_new_null(X509V3_EXT_METHOD)
@@ -1063,6 +1109,7 @@ STACK_OF(type) \
1063#define sk_X509V3_EXT_METHOD_shift(st) SKM_sk_shift(X509V3_EXT_METHOD, (st)) 1109#define sk_X509V3_EXT_METHOD_shift(st) SKM_sk_shift(X509V3_EXT_METHOD, (st))
1064#define sk_X509V3_EXT_METHOD_pop(st) SKM_sk_pop(X509V3_EXT_METHOD, (st)) 1110#define sk_X509V3_EXT_METHOD_pop(st) SKM_sk_pop(X509V3_EXT_METHOD, (st))
1065#define sk_X509V3_EXT_METHOD_sort(st) SKM_sk_sort(X509V3_EXT_METHOD, (st)) 1111#define sk_X509V3_EXT_METHOD_sort(st) SKM_sk_sort(X509V3_EXT_METHOD, (st))
1112#define sk_X509V3_EXT_METHOD_is_sorted(st) SKM_sk_is_sorted(X509V3_EXT_METHOD, (st))
1066 1113
1067#define sk_X509_ALGOR_new(st) SKM_sk_new(X509_ALGOR, (st)) 1114#define sk_X509_ALGOR_new(st) SKM_sk_new(X509_ALGOR, (st))
1068#define sk_X509_ALGOR_new_null() SKM_sk_new_null(X509_ALGOR) 1115#define sk_X509_ALGOR_new_null() SKM_sk_new_null(X509_ALGOR)
@@ -1083,6 +1130,7 @@ STACK_OF(type) \
1083#define sk_X509_ALGOR_shift(st) SKM_sk_shift(X509_ALGOR, (st)) 1130#define sk_X509_ALGOR_shift(st) SKM_sk_shift(X509_ALGOR, (st))
1084#define sk_X509_ALGOR_pop(st) SKM_sk_pop(X509_ALGOR, (st)) 1131#define sk_X509_ALGOR_pop(st) SKM_sk_pop(X509_ALGOR, (st))
1085#define sk_X509_ALGOR_sort(st) SKM_sk_sort(X509_ALGOR, (st)) 1132#define sk_X509_ALGOR_sort(st) SKM_sk_sort(X509_ALGOR, (st))
1133#define sk_X509_ALGOR_is_sorted(st) SKM_sk_is_sorted(X509_ALGOR, (st))
1086 1134
1087#define sk_X509_ATTRIBUTE_new(st) SKM_sk_new(X509_ATTRIBUTE, (st)) 1135#define sk_X509_ATTRIBUTE_new(st) SKM_sk_new(X509_ATTRIBUTE, (st))
1088#define sk_X509_ATTRIBUTE_new_null() SKM_sk_new_null(X509_ATTRIBUTE) 1136#define sk_X509_ATTRIBUTE_new_null() SKM_sk_new_null(X509_ATTRIBUTE)
@@ -1103,6 +1151,7 @@ STACK_OF(type) \
1103#define sk_X509_ATTRIBUTE_shift(st) SKM_sk_shift(X509_ATTRIBUTE, (st)) 1151#define sk_X509_ATTRIBUTE_shift(st) SKM_sk_shift(X509_ATTRIBUTE, (st))
1104#define sk_X509_ATTRIBUTE_pop(st) SKM_sk_pop(X509_ATTRIBUTE, (st)) 1152#define sk_X509_ATTRIBUTE_pop(st) SKM_sk_pop(X509_ATTRIBUTE, (st))
1105#define sk_X509_ATTRIBUTE_sort(st) SKM_sk_sort(X509_ATTRIBUTE, (st)) 1153#define sk_X509_ATTRIBUTE_sort(st) SKM_sk_sort(X509_ATTRIBUTE, (st))
1154#define sk_X509_ATTRIBUTE_is_sorted(st) SKM_sk_is_sorted(X509_ATTRIBUTE, (st))
1106 1155
1107#define sk_X509_CRL_new(st) SKM_sk_new(X509_CRL, (st)) 1156#define sk_X509_CRL_new(st) SKM_sk_new(X509_CRL, (st))
1108#define sk_X509_CRL_new_null() SKM_sk_new_null(X509_CRL) 1157#define sk_X509_CRL_new_null() SKM_sk_new_null(X509_CRL)
@@ -1123,6 +1172,7 @@ STACK_OF(type) \
1123#define sk_X509_CRL_shift(st) SKM_sk_shift(X509_CRL, (st)) 1172#define sk_X509_CRL_shift(st) SKM_sk_shift(X509_CRL, (st))
1124#define sk_X509_CRL_pop(st) SKM_sk_pop(X509_CRL, (st)) 1173#define sk_X509_CRL_pop(st) SKM_sk_pop(X509_CRL, (st))
1125#define sk_X509_CRL_sort(st) SKM_sk_sort(X509_CRL, (st)) 1174#define sk_X509_CRL_sort(st) SKM_sk_sort(X509_CRL, (st))
1175#define sk_X509_CRL_is_sorted(st) SKM_sk_is_sorted(X509_CRL, (st))
1126 1176
1127#define sk_X509_EXTENSION_new(st) SKM_sk_new(X509_EXTENSION, (st)) 1177#define sk_X509_EXTENSION_new(st) SKM_sk_new(X509_EXTENSION, (st))
1128#define sk_X509_EXTENSION_new_null() SKM_sk_new_null(X509_EXTENSION) 1178#define sk_X509_EXTENSION_new_null() SKM_sk_new_null(X509_EXTENSION)
@@ -1143,6 +1193,7 @@ STACK_OF(type) \
1143#define sk_X509_EXTENSION_shift(st) SKM_sk_shift(X509_EXTENSION, (st)) 1193#define sk_X509_EXTENSION_shift(st) SKM_sk_shift(X509_EXTENSION, (st))
1144#define sk_X509_EXTENSION_pop(st) SKM_sk_pop(X509_EXTENSION, (st)) 1194#define sk_X509_EXTENSION_pop(st) SKM_sk_pop(X509_EXTENSION, (st))
1145#define sk_X509_EXTENSION_sort(st) SKM_sk_sort(X509_EXTENSION, (st)) 1195#define sk_X509_EXTENSION_sort(st) SKM_sk_sort(X509_EXTENSION, (st))
1196#define sk_X509_EXTENSION_is_sorted(st) SKM_sk_is_sorted(X509_EXTENSION, (st))
1146 1197
1147#define sk_X509_INFO_new(st) SKM_sk_new(X509_INFO, (st)) 1198#define sk_X509_INFO_new(st) SKM_sk_new(X509_INFO, (st))
1148#define sk_X509_INFO_new_null() SKM_sk_new_null(X509_INFO) 1199#define sk_X509_INFO_new_null() SKM_sk_new_null(X509_INFO)
@@ -1163,6 +1214,7 @@ STACK_OF(type) \
1163#define sk_X509_INFO_shift(st) SKM_sk_shift(X509_INFO, (st)) 1214#define sk_X509_INFO_shift(st) SKM_sk_shift(X509_INFO, (st))
1164#define sk_X509_INFO_pop(st) SKM_sk_pop(X509_INFO, (st)) 1215#define sk_X509_INFO_pop(st) SKM_sk_pop(X509_INFO, (st))
1165#define sk_X509_INFO_sort(st) SKM_sk_sort(X509_INFO, (st)) 1216#define sk_X509_INFO_sort(st) SKM_sk_sort(X509_INFO, (st))
1217#define sk_X509_INFO_is_sorted(st) SKM_sk_is_sorted(X509_INFO, (st))
1166 1218
1167#define sk_X509_LOOKUP_new(st) SKM_sk_new(X509_LOOKUP, (st)) 1219#define sk_X509_LOOKUP_new(st) SKM_sk_new(X509_LOOKUP, (st))
1168#define sk_X509_LOOKUP_new_null() SKM_sk_new_null(X509_LOOKUP) 1220#define sk_X509_LOOKUP_new_null() SKM_sk_new_null(X509_LOOKUP)
@@ -1183,6 +1235,7 @@ STACK_OF(type) \
1183#define sk_X509_LOOKUP_shift(st) SKM_sk_shift(X509_LOOKUP, (st)) 1235#define sk_X509_LOOKUP_shift(st) SKM_sk_shift(X509_LOOKUP, (st))
1184#define sk_X509_LOOKUP_pop(st) SKM_sk_pop(X509_LOOKUP, (st)) 1236#define sk_X509_LOOKUP_pop(st) SKM_sk_pop(X509_LOOKUP, (st))
1185#define sk_X509_LOOKUP_sort(st) SKM_sk_sort(X509_LOOKUP, (st)) 1237#define sk_X509_LOOKUP_sort(st) SKM_sk_sort(X509_LOOKUP, (st))
1238#define sk_X509_LOOKUP_is_sorted(st) SKM_sk_is_sorted(X509_LOOKUP, (st))
1186 1239
1187#define sk_X509_NAME_new(st) SKM_sk_new(X509_NAME, (st)) 1240#define sk_X509_NAME_new(st) SKM_sk_new(X509_NAME, (st))
1188#define sk_X509_NAME_new_null() SKM_sk_new_null(X509_NAME) 1241#define sk_X509_NAME_new_null() SKM_sk_new_null(X509_NAME)
@@ -1203,6 +1256,7 @@ STACK_OF(type) \
1203#define sk_X509_NAME_shift(st) SKM_sk_shift(X509_NAME, (st)) 1256#define sk_X509_NAME_shift(st) SKM_sk_shift(X509_NAME, (st))
1204#define sk_X509_NAME_pop(st) SKM_sk_pop(X509_NAME, (st)) 1257#define sk_X509_NAME_pop(st) SKM_sk_pop(X509_NAME, (st))
1205#define sk_X509_NAME_sort(st) SKM_sk_sort(X509_NAME, (st)) 1258#define sk_X509_NAME_sort(st) SKM_sk_sort(X509_NAME, (st))
1259#define sk_X509_NAME_is_sorted(st) SKM_sk_is_sorted(X509_NAME, (st))
1206 1260
1207#define sk_X509_NAME_ENTRY_new(st) SKM_sk_new(X509_NAME_ENTRY, (st)) 1261#define sk_X509_NAME_ENTRY_new(st) SKM_sk_new(X509_NAME_ENTRY, (st))
1208#define sk_X509_NAME_ENTRY_new_null() SKM_sk_new_null(X509_NAME_ENTRY) 1262#define sk_X509_NAME_ENTRY_new_null() SKM_sk_new_null(X509_NAME_ENTRY)
@@ -1223,6 +1277,7 @@ STACK_OF(type) \
1223#define sk_X509_NAME_ENTRY_shift(st) SKM_sk_shift(X509_NAME_ENTRY, (st)) 1277#define sk_X509_NAME_ENTRY_shift(st) SKM_sk_shift(X509_NAME_ENTRY, (st))
1224#define sk_X509_NAME_ENTRY_pop(st) SKM_sk_pop(X509_NAME_ENTRY, (st)) 1278#define sk_X509_NAME_ENTRY_pop(st) SKM_sk_pop(X509_NAME_ENTRY, (st))
1225#define sk_X509_NAME_ENTRY_sort(st) SKM_sk_sort(X509_NAME_ENTRY, (st)) 1279#define sk_X509_NAME_ENTRY_sort(st) SKM_sk_sort(X509_NAME_ENTRY, (st))
1280#define sk_X509_NAME_ENTRY_is_sorted(st) SKM_sk_is_sorted(X509_NAME_ENTRY, (st))
1226 1281
1227#define sk_X509_OBJECT_new(st) SKM_sk_new(X509_OBJECT, (st)) 1282#define sk_X509_OBJECT_new(st) SKM_sk_new(X509_OBJECT, (st))
1228#define sk_X509_OBJECT_new_null() SKM_sk_new_null(X509_OBJECT) 1283#define sk_X509_OBJECT_new_null() SKM_sk_new_null(X509_OBJECT)
@@ -1243,6 +1298,7 @@ STACK_OF(type) \
1243#define sk_X509_OBJECT_shift(st) SKM_sk_shift(X509_OBJECT, (st)) 1298#define sk_X509_OBJECT_shift(st) SKM_sk_shift(X509_OBJECT, (st))
1244#define sk_X509_OBJECT_pop(st) SKM_sk_pop(X509_OBJECT, (st)) 1299#define sk_X509_OBJECT_pop(st) SKM_sk_pop(X509_OBJECT, (st))
1245#define sk_X509_OBJECT_sort(st) SKM_sk_sort(X509_OBJECT, (st)) 1300#define sk_X509_OBJECT_sort(st) SKM_sk_sort(X509_OBJECT, (st))
1301#define sk_X509_OBJECT_is_sorted(st) SKM_sk_is_sorted(X509_OBJECT, (st))
1246 1302
1247#define sk_X509_PURPOSE_new(st) SKM_sk_new(X509_PURPOSE, (st)) 1303#define sk_X509_PURPOSE_new(st) SKM_sk_new(X509_PURPOSE, (st))
1248#define sk_X509_PURPOSE_new_null() SKM_sk_new_null(X509_PURPOSE) 1304#define sk_X509_PURPOSE_new_null() SKM_sk_new_null(X509_PURPOSE)
@@ -1263,6 +1319,7 @@ STACK_OF(type) \
1263#define sk_X509_PURPOSE_shift(st) SKM_sk_shift(X509_PURPOSE, (st)) 1319#define sk_X509_PURPOSE_shift(st) SKM_sk_shift(X509_PURPOSE, (st))
1264#define sk_X509_PURPOSE_pop(st) SKM_sk_pop(X509_PURPOSE, (st)) 1320#define sk_X509_PURPOSE_pop(st) SKM_sk_pop(X509_PURPOSE, (st))
1265#define sk_X509_PURPOSE_sort(st) SKM_sk_sort(X509_PURPOSE, (st)) 1321#define sk_X509_PURPOSE_sort(st) SKM_sk_sort(X509_PURPOSE, (st))
1322#define sk_X509_PURPOSE_is_sorted(st) SKM_sk_is_sorted(X509_PURPOSE, (st))
1266 1323
1267#define sk_X509_REVOKED_new(st) SKM_sk_new(X509_REVOKED, (st)) 1324#define sk_X509_REVOKED_new(st) SKM_sk_new(X509_REVOKED, (st))
1268#define sk_X509_REVOKED_new_null() SKM_sk_new_null(X509_REVOKED) 1325#define sk_X509_REVOKED_new_null() SKM_sk_new_null(X509_REVOKED)
@@ -1283,6 +1340,7 @@ STACK_OF(type) \
1283#define sk_X509_REVOKED_shift(st) SKM_sk_shift(X509_REVOKED, (st)) 1340#define sk_X509_REVOKED_shift(st) SKM_sk_shift(X509_REVOKED, (st))
1284#define sk_X509_REVOKED_pop(st) SKM_sk_pop(X509_REVOKED, (st)) 1341#define sk_X509_REVOKED_pop(st) SKM_sk_pop(X509_REVOKED, (st))
1285#define sk_X509_REVOKED_sort(st) SKM_sk_sort(X509_REVOKED, (st)) 1342#define sk_X509_REVOKED_sort(st) SKM_sk_sort(X509_REVOKED, (st))
1343#define sk_X509_REVOKED_is_sorted(st) SKM_sk_is_sorted(X509_REVOKED, (st))
1286 1344
1287#define sk_X509_TRUST_new(st) SKM_sk_new(X509_TRUST, (st)) 1345#define sk_X509_TRUST_new(st) SKM_sk_new(X509_TRUST, (st))
1288#define sk_X509_TRUST_new_null() SKM_sk_new_null(X509_TRUST) 1346#define sk_X509_TRUST_new_null() SKM_sk_new_null(X509_TRUST)
@@ -1303,6 +1361,7 @@ STACK_OF(type) \
1303#define sk_X509_TRUST_shift(st) SKM_sk_shift(X509_TRUST, (st)) 1361#define sk_X509_TRUST_shift(st) SKM_sk_shift(X509_TRUST, (st))
1304#define sk_X509_TRUST_pop(st) SKM_sk_pop(X509_TRUST, (st)) 1362#define sk_X509_TRUST_pop(st) SKM_sk_pop(X509_TRUST, (st))
1305#define sk_X509_TRUST_sort(st) SKM_sk_sort(X509_TRUST, (st)) 1363#define sk_X509_TRUST_sort(st) SKM_sk_sort(X509_TRUST, (st))
1364#define sk_X509_TRUST_is_sorted(st) SKM_sk_is_sorted(X509_TRUST, (st))
1306 1365
1307#define d2i_ASN1_SET_OF_ACCESS_DESCRIPTION(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ 1366#define d2i_ASN1_SET_OF_ACCESS_DESCRIPTION(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
1308 SKM_ASN1_SET_OF_d2i(ACCESS_DESCRIPTION, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 1367 SKM_ASN1_SET_OF_d2i(ACCESS_DESCRIPTION, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class))
diff --git a/src/lib/libssl/src/crypto/stack/stack.c b/src/lib/libssl/src/crypto/stack/stack.c
index 2496f28a8c..c7173eb6ab 100644
--- a/src/lib/libssl/src/crypto/stack/stack.c
+++ b/src/lib/libssl/src/crypto/stack/stack.c
@@ -191,8 +191,7 @@ char *sk_delete(STACK *st, int loc)
191 char *ret; 191 char *ret;
192 int i,j; 192 int i,j;
193 193
194 if ((st == NULL) || (st->num == 0) || (loc < 0) 194 if(!st || (loc < 0) || (loc >= st->num)) return NULL;
195 || (loc >= st->num)) return(NULL);
196 195
197 ret=st->data[loc]; 196 ret=st->data[loc];
198 if (loc != st->num-1) 197 if (loc != st->num-1)
@@ -306,13 +305,13 @@ int sk_num(const STACK *st)
306 305
307char *sk_value(const STACK *st, int i) 306char *sk_value(const STACK *st, int i)
308{ 307{
309 if(st == NULL) return NULL; 308 if(!st || (i < 0) || (i >= st->num)) return NULL;
310 return st->data[i]; 309 return st->data[i];
311} 310}
312 311
313char *sk_set(STACK *st, int i, char *value) 312char *sk_set(STACK *st, int i, char *value)
314{ 313{
315 if(st == NULL) return NULL; 314 if(!st || (i < 0) || (i >= st->num)) return NULL;
316 return (st->data[i] = value); 315 return (st->data[i] = value);
317} 316}
318 317
@@ -332,3 +331,10 @@ void sk_sort(STACK *st)
332 st->sorted=1; 331 st->sorted=1;
333 } 332 }
334 } 333 }
334
335int sk_is_sorted(const STACK *st)
336 {
337 if (!st)
338 return 1;
339 return st->sorted;
340 }
diff --git a/src/lib/libssl/src/crypto/stack/stack.h b/src/lib/libssl/src/crypto/stack/stack.h
index 8b436ca4b9..7570b85fe8 100644
--- a/src/lib/libssl/src/crypto/stack/stack.h
+++ b/src/lib/libssl/src/crypto/stack/stack.h
@@ -99,6 +99,7 @@ int (*sk_set_cmp_func(STACK *sk, int (*c)(const char * const *,
99 (const char * const *, const char * const *); 99 (const char * const *, const char * const *);
100STACK *sk_dup(STACK *st); 100STACK *sk_dup(STACK *st);
101void sk_sort(STACK *st); 101void sk_sort(STACK *st);
102int sk_is_sorted(const STACK *st);
102 103
103#ifdef __cplusplus 104#ifdef __cplusplus
104} 105}
diff --git a/src/lib/libssl/src/crypto/txt_db/Makefile b/src/lib/libssl/src/crypto/txt_db/Makefile
new file mode 100644
index 0000000000..f91a08f006
--- /dev/null
+++ b/src/lib/libssl/src/crypto/txt_db/Makefile
@@ -0,0 +1,86 @@
1#
2# SSLeay/crypto/txt_db/Makefile
3#
4
5DIR= txt_db
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=txt_db.c
26LIBOBJ=txt_db.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= txt_db.h
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
37
38all: lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @touch lib
44
45files:
46 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
47
48links:
49 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
50 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
51 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
52
53install:
54 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
55 do \
56 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
57 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
58 done;
59
60tags:
61 ctags $(SRC)
62
63tests:
64
65lint:
66 lint -DLINT $(INCLUDES) $(SRC)>fluff
67
68depend:
69 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
70
71dclean:
72 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
73 mv -f Makefile.new $(MAKEFILE)
74
75clean:
76 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
77
78# DO NOT DELETE THIS LINE -- make depend depends on it.
79
80txt_db.o: ../../e_os.h ../../include/openssl/bio.h
81txt_db.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
82txt_db.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
83txt_db.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
84txt_db.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
85txt_db.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
86txt_db.o: ../../include/openssl/txt_db.h ../cryptlib.h txt_db.c
diff --git a/src/lib/libssl/src/crypto/ui/Makefile b/src/lib/libssl/src/crypto/ui/Makefile
new file mode 100644
index 0000000000..fcb2a66a39
--- /dev/null
+++ b/src/lib/libssl/src/crypto/ui/Makefile
@@ -0,0 +1,115 @@
1#
2# OpenSSL/crypto/ui/Makefile
3#
4
5DIR= ui
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21#TEST= uitest.c
22TEST=
23APPS=
24
25COMPATSRC= ui_compat.c
26COMPATOBJ= ui_compat.o
27
28LIB=$(TOP)/libcrypto.a
29LIBSRC= ui_err.c ui_lib.c ui_openssl.c ui_util.c $(COMPATSRC)
30LIBOBJ= ui_err.o ui_lib.o ui_openssl.o ui_util.o $(COMPATOBJ)
31
32SRC= $(LIBSRC)
33
34EXHEADER= ui.h ui_compat.h
35HEADER= $(EXHEADER) ui_locl.h
36
37ALL= $(GENERAL) $(SRC) $(HEADER)
38
39top:
40 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
41
42all: lib
43
44lib: $(LIBOBJ)
45 $(AR) $(LIB) $(LIBOBJ)
46 $(RANLIB) $(LIB) || echo Never mind.
47 @touch lib
48
49files:
50 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
51
52links:
53 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
54 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
55 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
56
57install:
58 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
59 do \
60 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
61 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
62 done;
63
64tags:
65 ctags $(SRC)
66
67tests:
68
69lint:
70 lint -DLINT $(INCLUDES) $(SRC)>fluff
71
72depend:
73 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
74
75dclean:
76 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
77 mv -f Makefile.new $(MAKEFILE)
78
79clean:
80 rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
81
82# DO NOT DELETE THIS LINE -- make depend depends on it.
83
84ui_compat.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
85ui_compat.o: ../../include/openssl/opensslconf.h
86ui_compat.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
87ui_compat.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
88ui_compat.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
89ui_compat.o: ui_compat.c
90ui_err.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
91ui_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
92ui_err.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
93ui_err.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
94ui_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
95ui_err.o: ../../include/openssl/ui.h ui_err.c
96ui_lib.o: ../../e_os.h ../../include/openssl/bio.h
97ui_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
98ui_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
99ui_lib.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
100ui_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
101ui_lib.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
102ui_lib.o: ../../include/openssl/ui.h ../cryptlib.h ui_lib.c ui_locl.h
103ui_openssl.o: ../../e_os.h ../../include/openssl/bio.h
104ui_openssl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
105ui_openssl.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
106ui_openssl.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
107ui_openssl.o: ../../include/openssl/opensslv.h
108ui_openssl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
109ui_openssl.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
110ui_openssl.o: ../cryptlib.h ui_locl.h ui_openssl.c
111ui_util.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
112ui_util.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
113ui_util.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
114ui_util.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
115ui_util.o: ui_util.c
diff --git a/src/lib/libssl/src/crypto/x509/Makefile b/src/lib/libssl/src/crypto/x509/Makefile
new file mode 100644
index 0000000000..5fb774f1c7
--- /dev/null
+++ b/src/lib/libssl/src/crypto/x509/Makefile
@@ -0,0 +1,592 @@
1#
2# SSLeay/crypto/x509/Makefile
3#
4
5DIR= x509
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile README
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= x509_def.c x509_d2.c x509_r2x.c x509_cmp.c \
26 x509_obj.c x509_req.c x509spki.c x509_vfy.c \
27 x509_set.c x509cset.c x509rset.c x509_err.c \
28 x509name.c x509_v3.c x509_ext.c x509_att.c \
29 x509type.c x509_lu.c x_all.c x509_txt.c \
30 x509_trs.c by_file.c by_dir.c
31LIBOBJ= x509_def.o x509_d2.o x509_r2x.o x509_cmp.o \
32 x509_obj.o x509_req.o x509spki.o x509_vfy.o \
33 x509_set.o x509cset.o x509rset.o x509_err.o \
34 x509name.o x509_v3.o x509_ext.o x509_att.o \
35 x509type.o x509_lu.o x_all.o x509_txt.o \
36 x509_trs.o by_file.o by_dir.o
37
38SRC= $(LIBSRC)
39
40EXHEADER= x509.h x509_vfy.h
41HEADER= $(EXHEADER)
42
43ALL= $(GENERAL) $(SRC) $(HEADER)
44
45top:
46 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
47
48all: lib
49
50lib: $(LIBOBJ)
51 $(AR) $(LIB) $(LIBOBJ)
52 $(RANLIB) $(LIB) || echo Never mind.
53 @touch lib
54
55files:
56 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
57
58links:
59 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
60 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
61 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
62
63install:
64 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
65 do \
66 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
67 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
68 done;
69
70tags:
71 ctags $(SRC)
72
73tests:
74
75lint:
76 lint -DLINT $(INCLUDES) $(SRC)>fluff
77
78depend:
79 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
80
81dclean:
82 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
83 mv -f Makefile.new $(MAKEFILE)
84
85clean:
86 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
87
88# DO NOT DELETE THIS LINE -- make depend depends on it.
89
90by_dir.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
91by_dir.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
92by_dir.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
93by_dir.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
94by_dir.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
95by_dir.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
96by_dir.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
97by_dir.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
98by_dir.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
99by_dir.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
100by_dir.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
101by_dir.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
102by_dir.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
103by_dir.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
104by_dir.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
105by_dir.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
106by_dir.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
107by_dir.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
108by_dir.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
109by_dir.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
110by_dir.o: ../cryptlib.h by_dir.c
111by_file.o: ../../e_os.h ../../include/openssl/aes.h
112by_file.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
113by_file.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
114by_file.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
115by_file.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
116by_file.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
117by_file.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
118by_file.o: ../../include/openssl/err.h ../../include/openssl/evp.h
119by_file.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
120by_file.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
121by_file.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
122by_file.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
123by_file.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
124by_file.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pem.h
125by_file.o: ../../include/openssl/pem2.h ../../include/openssl/pkcs7.h
126by_file.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
127by_file.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
128by_file.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
129by_file.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
130by_file.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
131by_file.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
132by_file.o: ../../include/openssl/x509_vfy.h ../cryptlib.h by_file.c
133x509_att.o: ../../e_os.h ../../include/openssl/aes.h
134x509_att.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
135x509_att.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
136x509_att.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
137x509_att.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
138x509_att.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
139x509_att.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
140x509_att.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
141x509_att.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
142x509_att.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
143x509_att.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
144x509_att.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
145x509_att.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
146x509_att.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
147x509_att.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
148x509_att.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
149x509_att.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
150x509_att.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
151x509_att.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
152x509_att.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
153x509_att.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
154x509_att.o: ../../include/openssl/x509v3.h ../cryptlib.h x509_att.c
155x509_cmp.o: ../../e_os.h ../../include/openssl/aes.h
156x509_cmp.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
157x509_cmp.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
158x509_cmp.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
159x509_cmp.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
160x509_cmp.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
161x509_cmp.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
162x509_cmp.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
163x509_cmp.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
164x509_cmp.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
165x509_cmp.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
166x509_cmp.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
167x509_cmp.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
168x509_cmp.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
169x509_cmp.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
170x509_cmp.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
171x509_cmp.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
172x509_cmp.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
173x509_cmp.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
174x509_cmp.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
175x509_cmp.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
176x509_cmp.o: ../../include/openssl/x509v3.h ../cryptlib.h x509_cmp.c
177x509_d2.o: ../../e_os.h ../../include/openssl/aes.h
178x509_d2.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
179x509_d2.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
180x509_d2.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
181x509_d2.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
182x509_d2.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
183x509_d2.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
184x509_d2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
185x509_d2.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
186x509_d2.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
187x509_d2.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
188x509_d2.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
189x509_d2.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
190x509_d2.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
191x509_d2.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
192x509_d2.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
193x509_d2.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
194x509_d2.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
195x509_d2.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
196x509_d2.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
197x509_d2.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x509_d2.c
198x509_def.o: ../../e_os.h ../../include/openssl/aes.h
199x509_def.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
200x509_def.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
201x509_def.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
202x509_def.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
203x509_def.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
204x509_def.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
205x509_def.o: ../../include/openssl/err.h ../../include/openssl/evp.h
206x509_def.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
207x509_def.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
208x509_def.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
209x509_def.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
210x509_def.o: ../../include/openssl/opensslconf.h
211x509_def.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
212x509_def.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
213x509_def.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
214x509_def.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
215x509_def.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
216x509_def.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
217x509_def.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
218x509_def.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
219x509_def.o: ../cryptlib.h x509_def.c
220x509_err.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
221x509_err.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
222x509_err.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
223x509_err.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
224x509_err.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
225x509_err.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
226x509_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
227x509_err.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
228x509_err.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
229x509_err.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
230x509_err.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
231x509_err.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
232x509_err.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
233x509_err.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
234x509_err.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
235x509_err.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
236x509_err.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
237x509_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
238x509_err.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
239x509_err.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
240x509_err.o: x509_err.c
241x509_ext.o: ../../e_os.h ../../include/openssl/aes.h
242x509_ext.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
243x509_ext.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
244x509_ext.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
245x509_ext.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
246x509_ext.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
247x509_ext.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
248x509_ext.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
249x509_ext.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
250x509_ext.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
251x509_ext.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
252x509_ext.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
253x509_ext.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
254x509_ext.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
255x509_ext.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
256x509_ext.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
257x509_ext.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
258x509_ext.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
259x509_ext.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
260x509_ext.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
261x509_ext.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
262x509_ext.o: ../../include/openssl/x509v3.h ../cryptlib.h x509_ext.c
263x509_lu.o: ../../e_os.h ../../include/openssl/aes.h
264x509_lu.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
265x509_lu.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
266x509_lu.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
267x509_lu.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
268x509_lu.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
269x509_lu.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
270x509_lu.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
271x509_lu.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
272x509_lu.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
273x509_lu.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
274x509_lu.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
275x509_lu.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
276x509_lu.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
277x509_lu.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
278x509_lu.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
279x509_lu.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
280x509_lu.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
281x509_lu.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
282x509_lu.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
283x509_lu.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
284x509_lu.o: ../../include/openssl/x509v3.h ../cryptlib.h x509_lu.c
285x509_obj.o: ../../e_os.h ../../include/openssl/aes.h
286x509_obj.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
287x509_obj.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
288x509_obj.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
289x509_obj.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
290x509_obj.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
291x509_obj.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
292x509_obj.o: ../../include/openssl/err.h ../../include/openssl/evp.h
293x509_obj.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
294x509_obj.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
295x509_obj.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
296x509_obj.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
297x509_obj.o: ../../include/openssl/opensslconf.h
298x509_obj.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
299x509_obj.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
300x509_obj.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
301x509_obj.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
302x509_obj.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
303x509_obj.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
304x509_obj.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
305x509_obj.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
306x509_obj.o: ../cryptlib.h x509_obj.c
307x509_r2x.o: ../../e_os.h ../../include/openssl/aes.h
308x509_r2x.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
309x509_r2x.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
310x509_r2x.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
311x509_r2x.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
312x509_r2x.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
313x509_r2x.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
314x509_r2x.o: ../../include/openssl/err.h ../../include/openssl/evp.h
315x509_r2x.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
316x509_r2x.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
317x509_r2x.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
318x509_r2x.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
319x509_r2x.o: ../../include/openssl/opensslconf.h
320x509_r2x.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
321x509_r2x.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
322x509_r2x.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
323x509_r2x.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
324x509_r2x.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
325x509_r2x.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
326x509_r2x.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
327x509_r2x.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
328x509_r2x.o: ../cryptlib.h x509_r2x.c
329x509_req.o: ../../e_os.h ../../include/openssl/aes.h
330x509_req.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
331x509_req.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
332x509_req.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
333x509_req.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
334x509_req.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
335x509_req.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
336x509_req.o: ../../include/openssl/err.h ../../include/openssl/evp.h
337x509_req.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
338x509_req.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
339x509_req.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
340x509_req.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
341x509_req.o: ../../include/openssl/opensslconf.h
342x509_req.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
343x509_req.o: ../../include/openssl/pem.h ../../include/openssl/pem2.h
344x509_req.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
345x509_req.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
346x509_req.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
347x509_req.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
348x509_req.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
349x509_req.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
350x509_req.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
351x509_req.o: ../cryptlib.h x509_req.c
352x509_set.o: ../../e_os.h ../../include/openssl/aes.h
353x509_set.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
354x509_set.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
355x509_set.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
356x509_set.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
357x509_set.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
358x509_set.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
359x509_set.o: ../../include/openssl/err.h ../../include/openssl/evp.h
360x509_set.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
361x509_set.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
362x509_set.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
363x509_set.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
364x509_set.o: ../../include/openssl/opensslconf.h
365x509_set.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
366x509_set.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
367x509_set.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
368x509_set.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
369x509_set.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
370x509_set.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
371x509_set.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
372x509_set.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
373x509_set.o: ../cryptlib.h x509_set.c
374x509_trs.o: ../../e_os.h ../../include/openssl/aes.h
375x509_trs.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
376x509_trs.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
377x509_trs.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
378x509_trs.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
379x509_trs.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
380x509_trs.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
381x509_trs.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
382x509_trs.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
383x509_trs.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
384x509_trs.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
385x509_trs.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
386x509_trs.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
387x509_trs.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
388x509_trs.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
389x509_trs.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
390x509_trs.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
391x509_trs.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
392x509_trs.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
393x509_trs.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
394x509_trs.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
395x509_trs.o: ../../include/openssl/x509v3.h ../cryptlib.h x509_trs.c
396x509_txt.o: ../../e_os.h ../../include/openssl/aes.h
397x509_txt.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
398x509_txt.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
399x509_txt.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
400x509_txt.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
401x509_txt.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
402x509_txt.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
403x509_txt.o: ../../include/openssl/err.h ../../include/openssl/evp.h
404x509_txt.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
405x509_txt.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
406x509_txt.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
407x509_txt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
408x509_txt.o: ../../include/openssl/opensslconf.h
409x509_txt.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
410x509_txt.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
411x509_txt.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
412x509_txt.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
413x509_txt.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
414x509_txt.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
415x509_txt.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
416x509_txt.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
417x509_txt.o: ../cryptlib.h x509_txt.c
418x509_v3.o: ../../e_os.h ../../include/openssl/aes.h
419x509_v3.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
420x509_v3.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
421x509_v3.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
422x509_v3.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
423x509_v3.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
424x509_v3.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
425x509_v3.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
426x509_v3.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
427x509_v3.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
428x509_v3.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
429x509_v3.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
430x509_v3.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
431x509_v3.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
432x509_v3.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
433x509_v3.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
434x509_v3.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
435x509_v3.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
436x509_v3.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
437x509_v3.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
438x509_v3.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
439x509_v3.o: ../../include/openssl/x509v3.h ../cryptlib.h x509_v3.c
440x509_vfy.o: ../../e_os.h ../../include/openssl/aes.h
441x509_vfy.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
442x509_vfy.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
443x509_vfy.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
444x509_vfy.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
445x509_vfy.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
446x509_vfy.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
447x509_vfy.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
448x509_vfy.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
449x509_vfy.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
450x509_vfy.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
451x509_vfy.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
452x509_vfy.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
453x509_vfy.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
454x509_vfy.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
455x509_vfy.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
456x509_vfy.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
457x509_vfy.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
458x509_vfy.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
459x509_vfy.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
460x509_vfy.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
461x509_vfy.o: ../../include/openssl/x509v3.h ../cryptlib.h x509_vfy.c
462x509cset.o: ../../e_os.h ../../include/openssl/aes.h
463x509cset.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
464x509cset.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
465x509cset.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
466x509cset.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
467x509cset.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
468x509cset.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
469x509cset.o: ../../include/openssl/err.h ../../include/openssl/evp.h
470x509cset.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
471x509cset.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
472x509cset.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
473x509cset.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
474x509cset.o: ../../include/openssl/opensslconf.h
475x509cset.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
476x509cset.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
477x509cset.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
478x509cset.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
479x509cset.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
480x509cset.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
481x509cset.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
482x509cset.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
483x509cset.o: ../cryptlib.h x509cset.c
484x509name.o: ../../e_os.h ../../include/openssl/aes.h
485x509name.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
486x509name.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
487x509name.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
488x509name.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
489x509name.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
490x509name.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
491x509name.o: ../../include/openssl/err.h ../../include/openssl/evp.h
492x509name.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
493x509name.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
494x509name.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
495x509name.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
496x509name.o: ../../include/openssl/opensslconf.h
497x509name.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
498x509name.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
499x509name.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
500x509name.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
501x509name.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
502x509name.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
503x509name.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
504x509name.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
505x509name.o: ../cryptlib.h x509name.c
506x509rset.o: ../../e_os.h ../../include/openssl/aes.h
507x509rset.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
508x509rset.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
509x509rset.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
510x509rset.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
511x509rset.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
512x509rset.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
513x509rset.o: ../../include/openssl/err.h ../../include/openssl/evp.h
514x509rset.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
515x509rset.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
516x509rset.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
517x509rset.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
518x509rset.o: ../../include/openssl/opensslconf.h
519x509rset.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
520x509rset.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
521x509rset.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
522x509rset.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
523x509rset.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
524x509rset.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
525x509rset.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
526x509rset.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
527x509rset.o: ../cryptlib.h x509rset.c
528x509spki.o: ../../e_os.h ../../include/openssl/aes.h
529x509spki.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
530x509spki.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
531x509spki.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
532x509spki.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
533x509spki.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
534x509spki.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
535x509spki.o: ../../include/openssl/err.h ../../include/openssl/evp.h
536x509spki.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
537x509spki.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
538x509spki.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
539x509spki.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
540x509spki.o: ../../include/openssl/opensslconf.h
541x509spki.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
542x509spki.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
543x509spki.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
544x509spki.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
545x509spki.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
546x509spki.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
547x509spki.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
548x509spki.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
549x509spki.o: ../cryptlib.h x509spki.c
550x509type.o: ../../e_os.h ../../include/openssl/aes.h
551x509type.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
552x509type.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
553x509type.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
554x509type.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
555x509type.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
556x509type.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
557x509type.o: ../../include/openssl/err.h ../../include/openssl/evp.h
558x509type.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
559x509type.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
560x509type.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
561x509type.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
562x509type.o: ../../include/openssl/opensslconf.h
563x509type.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
564x509type.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
565x509type.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
566x509type.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
567x509type.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
568x509type.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
569x509type.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
570x509type.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
571x509type.o: ../cryptlib.h x509type.c
572x_all.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
573x_all.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
574x_all.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
575x_all.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
576x_all.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
577x_all.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
578x_all.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
579x_all.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
580x_all.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
581x_all.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
582x_all.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
583x_all.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
584x_all.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
585x_all.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
586x_all.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
587x_all.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
588x_all.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
589x_all.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
590x_all.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
591x_all.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
592x_all.o: ../cryptlib.h x_all.c
diff --git a/src/lib/libssl/src/crypto/x509/by_file.c b/src/lib/libssl/src/crypto/x509/by_file.c
index b4b04183d0..a5e0d4aefa 100644
--- a/src/lib/libssl/src/crypto/x509/by_file.c
+++ b/src/lib/libssl/src/crypto/x509/by_file.c
@@ -150,7 +150,7 @@ int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type)
150 x=PEM_read_bio_X509_AUX(in,NULL,NULL,NULL); 150 x=PEM_read_bio_X509_AUX(in,NULL,NULL,NULL);
151 if (x == NULL) 151 if (x == NULL)
152 { 152 {
153 if ((ERR_GET_REASON(ERR_peek_error()) == 153 if ((ERR_GET_REASON(ERR_peek_last_error()) ==
154 PEM_R_NO_START_LINE) && (count > 0)) 154 PEM_R_NO_START_LINE) && (count > 0))
155 { 155 {
156 ERR_clear_error(); 156 ERR_clear_error();
@@ -217,7 +217,7 @@ int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type)
217 x=PEM_read_bio_X509_CRL(in,NULL,NULL,NULL); 217 x=PEM_read_bio_X509_CRL(in,NULL,NULL,NULL);
218 if (x == NULL) 218 if (x == NULL)
219 { 219 {
220 if ((ERR_GET_REASON(ERR_peek_error()) == 220 if ((ERR_GET_REASON(ERR_peek_last_error()) ==
221 PEM_R_NO_START_LINE) && (count > 0)) 221 PEM_R_NO_START_LINE) && (count > 0))
222 { 222 {
223 ERR_clear_error(); 223 ERR_clear_error();
diff --git a/src/lib/libssl/src/crypto/x509/x509.h b/src/lib/libssl/src/crypto/x509/x509.h
index 8d0c7e2e17..e8c1a59cf2 100644
--- a/src/lib/libssl/src/crypto/x509/x509.h
+++ b/src/lib/libssl/src/crypto/x509/x509.h
@@ -410,6 +410,7 @@ typedef struct X509_crl_info_st
410 ASN1_TIME *nextUpdate; 410 ASN1_TIME *nextUpdate;
411 STACK_OF(X509_REVOKED) *revoked; 411 STACK_OF(X509_REVOKED) *revoked;
412 STACK_OF(X509_EXTENSION) /* [0] */ *extensions; 412 STACK_OF(X509_EXTENSION) /* [0] */ *extensions;
413 ASN1_ENCODING enc;
413 } X509_CRL_INFO; 414 } X509_CRL_INFO;
414 415
415struct X509_crl_st 416struct X509_crl_st
@@ -1037,18 +1038,18 @@ int X509_NAME_add_entry_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, int type,
1037int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, 1038int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type,
1038 unsigned char *bytes, int len, int loc, int set); 1039 unsigned char *bytes, int len, int loc, int set);
1039X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, 1040X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne,
1040 char *field, int type, unsigned char *bytes, int len); 1041 const char *field, int type, const unsigned char *bytes, int len);
1041X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, 1042X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid,
1042 int type,unsigned char *bytes, int len); 1043 int type,unsigned char *bytes, int len);
1043int X509_NAME_add_entry_by_txt(X509_NAME *name, char *field, int type, 1044int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type,
1044 unsigned char *bytes, int len, int loc, int set); 1045 const unsigned char *bytes, int len, int loc, int set);
1045X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, 1046X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne,
1046 ASN1_OBJECT *obj, int type,unsigned char *bytes, 1047 ASN1_OBJECT *obj, int type,const unsigned char *bytes,
1047 int len); 1048 int len);
1048int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, 1049int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne,
1049 ASN1_OBJECT *obj); 1050 ASN1_OBJECT *obj);
1050int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, 1051int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type,
1051 unsigned char *bytes, int len); 1052 const unsigned char *bytes, int len);
1052ASN1_OBJECT * X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne); 1053ASN1_OBJECT * X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne);
1053ASN1_STRING * X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne); 1054ASN1_STRING * X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne);
1054 1055
diff --git a/src/lib/libssl/src/crypto/x509/x509_cmp.c b/src/lib/libssl/src/crypto/x509/x509_cmp.c
index f460102f49..030d0966fc 100644
--- a/src/lib/libssl/src/crypto/x509/x509_cmp.c
+++ b/src/lib/libssl/src/crypto/x509/x509_cmp.c
@@ -254,33 +254,49 @@ static int nocase_spacenorm_cmp(const ASN1_STRING *a, const ASN1_STRING *b)
254 return 0; 254 return 0;
255} 255}
256 256
257static int asn1_string_memcmp(ASN1_STRING *a, ASN1_STRING *b)
258 {
259 int j;
260 j = a->length - b->length;
261 if (j)
262 return j;
263 return memcmp(a->data, b->data, a->length);
264 }
265
266#define STR_TYPE_CMP (B_ASN1_PRINTABLESTRING|B_ASN1_T61STRING|B_ASN1_UTF8STRING)
267
257int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b) 268int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b)
258 { 269 {
259 int i,j; 270 int i,j;
260 X509_NAME_ENTRY *na,*nb; 271 X509_NAME_ENTRY *na,*nb;
261 272
262 if (sk_X509_NAME_ENTRY_num(a->entries) 273 unsigned long nabit, nbbit;
263 != sk_X509_NAME_ENTRY_num(b->entries)) 274
264 return sk_X509_NAME_ENTRY_num(a->entries) 275 j = sk_X509_NAME_ENTRY_num(a->entries)
265 -sk_X509_NAME_ENTRY_num(b->entries); 276 - sk_X509_NAME_ENTRY_num(b->entries);
277 if (j)
278 return j;
266 for (i=sk_X509_NAME_ENTRY_num(a->entries)-1; i>=0; i--) 279 for (i=sk_X509_NAME_ENTRY_num(a->entries)-1; i>=0; i--)
267 { 280 {
268 na=sk_X509_NAME_ENTRY_value(a->entries,i); 281 na=sk_X509_NAME_ENTRY_value(a->entries,i);
269 nb=sk_X509_NAME_ENTRY_value(b->entries,i); 282 nb=sk_X509_NAME_ENTRY_value(b->entries,i);
270 j=na->value->type-nb->value->type; 283 j=na->value->type-nb->value->type;
271 if (j) return(j); 284 if (j)
272 if (na->value->type == V_ASN1_PRINTABLESTRING) 285 {
286 nabit = ASN1_tag2bit(na->value->type);
287 nbbit = ASN1_tag2bit(nb->value->type);
288 if (!(nabit & STR_TYPE_CMP) ||
289 !(nbbit & STR_TYPE_CMP))
290 return j;
291 j = asn1_string_memcmp(na->value, nb->value);
292 }
293 else if (na->value->type == V_ASN1_PRINTABLESTRING)
273 j=nocase_spacenorm_cmp(na->value, nb->value); 294 j=nocase_spacenorm_cmp(na->value, nb->value);
274 else if (na->value->type == V_ASN1_IA5STRING 295 else if (na->value->type == V_ASN1_IA5STRING
275 && OBJ_obj2nid(na->object) == NID_pkcs9_emailAddress) 296 && OBJ_obj2nid(na->object) == NID_pkcs9_emailAddress)
276 j=nocase_cmp(na->value, nb->value); 297 j=nocase_cmp(na->value, nb->value);
277 else 298 else
278 { 299 j = asn1_string_memcmp(na->value, nb->value);
279 j=na->value->length-nb->value->length;
280 if (j) return(j);
281 j=memcmp(na->value->data,nb->value->data,
282 na->value->length);
283 }
284 if (j) return(j); 300 if (j) return(j);
285 j=na->set-nb->set; 301 j=na->set-nb->set;
286 if (j) return(j); 302 if (j) return(j);
@@ -306,10 +322,16 @@ unsigned long X509_NAME_hash(X509_NAME *x)
306 { 322 {
307 unsigned long ret=0; 323 unsigned long ret=0;
308 unsigned char md[16]; 324 unsigned char md[16];
325 EVP_MD_CTX md_ctx;
309 326
310 /* Make sure X509_NAME structure contains valid cached encoding */ 327 /* Make sure X509_NAME structure contains valid cached encoding */
311 i2d_X509_NAME(x,NULL); 328 i2d_X509_NAME(x,NULL);
312 EVP_Digest(x->bytes->data, x->bytes->length, md, NULL, EVP_md5(), NULL); 329 EVP_MD_CTX_init(&md_ctx);
330 EVP_MD_CTX_set_flags(&md_ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
331 EVP_DigestInit_ex(&md_ctx, EVP_md5(), NULL);
332 EVP_DigestUpdate(&md_ctx, x->bytes->data, x->bytes->length);
333 EVP_DigestFinal_ex(&md_ctx,md,NULL);
334 EVP_MD_CTX_cleanup(&md_ctx);
313 335
314 ret=( ((unsigned long)md[0] )|((unsigned long)md[1]<<8L)| 336 ret=( ((unsigned long)md[0] )|((unsigned long)md[1]<<8L)|
315 ((unsigned long)md[2]<<16L)|((unsigned long)md[3]<<24L) 337 ((unsigned long)md[2]<<16L)|((unsigned long)md[3]<<24L)
diff --git a/src/lib/libssl/src/crypto/x509/x509_r2x.c b/src/lib/libssl/src/crypto/x509/x509_r2x.c
index db051033d9..fb8a78dabe 100644
--- a/src/lib/libssl/src/crypto/x509/x509_r2x.c
+++ b/src/lib/libssl/src/crypto/x509/x509_r2x.c
@@ -92,8 +92,10 @@ X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey)
92 X509_set_subject_name(ret,X509_NAME_dup(xn)); 92 X509_set_subject_name(ret,X509_NAME_dup(xn));
93 X509_set_issuer_name(ret,X509_NAME_dup(xn)); 93 X509_set_issuer_name(ret,X509_NAME_dup(xn));
94 94
95 X509_gmtime_adj(xi->validity->notBefore,0); 95 if (X509_gmtime_adj(xi->validity->notBefore,0) == NULL)
96 X509_gmtime_adj(xi->validity->notAfter,(long)60*60*24*days); 96 goto err;
97 if (X509_gmtime_adj(xi->validity->notAfter,(long)60*60*24*days) == NULL)
98 goto err;
97 99
98 X509_set_pubkey(ret,X509_REQ_get_pubkey(r)); 100 X509_set_pubkey(ret,X509_REQ_get_pubkey(r));
99 101
diff --git a/src/lib/libssl/src/crypto/x509/x509_req.c b/src/lib/libssl/src/crypto/x509/x509_req.c
index 0affa3bf30..59fc6ca548 100644
--- a/src/lib/libssl/src/crypto/x509/x509_req.c
+++ b/src/lib/libssl/src/crypto/x509/x509_req.c
@@ -118,7 +118,7 @@ EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req)
118 * used and there may be more: so the list is configurable. 118 * used and there may be more: so the list is configurable.
119 */ 119 */
120 120
121static int ext_nid_list[] = { NID_ms_ext_req, NID_ext_req, NID_undef}; 121static int ext_nid_list[] = { NID_ext_req, NID_ms_ext_req, NID_undef};
122 122
123static int *ext_nids = ext_nid_list; 123static int *ext_nids = ext_nid_list;
124 124
@@ -143,32 +143,33 @@ void X509_REQ_set_extension_nids(int *nids)
143} 143}
144 144
145STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req) 145STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req)
146{ 146 {
147 X509_ATTRIBUTE *attr; 147 X509_ATTRIBUTE *attr;
148 STACK_OF(X509_ATTRIBUTE) *sk;
149 ASN1_TYPE *ext = NULL; 148 ASN1_TYPE *ext = NULL;
150 int i; 149 int idx, *pnid;
151 unsigned char *p; 150 unsigned char *p;
152 if ((req == NULL) || (req->req_info == NULL)) 151
152 if ((req == NULL) || (req->req_info == NULL) || !ext_nids)
153 return(NULL); 153 return(NULL);
154 sk=req->req_info->attributes; 154 for (pnid = ext_nids; *pnid != NID_undef; pnid++)
155 if (!sk) return NULL; 155 {
156 for(i = 0; i < sk_X509_ATTRIBUTE_num(sk); i++) { 156 idx = X509_REQ_get_attr_by_NID(req, *pnid, -1);
157 attr = sk_X509_ATTRIBUTE_value(sk, i); 157 if (idx == -1)
158 if(X509_REQ_extension_nid(OBJ_obj2nid(attr->object))) { 158 continue;
159 if(attr->single) ext = attr->value.single; 159 attr = X509_REQ_get_attr(req, idx);
160 else if(sk_ASN1_TYPE_num(attr->value.set)) 160 if(attr->single) ext = attr->value.single;
161 ext = sk_ASN1_TYPE_value(attr->value.set, 0); 161 else if(sk_ASN1_TYPE_num(attr->value.set))
162 break; 162 ext = sk_ASN1_TYPE_value(attr->value.set, 0);
163 break;
163 } 164 }
164 } 165 if(!ext || (ext->type != V_ASN1_SEQUENCE))
165 if(!ext || (ext->type != V_ASN1_SEQUENCE)) return NULL; 166 return NULL;
166 p = ext->value.sequence->data; 167 p = ext->value.sequence->data;
167 return d2i_ASN1_SET_OF_X509_EXTENSION(NULL, &p, 168 return d2i_ASN1_SET_OF_X509_EXTENSION(NULL, &p,
168 ext->value.sequence->length, 169 ext->value.sequence->length,
169 d2i_X509_EXTENSION, X509_EXTENSION_free, 170 d2i_X509_EXTENSION, X509_EXTENSION_free,
170 V_ASN1_SEQUENCE, V_ASN1_UNIVERSAL); 171 V_ASN1_SEQUENCE, V_ASN1_UNIVERSAL);
171} 172 }
172 173
173/* Add a STACK_OF extensions to a certificate request: allow alternative OIDs 174/* Add a STACK_OF extensions to a certificate request: allow alternative OIDs
174 * in case we want to create a non standard one. 175 * in case we want to create a non standard one.
diff --git a/src/lib/libssl/src/crypto/x509/x509_txt.c b/src/lib/libssl/src/crypto/x509/x509_txt.c
index e31ebc6741..f19e66a238 100644
--- a/src/lib/libssl/src/crypto/x509/x509_txt.c
+++ b/src/lib/libssl/src/crypto/x509/x509_txt.c
@@ -122,8 +122,14 @@ const char *X509_verify_cert_error_string(long n)
122 return("certificate revoked"); 122 return("certificate revoked");
123 case X509_V_ERR_INVALID_CA: 123 case X509_V_ERR_INVALID_CA:
124 return ("invalid CA certificate"); 124 return ("invalid CA certificate");
125 case X509_V_ERR_INVALID_NON_CA:
126 return ("invalid non-CA certificate (has CA markings)");
125 case X509_V_ERR_PATH_LENGTH_EXCEEDED: 127 case X509_V_ERR_PATH_LENGTH_EXCEEDED:
126 return ("path length constraint exceeded"); 128 return ("path length constraint exceeded");
129 case X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED:
130 return("proxy path length constraint exceeded");
131 case X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED:
132 return("proxy cerificates not allowed, please set the appropriate flag");
127 case X509_V_ERR_INVALID_PURPOSE: 133 case X509_V_ERR_INVALID_PURPOSE:
128 return ("unsupported certificate purpose"); 134 return ("unsupported certificate purpose");
129 case X509_V_ERR_CERT_UNTRUSTED: 135 case X509_V_ERR_CERT_UNTRUSTED:
@@ -140,19 +146,16 @@ const char *X509_verify_cert_error_string(long n)
140 return("authority and issuer serial number mismatch"); 146 return("authority and issuer serial number mismatch");
141 case X509_V_ERR_KEYUSAGE_NO_CERTSIGN: 147 case X509_V_ERR_KEYUSAGE_NO_CERTSIGN:
142 return("key usage does not include certificate signing"); 148 return("key usage does not include certificate signing");
143
144 case X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER: 149 case X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER:
145 return("unable to get CRL issuer certificate"); 150 return("unable to get CRL issuer certificate");
146
147 case X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION: 151 case X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION:
148 return("unhandled critical extension"); 152 return("unhandled critical extension");
149
150 case X509_V_ERR_KEYUSAGE_NO_CRL_SIGN: 153 case X509_V_ERR_KEYUSAGE_NO_CRL_SIGN:
151 return("key usage does not include CRL signing"); 154 return("key usage does not include CRL signing");
152 155 case X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE:
156 return("key usage does not include digital signature");
153 case X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION: 157 case X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION:
154 return("unhandled critical CRL extension"); 158 return("unhandled critical CRL extension");
155
156 default: 159 default:
157 BIO_snprintf(buf,sizeof buf,"error number %ld",n); 160 BIO_snprintf(buf,sizeof buf,"error number %ld",n);
158 return(buf); 161 return(buf);
diff --git a/src/lib/libssl/src/crypto/x509/x509_vfy.c b/src/lib/libssl/src/crypto/x509/x509_vfy.c
index 2e4d0b823a..e43c861ee7 100644
--- a/src/lib/libssl/src/crypto/x509/x509_vfy.c
+++ b/src/lib/libssl/src/crypto/x509/x509_vfy.c
@@ -73,7 +73,7 @@
73static int null_callback(int ok,X509_STORE_CTX *e); 73static int null_callback(int ok,X509_STORE_CTX *e);
74static int check_issued(X509_STORE_CTX *ctx, X509 *x, X509 *issuer); 74static int check_issued(X509_STORE_CTX *ctx, X509 *x, X509 *issuer);
75static X509 *find_issuer(X509_STORE_CTX *ctx, STACK_OF(X509) *sk, X509 *x); 75static X509 *find_issuer(X509_STORE_CTX *ctx, STACK_OF(X509) *sk, X509 *x);
76static int check_chain_purpose(X509_STORE_CTX *ctx); 76static int check_chain_extensions(X509_STORE_CTX *ctx);
77static int check_trust(X509_STORE_CTX *ctx); 77static int check_trust(X509_STORE_CTX *ctx);
78static int check_revocation(X509_STORE_CTX *ctx); 78static int check_revocation(X509_STORE_CTX *ctx);
79static int check_cert(X509_STORE_CTX *ctx); 79static int check_cert(X509_STORE_CTX *ctx);
@@ -281,7 +281,7 @@ int X509_verify_cert(X509_STORE_CTX *ctx)
281 } 281 }
282 282
283 /* We have the chain complete: now we need to check its purpose */ 283 /* We have the chain complete: now we need to check its purpose */
284 if (ctx->purpose > 0) ok = check_chain_purpose(ctx); 284 ok = check_chain_extensions(ctx);
285 285
286 if (!ok) goto end; 286 if (!ok) goto end;
287 287
@@ -365,21 +365,39 @@ static int get_issuer_sk(X509 **issuer, X509_STORE_CTX *ctx, X509 *x)
365 else 365 else
366 return 0; 366 return 0;
367} 367}
368 368
369 369
370/* Check a certificate chains extensions for consistency 370/* Check a certificate chains extensions for consistency
371 * with the supplied purpose 371 * with the supplied purpose
372 */ 372 */
373 373
374static int check_chain_purpose(X509_STORE_CTX *ctx) 374static int check_chain_extensions(X509_STORE_CTX *ctx)
375{ 375{
376#ifdef OPENSSL_NO_CHAIN_VERIFY 376#ifdef OPENSSL_NO_CHAIN_VERIFY
377 return 1; 377 return 1;
378#else 378#else
379 int i, ok=0; 379 int i, ok=0, must_be_ca;
380 X509 *x; 380 X509 *x;
381 int (*cb)(); 381 int (*cb)();
382 int proxy_path_length = 0;
383 int allow_proxy_certs = !!(ctx->flags & X509_V_FLAG_ALLOW_PROXY_CERTS);
382 cb=ctx->verify_cb; 384 cb=ctx->verify_cb;
385
386 /* must_be_ca can have 1 of 3 values:
387 -1: we accept both CA and non-CA certificates, to allow direct
388 use of self-signed certificates (which are marked as CA).
389 0: we only accept non-CA certificates. This is currently not
390 used, but the possibility is present for future extensions.
391 1: we only accept CA certificates. This is currently used for
392 all certificates in the chain except the leaf certificate.
393 */
394 must_be_ca = -1;
395
396 /* A hack to keep people who don't want to modify their software
397 happy */
398 if (getenv("OPENSSL_ALLOW_PROXY_CERTS"))
399 allow_proxy_certs = 1;
400
383 /* Check all untrusted certificates */ 401 /* Check all untrusted certificates */
384 for (i = 0; i < ctx->last_untrusted; i++) 402 for (i = 0; i < ctx->last_untrusted; i++)
385 { 403 {
@@ -394,23 +412,73 @@ static int check_chain_purpose(X509_STORE_CTX *ctx)
394 ok=cb(0,ctx); 412 ok=cb(0,ctx);
395 if (!ok) goto end; 413 if (!ok) goto end;
396 } 414 }
397 ret = X509_check_purpose(x, ctx->purpose, i); 415 if (!allow_proxy_certs && (x->ex_flags & EXFLAG_PROXY))
398 if ((ret == 0)
399 || ((ctx->flags & X509_V_FLAG_X509_STRICT)
400 && (ret != 1)))
401 { 416 {
402 if (i) 417 ctx->error = X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED;
418 ctx->error_depth = i;
419 ctx->current_cert = x;
420 ok=cb(0,ctx);
421 if (!ok) goto end;
422 }
423 ret = X509_check_ca(x);
424 switch(must_be_ca)
425 {
426 case -1:
427 if ((ctx->flags & X509_V_FLAG_X509_STRICT)
428 && (ret != 1) && (ret != 0))
429 {
430 ret = 0;
403 ctx->error = X509_V_ERR_INVALID_CA; 431 ctx->error = X509_V_ERR_INVALID_CA;
432 }
404 else 433 else
405 ctx->error = X509_V_ERR_INVALID_PURPOSE; 434 ret = 1;
435 break;
436 case 0:
437 if (ret != 0)
438 {
439 ret = 0;
440 ctx->error = X509_V_ERR_INVALID_NON_CA;
441 }
442 else
443 ret = 1;
444 break;
445 default:
446 if ((ret == 0)
447 || ((ctx->flags & X509_V_FLAG_X509_STRICT)
448 && (ret != 1)))
449 {
450 ret = 0;
451 ctx->error = X509_V_ERR_INVALID_CA;
452 }
453 else
454 ret = 1;
455 break;
456 }
457 if (ret == 0)
458 {
406 ctx->error_depth = i; 459 ctx->error_depth = i;
407 ctx->current_cert = x; 460 ctx->current_cert = x;
408 ok=cb(0,ctx); 461 ok=cb(0,ctx);
409 if (!ok) goto end; 462 if (!ok) goto end;
410 } 463 }
464 if (ctx->purpose > 0)
465 {
466 ret = X509_check_purpose(x, ctx->purpose,
467 must_be_ca > 0);
468 if ((ret == 0)
469 || ((ctx->flags & X509_V_FLAG_X509_STRICT)
470 && (ret != 1)))
471 {
472 ctx->error = X509_V_ERR_INVALID_PURPOSE;
473 ctx->error_depth = i;
474 ctx->current_cert = x;
475 ok=cb(0,ctx);
476 if (!ok) goto end;
477 }
478 }
411 /* Check pathlen */ 479 /* Check pathlen */
412 if ((i > 1) && (x->ex_pathlen != -1) 480 if ((i > 1) && (x->ex_pathlen != -1)
413 && (i > (x->ex_pathlen + 1))) 481 && (i > (x->ex_pathlen + proxy_path_length + 1)))
414 { 482 {
415 ctx->error = X509_V_ERR_PATH_LENGTH_EXCEEDED; 483 ctx->error = X509_V_ERR_PATH_LENGTH_EXCEEDED;
416 ctx->error_depth = i; 484 ctx->error_depth = i;
@@ -418,6 +486,32 @@ static int check_chain_purpose(X509_STORE_CTX *ctx)
418 ok=cb(0,ctx); 486 ok=cb(0,ctx);
419 if (!ok) goto end; 487 if (!ok) goto end;
420 } 488 }
489 /* If this certificate is a proxy certificate, the next
490 certificate must be another proxy certificate or a EE
491 certificate. If not, the next certificate must be a
492 CA certificate. */
493 if (x->ex_flags & EXFLAG_PROXY)
494 {
495 PROXY_CERT_INFO_EXTENSION *pci =
496 X509_get_ext_d2i(x, NID_proxyCertInfo,
497 NULL, NULL);
498 if (pci->pcPathLengthConstraint &&
499 ASN1_INTEGER_get(pci->pcPathLengthConstraint)
500 < i)
501 {
502 PROXY_CERT_INFO_EXTENSION_free(pci);
503 ctx->error = X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED;
504 ctx->error_depth = i;
505 ctx->current_cert = x;
506 ok=cb(0,ctx);
507 if (!ok) goto end;
508 }
509 PROXY_CERT_INFO_EXTENSION_free(pci);
510 proxy_path_length++;
511 must_be_ca = 0;
512 }
513 else
514 must_be_ca = 1;
421 } 515 }
422 ok = 1; 516 ok = 1;
423 end: 517 end:
@@ -627,6 +721,15 @@ static int cert_crl(X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x)
627 X509_EXTENSION *ext; 721 X509_EXTENSION *ext;
628 /* Look for serial number of certificate in CRL */ 722 /* Look for serial number of certificate in CRL */
629 rtmp.serialNumber = X509_get_serialNumber(x); 723 rtmp.serialNumber = X509_get_serialNumber(x);
724 /* Sort revoked into serial number order if not already sorted.
725 * Do this under a lock to avoid race condition.
726 */
727 if (!sk_X509_REVOKED_is_sorted(crl->crl->revoked))
728 {
729 CRYPTO_w_lock(CRYPTO_LOCK_X509_CRL);
730 sk_X509_REVOKED_sort(crl->crl->revoked);
731 CRYPTO_w_unlock(CRYPTO_LOCK_X509_CRL);
732 }
630 idx = sk_X509_REVOKED_find(crl->crl->revoked, &rtmp); 733 idx = sk_X509_REVOKED_find(crl->crl->revoked, &rtmp);
631 /* If found assume revoked: want something cleverer than 734 /* If found assume revoked: want something cleverer than
632 * this to handle entry extensions in V2 CRLs. 735 * this to handle entry extensions in V2 CRLs.
@@ -772,6 +875,7 @@ static int internal_verify(X509_STORE_CTX *ctx)
772 } 875 }
773 876
774 /* The last error (if any) is still in the error value */ 877 /* The last error (if any) is still in the error value */
878 ctx->current_issuer=xi;
775 ctx->current_cert=xs; 879 ctx->current_cert=xs;
776 ok=(*cb)(1,ctx); 880 ok=(*cb)(1,ctx);
777 if (!ok) goto end; 881 if (!ok) goto end;
@@ -851,7 +955,8 @@ int X509_cmp_time(ASN1_TIME *ctm, time_t *cmp_time)
851 atm.length=sizeof(buff2); 955 atm.length=sizeof(buff2);
852 atm.data=(unsigned char *)buff2; 956 atm.data=(unsigned char *)buff2;
853 957
854 X509_time_adj(&atm,-offset*60, cmp_time); 958 if (X509_time_adj(&atm,-offset*60, cmp_time) == NULL)
959 return 0;
855 960
856 if (ctm->type == V_ASN1_UTCTIME) 961 if (ctm->type == V_ASN1_UTCTIME)
857 { 962 {
diff --git a/src/lib/libssl/src/crypto/x509/x509_vfy.h b/src/lib/libssl/src/crypto/x509/x509_vfy.h
index 198495884c..7fd1f0bc4d 100644
--- a/src/lib/libssl/src/crypto/x509/x509_vfy.h
+++ b/src/lib/libssl/src/crypto/x509/x509_vfy.h
@@ -276,7 +276,7 @@ struct x509_store_ctx_st /* X509_STORE_CTX */
276#define X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY 6 276#define X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY 6
277#define X509_V_ERR_CERT_SIGNATURE_FAILURE 7 277#define X509_V_ERR_CERT_SIGNATURE_FAILURE 7
278#define X509_V_ERR_CRL_SIGNATURE_FAILURE 8 278#define X509_V_ERR_CRL_SIGNATURE_FAILURE 8
279#define X509_V_ERR_CERT_NOT_YET_VALID 9 279#define X509_V_ERR_CERT_NOT_YET_VALID 9
280#define X509_V_ERR_CERT_HAS_EXPIRED 10 280#define X509_V_ERR_CERT_HAS_EXPIRED 10
281#define X509_V_ERR_CRL_NOT_YET_VALID 11 281#define X509_V_ERR_CRL_NOT_YET_VALID 11
282#define X509_V_ERR_CRL_HAS_EXPIRED 12 282#define X509_V_ERR_CRL_HAS_EXPIRED 12
@@ -306,6 +306,10 @@ struct x509_store_ctx_st /* X509_STORE_CTX */
306#define X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION 34 306#define X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION 34
307#define X509_V_ERR_KEYUSAGE_NO_CRL_SIGN 35 307#define X509_V_ERR_KEYUSAGE_NO_CRL_SIGN 35
308#define X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION 36 308#define X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION 36
309#define X509_V_ERR_INVALID_NON_CA 37
310#define X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED 38
311#define X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE 39
312#define X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED 40
309 313
310/* The application is not happy */ 314/* The application is not happy */
311#define X509_V_ERR_APPLICATION_VERIFICATION 50 315#define X509_V_ERR_APPLICATION_VERIFICATION 50
@@ -324,6 +328,8 @@ struct x509_store_ctx_st /* X509_STORE_CTX */
324#define X509_V_FLAG_IGNORE_CRITICAL 0x10 328#define X509_V_FLAG_IGNORE_CRITICAL 0x10
325/* Disable workarounds for broken certificates */ 329/* Disable workarounds for broken certificates */
326#define X509_V_FLAG_X509_STRICT 0x20 330#define X509_V_FLAG_X509_STRICT 0x20
331/* Enable proxy certificate validation */
332#define X509_V_FLAG_ALLOW_PROXY_CERTS 0x40
327 333
328int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, int type, 334int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, int type,
329 X509_NAME *name); 335 X509_NAME *name);
diff --git a/src/lib/libssl/src/crypto/x509/x509cset.c b/src/lib/libssl/src/crypto/x509/x509cset.c
index 6cac440ea9..9d1646d5c8 100644
--- a/src/lib/libssl/src/crypto/x509/x509cset.c
+++ b/src/lib/libssl/src/crypto/x509/x509cset.c
@@ -129,6 +129,7 @@ int X509_CRL_sort(X509_CRL *c)
129 r=sk_X509_REVOKED_value(c->crl->revoked,i); 129 r=sk_X509_REVOKED_value(c->crl->revoked,i);
130 r->sequence=i; 130 r->sequence=i;
131 } 131 }
132 c->crl->enc.modified = 1;
132 return 1; 133 return 1;
133 } 134 }
134 135
diff --git a/src/lib/libssl/src/crypto/x509/x509name.c b/src/lib/libssl/src/crypto/x509/x509name.c
index 4c20e03ece..068abfe5f0 100644
--- a/src/lib/libssl/src/crypto/x509/x509name.c
+++ b/src/lib/libssl/src/crypto/x509/x509name.c
@@ -195,8 +195,8 @@ int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type,
195 return ret; 195 return ret;
196} 196}
197 197
198int X509_NAME_add_entry_by_txt(X509_NAME *name, char *field, int type, 198int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type,
199 unsigned char *bytes, int len, int loc, int set) 199 const unsigned char *bytes, int len, int loc, int set)
200{ 200{
201 X509_NAME_ENTRY *ne; 201 X509_NAME_ENTRY *ne;
202 int ret; 202 int ret;
@@ -273,7 +273,7 @@ err:
273 } 273 }
274 274
275X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, 275X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne,
276 char *field, int type, unsigned char *bytes, int len) 276 const char *field, int type, const unsigned char *bytes, int len)
277 { 277 {
278 ASN1_OBJECT *obj; 278 ASN1_OBJECT *obj;
279 X509_NAME_ENTRY *nentry; 279 X509_NAME_ENTRY *nentry;
@@ -309,7 +309,7 @@ X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid,
309 } 309 }
310 310
311X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, 311X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne,
312 ASN1_OBJECT *obj, int type, unsigned char *bytes, int len) 312 ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len)
313 { 313 {
314 X509_NAME_ENTRY *ret; 314 X509_NAME_ENTRY *ret;
315 315
@@ -347,7 +347,7 @@ int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, ASN1_OBJECT *obj)
347 } 347 }
348 348
349int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, 349int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type,
350 unsigned char *bytes, int len) 350 const unsigned char *bytes, int len)
351 { 351 {
352 int i; 352 int i;
353 353
diff --git a/src/lib/libssl/src/crypto/x509/x_all.c b/src/lib/libssl/src/crypto/x509/x_all.c
index fb5015cd4d..ac6dea493a 100644
--- a/src/lib/libssl/src/crypto/x509/x_all.c
+++ b/src/lib/libssl/src/crypto/x509/x_all.c
@@ -103,6 +103,7 @@ int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md)
103 103
104int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md) 104int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md)
105 { 105 {
106 x->crl->enc.modified = 1;
106 return(ASN1_item_sign(ASN1_ITEM_rptr(X509_CRL_INFO),x->crl->sig_alg, 107 return(ASN1_item_sign(ASN1_ITEM_rptr(X509_CRL_INFO),x->crl->sig_alg,
107 x->sig_alg, x->signature, x->crl,pkey,md)); 108 x->sig_alg, x->signature, x->crl,pkey,md));
108 } 109 }
diff --git a/src/lib/libssl/src/crypto/x509v3/Makefile b/src/lib/libssl/src/crypto/x509v3/Makefile
new file mode 100644
index 0000000000..ed2f91cbb3
--- /dev/null
+++ b/src/lib/libssl/src/crypto/x509v3/Makefile
@@ -0,0 +1,645 @@
1#
2# SSLeay/crypto/x509v3/Makefile
3#
4
5DIR= x509v3
6TOP= ../..
7CC= cc
8INCLUDES= -I.. -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile README
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC= v3_bcons.c v3_bitst.c v3_conf.c v3_extku.c v3_ia5.c v3_lib.c \
26v3_prn.c v3_utl.c v3err.c v3_genn.c v3_alt.c v3_skey.c v3_akey.c v3_pku.c \
27v3_int.c v3_enum.c v3_sxnet.c v3_cpols.c v3_crld.c v3_purp.c v3_info.c \
28v3_ocsp.c v3_akeya.c v3_pcia.c v3_pci.c
29LIBOBJ= v3_bcons.o v3_bitst.o v3_conf.o v3_extku.o v3_ia5.o v3_lib.o \
30v3_prn.o v3_utl.o v3err.o v3_genn.o v3_alt.o v3_skey.o v3_akey.o v3_pku.o \
31v3_int.o v3_enum.o v3_sxnet.o v3_cpols.o v3_crld.o v3_purp.o v3_info.o \
32v3_ocsp.o v3_akeya.o v3_pcia.o v3_pci.o
33
34SRC= $(LIBSRC)
35
36EXHEADER= x509v3.h
37HEADER= $(EXHEADER)
38
39ALL= $(GENERAL) $(SRC) $(HEADER)
40
41top:
42 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
43
44all: lib
45
46lib: $(LIBOBJ)
47 $(AR) $(LIB) $(LIBOBJ)
48 $(RANLIB) $(LIB) || echo Never mind.
49 @touch lib
50
51files:
52 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
53
54links:
55 @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
56 @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
57 @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
58
59install:
60 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
61 do \
62 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
63 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
64 done;
65
66tags:
67 ctags $(SRC)
68
69tests:
70
71lint:
72 lint -DLINT $(INCLUDES) $(SRC)>fluff
73
74depend:
75 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
76
77dclean:
78 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
79 mv -f Makefile.new $(MAKEFILE)
80
81clean:
82 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
83
84# DO NOT DELETE THIS LINE -- make depend depends on it.
85
86v3_akey.o: ../../e_os.h ../../include/openssl/aes.h
87v3_akey.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
88v3_akey.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
89v3_akey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
90v3_akey.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
91v3_akey.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
92v3_akey.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
93v3_akey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
94v3_akey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
95v3_akey.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
96v3_akey.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
97v3_akey.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
98v3_akey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
99v3_akey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
100v3_akey.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
101v3_akey.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
102v3_akey.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
103v3_akey.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
104v3_akey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
105v3_akey.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
106v3_akey.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
107v3_akey.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
108v3_akey.o: ../cryptlib.h v3_akey.c
109v3_akeya.o: ../../e_os.h ../../include/openssl/aes.h
110v3_akeya.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
111v3_akeya.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
112v3_akeya.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
113v3_akeya.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
114v3_akeya.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
115v3_akeya.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
116v3_akeya.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
117v3_akeya.o: ../../include/openssl/err.h ../../include/openssl/evp.h
118v3_akeya.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
119v3_akeya.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
120v3_akeya.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
121v3_akeya.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
122v3_akeya.o: ../../include/openssl/opensslconf.h
123v3_akeya.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
124v3_akeya.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
125v3_akeya.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
126v3_akeya.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
127v3_akeya.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
128v3_akeya.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
129v3_akeya.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
130v3_akeya.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
131v3_akeya.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_akeya.c
132v3_alt.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
133v3_alt.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
134v3_alt.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
135v3_alt.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
136v3_alt.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
137v3_alt.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
138v3_alt.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
139v3_alt.o: ../../include/openssl/err.h ../../include/openssl/evp.h
140v3_alt.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
141v3_alt.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
142v3_alt.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
143v3_alt.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
144v3_alt.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
145v3_alt.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
146v3_alt.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
147v3_alt.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
148v3_alt.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
149v3_alt.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
150v3_alt.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
151v3_alt.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
152v3_alt.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
153v3_alt.o: ../cryptlib.h v3_alt.c
154v3_bcons.o: ../../e_os.h ../../include/openssl/aes.h
155v3_bcons.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
156v3_bcons.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
157v3_bcons.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
158v3_bcons.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
159v3_bcons.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
160v3_bcons.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
161v3_bcons.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
162v3_bcons.o: ../../include/openssl/err.h ../../include/openssl/evp.h
163v3_bcons.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
164v3_bcons.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
165v3_bcons.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
166v3_bcons.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
167v3_bcons.o: ../../include/openssl/opensslconf.h
168v3_bcons.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
169v3_bcons.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
170v3_bcons.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
171v3_bcons.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
172v3_bcons.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
173v3_bcons.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
174v3_bcons.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
175v3_bcons.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
176v3_bcons.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_bcons.c
177v3_bitst.o: ../../e_os.h ../../include/openssl/aes.h
178v3_bitst.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
179v3_bitst.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
180v3_bitst.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
181v3_bitst.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
182v3_bitst.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
183v3_bitst.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
184v3_bitst.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
185v3_bitst.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
186v3_bitst.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
187v3_bitst.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
188v3_bitst.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
189v3_bitst.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
190v3_bitst.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
191v3_bitst.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
192v3_bitst.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
193v3_bitst.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
194v3_bitst.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
195v3_bitst.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
196v3_bitst.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
197v3_bitst.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
198v3_bitst.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_bitst.c
199v3_conf.o: ../../e_os.h ../../include/openssl/aes.h
200v3_conf.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
201v3_conf.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
202v3_conf.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
203v3_conf.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
204v3_conf.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
205v3_conf.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
206v3_conf.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
207v3_conf.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
208v3_conf.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
209v3_conf.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
210v3_conf.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
211v3_conf.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
212v3_conf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
213v3_conf.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
214v3_conf.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
215v3_conf.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
216v3_conf.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
217v3_conf.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
218v3_conf.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
219v3_conf.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
220v3_conf.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_conf.c
221v3_cpols.o: ../../e_os.h ../../include/openssl/aes.h
222v3_cpols.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
223v3_cpols.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
224v3_cpols.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
225v3_cpols.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
226v3_cpols.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
227v3_cpols.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
228v3_cpols.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
229v3_cpols.o: ../../include/openssl/err.h ../../include/openssl/evp.h
230v3_cpols.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
231v3_cpols.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
232v3_cpols.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
233v3_cpols.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
234v3_cpols.o: ../../include/openssl/opensslconf.h
235v3_cpols.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
236v3_cpols.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
237v3_cpols.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
238v3_cpols.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
239v3_cpols.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
240v3_cpols.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
241v3_cpols.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
242v3_cpols.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
243v3_cpols.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_cpols.c
244v3_crld.o: ../../e_os.h ../../include/openssl/aes.h
245v3_crld.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
246v3_crld.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
247v3_crld.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
248v3_crld.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
249v3_crld.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
250v3_crld.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
251v3_crld.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
252v3_crld.o: ../../include/openssl/err.h ../../include/openssl/evp.h
253v3_crld.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
254v3_crld.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
255v3_crld.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
256v3_crld.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
257v3_crld.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
258v3_crld.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
259v3_crld.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
260v3_crld.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
261v3_crld.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
262v3_crld.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
263v3_crld.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
264v3_crld.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
265v3_crld.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
266v3_crld.o: ../cryptlib.h v3_crld.c
267v3_enum.o: ../../e_os.h ../../include/openssl/aes.h
268v3_enum.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
269v3_enum.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
270v3_enum.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
271v3_enum.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
272v3_enum.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
273v3_enum.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
274v3_enum.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
275v3_enum.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
276v3_enum.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
277v3_enum.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
278v3_enum.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
279v3_enum.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
280v3_enum.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
281v3_enum.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
282v3_enum.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
283v3_enum.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
284v3_enum.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
285v3_enum.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
286v3_enum.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
287v3_enum.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
288v3_enum.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_enum.c
289v3_extku.o: ../../e_os.h ../../include/openssl/aes.h
290v3_extku.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
291v3_extku.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
292v3_extku.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
293v3_extku.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
294v3_extku.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
295v3_extku.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
296v3_extku.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
297v3_extku.o: ../../include/openssl/err.h ../../include/openssl/evp.h
298v3_extku.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
299v3_extku.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
300v3_extku.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
301v3_extku.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
302v3_extku.o: ../../include/openssl/opensslconf.h
303v3_extku.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
304v3_extku.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
305v3_extku.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
306v3_extku.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
307v3_extku.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
308v3_extku.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
309v3_extku.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
310v3_extku.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
311v3_extku.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_extku.c
312v3_genn.o: ../../e_os.h ../../include/openssl/aes.h
313v3_genn.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
314v3_genn.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
315v3_genn.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
316v3_genn.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
317v3_genn.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
318v3_genn.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
319v3_genn.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
320v3_genn.o: ../../include/openssl/err.h ../../include/openssl/evp.h
321v3_genn.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
322v3_genn.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
323v3_genn.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
324v3_genn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
325v3_genn.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
326v3_genn.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
327v3_genn.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
328v3_genn.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
329v3_genn.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
330v3_genn.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
331v3_genn.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
332v3_genn.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
333v3_genn.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
334v3_genn.o: ../cryptlib.h v3_genn.c
335v3_ia5.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
336v3_ia5.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
337v3_ia5.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
338v3_ia5.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
339v3_ia5.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
340v3_ia5.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
341v3_ia5.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
342v3_ia5.o: ../../include/openssl/err.h ../../include/openssl/evp.h
343v3_ia5.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
344v3_ia5.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
345v3_ia5.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
346v3_ia5.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
347v3_ia5.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
348v3_ia5.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
349v3_ia5.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
350v3_ia5.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
351v3_ia5.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
352v3_ia5.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
353v3_ia5.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
354v3_ia5.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
355v3_ia5.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
356v3_ia5.o: ../cryptlib.h v3_ia5.c
357v3_info.o: ../../e_os.h ../../include/openssl/aes.h
358v3_info.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
359v3_info.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
360v3_info.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
361v3_info.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
362v3_info.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
363v3_info.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
364v3_info.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
365v3_info.o: ../../include/openssl/err.h ../../include/openssl/evp.h
366v3_info.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
367v3_info.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
368v3_info.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
369v3_info.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
370v3_info.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
371v3_info.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
372v3_info.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
373v3_info.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
374v3_info.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
375v3_info.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
376v3_info.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
377v3_info.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
378v3_info.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
379v3_info.o: ../cryptlib.h v3_info.c
380v3_int.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
381v3_int.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
382v3_int.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
383v3_int.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
384v3_int.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
385v3_int.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
386v3_int.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
387v3_int.o: ../../include/openssl/err.h ../../include/openssl/evp.h
388v3_int.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
389v3_int.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
390v3_int.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
391v3_int.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
392v3_int.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
393v3_int.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
394v3_int.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
395v3_int.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
396v3_int.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
397v3_int.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
398v3_int.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
399v3_int.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
400v3_int.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
401v3_int.o: ../cryptlib.h v3_int.c
402v3_lib.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
403v3_lib.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
404v3_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
405v3_lib.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
406v3_lib.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
407v3_lib.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
408v3_lib.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
409v3_lib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
410v3_lib.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
411v3_lib.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
412v3_lib.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
413v3_lib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
414v3_lib.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
415v3_lib.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
416v3_lib.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
417v3_lib.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
418v3_lib.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
419v3_lib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
420v3_lib.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
421v3_lib.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
422v3_lib.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
423v3_lib.o: ../cryptlib.h ext_dat.h v3_lib.c
424v3_ocsp.o: ../../e_os.h ../../include/openssl/aes.h
425v3_ocsp.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
426v3_ocsp.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
427v3_ocsp.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
428v3_ocsp.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
429v3_ocsp.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
430v3_ocsp.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
431v3_ocsp.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
432v3_ocsp.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
433v3_ocsp.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
434v3_ocsp.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
435v3_ocsp.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
436v3_ocsp.o: ../../include/openssl/objects.h ../../include/openssl/ocsp.h
437v3_ocsp.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
438v3_ocsp.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
439v3_ocsp.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
440v3_ocsp.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
441v3_ocsp.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
442v3_ocsp.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
443v3_ocsp.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
444v3_ocsp.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
445v3_ocsp.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
446v3_ocsp.o: ../cryptlib.h v3_ocsp.c
447v3_pci.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
448v3_pci.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
449v3_pci.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
450v3_pci.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
451v3_pci.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
452v3_pci.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
453v3_pci.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
454v3_pci.o: ../../include/openssl/err.h ../../include/openssl/evp.h
455v3_pci.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
456v3_pci.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
457v3_pci.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
458v3_pci.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
459v3_pci.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
460v3_pci.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
461v3_pci.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
462v3_pci.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
463v3_pci.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
464v3_pci.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
465v3_pci.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
466v3_pci.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
467v3_pci.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
468v3_pci.o: ../cryptlib.h v3_pci.c
469v3_pcia.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
470v3_pcia.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
471v3_pcia.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
472v3_pcia.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
473v3_pcia.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
474v3_pcia.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
475v3_pcia.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
476v3_pcia.o: ../../include/openssl/e_os2.h ../../include/openssl/evp.h
477v3_pcia.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
478v3_pcia.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
479v3_pcia.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
480v3_pcia.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
481v3_pcia.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
482v3_pcia.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
483v3_pcia.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
484v3_pcia.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
485v3_pcia.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
486v3_pcia.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
487v3_pcia.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
488v3_pcia.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
489v3_pcia.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
490v3_pcia.o: v3_pcia.c
491v3_pku.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
492v3_pku.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
493v3_pku.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
494v3_pku.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
495v3_pku.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
496v3_pku.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
497v3_pku.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
498v3_pku.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
499v3_pku.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
500v3_pku.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
501v3_pku.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
502v3_pku.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
503v3_pku.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
504v3_pku.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
505v3_pku.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
506v3_pku.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
507v3_pku.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
508v3_pku.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
509v3_pku.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
510v3_pku.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
511v3_pku.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
512v3_pku.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_pku.c
513v3_prn.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
514v3_prn.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
515v3_prn.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
516v3_prn.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
517v3_prn.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
518v3_prn.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
519v3_prn.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
520v3_prn.o: ../../include/openssl/err.h ../../include/openssl/evp.h
521v3_prn.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
522v3_prn.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
523v3_prn.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
524v3_prn.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
525v3_prn.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
526v3_prn.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
527v3_prn.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
528v3_prn.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
529v3_prn.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
530v3_prn.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
531v3_prn.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
532v3_prn.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
533v3_prn.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
534v3_prn.o: ../cryptlib.h v3_prn.c
535v3_purp.o: ../../e_os.h ../../include/openssl/aes.h
536v3_purp.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
537v3_purp.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
538v3_purp.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
539v3_purp.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
540v3_purp.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
541v3_purp.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
542v3_purp.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
543v3_purp.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
544v3_purp.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
545v3_purp.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
546v3_purp.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
547v3_purp.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
548v3_purp.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
549v3_purp.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
550v3_purp.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
551v3_purp.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
552v3_purp.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
553v3_purp.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
554v3_purp.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
555v3_purp.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
556v3_purp.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_purp.c
557v3_skey.o: ../../e_os.h ../../include/openssl/aes.h
558v3_skey.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
559v3_skey.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
560v3_skey.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
561v3_skey.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
562v3_skey.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
563v3_skey.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
564v3_skey.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
565v3_skey.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
566v3_skey.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
567v3_skey.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
568v3_skey.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
569v3_skey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
570v3_skey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
571v3_skey.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
572v3_skey.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
573v3_skey.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
574v3_skey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
575v3_skey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
576v3_skey.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
577v3_skey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
578v3_skey.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_skey.c
579v3_sxnet.o: ../../e_os.h ../../include/openssl/aes.h
580v3_sxnet.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
581v3_sxnet.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
582v3_sxnet.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
583v3_sxnet.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
584v3_sxnet.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
585v3_sxnet.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
586v3_sxnet.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
587v3_sxnet.o: ../../include/openssl/err.h ../../include/openssl/evp.h
588v3_sxnet.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
589v3_sxnet.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
590v3_sxnet.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
591v3_sxnet.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
592v3_sxnet.o: ../../include/openssl/opensslconf.h
593v3_sxnet.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
594v3_sxnet.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
595v3_sxnet.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
596v3_sxnet.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
597v3_sxnet.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
598v3_sxnet.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
599v3_sxnet.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
600v3_sxnet.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
601v3_sxnet.o: ../../include/openssl/x509v3.h ../cryptlib.h v3_sxnet.c
602v3_utl.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/asn1.h
603v3_utl.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
604v3_utl.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
605v3_utl.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
606v3_utl.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
607v3_utl.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
608v3_utl.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
609v3_utl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
610v3_utl.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
611v3_utl.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
612v3_utl.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
613v3_utl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
614v3_utl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
615v3_utl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
616v3_utl.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
617v3_utl.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
618v3_utl.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
619v3_utl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
620v3_utl.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
621v3_utl.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
622v3_utl.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
623v3_utl.o: ../cryptlib.h v3_utl.c
624v3err.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
625v3err.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
626v3err.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
627v3err.o: ../../include/openssl/cast.h ../../include/openssl/conf.h
628v3err.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
629v3err.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
630v3err.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
631v3err.o: ../../include/openssl/err.h ../../include/openssl/evp.h
632v3err.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
633v3err.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
634v3err.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
635v3err.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
636v3err.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
637v3err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
638v3err.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
639v3err.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
640v3err.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
641v3err.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
642v3err.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
643v3err.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
644v3err.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
645v3err.o: v3err.c
diff --git a/src/lib/libssl/src/crypto/x509v3/ext_dat.h b/src/lib/libssl/src/crypto/x509v3/ext_dat.h
index 5442480595..d8328ac468 100644
--- a/src/lib/libssl/src/crypto/x509v3/ext_dat.h
+++ b/src/lib/libssl/src/crypto/x509v3/ext_dat.h
@@ -3,7 +3,7 @@
3 * project 1999. 3 * project 1999.
4 */ 4 */
5/* ==================================================================== 5/* ====================================================================
6 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 6 * Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved.
7 * 7 *
8 * Redistribution and use in source and binary forms, with or without 8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions 9 * modification, are permitted provided that the following conditions
@@ -60,10 +60,11 @@
60extern X509V3_EXT_METHOD v3_bcons, v3_nscert, v3_key_usage, v3_ext_ku; 60extern X509V3_EXT_METHOD v3_bcons, v3_nscert, v3_key_usage, v3_ext_ku;
61extern X509V3_EXT_METHOD v3_pkey_usage_period, v3_sxnet, v3_info, v3_sinfo; 61extern X509V3_EXT_METHOD v3_pkey_usage_period, v3_sxnet, v3_info, v3_sinfo;
62extern X509V3_EXT_METHOD v3_ns_ia5_list[], v3_alt[], v3_skey_id, v3_akey_id; 62extern X509V3_EXT_METHOD v3_ns_ia5_list[], v3_alt[], v3_skey_id, v3_akey_id;
63extern X509V3_EXT_METHOD v3_crl_num, v3_crl_reason, v3_crl_invdate, v3_cpols, v3_crld; 63extern X509V3_EXT_METHOD v3_crl_num, v3_crl_reason, v3_crl_invdate;
64extern X509V3_EXT_METHOD v3_delta_crl, v3_cpols, v3_crld;
64extern X509V3_EXT_METHOD v3_ocsp_nonce, v3_ocsp_accresp, v3_ocsp_acutoff; 65extern X509V3_EXT_METHOD v3_ocsp_nonce, v3_ocsp_accresp, v3_ocsp_acutoff;
65extern X509V3_EXT_METHOD v3_ocsp_crlid, v3_ocsp_nocheck, v3_ocsp_serviceloc; 66extern X509V3_EXT_METHOD v3_ocsp_crlid, v3_ocsp_nocheck, v3_ocsp_serviceloc;
66extern X509V3_EXT_METHOD v3_crl_hold; 67extern X509V3_EXT_METHOD v3_crl_hold, v3_pci;
67 68
68/* This table will be searched using OBJ_bsearch so it *must* kept in 69/* This table will be searched using OBJ_bsearch so it *must* kept in
69 * order of the ext_nid values. 70 * order of the ext_nid values.
@@ -89,6 +90,7 @@ static X509V3_EXT_METHOD *standard_exts[] = {
89&v3_akey_id, 90&v3_akey_id,
90&v3_crld, 91&v3_crld,
91&v3_ext_ku, 92&v3_ext_ku,
93&v3_delta_crl,
92&v3_crl_reason, 94&v3_crl_reason,
93#ifndef OPENSSL_NO_OCSP 95#ifndef OPENSSL_NO_OCSP
94&v3_crl_invdate, 96&v3_crl_invdate,
@@ -105,8 +107,9 @@ static X509V3_EXT_METHOD *standard_exts[] = {
105#endif 107#endif
106&v3_sinfo, 108&v3_sinfo,
107#ifndef OPENSSL_NO_OCSP 109#ifndef OPENSSL_NO_OCSP
108&v3_crl_hold 110&v3_crl_hold,
109#endif 111#endif
112&v3_pci,
110}; 113};
111 114
112/* Number of standard extensions */ 115/* Number of standard extensions */
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_bitst.c b/src/lib/libssl/src/crypto/x509v3/v3_bitst.c
index 16cf125562..274965306d 100644
--- a/src/lib/libssl/src/crypto/x509v3/v3_bitst.c
+++ b/src/lib/libssl/src/crypto/x509v3/v3_bitst.c
@@ -124,7 +124,12 @@ static ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
124 for(bnam = method->usr_data; bnam->lname; bnam++) { 124 for(bnam = method->usr_data; bnam->lname; bnam++) {
125 if(!strcmp(bnam->sname, val->name) || 125 if(!strcmp(bnam->sname, val->name) ||
126 !strcmp(bnam->lname, val->name) ) { 126 !strcmp(bnam->lname, val->name) ) {
127 ASN1_BIT_STRING_set_bit(bs, bnam->bitnum, 1); 127 if(!ASN1_BIT_STRING_set_bit(bs, bnam->bitnum, 1)) {
128 X509V3err(X509V3_F_V2I_ASN1_BIT_STRING,
129 ERR_R_MALLOC_FAILURE);
130 M_ASN1_BIT_STRING_free(bs);
131 return NULL;
132 }
128 break; 133 break;
129 } 134 }
130 } 135 }
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_ia5.c b/src/lib/libssl/src/crypto/x509v3/v3_ia5.c
index f9414456de..9683afa47c 100644
--- a/src/lib/libssl/src/crypto/x509v3/v3_ia5.c
+++ b/src/lib/libssl/src/crypto/x509v3/v3_ia5.c
@@ -82,7 +82,10 @@ static char *i2s_ASN1_IA5STRING(X509V3_EXT_METHOD *method,
82{ 82{
83 char *tmp; 83 char *tmp;
84 if(!ia5 || !ia5->length) return NULL; 84 if(!ia5 || !ia5->length) return NULL;
85 if (!(tmp = OPENSSL_malloc(ia5->length + 1))) return NULL; 85 if(!(tmp = OPENSSL_malloc(ia5->length + 1))) {
86 X509V3err(X509V3_F_I2S_ASN1_IA5STRING,ERR_R_MALLOC_FAILURE);
87 return NULL;
88 }
86 memcpy(tmp, ia5->data, ia5->length); 89 memcpy(tmp, ia5->data, ia5->length);
87 tmp[ia5->length] = 0; 90 tmp[ia5->length] = 0;
88 return tmp; 91 return tmp;
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_int.c b/src/lib/libssl/src/crypto/x509v3/v3_int.c
index f34cbfb731..7a43b4717b 100644
--- a/src/lib/libssl/src/crypto/x509v3/v3_int.c
+++ b/src/lib/libssl/src/crypto/x509v3/v3_int.c
@@ -3,7 +3,7 @@
3 * project 1999. 3 * project 1999.
4 */ 4 */
5/* ==================================================================== 5/* ====================================================================
6 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 6 * Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved.
7 * 7 *
8 * Redistribution and use in source and binary forms, with or without 8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions 9 * modification, are permitted provided that the following conditions
@@ -61,9 +61,16 @@
61#include <openssl/x509v3.h> 61#include <openssl/x509v3.h>
62 62
63X509V3_EXT_METHOD v3_crl_num = { 63X509V3_EXT_METHOD v3_crl_num = {
64NID_crl_number, 0, ASN1_ITEM_ref(ASN1_INTEGER), 64 NID_crl_number, 0, ASN1_ITEM_ref(ASN1_INTEGER),
650,0,0,0, 65 0,0,0,0,
66(X509V3_EXT_I2S)i2s_ASN1_INTEGER, 66 (X509V3_EXT_I2S)i2s_ASN1_INTEGER,
670, 67 0,
680,0,0,0, NULL}; 68 0,0,0,0, NULL};
69
70X509V3_EXT_METHOD v3_delta_crl = {
71 NID_delta_crl, 0, ASN1_ITEM_ref(ASN1_INTEGER),
72 0,0,0,0,
73 (X509V3_EXT_I2S)i2s_ASN1_INTEGER,
74 0,
75 0,0,0,0, NULL};
69 76
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_pci.c b/src/lib/libssl/src/crypto/x509v3/v3_pci.c
new file mode 100644
index 0000000000..b32d968619
--- /dev/null
+++ b/src/lib/libssl/src/crypto/x509v3/v3_pci.c
@@ -0,0 +1,313 @@
1/* v3_pci.c -*- mode:C; c-file-style: "eay" -*- */
2/* Contributed to the OpenSSL Project 2004
3 * by Richard Levitte (richard@levitte.org)
4 */
5/* Copyright (c) 2004 Kungliga Tekniska Högskolan
6 * (Royal Institute of Technology, Stockholm, Sweden).
7 * All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
11 * are met:
12 *
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 *
16 * 2. Redistributions in binary form must reproduce the above copyright
17 * notice, this list of conditions and the following disclaimer in the
18 * documentation and/or other materials provided with the distribution.
19 *
20 * 3. Neither the name of the Institute nor the names of its contributors
21 * may be used to endorse or promote products derived from this software
22 * without specific prior written permission.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
25 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE.
35 */
36
37#include <stdio.h>
38#include "cryptlib.h"
39#include <openssl/conf.h>
40#include <openssl/x509v3.h>
41
42static int i2r_pci(X509V3_EXT_METHOD *method, PROXY_CERT_INFO_EXTENSION *ext,
43 BIO *out, int indent);
44static PROXY_CERT_INFO_EXTENSION *r2i_pci(X509V3_EXT_METHOD *method,
45 X509V3_CTX *ctx, char *str);
46
47X509V3_EXT_METHOD v3_pci =
48 { NID_proxyCertInfo, 0, ASN1_ITEM_ref(PROXY_CERT_INFO_EXTENSION),
49 0,0,0,0,
50 0,0,
51 NULL, NULL,
52 (X509V3_EXT_I2R)i2r_pci,
53 (X509V3_EXT_R2I)r2i_pci,
54 NULL,
55 };
56
57static int i2r_pci(X509V3_EXT_METHOD *method, PROXY_CERT_INFO_EXTENSION *pci,
58 BIO *out, int indent)
59 {
60 BIO_printf(out, "%*sPath Length Constraint: ", indent, "");
61 if (pci->pcPathLengthConstraint)
62 i2a_ASN1_INTEGER(out, pci->pcPathLengthConstraint);
63 else
64 BIO_printf(out, "infinite");
65 BIO_puts(out, "\n");
66 BIO_printf(out, "%*sPolicy Language: ", indent, "");
67 i2a_ASN1_OBJECT(out, pci->proxyPolicy->policyLanguage);
68 BIO_puts(out, "\n");
69 if (pci->proxyPolicy->policy && pci->proxyPolicy->policy->data)
70 BIO_printf(out, "%*sPolicy Text: %s\n", indent, "",
71 pci->proxyPolicy->policy->data);
72 return 1;
73 }
74
75static int process_pci_value(CONF_VALUE *val,
76 ASN1_OBJECT **language, ASN1_INTEGER **pathlen,
77 ASN1_OCTET_STRING **policy)
78 {
79 int free_policy = 0;
80
81 if (strcmp(val->name, "language") == 0)
82 {
83 if (*language)
84 {
85 X509V3err(X509V3_F_R2I_PCI,X509V3_R_POLICY_LANGUAGE_ALREADTY_DEFINED);
86 X509V3_conf_err(val);
87 return 0;
88 }
89 if (!(*language = OBJ_txt2obj(val->value, 0)))
90 {
91 X509V3err(X509V3_F_R2I_PCI,X509V3_R_INVALID_OBJECT_IDENTIFIER);
92 X509V3_conf_err(val);
93 return 0;
94 }
95 }
96 else if (strcmp(val->name, "pathlen") == 0)
97 {
98 if (*pathlen)
99 {
100 X509V3err(X509V3_F_R2I_PCI,X509V3_R_POLICY_PATH_LENGTH_ALREADTY_DEFINED);
101 X509V3_conf_err(val);
102 return 0;
103 }
104 if (!X509V3_get_value_int(val, pathlen))
105 {
106 X509V3err(X509V3_F_R2I_PCI,X509V3_R_POLICY_PATH_LENGTH);
107 X509V3_conf_err(val);
108 return 0;
109 }
110 }
111 else if (strcmp(val->name, "policy") == 0)
112 {
113 unsigned char *tmp_data = NULL;
114 long val_len;
115 if (!*policy)
116 {
117 *policy = ASN1_OCTET_STRING_new();
118 if (!*policy)
119 {
120 X509V3err(X509V3_F_R2I_PCI,ERR_R_MALLOC_FAILURE);
121 X509V3_conf_err(val);
122 return 0;
123 }
124 free_policy = 1;
125 }
126 if (strncmp(val->value, "hex:", 4) == 0)
127 {
128 unsigned char *tmp_data2 =
129 string_to_hex(val->value + 4, &val_len);
130
131 if (!tmp_data2) goto err;
132
133 tmp_data = OPENSSL_realloc((*policy)->data,
134 (*policy)->length + val_len + 1);
135 if (tmp_data)
136 {
137 (*policy)->data = tmp_data;
138 memcpy(&(*policy)->data[(*policy)->length],
139 tmp_data2, val_len);
140 (*policy)->length += val_len;
141 (*policy)->data[(*policy)->length] = '\0';
142 }
143 }
144 else if (strncmp(val->value, "file:", 5) == 0)
145 {
146 unsigned char buf[2048];
147 int n;
148 BIO *b = BIO_new_file(val->value + 5, "r");
149 if (!b)
150 {
151 X509V3err(X509V3_F_R2I_PCI,ERR_R_BIO_LIB);
152 X509V3_conf_err(val);
153 goto err;
154 }
155 while((n = BIO_read(b, buf, sizeof(buf))) > 0
156 || (n == 0 && BIO_should_retry(b)))
157 {
158 if (!n) continue;
159
160 tmp_data = OPENSSL_realloc((*policy)->data,
161 (*policy)->length + n + 1);
162
163 if (!tmp_data)
164 break;
165
166 (*policy)->data = tmp_data;
167 memcpy(&(*policy)->data[(*policy)->length],
168 buf, n);
169 (*policy)->length += n;
170 (*policy)->data[(*policy)->length] = '\0';
171 }
172
173 if (n < 0)
174 {
175 X509V3err(X509V3_F_R2I_PCI,ERR_R_BIO_LIB);
176 X509V3_conf_err(val);
177 goto err;
178 }
179 }
180 else if (strncmp(val->value, "text:", 5) == 0)
181 {
182 val_len = strlen(val->value + 5);
183 tmp_data = OPENSSL_realloc((*policy)->data,
184 (*policy)->length + val_len + 1);
185 if (tmp_data)
186 {
187 (*policy)->data = tmp_data;
188 memcpy(&(*policy)->data[(*policy)->length],
189 val->value + 5, val_len);
190 (*policy)->length += val_len;
191 (*policy)->data[(*policy)->length] = '\0';
192 }
193 }
194 else
195 {
196 X509V3err(X509V3_F_R2I_PCI,X509V3_R_INCORRECT_POLICY_SYNTAX_TAG);
197 X509V3_conf_err(val);
198 goto err;
199 }
200 if (!tmp_data)
201 {
202 X509V3err(X509V3_F_R2I_PCI,ERR_R_MALLOC_FAILURE);
203 X509V3_conf_err(val);
204 goto err;
205 }
206 }
207 return 1;
208err:
209 if (free_policy)
210 {
211 ASN1_OCTET_STRING_free(*policy);
212 *policy = NULL;
213 }
214 return 0;
215 }
216
217static PROXY_CERT_INFO_EXTENSION *r2i_pci(X509V3_EXT_METHOD *method,
218 X509V3_CTX *ctx, char *value)
219 {
220 PROXY_CERT_INFO_EXTENSION *pci = NULL;
221 STACK_OF(CONF_VALUE) *vals;
222 ASN1_OBJECT *language = NULL;
223 ASN1_INTEGER *pathlen = NULL;
224 ASN1_OCTET_STRING *policy = NULL;
225 int i, j;
226
227 vals = X509V3_parse_list(value);
228 for (i = 0; i < sk_CONF_VALUE_num(vals); i++)
229 {
230 CONF_VALUE *cnf = sk_CONF_VALUE_value(vals, i);
231 if (!cnf->name || (*cnf->name != '@' && !cnf->value))
232 {
233 X509V3err(X509V3_F_R2I_PCI,X509V3_R_INVALID_PROXY_POLICY_SETTING);
234 X509V3_conf_err(cnf);
235 goto err;
236 }
237 if (*cnf->name == '@')
238 {
239 STACK_OF(CONF_VALUE) *sect;
240 int success_p = 1;
241
242 sect = X509V3_get_section(ctx, cnf->name + 1);
243 if (!sect)
244 {
245 X509V3err(X509V3_F_R2I_PCI,X509V3_R_INVALID_SECTION);
246 X509V3_conf_err(cnf);
247 goto err;
248 }
249 for (j = 0; success_p && j < sk_CONF_VALUE_num(sect); j++)
250 {
251 success_p =
252 process_pci_value(sk_CONF_VALUE_value(sect, j),
253 &language, &pathlen, &policy);
254 }
255 X509V3_section_free(ctx, sect);
256 if (!success_p)
257 goto err;
258 }
259 else
260 {
261 if (!process_pci_value(cnf,
262 &language, &pathlen, &policy))
263 {
264 X509V3_conf_err(cnf);
265 goto err;
266 }
267 }
268 }
269
270 /* Language is mandatory */
271 if (!language)
272 {
273 X509V3err(X509V3_F_R2I_PCI,X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED);
274 goto err;
275 }
276 i = OBJ_obj2nid(language);
277 if ((i == NID_Independent || i == NID_id_ppl_inheritAll) && policy)
278 {
279 X509V3err(X509V3_F_R2I_PCI,X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY);
280 goto err;
281 }
282
283 pci = PROXY_CERT_INFO_EXTENSION_new();
284 if (!pci)
285 {
286 X509V3err(X509V3_F_R2I_PCI,ERR_R_MALLOC_FAILURE);
287 goto err;
288 }
289 pci->proxyPolicy = PROXY_POLICY_new();
290 if (!pci->proxyPolicy)
291 {
292 X509V3err(X509V3_F_R2I_PCI,ERR_R_MALLOC_FAILURE);
293 goto err;
294 }
295
296 pci->proxyPolicy->policyLanguage = language; language = NULL;
297 pci->proxyPolicy->policy = policy; policy = NULL;
298 pci->pcPathLengthConstraint = pathlen; pathlen = NULL;
299 goto end;
300err:
301 if (language) { ASN1_OBJECT_free(language); language = NULL; }
302 if (pathlen) { ASN1_INTEGER_free(pathlen); pathlen = NULL; }
303 if (policy) { ASN1_OCTET_STRING_free(policy); policy = NULL; }
304 if (pci && pci->proxyPolicy)
305 {
306 PROXY_POLICY_free(pci->proxyPolicy);
307 pci->proxyPolicy = NULL;
308 }
309 if (pci) { PROXY_CERT_INFO_EXTENSION_free(pci); pci = NULL; }
310end:
311 sk_CONF_VALUE_pop_free(vals, X509V3_conf_free);
312 return pci;
313 }
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_pcia.c b/src/lib/libssl/src/crypto/x509v3/v3_pcia.c
new file mode 100644
index 0000000000..bb362e0e5a
--- /dev/null
+++ b/src/lib/libssl/src/crypto/x509v3/v3_pcia.c
@@ -0,0 +1,55 @@
1/* v3_pcia.c -*- mode:C; c-file-style: "eay" -*- */
2/* Contributed to the OpenSSL Project 2004
3 * by Richard Levitte (richard@levitte.org)
4 */
5/* Copyright (c) 2004 Kungliga Tekniska Högskolan
6 * (Royal Institute of Technology, Stockholm, Sweden).
7 * All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
11 * are met:
12 *
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 *
16 * 2. Redistributions in binary form must reproduce the above copyright
17 * notice, this list of conditions and the following disclaimer in the
18 * documentation and/or other materials provided with the distribution.
19 *
20 * 3. Neither the name of the Institute nor the names of its contributors
21 * may be used to endorse or promote products derived from this software
22 * without specific prior written permission.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
25 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE.
35 */
36
37#include <openssl/asn1.h>
38#include <openssl/asn1t.h>
39#include <openssl/x509v3.h>
40
41ASN1_SEQUENCE(PROXY_POLICY) =
42 {
43 ASN1_SIMPLE(PROXY_POLICY,policyLanguage,ASN1_OBJECT),
44 ASN1_OPT(PROXY_POLICY,policy,ASN1_OCTET_STRING)
45} ASN1_SEQUENCE_END(PROXY_POLICY)
46
47IMPLEMENT_ASN1_FUNCTIONS(PROXY_POLICY)
48
49ASN1_SEQUENCE(PROXY_CERT_INFO_EXTENSION) =
50 {
51 ASN1_OPT(PROXY_CERT_INFO_EXTENSION,pcPathLengthConstraint,ASN1_INTEGER),
52 ASN1_SIMPLE(PROXY_CERT_INFO_EXTENSION,proxyPolicy,PROXY_POLICY)
53} ASN1_SEQUENCE_END(PROXY_CERT_INFO_EXTENSION)
54
55IMPLEMENT_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION)
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_purp.c b/src/lib/libssl/src/crypto/x509v3/v3_purp.c
index b3d1ae5d1c..bbdf6da493 100644
--- a/src/lib/libssl/src/crypto/x509v3/v3_purp.c
+++ b/src/lib/libssl/src/crypto/x509v3/v3_purp.c
@@ -63,7 +63,6 @@
63 63
64static void x509v3_cache_extensions(X509 *x); 64static void x509v3_cache_extensions(X509 *x);
65 65
66static int ca_check(const X509 *x);
67static int check_ssl_ca(const X509 *x); 66static int check_ssl_ca(const X509 *x);
68static int check_purpose_ssl_client(const X509_PURPOSE *xp, const X509 *x, int ca); 67static int check_purpose_ssl_client(const X509_PURPOSE *xp, const X509 *x, int ca);
69static int check_purpose_ssl_server(const X509_PURPOSE *xp, const X509 *x, int ca); 68static 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)
286 NID_key_usage, /* 83 */ 285 NID_key_usage, /* 83 */
287 NID_subject_alt_name, /* 85 */ 286 NID_subject_alt_name, /* 85 */
288 NID_basic_constraints, /* 87 */ 287 NID_basic_constraints, /* 87 */
289 NID_ext_key_usage /* 126 */ 288 NID_ext_key_usage, /* 126 */
289 NID_proxyCertInfo /* 661 */
290 }; 290 };
291 291
292 int ex_nid; 292 int ex_nid;
@@ -307,6 +307,7 @@ int X509_supported_extension(X509_EXTENSION *ex)
307static void x509v3_cache_extensions(X509 *x) 307static void x509v3_cache_extensions(X509 *x)
308{ 308{
309 BASIC_CONSTRAINTS *bs; 309 BASIC_CONSTRAINTS *bs;
310 PROXY_CERT_INFO_EXTENSION *pci;
310 ASN1_BIT_STRING *usage; 311 ASN1_BIT_STRING *usage;
311 ASN1_BIT_STRING *ns; 312 ASN1_BIT_STRING *ns;
312 EXTENDED_KEY_USAGE *extusage; 313 EXTENDED_KEY_USAGE *extusage;
@@ -335,6 +336,16 @@ static void x509v3_cache_extensions(X509 *x)
335 BASIC_CONSTRAINTS_free(bs); 336 BASIC_CONSTRAINTS_free(bs);
336 x->ex_flags |= EXFLAG_BCONS; 337 x->ex_flags |= EXFLAG_BCONS;
337 } 338 }
339 /* Handle proxy certificates */
340 if((pci=X509_get_ext_d2i(x, NID_proxyCertInfo, NULL, NULL))) {
341 if (x->ex_flags & EXFLAG_CA
342 || X509_get_ext_by_NID(x, NID_subject_alt_name, 0) >= 0
343 || X509_get_ext_by_NID(x, NID_issuer_alt_name, 0) >= 0) {
344 x->ex_flags |= EXFLAG_INVALID;
345 }
346 PROXY_CERT_INFO_EXTENSION_free(pci);
347 x->ex_flags |= EXFLAG_PROXY;
348 }
338 /* Handle key usage */ 349 /* Handle key usage */
339 if((usage=X509_get_ext_d2i(x, NID_key_usage, NULL, NULL))) { 350 if((usage=X509_get_ext_d2i(x, NID_key_usage, NULL, NULL))) {
340 if(usage->length > 0) { 351 if(usage->length > 0) {
@@ -426,7 +437,7 @@ static void x509v3_cache_extensions(X509 *x)
426#define ns_reject(x, usage) \ 437#define ns_reject(x, usage) \
427 (((x)->ex_flags & EXFLAG_NSCERT) && !((x)->ex_nscert & (usage))) 438 (((x)->ex_flags & EXFLAG_NSCERT) && !((x)->ex_nscert & (usage)))
428 439
429static int ca_check(const X509 *x) 440static int check_ca(const X509 *x)
430{ 441{
431 /* keyUsage if present should allow cert signing */ 442 /* keyUsage if present should allow cert signing */
432 if(ku_reject(x, KU_KEY_CERT_SIGN)) return 0; 443 if(ku_reject(x, KU_KEY_CERT_SIGN)) return 0;
@@ -435,25 +446,37 @@ static int ca_check(const X509 *x)
435 /* If basicConstraints says not a CA then say so */ 446 /* If basicConstraints says not a CA then say so */
436 else return 0; 447 else return 0;
437 } else { 448 } else {
449 /* we support V1 roots for... uh, I don't really know why. */
438 if((x->ex_flags & V1_ROOT) == V1_ROOT) return 3; 450 if((x->ex_flags & V1_ROOT) == V1_ROOT) return 3;
439 /* If key usage present it must have certSign so tolerate it */ 451 /* If key usage present it must have certSign so tolerate it */
440 else if (x->ex_flags & EXFLAG_KUSAGE) return 4; 452 else if (x->ex_flags & EXFLAG_KUSAGE) return 4;
441 else return 2; 453 /* Older certificates could have Netscape-specific CA types */
454 else if (x->ex_flags & EXFLAG_NSCERT
455 && x->ex_nscert & NS_ANY_CA) return 5;
456 /* can this still be regarded a CA certificate? I doubt it */
457 return 0;
442 } 458 }
443} 459}
444 460
461int X509_check_ca(X509 *x)
462{
463 if(!(x->ex_flags & EXFLAG_SET)) {
464 CRYPTO_w_lock(CRYPTO_LOCK_X509);
465 x509v3_cache_extensions(x);
466 CRYPTO_w_unlock(CRYPTO_LOCK_X509);
467 }
468
469 return check_ca(x);
470}
471
445/* Check SSL CA: common checks for SSL client and server */ 472/* Check SSL CA: common checks for SSL client and server */
446static int check_ssl_ca(const X509 *x) 473static int check_ssl_ca(const X509 *x)
447{ 474{
448 int ca_ret; 475 int ca_ret;
449 ca_ret = ca_check(x); 476 ca_ret = check_ca(x);
450 if(!ca_ret) return 0; 477 if(!ca_ret) return 0;
451 /* check nsCertType if present */ 478 /* check nsCertType if present */
452 if(x->ex_flags & EXFLAG_NSCERT) { 479 if(ca_ret != 5 || x->ex_nscert & NS_SSL_CA) return ca_ret;
453 if(x->ex_nscert & NS_SSL_CA) return ca_ret;
454 return 0;
455 }
456 if(ca_ret != 2) return ca_ret;
457 else return 0; 480 else return 0;
458} 481}
459 482
@@ -498,14 +521,10 @@ static int purpose_smime(const X509 *x, int ca)
498 if(xku_reject(x,XKU_SMIME)) return 0; 521 if(xku_reject(x,XKU_SMIME)) return 0;
499 if(ca) { 522 if(ca) {
500 int ca_ret; 523 int ca_ret;
501 ca_ret = ca_check(x); 524 ca_ret = check_ca(x);
502 if(!ca_ret) return 0; 525 if(!ca_ret) return 0;
503 /* check nsCertType if present */ 526 /* check nsCertType if present */
504 if(x->ex_flags & EXFLAG_NSCERT) { 527 if(ca_ret != 5 || x->ex_nscert & NS_SMIME_CA) return ca_ret;
505 if(x->ex_nscert & NS_SMIME_CA) return ca_ret;
506 return 0;
507 }
508 if(ca_ret != 2) return ca_ret;
509 else return 0; 528 else return 0;
510 } 529 }
511 if(x->ex_flags & EXFLAG_NSCERT) { 530 if(x->ex_flags & EXFLAG_NSCERT) {
@@ -539,7 +558,7 @@ static int check_purpose_crl_sign(const X509_PURPOSE *xp, const X509 *x, int ca)
539{ 558{
540 if(ca) { 559 if(ca) {
541 int ca_ret; 560 int ca_ret;
542 if((ca_ret = ca_check(x)) != 2) return ca_ret; 561 if((ca_ret = check_ca(x)) != 2) return ca_ret;
543 else return 0; 562 else return 0;
544 } 563 }
545 if(ku_reject(x, KU_CRL_SIGN)) return 0; 564 if(ku_reject(x, KU_CRL_SIGN)) return 0;
@@ -552,17 +571,9 @@ static int check_purpose_crl_sign(const X509_PURPOSE *xp, const X509 *x, int ca)
552 571
553static int ocsp_helper(const X509_PURPOSE *xp, const X509 *x, int ca) 572static int ocsp_helper(const X509_PURPOSE *xp, const X509 *x, int ca)
554{ 573{
555 /* Must be a valid CA */ 574 /* Must be a valid CA. Should we really support the "I don't know"
556 if(ca) { 575 value (2)? */
557 int ca_ret; 576 if(ca) return check_ca(x);
558 ca_ret = ca_check(x);
559 if(ca_ret != 2) return ca_ret;
560 if(x->ex_flags & EXFLAG_NSCERT) {
561 if(x->ex_nscert & NS_ANY_CA) return ca_ret;
562 return 0;
563 }
564 return 0;
565 }
566 /* leaf certificate is checked in OCSP_verify() */ 577 /* leaf certificate is checked in OCSP_verify() */
567 return 1; 578 return 1;
568} 579}
@@ -624,7 +635,13 @@ int X509_check_issued(X509 *issuer, X509 *subject)
624 return X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH; 635 return X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH;
625 } 636 }
626 } 637 }
627 if(ku_reject(issuer, KU_KEY_CERT_SIGN)) return X509_V_ERR_KEYUSAGE_NO_CERTSIGN; 638 if(subject->ex_flags & EXFLAG_PROXY)
639 {
640 if(ku_reject(issuer, KU_DIGITAL_SIGNATURE))
641 return X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE;
642 }
643 else if(ku_reject(issuer, KU_KEY_CERT_SIGN))
644 return X509_V_ERR_KEYUSAGE_NO_CERTSIGN;
628 return X509_V_OK; 645 return X509_V_OK;
629} 646}
630 647
diff --git a/src/lib/libssl/src/crypto/x509v3/v3err.c b/src/lib/libssl/src/crypto/x509v3/v3err.c
index 6458e95bb9..2df0c3ef01 100644
--- a/src/lib/libssl/src/crypto/x509v3/v3err.c
+++ b/src/lib/libssl/src/crypto/x509v3/v3err.c
@@ -1,6 +1,6 @@
1/* crypto/x509v3/v3err.c */ 1/* crypto/x509v3/v3err.c */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
@@ -72,12 +72,14 @@ static ERR_STRING_DATA X509V3_str_functs[]=
72{ERR_PACK(0,X509V3_F_DO_EXT_I2D,0), "DO_EXT_I2D"}, 72{ERR_PACK(0,X509V3_F_DO_EXT_I2D,0), "DO_EXT_I2D"},
73{ERR_PACK(0,X509V3_F_HEX_TO_STRING,0), "hex_to_string"}, 73{ERR_PACK(0,X509V3_F_HEX_TO_STRING,0), "hex_to_string"},
74{ERR_PACK(0,X509V3_F_I2S_ASN1_ENUMERATED,0), "i2s_ASN1_ENUMERATED"}, 74{ERR_PACK(0,X509V3_F_I2S_ASN1_ENUMERATED,0), "i2s_ASN1_ENUMERATED"},
75{ERR_PACK(0,X509V3_F_I2S_ASN1_IA5STRING,0), "I2S_ASN1_IA5STRING"},
75{ERR_PACK(0,X509V3_F_I2S_ASN1_INTEGER,0), "i2s_ASN1_INTEGER"}, 76{ERR_PACK(0,X509V3_F_I2S_ASN1_INTEGER,0), "i2s_ASN1_INTEGER"},
76{ERR_PACK(0,X509V3_F_I2V_AUTHORITY_INFO_ACCESS,0), "I2V_AUTHORITY_INFO_ACCESS"}, 77{ERR_PACK(0,X509V3_F_I2V_AUTHORITY_INFO_ACCESS,0), "I2V_AUTHORITY_INFO_ACCESS"},
77{ERR_PACK(0,X509V3_F_NOTICE_SECTION,0), "NOTICE_SECTION"}, 78{ERR_PACK(0,X509V3_F_NOTICE_SECTION,0), "NOTICE_SECTION"},
78{ERR_PACK(0,X509V3_F_NREF_NOS,0), "NREF_NOS"}, 79{ERR_PACK(0,X509V3_F_NREF_NOS,0), "NREF_NOS"},
79{ERR_PACK(0,X509V3_F_POLICY_SECTION,0), "POLICY_SECTION"}, 80{ERR_PACK(0,X509V3_F_POLICY_SECTION,0), "POLICY_SECTION"},
80{ERR_PACK(0,X509V3_F_R2I_CERTPOL,0), "R2I_CERTPOL"}, 81{ERR_PACK(0,X509V3_F_R2I_CERTPOL,0), "R2I_CERTPOL"},
82{ERR_PACK(0,X509V3_F_R2I_PCI,0), "R2I_PCI"},
81{ERR_PACK(0,X509V3_F_S2I_ASN1_IA5STRING,0), "S2I_ASN1_IA5STRING"}, 83{ERR_PACK(0,X509V3_F_S2I_ASN1_IA5STRING,0), "S2I_ASN1_IA5STRING"},
82{ERR_PACK(0,X509V3_F_S2I_ASN1_INTEGER,0), "s2i_ASN1_INTEGER"}, 84{ERR_PACK(0,X509V3_F_S2I_ASN1_INTEGER,0), "s2i_ASN1_INTEGER"},
83{ERR_PACK(0,X509V3_F_S2I_ASN1_OCTET_STRING,0), "s2i_ASN1_OCTET_STRING"}, 85{ERR_PACK(0,X509V3_F_S2I_ASN1_OCTET_STRING,0), "s2i_ASN1_OCTET_STRING"},
@@ -128,6 +130,7 @@ static ERR_STRING_DATA X509V3_str_reasons[]=
128{X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED,"extension setting not supported"}, 130{X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED,"extension setting not supported"},
129{X509V3_R_EXTENSION_VALUE_ERROR ,"extension value error"}, 131{X509V3_R_EXTENSION_VALUE_ERROR ,"extension value error"},
130{X509V3_R_ILLEGAL_HEX_DIGIT ,"illegal hex digit"}, 132{X509V3_R_ILLEGAL_HEX_DIGIT ,"illegal hex digit"},
133{X509V3_R_INCORRECT_POLICY_SYNTAX_TAG ,"incorrect policy syntax tag"},
131{X509V3_R_INVALID_BOOLEAN_STRING ,"invalid boolean string"}, 134{X509V3_R_INVALID_BOOLEAN_STRING ,"invalid boolean string"},
132{X509V3_R_INVALID_EXTENSION_STRING ,"invalid extension string"}, 135{X509V3_R_INVALID_EXTENSION_STRING ,"invalid extension string"},
133{X509V3_R_INVALID_NAME ,"invalid name"}, 136{X509V3_R_INVALID_NAME ,"invalid name"},
@@ -139,6 +142,8 @@ static ERR_STRING_DATA X509V3_str_reasons[]=
139{X509V3_R_INVALID_OBJECT_IDENTIFIER ,"invalid object identifier"}, 142{X509V3_R_INVALID_OBJECT_IDENTIFIER ,"invalid object identifier"},
140{X509V3_R_INVALID_OPTION ,"invalid option"}, 143{X509V3_R_INVALID_OPTION ,"invalid option"},
141{X509V3_R_INVALID_POLICY_IDENTIFIER ,"invalid policy identifier"}, 144{X509V3_R_INVALID_POLICY_IDENTIFIER ,"invalid policy identifier"},
145{X509V3_R_INVALID_PROXY_POLICY_IDENTIFIER,"invalid proxy policy identifier"},
146{X509V3_R_INVALID_PROXY_POLICY_SETTING ,"invalid proxy policy setting"},
142{X509V3_R_INVALID_PURPOSE ,"invalid purpose"}, 147{X509V3_R_INVALID_PURPOSE ,"invalid purpose"},
143{X509V3_R_INVALID_SECTION ,"invalid section"}, 148{X509V3_R_INVALID_SECTION ,"invalid section"},
144{X509V3_R_INVALID_SYNTAX ,"invalid syntax"}, 149{X509V3_R_INVALID_SYNTAX ,"invalid syntax"},
@@ -149,9 +154,16 @@ static ERR_STRING_DATA X509V3_str_reasons[]=
149{X509V3_R_NO_ISSUER_CERTIFICATE ,"no issuer certificate"}, 154{X509V3_R_NO_ISSUER_CERTIFICATE ,"no issuer certificate"},
150{X509V3_R_NO_ISSUER_DETAILS ,"no issuer details"}, 155{X509V3_R_NO_ISSUER_DETAILS ,"no issuer details"},
151{X509V3_R_NO_POLICY_IDENTIFIER ,"no policy identifier"}, 156{X509V3_R_NO_POLICY_IDENTIFIER ,"no policy identifier"},
157{X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED,"no proxy cert policy language defined"},
152{X509V3_R_NO_PUBLIC_KEY ,"no public key"}, 158{X509V3_R_NO_PUBLIC_KEY ,"no public key"},
153{X509V3_R_NO_SUBJECT_DETAILS ,"no subject details"}, 159{X509V3_R_NO_SUBJECT_DETAILS ,"no subject details"},
154{X509V3_R_ODD_NUMBER_OF_DIGITS ,"odd number of digits"}, 160{X509V3_R_ODD_NUMBER_OF_DIGITS ,"odd number of digits"},
161{X509V3_R_POLICY_LANGUAGE_ALREADTY_DEFINED,"policy language alreadty defined"},
162{X509V3_R_POLICY_PATH_LENGTH ,"policy path length"},
163{X509V3_R_POLICY_PATH_LENGTH_ALREADTY_DEFINED,"policy path length alreadty defined"},
164{X509V3_R_POLICY_SYNTAX_NOT ,"policy syntax not"},
165{X509V3_R_POLICY_SYNTAX_NOT_CURRENTLY_SUPPORTED,"policy syntax not currently supported"},
166{X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY,"policy when proxy language requires no policy"},
155{X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS ,"unable to get issuer details"}, 167{X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS ,"unable to get issuer details"},
156{X509V3_R_UNABLE_TO_GET_ISSUER_KEYID ,"unable to get issuer keyid"}, 168{X509V3_R_UNABLE_TO_GET_ISSUER_KEYID ,"unable to get issuer keyid"},
157{X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT ,"unknown bit string argument"}, 169{X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT ,"unknown bit string argument"},
diff --git a/src/lib/libssl/src/crypto/x509v3/x509v3.h b/src/lib/libssl/src/crypto/x509v3/x509v3.h
index fb07a19016..e6d91251c2 100644
--- a/src/lib/libssl/src/crypto/x509v3/x509v3.h
+++ b/src/lib/libssl/src/crypto/x509v3/x509v3.h
@@ -287,6 +287,23 @@ typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES;
287DECLARE_STACK_OF(POLICYINFO) 287DECLARE_STACK_OF(POLICYINFO)
288DECLARE_ASN1_SET_OF(POLICYINFO) 288DECLARE_ASN1_SET_OF(POLICYINFO)
289 289
290/* Proxy certificate structures, see RFC 3820 */
291typedef struct PROXY_POLICY_st
292 {
293 ASN1_OBJECT *policyLanguage;
294 ASN1_OCTET_STRING *policy;
295 } PROXY_POLICY;
296
297typedef struct PROXY_CERT_INFO_EXTENSION_st
298 {
299 ASN1_INTEGER *pcPathLengthConstraint;
300 PROXY_POLICY *proxyPolicy;
301 } PROXY_CERT_INFO_EXTENSION;
302
303DECLARE_ASN1_FUNCTIONS(PROXY_POLICY)
304DECLARE_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION)
305
306
290#define X509V3_conf_err(val) ERR_add_error_data(6, "section:", val->section, \ 307#define X509V3_conf_err(val) ERR_add_error_data(6, "section:", val->section, \
291",name:", val->name, ",value:", val->value); 308",name:", val->name, ",value:", val->value);
292 309
@@ -325,6 +342,7 @@ DECLARE_ASN1_SET_OF(POLICYINFO)
325#define EXFLAG_INVALID 0x80 342#define EXFLAG_INVALID 0x80
326#define EXFLAG_SET 0x100 343#define EXFLAG_SET 0x100
327#define EXFLAG_CRITICAL 0x200 344#define EXFLAG_CRITICAL 0x200
345#define EXFLAG_PROXY 0x400
328 346
329#define KU_DIGITAL_SIGNATURE 0x0080 347#define KU_DIGITAL_SIGNATURE 0x0080
330#define KU_NON_REPUDIATION 0x0040 348#define KU_NON_REPUDIATION 0x0040
@@ -527,6 +545,7 @@ int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent);
527 545
528int X509V3_extensions_print(BIO *out, char *title, STACK_OF(X509_EXTENSION) *exts, unsigned long flag, int indent); 546int X509V3_extensions_print(BIO *out, char *title, STACK_OF(X509_EXTENSION) *exts, unsigned long flag, int indent);
529 547
548int X509_check_ca(X509 *x);
530int X509_check_purpose(X509 *x, int id, int ca); 549int X509_check_purpose(X509 *x, int id, int ca);
531int X509_supported_extension(X509_EXTENSION *ex); 550int X509_supported_extension(X509_EXTENSION *ex);
532int X509_PURPOSE_set(int *p, int purpose); 551int X509_PURPOSE_set(int *p, int purpose);
@@ -564,12 +583,14 @@ void ERR_load_X509V3_strings(void);
564#define X509V3_F_DO_EXT_I2D 135 583#define X509V3_F_DO_EXT_I2D 135
565#define X509V3_F_HEX_TO_STRING 111 584#define X509V3_F_HEX_TO_STRING 111
566#define X509V3_F_I2S_ASN1_ENUMERATED 121 585#define X509V3_F_I2S_ASN1_ENUMERATED 121
586#define X509V3_F_I2S_ASN1_IA5STRING 142
567#define X509V3_F_I2S_ASN1_INTEGER 120 587#define X509V3_F_I2S_ASN1_INTEGER 120
568#define X509V3_F_I2V_AUTHORITY_INFO_ACCESS 138 588#define X509V3_F_I2V_AUTHORITY_INFO_ACCESS 138
569#define X509V3_F_NOTICE_SECTION 132 589#define X509V3_F_NOTICE_SECTION 132
570#define X509V3_F_NREF_NOS 133 590#define X509V3_F_NREF_NOS 133
571#define X509V3_F_POLICY_SECTION 131 591#define X509V3_F_POLICY_SECTION 131
572#define X509V3_F_R2I_CERTPOL 130 592#define X509V3_F_R2I_CERTPOL 130
593#define X509V3_F_R2I_PCI 142
573#define X509V3_F_S2I_ASN1_IA5STRING 100 594#define X509V3_F_S2I_ASN1_IA5STRING 100
574#define X509V3_F_S2I_ASN1_INTEGER 108 595#define X509V3_F_S2I_ASN1_INTEGER 108
575#define X509V3_F_S2I_ASN1_OCTET_STRING 112 596#define X509V3_F_S2I_ASN1_OCTET_STRING 112
@@ -617,6 +638,7 @@ void ERR_load_X509V3_strings(void);
617#define X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED 103 638#define X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED 103
618#define X509V3_R_EXTENSION_VALUE_ERROR 116 639#define X509V3_R_EXTENSION_VALUE_ERROR 116
619#define X509V3_R_ILLEGAL_HEX_DIGIT 113 640#define X509V3_R_ILLEGAL_HEX_DIGIT 113
641#define X509V3_R_INCORRECT_POLICY_SYNTAX_TAG 153
620#define X509V3_R_INVALID_BOOLEAN_STRING 104 642#define X509V3_R_INVALID_BOOLEAN_STRING 104
621#define X509V3_R_INVALID_EXTENSION_STRING 105 643#define X509V3_R_INVALID_EXTENSION_STRING 105
622#define X509V3_R_INVALID_NAME 106 644#define X509V3_R_INVALID_NAME 106
@@ -628,6 +650,8 @@ void ERR_load_X509V3_strings(void);
628#define X509V3_R_INVALID_OBJECT_IDENTIFIER 110 650#define X509V3_R_INVALID_OBJECT_IDENTIFIER 110
629#define X509V3_R_INVALID_OPTION 138 651#define X509V3_R_INVALID_OPTION 138
630#define X509V3_R_INVALID_POLICY_IDENTIFIER 134 652#define X509V3_R_INVALID_POLICY_IDENTIFIER 134
653#define X509V3_R_INVALID_PROXY_POLICY_IDENTIFIER 147
654#define X509V3_R_INVALID_PROXY_POLICY_SETTING 151
631#define X509V3_R_INVALID_PURPOSE 146 655#define X509V3_R_INVALID_PURPOSE 146
632#define X509V3_R_INVALID_SECTION 135 656#define X509V3_R_INVALID_SECTION 135
633#define X509V3_R_INVALID_SYNTAX 143 657#define X509V3_R_INVALID_SYNTAX 143
@@ -638,9 +662,16 @@ void ERR_load_X509V3_strings(void);
638#define X509V3_R_NO_ISSUER_CERTIFICATE 121 662#define X509V3_R_NO_ISSUER_CERTIFICATE 121
639#define X509V3_R_NO_ISSUER_DETAILS 127 663#define X509V3_R_NO_ISSUER_DETAILS 127
640#define X509V3_R_NO_POLICY_IDENTIFIER 139 664#define X509V3_R_NO_POLICY_IDENTIFIER 139
665#define X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED 148
641#define X509V3_R_NO_PUBLIC_KEY 114 666#define X509V3_R_NO_PUBLIC_KEY 114
642#define X509V3_R_NO_SUBJECT_DETAILS 125 667#define X509V3_R_NO_SUBJECT_DETAILS 125
643#define X509V3_R_ODD_NUMBER_OF_DIGITS 112 668#define X509V3_R_ODD_NUMBER_OF_DIGITS 112
669#define X509V3_R_POLICY_LANGUAGE_ALREADTY_DEFINED 149
670#define X509V3_R_POLICY_PATH_LENGTH 152
671#define X509V3_R_POLICY_PATH_LENGTH_ALREADTY_DEFINED 150
672#define X509V3_R_POLICY_SYNTAX_NOT 154
673#define X509V3_R_POLICY_SYNTAX_NOT_CURRENTLY_SUPPORTED 155
674#define X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY 156
644#define X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS 122 675#define X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS 122
645#define X509V3_R_UNABLE_TO_GET_ISSUER_KEYID 123 676#define X509V3_R_UNABLE_TO_GET_ISSUER_KEYID 123
646#define X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT 111 677#define X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT 111
diff --git a/src/lib/libssl/src/demos/engines/rsaref/rsaref.c b/src/lib/libssl/src/demos/engines/rsaref/rsaref.c
index 872811b8f7..f97974fc49 100644
--- a/src/lib/libssl/src/demos/engines/rsaref/rsaref.c
+++ b/src/lib/libssl/src/demos/engines/rsaref/rsaref.c
@@ -426,7 +426,7 @@ static int rsaref_private_encrypt(int len, const unsigned char *from, unsigned c
426 } 426 }
427 if (!RSAref_Private_eay2ref(rsa,&RSAkey)) 427 if (!RSAref_Private_eay2ref(rsa,&RSAkey))
428 goto err; 428 goto err;
429 if ((i=RSAPrivateEncrypt(to,(unsigned int)&outlen,(unsigned char *)from,len,&RSAkey)) != 0) 429 if ((i=RSAPrivateEncrypt(to,(unsigned int *)&outlen,(unsigned char *)from,len,&RSAkey)) != 0)
430 { 430 {
431 RSAREFerr(RSAREF_F_RSAREF_PRIVATE_ENCRYPT,i); 431 RSAREFerr(RSAREF_F_RSAREF_PRIVATE_ENCRYPT,i);
432 outlen= -1; 432 outlen= -1;
@@ -444,7 +444,7 @@ static int rsaref_public_decrypt(int len, const unsigned char *from, unsigned ch
444 444
445 if (!RSAref_Public_eay2ref(rsa,&RSAkey)) 445 if (!RSAref_Public_eay2ref(rsa,&RSAkey))
446 goto err; 446 goto err;
447 if ((i=RSAPublicDecrypt(to,(unsigned int)&outlen,(unsigned char *)from,len,&RSAkey)) != 0) 447 if ((i=RSAPublicDecrypt(to,(unsigned int *)&outlen,(unsigned char *)from,len,&RSAkey)) != 0)
448 { 448 {
449 RSAREFerr(RSAREF_F_RSAREF_PUBLIC_DECRYPT,i); 449 RSAREFerr(RSAREF_F_RSAREF_PUBLIC_DECRYPT,i);
450 outlen= -1; 450 outlen= -1;
@@ -481,7 +481,7 @@ static int rsaref_public_encrypt(int len, const unsigned char *from, unsigned ch
481 481
482 if (!RSAref_Public_eay2ref(rsa,&RSAkey)) 482 if (!RSAref_Public_eay2ref(rsa,&RSAkey))
483 goto err; 483 goto err;
484 if ((i=RSAPublicEncrypt(to,(unsigned int)&outlen,(unsigned char *)from,len,&RSAkey,&rnd)) != 0) 484 if ((i=RSAPublicEncrypt(to,(unsigned int *)&outlen,(unsigned char *)from,len,&RSAkey,&rnd)) != 0)
485 { 485 {
486 RSAREFerr(RSAREF_F_RSAREF_PUBLIC_ENCRYPT,i); 486 RSAREFerr(RSAREF_F_RSAREF_PUBLIC_ENCRYPT,i);
487 outlen= -1; 487 outlen= -1;
diff --git a/src/lib/libssl/src/doc/HOWTO/proxy_certificates.txt b/src/lib/libssl/src/doc/HOWTO/proxy_certificates.txt
new file mode 100644
index 0000000000..3d36b02f6b
--- /dev/null
+++ b/src/lib/libssl/src/doc/HOWTO/proxy_certificates.txt
@@ -0,0 +1,322 @@
1<DRAFT!>
2 HOWTO proxy certificates
3
40. WARNING
5
6NONE OF THE CODE PRESENTED HERE HAVE BEEN CHECKED! They are just an
7example to show you how things can be done. There may be typos or
8type conflicts, and you will have to resolve them.
9
101. Introduction
11
12Proxy certificates are defined in RFC 3820. They are really usual
13certificates with the mandatory extension proxyCertInfo.
14
15Proxy certificates are issued by an End Entity (typically a user),
16either directly with the EE certificate as issuing certificate, or by
17extension through an already issued proxy certificate.. They are used
18to extend rights to some other entity (a computer process, typically,
19or sometimes to the user itself), so it can perform operations in the
20name of the owner of the EE certificate.
21
22See http://www.ietf.org/rfc/rfc3820.txt for more information.
23
24
252. A warning about proxy certificates
26
27Noone seems to have tested proxy certificates with security in mind.
28Basically, to this date, it seems that proxy certificates have only
29been used in a world that's highly aware of them. What would happen
30if an unsuspecting application is to validate a chain of certificates
31that contains proxy certificates? It would usually consider the leaf
32to be the certificate to check for authorisation data, and since proxy
33certificates are controlled by the EE certificate owner alone, it's
34would be normal to consider what the EE certificate owner could do
35with them.
36
37subjectAltName and issuerAltName are forbidden in proxy certificates,
38and this is enforced in OpenSSL. The subject must be the same as the
39issuer, with one commonName added on.
40
41Possible threats are, as far as has been imagined so far:
42
43 - impersonation through commonName (think server certificates).
44 - use of additional extensions, possibly non-standard ones used in
45 certain environments, that would grant extra or different
46 authorisation rights.
47
48For this reason, OpenSSL requires that the use of proxy certificates
49be explicitely allowed. Currently, this can be done using the
50following methods:
51
52 - if the application calls X509_verify_cert() itself, it can do the
53 following prior to that call (ctx is the pointer passed in the call
54 to X509_verify_cert()):
55
56 X509_STORE_CTX_set_flags(ctx, X509_V_FLAG_ALLOW_PROXY_CERTS);
57
58 - in all other cases, proxy certificate validation can be enabled
59 before starting the application by setting the envirnoment variable
60 OPENSSL_ALLOW_PROXY with some non-empty value.
61
62There are thoughts to allow proxy certificates with a line in the
63default openssl.cnf, but that's still in the future.
64
65
663. How to create proxy cerificates
67
68It's quite easy to create proxy certificates, by taking advantage of
69the lack of checks of the 'openssl x509' application (*ahem*). But
70first, you need to create a configuration section that contains a
71definition of the proxyCertInfo extension, a little like this:
72
73 [ v3_proxy ]
74 # A proxy certificate MUST NEVER be a CA certificate.
75 basicConstraints=CA:FALSE
76
77 # Usual authority key ID
78 authorityKeyIdentifier=keyid,issuer:always
79
80 # Now, for the extension that marks this certificate as a proxy one
81 proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:1,policy:text:AB
82
83It's also possible to give the proxy extension in a separate section:
84
85 proxyCertInfo=critical,@proxy_ext
86
87 [ proxy_ext ]
88 language=id-ppl-anyLanguage
89 pathlen=0
90 policy=text:BC
91
92The policy value has a specific syntax, {syntag}:{string}, where the
93syntag determines what will be done with the string. The recognised
94syntags are as follows:
95
96 text indicates that the string is simply the bytes, not
97 encoded in any kind of way:
98
99 policy=text:räksmörgås
100
101 Previous versions of this design had a specific tag
102 for UTF-8 text. However, since the bytes are copied
103 as-is anyway, there's no need for it. Instead, use
104 the text: tag, like this:
105
106 policy=text:räksmörgås
107
108 hex indicates the string is encoded in hex, with colons
109 between each byte (every second hex digit):
110
111 policy=hex:72:E4:6B:73:6D:F6:72:67:E5:73
112
113 Previous versions of this design had a tag to insert a
114 complete DER blob. However, the only legal use for
115 this would be to surround the bytes that would go with
116 the hex: tag with what's needed to construct a correct
117 OCTET STRING. Since hex: does that, the DER tag felt
118 superfluous, and was therefore removed.
119
120 file indicates that the text of the policy should really be
121 taken from a file. The string is then really a file
122 name. This is useful for policies that are large
123 (more than a few of lines) XML documents, for example.
124
125The 'policy' setting can be split up in multiple lines like this:
126
127 0.policy=This is
128 1.polisy= a multi-
129 2.policy=line policy.
130
131NOTE: the proxy policy value is the part that determines the rights
132granted to the process using the proxy certificate. The value is
133completely dependent on the application reading and interpretting it!
134
135Now that you have created an extension section for your proxy
136certificate, you can now easily create a proxy certificate like this:
137
138 openssl req -new -config openssl.cnf \
139 -out proxy.req -keyout proxy.key
140 openssl x509 -req -CAcreateserial -in proxy.req -days 7 \
141 -out proxy.crt -CA user.crt -CAkey user.key \
142 -extfile openssl.cnf -extensions v3_proxy
143
144It's just as easy to create a proxy certificate using another proxy
145certificate as issuer (note that I'm using a different configuration
146section for it):
147
148 openssl req -new -config openssl.cnf \
149 -out proxy2.req -keyout proxy2.key
150 openssl x509 -req -CAcreateserial -in proxy2.req -days 7 \
151 -out proxy2.crt -CA proxy.crt -CAkey proxy.key \
152 -extfile openssl.cnf -extensions v3_proxy2
153
154
1554. How to have your application interpret the policy?
156
157The basic way to interpret proxy policies is to prepare some default
158rights, then do a check of the proxy certificate against the a chain
159of proxy certificates, user certificate and CA certificates, and see
160what rights came out by the end. Sounds easy, huh? It almost is.
161
162The slightly complicated part is how to pass data between your
163application and the certificate validation procedure.
164
165You need the following ingredients:
166
167 - a callback routing that will be called for every certificate that's
168 validated. It will be called several times for each certificates,
169 so you must be attentive to when it's a good time to do the proxy
170 policy interpretation and check, as well as to fill in the defaults
171 when the EE certificate is checked.
172
173 - a structure of data that's shared between your application code and
174 the callback.
175
176 - a wrapper function that sets it all up.
177
178 - an ex_data index function that creates an index into the generic
179 ex_data store that's attached to an X509 validation context.
180
181This is some cookbook code for you to fill in:
182
183 /* In this example, I will use a view of granted rights as a bit
184 array, one bit for each possible right. */
185 typedef struct your_rights {
186 unsigned char rights[total_rights / 8];
187 } YOUR_RIGHTS;
188
189 /* The following procedure will create an index for the ex_data
190 store in the X509 validation context the first time it's called.
191 Subsequent calls will return the same index. */
192 static int get_proxy_auth_ex_data_idx(void)
193 {
194 static volatile int idx = -1;
195 if (idx < 0)
196 {
197 CRYPTO_w_lock(CRYPTO_LOCK_X509_STORE);
198 if (idx < 0)
199 {
200 idx = X509_STORE_CTX_get_ex_new_index(0,
201 "for verify callback",
202 NULL,NULL,NULL);
203 }
204 CRYPTO_w_unlock(CRYPTO_LOCK_X509_STORE);
205 }
206 return idx;
207 }
208
209 /* Callback to be given to the X509 validation procedure. */
210 static int verify_callback(int ok, X509_STORE_CTX *ctx)
211 {
212 if (ok == 1) /* It's REALLY important you keep the proxy policy
213 check within this secion. It's important to know
214 that when ok is 1, the certificates are checked
215 from top to bottom. You get the CA root first,
216 followed by the possible chain of intermediate
217 CAs, followed by the EE certificate, followed by
218 the possible proxy certificates. */
219 {
220 X509 *xs = ctx->current_cert;
221
222 if (xs->ex_flags & EXFLAG_PROXY)
223 {
224 YOUR_RIGHTS *rights =
225 (YOUR_RIGHTS *)X509_STORE_CTX_get_ex_data(ctx,
226 get_proxy_auth_ex_data_idx());
227 PROXY_CERT_INFO_EXTENSION *pci =
228 X509_get_ext_d2i(xs, NID_proxyCertInfo, NULL, NULL);
229
230 switch (OBJ_obj2nid(pci->proxyPolicy->policyLanguage))
231 {
232 case NID_Independent:
233 /* Do whatever you need to grant explicit rights to
234 this particular proxy certificate, usually by
235 pulling them from some database. If there are none
236 to be found, clear all rights (making this and any
237 subsequent proxy certificate void of any rights).
238 */
239 memset(rights->rights, 0, sizeof(rights->rights));
240 break;
241 case NID_id_ppl_inheritAll:
242 /* This is basically a NOP, we simply let the current
243 rights stand as they are. */
244 break;
245 default:
246 /* This is usually the most complex section of code.
247 You really do whatever you want as long as you
248 follow RFC 3820. In the example we use here, the
249 simplest thing to do is to build another, temporary
250 bit array and fill it with the rights granted by
251 the current proxy certificate, then use it as a
252 mask on the accumulated rights bit array, and
253 voilà, you now have a new accumulated rights bit
254 array. */
255 {
256 int i;
257 YOUR_RIGHTS tmp_rights;
258 memset(tmp_rights.rights, 0, sizeof(tmp_rights.rights));
259
260 /* process_rights() is supposed to be a procedure
261 that takes a string and it's length, interprets
262 it and sets the bits in the YOUR_RIGHTS pointed
263 at by the third argument. */
264 process_rights((char *) pci->proxyPolicy->policy->data,
265 pci->proxyPolicy->policy->length,
266 &tmp_rights);
267
268 for(i = 0; i < total_rights / 8; i++)
269 rights->rights[i] &= tmp_rights.rights[i];
270 }
271 break;
272 }
273 PROXY_CERT_INFO_EXTENSION_free(pci);
274 }
275 else if (!(xs->ex_flags & EXFLAG_CA))
276 {
277 /* We have a EE certificate, let's use it to set default!
278 */
279 YOUR_RIGHTS *rights =
280 (YOUR_RIGHTS *)X509_STORE_CTX_get_ex_data(ctx,
281 get_proxy_auth_ex_data_idx());
282
283 /* The following procedure finds out what rights the owner
284 of the current certificate has, and sets them in the
285 YOUR_RIGHTS structure pointed at by the second
286 argument. */
287 set_default_rights(xs, rights);
288 }
289 }
290 return ok;
291 }
292
293 static int my_X509_verify_cert(X509_STORE_CTX *ctx,
294 YOUR_RIGHTS *needed_rights)
295 {
296 int i;
297 int (*save_verify_cb)(int ok,X509_STORE_CTX *ctx) = ctx->verify_cb;
298 YOUR_RIGHTS rights;
299
300 X509_STORE_CTX_set_verify_cb(ctx, verify_callback);
301 X509_STORE_CTX_set_ex_data(ctx, get_proxy_auth_ex_data_idx(), &rights);
302 X509_STORE_CTX_set_flags(ctx, X509_V_FLAG_ALLOW_PROXY_CERTS);
303 ok = X509_verify_cert(ctx);
304
305 if (ok == 1)
306 {
307 ok = check_needed_rights(rights, needed_rights);
308 }
309
310 X509_STORE_CTX_set_verify_cb(ctx, save_verify_cb);
311
312 return ok;
313 }
314
315If you use SSL or TLS, you can easily set up a callback to have the
316certificates checked properly, using the code above:
317
318 SSL_CTX_set_cert_verify_callback(s_ctx, my_X509_verify_cert, &needed_rights);
319
320
321--
322Richard Levitte
diff --git a/src/lib/libssl/src/doc/apps/asn1parse.pod b/src/lib/libssl/src/doc/apps/asn1parse.pod
index e76e9813ab..69ee4dfee6 100644
--- a/src/lib/libssl/src/doc/apps/asn1parse.pod
+++ b/src/lib/libssl/src/doc/apps/asn1parse.pod
@@ -123,7 +123,7 @@ C<1.2.3.4 shortName A long name>
123 123
124=head1 BUGS 124=head1 BUGS
125 125
126There should be options to change the format of input lines. The output of some 126There should be options to change the format of output lines. The output of some
127ASN.1 types is not well handled (if at all). 127ASN.1 types is not well handled (if at all).
128 128
129=cut 129=cut
diff --git a/src/lib/libssl/src/doc/apps/dgst.pod b/src/lib/libssl/src/doc/apps/dgst.pod
index 1648742bcf..b0d198724c 100644
--- a/src/lib/libssl/src/doc/apps/dgst.pod
+++ b/src/lib/libssl/src/doc/apps/dgst.pod
@@ -14,6 +14,7 @@ B<openssl> B<dgst>
14[B<-binary>] 14[B<-binary>]
15[B<-out filename>] 15[B<-out filename>]
16[B<-sign filename>] 16[B<-sign filename>]
17[B<-passin arg>]
17[B<-verify filename>] 18[B<-verify filename>]
18[B<-prverify filename>] 19[B<-prverify filename>]
19[B<-signature filename>] 20[B<-signature filename>]
@@ -59,6 +60,11 @@ filename to output to, or standard output by default.
59 60
60digitally sign the digest using the private key in "filename". 61digitally sign the digest using the private key in "filename".
61 62
63=item B<-passin arg>
64
65the private key password source. For more information about the format of B<arg>
66see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)|openssl(1)>.
67
62=item B<-verify filename> 68=item B<-verify filename>
63 69
64verify the signature using the the public key in "filename". 70verify the signature using the the public key in "filename".
diff --git a/src/lib/libssl/src/doc/apps/enc.pod b/src/lib/libssl/src/doc/apps/enc.pod
index ddf081617f..18fe7c81c7 100644
--- a/src/lib/libssl/src/doc/apps/enc.pod
+++ b/src/lib/libssl/src/doc/apps/enc.pod
@@ -86,7 +86,7 @@ versions of OpenSSL. Superseded by the B<-pass> argument.
86=item B<-kfile filename> 86=item B<-kfile filename>
87 87
88read the password to derive the key from the first line of B<filename>. 88read the password to derive the key from the first line of B<filename>.
89This is for computability with previous versions of OpenSSL. Superseded by 89This is for compatibility with previous versions of OpenSSL. Superseded by
90the B<-pass> argument. 90the B<-pass> argument.
91 91
92=item B<-S salt> 92=item B<-S salt>
diff --git a/src/lib/libssl/src/doc/apps/errstr.pod b/src/lib/libssl/src/doc/apps/errstr.pod
new file mode 100644
index 0000000000..b3c6ccfc9c
--- /dev/null
+++ b/src/lib/libssl/src/doc/apps/errstr.pod
@@ -0,0 +1,39 @@
1=pod
2
3=head1 NAME
4
5errstr - lookup error codes
6
7=head1 SYNOPSIS
8
9B<openssl errstr error_code>
10
11=head1 DESCRIPTION
12
13Sometimes an application will not load error message and only
14numerical forms will be available. The B<errstr> utility can be used to
15display the meaning of the hex code. The hex code is the hex digits after the
16second colon.
17
18=head1 EXAMPLE
19
20The error code:
21
22 27594:error:2006D080:lib(32):func(109):reason(128):bss_file.c:107:
23
24can be displayed with:
25
26 openssl errstr 2006D080
27
28to produce the error message:
29
30 error:2006D080:BIO routines:BIO_new_file:no such file
31
32=head1 SEE ALSO
33
34L<err(3)|err(3)>,
35L<ERR_load_crypto_strings(3)|ERR_load_crypto_strings(3)>,
36L<SSL_load_error_strings(3)|SSL_load_error_strings(3)>
37
38
39=cut
diff --git a/src/lib/libssl/src/doc/crypto/ASN1_STRING_print_ex.pod b/src/lib/libssl/src/doc/crypto/ASN1_STRING_print_ex.pod
index fbf9a1f141..d662225b87 100644
--- a/src/lib/libssl/src/doc/crypto/ASN1_STRING_print_ex.pod
+++ b/src/lib/libssl/src/doc/crypto/ASN1_STRING_print_ex.pod
@@ -30,8 +30,8 @@ with '.'.
30 30
31ASN1_STRING_print() is a legacy function which should be avoided in new applications. 31ASN1_STRING_print() is a legacy function which should be avoided in new applications.
32 32
33Although there are a large number of options frequently B<ASN1_STRFLAGS_RFC2253> is 33Although there are a large number of options frequently B<ASN1_STRFLGS_RFC2253> is
34suitable, or on UTF8 terminals B<ASN1_STRFLAGS_RFC2253 & ~ASN1_STRFLAGS_ESC_MSB>. 34suitable, or on UTF8 terminals B<ASN1_STRFLGS_RFC2253 & ~ASN1_STRFLGS_ESC_MSB>.
35 35
36The complete set of supported options for B<flags> is listed below. 36The complete set of supported options for B<flags> is listed below.
37 37
@@ -72,7 +72,7 @@ octet.
72If B<ASN1_STRFLGS_DUMP_ALL> is set then any type is dumped. 72If B<ASN1_STRFLGS_DUMP_ALL> is set then any type is dumped.
73 73
74Normally non character string types (such as OCTET STRING) are assumed to be 74Normally non character string types (such as OCTET STRING) are assumed to be
75one byte per character, if B<ASN1_STRFLAGS_DUMP_UNKNOWN> is set then they will 75one byte per character, if B<ASN1_STRFLGS_DUMP_UNKNOWN> is set then they will
76be dumped instead. 76be dumped instead.
77 77
78When a type is dumped normally just the content octets are printed, if 78When a type is dumped normally just the content octets are printed, if
diff --git a/src/lib/libssl/src/doc/crypto/BN_num_bytes.pod b/src/lib/libssl/src/doc/crypto/BN_num_bytes.pod
index 61589fb9ac..a6a2e3f819 100644
--- a/src/lib/libssl/src/doc/crypto/BN_num_bytes.pod
+++ b/src/lib/libssl/src/doc/crypto/BN_num_bytes.pod
@@ -16,8 +16,14 @@ BN_num_bits, BN_num_bytes, BN_num_bits_word - get BIGNUM size
16 16
17=head1 DESCRIPTION 17=head1 DESCRIPTION
18 18
19These functions return the size of a B<BIGNUM> in bytes or bits, 19BN_num_bytes() returns the size of a B<BIGNUM> in bytes.
20and the size of an unsigned integer in bits. 20
21BN_num_bits_word() returns the number of significant bits in a word.
22If we take 0x00000432 as an example, it returns 11, not 16, not 32.
23Basically, except for a zero, it returns I<floor(log2(w))+1>.
24
25BN_num_bits() returns the number of significant bits in a B<BIGNUM>,
26following the same principle as BN_num_bits_word().
21 27
22BN_num_bytes() is a macro. 28BN_num_bytes() is a macro.
23 29
@@ -25,9 +31,23 @@ BN_num_bytes() is a macro.
25 31
26The size. 32The size.
27 33
34=head1 NOTES
35
36Some have tried using BN_num_bits() on individual numbers in RSA keys,
37DH keys and DSA keys, and found that they don't always come up with
38the number of bits they expected (something like 512, 1024, 2048,
39...). This is because generating a number with some specific number
40of bits doesn't always set the highest bits, thereby making the number
41of I<significant> bits a little lower. If you want to know the "key
42size" of such a key, either use functions like RSA_size(), DH_size()
43and DSA_size(), or use BN_num_bytes() and multiply with 8 (although
44there's no real guarantee that will match the "key size", just a lot
45more probability).
46
28=head1 SEE ALSO 47=head1 SEE ALSO
29 48
30L<bn(3)|bn(3)> 49L<bn(3)|bn(3)>, L<DH_size(3)|DH_size(3)>, L<DSA_size(3)|DSA_size(3)>,
50L<RSA_size(3)|RSA_size(3)>
31 51
32=head1 HISTORY 52=head1 HISTORY
33 53
diff --git a/src/lib/libssl/src/doc/crypto/ERR_error_string.pod b/src/lib/libssl/src/doc/crypto/ERR_error_string.pod
index e01beb817a..cdfa7fe1fe 100644
--- a/src/lib/libssl/src/doc/crypto/ERR_error_string.pod
+++ b/src/lib/libssl/src/doc/crypto/ERR_error_string.pod
@@ -11,7 +11,7 @@ error message
11 #include <openssl/err.h> 11 #include <openssl/err.h>
12 12
13 char *ERR_error_string(unsigned long e, char *buf); 13 char *ERR_error_string(unsigned long e, char *buf);
14 char *ERR_error_string_n(unsigned long e, char *buf, size_t len); 14 void ERR_error_string_n(unsigned long e, char *buf, size_t len);
15 15
16 const char *ERR_lib_error_string(unsigned long e); 16 const char *ERR_lib_error_string(unsigned long e);
17 const char *ERR_func_error_string(unsigned long e); 17 const char *ERR_func_error_string(unsigned long e);
diff --git a/src/lib/libssl/src/doc/crypto/EVP_EncryptInit.pod b/src/lib/libssl/src/doc/crypto/EVP_EncryptInit.pod
index daf57e5895..40e525dd56 100644
--- a/src/lib/libssl/src/doc/crypto/EVP_EncryptInit.pod
+++ b/src/lib/libssl/src/doc/crypto/EVP_EncryptInit.pod
@@ -479,6 +479,7 @@ General encryption, decryption function example using FILE I/O and RC2 with an
479 if(!EVP_CipherUpdate(&ctx, outbuf, &outlen, inbuf, inlen)) 479 if(!EVP_CipherUpdate(&ctx, outbuf, &outlen, inbuf, inlen))
480 { 480 {
481 /* Error */ 481 /* Error */
482 EVP_CIPHER_CTX_cleanup(&ctx);
482 return 0; 483 return 0;
483 } 484 }
484 fwrite(outbuf, 1, outlen, out); 485 fwrite(outbuf, 1, outlen, out);
@@ -486,6 +487,7 @@ General encryption, decryption function example using FILE I/O and RC2 with an
486 if(!EVP_CipherFinal_ex(&ctx, outbuf, &outlen)) 487 if(!EVP_CipherFinal_ex(&ctx, outbuf, &outlen))
487 { 488 {
488 /* Error */ 489 /* Error */
490 EVP_CIPHER_CTX_cleanup(&ctx);
489 return 0; 491 return 0;
490 } 492 }
491 fwrite(outbuf, 1, outlen, out); 493 fwrite(outbuf, 1, outlen, out);
diff --git a/src/lib/libssl/src/doc/crypto/EVP_SealInit.pod b/src/lib/libssl/src/doc/crypto/EVP_SealInit.pod
index b5e477e294..48a0e29954 100644
--- a/src/lib/libssl/src/doc/crypto/EVP_SealInit.pod
+++ b/src/lib/libssl/src/doc/crypto/EVP_SealInit.pod
@@ -8,8 +8,9 @@ EVP_SealInit, EVP_SealUpdate, EVP_SealFinal - EVP envelope encryption
8 8
9 #include <openssl/evp.h> 9 #include <openssl/evp.h>
10 10
11 int EVP_SealInit(EVP_CIPHER_CTX *ctx, EVP_CIPHER *type, unsigned char **ek, 11 int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type,
12 int *ekl, unsigned char *iv,EVP_PKEY **pubk, int npubk); 12 unsigned char **ek, int *ekl, unsigned char *iv,
13 EVP_PKEY **pubk, int npubk);
13 int EVP_SealUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, 14 int EVP_SealUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out,
14 int *outl, unsigned char *in, int inl); 15 int *outl, unsigned char *in, int inl);
15 int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, 16 int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out,
diff --git a/src/lib/libssl/src/doc/crypto/EVP_SignInit.pod b/src/lib/libssl/src/doc/crypto/EVP_SignInit.pod
index b203c3a1c5..b6e62ce7f6 100644
--- a/src/lib/libssl/src/doc/crypto/EVP_SignInit.pod
+++ b/src/lib/libssl/src/doc/crypto/EVP_SignInit.pod
@@ -29,11 +29,10 @@ EVP_SignUpdate() hashes B<cnt> bytes of data at B<d> into the
29signature context B<ctx>. This function can be called several times on the 29signature context B<ctx>. This function can be called several times on the
30same B<ctx> to include additional data. 30same B<ctx> to include additional data.
31 31
32EVP_SignFinal() signs the data in B<ctx> using the private key B<pkey> 32EVP_SignFinal() signs the data in B<ctx> using the private key B<pkey> and
33and places the signature in B<sig>. If the B<s> parameter is not NULL 33places the signature in B<sig>. The number of bytes of data written (i.e. the
34then the number of bytes of data written (i.e. the length of the signature) 34length of the signature) will be written to the integer at B<s>, at most
35will be written to the integer at B<s>, at most EVP_PKEY_size(pkey) bytes 35EVP_PKEY_size(pkey) bytes will be written.
36will be written.
37 36
38EVP_SignInit() initializes a signing context B<ctx> to use the default 37EVP_SignInit() initializes a signing context B<ctx> to use the default
39implementation of digest B<type>. 38implementation of digest B<type>.
diff --git a/src/lib/libssl/src/doc/crypto/RSA_public_encrypt.pod b/src/lib/libssl/src/doc/crypto/RSA_public_encrypt.pod
index d53e19d2b7..ab0fe3b2cd 100644
--- a/src/lib/libssl/src/doc/crypto/RSA_public_encrypt.pod
+++ b/src/lib/libssl/src/doc/crypto/RSA_public_encrypt.pod
@@ -47,9 +47,10 @@ Encrypting user data directly with RSA is insecure.
47=back 47=back
48 48
49B<flen> must be less than RSA_size(B<rsa>) - 11 for the PKCS #1 v1.5 49B<flen> must be less than RSA_size(B<rsa>) - 11 for the PKCS #1 v1.5
50based padding modes, and less than RSA_size(B<rsa>) - 41 for 50based padding modes, less than RSA_size(B<rsa>) - 41 for
51RSA_PKCS1_OAEP_PADDING. The random number generator must be seeded 51RSA_PKCS1_OAEP_PADDING and exactly RSA_size(B<rsa>) for RSA_NO_PADDING.
52prior to calling RSA_public_encrypt(). 52The random number generator must be seeded prior to calling
53RSA_public_encrypt().
53 54
54RSA_private_decrypt() decrypts the B<flen> bytes at B<from> using the 55RSA_private_decrypt() decrypts the B<flen> bytes at B<from> using the
55private key B<rsa> and stores the plaintext in B<to>. B<to> must point 56private key B<rsa> and stores the plaintext in B<to>. B<to> must point
diff --git a/src/lib/libssl/src/doc/crypto/X509_NAME_ENTRY_get_object.pod b/src/lib/libssl/src/doc/crypto/X509_NAME_ENTRY_get_object.pod
index d287c18564..11b35f6fd3 100644
--- a/src/lib/libssl/src/doc/crypto/X509_NAME_ENTRY_get_object.pod
+++ b/src/lib/libssl/src/doc/crypto/X509_NAME_ENTRY_get_object.pod
@@ -13,11 +13,11 @@ ASN1_OBJECT * X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne);
13ASN1_STRING * X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne); 13ASN1_STRING * X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne);
14 14
15int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, ASN1_OBJECT *obj); 15int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, ASN1_OBJECT *obj);
16int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, unsigned char *bytes, int len); 16int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, const unsigned char *bytes, int len);
17 17
18X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, char *field, int type, unsigned char *bytes, int len); 18X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, const char *field, int type, const unsigned char *bytes, int len);
19X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, int type,unsigned char *bytes, int len); 19X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, int type,unsigned char *bytes, int len);
20X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, ASN1_OBJECT *obj, int type,unsigned char *bytes, int len); 20X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len);
21 21
22=head1 DESCRIPTION 22=head1 DESCRIPTION
23 23
diff --git a/src/lib/libssl/src/doc/crypto/X509_NAME_add_entry_by_txt.pod b/src/lib/libssl/src/doc/crypto/X509_NAME_add_entry_by_txt.pod
index 4472a1c5cf..e2ab4b0d2b 100644
--- a/src/lib/libssl/src/doc/crypto/X509_NAME_add_entry_by_txt.pod
+++ b/src/lib/libssl/src/doc/crypto/X509_NAME_add_entry_by_txt.pod
@@ -7,10 +7,14 @@ X509_NAME_add_entry, X509_NAME_delete_entry - X509_NAME modification functions
7 7
8=head1 SYNOPSIS 8=head1 SYNOPSIS
9 9
10int X509_NAME_add_entry_by_txt(X509_NAME *name, char *field, int type, unsigned char *bytes, int len, int loc, int set); 10int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, const unsigned char *bytes, int len, int loc, int set);
11
11int X509_NAME_add_entry_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, int type, unsigned char *bytes, int len, int loc, int set); 12int X509_NAME_add_entry_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, int type, unsigned char *bytes, int len, int loc, int set);
13
12int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, unsigned char *bytes, int len, int loc, int set); 14int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, unsigned char *bytes, int len, int loc, int set);
15
13int X509_NAME_add_entry(X509_NAME *name,X509_NAME_ENTRY *ne, int loc, int set); 16int X509_NAME_add_entry(X509_NAME *name,X509_NAME_ENTRY *ne, int loc, int set);
17
14X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc); 18X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc);
15 19
16=head1 DESCRIPTION 20=head1 DESCRIPTION
diff --git a/src/lib/libssl/src/doc/crypto/X509_NAME_print_ex.pod b/src/lib/libssl/src/doc/crypto/X509_NAME_print_ex.pod
index 907c04f684..919b908919 100644
--- a/src/lib/libssl/src/doc/crypto/X509_NAME_print_ex.pod
+++ b/src/lib/libssl/src/doc/crypto/X509_NAME_print_ex.pod
@@ -41,8 +41,8 @@ applications.
41Although there are a large number of possible flags for most purposes 41Although there are a large number of possible flags for most purposes
42B<XN_FLAG_ONELINE>, B<XN_FLAG_MULTILINE> or B<XN_FLAG_RFC2253> will suffice. 42B<XN_FLAG_ONELINE>, B<XN_FLAG_MULTILINE> or B<XN_FLAG_RFC2253> will suffice.
43As noted on the L<ASN1_STRING_print_ex(3)|ASN1_STRING_print_ex(3)> manual page 43As noted on the L<ASN1_STRING_print_ex(3)|ASN1_STRING_print_ex(3)> manual page
44for UTF8 terminals the B<ASN1_STRFLAGS_ESC_MSB> should be unset: so for example 44for UTF8 terminals the B<ASN1_STRFLGS_ESC_MSB> should be unset: so for example
45B<XN_FLAG_ONELINE & ~ASN1_STRFLAGS_ESC_MSB> would be used. 45B<XN_FLAG_ONELINE & ~ASN1_STRFLGS_ESC_MSB> would be used.
46 46
47The complete set of the flags supported by X509_NAME_print_ex() is listed below. 47The complete set of the flags supported by X509_NAME_print_ex() is listed below.
48 48
diff --git a/src/lib/libssl/src/doc/crypto/blowfish.pod b/src/lib/libssl/src/doc/crypto/blowfish.pod
index ed71334f56..5b2d274c15 100644
--- a/src/lib/libssl/src/doc/crypto/blowfish.pod
+++ b/src/lib/libssl/src/doc/crypto/blowfish.pod
@@ -32,7 +32,7 @@ by Counterpane (see http://www.counterpane.com/blowfish.html ).
32 32
33Blowfish is a block cipher that operates on 64 bit (8 byte) blocks of data. 33Blowfish is a block cipher that operates on 64 bit (8 byte) blocks of data.
34It uses a variable size key, but typically, 128 bit (16 byte) keys are 34It uses a variable size key, but typically, 128 bit (16 byte) keys are
35a considered good for strong encryption. Blowfish can be used in the same 35considered good for strong encryption. Blowfish can be used in the same
36modes as DES (see L<des_modes(7)|des_modes(7)>). Blowfish is currently one 36modes as DES (see L<des_modes(7)|des_modes(7)>). Blowfish is currently one
37of the faster block ciphers. It is quite a bit faster than DES, and much 37of the faster block ciphers. It is quite a bit faster than DES, and much
38faster than IDEA or RC2. 38faster than IDEA or RC2.
diff --git a/src/lib/libssl/src/doc/crypto/pem.pod b/src/lib/libssl/src/doc/crypto/pem.pod
index 8613114452..4f9a27df0c 100644
--- a/src/lib/libssl/src/doc/crypto/pem.pod
+++ b/src/lib/libssl/src/doc/crypto/pem.pod
@@ -471,6 +471,6 @@ is guaranteed to work.
471=head1 RETURN CODES 471=head1 RETURN CODES
472 472
473The read routines return either a pointer to the structure read or NULL 473The read routines return either a pointer to the structure read or NULL
474is an error occurred. 474if an error occurred.
475 475
476The write routines return 1 for success or 0 for failure. 476The write routines return 1 for success or 0 for failure.
diff --git a/src/lib/libssl/src/doc/fingerprints.txt b/src/lib/libssl/src/doc/fingerprints.txt
new file mode 100644
index 0000000000..c350d381eb
--- /dev/null
+++ b/src/lib/libssl/src/doc/fingerprints.txt
@@ -0,0 +1,28 @@
1 Fingerprints
2
3OpenSSL releases are signed with PGP/GnuPG keys. You can find the
4signatures in separate files in the same location you find the
5distributions themselves. The normal file name is the same as the
6distribution file, with '.asc' added. For example, the signature for
7the distribution of OpenSSL 0.9.7f, openssl-0.9.7f.tar.gz, is found in
8the file openssl-0.9.7f.tar.gz.asc.
9
10The following is the list of fingerprints for the keys that are
11currently in use (have been used since summer 2004) to sign OpenSSL
12distributions:
13
14pub 1024D/F709453B 2003-10-20
15 Key fingerprint = C4CA B749 C34F 7F4C C04F DAC9 A7AF 9E78 F709 453B
16uid Richard Levitte <richard@levitte.org>
17uid Richard Levitte <levitte@openssl.org>
18uid Richard Levitte <levitte@lp.se>
19
20pub 2048R/F295C759 1998-12-13
21 Key fingerprint = D0 5D 8C 61 6E 27 E6 60 41 EC B1 B8 D5 7E E5 97
22uid Dr S N Henson <shenson@drh-consultancy.demon.co.uk>
23
24pub 1024R/49A563D9 1997-02-24
25 Key fingerprint = 7B 79 19 FA 71 6B 87 25 0E 77 21 E5 52 D9 83 BF
26uid Mark Cox <mjc@redhat.com>
27uid Mark Cox <mark@awe.com>
28uid Mark Cox <mjc@apache.org>
diff --git a/src/lib/libssl/src/doc/ssl/SSL_CIPHER_get_name.pod b/src/lib/libssl/src/doc/ssl/SSL_CIPHER_get_name.pod
index 4b91c63ba0..f81f692df5 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_CIPHER_get_name.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_CIPHER_get_name.pod
@@ -8,9 +8,9 @@ SSL_CIPHER_get_name, SSL_CIPHER_get_bits, SSL_CIPHER_get_version, SSL_CIPHER_des
8 8
9 #include <openssl/ssl.h> 9 #include <openssl/ssl.h>
10 10
11 const char *SSL_CIPHER_get_name(SSL_CIPHER *cipher); 11 const char *SSL_CIPHER_get_name(const SSL_CIPHER *cipher);
12 int SSL_CIPHER_get_bits(SSL_CIPHER *cipher, int *alg_bits); 12 int SSL_CIPHER_get_bits(const SSL_CIPHER *cipher, int *alg_bits);
13 char *SSL_CIPHER_get_version(SSL_CIPHER *cipher); 13 char *SSL_CIPHER_get_version(const SSL_CIPHER *cipher);
14 char *SSL_CIPHER_description(SSL_CIPHER *cipher, char *buf, int size); 14 char *SSL_CIPHER_description(SSL_CIPHER *cipher, char *buf, int size);
15 15
16=head1 DESCRIPTION 16=head1 DESCRIPTION
diff --git a/src/lib/libssl/src/doc/ssl/SSL_CTX_get_ex_new_index.pod b/src/lib/libssl/src/doc/ssl/SSL_CTX_get_ex_new_index.pod
index 5686faf299..0c40a91f2f 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_CTX_get_ex_new_index.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_CTX_get_ex_new_index.pod
@@ -15,7 +15,7 @@ SSL_CTX_get_ex_new_index, SSL_CTX_set_ex_data, SSL_CTX_get_ex_data - internal ap
15 15
16 int SSL_CTX_set_ex_data(SSL_CTX *ctx, int idx, void *arg); 16 int SSL_CTX_set_ex_data(SSL_CTX *ctx, int idx, void *arg);
17 17
18 void *SSL_CTX_get_ex_data(SSL_CTX *ctx, int idx); 18 void *SSL_CTX_get_ex_data(const SSL_CTX *ctx, int idx);
19 19
20 typedef int new_func(void *parent, void *ptr, CRYPTO_EX_DATA *ad, 20 typedef int new_func(void *parent, void *ptr, CRYPTO_EX_DATA *ad,
21 int idx, long argl, void *argp); 21 int idx, long argl, void *argp);
diff --git a/src/lib/libssl/src/doc/ssl/SSL_CTX_get_verify_mode.pod b/src/lib/libssl/src/doc/ssl/SSL_CTX_get_verify_mode.pod
index 7f10c6e945..2a3747e75c 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_CTX_get_verify_mode.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_CTX_get_verify_mode.pod
@@ -8,12 +8,12 @@ SSL_CTX_get_verify_mode, SSL_get_verify_mode, SSL_CTX_get_verify_depth, SSL_get_
8 8
9 #include <openssl/ssl.h> 9 #include <openssl/ssl.h>
10 10
11 int SSL_CTX_get_verify_mode(SSL_CTX *ctx); 11 int SSL_CTX_get_verify_mode(const SSL_CTX *ctx);
12 int SSL_get_verify_mode(SSL *ssl); 12 int SSL_get_verify_mode(const SSL *ssl);
13 int SSL_CTX_get_verify_depth(SSL_CTX *ctx); 13 int SSL_CTX_get_verify_depth(const SSL_CTX *ctx);
14 int SSL_get_verify_depth(SSL *ssl); 14 int SSL_get_verify_depth(const SSL *ssl);
15 int (*SSL_CTX_get_verify_callback(SSL_CTX *ctx))(int, X509_STORE_CTX *); 15 int (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx))(int, X509_STORE_CTX *);
16 int (*SSL_get_verify_callback(SSL *ssl))(int, X509_STORE_CTX *); 16 int (*SSL_get_verify_callback(const SSL *ssl))(int, X509_STORE_CTX *);
17 17
18=head1 DESCRIPTION 18=head1 DESCRIPTION
19 19
diff --git a/src/lib/libssl/src/doc/ssl/SSL_CTX_set_cert_store.pod b/src/lib/libssl/src/doc/ssl/SSL_CTX_set_cert_store.pod
index 3a240c4d37..6acf0d9f9b 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_CTX_set_cert_store.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_CTX_set_cert_store.pod
@@ -9,7 +9,7 @@ SSL_CTX_set_cert_store, SSL_CTX_get_cert_store - manipulate X509 certificate ver
9 #include <openssl/ssl.h> 9 #include <openssl/ssl.h>
10 10
11 void SSL_CTX_set_cert_store(SSL_CTX *ctx, X509_STORE *store); 11 void SSL_CTX_set_cert_store(SSL_CTX *ctx, X509_STORE *store);
12 X509_STORE *SSL_CTX_get_cert_store(SSL_CTX *ctx); 12 X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *ctx);
13 13
14=head1 DESCRIPTION 14=head1 DESCRIPTION
15 15
diff --git a/src/lib/libssl/src/doc/ssl/SSL_CTX_set_info_callback.pod b/src/lib/libssl/src/doc/ssl/SSL_CTX_set_info_callback.pod
index 63d0b8d33f..0b4affd5eb 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_CTX_set_info_callback.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_CTX_set_info_callback.pod
@@ -9,10 +9,10 @@ SSL_CTX_set_info_callback, SSL_CTX_get_info_callback, SSL_set_info_callback, SSL
9 #include <openssl/ssl.h> 9 #include <openssl/ssl.h>
10 10
11 void SSL_CTX_set_info_callback(SSL_CTX *ctx, void (*callback)()); 11 void SSL_CTX_set_info_callback(SSL_CTX *ctx, void (*callback)());
12 void (*SSL_CTX_get_info_callback(SSL_CTX *ctx))(); 12 void (*SSL_CTX_get_info_callback(const SSL_CTX *ctx))();
13 13
14 void SSL_set_info_callback(SSL *ssl, void (*callback)()); 14 void SSL_set_info_callback(SSL *ssl, void (*callback)());
15 void (*SSL_get_info_callback(SSL *ssl))(); 15 void (*SSL_get_info_callback(const SSL *ssl))();
16 16
17=head1 DESCRIPTION 17=head1 DESCRIPTION
18 18
diff --git a/src/lib/libssl/src/doc/ssl/SSL_CTX_set_options.pod b/src/lib/libssl/src/doc/ssl/SSL_CTX_set_options.pod
index 766f0c9200..5ab1b32f93 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_CTX_set_options.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_CTX_set_options.pod
@@ -163,7 +163,7 @@ When choosing a cipher, use the server's preferences instead of the client
163preferences. When not set, the SSL server will always follow the clients 163preferences. When not set, the SSL server will always follow the clients
164preferences. When set, the SSLv3/TLSv1 server will choose following its 164preferences. When set, the SSLv3/TLSv1 server will choose following its
165own preferences. Because of the different protocol, for SSLv2 the server 165own preferences. Because of the different protocol, for SSLv2 the server
166will send his list of preferences to the client and the client chooses. 166will send its list of preferences to the client and the client chooses.
167 167
168=item SSL_OP_PKCS1_CHECK_1 168=item SSL_OP_PKCS1_CHECK_1
169 169
diff --git a/src/lib/libssl/src/doc/ssl/SSL_CTX_set_quiet_shutdown.pod b/src/lib/libssl/src/doc/ssl/SSL_CTX_set_quiet_shutdown.pod
index 1d0526d59a..393f8ff0b4 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_CTX_set_quiet_shutdown.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_CTX_set_quiet_shutdown.pod
@@ -9,10 +9,10 @@ SSL_CTX_set_quiet_shutdown, SSL_CTX_get_quiet_shutdown, SSL_set_quiet_shutdown,
9 #include <openssl/ssl.h> 9 #include <openssl/ssl.h>
10 10
11 void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode); 11 void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode);
12 int SSL_CTX_get_quiet_shutdown(SSL_CTX *ctx); 12 int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx);
13 13
14 void SSL_set_quiet_shutdown(SSL *ssl, int mode); 14 void SSL_set_quiet_shutdown(SSL *ssl, int mode);
15 int SSL_get_quiet_shutdown(SSL *ssl); 15 int SSL_get_quiet_shutdown(const SSL *ssl);
16 16
17=head1 DESCRIPTION 17=head1 DESCRIPTION
18 18
diff --git a/src/lib/libssl/src/doc/ssl/SSL_CTX_set_session_id_context.pod b/src/lib/libssl/src/doc/ssl/SSL_CTX_set_session_id_context.pod
index 5949395159..58fc685506 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_CTX_set_session_id_context.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_CTX_set_session_id_context.pod
@@ -46,7 +46,8 @@ B<SSL_MAX_SSL_SESSION_ID_LENGTH>.
46 46
47=head1 WARNINGS 47=head1 WARNINGS
48 48
49If the session id context is not set on an SSL/TLS server, stored sessions 49If the session id context is not set on an SSL/TLS server and client
50certificates are used, stored sessions
50will not be reused but a fatal error will be flagged and the handshake 51will not be reused but a fatal error will be flagged and the handshake
51will fail. 52will fail.
52 53
diff --git a/src/lib/libssl/src/doc/ssl/SSL_CTX_use_certificate.pod b/src/lib/libssl/src/doc/ssl/SSL_CTX_use_certificate.pod
index ea2faba3ec..48c888c337 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_CTX_use_certificate.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_CTX_use_certificate.pod
@@ -31,8 +31,8 @@ SSL_CTX_use_certificate, SSL_CTX_use_certificate_ASN1, SSL_CTX_use_certificate_f
31 int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, unsigned char *d, long len); 31 int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, unsigned char *d, long len);
32 int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type); 32 int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type);
33 33
34 int SSL_CTX_check_private_key(SSL_CTX *ctx); 34 int SSL_CTX_check_private_key(const SSL_CTX *ctx);
35 int SSL_check_private_key(SSL *ssl); 35 int SSL_check_private_key(const SSL *ssl);
36 36
37=head1 DESCRIPTION 37=head1 DESCRIPTION
38 38
diff --git a/src/lib/libssl/src/doc/ssl/SSL_SESSION_get_ex_new_index.pod b/src/lib/libssl/src/doc/ssl/SSL_SESSION_get_ex_new_index.pod
index da0bcf1590..657cda931f 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_SESSION_get_ex_new_index.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_SESSION_get_ex_new_index.pod
@@ -15,7 +15,7 @@ SSL_SESSION_get_ex_new_index, SSL_SESSION_set_ex_data, SSL_SESSION_get_ex_data -
15 15
16 int SSL_SESSION_set_ex_data(SSL_SESSION *session, int idx, void *arg); 16 int SSL_SESSION_set_ex_data(SSL_SESSION *session, int idx, void *arg);
17 17
18 void *SSL_SESSION_get_ex_data(SSL_SESSION *session, int idx); 18 void *SSL_SESSION_get_ex_data(const SSL_SESSION *session, int idx);
19 19
20 typedef int new_func(void *parent, void *ptr, CRYPTO_EX_DATA *ad, 20 typedef int new_func(void *parent, void *ptr, CRYPTO_EX_DATA *ad,
21 int idx, long argl, void *argp); 21 int idx, long argl, void *argp);
diff --git a/src/lib/libssl/src/doc/ssl/SSL_SESSION_get_time.pod b/src/lib/libssl/src/doc/ssl/SSL_SESSION_get_time.pod
index ea3c2bcfe6..00883ed2a0 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_SESSION_get_time.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_SESSION_get_time.pod
@@ -8,14 +8,14 @@ SSL_SESSION_get_time, SSL_SESSION_set_time, SSL_SESSION_get_timeout, SSL_SESSION
8 8
9 #include <openssl/ssl.h> 9 #include <openssl/ssl.h>
10 10
11 long SSL_SESSION_get_time(SSL_SESSION *s); 11 long SSL_SESSION_get_time(const SSL_SESSION *s);
12 long SSL_SESSION_set_time(SSL_SESSION *s, long tm); 12 long SSL_SESSION_set_time(SSL_SESSION *s, long tm);
13 long SSL_SESSION_get_timeout(SSL_SESSION *s); 13 long SSL_SESSION_get_timeout(const SSL_SESSION *s);
14 long SSL_SESSION_set_timeout(SSL_SESSION *s, long tm); 14 long SSL_SESSION_set_timeout(SSL_SESSION *s, long tm);
15 15
16 long SSL_get_time(SSL_SESSION *s); 16 long SSL_get_time(const SSL_SESSION *s);
17 long SSL_set_time(SSL_SESSION *s, long tm); 17 long SSL_set_time(SSL_SESSION *s, long tm);
18 long SSL_get_timeout(SSL_SESSION *s); 18 long SSL_get_timeout(const SSL_SESSION *s);
19 long SSL_set_timeout(SSL_SESSION *s, long tm); 19 long SSL_set_timeout(SSL_SESSION *s, long tm);
20 20
21=head1 DESCRIPTION 21=head1 DESCRIPTION
diff --git a/src/lib/libssl/src/doc/ssl/SSL_get_SSL_CTX.pod b/src/lib/libssl/src/doc/ssl/SSL_get_SSL_CTX.pod
index 52d0227b19..659c482c79 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_get_SSL_CTX.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_get_SSL_CTX.pod
@@ -8,7 +8,7 @@ SSL_get_SSL_CTX - get the SSL_CTX from which an SSL is created
8 8
9 #include <openssl/ssl.h> 9 #include <openssl/ssl.h>
10 10
11 SSL_CTX *SSL_get_SSL_CTX(SSL *ssl); 11 SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl);
12 12
13=head1 DESCRIPTION 13=head1 DESCRIPTION
14 14
diff --git a/src/lib/libssl/src/doc/ssl/SSL_get_ciphers.pod b/src/lib/libssl/src/doc/ssl/SSL_get_ciphers.pod
index 2a57455c23..aecadd9138 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_get_ciphers.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_get_ciphers.pod
@@ -8,8 +8,8 @@ SSL_get_ciphers, SSL_get_cipher_list - get list of available SSL_CIPHERs
8 8
9 #include <openssl/ssl.h> 9 #include <openssl/ssl.h>
10 10
11 STACK_OF(SSL_CIPHER) *SSL_get_ciphers(SSL *ssl); 11 STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *ssl);
12 const char *SSL_get_cipher_list(SSL *ssl, int priority); 12 const char *SSL_get_cipher_list(const SSL *ssl, int priority);
13 13
14=head1 DESCRIPTION 14=head1 DESCRIPTION
15 15
diff --git a/src/lib/libssl/src/doc/ssl/SSL_get_client_CA_list.pod b/src/lib/libssl/src/doc/ssl/SSL_get_client_CA_list.pod
index 5693fdebb2..68181b2407 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_get_client_CA_list.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_get_client_CA_list.pod
@@ -8,8 +8,8 @@ SSL_get_client_CA_list, SSL_CTX_get_client_CA_list - get list of client CAs
8 8
9 #include <openssl/ssl.h> 9 #include <openssl/ssl.h>
10 10
11 STACK_OF(X509_NAME) *SSL_get_client_CA_list(SSL *s); 11 STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s);
12 STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(SSL_CTX *ctx); 12 STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *ctx);
13 13
14=head1 DESCRIPTION 14=head1 DESCRIPTION
15 15
diff --git a/src/lib/libssl/src/doc/ssl/SSL_get_current_cipher.pod b/src/lib/libssl/src/doc/ssl/SSL_get_current_cipher.pod
index 2dd7261d89..e5ab12491e 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_get_current_cipher.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_get_current_cipher.pod
@@ -9,7 +9,7 @@ SSL_get_cipher_bits, SSL_get_cipher_version - get SSL_CIPHER of a connection
9 9
10 #include <openssl/ssl.h> 10 #include <openssl/ssl.h>
11 11
12 SSL_CIPHER *SSL_get_current_cipher(SSL *ssl); 12 SSL_CIPHER *SSL_get_current_cipher(const SSL *ssl);
13 #define SSL_get_cipher(s) \ 13 #define SSL_get_cipher(s) \
14 SSL_CIPHER_get_name(SSL_get_current_cipher(s)) 14 SSL_CIPHER_get_name(SSL_get_current_cipher(s))
15 #define SSL_get_cipher_name(s) \ 15 #define SSL_get_cipher_name(s) \
diff --git a/src/lib/libssl/src/doc/ssl/SSL_get_default_timeout.pod b/src/lib/libssl/src/doc/ssl/SSL_get_default_timeout.pod
index 8d43b31345..a648a9b82d 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_get_default_timeout.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_get_default_timeout.pod
@@ -8,7 +8,7 @@ SSL_get_default_timeout - get default session timeout value
8 8
9 #include <openssl/ssl.h> 9 #include <openssl/ssl.h>
10 10
11 long SSL_get_default_timeout(SSL *ssl); 11 long SSL_get_default_timeout(const SSL *ssl);
12 12
13=head1 DESCRIPTION 13=head1 DESCRIPTION
14 14
diff --git a/src/lib/libssl/src/doc/ssl/SSL_get_error.pod b/src/lib/libssl/src/doc/ssl/SSL_get_error.pod
index fe28dd942a..48c6b15db7 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_get_error.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_get_error.pod
@@ -8,7 +8,7 @@ SSL_get_error - obtain result code for TLS/SSL I/O operation
8 8
9 #include <openssl/ssl.h> 9 #include <openssl/ssl.h>
10 10
11 int SSL_get_error(SSL *ssl, int ret); 11 int SSL_get_error(const SSL *ssl, int ret);
12 12
13=head1 DESCRIPTION 13=head1 DESCRIPTION
14 14
diff --git a/src/lib/libssl/src/doc/ssl/SSL_get_ex_new_index.pod b/src/lib/libssl/src/doc/ssl/SSL_get_ex_new_index.pod
index 6644ef8fbc..228d23d8c0 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_get_ex_new_index.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_get_ex_new_index.pod
@@ -15,7 +15,7 @@ SSL_get_ex_new_index, SSL_set_ex_data, SSL_get_ex_data - internal application sp
15 15
16 int SSL_set_ex_data(SSL *ssl, int idx, void *arg); 16 int SSL_set_ex_data(SSL *ssl, int idx, void *arg);
17 17
18 void *SSL_get_ex_data(SSL *ssl, int idx); 18 void *SSL_get_ex_data(const SSL *ssl, int idx);
19 19
20 typedef int new_func(void *parent, void *ptr, CRYPTO_EX_DATA *ad, 20 typedef int new_func(void *parent, void *ptr, CRYPTO_EX_DATA *ad,
21 int idx, long argl, void *argp); 21 int idx, long argl, void *argp);
diff --git a/src/lib/libssl/src/doc/ssl/SSL_get_fd.pod b/src/lib/libssl/src/doc/ssl/SSL_get_fd.pod
index a3f7625931..89260b522c 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_get_fd.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_get_fd.pod
@@ -8,9 +8,9 @@ SSL_get_fd - get file descriptor linked to an SSL object
8 8
9 #include <openssl/ssl.h> 9 #include <openssl/ssl.h>
10 10
11 int SSL_get_fd(SSL *ssl); 11 int SSL_get_fd(const SSL *ssl);
12 int SSL_get_rfd(SSL *ssl); 12 int SSL_get_rfd(const SSL *ssl);
13 int SSL_get_wfd(SSL *ssl); 13 int SSL_get_wfd(const SSL *ssl);
14 14
15=head1 DESCRIPTION 15=head1 DESCRIPTION
16 16
diff --git a/src/lib/libssl/src/doc/ssl/SSL_get_peer_cert_chain.pod b/src/lib/libssl/src/doc/ssl/SSL_get_peer_cert_chain.pod
index 390ce0b41b..49fb88f86f 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_get_peer_cert_chain.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_get_peer_cert_chain.pod
@@ -8,7 +8,7 @@ SSL_get_peer_cert_chain - get the X509 certificate chain of the peer
8 8
9 #include <openssl/ssl.h> 9 #include <openssl/ssl.h>
10 10
11 STACKOF(X509) *SSL_get_peer_cert_chain(SSL *ssl); 11 STACKOF(X509) *SSL_get_peer_cert_chain(const SSL *ssl);
12 12
13=head1 DESCRIPTION 13=head1 DESCRIPTION
14 14
diff --git a/src/lib/libssl/src/doc/ssl/SSL_get_peer_certificate.pod b/src/lib/libssl/src/doc/ssl/SSL_get_peer_certificate.pod
index 60635a9660..ef7c8be180 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_get_peer_certificate.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_get_peer_certificate.pod
@@ -8,7 +8,7 @@ SSL_get_peer_certificate - get the X509 certificate of the peer
8 8
9 #include <openssl/ssl.h> 9 #include <openssl/ssl.h>
10 10
11 X509 *SSL_get_peer_certificate(SSL *ssl); 11 X509 *SSL_get_peer_certificate(const SSL *ssl);
12 12
13=head1 DESCRIPTION 13=head1 DESCRIPTION
14 14
diff --git a/src/lib/libssl/src/doc/ssl/SSL_get_session.pod b/src/lib/libssl/src/doc/ssl/SSL_get_session.pod
index dd9aba40b6..0c41caa922 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_get_session.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_get_session.pod
@@ -8,8 +8,8 @@ SSL_get_session - retrieve TLS/SSL session data
8 8
9 #include <openssl/ssl.h> 9 #include <openssl/ssl.h>
10 10
11 SSL_SESSION *SSL_get_session(SSL *ssl); 11 SSL_SESSION *SSL_get_session(const SSL *ssl);
12 SSL_SESSION *SSL_get0_session(SSL *ssl); 12 SSL_SESSION *SSL_get0_session(const SSL *ssl);
13 SSL_SESSION *SSL_get1_session(SSL *ssl); 13 SSL_SESSION *SSL_get1_session(SSL *ssl);
14 14
15=head1 DESCRIPTION 15=head1 DESCRIPTION
diff --git a/src/lib/libssl/src/doc/ssl/SSL_get_verify_result.pod b/src/lib/libssl/src/doc/ssl/SSL_get_verify_result.pod
index e6bac9c35a..55b56a53f9 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_get_verify_result.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_get_verify_result.pod
@@ -8,7 +8,7 @@ SSL_get_verify_result - get result of peer certificate verification
8 8
9 #include <openssl/ssl.h> 9 #include <openssl/ssl.h>
10 10
11 long SSL_get_verify_result(SSL *ssl); 11 long SSL_get_verify_result(const SSL *ssl);
12 12
13=head1 DESCRIPTION 13=head1 DESCRIPTION
14 14
diff --git a/src/lib/libssl/src/doc/ssl/SSL_get_version.pod b/src/lib/libssl/src/doc/ssl/SSL_get_version.pod
index 24d5291256..cc271db2c5 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_get_version.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_get_version.pod
@@ -8,7 +8,7 @@ SSL_get_version - get the protocol version of a connection.
8 8
9 #include <openssl/ssl.h> 9 #include <openssl/ssl.h>
10 10
11 const char *SSL_get_version(SSL *ssl); 11 const char *SSL_get_version(const SSL *ssl);
12 12
13=head1 DESCRIPTION 13=head1 DESCRIPTION
14 14
diff --git a/src/lib/libssl/src/doc/ssl/SSL_pending.pod b/src/lib/libssl/src/doc/ssl/SSL_pending.pod
index b4c48598b2..43f2874e8b 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_pending.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_pending.pod
@@ -8,7 +8,7 @@ SSL_pending - obtain number of readable bytes buffered in an SSL object
8 8
9 #include <openssl/ssl.h> 9 #include <openssl/ssl.h>
10 10
11 int SSL_pending(SSL *ssl); 11 int SSL_pending(const SSL *ssl);
12 12
13=head1 DESCRIPTION 13=head1 DESCRIPTION
14 14
diff --git a/src/lib/libssl/src/doc/ssl/SSL_set_shutdown.pod b/src/lib/libssl/src/doc/ssl/SSL_set_shutdown.pod
index 6289e635d9..011a022a12 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_set_shutdown.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_set_shutdown.pod
@@ -10,7 +10,7 @@ SSL_set_shutdown, SSL_get_shutdown - manipulate shutdown state of an SSL connect
10 10
11 void SSL_set_shutdown(SSL *ssl, int mode); 11 void SSL_set_shutdown(SSL *ssl, int mode);
12 12
13 int SSL_get_shutdown(SSL *ssl); 13 int SSL_get_shutdown(const SSL *ssl);
14 14
15=head1 DESCRIPTION 15=head1 DESCRIPTION
16 16
diff --git a/src/lib/libssl/src/doc/ssl/SSL_shutdown.pod b/src/lib/libssl/src/doc/ssl/SSL_shutdown.pod
index 6b5012be7a..89911acbca 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_shutdown.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_shutdown.pod
@@ -38,7 +38,7 @@ behaviour.
38=over 4 38=over 4
39 39
40=item When the application is the first party to send the "close notify" 40=item When the application is the first party to send the "close notify"
41alert, SSL_shutdown() will only send the alert and the set the 41alert, SSL_shutdown() will only send the alert and then set the
42SSL_SENT_SHUTDOWN flag (so that the session is considered good and will 42SSL_SENT_SHUTDOWN flag (so that the session is considered good and will
43be kept in cache). SSL_shutdown() will then return with 0. If a unidirectional 43be kept in cache). SSL_shutdown() will then return with 0. If a unidirectional
44shutdown is enough (the underlying connection shall be closed anyway), this 44shutdown is enough (the underlying connection shall be closed anyway), this
diff --git a/src/lib/libssl/src/doc/ssl/SSL_state_string.pod b/src/lib/libssl/src/doc/ssl/SSL_state_string.pod
index b4be1aaa48..fe25d47c71 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_state_string.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_state_string.pod
@@ -8,8 +8,8 @@ SSL_state_string, SSL_state_string_long - get textual description of state of an
8 8
9 #include <openssl/ssl.h> 9 #include <openssl/ssl.h>
10 10
11 const char *SSL_state_string(SSL *ssl); 11 const char *SSL_state_string(const SSL *ssl);
12 const char *SSL_state_string_long(SSL *ssl); 12 const char *SSL_state_string_long(const SSL *ssl);
13 13
14=head1 DESCRIPTION 14=head1 DESCRIPTION
15 15
diff --git a/src/lib/libssl/src/doc/ssl/SSL_want.pod b/src/lib/libssl/src/doc/ssl/SSL_want.pod
index 50cc89db80..c0059c0d4a 100644
--- a/src/lib/libssl/src/doc/ssl/SSL_want.pod
+++ b/src/lib/libssl/src/doc/ssl/SSL_want.pod
@@ -8,11 +8,11 @@ SSL_want, SSL_want_nothing, SSL_want_read, SSL_want_write, SSL_want_x509_lookup
8 8
9 #include <openssl/ssl.h> 9 #include <openssl/ssl.h>
10 10
11 int SSL_want(SSL *ssl); 11 int SSL_want(const SSL *ssl);
12 int SSL_want_nothing(SSL *ssl); 12 int SSL_want_nothing(const SSL *ssl);
13 int SSL_want_read(SSL *ssl); 13 int SSL_want_read(const SSL *ssl);
14 int SSL_want_write(SSL *ssl); 14 int SSL_want_write(const SSL *ssl);
15 int SSL_want_x509_lookup(SSL *ssl); 15 int SSL_want_x509_lookup(const SSL *ssl);
16 16
17=head1 DESCRIPTION 17=head1 DESCRIPTION
18 18
diff --git a/src/lib/libssl/src/doc/ssl/d2i_SSL_SESSION.pod b/src/lib/libssl/src/doc/ssl/d2i_SSL_SESSION.pod
index 0321a5a36f..81d276477f 100644
--- a/src/lib/libssl/src/doc/ssl/d2i_SSL_SESSION.pod
+++ b/src/lib/libssl/src/doc/ssl/d2i_SSL_SESSION.pod
@@ -8,7 +8,7 @@ d2i_SSL_SESSION, i2d_SSL_SESSION - convert SSL_SESSION object from/to ASN1 repre
8 8
9 #include <openssl/ssl.h> 9 #include <openssl/ssl.h>
10 10
11 SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, unsigned char **pp, long length); 11 SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length);
12 int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp); 12 int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp);
13 13
14=head1 DESCRIPTION 14=head1 DESCRIPTION
diff --git a/src/lib/libssl/src/doc/ssl/ssl.pod b/src/lib/libssl/src/doc/ssl/ssl.pod
index 3dc5358ef6..266697d221 100644
--- a/src/lib/libssl/src/doc/ssl/ssl.pod
+++ b/src/lib/libssl/src/doc/ssl/ssl.pod
@@ -213,7 +213,7 @@ protocol context defined in the B<SSL_CTX> structure.
213 213
214=item int B<SSL_CTX_add_session>(SSL_CTX *ctx, SSL_SESSION *c); 214=item int B<SSL_CTX_add_session>(SSL_CTX *ctx, SSL_SESSION *c);
215 215
216=item int B<SSL_CTX_check_private_key>(SSL_CTX *ctx); 216=item int B<SSL_CTX_check_private_key>(const SSL_CTX *ctx);
217 217
218=item long B<SSL_CTX_ctrl>(SSL_CTX *ctx, int cmd, long larg, char *parg); 218=item long B<SSL_CTX_ctrl>(SSL_CTX *ctx, int cmd, long larg, char *parg);
219 219
@@ -225,23 +225,23 @@ protocol context defined in the B<SSL_CTX> structure.
225 225
226=item X509_STORE *B<SSL_CTX_get_cert_store>(SSL_CTX *ctx); 226=item X509_STORE *B<SSL_CTX_get_cert_store>(SSL_CTX *ctx);
227 227
228=item STACK *B<SSL_CTX_get_client_CA_list>(SSL_CTX *ctx); 228=item STACK *B<SSL_CTX_get_client_CA_list>(const SSL_CTX *ctx);
229 229
230=item int (*B<SSL_CTX_get_client_cert_cb>(SSL_CTX *ctx))(SSL *ssl, X509 **x509, EVP_PKEY **pkey); 230=item int (*B<SSL_CTX_get_client_cert_cb>(SSL_CTX *ctx))(SSL *ssl, X509 **x509, EVP_PKEY **pkey);
231 231
232=item char *B<SSL_CTX_get_ex_data>(SSL_CTX *s, int idx); 232=item char *B<SSL_CTX_get_ex_data>(const SSL_CTX *s, int idx);
233 233
234=item int B<SSL_CTX_get_ex_new_index>(long argl, char *argp, int (*new_func);(void), int (*dup_func)(void), void (*free_func)(void)) 234=item int B<SSL_CTX_get_ex_new_index>(long argl, char *argp, int (*new_func);(void), int (*dup_func)(void), void (*free_func)(void))
235 235
236=item void (*B<SSL_CTX_get_info_callback>(SSL_CTX *ctx))(SSL *ssl, int cb, int ret); 236=item void (*B<SSL_CTX_get_info_callback>(SSL_CTX *ctx))(SSL *ssl, int cb, int ret);
237 237
238=item int B<SSL_CTX_get_quiet_shutdown>(SSL_CTX *ctx); 238=item int B<SSL_CTX_get_quiet_shutdown>(const SSL_CTX *ctx);
239 239
240=item int B<SSL_CTX_get_session_cache_mode>(SSL_CTX *ctx); 240=item int B<SSL_CTX_get_session_cache_mode>(SSL_CTX *ctx);
241 241
242=item long B<SSL_CTX_get_timeout>(SSL_CTX *ctx); 242=item long B<SSL_CTX_get_timeout>(const SSL_CTX *ctx);
243 243
244=item int (*B<SSL_CTX_get_verify_callback>(SSL_CTX *ctx))(int ok, X509_STORE_CTX *ctx); 244=item int (*B<SSL_CTX_get_verify_callback>(const SSL_CTX *ctx))(int ok, X509_STORE_CTX *ctx);
245 245
246=item int B<SSL_CTX_get_verify_mode>(SSL_CTX *ctx); 246=item int B<SSL_CTX_get_verify_mode>(SSL_CTX *ctx);
247 247
@@ -383,27 +383,27 @@ sessions defined in the B<SSL_SESSION> structures.
383 383
384=over 4 384=over 4
385 385
386=item int B<SSL_SESSION_cmp>(SSL_SESSION *a, SSL_SESSION *b); 386=item int B<SSL_SESSION_cmp>(const SSL_SESSION *a, const SSL_SESSION *b);
387 387
388=item void B<SSL_SESSION_free>(SSL_SESSION *ss); 388=item void B<SSL_SESSION_free>(SSL_SESSION *ss);
389 389
390=item char *B<SSL_SESSION_get_app_data>(SSL_SESSION *s); 390=item char *B<SSL_SESSION_get_app_data>(SSL_SESSION *s);
391 391
392=item char *B<SSL_SESSION_get_ex_data>(SSL_SESSION *s, int idx); 392=item char *B<SSL_SESSION_get_ex_data>(const SSL_SESSION *s, int idx);
393 393
394=item int B<SSL_SESSION_get_ex_new_index>(long argl, char *argp, int (*new_func);(void), int (*dup_func)(void), void (*free_func)(void)) 394=item int B<SSL_SESSION_get_ex_new_index>(long argl, char *argp, int (*new_func);(void), int (*dup_func)(void), void (*free_func)(void))
395 395
396=item long B<SSL_SESSION_get_time>(SSL_SESSION *s); 396=item long B<SSL_SESSION_get_time>(const SSL_SESSION *s);
397 397
398=item long B<SSL_SESSION_get_timeout>(SSL_SESSION *s); 398=item long B<SSL_SESSION_get_timeout>(const SSL_SESSION *s);
399 399
400=item unsigned long B<SSL_SESSION_hash>(SSL_SESSION *a); 400=item unsigned long B<SSL_SESSION_hash>(const SSL_SESSION *a);
401 401
402=item SSL_SESSION *B<SSL_SESSION_new>(void); 402=item SSL_SESSION *B<SSL_SESSION_new>(void);
403 403
404=item int B<SSL_SESSION_print>(BIO *bp, SSL_SESSION *x); 404=item int B<SSL_SESSION_print>(BIO *bp, const SSL_SESSION *x);
405 405
406=item int B<SSL_SESSION_print_fp>(FILE *fp, SSL_SESSION *x); 406=item int B<SSL_SESSION_print_fp>(FILE *fp, const SSL_SESSION *x);
407 407
408=item void B<SSL_SESSION_set_app_data>(SSL_SESSION *s, char *a); 408=item void B<SSL_SESSION_set_app_data>(SSL_SESSION *s, char *a);
409 409
@@ -438,7 +438,7 @@ connection defined in the B<SSL> structure.
438 438
439=item char *B<SSL_alert_type_string_long>(int value); 439=item char *B<SSL_alert_type_string_long>(int value);
440 440
441=item int B<SSL_check_private_key>(SSL *ssl); 441=item int B<SSL_check_private_key>(const SSL *ssl);
442 442
443=item void B<SSL_clear>(SSL *ssl); 443=item void B<SSL_clear>(SSL *ssl);
444 444
@@ -446,7 +446,7 @@ connection defined in the B<SSL> structure.
446 446
447=item int B<SSL_connect>(SSL *ssl); 447=item int B<SSL_connect>(SSL *ssl);
448 448
449=item void B<SSL_copy_session_id>(SSL *t, SSL *f); 449=item void B<SSL_copy_session_id>(SSL *t, const SSL *f);
450 450
451=item long B<SSL_ctrl>(SSL *ssl, int cmd, long larg, char *parg); 451=item long B<SSL_ctrl>(SSL *ssl, int cmd, long larg, char *parg);
452 452
@@ -458,77 +458,77 @@ connection defined in the B<SSL> structure.
458 458
459=item void B<SSL_free>(SSL *ssl); 459=item void B<SSL_free>(SSL *ssl);
460 460
461=item SSL_CTX *B<SSL_get_SSL_CTX>(SSL *ssl); 461=item SSL_CTX *B<SSL_get_SSL_CTX>(const SSL *ssl);
462 462
463=item char *B<SSL_get_app_data>(SSL *ssl); 463=item char *B<SSL_get_app_data>(SSL *ssl);
464 464
465=item X509 *B<SSL_get_certificate>(SSL *ssl); 465=item X509 *B<SSL_get_certificate>(const SSL *ssl);
466 466
467=item const char *B<SSL_get_cipher>(SSL *ssl); 467=item const char *B<SSL_get_cipher>(const SSL *ssl);
468 468
469=item int B<SSL_get_cipher_bits>(SSL *ssl, int *alg_bits); 469=item int B<SSL_get_cipher_bits>(const SSL *ssl, int *alg_bits);
470 470
471=item char *B<SSL_get_cipher_list>(SSL *ssl, int n); 471=item char *B<SSL_get_cipher_list>(const SSL *ssl, int n);
472 472
473=item char *B<SSL_get_cipher_name>(SSL *ssl); 473=item char *B<SSL_get_cipher_name>(const SSL *ssl);
474 474
475=item char *B<SSL_get_cipher_version>(SSL *ssl); 475=item char *B<SSL_get_cipher_version>(const SSL *ssl);
476 476
477=item STACK *B<SSL_get_ciphers>(SSL *ssl); 477=item STACK *B<SSL_get_ciphers>(const SSL *ssl);
478 478
479=item STACK *B<SSL_get_client_CA_list>(SSL *ssl); 479=item STACK *B<SSL_get_client_CA_list>(const SSL *ssl);
480 480
481=item SSL_CIPHER *B<SSL_get_current_cipher>(SSL *ssl); 481=item SSL_CIPHER *B<SSL_get_current_cipher>(SSL *ssl);
482 482
483=item long B<SSL_get_default_timeout>(SSL *ssl); 483=item long B<SSL_get_default_timeout>(const SSL *ssl);
484 484
485=item int B<SSL_get_error>(SSL *ssl, int i); 485=item int B<SSL_get_error>(const SSL *ssl, int i);
486 486
487=item char *B<SSL_get_ex_data>(SSL *ssl, int idx); 487=item char *B<SSL_get_ex_data>(const SSL *ssl, int idx);
488 488
489=item int B<SSL_get_ex_data_X509_STORE_CTX_idx>(void); 489=item int B<SSL_get_ex_data_X509_STORE_CTX_idx>(void);
490 490
491=item int B<SSL_get_ex_new_index>(long argl, char *argp, int (*new_func);(void), int (*dup_func)(void), void (*free_func)(void)) 491=item int B<SSL_get_ex_new_index>(long argl, char *argp, int (*new_func);(void), int (*dup_func)(void), void (*free_func)(void))
492 492
493=item int B<SSL_get_fd>(SSL *ssl); 493=item int B<SSL_get_fd>(const SSL *ssl);
494 494
495=item void (*B<SSL_get_info_callback>(SSL *ssl);)(void) 495=item void (*B<SSL_get_info_callback>(const SSL *ssl);)()
496 496
497=item STACK *B<SSL_get_peer_cert_chain>(SSL *ssl); 497=item STACK *B<SSL_get_peer_cert_chain>(const SSL *ssl);
498 498
499=item X509 *B<SSL_get_peer_certificate>(SSL *ssl); 499=item X509 *B<SSL_get_peer_certificate>(const SSL *ssl);
500 500
501=item EVP_PKEY *B<SSL_get_privatekey>(SSL *ssl); 501=item EVP_PKEY *B<SSL_get_privatekey>(SSL *ssl);
502 502
503=item int B<SSL_get_quiet_shutdown>(SSL *ssl); 503=item int B<SSL_get_quiet_shutdown>(const SSL *ssl);
504 504
505=item BIO *B<SSL_get_rbio>(SSL *ssl); 505=item BIO *B<SSL_get_rbio>(const SSL *ssl);
506 506
507=item int B<SSL_get_read_ahead>(SSL *ssl); 507=item int B<SSL_get_read_ahead>(const SSL *ssl);
508 508
509=item SSL_SESSION *B<SSL_get_session>(SSL *ssl); 509=item SSL_SESSION *B<SSL_get_session>(const SSL *ssl);
510 510
511=item char *B<SSL_get_shared_ciphers>(SSL *ssl, char *buf, int len); 511=item char *B<SSL_get_shared_ciphers>(const SSL *ssl, char *buf, int len);
512 512
513=item int B<SSL_get_shutdown>(SSL *ssl); 513=item int B<SSL_get_shutdown>(const SSL *ssl);
514 514
515=item SSL_METHOD *B<SSL_get_ssl_method>(SSL *ssl); 515=item SSL_METHOD *B<SSL_get_ssl_method>(SSL *ssl);
516 516
517=item int B<SSL_get_state>(SSL *ssl); 517=item int B<SSL_get_state>(const SSL *ssl);
518 518
519=item long B<SSL_get_time>(SSL *ssl); 519=item long B<SSL_get_time>(const SSL *ssl);
520 520
521=item long B<SSL_get_timeout>(SSL *ssl); 521=item long B<SSL_get_timeout>(const SSL *ssl);
522 522
523=item int (*B<SSL_get_verify_callback>(SSL *ssl);)(void) 523=item int (*B<SSL_get_verify_callback>(const SSL *ssl))(int,X509_STORE_CTX *)
524 524
525=item int B<SSL_get_verify_mode>(SSL *ssl); 525=item int B<SSL_get_verify_mode>(const SSL *ssl);
526 526
527=item long B<SSL_get_verify_result>(SSL *ssl); 527=item long B<SSL_get_verify_result>(const SSL *ssl);
528 528
529=item char *B<SSL_get_version>(SSL *ssl); 529=item char *B<SSL_get_version>(const SSL *ssl);
530 530
531=item BIO *B<SSL_get_wbio>(SSL *ssl); 531=item BIO *B<SSL_get_wbio>(const SSL *ssl);
532 532
533=item int B<SSL_in_accept_init>(SSL *ssl); 533=item int B<SSL_in_accept_init>(SSL *ssl);
534 534
@@ -550,7 +550,7 @@ connection defined in the B<SSL> structure.
550 550
551=item int B<SSL_peek>(SSL *ssl, void *buf, int num); 551=item int B<SSL_peek>(SSL *ssl, void *buf, int num);
552 552
553=item int B<SSL_pending>(SSL *ssl); 553=item int B<SSL_pending>(const SSL *ssl);
554 554
555=item int B<SSL_read>(SSL *ssl, void *buf, int num); 555=item int B<SSL_read>(SSL *ssl, void *buf, int num);
556 556
@@ -610,11 +610,11 @@ connection defined in the B<SSL> structure.
610 610
611=item int B<SSL_shutdown>(SSL *ssl); 611=item int B<SSL_shutdown>(SSL *ssl);
612 612
613=item int B<SSL_state>(SSL *ssl); 613=item int B<SSL_state>(const SSL *ssl);
614 614
615=item char *B<SSL_state_string>(SSL *ssl); 615=item char *B<SSL_state_string>(const SSL *ssl);
616 616
617=item char *B<SSL_state_string_long>(SSL *ssl); 617=item char *B<SSL_state_string_long>(const SSL *ssl);
618 618
619=item long B<SSL_total_renegotiations>(SSL *ssl); 619=item long B<SSL_total_renegotiations>(SSL *ssl);
620 620
@@ -636,17 +636,17 @@ connection defined in the B<SSL> structure.
636 636
637=item int B<SSL_use_certificate_file>(SSL *ssl, char *file, int type); 637=item int B<SSL_use_certificate_file>(SSL *ssl, char *file, int type);
638 638
639=item int B<SSL_version>(SSL *ssl); 639=item int B<SSL_version>(const SSL *ssl);
640 640
641=item int B<SSL_want>(SSL *ssl); 641=item int B<SSL_want>(const SSL *ssl);
642 642
643=item int B<SSL_want_nothing>(SSL *ssl); 643=item int B<SSL_want_nothing>(const SSL *ssl);
644 644
645=item int B<SSL_want_read>(SSL *ssl); 645=item int B<SSL_want_read>(const SSL *ssl);
646 646
647=item int B<SSL_want_write>(SSL *ssl); 647=item int B<SSL_want_write>(const SSL *ssl);
648 648
649=item int B<SSL_want_x509_lookup>(s); 649=item int B<SSL_want_x509_lookup>(const SSL *ssl);
650 650
651=item int B<SSL_write>(SSL *ssl, const void *buf, int num); 651=item int B<SSL_write>(SSL *ssl, const void *buf, int num);
652 652
diff --git a/src/lib/libssl/src/doc/standards.txt b/src/lib/libssl/src/doc/standards.txt
index edbe2f3a57..f6675b574b 100644
--- a/src/lib/libssl/src/doc/standards.txt
+++ b/src/lib/libssl/src/doc/standards.txt
@@ -88,6 +88,10 @@ PKCS#12: Personal Information Exchange Syntax Standard, version 1.0.
88 (Format: TXT=143173 bytes) (Obsoletes RFC2437) (Status: 88 (Format: TXT=143173 bytes) (Obsoletes RFC2437) (Status:
89 INFORMATIONAL) 89 INFORMATIONAL)
90 90
913820 Internet X.509 Public Key Infrastructure (PKI) Proxy Certificate
92 Profile. S. Tuecke, V. Welch, D. Engert, L. Pearlman, M. Thompson.
93 June 2004. (Format: TXT=86374 bytes) (Status: PROPOSED STANDARD)
94
91 95
92Related: 96Related:
93-------- 97--------
diff --git a/src/lib/libssl/src/e_os.h b/src/lib/libssl/src/e_os.h
index 096eabe09a..5a328b7fa8 100644
--- a/src/lib/libssl/src/e_os.h
+++ b/src/lib/libssl/src/e_os.h
@@ -510,11 +510,31 @@ extern char *sys_errlist[]; extern int sys_nerr;
510#define IRIX_CC_BUG /* CDS++ up to V2.0Bsomething suffered from the same bug.*/ 510#define IRIX_CC_BUG /* CDS++ up to V2.0Bsomething suffered from the same bug.*/
511#endif 511#endif
512 512
513#if defined(OPENSSL_SYS_WINDOWS)
514# define strcasecmp _stricmp
515# define strncasecmp _strnicmp
516#elif defined(OPENSSL_SYS_VMS)
517/* VMS below version 7.0 doesn't have strcasecmp() */
518# include "o_str.h"
519# define strcasecmp OPENSSL_strcasecmp
520# define strncasecmp OPENSSL_strncasecmp
521# define OPENSSL_IMPLEMENTS_strncasecmp
522#elif defined(OPENSSL_SYS_OS2) && defined(__EMX__)
523# define strcasecmp stricmp
524# define strncasecmp strnicmp
525#else
526# ifdef NO_STRINGS_H
527 int strcasecmp();
528 int strncasecmp();
529# else
530# include <strings.h>
531# endif /* NO_STRINGS_H */
532#endif
533
513#if defined(OPENSSL_SYS_OS2) && defined(__EMX__) 534#if defined(OPENSSL_SYS_OS2) && defined(__EMX__)
514# include <io.h> 535# include <io.h>
515# include <fcntl.h> 536# include <fcntl.h>
516# define NO_SYSLOG 537# define NO_SYSLOG
517# define strcasecmp stricmp
518#endif 538#endif
519 539
520/* vxworks */ 540/* vxworks */
diff --git a/src/lib/libssl/src/e_os2.h b/src/lib/libssl/src/e_os2.h
index 81be3025f6..4ca79a4d65 100644
--- a/src/lib/libssl/src/e_os2.h
+++ b/src/lib/libssl/src/e_os2.h
@@ -189,6 +189,11 @@ extern "C" {
189# endif 189# endif
190#endif 190#endif
191 191
192/* --------------------------------- VOS ----------------------------------- */
193#ifdef OPENSSL_SYSNAME_VOS
194# define OPENSSL_SYS_VOS
195#endif
196
192/* ------------------------------- VxWorks --------------------------------- */ 197/* ------------------------------- VxWorks --------------------------------- */
193#ifdef OPENSSL_SYSNAME_VXWORKS 198#ifdef OPENSSL_SYSNAME_VXWORKS
194# define OPENSSL_SYS_VXWORKS 199# define OPENSSL_SYS_VXWORKS
@@ -243,7 +248,7 @@ extern "C" {
243#define OPENSSL_EXTERN OPENSSL_IMPORT 248#define OPENSSL_EXTERN OPENSSL_IMPORT
244 249
245/* Macros to allow global variables to be reached through function calls when 250/* Macros to allow global variables to be reached through function calls when
246 required (if a shared library version requvres it, for example. 251 required (if a shared library version requires it, for example.
247 The way it's done allows definitions like this: 252 The way it's done allows definitions like this:
248 253
249 // in foobar.c 254 // in foobar.c
@@ -253,9 +258,10 @@ extern "C" {
253 #define foobar OPENSSL_GLOBAL_REF(foobar) 258 #define foobar OPENSSL_GLOBAL_REF(foobar)
254*/ 259*/
255#ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION 260#ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION
256# define OPENSSL_IMPLEMENT_GLOBAL(type,name) static type _hide_##name; \ 261# define OPENSSL_IMPLEMENT_GLOBAL(type,name) \
257 type *_shadow_##name(void) { return &_hide_##name; } \ 262 extern type _hide_##name; \
258 static type _hide_##name 263 type *_shadow_##name(void) { return &_hide_##name; } \
264 static type _hide_##name
259# define OPENSSL_DECLARE_GLOBAL(type,name) type *_shadow_##name(void) 265# define OPENSSL_DECLARE_GLOBAL(type,name) type *_shadow_##name(void)
260# define OPENSSL_GLOBAL_REF(name) (*(_shadow_##name())) 266# define OPENSSL_GLOBAL_REF(name) (*(_shadow_##name()))
261#else 267#else
diff --git a/src/lib/libssl/src/fips/Makefile b/src/lib/libssl/src/fips/Makefile
new file mode 100644
index 0000000000..63e4cf82be
--- /dev/null
+++ b/src/lib/libssl/src/fips/Makefile
@@ -0,0 +1,199 @@
1#
2# SSLeay/fips/Makefile
3#
4
5DIR= fips
6TOP= ..
7CC= cc
8INCLUDE= -I. -I$(TOP) -I../include
9INCLUDES= -I.. -I../.. -I../../include
10CFLAG= -g
11INSTALL_PREFIX=
12OPENSSLDIR= /usr/local/ssl
13INSTALLTOP= /usr/local/ssl
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16MAKEFILE= Makefile
17RM= rm -f
18AR= ar r
19
20PEX_LIBS=
21EX_LIBS=
22
23CFLAGS= $(INCLUDE) $(CFLAG)
24
25
26LIBS=
27
28FDIRS=sha1 rand des aes dsa rsa dh
29
30GENERAL=Makefile README fips-lib.com install.com
31
32LIB= $(TOP)/libcrypto.a
33SHARED_LIB= libcrypto$(SHLIB_EXT)
34LIBSRC=fips.c fips_err_wrapper.c
35LIBOBJ=fips.o fips_err_wrapper.o
36
37SRC= $(LIBSRC)
38
39EXHEADER=fips.h
40HEADER=$(EXHEADER) fips_err.h
41EXE=openssl_fips_fingerprint
42
43ALL= $(GENERAL) $(SRC) $(HEADER)
44
45top:
46 @(cd ..; $(MAKE) DIRS=$(DIR) all)
47
48all:
49 @if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
50 $(MAKE) -e subdirs check lib shared; \
51 fi
52
53check:
54 TOP=`pwd`/$(TOP) ./fips_check_sha1 fingerprint.sha1 $(SRC) $(HEADER)
55
56subdirs:
57 @for i in $(FDIRS) ;\
58 do \
59 (cd $$i && echo "making all in fips/$$i..." && \
60 $(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}' FIPS_DES_ENC='${FIPS_DES_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_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; \
61 done;
62
63sub_target:
64 @for i in $(FDIRS) ;\
65 do \
66 (cd $$i && echo "making $(TARGET) in fips/$$i..." && \
67 $(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}' FIPS_DES_ENC='${FIPS_DES_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_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}' $(TARGET) ) || exit 1; \
68 done;
69
70files:
71 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
72 @for i in $(FDIRS) ;\
73 do \
74 (cd $$i && echo "making 'files' in fips/$$i..." && \
75 $(MAKE) PERL='${PERL}' files ); \
76 done;
77
78links:
79 @$(PERL) $(TOP)/util/mklink.pl ../include/openssl $(EXHEADER)
80 @for i in $(FDIRS); do \
81 (cd $$i && echo "making links in fips/$$i..." && \
82 $(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}' FIPS_DES_ENC='${FIPS_DES_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_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}' PERL='${PERL}' links ); \
83 done;
84
85lib: $(LIBOBJ)
86 $(AR) $(LIB) $(LIBOBJ)
87 $(RANLIB) $(LIB) || echo Never mind.
88 @touch lib
89
90shared:
91 if [ -n "$(SHARED_LIBS)" ]; then \
92 (cd ..; $(MAKE) $(SHARED_LIB)); \
93 fi
94
95libs:
96 @for i in $(FDIRS) ;\
97 do \
98 (cd $$i && echo "making libs in fips/$$i..." && \
99 $(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALL_PREFIX='${INSTALL_PREFIX}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' AR='${AR}' lib ); \
100 done;
101
102tests:
103 @for i in $(FDIRS) ;\
104 do \
105 (cd $$i && echo "making tests in fips/$$i..." && \
106 $(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' AR='${AR}' tests ); \
107 done;
108
109top_fips_test_suite:
110 (cd $(TOP); $(MAKE) DIRS=fips FDIRS=. TARGET=fips_test_suite sub_target)
111
112fips_test_suite: fips_test_suite.o $(TOP)/libcrypto.a
113 $(CC) $(CFLAGS) -o fips_test_suite fips_test_suite.o $(PEX_LIBS) $(TOP)/libcrypto.a $(EX_LIBS)
114 TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a fips_test_suite || { rm fips_test_suite; false; }
115
116fips_test: top top_fips_test_suite
117 cd testvectors && perl -p -i -e 's/COUNT=/COUNT = /' des[23]/req/*.req
118 @for i in dsa sha1 aes des ; \
119 do \
120 (cd $$i && echo "making fips_test in fips/$$i..." && $(MAKE) fips_test) \
121 done;
122
123install:
124 @headerlist="$(EXHEADER)"; for i in $$headerlist ;\
125 do \
126 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
127 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
128 done;
129 @for i in $(FDIRS) ;\
130 do \
131 (cd $$i && echo "making install in fips/$$i..." && \
132 $(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALL_PREFIX='${INSTALL_PREFIX}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' install ); \
133 done;
134 @for i in $(EXE) ; \
135 do \
136 echo "installing $$i"; \
137 cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
138 chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
139 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i; \
140 done
141
142lint:
143 @for i in $(FDIRS) ;\
144 do \
145 (cd $$i && echo "making lint in fips/$$i..." && \
146 $(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' lint ); \
147 done;
148
149depend:
150 if [ ! -f buildinf.h ]; then touch buildinf.h; fi # fake buildinf.h if it does not exist
151 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDE) $(DEPFLAG) -- $(SRC)
152 if [ ! -s buildinf.h ]; then rm buildinf.h; fi
153 @for i in $(FDIRS) ;\
154 do \
155 (cd $$i && echo "making depend in fips/$$i..." && \
156 $(MAKE) MAKEFILE='${MAKEFILE}' INCLUDES='${INCLUDES}' CFLAG='${CFLAG}' DEPFLAG='${DEPFLAG}' MAKEDEPPROG='${MAKEDEPPROG}' KRB5_INCLUDES='${KRB5_INCLUDES}' PERL='${PERL}' depend ); \
157 done;
158
159clean:
160 rm -f buildinf.h *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
161 @for i in $(FDIRS) ;\
162 do \
163 (cd $$i && echo "making clean in fips/$$i..." && \
164 $(MAKE) CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' clean ); \
165 done;
166
167dclean:
168 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
169 mv -f Makefile.new $(MAKEFILE)
170 @for i in $(FDIRS) ;\
171 do \
172 (cd $$i && echo "making dclean in fips/$$i..." && \
173 $(MAKE) PERL='${PERL}' CC='$(CC)' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' dclean ); \
174 done;
175
176# DO NOT DELETE THIS LINE -- make depend depends on it.
177
178fips.o: ../include/openssl/aes.h ../include/openssl/asn1.h
179fips.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
180fips.o: ../include/openssl/bn.h ../include/openssl/cast.h
181fips.o: ../include/openssl/crypto.h ../include/openssl/des.h
182fips.o: ../include/openssl/des_old.h ../include/openssl/dh.h
183fips.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
184fips.o: ../include/openssl/err.h ../include/openssl/evp.h
185fips.o: ../include/openssl/fips.h ../include/openssl/fips_rand.h
186fips.o: ../include/openssl/hmac.h ../include/openssl/idea.h
187fips.o: ../include/openssl/lhash.h ../include/openssl/md2.h
188fips.o: ../include/openssl/md4.h ../include/openssl/md5.h
189fips.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
190fips.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
191fips.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
192fips.o: ../include/openssl/rand.h ../include/openssl/rc2.h
193fips.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
194fips.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
195fips.o: ../include/openssl/safestack.h ../include/openssl/sha.h
196fips.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
197fips.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h fips.c
198fips.o: fips_locl.h
199fips_err_wrapper.o: ../include/openssl/opensslconf.h fips_err_wrapper.c
diff --git a/src/lib/libssl/src/fips/aes/Makefile b/src/lib/libssl/src/fips/aes/Makefile
new file mode 100644
index 0000000000..fce5eeb5f7
--- /dev/null
+++ b/src/lib/libssl/src/fips/aes/Makefile
@@ -0,0 +1,131 @@
1#
2# SSLeay/fips/aes/Makefile
3#
4
5DIR= aes
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=fips_aesavs.c
22TESTDATA=fips_aes_data
23APPS=
24
25LIB=$(TOP)/libcrypto.a
26LIBSRC=fips_aes_core.c fips_aes_selftest.c
27LIBOBJ=fips_aes_core.o fips_aes_selftest.o
28
29SRC= $(LIBSRC)
30
31EXHEADER=
32HEADER= $(EXHEADER) fips_aes_locl.h
33
34ALL= $(GENERAL) $(SRC) $(HEADER)
35
36top:
37 (cd $(TOP); $(MAKE) DIRS=fips FDIRS=$(DIR) sub_all)
38
39all: check lib
40
41check:
42 TOP=`pwd`/$(TOP) ../fips_check_sha1 fingerprint.sha1 $(SRC) $(HEADER)
43
44lib: $(LIBOBJ)
45 $(AR) $(LIB) $(LIBOBJ)
46 $(RANLIB) $(LIB) || echo Never mind.
47 @sleep 2; touch lib
48
49files:
50 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
51
52links:
53 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/include/openssl $(EXHEADER)
54 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/test $(TEST)
55 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/test $(TESTDATA)
56 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/apps $(APPS)
57
58install:
59 @headerlist="$(EXHEADER)"; for i in $$headerlist; \
60 do \
61 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
62 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
63 done
64
65tags:
66 ctags $(SRC)
67
68tests:
69
70top_fips_aesavs:
71 (cd $(TOP); $(MAKE) DIRS=fips FDIRS=$(DIR) TARGET=fips_aesavs sub_target)
72
73fips_aesavs: fips_aesavs.o $(TOP)/libcrypto.a
74 $(CC) $(CFLAGS) -o fips_aesavs fips_aesavs.o $(PEX_LIBS) $(TOP)/libcrypto.a $(EX_LIBS)
75 TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a fips_aesavs
76
77fips_test: top top_fips_aesavs
78 find ../testvectors/aes/req -name '*.req' > testlist
79 -rm -rf ../testvectors/aes/rsp
80 mkdir ../testvectors/aes/rsp
81 ./fips_aesavs -d testlist
82
83lint:
84 lint -DLINT $(INCLUDES) $(SRC)>fluff
85
86depend:
87 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) \
88 $(SRC) $(TEST)
89
90dclean:
91 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
92 mv -f Makefile.new $(MAKEFILE)
93
94clean:
95 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
96# DO NOT DELETE THIS LINE -- make depend depends on it.
97
98fips_aes_core.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
99fips_aes_core.o: ../../include/openssl/fips.h
100fips_aes_core.o: ../../include/openssl/opensslconf.h fips_aes_core.c
101fips_aes_core.o: fips_aes_locl.h
102fips_aes_selftest.o: ../../include/openssl/aes.h ../../include/openssl/bio.h
103fips_aes_selftest.o: ../../include/openssl/crypto.h
104fips_aes_selftest.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
105fips_aes_selftest.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
106fips_aes_selftest.o: ../../include/openssl/opensslconf.h
107fips_aes_selftest.o: ../../include/openssl/opensslv.h
108fips_aes_selftest.o: ../../include/openssl/safestack.h
109fips_aes_selftest.o: ../../include/openssl/stack.h
110fips_aes_selftest.o: ../../include/openssl/symhacks.h fips_aes_selftest.c
111fips_aesavs.o: ../../e_os.h ../../include/openssl/aes.h
112fips_aesavs.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
113fips_aesavs.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
114fips_aesavs.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
115fips_aesavs.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
116fips_aesavs.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
117fips_aesavs.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
118fips_aesavs.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
119fips_aesavs.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
120fips_aesavs.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
121fips_aesavs.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
122fips_aesavs.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
123fips_aesavs.o: ../../include/openssl/opensslconf.h
124fips_aesavs.o: ../../include/openssl/opensslv.h
125fips_aesavs.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc2.h
126fips_aesavs.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
127fips_aesavs.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
128fips_aesavs.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
129fips_aesavs.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
130fips_aesavs.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
131fips_aesavs.o: fips_aesavs.c
diff --git a/src/lib/libssl/src/fips/aes/fips_aes_selftest.c b/src/lib/libssl/src/fips/aes/fips_aes_selftest.c
new file mode 100644
index 0000000000..0e53d21bd0
--- /dev/null
+++ b/src/lib/libssl/src/fips/aes/fips_aes_selftest.c
@@ -0,0 +1,112 @@
1/* ====================================================================
2 * Copyright (c) 2003 The OpenSSL Project. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * 3. All advertising materials mentioning features or use of this
17 * software must display the following acknowledgment:
18 * "This product includes software developed by the OpenSSL Project
19 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
20 *
21 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
22 * endorse or promote products derived from this software without
23 * prior written permission. For written permission, please contact
24 * openssl-core@openssl.org.
25 *
26 * 5. Products derived from this software may not be called "OpenSSL"
27 * nor may "OpenSSL" appear in their names without prior written
28 * permission of the OpenSSL Project.
29 *
30 * 6. Redistributions of any form whatsoever must retain the following
31 * acknowledgment:
32 * "This product includes software developed by the OpenSSL Project
33 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
34 *
35 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
36 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
38 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
41 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
42 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
43 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
44 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
45 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
46 * OF THE POSSIBILITY OF SUCH DAMAGE.
47 *
48 */
49
50#include <string.h>
51#include <openssl/err.h>
52#include <openssl/fips.h>
53#include <openssl/aes.h>
54
55#ifdef OPENSSL_FIPS
56static struct
57 {
58 unsigned char key[16];
59 unsigned char plaintext[16];
60 unsigned char ciphertext[16];
61 } tests[]=
62 {
63 {
64 { 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
65 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F },
66 { 0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,
67 0x88,0x99,0xAA,0xBB,0xCC,0xDD,0xEE,0xFF },
68 { 0x69,0xC4,0xE0,0xD8,0x6A,0x7B,0x04,0x30,
69 0xD8,0xCD,0xB7,0x80,0x70,0xB4,0xC5,0x5A },
70 },
71 };
72
73void FIPS_corrupt_aes()
74 {
75 tests[0].key[0]++;
76 }
77
78int FIPS_selftest_aes()
79 {
80 int n;
81
82 /* Encrypt and check against known ciphertext */
83 for(n=0 ; n < 1 ; ++n)
84 {
85 AES_KEY key;
86 unsigned char buf[16];
87
88 AES_set_encrypt_key(tests[n].key,128,&key);
89 AES_encrypt(tests[n].plaintext,buf,&key);
90 if(memcmp(buf,tests[n].ciphertext,sizeof buf))
91 {
92 FIPSerr(FIPS_F_FIPS_SELFTEST_AES,FIPS_R_SELFTEST_FAILED);
93 return 0;
94 }
95 }
96 /* Decrypt and check against known plaintext */
97 for(n=0 ; n < 1 ; ++n)
98 {
99 AES_KEY key;
100 unsigned char buf[16];
101
102 AES_set_decrypt_key(tests[n].key,128,&key);
103 AES_decrypt(tests[n].ciphertext,buf,&key);
104 if(memcmp(buf,tests[n].plaintext,sizeof buf))
105 {
106 FIPSerr(FIPS_F_FIPS_SELFTEST_AES,FIPS_R_SELFTEST_FAILED);
107 return 0;
108 }
109 }
110 return 1;
111 }
112#endif
diff --git a/src/lib/libssl/src/fips/aes/fips_aesavs.c b/src/lib/libssl/src/fips/aes/fips_aesavs.c
new file mode 100644
index 0000000000..5fc2879067
--- /dev/null
+++ b/src/lib/libssl/src/fips/aes/fips_aesavs.c
@@ -0,0 +1,1005 @@
1/* ====================================================================
2 * Copyright (c) 2004 The OpenSSL Project. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * 3. All advertising materials mentioning features or use of this
17 * software must display the following acknowledgment:
18 * "This product includes software developed by the OpenSSL Project
19 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
20 *
21 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
22 * endorse or promote products derived from this software without
23 * prior written permission. For written permission, please contact
24 * openssl-core@openssl.org.
25 *
26 * 5. Products derived from this software may not be called "OpenSSL"
27 * nor may "OpenSSL" appear in their names without prior written
28 * permission of the OpenSSL Project.
29 *
30 * 6. Redistributions of any form whatsoever must retain the following
31 * acknowledgment:
32 * "This product includes software developed by the OpenSSL Project
33 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
34 *
35 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
36 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
38 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
41 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
42 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
43 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
44 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
45 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
46 * OF THE POSSIBILITY OF SUCH DAMAGE.
47 *
48 */
49/*---------------------------------------------
50 NIST AES Algorithm Validation Suite
51 Test Program
52
53 Donated to OpenSSL by:
54 V-ONE Corporation
55 20250 Century Blvd, Suite 300
56 Germantown, MD 20874
57 U.S.A.
58 ----------------------------------------------*/
59
60#include <stdio.h>
61#include <stdlib.h>
62#include <string.h>
63#include <errno.h>
64#include <assert.h>
65
66#include <openssl/aes.h>
67#include <openssl/evp.h>
68#include <openssl/fips.h>
69#include <openssl/err.h>
70#include "e_os.h"
71
72#define AES_BLOCK_SIZE 16
73
74#define VERBOSE 1
75
76/*-----------------------------------------------*/
77
78int AESTest(EVP_CIPHER_CTX *ctx,
79 char *amode, int akeysz, unsigned char *aKey,
80 unsigned char *iVec,
81 int dir, /* 0 = decrypt, 1 = encrypt */
82 unsigned char *plaintext, unsigned char *ciphertext, int len)
83 {
84 const EVP_CIPHER *cipher = NULL;
85 int ret = 1;
86 int kt = 0;
87
88 if (ctx)
89 memset(ctx, 0, sizeof(EVP_CIPHER_CTX));
90
91 if (strcasecmp(amode, "CBC") == 0)
92 kt = 1000;
93 else if (strcasecmp(amode, "ECB") == 0)
94 kt = 2000;
95 else if (strcasecmp(amode, "CFB128") == 0)
96 kt = 3000;
97 else if (strncasecmp(amode, "OFB", 3) == 0)
98 kt = 4000;
99 else if(!strcasecmp(amode,"CFB1"))
100 kt=5000;
101 else if(!strcasecmp(amode,"CFB8"))
102 kt=6000;
103 else
104 {
105 printf("Unknown mode: %s\n", amode);
106 EXIT(1);
107 }
108 if (ret)
109 {
110 if ((akeysz != 128) && (akeysz != 192) && (akeysz != 256))
111 {
112 printf("Invalid key size: %d\n", akeysz);
113 ret = 0;
114 }
115 else
116 {
117 kt += akeysz;
118 switch (kt)
119 {
120 case 1128: /* CBC 128 */
121 cipher = EVP_aes_128_cbc();
122 break;
123 case 1192: /* CBC 192 */
124 cipher = EVP_aes_192_cbc();
125 break;
126 case 1256: /* CBC 256 */
127 cipher = EVP_aes_256_cbc();
128 break;
129 case 2128: /* ECB 128 */
130 cipher = EVP_aes_128_ecb();
131 break;
132 case 2192: /* ECB 192 */
133 cipher = EVP_aes_192_ecb();
134 break;
135 case 2256: /* ECB 256 */
136 cipher = EVP_aes_256_ecb();
137 break;
138 case 3128: /* CFB 128 */
139 cipher = EVP_aes_128_cfb();
140 break;
141 case 3192: /* CFB 192 */
142 cipher = EVP_aes_192_cfb();
143 break;
144 case 3256: /* CFB 256 */
145 cipher = EVP_aes_256_cfb();
146 break;
147 case 4128: /* OFB 128 */
148 cipher = EVP_aes_128_ofb();
149 break;
150 case 4192: /* OFB 192 */
151 cipher = EVP_aes_192_ofb();
152 break;
153 case 4256: /* OFB 256 */
154 cipher = EVP_aes_256_ofb();
155 break;
156 case 5128:
157 cipher=EVP_aes_128_cfb1();
158 break;
159 case 5192:
160 cipher=EVP_aes_192_cfb1();
161 break;
162 case 5256:
163 cipher=EVP_aes_256_cfb1();
164 break;
165 case 6128:
166 cipher=EVP_aes_128_cfb8();
167 break;
168 case 6192:
169 cipher=EVP_aes_192_cfb8();
170 break;
171 case 6256:
172 cipher=EVP_aes_256_cfb8();
173 break;
174 default:
175 printf("Didn't handle mode %d\n",kt);
176 EXIT(1);
177 }
178 if (dir)
179 { /* encrypt */
180 if(!EVP_CipherInit(ctx, cipher, aKey, iVec, AES_ENCRYPT))
181 {
182 ERR_print_errors_fp(stderr);
183 EXIT(1);
184 }
185
186 EVP_Cipher(ctx, ciphertext, (unsigned char*)plaintext, len);
187 }
188 else
189 { /* decrypt */
190 if(!EVP_CipherInit(ctx, cipher, aKey, iVec, AES_DECRYPT))
191 {
192 ERR_print_errors_fp(stderr);
193 EXIT(1);
194 }
195 EVP_Cipher(ctx, (unsigned char*)plaintext, ciphertext, len);
196 }
197 }
198 }
199 return ret;
200 }
201
202/*-----------------------------------------------*/
203
204int hex2bin(char *in, int len, unsigned char *out)
205{
206 int n1, n2;
207 unsigned char ch;
208
209 for (n1 = 0, n2 = 0; n1 < len; )
210 { /* first byte */
211 if ((in[n1] >= '0') && (in[n1] <= '9'))
212 ch = in[n1++] - '0';
213 else if ((in[n1] >= 'A') && (in[n1] <= 'F'))
214 ch = in[n1++] - 'A' + 10;
215 else if ((in[n1] >= 'a') && (in[n1] <= 'f'))
216 ch = in[n1++] - 'a' + 10;
217 else
218 return -1;
219 if(len == 1)
220 {
221 out[n2++]=ch;
222 break;
223 }
224 out[n2] = ch << 4;
225 /* second byte */
226 if ((in[n1] >= '0') && (in[n1] <= '9'))
227 ch = in[n1++] - '0';
228 else if ((in[n1] >= 'A') && (in[n1] <= 'F'))
229 ch = in[n1++] - 'A' + 10;
230 else if ((in[n1] >= 'a') && (in[n1] <= 'f'))
231 ch = in[n1++] - 'a' + 10;
232 else
233 return -1;
234 out[n2++] |= ch;
235 }
236 return n2;
237}
238
239/*-----------------------------------------------*/
240
241int bin2hex(unsigned char *in, int len, char *out)
242{
243 int n1, n2;
244 unsigned char ch;
245
246 for (n1 = 0, n2 = 0; n1 < len; ++n1)
247 {
248 /* first nibble */
249 ch = in[n1] >> 4;
250 if (ch <= 0x09)
251 out[n2++] = ch + '0';
252 else
253 out[n2++] = ch - 10 + 'a';
254 /* second nibble */
255 ch = in[n1] & 0x0f;
256 if (ch <= 0x09)
257 out[n2++] = ch + '0';
258 else
259 out[n2++] = ch - 10 + 'a';
260 }
261 return n2;
262}
263
264/* NB: this return the number of _bits_ read */
265int bint2bin(const char *in, int len, unsigned char *out)
266 {
267 int n;
268
269 memset(out,0,len);
270 for(n=0 ; n < len ; ++n)
271 if(in[n] == '1')
272 out[n/8]|=(0x80 >> (n%8));
273 return len;
274 }
275
276int bin2bint(const unsigned char *in,int len,char *out)
277 {
278 int n;
279
280 for(n=0 ; n < len ; ++n)
281 out[n]=(in[n/8]&(0x80 >> (n%8))) ? '1' : '0';
282 return n;
283 }
284
285/*-----------------------------------------------*/
286
287void PrintValue(char *tag, unsigned char *val, int len)
288{
289#if VERBOSE
290 char obuf[2048];
291 int olen;
292 olen = bin2hex(val, len, obuf);
293 printf("%s = %.*s\n", tag, olen, obuf);
294#endif
295}
296
297void OutputValue(char *tag, unsigned char *val, int len, FILE *rfp,int bitmode)
298 {
299 char obuf[2048];
300 int olen;
301
302 if(bitmode)
303 olen=bin2bint(val,len,obuf);
304 else
305 olen=bin2hex(val,len,obuf);
306
307 fprintf(rfp, "%s = %.*s\n", tag, olen, obuf);
308#if VERBOSE
309 printf("%s = %.*s\n", tag, olen, obuf);
310#endif
311 }
312
313/*-----------------------------------------------*/
314char *t_tag[2] = {"PLAINTEXT", "CIPHERTEXT"};
315char *t_mode[6] = {"CBC","ECB","OFB","CFB1","CFB8","CFB128"};
316enum Mode {CBC, ECB, OFB, CFB1, CFB8, CFB128};
317enum XCrypt {XDECRYPT, XENCRYPT};
318
319/*=============================*/
320/* Monte Carlo Tests */
321/*-----------------------------*/
322
323/*#define gb(a,b) (((a)[(b)/8] >> ((b)%8))&1)*/
324/*#define sb(a,b,v) ((a)[(b)/8]=((a)[(b)/8]&~(1 << ((b)%8)))|(!!(v) << ((b)%8)))*/
325
326#define gb(a,b) (((a)[(b)/8] >> (7-(b)%8))&1)
327#define sb(a,b,v) ((a)[(b)/8]=((a)[(b)/8]&~(1 << (7-(b)%8)))|(!!(v) << (7-(b)%8)))
328
329int do_mct(char *amode,
330 int akeysz, unsigned char *aKey,unsigned char *iVec,
331 int dir, unsigned char *text, int len,
332 FILE *rfp)
333 {
334 int ret = 0;
335 unsigned char key[101][32];
336 unsigned char iv[101][AES_BLOCK_SIZE];
337 unsigned char ptext[1001][32];
338 unsigned char ctext[1001][32];
339 unsigned char ciphertext[64+4];
340 int i, j, n, n1, n2;
341 int imode = 0, nkeysz = akeysz/8;
342 EVP_CIPHER_CTX ctx;
343
344 if (len > 32)
345 {
346 printf("\n>>>> Length exceeds 32 for %s %d <<<<\n\n",
347 amode, akeysz);
348 return -1;
349 }
350 for (imode = 0; imode < 6; ++imode)
351 if (strcmp(amode, t_mode[imode]) == 0)
352 break;
353 if (imode == 6)
354 {
355 printf("Unrecognized mode: %s\n", amode);
356 return -1;
357 }
358
359 memcpy(key[0], aKey, nkeysz);
360 if (iVec)
361 memcpy(iv[0], iVec, AES_BLOCK_SIZE);
362 if (dir == XENCRYPT)
363 memcpy(ptext[0], text, len);
364 else
365 memcpy(ctext[0], text, len);
366 for (i = 0; i < 100; ++i)
367 {
368 /* printf("Iteration %d\n", i); */
369 if (i > 0)
370 {
371 fprintf(rfp,"COUNT = %d\n",i);
372 OutputValue("KEY",key[i],nkeysz,rfp,0);
373 if (imode != ECB) /* ECB */
374 OutputValue("IV",iv[i],AES_BLOCK_SIZE,rfp,0);
375 /* Output Ciphertext | Plaintext */
376 OutputValue(t_tag[dir^1],dir ? ptext[0] : ctext[0],len,rfp,
377 imode == CFB1);
378 }
379 for (j = 0; j < 1000; ++j)
380 {
381 switch (imode)
382 {
383 case ECB:
384 if (j == 0)
385 { /* set up encryption */
386 ret = AESTest(&ctx, amode, akeysz, key[i], NULL,
387 dir, /* 0 = decrypt, 1 = encrypt */
388 ptext[j], ctext[j], len);
389 if (dir == XENCRYPT)
390 memcpy(ptext[j+1], ctext[j], len);
391 else
392 memcpy(ctext[j+1], ptext[j], len);
393 }
394 else
395 {
396 if (dir == XENCRYPT)
397 {
398 EVP_Cipher(&ctx, ctext[j], ptext[j], len);
399 memcpy(ptext[j+1], ctext[j], len);
400 }
401 else
402 {
403 EVP_Cipher(&ctx, ptext[j], ctext[j], len);
404 memcpy(ctext[j+1], ptext[j], len);
405 }
406 }
407 break;
408
409 case CBC:
410 case OFB:
411 case CFB128:
412 if (j == 0)
413 {
414 ret = AESTest(&ctx, amode, akeysz, key[i], iv[i],
415 dir, /* 0 = decrypt, 1 = encrypt */
416 ptext[j], ctext[j], len);
417 if (dir == XENCRYPT)
418 memcpy(ptext[j+1], iv[i], len);
419 else
420 memcpy(ctext[j+1], iv[i], len);
421 }
422 else
423 {
424 if (dir == XENCRYPT)
425 {
426 EVP_Cipher(&ctx, ctext[j], ptext[j], len);
427 memcpy(ptext[j+1], ctext[j-1], len);
428 }
429 else
430 {
431 EVP_Cipher(&ctx, ptext[j], ctext[j], len);
432 memcpy(ctext[j+1], ptext[j-1], len);
433 }
434 }
435 break;
436
437 case CFB8:
438 if (j == 0)
439 {
440 ret = AESTest(&ctx, amode, akeysz, key[i], iv[i],
441 dir, /* 0 = decrypt, 1 = encrypt */
442 ptext[j], ctext[j], len);
443 }
444 else
445 {
446 if (dir == XENCRYPT)
447 EVP_Cipher(&ctx, ctext[j], ptext[j], len);
448 else
449 EVP_Cipher(&ctx, ptext[j], ctext[j], len);
450 }
451 if (dir == XENCRYPT)
452 {
453 if (j < 16)
454 memcpy(ptext[j+1], &iv[i][j], len);
455 else
456 memcpy(ptext[j+1], ctext[j-16], len);
457 }
458 else
459 {
460 if (j < 16)
461 memcpy(ctext[j+1], &iv[i][j], len);
462 else
463 memcpy(ctext[j+1], ptext[j-16], len);
464 }
465 break;
466
467 case CFB1:
468 if(j == 0)
469 {
470 /* compensate for wrong endianness of input file */
471 if(i == 0)
472 ptext[0][0]<<=7;
473 ret=AESTest(&ctx,amode,akeysz,key[i],iv[i],dir,
474 ptext[j], ctext[j], len);
475 }
476 else
477 {
478 if (dir == XENCRYPT)
479 EVP_Cipher(&ctx, ctext[j], ptext[j], len);
480 else
481 EVP_Cipher(&ctx, ptext[j], ctext[j], len);
482
483 }
484 if(dir == XENCRYPT)
485 {
486 if(j < 128)
487 sb(ptext[j+1],0,gb(iv[i],j));
488 else
489 sb(ptext[j+1],0,gb(ctext[j-128],0));
490 }
491 else
492 {
493 if(j < 128)
494 sb(ctext[j+1],0,gb(iv[i],j));
495 else
496 sb(ctext[j+1],0,gb(ptext[j-128],0));
497 }
498 break;
499 }
500 }
501 --j; /* reset to last of range */
502 /* Output Ciphertext | Plaintext */
503 OutputValue(t_tag[dir],dir ? ctext[j] : ptext[j],len,rfp,
504 imode == CFB1);
505 fprintf(rfp, "\n"); /* add separator */
506
507 /* Compute next KEY */
508 if (dir == XENCRYPT)
509 {
510 if (imode == CFB8)
511 { /* ct = CT[j-15] || CT[j-14] || ... || CT[j] */
512 for (n1 = 0, n2 = nkeysz-1; n1 < nkeysz; ++n1, --n2)
513 ciphertext[n1] = ctext[j-n2][0];
514 }
515 else if(imode == CFB1)
516 {
517 for(n1=0,n2=akeysz-1 ; n1 < akeysz ; ++n1,--n2)
518 sb(ciphertext,n1,gb(ctext[j-n2],0));
519 }
520 else
521 switch (akeysz)
522 {
523 case 128:
524 memcpy(ciphertext, ctext[j], 16);
525 break;
526 case 192:
527 memcpy(ciphertext, ctext[j-1]+8, 8);
528 memcpy(ciphertext+8, ctext[j], 16);
529 break;
530 case 256:
531 memcpy(ciphertext, ctext[j-1], 16);
532 memcpy(ciphertext+16, ctext[j], 16);
533 break;
534 }
535 }
536 else
537 {
538 if (imode == CFB8)
539 { /* ct = CT[j-15] || CT[j-14] || ... || CT[j] */
540 for (n1 = 0, n2 = nkeysz-1; n1 < nkeysz; ++n1, --n2)
541 ciphertext[n1] = ptext[j-n2][0];
542 }
543 else if(imode == CFB1)
544 {
545 for(n1=0,n2=akeysz-1 ; n1 < akeysz ; ++n1,--n2)
546 sb(ciphertext,n1,gb(ptext[j-n2],0));
547 }
548 else
549 switch (akeysz)
550 {
551 case 128:
552 memcpy(ciphertext, ptext[j], 16);
553 break;
554 case 192:
555 memcpy(ciphertext, ptext[j-1]+8, 8);
556 memcpy(ciphertext+8, ptext[j], 16);
557 break;
558 case 256:
559 memcpy(ciphertext, ptext[j-1], 16);
560 memcpy(ciphertext+16, ptext[j], 16);
561 break;
562 }
563 }
564 /* Compute next key: Key[i+1] = Key[i] xor ct */
565 for (n = 0; n < nkeysz; ++n)
566 key[i+1][n] = key[i][n] ^ ciphertext[n];
567
568 /* Compute next IV and text */
569 if (dir == XENCRYPT)
570 {
571 switch (imode)
572 {
573 case ECB:
574 memcpy(ptext[0], ctext[j], AES_BLOCK_SIZE);
575 break;
576 case CBC:
577 case OFB:
578 case CFB128:
579 memcpy(iv[i+1], ctext[j], AES_BLOCK_SIZE);
580 memcpy(ptext[0], ctext[j-1], AES_BLOCK_SIZE);
581 break;
582 case CFB8:
583 /* IV[i+1] = ct */
584 for (n1 = 0, n2 = 15; n1 < 16; ++n1, --n2)
585 iv[i+1][n1] = ctext[j-n2][0];
586 ptext[0][0] = ctext[j-16][0];
587 break;
588 case CFB1:
589 for(n1=0,n2=127 ; n1 < 128 ; ++n1,--n2)
590 sb(iv[i+1],n1,gb(ctext[j-n2],0));
591 ptext[0][0]=ctext[j-128][0]&0x80;
592 break;
593 }
594 }
595 else
596 {
597 switch (imode)
598 {
599 case ECB:
600 memcpy(ctext[0], ptext[j], AES_BLOCK_SIZE);
601 break;
602 case CBC:
603 case OFB:
604 case CFB128:
605 memcpy(iv[i+1], ptext[j], AES_BLOCK_SIZE);
606 memcpy(ctext[0], ptext[j-1], AES_BLOCK_SIZE);
607 break;
608 case CFB8:
609 for (n1 = 0, n2 = 15; n1 < 16; ++n1, --n2)
610 iv[i+1][n1] = ptext[j-n2][0];
611 ctext[0][0] = ptext[j-16][0];
612 break;
613 case CFB1:
614 for(n1=0,n2=127 ; n1 < 128 ; ++n1,--n2)
615 sb(iv[i+1],n1,gb(ptext[j-n2],0));
616 ctext[0][0]=ptext[j-128][0]&0x80;
617 break;
618 }
619 }
620 }
621
622 return ret;
623 }
624
625/*================================================*/
626/*----------------------------
627 # Config info for v-one
628 # AESVS MMT test data for ECB
629 # State : Encrypt and Decrypt
630 # Key Length : 256
631 # Fri Aug 30 04:07:22 PM
632 ----------------------------*/
633
634int proc_file(char *rqfile)
635 {
636 char afn[256], rfn[256];
637 FILE *afp = NULL, *rfp = NULL;
638 char ibuf[2048];
639 int ilen, len, ret = 0;
640 char algo[8] = "";
641 char amode[8] = "";
642 char atest[8] = "";
643 int akeysz = 0;
644 unsigned char iVec[20], aKey[40];
645 int dir = -1, err = 0, step = 0;
646 unsigned char plaintext[2048];
647 unsigned char ciphertext[2048];
648 char *rp;
649 EVP_CIPHER_CTX ctx;
650
651 if (!rqfile || !(*rqfile))
652 {
653 printf("No req file\n");
654 return -1;
655 }
656 strcpy(afn, rqfile);
657
658 if ((afp = fopen(afn, "r")) == NULL)
659 {
660 printf("Cannot open file: %s, %s\n",
661 afn, strerror(errno));
662 return -1;
663 }
664 strcpy(rfn,afn);
665 rp=strstr(rfn,"req/");
666 assert(rp);
667 memcpy(rp,"rsp",3);
668 rp = strstr(rfn, ".req");
669 memcpy(rp, ".rsp", 4);
670 if ((rfp = fopen(rfn, "w")) == NULL)
671 {
672 printf("Cannot open file: %s, %s\n",
673 rfn, strerror(errno));
674 fclose(afp);
675 afp = NULL;
676 return -1;
677 }
678 while (!err && (fgets(ibuf, sizeof(ibuf), afp)) != NULL)
679 {
680 ilen = strlen(ibuf);
681 /* printf("step=%d ibuf=%s",step,ibuf); */
682 switch (step)
683 {
684 case 0: /* read preamble */
685 if (ibuf[0] == '\n')
686 { /* end of preamble */
687 if ((*algo == '\0') ||
688 (*amode == '\0') ||
689 (akeysz == 0))
690 {
691 printf("Missing Algorithm, Mode or KeySize (%s/%s/%d)\n",
692 algo,amode,akeysz);
693 err = 1;
694 }
695 else
696 {
697 fputs(ibuf, rfp);
698 ++ step;
699 }
700 }
701 else if (ibuf[0] != '#')
702 {
703 printf("Invalid preamble item: %s\n", ibuf);
704 err = 1;
705 }
706 else
707 { /* process preamble */
708 char *xp, *pp = ibuf+2;
709 int n;
710 if (akeysz)
711 { /* insert current time & date */
712 time_t rtim = time(0);
713 fprintf(rfp, "# %s", ctime(&rtim));
714 }
715 else
716 {
717 fputs(ibuf, rfp);
718 if (strncmp(pp, "AESVS ", 6) == 0)
719 {
720 strcpy(algo, "AES");
721 /* get test type */
722 pp += 6;
723 xp = strchr(pp, ' ');
724 n = xp-pp;
725 strncpy(atest, pp, n);
726 atest[n] = '\0';
727 /* get mode */
728 xp = strrchr(pp, ' '); /* get mode" */
729 n = strlen(xp+1)-1;
730 strncpy(amode, xp+1, n);
731 amode[n] = '\0';
732 /* amode[3] = '\0'; */
733 printf("Test = %s, Mode = %s\n", atest, amode);
734 }
735 else if (strncasecmp(pp, "Key Length : ", 13) == 0)
736 {
737 akeysz = atoi(pp+13);
738 printf("Key size = %d\n", akeysz);
739 }
740 }
741 }
742 break;
743
744 case 1: /* [ENCRYPT] | [DECRYPT] */
745 if (ibuf[0] == '[')
746 {
747 fputs(ibuf, rfp);
748 ++step;
749 if (strncasecmp(ibuf, "[ENCRYPT]", 9) == 0)
750 dir = 1;
751 else if (strncasecmp(ibuf, "[DECRYPT]", 9) == 0)
752 dir = 0;
753 else
754 {
755 printf("Invalid keyword: %s\n", ibuf);
756 err = 1;
757 }
758 break;
759 }
760 else if (dir == -1)
761 {
762 err = 1;
763 printf("Missing ENCRYPT/DECRYPT keyword\n");
764 break;
765 }
766 else
767 step = 2;
768
769 case 2: /* KEY = xxxx */
770 fputs(ibuf, rfp);
771 if(*ibuf == '\n')
772 break;
773 if(!strncasecmp(ibuf,"COUNT = ",8))
774 break;
775
776 if (strncasecmp(ibuf, "KEY = ", 6) != 0)
777 {
778 printf("Missing KEY\n");
779 err = 1;
780 }
781 else
782 {
783 len = hex2bin((char*)ibuf+6, strlen(ibuf+6)-1, aKey);
784 if (len < 0)
785 {
786 printf("Invalid KEY\n");
787 err =1;
788 break;
789 }
790 PrintValue("KEY", aKey, len);
791 if (strcmp(amode, "ECB") == 0)
792 {
793 memset(iVec, 0, sizeof(iVec));
794 step = (dir)? 4: 5; /* no ivec for ECB */
795 }
796 else
797 ++step;
798 }
799 break;
800
801 case 3: /* IV = xxxx */
802 fputs(ibuf, rfp);
803 if (strncasecmp(ibuf, "IV = ", 5) != 0)
804 {
805 printf("Missing IV\n");
806 err = 1;
807 }
808 else
809 {
810 len = hex2bin((char*)ibuf+5, strlen(ibuf+5)-1, iVec);
811 if (len < 0)
812 {
813 printf("Invalid IV\n");
814 err =1;
815 break;
816 }
817 PrintValue("IV", iVec, len);
818 step = (dir)? 4: 5;
819 }
820 break;
821
822 case 4: /* PLAINTEXT = xxxx */
823 fputs(ibuf, rfp);
824 if (strncasecmp(ibuf, "PLAINTEXT = ", 12) != 0)
825 {
826 printf("Missing PLAINTEXT\n");
827 err = 1;
828 }
829 else
830 {
831 int nn = strlen(ibuf+12);
832 if(!strcmp(amode,"CFB1"))
833 len=bint2bin(ibuf+12,nn-1,plaintext);
834 else
835 len=hex2bin(ibuf+12, nn-1,plaintext);
836 if (len < 0)
837 {
838 printf("Invalid PLAINTEXT: %s", ibuf+12);
839 err =1;
840 break;
841 }
842 if (len >= sizeof(plaintext))
843 {
844 printf("Buffer overflow\n");
845 }
846 PrintValue("PLAINTEXT", (unsigned char*)plaintext, len);
847 if (strcmp(atest, "MCT") == 0) /* Monte Carlo Test */
848 {
849 if(do_mct(amode, akeysz, aKey, iVec,
850 dir, (unsigned char*)plaintext, len,
851 rfp) < 0)
852 EXIT(1);
853 }
854 else
855 {
856 ret = AESTest(&ctx, amode, akeysz, aKey, iVec,
857 dir, /* 0 = decrypt, 1 = encrypt */
858 plaintext, ciphertext, len);
859 OutputValue("CIPHERTEXT",ciphertext,len,rfp,
860 !strcmp(amode,"CFB1"));
861 }
862 step = 6;
863 }
864 break;
865
866 case 5: /* CIPHERTEXT = xxxx */
867 fputs(ibuf, rfp);
868 if (strncasecmp(ibuf, "CIPHERTEXT = ", 13) != 0)
869 {
870 printf("Missing KEY\n");
871 err = 1;
872 }
873 else
874 {
875 if(!strcmp(amode,"CFB1"))
876 len=bint2bin(ibuf+13,strlen(ibuf+13)-1,ciphertext);
877 else
878 len = hex2bin(ibuf+13,strlen(ibuf+13)-1,ciphertext);
879 if (len < 0)
880 {
881 printf("Invalid CIPHERTEXT\n");
882 err =1;
883 break;
884 }
885
886 PrintValue("CIPHERTEXT", ciphertext, len);
887 if (strcmp(atest, "MCT") == 0) /* Monte Carlo Test */
888 {
889 do_mct(amode, akeysz, aKey, iVec,
890 dir, ciphertext, len, rfp);
891 }
892 else
893 {
894 ret = AESTest(&ctx, amode, akeysz, aKey, iVec,
895 dir, /* 0 = decrypt, 1 = encrypt */
896 plaintext, ciphertext, len);
897 OutputValue("PLAINTEXT",(unsigned char *)plaintext,len,rfp,
898 !strcmp(amode,"CFB1"));
899 }
900 step = 6;
901 }
902 break;
903
904 case 6:
905 if (ibuf[0] != '\n')
906 {
907 err = 1;
908 printf("Missing terminator\n");
909 }
910 else if (strcmp(atest, "MCT") != 0)
911 { /* MCT already added terminating nl */
912 fputs(ibuf, rfp);
913 }
914 step = 1;
915 break;
916 }
917 }
918 if (rfp)
919 fclose(rfp);
920 if (afp)
921 fclose(afp);
922 return err;
923 }
924
925/*--------------------------------------------------
926 Processes either a single file or
927 a set of files whose names are passed in a file.
928 A single file is specified as:
929 aes_test -f xxx.req
930 A set of files is specified as:
931 aes_test -d xxxxx.xxx
932 The default is: -d req.txt
933--------------------------------------------------*/
934int main(int argc, char **argv)
935 {
936 char *rqlist = "req.txt";
937 FILE *fp = NULL;
938 char fn[250] = "", rfn[256] = "";
939 int f_opt = 0, d_opt = 1;
940
941#ifdef OPENSSL_FIPS
942 if(!FIPS_mode_set(1,argv[0]))
943 {
944 ERR_print_errors(BIO_new_fp(stderr,BIO_NOCLOSE));
945 EXIT(1);
946 }
947#endif
948 ERR_load_crypto_strings();
949 if (argc > 1)
950 {
951 if (strcasecmp(argv[1], "-d") == 0)
952 {
953 d_opt = 1;
954 }
955 else if (strcasecmp(argv[1], "-f") == 0)
956 {
957 f_opt = 1;
958 d_opt = 0;
959 }
960 else
961 {
962 printf("Invalid parameter: %s\n", argv[1]);
963 return 0;
964 }
965 if (argc < 3)
966 {
967 printf("Missing parameter\n");
968 return 0;
969 }
970 if (d_opt)
971 rqlist = argv[2];
972 else
973 strcpy(fn, argv[2]);
974 }
975 if (d_opt)
976 { /* list of files (directory) */
977 if (!(fp = fopen(rqlist, "r")))
978 {
979 printf("Cannot open req list file\n");
980 return -1;
981 }
982 while (fgets(fn, sizeof(fn), fp))
983 {
984 strtok(fn, "\r\n");
985 strcpy(rfn, fn);
986 printf("Processing: %s\n", rfn);
987 if (proc_file(rfn))
988 {
989 printf(">>> Processing failed for: %s <<<\n", rfn);
990 EXIT(1);
991 }
992 }
993 fclose(fp);
994 }
995 else /* single file */
996 {
997 printf("Processing: %s\n", fn);
998 if (proc_file(fn))
999 {
1000 printf(">>> Processing failed for: %s <<<\n", fn);
1001 }
1002 }
1003 EXIT(0);
1004 return 0;
1005 }
diff --git a/src/lib/libssl/src/fips/des/Makefile b/src/lib/libssl/src/fips/des/Makefile
new file mode 100644
index 0000000000..87a5329d53
--- /dev/null
+++ b/src/lib/libssl/src/fips/des/Makefile
@@ -0,0 +1,155 @@
1#
2# SSLeay/fips/des/Makefile
3#
4
5DIR= des
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18FIPS_DES_ENC=fips_des_enc.o
19
20CFLAGS= $(INCLUDES) $(CFLAG)
21
22GENERAL=Makefile
23TEST= fips_desmovs.c
24APPS=
25
26LIB=$(TOP)/libcrypto.a
27LIBSRC=fips_des_enc.c asm/fips-dx86-elf.s fips_des_selftest.c fips_set_key.c
28LIBOBJ=$(FIPS_DES_ENC) fips_des_selftest.o fips_set_key.o
29
30SRC= $(LIBSRC)
31
32EXHEADER=
33HEADER= $(EXHEADER) fips_des_locl.h
34
35ALL= $(GENERAL) $(SRC) $(HEADER)
36
37top:
38 (cd $(TOP); $(MAKE) DIRS=fips FDIRS=$(DIR) sub_all)
39
40all: check lib
41
42check:
43 TOP=`pwd`/$(TOP) ../fips_check_sha1 fingerprint.sha1 $(SRC) $(HEADER)
44
45lib: $(LIBOBJ)
46 $(AR) $(LIB) $(LIBOBJ)
47 $(RANLIB) $(LIB) || echo Never mind.
48 @sleep 2; touch lib
49
50files:
51 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
52
53links:
54 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/include/openssl $(EXHEADER)
55 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/test $(TEST)
56 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/apps $(APPS)
57
58install:
59 @headerlist="$(EXHEADER)"; for i in $$headerlist; \
60 do \
61 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
62 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
63 done
64
65tags:
66 ctags $(SRC)
67
68tests:
69
70top_fips_desmovs:
71 (cd $(TOP); $(MAKE) DIRS=fips FDIRS=$(DIR) TARGET=fips_desmovs sub_target)
72
73fips_desmovs: fips_desmovs.o $(TOP)/libcrypto.a
74 $(CC) $(CFLAGS) -o fips_desmovs fips_desmovs.o $(PEX_LIBS) $(TOP)/libcrypto.a $(EX_LIBS)
75 TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a fips_desmovs
76
77fips_test: top_fips_desmovs
78 find ../testvectors/des/req -name '*.req' > testlist
79 -rm -rf ../testvectors/des/rsp
80 mkdir ../testvectors/des/rsp
81 ./fips_desmovs -d testlist
82 find ../testvectors/des2/req -name '*.req' > testlist
83 -rm -rf ../testvectors/des2/rsp
84 mkdir ../testvectors/des2/rsp
85 ./fips_desmovs -d testlist
86 find ../testvectors/des3/req -name '*.req' > testlist
87 -rm -rf ../testvectors/des3/rsp
88 mkdir ../testvectors/des3/rsp
89 ./fips_desmovs -d testlist
90
91lint:
92 lint -DLINT $(INCLUDES) $(SRC)>fluff
93
94depend:
95 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) \
96 $(SRC) $(TEST)
97dclean:
98 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
99 mv -f Makefile.new $(MAKEFILE)
100
101clean:
102 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
103# DO NOT DELETE THIS LINE -- make depend depends on it.
104
105fips_des_enc.o: ../../e_os.h ../../include/openssl/crypto.h
106fips_des_enc.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
107fips_des_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/fips.h
108fips_des_enc.o: ../../include/openssl/opensslconf.h
109fips_des_enc.o: ../../include/openssl/opensslv.h
110fips_des_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
111fips_des_enc.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
112fips_des_enc.o: ../../include/openssl/ui_compat.h fips_des_enc.c
113fips_des_enc.o: fips_des_locl.h
114fips_des_selftest.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
115fips_des_selftest.o: ../../include/openssl/des.h
116fips_des_selftest.o: ../../include/openssl/des_old.h
117fips_des_selftest.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
118fips_des_selftest.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
119fips_des_selftest.o: ../../include/openssl/opensslconf.h
120fips_des_selftest.o: ../../include/openssl/opensslv.h
121fips_des_selftest.o: ../../include/openssl/safestack.h
122fips_des_selftest.o: ../../include/openssl/stack.h
123fips_des_selftest.o: ../../include/openssl/symhacks.h
124fips_des_selftest.o: ../../include/openssl/ui.h
125fips_des_selftest.o: ../../include/openssl/ui_compat.h fips_des_selftest.c
126fips_desmovs.o: ../../e_os.h ../../include/openssl/aes.h
127fips_desmovs.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
128fips_desmovs.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
129fips_desmovs.o: ../../include/openssl/cast.h ../../include/openssl/crypto.h
130fips_desmovs.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
131fips_desmovs.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
132fips_desmovs.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
133fips_desmovs.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
134fips_desmovs.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
135fips_desmovs.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
136fips_desmovs.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
137fips_desmovs.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
138fips_desmovs.o: ../../include/openssl/opensslconf.h
139fips_desmovs.o: ../../include/openssl/opensslv.h
140fips_desmovs.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rc2.h
141fips_desmovs.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
142fips_desmovs.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
143fips_desmovs.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
144fips_desmovs.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
145fips_desmovs.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
146fips_desmovs.o: fips_desmovs.c
147fips_set_key.o: ../../e_os.h ../../include/openssl/crypto.h
148fips_set_key.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
149fips_set_key.o: ../../include/openssl/e_os2.h ../../include/openssl/fips.h
150fips_set_key.o: ../../include/openssl/opensslconf.h
151fips_set_key.o: ../../include/openssl/opensslv.h
152fips_set_key.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
153fips_set_key.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
154fips_set_key.o: ../../include/openssl/ui_compat.h fips_des_locl.h
155fips_set_key.o: fips_set_key.c
diff --git a/src/lib/libssl/src/fips/des/fips_des_selftest.c b/src/lib/libssl/src/fips/des/fips_des_selftest.c
new file mode 100644
index 0000000000..3e0778eb5e
--- /dev/null
+++ b/src/lib/libssl/src/fips/des/fips_des_selftest.c
@@ -0,0 +1,200 @@
1/* ====================================================================
2 * Copyright (c) 2003 The OpenSSL Project. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * 3. All advertising materials mentioning features or use of this
17 * software must display the following acknowledgment:
18 * "This product includes software developed by the OpenSSL Project
19 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
20 *
21 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
22 * endorse or promote products derived from this software without
23 * prior written permission. For written permission, please contact
24 * openssl-core@openssl.org.
25 *
26 * 5. Products derived from this software may not be called "OpenSSL"
27 * nor may "OpenSSL" appear in their names without prior written
28 * permission of the OpenSSL Project.
29 *
30 * 6. Redistributions of any form whatsoever must retain the following
31 * acknowledgment:
32 * "This product includes software developed by the OpenSSL Project
33 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
34 *
35 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
36 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
38 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
41 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
42 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
43 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
44 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
45 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
46 * OF THE POSSIBILITY OF SUCH DAMAGE.
47 *
48 */
49
50#include <string.h>
51#include <openssl/err.h>
52#include <openssl/fips.h>
53#include <openssl/des.h>
54#include <openssl/opensslconf.h>
55
56#ifdef OPENSSL_FIPS
57static struct
58 {
59 DES_cblock key;
60 unsigned char plaintext[8];
61 unsigned char ciphertext[8];
62 } tests[]=
63 {
64 {
65 { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },
66 { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },
67 { 0x8C,0xA6,0x4D,0xE9,0xC1,0xB1,0x23,0xA7 }
68 },
69 {
70 { 0xFE,0xDC,0xBA,0x98,0x76,0x54,0x32,0x10 },
71 { 0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF },
72 { 0xED,0x39,0xD9,0x50,0xFA,0x74,0xBC,0xC4 },
73 },
74 };
75
76static struct
77 {
78 DES_cblock key1;
79 DES_cblock key2;
80 unsigned char plaintext[8];
81 unsigned char ciphertext[8];
82 } tests2[]=
83 {
84 {
85 { 0x7c,0x4f,0x6e,0xf7,0xa2,0x04,0x16,0xec },
86 { 0x0b,0x6b,0x7c,0x9e,0x5e,0x19,0xa7,0xc4 },
87 { 0x06,0xa7,0xd8,0x79,0xaa,0xce,0x69,0xef },
88 { 0x4c,0x11,0x17,0x55,0xbf,0xc4,0x4e,0xfd }
89 },
90 {
91 { 0x5d,0x9e,0x01,0xd3,0x25,0xc7,0x3e,0x34 },
92 { 0x01,0x16,0x7c,0x85,0x23,0xdf,0xe0,0x68 },
93 { 0x9c,0x50,0x09,0x0f,0x5e,0x7d,0x69,0x7e },
94 { 0xd2,0x0b,0x18,0xdf,0xd9,0x0d,0x9e,0xff },
95 }
96 };
97
98static struct
99 {
100 DES_cblock key1;
101 DES_cblock key2;
102 DES_cblock key3;
103 unsigned char plaintext[8];
104 unsigned char ciphertext[8];
105 } tests3[]=
106 {
107 {
108 { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },
109 { 0xFE,0xDC,0xBA,0x98,0x76,0x54,0x32,0x10 },
110 { 0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0 },
111 { 0x8f,0x8f,0xbf,0x9b,0x5d,0x48,0xb4,0x1c},
112 { 0x59,0x8c,0xe5,0xd3,0x6c,0xa2,0xea,0x1b},
113 },
114 {
115 { 0xDC,0xBA,0x98,0x76,0x54,0x32,0x10,0xFE },
116 { 0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF },
117 { 0xED,0x39,0xD9,0x50,0xFA,0x74,0xBC,0xC4 },
118 { 0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF },
119 { 0x11,0x25,0xb0,0x35,0xbe,0xa0,0x82,0x86 },
120 },
121 };
122
123void FIPS_corrupt_des()
124 {
125 tests[0].plaintext[0]++;
126 }
127
128int FIPS_selftest_des()
129 {
130 int n;
131
132 /* Encrypt/decrypt with DES and compare to known answers */
133 for(n=0 ; n < 2 ; ++n)
134 {
135 DES_key_schedule key;
136 DES_cblock buf;
137
138 DES_set_key(&tests[n].key,&key);
139 DES_ecb_encrypt(&tests[n].plaintext,&buf,&key,1);
140 if(memcmp(buf,tests[n].ciphertext,sizeof buf))
141 {
142 FIPSerr(FIPS_F_FIPS_SELFTEST_DES,FIPS_R_SELFTEST_FAILED);
143 return 0;
144 }
145 DES_ecb_encrypt(&tests[n].ciphertext,&buf,&key,0);
146 if(memcmp(buf,tests[n].plaintext,sizeof buf))
147 {
148 FIPSerr(FIPS_F_FIPS_SELFTEST_DES,FIPS_R_SELFTEST_FAILED);
149 return 0;
150 }
151 }
152
153 /* Encrypt/decrypt with 2-key 3DES and compare to known answers */
154 for(n=0 ; n < 2 ; ++n)
155 {
156 DES_key_schedule key1, key2;
157 unsigned char buf[8];
158
159 DES_set_key(&tests2[n].key1,&key1);
160 DES_set_key(&tests2[n].key2,&key2);
161 DES_ecb2_encrypt(tests2[n].plaintext,buf,&key1,&key2,1);
162 if(memcmp(buf,tests2[n].ciphertext,sizeof buf))
163 {
164 FIPSerr(FIPS_F_FIPS_SELFTEST_DES,FIPS_R_SELFTEST_FAILED);
165 return 0;
166 }
167 DES_ecb2_encrypt(tests2[n].ciphertext,buf,&key1,&key2,0);
168 if(memcmp(buf,tests2[n].plaintext,sizeof buf))
169 {
170 FIPSerr(FIPS_F_FIPS_SELFTEST_DES,FIPS_R_SELFTEST_FAILED);
171 return 0;
172 }
173 }
174
175 /* Encrypt/decrypt with 3DES and compare to known answers */
176 for(n=0 ; n < 2 ; ++n)
177 {
178 DES_key_schedule key1, key2, key3;
179 unsigned char buf[8];
180
181 DES_set_key(&tests3[n].key1,&key1);
182 DES_set_key(&tests3[n].key2,&key2);
183 DES_set_key(&tests3[n].key3,&key3);
184 DES_ecb3_encrypt(tests3[n].plaintext,buf,&key1,&key2,&key3,1);
185 if(memcmp(buf,tests3[n].ciphertext,sizeof buf))
186 {
187 FIPSerr(FIPS_F_FIPS_SELFTEST_DES,FIPS_R_SELFTEST_FAILED);
188 return 0;
189 }
190 DES_ecb3_encrypt(tests3[n].ciphertext,buf,&key1,&key2,&key3,0);
191 if(memcmp(buf,tests3[n].plaintext,sizeof buf))
192 {
193 FIPSerr(FIPS_F_FIPS_SELFTEST_DES,FIPS_R_SELFTEST_FAILED);
194 return 0;
195 }
196 }
197
198 return 1;
199 }
200#endif
diff --git a/src/lib/libssl/src/fips/des/fips_desmovs.c b/src/lib/libssl/src/fips/des/fips_desmovs.c
new file mode 100644
index 0000000000..d1b60c1a40
--- /dev/null
+++ b/src/lib/libssl/src/fips/des/fips_desmovs.c
@@ -0,0 +1,833 @@
1/* ====================================================================
2 * Copyright (c) 2004 The OpenSSL Project. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * 3. All advertising materials mentioning features or use of this
17 * software must display the following acknowledgment:
18 * "This product includes software developed by the OpenSSL Project
19 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
20 *
21 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
22 * endorse or promote products derived from this software without
23 * prior written permission. For written permission, please contact
24 * openssl-core@openssl.org.
25 *
26 * 5. Products derived from this software may not be called "OpenSSL"
27 * nor may "OpenSSL" appear in their names without prior written
28 * permission of the OpenSSL Project.
29 *
30 * 6. Redistributions of any form whatsoever must retain the following
31 * acknowledgment:
32 * "This product includes software developed by the OpenSSL Project
33 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
34 *
35 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
36 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
38 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
41 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
42 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
43 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
44 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
45 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
46 * OF THE POSSIBILITY OF SUCH DAMAGE.
47 *
48 */
49/*---------------------------------------------
50 NIST DES Modes of Operation Validation System
51 Test Program
52
53 Based on the AES Validation Suite, which was:
54 Donated to OpenSSL by:
55 V-ONE Corporation
56 20250 Century Blvd, Suite 300
57 Germantown, MD 20874
58 U.S.A.
59 ----------------------------------------------*/
60
61#include <stdio.h>
62#include <stdlib.h>
63#include <string.h>
64#include <errno.h>
65#include <assert.h>
66
67#include <openssl/des.h>
68#include <openssl/evp.h>
69#include <openssl/fips.h>
70#include <openssl/err.h>
71#include "e_os.h"
72
73/*#define AES_BLOCK_SIZE 16*/
74
75#define VERBOSE 0
76
77/*-----------------------------------------------*/
78
79int DESTest(EVP_CIPHER_CTX *ctx,
80 char *amode, int akeysz, unsigned char *aKey,
81 unsigned char *iVec,
82 int dir, /* 0 = decrypt, 1 = encrypt */
83 unsigned char *out, unsigned char *in, int len)
84 {
85 const EVP_CIPHER *cipher = NULL;
86 int kt = 0;
87
88 if (ctx)
89 memset(ctx, 0, sizeof(EVP_CIPHER_CTX));
90
91 if (strcasecmp(amode, "CBC") == 0)
92 kt = 1000;
93 else if (strcasecmp(amode, "ECB") == 0)
94 kt = 2000;
95 else if (strcasecmp(amode, "CFB64") == 0)
96 kt = 3000;
97 else if (strncasecmp(amode, "OFB", 3) == 0)
98 kt = 4000;
99 else if(!strcasecmp(amode,"CFB1"))
100 kt=5000;
101 else if(!strcasecmp(amode,"CFB8"))
102 kt=6000;
103 else
104 {
105 printf("Unknown mode: %s\n", amode);
106 EXIT(1);
107 }
108 if (akeysz != 64 && akeysz != 192)
109 {
110 printf("Invalid key size: %d\n", akeysz);
111 EXIT(1);
112 }
113 else
114 {
115 kt += akeysz;
116 switch (kt)
117 {
118 case 1064:
119 cipher=EVP_des_cbc();
120 break;
121 case 1192:
122 cipher=EVP_des_ede3_cbc();
123 break;
124 case 2064:
125 cipher=EVP_des_ecb();
126 break;
127 case 2192:
128 cipher=EVP_des_ede3_ecb();
129 break;
130 case 3064:
131 cipher=EVP_des_cfb64();
132 break;
133 case 3192:
134 cipher=EVP_des_ede3_cfb64();
135 break;
136 case 4064:
137 cipher=EVP_des_ofb();
138 break;
139 case 4192:
140 cipher=EVP_des_ede3_ofb();
141 break;
142 case 5064:
143 cipher=EVP_des_cfb1();
144 break;
145 case 5192:
146 cipher=EVP_des_ede3_cfb1();
147 break;
148 case 6064:
149 cipher=EVP_des_cfb8();
150 break;
151 case 6192:
152 cipher=EVP_des_ede3_cfb8();
153 break;
154 default:
155 printf("Didn't handle mode %d\n",kt);
156 EXIT(1);
157 }
158 if(!EVP_CipherInit(ctx, cipher, aKey, iVec, dir))
159 {
160 ERR_print_errors_fp(stderr);
161 EXIT(1);
162 }
163 EVP_Cipher(ctx, out, in, len);
164 }
165 return 1;
166 }
167
168/*-----------------------------------------------*/
169
170int hex2bin(char *in, int len, unsigned char *out)
171 {
172 int n1, n2;
173 unsigned char ch;
174
175 for (n1 = 0, n2 = 0; n1 < len; )
176 { /* first byte */
177 if ((in[n1] >= '0') && (in[n1] <= '9'))
178 ch = in[n1++] - '0';
179 else if ((in[n1] >= 'A') && (in[n1] <= 'F'))
180 ch = in[n1++] - 'A' + 10;
181 else if ((in[n1] >= 'a') && (in[n1] <= 'f'))
182 ch = in[n1++] - 'a' + 10;
183 else
184 return -1;
185 if(len == 1)
186 {
187 out[n2++]=ch;
188 break;
189 }
190 out[n2] = ch << 4;
191 /* second byte */
192 if ((in[n1] >= '0') && (in[n1] <= '9'))
193 ch = in[n1++] - '0';
194 else if ((in[n1] >= 'A') && (in[n1] <= 'F'))
195 ch = in[n1++] - 'A' + 10;
196 else if ((in[n1] >= 'a') && (in[n1] <= 'f'))
197 ch = in[n1++] - 'a' + 10;
198 else
199 return -1;
200 out[n2++] |= ch;
201 }
202 return n2;
203 }
204
205/*-----------------------------------------------*/
206
207int bin2hex(unsigned char *in, int len, char *out)
208 {
209 int n1, n2;
210 unsigned char ch;
211
212 for (n1 = 0, n2 = 0; n1 < len; ++n1)
213 {
214 /* first nibble */
215 ch = in[n1] >> 4;
216 if (ch <= 0x09)
217 out[n2++] = ch + '0';
218 else
219 out[n2++] = ch - 10 + 'a';
220 /* second nibble */
221 ch = in[n1] & 0x0f;
222 if (ch <= 0x09)
223 out[n2++] = ch + '0';
224 else
225 out[n2++] = ch - 10 + 'a';
226 }
227 return n2;
228 }
229
230/* NB: this return the number of _bits_ read */
231int bint2bin(const char *in, int len, unsigned char *out)
232 {
233 int n;
234
235 memset(out,0,len);
236 for(n=0 ; n < len ; ++n)
237 if(in[n] == '1')
238 out[n/8]|=(0x80 >> (n%8));
239 return len;
240 }
241
242int bin2bint(const unsigned char *in,int len,char *out)
243 {
244 int n;
245
246 for(n=0 ; n < len ; ++n)
247 out[n]=(in[n/8]&(0x80 >> (n%8))) ? '1' : '0';
248 return n;
249 }
250
251/*-----------------------------------------------*/
252
253void PrintValue(char *tag, unsigned char *val, int len)
254 {
255#if VERBOSE
256 char obuf[2048];
257 int olen;
258 olen = bin2hex(val, len, obuf);
259 printf("%s = %.*s\n", tag, olen, obuf);
260#endif
261 }
262
263void DebugValue(char *tag, unsigned char *val, int len)
264 {
265 char obuf[2048];
266 int olen;
267 olen = bin2hex(val, len, obuf);
268 printf("%s = %.*s\n", tag, olen, obuf);
269 }
270
271void OutputValue(char *tag, unsigned char *val, int len, FILE *rfp,int bitmode)
272 {
273 char obuf[2048];
274 int olen;
275
276 if(bitmode)
277 olen=bin2bint(val,len,obuf);
278 else
279 olen=bin2hex(val,len,obuf);
280
281 fprintf(rfp, "%s = %.*s\n", tag, olen, obuf);
282#if VERBOSE
283 printf("%s = %.*s\n", tag, olen, obuf);
284#endif
285 }
286
287void shiftin(unsigned char *dst,unsigned char *src,int nbits)
288 {
289 int n;
290
291 /* move the bytes... */
292 memmove(dst,dst+nbits/8,3*8-nbits/8);
293 /* append new data */
294 memcpy(dst+3*8-nbits/8,src,(nbits+7)/8);
295 /* left shift the bits */
296 if(nbits%8)
297 for(n=0 ; n < 3*8 ; ++n)
298 dst[n]=(dst[n] << (nbits%8))|(dst[n+1] >> (8-nbits%8));
299 }
300
301/*-----------------------------------------------*/
302char *t_tag[2] = {"PLAINTEXT", "CIPHERTEXT"};
303char *t_mode[6] = {"CBC","ECB","OFB","CFB1","CFB8","CFB64"};
304enum Mode {CBC, ECB, OFB, CFB1, CFB8, CFB64};
305int Sizes[6]={64,64,64,1,8,64};
306
307void do_mct(char *amode,
308 int akeysz, int numkeys, unsigned char *akey,unsigned char *ivec,
309 int dir, unsigned char *text, int len,
310 FILE *rfp)
311 {
312 int i,imode;
313 unsigned char nk[4*8]; /* longest key+8 */
314 unsigned char text0[8];
315
316 for (imode=0 ; imode < 6 ; ++imode)
317 if(!strcmp(amode,t_mode[imode]))
318 break;
319 if (imode == 6)
320 {
321 printf("Unrecognized mode: %s\n", amode);
322 EXIT(1);
323 }
324
325 for(i=0 ; i < 400 ; ++i)
326 {
327 int j;
328 int n;
329 EVP_CIPHER_CTX ctx;
330 int kp=akeysz/64;
331 unsigned char old_iv[8];
332
333 fprintf(rfp,"\nCOUNT = %d\n",i);
334 if(kp == 1)
335 OutputValue("KEY",akey,8,rfp,0);
336 else
337 for(n=0 ; n < kp ; ++n)
338 {
339 fprintf(rfp,"KEY%d",n+1);
340 OutputValue("",akey+n*8,8,rfp,0);
341 }
342
343 if(imode != ECB)
344 OutputValue("IV",ivec,8,rfp,0);
345 OutputValue(t_tag[dir^1],text,len,rfp,imode == CFB1);
346
347 /* compensate for endianness */
348 if(imode == CFB1)
349 text[0]<<=7;
350
351 memcpy(text0,text,8);
352
353 for(j=0 ; j < 10000 ; ++j)
354 {
355 unsigned char old_text[8];
356
357 memcpy(old_text,text,8);
358 if(j == 0)
359 {
360 memcpy(old_iv,ivec,8);
361 DESTest(&ctx,amode,akeysz,akey,ivec,dir,text,text,len);
362 }
363 else
364 {
365 memcpy(old_iv,ctx.iv,8);
366 EVP_Cipher(&ctx,text,text,len);
367 }
368 if(j == 9999)
369 {
370 OutputValue(t_tag[dir],text,len,rfp,imode == CFB1);
371 /* memcpy(ivec,text,8); */
372 }
373 /* DebugValue("iv",ctx.iv,8); */
374 /* accumulate material for the next key */
375 shiftin(nk,text,Sizes[imode]);
376 /* DebugValue("nk",nk,24);*/
377 if((dir && (imode == CFB1 || imode == CFB8 || imode == CFB64
378 || imode == CBC)) || imode == OFB)
379 memcpy(text,old_iv,8);
380
381 if(!dir && (imode == CFB1 || imode == CFB8 || imode == CFB64))
382 {
383 /* the test specifies using the output of the raw DES operation
384 which we don't have, so reconstruct it... */
385 for(n=0 ; n < 8 ; ++n)
386 text[n]^=old_text[n];
387 }
388 }
389 for(n=0 ; n < 8 ; ++n)
390 akey[n]^=nk[16+n];
391 for(n=0 ; n < 8 ; ++n)
392 akey[8+n]^=nk[8+n];
393 for(n=0 ; n < 8 ; ++n)
394 akey[16+n]^=nk[n];
395 if(numkeys < 3)
396 memcpy(&akey[2*8],akey,8);
397 if(numkeys < 2)
398 memcpy(&akey[8],akey,8);
399 DES_set_odd_parity((DES_cblock *)akey);
400 DES_set_odd_parity((DES_cblock *)(akey+8));
401 DES_set_odd_parity((DES_cblock *)(akey+16));
402 memcpy(ivec,ctx.iv,8);
403
404 /* pointless exercise - the final text doesn't depend on the
405 initial text in OFB mode, so who cares what it is? (Who
406 designed these tests?) */
407 if(imode == OFB)
408 for(n=0 ; n < 8 ; ++n)
409 text[n]=text0[n]^old_iv[n];
410 }
411 }
412
413int proc_file(char *rqfile)
414 {
415 char afn[256], rfn[256];
416 FILE *afp = NULL, *rfp = NULL;
417 char ibuf[2048];
418 int ilen, len, ret = 0;
419 char amode[8] = "";
420 char atest[100] = "";
421 int akeysz=0;
422 unsigned char iVec[20], aKey[40];
423 int dir = -1, err = 0, step = 0;
424 unsigned char plaintext[2048];
425 unsigned char ciphertext[2048];
426 char *rp;
427 EVP_CIPHER_CTX ctx;
428 int numkeys=1;
429
430 if (!rqfile || !(*rqfile))
431 {
432 printf("No req file\n");
433 return -1;
434 }
435 strcpy(afn, rqfile);
436
437 if ((afp = fopen(afn, "r")) == NULL)
438 {
439 printf("Cannot open file: %s, %s\n",
440 afn, strerror(errno));
441 return -1;
442 }
443 strcpy(rfn,afn);
444 rp=strstr(rfn,"req/");
445 assert(rp);
446 memcpy(rp,"rsp",3);
447 rp = strstr(rfn, ".req");
448 memcpy(rp, ".rsp", 4);
449 if ((rfp = fopen(rfn, "w")) == NULL)
450 {
451 printf("Cannot open file: %s, %s\n",
452 rfn, strerror(errno));
453 fclose(afp);
454 afp = NULL;
455 return -1;
456 }
457 while (!err && (fgets(ibuf, sizeof(ibuf), afp)) != NULL)
458 {
459 ilen = strlen(ibuf);
460 /* printf("step=%d ibuf=%s",step,ibuf);*/
461 if(step == 3 && !strcmp(amode,"ECB"))
462 {
463 memset(iVec, 0, sizeof(iVec));
464 step = (dir)? 4: 5; /* no ivec for ECB */
465 }
466 switch (step)
467 {
468 case 0: /* read preamble */
469 if (ibuf[0] == '\n')
470 { /* end of preamble */
471 if (*amode == '\0')
472 {
473 printf("Missing Mode\n");
474 err = 1;
475 }
476 else
477 {
478 fputs(ibuf, rfp);
479 ++ step;
480 }
481 }
482 else if (ibuf[0] != '#')
483 {
484 printf("Invalid preamble item: %s\n", ibuf);
485 err = 1;
486 }
487 else
488 { /* process preamble */
489 char *xp, *pp = ibuf+2;
490 int n;
491 if(*amode)
492 { /* insert current time & date */
493 time_t rtim = time(0);
494 fprintf(rfp, "# %s", ctime(&rtim));
495 }
496 else
497 {
498 fputs(ibuf, rfp);
499 if(!strncmp(pp,"INVERSE ",8) || !strncmp(pp,"DES ",4)
500 || !strncmp(pp,"TDES ",5)
501 || !strncmp(pp,"PERMUTATION ",12)
502 || !strncmp(pp,"SUBSTITUTION ",13)
503 || !strncmp(pp,"VARIABLE ",9))
504 {
505 /* get test type */
506 if(!strncmp(pp,"DES ",4))
507 pp+=4;
508 else if(!strncmp(pp,"TDES ",5))
509 pp+=5;
510 xp = strchr(pp, ' ');
511 n = xp-pp;
512 strncpy(atest, pp, n);
513 atest[n] = '\0';
514 /* get mode */
515 xp = strrchr(pp, ' '); /* get mode" */
516 n = strlen(xp+1)-1;
517 strncpy(amode, xp+1, n);
518 amode[n] = '\0';
519 /* amode[3] = '\0'; */
520 printf("Test=%s, Mode=%s\n",atest,amode);
521 }
522 }
523 }
524 break;
525
526 case 1: /* [ENCRYPT] | [DECRYPT] */
527 if(ibuf[0] == '\n')
528 break;
529 if (ibuf[0] == '[')
530 {
531 fputs(ibuf, rfp);
532 ++step;
533 if (strncasecmp(ibuf, "[ENCRYPT]", 9) == 0)
534 dir = 1;
535 else if (strncasecmp(ibuf, "[DECRYPT]", 9) == 0)
536 dir = 0;
537 else
538 {
539 printf("Invalid keyword: %s\n", ibuf);
540 err = 1;
541 }
542 break;
543 }
544 else if (dir == -1)
545 {
546 err = 1;
547 printf("Missing ENCRYPT/DECRYPT keyword\n");
548 break;
549 }
550 else
551 step = 2;
552
553 case 2: /* KEY = xxxx */
554 if(*ibuf == '\n')
555 {
556 fputs(ibuf, rfp);
557 break;
558 }
559 if(!strncasecmp(ibuf,"COUNT = ",8))
560 {
561 fputs(ibuf, rfp);
562 break;
563 }
564 if(!strncasecmp(ibuf,"COUNT=",6))
565 {
566 fputs(ibuf, rfp);
567 break;
568 }
569 if(!strncasecmp(ibuf,"NumKeys = ",10))
570 {
571 numkeys=atoi(ibuf+10);
572 break;
573 }
574
575 fputs(ibuf, rfp);
576 if(!strncasecmp(ibuf,"KEY = ",6))
577 {
578 akeysz=64;
579 len = hex2bin((char*)ibuf+6, strlen(ibuf+6)-1, aKey);
580 if (len < 0)
581 {
582 printf("Invalid KEY\n");
583 err=1;
584 break;
585 }
586 PrintValue("KEY", aKey, len);
587 ++step;
588 }
589 else if(!strncasecmp(ibuf,"KEYs = ",7))
590 {
591 akeysz=64*3;
592 len=hex2bin(ibuf+7,strlen(ibuf+7)-1,aKey);
593 if(len != 8)
594 {
595 printf("Invalid KEY\n");
596 err=1;
597 break;
598 }
599 memcpy(aKey+8,aKey,8);
600 memcpy(aKey+16,aKey,8);
601 ibuf[4]='\0';
602 PrintValue("KEYs",aKey,len);
603 ++step;
604 }
605 else if(!strncasecmp(ibuf,"KEY",3))
606 {
607 int n=ibuf[3]-'1';
608
609 akeysz=64*3;
610 len=hex2bin(ibuf+7,strlen(ibuf+7)-1,aKey+n*8);
611 if(len != 8)
612 {
613 printf("Invalid KEY\n");
614 err=1;
615 break;
616 }
617 ibuf[4]='\0';
618 PrintValue(ibuf,aKey,len);
619 if(n == 2)
620 ++step;
621 }
622 else
623 {
624 printf("Missing KEY\n");
625 err = 1;
626 }
627 break;
628
629 case 3: /* IV = xxxx */
630 fputs(ibuf, rfp);
631 if (strncasecmp(ibuf, "IV = ", 5) != 0)
632 {
633 printf("Missing IV\n");
634 err = 1;
635 }
636 else
637 {
638 len = hex2bin((char*)ibuf+5, strlen(ibuf+5)-1, iVec);
639 if (len < 0)
640 {
641 printf("Invalid IV\n");
642 err =1;
643 break;
644 }
645 PrintValue("IV", iVec, len);
646 step = (dir)? 4: 5;
647 }
648 break;
649
650 case 4: /* PLAINTEXT = xxxx */
651 fputs(ibuf, rfp);
652 if (strncasecmp(ibuf, "PLAINTEXT = ", 12) != 0)
653 {
654 printf("Missing PLAINTEXT\n");
655 err = 1;
656 }
657 else
658 {
659 int nn = strlen(ibuf+12);
660 if(!strcmp(amode,"CFB1"))
661 len=bint2bin(ibuf+12,nn-1,plaintext);
662 else
663 len=hex2bin(ibuf+12, nn-1,plaintext);
664 if (len < 0)
665 {
666 printf("Invalid PLAINTEXT: %s", ibuf+12);
667 err =1;
668 break;
669 }
670 if (len >= sizeof(plaintext))
671 {
672 printf("Buffer overflow\n");
673 }
674 PrintValue("PLAINTEXT", (unsigned char*)plaintext, len);
675 if (strcmp(atest, "Monte") == 0) /* Monte Carlo Test */
676 {
677 do_mct(amode,akeysz,numkeys,aKey,iVec,dir,plaintext,len,rfp);
678 }
679 else
680 {
681 assert(dir == 1);
682 ret = DESTest(&ctx, amode, akeysz, aKey, iVec,
683 dir, /* 0 = decrypt, 1 = encrypt */
684 ciphertext, plaintext, len);
685 OutputValue("CIPHERTEXT",ciphertext,len,rfp,
686 !strcmp(amode,"CFB1"));
687 }
688 step = 6;
689 }
690 break;
691
692 case 5: /* CIPHERTEXT = xxxx */
693 fputs(ibuf, rfp);
694 if (strncasecmp(ibuf, "CIPHERTEXT = ", 13) != 0)
695 {
696 printf("Missing KEY\n");
697 err = 1;
698 }
699 else
700 {
701 if(!strcmp(amode,"CFB1"))
702 len=bint2bin(ibuf+13,strlen(ibuf+13)-1,ciphertext);
703 else
704 len = hex2bin(ibuf+13,strlen(ibuf+13)-1,ciphertext);
705 if (len < 0)
706 {
707 printf("Invalid CIPHERTEXT\n");
708 err =1;
709 break;
710 }
711
712 PrintValue("CIPHERTEXT", ciphertext, len);
713 if (strcmp(atest, "Monte") == 0) /* Monte Carlo Test */
714 {
715 do_mct(amode, akeysz, numkeys, aKey, iVec,
716 dir, ciphertext, len, rfp);
717 }
718 else
719 {
720 assert(dir == 0);
721 ret = DESTest(&ctx, amode, akeysz, aKey, iVec,
722 dir, /* 0 = decrypt, 1 = encrypt */
723 plaintext, ciphertext, len);
724 OutputValue("PLAINTEXT",(unsigned char *)plaintext,len,rfp,
725 !strcmp(amode,"CFB1"));
726 }
727 step = 6;
728 }
729 break;
730
731 case 6:
732 if (ibuf[0] != '\n')
733 {
734 err = 1;
735 printf("Missing terminator\n");
736 }
737 else if (strcmp(atest, "MCT") != 0)
738 { /* MCT already added terminating nl */
739 fputs(ibuf, rfp);
740 }
741 step = 1;
742 break;
743 }
744 }
745 if (rfp)
746 fclose(rfp);
747 if (afp)
748 fclose(afp);
749 return err;
750 }
751
752/*--------------------------------------------------
753 Processes either a single file or
754 a set of files whose names are passed in a file.
755 A single file is specified as:
756 aes_test -f xxx.req
757 A set of files is specified as:
758 aes_test -d xxxxx.xxx
759 The default is: -d req.txt
760--------------------------------------------------*/
761int main(int argc, char **argv)
762 {
763 char *rqlist = "req.txt";
764 FILE *fp = NULL;
765 char fn[250] = "", rfn[256] = "";
766 int f_opt = 0, d_opt = 1;
767
768#ifdef OPENSSL_FIPS
769 if(!FIPS_mode_set(1,argv[0]))
770 {
771 ERR_load_crypto_strings();
772 ERR_print_errors(BIO_new_fp(stderr,BIO_NOCLOSE));
773 EXIT(1);
774 }
775#endif
776 ERR_load_crypto_strings();
777 if (argc > 1)
778 {
779 if (strcasecmp(argv[1], "-d") == 0)
780 {
781 d_opt = 1;
782 }
783 else if (strcasecmp(argv[1], "-f") == 0)
784 {
785 f_opt = 1;
786 d_opt = 0;
787 }
788 else
789 {
790 printf("Invalid parameter: %s\n", argv[1]);
791 return 0;
792 }
793 if (argc < 3)
794 {
795 printf("Missing parameter\n");
796 return 0;
797 }
798 if (d_opt)
799 rqlist = argv[2];
800 else
801 strcpy(fn, argv[2]);
802 }
803 if (d_opt)
804 { /* list of files (directory) */
805 if (!(fp = fopen(rqlist, "r")))
806 {
807 printf("Cannot open req list file\n");
808 return -1;
809 }
810 while (fgets(fn, sizeof(fn), fp))
811 {
812 strtok(fn, "\r\n");
813 strcpy(rfn, fn);
814 printf("Processing: %s\n", rfn);
815 if (proc_file(rfn))
816 {
817 printf(">>> Processing failed for: %s <<<\n", rfn);
818 EXIT(1);
819 }
820 }
821 fclose(fp);
822 }
823 else /* single file */
824 {
825 printf("Processing: %s\n", fn);
826 if (proc_file(fn))
827 {
828 printf(">>> Processing failed for: %s <<<\n", fn);
829 }
830 }
831 EXIT(0);
832 return 0;
833 }
diff --git a/src/lib/libssl/src/fips/dh/Makefile b/src/lib/libssl/src/fips/dh/Makefile
new file mode 100644
index 0000000000..10b40aa9f6
--- /dev/null
+++ b/src/lib/libssl/src/fips/dh/Makefile
@@ -0,0 +1,109 @@
1#
2# SSLeay/fips/dh/Makefile
3#
4
5DIR= dh
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=fips_dh_check.c fips_dh_gen.c fips_dh_key.c
26LIBOBJ=fips_dh_check.o fips_dh_gen.o fips_dh_key.o
27
28SRC= $(LIBSRC)
29
30EXHEADER=
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd $(TOP); $(MAKE) DIRS=fips FDIRS=$(DIR) sub_all)
37
38all: check lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @sleep 2; touch lib
44
45check:
46 TOP=`pwd`/$(TOP) ../fips_check_sha1 fingerprint.sha1 $(SRC) $(HEADER)
47
48files:
49 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
50
51links:
52 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/include/openssl $(EXHEADER)
53 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/test $(TEST)
54 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/apps $(APPS)
55
56install:
57 @headerlist="$(EXHEADER)"; for i in $$headerlist; \
58 do \
59 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
60 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
61 done
62
63tags:
64 ctags $(SRC)
65
66tests:
67
68lint:
69 lint -DLINT $(INCLUDES) $(SRC)>fluff
70
71depend:
72 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(SRC) $(TEST)
73
74dclean:
75 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
76 mv -f Makefile.new $(MAKEFILE)
77
78clean:
79 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
80
81# DO NOT DELETE THIS LINE -- make depend depends on it.
82
83fips_dh_check.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
84fips_dh_check.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
85fips_dh_check.o: ../../include/openssl/e_os2.h
86fips_dh_check.o: ../../include/openssl/opensslconf.h
87fips_dh_check.o: ../../include/openssl/opensslv.h
88fips_dh_check.o: ../../include/openssl/ossl_typ.h
89fips_dh_check.o: ../../include/openssl/safestack.h
90fips_dh_check.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
91fips_dh_check.o: fips_dh_check.c
92fips_dh_gen.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
93fips_dh_gen.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
94fips_dh_gen.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
95fips_dh_gen.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
96fips_dh_gen.o: ../../include/openssl/opensslconf.h
97fips_dh_gen.o: ../../include/openssl/opensslv.h
98fips_dh_gen.o: ../../include/openssl/ossl_typ.h
99fips_dh_gen.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
100fips_dh_gen.o: ../../include/openssl/symhacks.h fips_dh_gen.c
101fips_dh_key.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
102fips_dh_key.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
103fips_dh_key.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
104fips_dh_key.o: ../../include/openssl/lhash.h
105fips_dh_key.o: ../../include/openssl/opensslconf.h
106fips_dh_key.o: ../../include/openssl/opensslv.h
107fips_dh_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
108fips_dh_key.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
109fips_dh_key.o: ../../include/openssl/symhacks.h fips_dh_key.c
diff --git a/src/lib/libssl/src/fips/dh/fips_dh_check.c b/src/lib/libssl/src/fips/dh/fips_dh_check.c
new file mode 100644
index 0000000000..874920b466
--- /dev/null
+++ b/src/lib/libssl/src/fips/dh/fips_dh_check.c
@@ -0,0 +1,125 @@
1/* crypto/dh/dh_check.c */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdio.h>
60#include <openssl/bn.h>
61#ifndef OPENSSL_NO_DH
62#include <openssl/dh.h>
63
64#ifdef OPENSSL_FIPS
65
66/* Check that p is a safe prime and
67 * if g is 2, 3 or 5, check that is is a suitable generator
68 * where
69 * for 2, p mod 24 == 11
70 * for 3, p mod 12 == 5
71 * for 5, p mod 10 == 3 or 7
72 * should hold.
73 */
74
75int DH_check(const DH *dh, int *ret)
76 {
77 int ok=0;
78 BN_CTX *ctx=NULL;
79 BN_ULONG l;
80 BIGNUM *q=NULL;
81
82 *ret=0;
83 ctx=BN_CTX_new();
84 if (ctx == NULL) goto err;
85 q=BN_new();
86 if (q == NULL) goto err;
87
88 if (BN_is_word(dh->g,DH_GENERATOR_2))
89 {
90 l=BN_mod_word(dh->p,24);
91 if (l != 11) *ret|=DH_NOT_SUITABLE_GENERATOR;
92 }
93#if 0
94 else if (BN_is_word(dh->g,DH_GENERATOR_3))
95 {
96 l=BN_mod_word(dh->p,12);
97 if (l != 5) *ret|=DH_NOT_SUITABLE_GENERATOR;
98 }
99#endif
100 else if (BN_is_word(dh->g,DH_GENERATOR_5))
101 {
102 l=BN_mod_word(dh->p,10);
103 if ((l != 3) && (l != 7))
104 *ret|=DH_NOT_SUITABLE_GENERATOR;
105 }
106 else
107 *ret|=DH_UNABLE_TO_CHECK_GENERATOR;
108
109 if (!BN_is_prime(dh->p,BN_prime_checks,NULL,ctx,NULL))
110 *ret|=DH_CHECK_P_NOT_PRIME;
111 else
112 {
113 if (!BN_rshift1(q,dh->p)) goto err;
114 if (!BN_is_prime(q,BN_prime_checks,NULL,ctx,NULL))
115 *ret|=DH_CHECK_P_NOT_SAFE_PRIME;
116 }
117 ok=1;
118err:
119 if (ctx != NULL) BN_CTX_free(ctx);
120 if (q != NULL) BN_free(q);
121 return(ok);
122 }
123
124#endif
125#endif
diff --git a/src/lib/libssl/src/fips/dh/fips_dh_gen.c b/src/lib/libssl/src/fips/dh/fips_dh_gen.c
new file mode 100644
index 0000000000..b569e3912d
--- /dev/null
+++ b/src/lib/libssl/src/fips/dh/fips_dh_gen.c
@@ -0,0 +1,186 @@
1/* crypto/dh/dh_gen.c */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdio.h>
60#include <string.h>
61#include <openssl/err.h>
62#include <openssl/bn.h>
63#ifndef OPENSSL_NO_DH
64#include <openssl/dh.h>
65#endif
66#include <openssl/fips.h>
67
68#ifndef OPENSSL_NO_DH
69#ifdef OPENSSL_FIPS
70
71/* We generate DH parameters as follows
72 * find a prime q which is prime_len/2 bits long.
73 * p=(2*q)+1 or (p-1)/2 = q
74 * For this case, g is a generator if
75 * g^((p-1)/q) mod p != 1 for values of q which are the factors of p-1.
76 * Since the factors of p-1 are q and 2, we just need to check
77 * g^2 mod p != 1 and g^q mod p != 1.
78 *
79 * Having said all that,
80 * there is another special case method for the generators 2, 3 and 5.
81 * for 2, p mod 24 == 11
82 * for 3, p mod 12 == 5 <<<<< does not work for safe primes.
83 * for 5, p mod 10 == 3 or 7
84 *
85 * Thanks to Phil Karn <karn@qualcomm.com> for the pointers about the
86 * special generators and for answering some of my questions.
87 *
88 * I've implemented the second simple method :-).
89 * Since DH should be using a safe prime (both p and q are prime),
90 * this generator function can take a very very long time to run.
91 */
92/* Actually there is no reason to insist that 'generator' be a generator.
93 * It's just as OK (and in some sense better) to use a generator of the
94 * order-q subgroup.
95 */
96
97DH *DH_generate_parameters(int prime_len, int generator,
98 void (*callback)(int,int,void *), void *cb_arg)
99 {
100 BIGNUM *p=NULL,*t1,*t2;
101 DH *ret=NULL;
102 int g,ok= -1;
103 BN_CTX *ctx=NULL;
104
105 if(FIPS_selftest_failed())
106 {
107 FIPSerr(FIPS_F_DH_GENERATE_PARAMETERS,FIPS_R_FIPS_SELFTEST_FAILED);
108 return NULL;
109 }
110
111 ret=DH_new();
112 if (ret == NULL) goto err;
113 ctx=BN_CTX_new();
114 if (ctx == NULL) goto err;
115 BN_CTX_start(ctx);
116 t1 = BN_CTX_get(ctx);
117 t2 = BN_CTX_get(ctx);
118 if (t1 == NULL || t2 == NULL) goto err;
119
120 if (generator <= 1)
121 {
122 DHerr(DH_F_DH_GENERATE_PARAMETERS, DH_R_BAD_GENERATOR);
123 goto err;
124 }
125 if (generator == DH_GENERATOR_2)
126 {
127 if (!BN_set_word(t1,24)) goto err;
128 if (!BN_set_word(t2,11)) goto err;
129 g=2;
130 }
131#if 0 /* does not work for safe primes */
132 else if (generator == DH_GENERATOR_3)
133 {
134 if (!BN_set_word(t1,12)) goto err;
135 if (!BN_set_word(t2,5)) goto err;
136 g=3;
137 }
138#endif
139 else if (generator == DH_GENERATOR_5)
140 {
141 if (!BN_set_word(t1,10)) goto err;
142 if (!BN_set_word(t2,3)) goto err;
143 /* BN_set_word(t3,7); just have to miss
144 * out on these ones :-( */
145 g=5;
146 }
147 else
148 {
149 /* in the general case, don't worry if 'generator' is a
150 * generator or not: since we are using safe primes,
151 * it will generate either an order-q or an order-2q group,
152 * which both is OK */
153 if (!BN_set_word(t1,2)) goto err;
154 if (!BN_set_word(t2,1)) goto err;
155 g=generator;
156 }
157
158 p=BN_generate_prime(NULL,prime_len,1,t1,t2,callback,cb_arg);
159 if (p == NULL) goto err;
160 if (callback != NULL) callback(3,0,cb_arg);
161 ret->p=p;
162 ret->g=BN_new();
163 if (!BN_set_word(ret->g,g)) goto err;
164 ok=1;
165err:
166 if (ok == -1)
167 {
168 DHerr(DH_F_DH_GENERATE_PARAMETERS,ERR_R_BN_LIB);
169 ok=0;
170 }
171
172 if (ctx != NULL)
173 {
174 BN_CTX_end(ctx);
175 BN_CTX_free(ctx);
176 }
177 if (!ok && (ret != NULL))
178 {
179 DH_free(ret);
180 ret=NULL;
181 }
182 return(ret);
183 }
184
185#endif
186#endif
diff --git a/src/lib/libssl/src/fips/dh/fips_dh_key.c b/src/lib/libssl/src/fips/dh/fips_dh_key.c
new file mode 100644
index 0000000000..41e3a661c0
--- /dev/null
+++ b/src/lib/libssl/src/fips/dh/fips_dh_key.c
@@ -0,0 +1,230 @@
1/* crypto/dh/dh_key.c */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdio.h>
60#include <openssl/err.h>
61#include <openssl/bn.h>
62#ifndef OPENSSL_NO_RAND
63#include <openssl/rand.h>
64#endif
65#ifndef OPENSSL_NO_DH
66#include <openssl/dh.h>
67
68#ifdef OPENSSL_FIPS
69
70static int generate_key(DH *dh);
71static int compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh);
72static int dh_bn_mod_exp(const DH *dh, BIGNUM *r,
73 const BIGNUM *a, const BIGNUM *p,
74 const BIGNUM *m, BN_CTX *ctx,
75 BN_MONT_CTX *m_ctx);
76static int dh_init(DH *dh);
77static int dh_finish(DH *dh);
78
79int DH_generate_key(DH *dh)
80 {
81 return dh->meth->generate_key(dh);
82 }
83
84int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh)
85 {
86 return dh->meth->compute_key(key, pub_key, dh);
87 }
88
89static DH_METHOD dh_ossl = {
90"OpenSSL DH Method",
91generate_key,
92compute_key,
93dh_bn_mod_exp,
94dh_init,
95dh_finish,
960,
97NULL
98};
99
100const DH_METHOD *DH_OpenSSL(void)
101{
102 return &dh_ossl;
103}
104
105static int generate_key(DH *dh)
106 {
107 int ok=0;
108 int generate_new_key=0;
109 unsigned l;
110 BN_CTX *ctx;
111 BN_MONT_CTX *mont;
112 BIGNUM *pub_key=NULL,*priv_key=NULL;
113
114 ctx = BN_CTX_new();
115 if (ctx == NULL) goto err;
116
117 if (dh->priv_key == NULL)
118 {
119 priv_key=BN_new();
120 if (priv_key == NULL) goto err;
121 generate_new_key=1;
122 }
123 else
124 priv_key=dh->priv_key;
125
126 if (dh->pub_key == NULL)
127 {
128 pub_key=BN_new();
129 if (pub_key == NULL) goto err;
130 }
131 else
132 pub_key=dh->pub_key;
133
134 if ((dh->method_mont_p == NULL) && (dh->flags & DH_FLAG_CACHE_MONT_P))
135 {
136 if ((dh->method_mont_p=(char *)BN_MONT_CTX_new()) != NULL)
137 if (!BN_MONT_CTX_set((BN_MONT_CTX *)dh->method_mont_p,
138 dh->p,ctx)) goto err;
139 }
140 mont=(BN_MONT_CTX *)dh->method_mont_p;
141
142 if (generate_new_key)
143 {
144 l = dh->length ? dh->length : BN_num_bits(dh->p)-1; /* secret exponent length */
145 if (!BN_rand(priv_key, l, 0, 0)) goto err;
146 }
147 if (!dh->meth->bn_mod_exp(dh, pub_key, dh->g, priv_key,dh->p,ctx,mont))
148 goto err;
149
150 dh->pub_key=pub_key;
151 dh->priv_key=priv_key;
152 ok=1;
153err:
154 if (ok != 1)
155 DHerr(DH_F_DH_GENERATE_KEY,ERR_R_BN_LIB);
156
157 if ((pub_key != NULL) && (dh->pub_key == NULL)) BN_free(pub_key);
158 if ((priv_key != NULL) && (dh->priv_key == NULL)) BN_free(priv_key);
159 BN_CTX_free(ctx);
160 return(ok);
161 }
162
163static int compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh)
164 {
165 BN_CTX *ctx;
166 BN_MONT_CTX *mont;
167 BIGNUM *tmp;
168 int ret= -1;
169
170 ctx = BN_CTX_new();
171 if (ctx == NULL) goto err;
172 BN_CTX_start(ctx);
173 tmp = BN_CTX_get(ctx);
174
175 if (dh->priv_key == NULL)
176 {
177 DHerr(DH_F_DH_COMPUTE_KEY,DH_R_NO_PRIVATE_VALUE);
178 goto err;
179 }
180 if ((dh->method_mont_p == NULL) && (dh->flags & DH_FLAG_CACHE_MONT_P))
181 {
182 if ((dh->method_mont_p=(char *)BN_MONT_CTX_new()) != NULL)
183 if (!BN_MONT_CTX_set((BN_MONT_CTX *)dh->method_mont_p,
184 dh->p,ctx)) goto err;
185 }
186
187 mont=(BN_MONT_CTX *)dh->method_mont_p;
188 if (!dh->meth->bn_mod_exp(dh, tmp, pub_key, dh->priv_key,dh->p,ctx,mont))
189 {
190 DHerr(DH_F_DH_COMPUTE_KEY,ERR_R_BN_LIB);
191 goto err;
192 }
193
194 ret=BN_bn2bin(tmp,key);
195err:
196 BN_CTX_end(ctx);
197 BN_CTX_free(ctx);
198 return(ret);
199 }
200
201static int dh_bn_mod_exp(const DH *dh, BIGNUM *r,
202 const BIGNUM *a, const BIGNUM *p,
203 const BIGNUM *m, BN_CTX *ctx,
204 BN_MONT_CTX *m_ctx)
205 {
206 if (a->top == 1)
207 {
208 BN_ULONG A = a->d[0];
209 return BN_mod_exp_mont_word(r,A,p,m,ctx,m_ctx);
210 }
211 else
212 return BN_mod_exp_mont(r,a,p,m,ctx,m_ctx);
213 }
214
215
216static int dh_init(DH *dh)
217 {
218 dh->flags |= DH_FLAG_CACHE_MONT_P;
219 return(1);
220 }
221
222static int dh_finish(DH *dh)
223 {
224 if(dh->method_mont_p)
225 BN_MONT_CTX_free((BN_MONT_CTX *)dh->method_mont_p);
226 return(1);
227 }
228
229#endif
230#endif
diff --git a/src/lib/libssl/src/fips/dsa/Makefile b/src/lib/libssl/src/fips/dsa/Makefile
new file mode 100644
index 0000000000..0cc5704ed1
--- /dev/null
+++ b/src/lib/libssl/src/fips/dsa/Makefile
@@ -0,0 +1,158 @@
1#
2# SSLeay/fips/dsa/Makefile
3#
4
5DIR= dsa
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=fips_dsatest.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=fips_dsa_ossl.c fips_dsa_gen.c fips_dsa_selftest.c
26LIBOBJ=fips_dsa_ossl.o fips_dsa_gen.o fips_dsa_selftest.o
27
28SRC= $(LIBSRC)
29
30EXHEADER=
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd $(TOP); $(MAKE) DIRS=fips FDIRS=$(DIR) sub_all)
37
38all: check lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @sleep 2; touch lib
44
45check:
46 TOP=`pwd`/$(TOP) ../fips_check_sha1 fingerprint.sha1 $(SRC) $(HEADER)
47
48files:
49 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
50
51links:
52 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/include/openssl $(EXHEADER)
53 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/test $(TEST)
54 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/apps $(APPS)
55
56install:
57 @headerlist="$(EXHEADER)"; for i in $$headerlist; \
58 do \
59 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
60 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
61 done
62
63tags:
64 ctags $(SRC)
65
66tests:
67
68top_fips_dssvs:
69 (cd $(TOP); $(MAKE) DIRS=fips FDIRS=$(DIR) TARGET=fips_dssvs sub_target)
70
71fips_dssvs: fips_dssvs.o $(TOP)/libcrypto.a
72 $(CC) $(CFLAGS) -o fips_dssvs fips_dssvs.o $(PEX_LIBS) $(TOP)/libcrypto.a $(EX_LIBS)
73 TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a fips_dssvs
74
75Q=../testvectors/dsa/req
76A=../testvectors/dsa/rsp
77
78fips_test: top_fips_dssvs
79 -rm -rf $A
80 mkdir $A
81 ./fips_dssvs pqg < $Q/PQGGen.req > $A/PQGGen.rsp
82 ./fips_dssvs keypair < $Q/KeyPair.req > $A/KeyPair.rsp
83 ./fips_dssvs siggen < $Q/SigGen.req > $A/SigGen.rsp
84 ./fips_dssvs sigver < $Q/SigVer.req > $A/SigVer.rsp
85
86lint:
87 lint -DLINT $(INCLUDES) $(SRC)>fluff
88
89depend:
90 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(SRC) $(TEST)
91
92dclean:
93 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
94 mv -f Makefile.new $(MAKEFILE)
95
96clean:
97 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
98# DO NOT DELETE THIS LINE -- make depend depends on it.
99
100fips_dsa_gen.o: ../../include/openssl/aes.h ../../include/openssl/asn1.h
101fips_dsa_gen.o: ../../include/openssl/bio.h ../../include/openssl/blowfish.h
102fips_dsa_gen.o: ../../include/openssl/bn.h ../../include/openssl/cast.h
103fips_dsa_gen.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
104fips_dsa_gen.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
105fips_dsa_gen.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
106fips_dsa_gen.o: ../../include/openssl/err.h ../../include/openssl/evp.h
107fips_dsa_gen.o: ../../include/openssl/fips.h ../../include/openssl/idea.h
108fips_dsa_gen.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
109fips_dsa_gen.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
110fips_dsa_gen.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
111fips_dsa_gen.o: ../../include/openssl/objects.h
112fips_dsa_gen.o: ../../include/openssl/opensslconf.h
113fips_dsa_gen.o: ../../include/openssl/opensslv.h
114fips_dsa_gen.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
115fips_dsa_gen.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
116fips_dsa_gen.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
117fips_dsa_gen.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
118fips_dsa_gen.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
119fips_dsa_gen.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
120fips_dsa_gen.o: ../../include/openssl/ui_compat.h fips_dsa_gen.c
121fips_dsa_ossl.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
122fips_dsa_ossl.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
123fips_dsa_ossl.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
124fips_dsa_ossl.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
125fips_dsa_ossl.o: ../../include/openssl/err.h ../../include/openssl/fips.h
126fips_dsa_ossl.o: ../../include/openssl/lhash.h
127fips_dsa_ossl.o: ../../include/openssl/opensslconf.h
128fips_dsa_ossl.o: ../../include/openssl/opensslv.h
129fips_dsa_ossl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
130fips_dsa_ossl.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
131fips_dsa_ossl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
132fips_dsa_ossl.o: ../../include/openssl/ui.h fips_dsa_ossl.c
133fips_dsa_selftest.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
134fips_dsa_selftest.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
135fips_dsa_selftest.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
136fips_dsa_selftest.o: ../../include/openssl/err.h ../../include/openssl/fips.h
137fips_dsa_selftest.o: ../../include/openssl/lhash.h
138fips_dsa_selftest.o: ../../include/openssl/opensslconf.h
139fips_dsa_selftest.o: ../../include/openssl/opensslv.h
140fips_dsa_selftest.o: ../../include/openssl/ossl_typ.h
141fips_dsa_selftest.o: ../../include/openssl/safestack.h
142fips_dsa_selftest.o: ../../include/openssl/stack.h
143fips_dsa_selftest.o: ../../include/openssl/symhacks.h fips_dsa_selftest.c
144fips_dsatest.o: ../../e_os.h ../../include/openssl/asn1.h
145fips_dsatest.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
146fips_dsatest.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
147fips_dsatest.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
148fips_dsatest.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
149fips_dsatest.o: ../../include/openssl/engine.h ../../include/openssl/err.h
150fips_dsatest.o: ../../include/openssl/fips.h ../../include/openssl/fips_rand.h
151fips_dsatest.o: ../../include/openssl/lhash.h
152fips_dsatest.o: ../../include/openssl/opensslconf.h
153fips_dsatest.o: ../../include/openssl/opensslv.h
154fips_dsatest.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
155fips_dsatest.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
156fips_dsatest.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
157fips_dsatest.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
158fips_dsatest.o: fips_dsatest.c
diff --git a/src/lib/libssl/src/fips/dsa/fips_dsa_gen.c b/src/lib/libssl/src/fips/dsa/fips_dsa_gen.c
new file mode 100644
index 0000000000..21fa3d1783
--- /dev/null
+++ b/src/lib/libssl/src/fips/dsa/fips_dsa_gen.c
@@ -0,0 +1,374 @@
1/* crypto/dsa/dsa_gen.c */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#undef GENUINE_DSA
60
61#ifdef GENUINE_DSA
62/* Parameter generation follows the original release of FIPS PUB 186,
63 * Appendix 2.2 (i.e. use SHA as defined in FIPS PUB 180) */
64#define HASH EVP_sha()
65#else
66/* Parameter generation follows the updated Appendix 2.2 for FIPS PUB 186,
67 * also Appendix 2.2 of FIPS PUB 186-1 (i.e. use SHA as defined in
68 * FIPS PUB 180-1) */
69#define HASH EVP_sha1()
70#endif
71
72#include <stdio.h>
73#include <string.h>
74#include <time.h>
75/*#include "cryptlib.h"*/
76#include <openssl/evp.h>
77#include <openssl/bn.h>
78#ifndef OPENSSL_NO_DSA
79#include <openssl/dsa.h>
80#endif
81#ifndef OPENSSL_NO_RAND
82#include <openssl/rand.h>
83#endif
84#ifndef OPENSSL_NO_SHA
85#include <openssl/sha.h>
86#endif
87#include <openssl/fips.h>
88#include <openssl/err.h>
89
90#ifndef OPENSSL_NO_DSA
91#ifdef OPENSSL_FIPS
92
93static int fips_check_dsa(DSA *dsa)
94 {
95 static const unsigned char str1[]="12345678901234567890";
96 unsigned char sig[256];
97 unsigned int siglen;
98
99 DSA_sign(0, str1, 20, sig, &siglen, dsa);
100 if(DSA_verify(0, str1, 20, sig, siglen, dsa) != 1)
101 {
102 FIPSerr(FIPS_F_FIPS_CHECK_DSA,FIPS_R_PAIRWISE_TEST_FAILED);
103 return 0;
104 }
105 return 1;
106 }
107
108DSA *DSA_generate_parameters(FIPS_DSA_SIZE_T bits,
109 unsigned char *seed_in, FIPS_DSA_SIZE_T seed_len,
110 int *counter_ret, unsigned long *h_ret,
111 void (*callback)(int, int, void *),
112 void *cb_arg)
113 {
114 int ok=0;
115 unsigned char seed[SHA_DIGEST_LENGTH];
116 unsigned char md[SHA_DIGEST_LENGTH];
117 unsigned char buf[SHA_DIGEST_LENGTH],buf2[SHA_DIGEST_LENGTH];
118 BIGNUM *r0,*W,*X,*c,*test;
119 BIGNUM *g=NULL,*q=NULL,*p=NULL;
120 BN_MONT_CTX *mont=NULL;
121 int k,n=0,i,b,m=0;
122 int counter=0;
123 int r=0;
124 BN_CTX *ctx=NULL,*ctx2=NULL,*ctx3=NULL;
125 unsigned int h=2;
126 DSA *ret=NULL;
127 unsigned char *seed_out=seed_in;
128
129 if(FIPS_selftest_failed())
130 {
131 FIPSerr(FIPS_F_DSA_GENERATE_PARAMETERS,
132 FIPS_R_FIPS_SELFTEST_FAILED);
133 goto err;
134 }
135
136 if (bits < 512) bits=512;
137 bits=(bits+63)/64*64;
138
139 if (seed_len < 20)
140 seed_in = NULL; /* seed buffer too small -- ignore */
141 if (seed_len > 20)
142 seed_len = 20; /* App. 2.2 of FIPS PUB 186 allows larger SEED,
143 * but our internal buffers are restricted to 160 bits*/
144 if ((seed_in != NULL) && (seed_len == 20))
145 memcpy(seed,seed_in,seed_len);
146
147 if ((ctx=BN_CTX_new()) == NULL) goto err;
148 if ((ctx2=BN_CTX_new()) == NULL) goto err;
149 if ((ctx3=BN_CTX_new()) == NULL) goto err;
150 if ((ret=DSA_new()) == NULL) goto err;
151
152 if ((mont=BN_MONT_CTX_new()) == NULL) goto err;
153
154 BN_CTX_start(ctx2);
155 r0 = BN_CTX_get(ctx2);
156 g = BN_CTX_get(ctx2);
157 W = BN_CTX_get(ctx2);
158 q = BN_CTX_get(ctx2);
159 X = BN_CTX_get(ctx2);
160 c = BN_CTX_get(ctx2);
161 p = BN_CTX_get(ctx2);
162 test = BN_CTX_get(ctx2);
163
164 BN_lshift(test,BN_value_one(),bits-1);
165
166 for (;;)
167 {
168 for (;;) /* find q */
169 {
170 int seed_is_random;
171
172 /* step 1 */
173 if (callback != NULL) callback(0,m++,cb_arg);
174
175 if (!seed_len)
176 {
177 if(RAND_pseudo_bytes(seed,SHA_DIGEST_LENGTH) < 0)
178 goto err;
179 seed_is_random = 1;
180 }
181 else
182 {
183 seed_is_random = 0;
184 seed_len=0; /* use random seed if 'seed_in' turns out to be bad*/
185 }
186 memcpy(buf,seed,SHA_DIGEST_LENGTH);
187 memcpy(buf2,seed,SHA_DIGEST_LENGTH);
188 /* precompute "SEED + 1" for step 7: */
189 for (i=SHA_DIGEST_LENGTH-1; i >= 0; i--)
190 {
191 buf[i]++;
192 if (buf[i] != 0) break;
193 }
194
195 /* step 2 */
196 EVP_Digest(seed,SHA_DIGEST_LENGTH,md,NULL,HASH, NULL);
197 EVP_Digest(buf,SHA_DIGEST_LENGTH,buf2,NULL,HASH, NULL);
198 for (i=0; i<SHA_DIGEST_LENGTH; i++)
199 md[i]^=buf2[i];
200
201 /* step 3 */
202 md[0]|=0x80;
203 md[SHA_DIGEST_LENGTH-1]|=0x01;
204 if (!BN_bin2bn(md,SHA_DIGEST_LENGTH,q)) goto err;
205
206 /* step 4 */
207 r = BN_is_prime_fasttest(q, DSS_prime_checks, callback, ctx3, cb_arg, seed_is_random);
208 if (r > 0)
209 break;
210 if (r != 0)
211 goto err;
212
213 /* do a callback call */
214 /* step 5 */
215 }
216
217 if (callback != NULL) callback(2,0,cb_arg);
218 if (callback != NULL) callback(3,0,cb_arg);
219
220 /* step 6 */
221 counter=0;
222 /* "offset = 2" */
223
224 n=(bits-1)/160;
225 b=(bits-1)-n*160;
226
227 for (;;)
228 {
229 if (callback != NULL && counter != 0)
230 callback(0,counter,cb_arg);
231
232 /* step 7 */
233 BN_zero(W);
234 /* now 'buf' contains "SEED + offset - 1" */
235 for (k=0; k<=n; k++)
236 {
237 /* obtain "SEED + offset + k" by incrementing: */
238 for (i=SHA_DIGEST_LENGTH-1; i >= 0; i--)
239 {
240 buf[i]++;
241 if (buf[i] != 0) break;
242 }
243
244 EVP_Digest(buf,SHA_DIGEST_LENGTH,md,NULL,HASH, NULL);
245
246 /* step 8 */
247 if (!BN_bin2bn(md,SHA_DIGEST_LENGTH,r0))
248 goto err;
249 BN_lshift(r0,r0,160*k);
250 BN_add(W,W,r0);
251 }
252
253 /* more of step 8 */
254 BN_mask_bits(W,bits-1);
255 BN_copy(X,W); /* this should be ok */
256 BN_add(X,X,test); /* this should be ok */
257
258 /* step 9 */
259 BN_lshift1(r0,q);
260 BN_mod(c,X,r0,ctx);
261 BN_sub(r0,c,BN_value_one());
262 BN_sub(p,X,r0);
263
264 /* step 10 */
265 if (BN_cmp(p,test) >= 0)
266 {
267 /* step 11 */
268 r = BN_is_prime_fasttest(p, DSS_prime_checks, callback, ctx3, cb_arg, 1);
269 if (r > 0)
270 goto end; /* found it */
271 if (r != 0)
272 goto err;
273 }
274
275 /* step 13 */
276 counter++;
277 /* "offset = offset + n + 1" */
278
279 /* step 14 */
280 if (counter >= 4096) break;
281 }
282 }
283end:
284 if (callback != NULL) callback(2,1,cb_arg);
285
286 /* We now need to generate g */
287 /* Set r0=(p-1)/q */
288 BN_sub(test,p,BN_value_one());
289 BN_div(r0,NULL,test,q,ctx);
290
291 BN_set_word(test,h);
292 BN_MONT_CTX_set(mont,p,ctx);
293
294 for (;;)
295 {
296 /* g=test^r0%p */
297 BN_mod_exp_mont(g,test,r0,p,ctx,mont);
298 if (!BN_is_one(g)) break;
299 BN_add(test,test,BN_value_one());
300 h++;
301 }
302
303 if (callback != NULL) callback(3,1,cb_arg);
304
305 ok=1;
306err:
307 if (!ok)
308 {
309 if (ret != NULL) DSA_free(ret);
310 }
311 else
312 {
313 ret->p=BN_dup(p);
314 ret->q=BN_dup(q);
315 ret->g=BN_dup(g);
316 if(seed_out != NULL) memcpy(seed_out,seed,20);
317 if (counter_ret != NULL) *counter_ret=counter;
318 if (h_ret != NULL) *h_ret=h;
319 }
320 if (ctx != NULL) BN_CTX_free(ctx);
321 if (ctx2 != NULL)
322 {
323 BN_CTX_end(ctx2);
324 BN_CTX_free(ctx2);
325 }
326 if (ctx3 != NULL) BN_CTX_free(ctx3);
327 if (mont != NULL) BN_MONT_CTX_free(mont);
328 return(ok?ret:NULL);
329 }
330
331int DSA_generate_key(DSA *dsa)
332 {
333 int ok=0;
334 BN_CTX *ctx=NULL;
335 BIGNUM *pub_key=NULL,*priv_key=NULL;
336
337 if ((ctx=BN_CTX_new()) == NULL) goto err;
338
339 if (dsa->priv_key == NULL)
340 {
341 if ((priv_key=BN_new()) == NULL) goto err;
342 }
343 else
344 priv_key=dsa->priv_key;
345
346 do
347 if (!BN_rand_range(priv_key,dsa->q)) goto err;
348 while (BN_is_zero(priv_key));
349
350 if (dsa->pub_key == NULL)
351 {
352 if ((pub_key=BN_new()) == NULL) goto err;
353 }
354 else
355 pub_key=dsa->pub_key;
356
357 if (!BN_mod_exp(pub_key,dsa->g,priv_key,dsa->p,ctx)) goto err;
358
359 dsa->priv_key=priv_key;
360 dsa->pub_key=pub_key;
361
362 if(!fips_check_dsa(dsa))
363 goto err;
364
365 ok=1;
366
367err:
368 if ((pub_key != NULL) && (dsa->pub_key == NULL)) BN_free(pub_key);
369 if ((priv_key != NULL) && (dsa->priv_key == NULL)) BN_free(priv_key);
370 if (ctx != NULL) BN_CTX_free(ctx);
371 return(ok);
372 }
373#endif
374#endif
diff --git a/src/lib/libssl/src/fips/dsa/fips_dsa_ossl.c b/src/lib/libssl/src/fips/dsa/fips_dsa_ossl.c
new file mode 100644
index 0000000000..0ae5eb4b9e
--- /dev/null
+++ b/src/lib/libssl/src/fips/dsa/fips_dsa_ossl.c
@@ -0,0 +1,387 @@
1/* crypto/dsa/dsa_ossl.c */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59/* Original version from Steven Schoch <schoch@sheba.arc.nasa.gov> */
60
61#include <stdio.h>
62#include <openssl/bn.h>
63#include <openssl/dsa.h>
64#include <openssl/rand.h>
65#include <openssl/asn1.h>
66#ifndef OPENSSL_NO_ENGINE
67#include <openssl/engine.h>
68#endif
69#include <openssl/fips.h>
70
71#ifdef OPENSSL_FIPS
72
73static DSA_SIG *dsa_do_sign(const unsigned char *dgst, FIPS_DSA_SIZE_T dlen, DSA *dsa);
74static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp);
75static int dsa_do_verify(const unsigned char *dgst, FIPS_DSA_SIZE_T dgst_len, DSA_SIG *sig,
76 DSA *dsa);
77static int dsa_init(DSA *dsa);
78static int dsa_finish(DSA *dsa);
79static int dsa_mod_exp(DSA *dsa, BIGNUM *rr, BIGNUM *a1, BIGNUM *p1,
80 BIGNUM *a2, BIGNUM *p2, BIGNUM *m, BN_CTX *ctx,
81 BN_MONT_CTX *in_mont);
82static int dsa_bn_mod_exp(DSA *dsa, BIGNUM *r, BIGNUM *a, const BIGNUM *p,
83 const BIGNUM *m, BN_CTX *ctx,
84 BN_MONT_CTX *m_ctx);
85
86static DSA_METHOD openssl_dsa_meth = {
87"OpenSSL FIPS DSA method",
88dsa_do_sign,
89dsa_sign_setup,
90dsa_do_verify,
91dsa_mod_exp,
92dsa_bn_mod_exp,
93dsa_init,
94dsa_finish,
950,
96NULL
97};
98
99int FIPS_dsa_check(struct dsa_st *dsa)
100 {
101 if(dsa->meth != &openssl_dsa_meth || dsa->meth->dsa_do_sign != dsa_do_sign
102 || dsa->meth->dsa_sign_setup != dsa_sign_setup
103 || dsa->meth->dsa_mod_exp != dsa_mod_exp
104 || dsa->meth->bn_mod_exp != dsa_bn_mod_exp
105 || dsa->meth->init != dsa_init
106 || dsa->meth->finish != dsa_finish)
107 {
108 FIPSerr(FIPS_F_FIPS_DSA_CHECK,FIPS_R_NON_FIPS_METHOD);
109 return 0;
110 }
111 return 1;
112 }
113
114const DSA_METHOD *DSA_OpenSSL(void)
115{
116 return &openssl_dsa_meth;
117}
118
119static DSA_SIG *dsa_do_sign(const unsigned char *dgst, FIPS_DSA_SIZE_T dlen, DSA *dsa)
120 {
121 BIGNUM *kinv=NULL,*r=NULL,*s=NULL;
122 BIGNUM m;
123 BIGNUM xr;
124 BN_CTX *ctx=NULL;
125 int i,reason=ERR_R_BN_LIB;
126 DSA_SIG *ret=NULL;
127
128 if(FIPS_selftest_failed())
129 {
130 FIPSerr(FIPS_F_DSA_DO_SIGN,FIPS_R_FIPS_SELFTEST_FAILED);
131 return NULL;
132 }
133
134 BN_init(&m);
135 BN_init(&xr);
136
137 if (!dsa->p || !dsa->q || !dsa->g)
138 {
139 reason=DSA_R_MISSING_PARAMETERS;
140 goto err;
141 }
142
143 s=BN_new();
144 if (s == NULL) goto err;
145
146 i=BN_num_bytes(dsa->q); /* should be 20 */
147 if ((dlen > i) || (dlen > 50))
148 {
149 reason=DSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE;
150 goto err;
151 }
152
153 ctx=BN_CTX_new();
154 if (ctx == NULL) goto err;
155
156 if ((dsa->kinv == NULL) || (dsa->r == NULL))
157 {
158 if (!DSA_sign_setup(dsa,ctx,&kinv,&r)) goto err;
159 }
160 else
161 {
162 kinv=dsa->kinv;
163 dsa->kinv=NULL;
164 r=dsa->r;
165 dsa->r=NULL;
166 }
167
168 if (BN_bin2bn(dgst,dlen,&m) == NULL) goto err;
169
170 /* Compute s = inv(k) (m + xr) mod q */
171 if (!BN_mod_mul(&xr,dsa->priv_key,r,dsa->q,ctx)) goto err;/* s = xr */
172 if (!BN_add(s, &xr, &m)) goto err; /* s = m + xr */
173 if (BN_cmp(s,dsa->q) > 0)
174 BN_sub(s,s,dsa->q);
175 if (!BN_mod_mul(s,s,kinv,dsa->q,ctx)) goto err;
176
177 ret=DSA_SIG_new();
178 if (ret == NULL) goto err;
179 ret->r = r;
180 ret->s = s;
181
182err:
183 if (!ret)
184 {
185 DSAerr(DSA_F_DSA_DO_SIGN,reason);
186 BN_free(r);
187 BN_free(s);
188 }
189 if (ctx != NULL) BN_CTX_free(ctx);
190 BN_clear_free(&m);
191 BN_clear_free(&xr);
192 if (kinv != NULL) /* dsa->kinv is NULL now if we used it */
193 BN_clear_free(kinv);
194 return(ret);
195 }
196
197static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)
198 {
199 BN_CTX *ctx;
200 BIGNUM k,*kinv=NULL,*r=NULL;
201 int ret=0;
202
203 if (!dsa->p || !dsa->q || !dsa->g)
204 {
205 DSAerr(DSA_F_DSA_SIGN_SETUP,DSA_R_MISSING_PARAMETERS);
206 return 0;
207 }
208
209 BN_init(&k);
210
211 if (ctx_in == NULL)
212 {
213 if ((ctx=BN_CTX_new()) == NULL) goto err;
214 }
215 else
216 ctx=ctx_in;
217
218 if ((r=BN_new()) == NULL) goto err;
219 kinv=NULL;
220
221 /* Get random k */
222 do
223 if (!BN_rand_range(&k, dsa->q)) goto err;
224 while (BN_is_zero(&k));
225
226 if ((dsa->method_mont_p == NULL) && (dsa->flags & DSA_FLAG_CACHE_MONT_P))
227 {
228 if ((dsa->method_mont_p=(char *)BN_MONT_CTX_new()) != NULL)
229 if (!BN_MONT_CTX_set((BN_MONT_CTX *)dsa->method_mont_p,
230 dsa->p,ctx)) goto err;
231 }
232
233 /* Compute r = (g^k mod p) mod q */
234 if (!dsa->meth->bn_mod_exp(dsa, r,dsa->g,&k,dsa->p,ctx,
235 (BN_MONT_CTX *)dsa->method_mont_p)) goto err;
236 if (!BN_mod(r,r,dsa->q,ctx)) goto err;
237
238 /* Compute part of 's = inv(k) (m + xr) mod q' */
239 if ((kinv=BN_mod_inverse(NULL,&k,dsa->q,ctx)) == NULL) goto err;
240
241 if (*kinvp != NULL) BN_clear_free(*kinvp);
242 *kinvp=kinv;
243 kinv=NULL;
244 if (*rp != NULL) BN_clear_free(*rp);
245 *rp=r;
246 ret=1;
247err:
248 if (!ret)
249 {
250 DSAerr(DSA_F_DSA_SIGN_SETUP,ERR_R_BN_LIB);
251 if (kinv != NULL) BN_clear_free(kinv);
252 if (r != NULL) BN_clear_free(r);
253 }
254 if (ctx_in == NULL) BN_CTX_free(ctx);
255 if (kinv != NULL) BN_clear_free(kinv);
256 BN_clear_free(&k);
257 return(ret);
258 }
259
260static int dsa_do_verify(const unsigned char *dgst, FIPS_DSA_SIZE_T dgst_len, DSA_SIG *sig,
261 DSA *dsa)
262 {
263 BN_CTX *ctx;
264 BIGNUM u1,u2,t1;
265 BN_MONT_CTX *mont=NULL;
266 int ret = -1;
267
268 if (!dsa->p || !dsa->q || !dsa->g)
269 {
270 DSAerr(DSA_F_DSA_DO_VERIFY,DSA_R_MISSING_PARAMETERS);
271 return -1;
272 }
273
274 if(FIPS_selftest_failed())
275 {
276 FIPSerr(FIPS_F_DSA_DO_VERIFY,FIPS_R_FIPS_SELFTEST_FAILED);
277 return -1;
278 }
279
280 BN_init(&u1);
281 BN_init(&u2);
282 BN_init(&t1);
283
284 if ((ctx=BN_CTX_new()) == NULL) goto err;
285
286 if (BN_is_zero(sig->r) || sig->r->neg || BN_ucmp(sig->r, dsa->q) >= 0)
287 {
288 ret = 0;
289 goto err;
290 }
291 if (BN_is_zero(sig->s) || sig->s->neg || BN_ucmp(sig->s, dsa->q) >= 0)
292 {
293 ret = 0;
294 goto err;
295 }
296
297 /* Calculate W = inv(S) mod Q
298 * save W in u2 */
299 if ((BN_mod_inverse(&u2,sig->s,dsa->q,ctx)) == NULL) goto err;
300
301 /* save M in u1 */
302 if (BN_bin2bn(dgst,dgst_len,&u1) == NULL) goto err;
303
304 /* u1 = M * w mod q */
305 if (!BN_mod_mul(&u1,&u1,&u2,dsa->q,ctx)) goto err;
306
307 /* u2 = r * w mod q */
308 if (!BN_mod_mul(&u2,sig->r,&u2,dsa->q,ctx)) goto err;
309
310 if ((dsa->method_mont_p == NULL) && (dsa->flags & DSA_FLAG_CACHE_MONT_P))
311 {
312 if ((dsa->method_mont_p=(char *)BN_MONT_CTX_new()) != NULL)
313 if (!BN_MONT_CTX_set((BN_MONT_CTX *)dsa->method_mont_p,
314 dsa->p,ctx)) goto err;
315 }
316 mont=(BN_MONT_CTX *)dsa->method_mont_p;
317
318#if 0
319 {
320 BIGNUM t2;
321
322 BN_init(&t2);
323 /* v = ( g^u1 * y^u2 mod p ) mod q */
324 /* let t1 = g ^ u1 mod p */
325 if (!BN_mod_exp_mont(&t1,dsa->g,&u1,dsa->p,ctx,mont)) goto err;
326 /* let t2 = y ^ u2 mod p */
327 if (!BN_mod_exp_mont(&t2,dsa->pub_key,&u2,dsa->p,ctx,mont)) goto err;
328 /* let u1 = t1 * t2 mod p */
329 if (!BN_mod_mul(&u1,&t1,&t2,dsa->p,ctx)) goto err_bn;
330 BN_free(&t2);
331 }
332 /* let u1 = u1 mod q */
333 if (!BN_mod(&u1,&u1,dsa->q,ctx)) goto err;
334#else
335 {
336 if (!dsa->meth->dsa_mod_exp(dsa, &t1,dsa->g,&u1,dsa->pub_key,&u2,
337 dsa->p,ctx,mont)) goto err;
338 /* BN_copy(&u1,&t1); */
339 /* let u1 = u1 mod q */
340 if (!BN_mod(&u1,&t1,dsa->q,ctx)) goto err;
341 }
342#endif
343 /* V is now in u1. If the signature is correct, it will be
344 * equal to R. */
345 ret=(BN_ucmp(&u1, sig->r) == 0);
346
347 err:
348 if (ret != 1) DSAerr(DSA_F_DSA_DO_VERIFY,ERR_R_BN_LIB);
349 if (ctx != NULL) BN_CTX_free(ctx);
350 BN_free(&u1);
351 BN_free(&u2);
352 BN_free(&t1);
353 return(ret);
354 }
355
356static int dsa_init(DSA *dsa)
357{
358 dsa->flags|=DSA_FLAG_CACHE_MONT_P;
359 return(1);
360}
361
362static int dsa_finish(DSA *dsa)
363{
364 if(dsa->method_mont_p)
365 BN_MONT_CTX_free((BN_MONT_CTX *)dsa->method_mont_p);
366 return(1);
367}
368
369static int dsa_mod_exp(DSA *dsa, BIGNUM *rr, BIGNUM *a1, BIGNUM *p1,
370 BIGNUM *a2, BIGNUM *p2, BIGNUM *m, BN_CTX *ctx,
371 BN_MONT_CTX *in_mont)
372{
373 return BN_mod_exp2_mont(rr, a1, p1, a2, p2, m, ctx, in_mont);
374}
375
376static int dsa_bn_mod_exp(DSA *dsa, BIGNUM *r, BIGNUM *a, const BIGNUM *p,
377 const BIGNUM *m, BN_CTX *ctx,
378 BN_MONT_CTX *m_ctx)
379{
380 return BN_mod_exp_mont(r, a, p, m, ctx, m_ctx);
381}
382
383#else /* ndef OPENSSL_FIPS */
384
385static void *dummy=&dummy;
386
387#endif /* ndef OPENSSL_FIPS */
diff --git a/src/lib/libssl/src/fips/dsa/fips_dsa_selftest.c b/src/lib/libssl/src/fips/dsa/fips_dsa_selftest.c
new file mode 100644
index 0000000000..2c88f0af44
--- /dev/null
+++ b/src/lib/libssl/src/fips/dsa/fips_dsa_selftest.c
@@ -0,0 +1,168 @@
1/* crypto/dsa/dsatest.c */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <string.h>
60#include <openssl/crypto.h>
61#include <openssl/dsa.h>
62#include <openssl/fips.h>
63#include <openssl/err.h>
64
65#ifdef OPENSSL_FIPS
66
67/* seed, out_p, out_q, out_g are taken from the updated Appendix 5 to
68 * FIPS PUB 186 and also appear in Appendix 5 to FIPS PIB 186-1 */
69static unsigned char seed[20]={
70 0xd5,0x01,0x4e,0x4b,0x60,0xef,0x2b,0xa8,0xb6,0x21,0x1b,0x40,
71 0x62,0xba,0x32,0x24,0xe0,0x42,0x7d,0xd3,
72 };
73
74static unsigned char out_p[]={
75 0x8d,0xf2,0xa4,0x94,0x49,0x22,0x76,0xaa,
76 0x3d,0x25,0x75,0x9b,0xb0,0x68,0x69,0xcb,
77 0xea,0xc0,0xd8,0x3a,0xfb,0x8d,0x0c,0xf7,
78 0xcb,0xb8,0x32,0x4f,0x0d,0x78,0x82,0xe5,
79 0xd0,0x76,0x2f,0xc5,0xb7,0x21,0x0e,0xaf,
80 0xc2,0xe9,0xad,0xac,0x32,0xab,0x7a,0xac,
81 0x49,0x69,0x3d,0xfb,0xf8,0x37,0x24,0xc2,
82 0xec,0x07,0x36,0xee,0x31,0xc8,0x02,0x91,
83 };
84
85static unsigned char out_q[]={
86 0xc7,0x73,0x21,0x8c,0x73,0x7e,0xc8,0xee,
87 0x99,0x3b,0x4f,0x2d,0xed,0x30,0xf4,0x8e,
88 0xda,0xce,0x91,0x5f,
89 };
90
91static unsigned char out_g[]={
92 0x62,0x6d,0x02,0x78,0x39,0xea,0x0a,0x13,
93 0x41,0x31,0x63,0xa5,0x5b,0x4c,0xb5,0x00,
94 0x29,0x9d,0x55,0x22,0x95,0x6c,0xef,0xcb,
95 0x3b,0xff,0x10,0xf3,0x99,0xce,0x2c,0x2e,
96 0x71,0xcb,0x9d,0xe5,0xfa,0x24,0xba,0xbf,
97 0x58,0xe5,0xb7,0x95,0x21,0x92,0x5c,0x9c,
98 0xc4,0x2e,0x9f,0x6f,0x46,0x4b,0x08,0x8c,
99 0xc5,0x72,0xaf,0x53,0xe6,0xd7,0x88,0x02,
100 };
101
102static const unsigned char str1[]="12345678901234567890";
103
104void FIPS_corrupt_dsa()
105 {
106 ++seed[0];
107 }
108
109int FIPS_selftest_dsa()
110 {
111 DSA *dsa=NULL;
112 int counter,i,j;
113 unsigned char buf[256];
114 unsigned long h;
115 unsigned char sig[256];
116 unsigned int siglen;
117
118 dsa=DSA_generate_parameters(512,seed,20,&counter,&h,NULL,NULL);
119
120 if(dsa == NULL)
121 {
122 FIPSerr(FIPS_F_FIPS_SELFTEST_DSA,FIPS_R_SELFTEST_FAILED);
123 return 0;
124 }
125 if (counter != 105)
126 {
127 FIPSerr(FIPS_F_FIPS_SELFTEST_DSA,FIPS_R_SELFTEST_FAILED);
128 return 0;
129 }
130 if (h != 2)
131 {
132 FIPSerr(FIPS_F_FIPS_SELFTEST_DSA,FIPS_R_SELFTEST_FAILED);
133 return 0;
134 }
135 i=BN_bn2bin(dsa->q,buf);
136 j=sizeof(out_q);
137 if (i != j || memcmp(buf,out_q,i) != 0)
138 {
139 FIPSerr(FIPS_F_FIPS_SELFTEST_DSA,FIPS_R_SELFTEST_FAILED);
140 return 0;
141 }
142
143 i=BN_bn2bin(dsa->p,buf);
144 j=sizeof(out_p);
145 if (i != j || memcmp(buf,out_p,i) != 0)
146 {
147 FIPSerr(FIPS_F_FIPS_SELFTEST_DSA,FIPS_R_SELFTEST_FAILED);
148 return 0;
149 }
150
151 i=BN_bn2bin(dsa->g,buf);
152 j=sizeof(out_g);
153 if (i != j || memcmp(buf,out_g,i) != 0)
154 {
155 FIPSerr(FIPS_F_FIPS_SELFTEST_DSA,FIPS_R_SELFTEST_FAILED);
156 return 0;
157 }
158 DSA_generate_key(dsa);
159 DSA_sign(0, str1, 20, sig, &siglen, dsa);
160 if(DSA_verify(0, str1, 20, sig, siglen, dsa) != 1)
161 {
162 FIPSerr(FIPS_F_FIPS_SELFTEST_DSA,FIPS_R_SELFTEST_FAILED);
163 return 0;
164 }
165 DSA_free(dsa);
166 return 1;
167 }
168#endif
diff --git a/src/lib/libssl/src/fips/dsa/fips_dsatest.c b/src/lib/libssl/src/fips/dsa/fips_dsatest.c
new file mode 100644
index 0000000000..7215940ede
--- /dev/null
+++ b/src/lib/libssl/src/fips/dsa/fips_dsatest.c
@@ -0,0 +1,257 @@
1/* crypto/dsa/dsatest.c */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdio.h>
60#include <stdlib.h>
61#include <string.h>
62#include <sys/types.h>
63#include <sys/stat.h>
64
65#include "e_os.h"
66
67#include <openssl/crypto.h>
68#include <openssl/rand.h>
69#include <openssl/bio.h>
70#include <openssl/err.h>
71#ifndef OPENSSL_NO_ENGINE
72#include <openssl/engine.h>
73#endif
74#include <openssl/fips.h>
75#include <openssl/fips_rand.h>
76
77#if defined(OPENSSL_NO_DSA) || !defined(OPENSSL_FIPS)
78int main(int argc, char *argv[])
79{
80 printf("No FIPS DSA support\n");
81 return(0);
82}
83#else
84#include <openssl/dsa.h>
85
86#ifdef OPENSSL_SYS_WIN16
87#define MS_CALLBACK _far _loadds
88#else
89#define MS_CALLBACK
90#endif
91
92static void MS_CALLBACK dsa_cb(int p, int n, void *arg);
93
94/* seed, out_p, out_q, out_g are taken from the updated Appendix 5 to
95 * FIPS PUB 186 and also appear in Appendix 5 to FIPS PIB 186-1 */
96static unsigned char seed[20]={
97 0xd5,0x01,0x4e,0x4b,0x60,0xef,0x2b,0xa8,0xb6,0x21,0x1b,0x40,
98 0x62,0xba,0x32,0x24,0xe0,0x42,0x7d,0xd3,
99 };
100
101static unsigned char out_p[]={
102 0x8d,0xf2,0xa4,0x94,0x49,0x22,0x76,0xaa,
103 0x3d,0x25,0x75,0x9b,0xb0,0x68,0x69,0xcb,
104 0xea,0xc0,0xd8,0x3a,0xfb,0x8d,0x0c,0xf7,
105 0xcb,0xb8,0x32,0x4f,0x0d,0x78,0x82,0xe5,
106 0xd0,0x76,0x2f,0xc5,0xb7,0x21,0x0e,0xaf,
107 0xc2,0xe9,0xad,0xac,0x32,0xab,0x7a,0xac,
108 0x49,0x69,0x3d,0xfb,0xf8,0x37,0x24,0xc2,
109 0xec,0x07,0x36,0xee,0x31,0xc8,0x02,0x91,
110 };
111
112static unsigned char out_q[]={
113 0xc7,0x73,0x21,0x8c,0x73,0x7e,0xc8,0xee,
114 0x99,0x3b,0x4f,0x2d,0xed,0x30,0xf4,0x8e,
115 0xda,0xce,0x91,0x5f,
116 };
117
118static unsigned char out_g[]={
119 0x62,0x6d,0x02,0x78,0x39,0xea,0x0a,0x13,
120 0x41,0x31,0x63,0xa5,0x5b,0x4c,0xb5,0x00,
121 0x29,0x9d,0x55,0x22,0x95,0x6c,0xef,0xcb,
122 0x3b,0xff,0x10,0xf3,0x99,0xce,0x2c,0x2e,
123 0x71,0xcb,0x9d,0xe5,0xfa,0x24,0xba,0xbf,
124 0x58,0xe5,0xb7,0x95,0x21,0x92,0x5c,0x9c,
125 0xc4,0x2e,0x9f,0x6f,0x46,0x4b,0x08,0x8c,
126 0xc5,0x72,0xaf,0x53,0xe6,0xd7,0x88,0x02,
127 };
128
129static const unsigned char str1[]="12345678901234567890";
130
131static const char rnd_seed[] = "string to make the random number generator think it has entropy";
132static const unsigned char rnd_key1[]="12345678";
133static const unsigned char rnd_key2[]="abcdefgh";
134
135static BIO *bio_err=NULL;
136
137int main(int argc, char **argv)
138 {
139 DSA *dsa=NULL;
140 int counter,ret=0,i,j;
141 unsigned char buf[256];
142 unsigned long h;
143 unsigned char sig[256];
144 unsigned int siglen;
145
146 if (bio_err == NULL)
147 bio_err=BIO_new_fp(stderr,BIO_NOCLOSE);
148
149#ifdef OPENSSL_FIPS
150 if(!FIPS_mode_set(1,argv[0]))
151 {
152 ERR_print_errors(bio_err);
153 EXIT(1);
154 }
155#endif
156 CRYPTO_malloc_debug_init();
157 CRYPTO_dbg_set_options(V_CRYPTO_MDEBUG_ALL);
158 CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
159
160 ERR_load_crypto_strings();
161 FIPS_set_prng_key(rnd_key1,rnd_key2);
162 RAND_seed(rnd_seed, sizeof rnd_seed);
163
164 BIO_printf(bio_err,"test generation of DSA parameters\n");
165
166 dsa=DSA_generate_parameters(512,seed,20,&counter,&h,dsa_cb,bio_err);
167
168 BIO_printf(bio_err,"seed\n");
169 for (i=0; i<20; i+=4)
170 {
171 BIO_printf(bio_err,"%02X%02X%02X%02X ",
172 seed[i],seed[i+1],seed[i+2],seed[i+3]);
173 }
174 BIO_printf(bio_err,"\ncounter=%d h=%d\n",counter,h);
175
176 if (dsa == NULL) goto end;
177 DSA_print(bio_err,dsa,0);
178 if (counter != 105)
179 {
180 BIO_printf(bio_err,"counter should be 105\n");
181 goto end;
182 }
183 if (h != 2)
184 {
185 BIO_printf(bio_err,"h should be 2\n");
186 goto end;
187 }
188
189 i=BN_bn2bin(dsa->q,buf);
190 j=sizeof(out_q);
191 if ((i != j) || (memcmp(buf,out_q,i) != 0))
192 {
193 BIO_printf(bio_err,"q value is wrong\n");
194 goto end;
195 }
196
197 i=BN_bn2bin(dsa->p,buf);
198 j=sizeof(out_p);
199 if ((i != j) || (memcmp(buf,out_p,i) != 0))
200 {
201 BIO_printf(bio_err,"p value is wrong\n");
202 goto end;
203 }
204
205 i=BN_bn2bin(dsa->g,buf);
206 j=sizeof(out_g);
207 if ((i != j) || (memcmp(buf,out_g,i) != 0))
208 {
209 BIO_printf(bio_err,"g value is wrong\n");
210 goto end;
211 }
212 DSA_generate_key(dsa);
213 DSA_sign(0, str1, 20, sig, &siglen, dsa);
214 if (DSA_verify(0, str1, 20, sig, siglen, dsa) == 1)
215 ret=1;
216end:
217 if (!ret)
218 ERR_print_errors(bio_err);
219 if (dsa != NULL) DSA_free(dsa);
220 CRYPTO_cleanup_all_ex_data();
221 ERR_remove_state(0);
222 ERR_free_strings();
223 CRYPTO_mem_leaks(bio_err);
224 if (bio_err != NULL)
225 {
226 BIO_free(bio_err);
227 bio_err = NULL;
228 }
229 EXIT(!ret);
230 return(!ret);
231 }
232
233static int cb_exit(int ec)
234 {
235 EXIT(ec);
236 return(0); /* To keep some compilers quiet */
237 }
238
239static void MS_CALLBACK dsa_cb(int p, int n, void *arg)
240 {
241 char c='*';
242 static int ok=0,num=0;
243
244 if (p == 0) { c='.'; num++; };
245 if (p == 1) c='+';
246 if (p == 2) { c='*'; ok++; }
247 if (p == 3) c='\n';
248 BIO_write(arg,&c,1);
249 (void)BIO_flush(arg);
250
251 if (!ok && (p == 0) && (num > 1))
252 {
253 BIO_printf((BIO *)arg,"error in dsatest\n");
254 cb_exit(1);
255 }
256 }
257#endif
diff --git a/src/lib/libssl/src/fips/dsa/fips_dssvs.c b/src/lib/libssl/src/fips/dsa/fips_dssvs.c
new file mode 100644
index 0000000000..50a4d96986
--- /dev/null
+++ b/src/lib/libssl/src/fips/dsa/fips_dssvs.c
@@ -0,0 +1,306 @@
1#include <openssl/bn.h>
2#include <openssl/dsa.h>
3#include <openssl/fips.h>
4#include <openssl/err.h>
5#include <openssl/sha.h>
6#include <string.h>
7
8int hex2bin(const char *in, unsigned char *out)
9 {
10 int n1, n2;
11 unsigned char ch;
12
13 for (n1=0,n2=0 ; in[n1] && in[n1] != '\n' ; )
14 { /* first byte */
15 if ((in[n1] >= '0') && (in[n1] <= '9'))
16 ch = in[n1++] - '0';
17 else if ((in[n1] >= 'A') && (in[n1] <= 'F'))
18 ch = in[n1++] - 'A' + 10;
19 else if ((in[n1] >= 'a') && (in[n1] <= 'f'))
20 ch = in[n1++] - 'a' + 10;
21 else
22 return -1;
23 if(!in[n1])
24 {
25 out[n2++]=ch;
26 break;
27 }
28 out[n2] = ch << 4;
29 /* second byte */
30 if ((in[n1] >= '0') && (in[n1] <= '9'))
31 ch = in[n1++] - '0';
32 else if ((in[n1] >= 'A') && (in[n1] <= 'F'))
33 ch = in[n1++] - 'A' + 10;
34 else if ((in[n1] >= 'a') && (in[n1] <= 'f'))
35 ch = in[n1++] - 'a' + 10;
36 else
37 return -1;
38 out[n2++] |= ch;
39 }
40 return n2;
41 }
42
43BIGNUM *hex2bn(const char *in)
44 {
45 BIGNUM *p=BN_new();
46
47 BN_hex2bn(&p,in);
48
49 return p;
50 }
51
52int bin2hex(const unsigned char *in,int len,char *out)
53 {
54 int n1, n2;
55 unsigned char ch;
56
57 for (n1=0,n2=0 ; n1 < len ; ++n1)
58 {
59 ch=in[n1] >> 4;
60 if (ch <= 0x09)
61 out[n2++]=ch+'0';
62 else
63 out[n2++]=ch-10+'a';
64 ch=in[n1] & 0x0f;
65 if(ch <= 0x09)
66 out[n2++]=ch+'0';
67 else
68 out[n2++]=ch-10+'a';
69 }
70 out[n2]='\0';
71 return n2;
72 }
73
74void pv(const char *tag,const unsigned char *val,int len)
75 {
76 char obuf[2048];
77
78 bin2hex(val,len,obuf);
79 printf("%s = %s\n",tag,obuf);
80 }
81
82void pbn(const char *tag,const BIGNUM *val)
83 {
84 printf("%s = %s\n",tag,BN_bn2hex(val));
85 }
86
87void primes()
88 {
89 char buf[10240];
90
91 while(fgets(buf,sizeof buf,stdin) != NULL)
92 {
93 fputs(buf,stdout);
94 if(!strncmp(buf,"Prime= ",7))
95 {
96 BIGNUM *pp;
97
98 pp=BN_new();
99 BN_hex2bn(&pp,buf+7);
100 printf("result= %c\n",
101 BN_is_prime(pp,20,NULL,NULL,NULL) ? 'P' : 'F');
102 }
103 }
104 }
105
106void pqg()
107 {
108 char buf[1024];
109 int nmod=0;
110
111 while(fgets(buf,sizeof buf,stdin) != NULL)
112 {
113 if(!strncmp(buf,"[mod = ",7))
114 nmod=atoi(buf+7);
115 else if(!strncmp(buf,"N = ",4))
116 {
117 int n=atoi(buf+4);
118
119 printf("[mod = %d]\n\n",nmod);
120
121 while(n--)
122 {
123 unsigned char seed[20];
124 DSA *dsa;
125 int counter;
126 unsigned long h;
127
128 dsa=DSA_generate_parameters(nmod,seed,0,&counter,&h,NULL,NULL);
129 printf("P = %s\n",BN_bn2hex(dsa->p));
130 printf("Q = %s\n",BN_bn2hex(dsa->q));
131 printf("G = %s\n",BN_bn2hex(dsa->g));
132 pv("Seed",seed,20);
133 printf("c = %d\n",counter);
134 printf("H = %lx\n",h);
135 putc('\n',stdout);
136 }
137 }
138 else
139 fputs(buf,stdout);
140 }
141 }
142
143void keypair()
144 {
145 char buf[1024];
146 int nmod=0;
147
148 while(fgets(buf,sizeof buf,stdin) != NULL)
149 {
150 if(!strncmp(buf,"[mod = ",7))
151 nmod=atoi(buf+7);
152 else if(!strncmp(buf,"N = ",4))
153 {
154 DSA *dsa;
155 int n=atoi(buf+4);
156
157 printf("[mod = %d]\n\n",nmod);
158
159 dsa=DSA_generate_parameters(nmod,NULL,0,NULL,NULL,NULL,NULL);
160 pbn("P",dsa->p);
161 pbn("Q",dsa->q);
162 pbn("G",dsa->g);
163 putc('\n',stdout);
164
165 while(n--)
166 {
167 DSA_generate_key(dsa);
168
169 pbn("X",dsa->priv_key);
170 pbn("Y",dsa->pub_key);
171 putc('\n',stdout);
172 }
173 }
174 }
175 }
176
177void siggen()
178 {
179 char buf[1024];
180 int nmod=0;
181 DSA *dsa=NULL;
182
183 while(fgets(buf,sizeof buf,stdin) != NULL)
184 {
185 if(!strncmp(buf,"[mod = ",7))
186 {
187 nmod=atoi(buf+7);
188 printf("[mod = %d]\n\n",nmod);
189
190 dsa=DSA_generate_parameters(nmod,NULL,0,NULL,NULL,NULL,NULL);
191 pbn("P",dsa->p);
192 pbn("Q",dsa->q);
193 pbn("G",dsa->g);
194 putc('\n',stdout);
195 }
196 else if(!strncmp(buf,"Msg = ",6))
197 {
198 unsigned char msg[1024];
199 unsigned char hash[20];
200 int n;
201 DSA_SIG *sig;
202
203 n=hex2bin(buf+6,msg);
204 pv("Msg",msg,n);
205
206 DSA_generate_key(dsa);
207 pbn("Y",dsa->pub_key);
208
209 SHA1(msg,n,hash);
210 sig=DSA_do_sign(hash,sizeof hash,dsa);
211 pbn("R",sig->r);
212 pbn("S",sig->s);
213 putc('\n',stdout);
214 }
215 }
216 }
217
218void sigver()
219 {
220 DSA *dsa=NULL;
221 char buf[1024];
222 int nmod=0;
223 unsigned char hash[20];
224 DSA_SIG *sig=DSA_SIG_new();
225
226 while(fgets(buf,sizeof buf,stdin) != NULL)
227 {
228 if(!strncmp(buf,"[mod = ",7))
229 {
230 nmod=atoi(buf+7);
231 if(dsa)
232 DSA_free(dsa);
233 dsa=DSA_new();
234 }
235 else if(!strncmp(buf,"P = ",4))
236 dsa->p=hex2bn(buf+4);
237 else if(!strncmp(buf,"Q = ",4))
238 dsa->q=hex2bn(buf+4);
239 else if(!strncmp(buf,"G = ",4))
240 {
241 dsa->g=hex2bn(buf+4);
242
243 printf("[mod = %d]\n\n",nmod);
244 pbn("P",dsa->p);
245 pbn("Q",dsa->q);
246 pbn("G",dsa->g);
247 putc('\n',stdout);
248 }
249 else if(!strncmp(buf,"Msg = ",6))
250 {
251 unsigned char msg[1024];
252 int n;
253
254 n=hex2bin(buf+6,msg);
255 pv("Msg",msg,n);
256 SHA1(msg,n,hash);
257 }
258 else if(!strncmp(buf,"Y = ",4))
259 dsa->pub_key=hex2bn(buf+4);
260 else if(!strncmp(buf,"R = ",4))
261 sig->r=hex2bn(buf+4);
262 else if(!strncmp(buf,"S = ",4))
263 {
264 sig->s=hex2bn(buf+4);
265
266 pbn("Y",dsa->pub_key);
267 pbn("R",sig->r);
268 pbn("S",sig->s);
269 printf("Result = %c\n",DSA_do_verify(hash,sizeof hash,sig,dsa)
270 ? 'P' : 'F');
271 putc('\n',stdout);
272 }
273 }
274 }
275
276int main(int argc,char **argv)
277 {
278 if(argc != 2)
279 {
280 fprintf(stderr,"%s [prime|pqg]\n",argv[0]);
281 exit(1);
282 }
283 if(!FIPS_mode_set(1,argv[0]))
284 {
285 ERR_load_crypto_strings();
286 ERR_print_errors(BIO_new_fp(stderr,BIO_NOCLOSE));
287 exit(1);
288 }
289 if(!strcmp(argv[1],"prime"))
290 primes();
291 else if(!strcmp(argv[1],"pqg"))
292 pqg();
293 else if(!strcmp(argv[1],"keypair"))
294 keypair();
295 else if(!strcmp(argv[1],"siggen"))
296 siggen();
297 else if(!strcmp(argv[1],"sigver"))
298 sigver();
299 else
300 {
301 fprintf(stderr,"Don't know how to %s.\n",argv[1]);
302 exit(1);
303 }
304
305 return 0;
306 }
diff --git a/src/lib/libssl/src/fips/fips-lib.com b/src/lib/libssl/src/fips/fips-lib.com
new file mode 100644
index 0000000000..f3571bf845
--- /dev/null
+++ b/src/lib/libssl/src/fips/fips-lib.com
@@ -0,0 +1,1180 @@
1$!
2$! FIPS-LIB.COM
3$! Written By: Robert Byer
4$! Vice-President
5$! A-Com Computing, Inc.
6$! byer@mail.all-net.net
7$!
8$! Changes by Richard Levitte <richard@levitte.org>
9$!
10$! This command files compiles and creates the FIPS parts of the
11$! "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" library for OpenSSL. The "xxx"
12$! denotes the machine architecture of AXP or VAX.
13$!
14$! It was re-written so it would try to determine what "C" compiler to use
15$! or you can specify which "C" compiler to use.
16$!
17$! Specify the following as P1 to build just that part or ALL to just
18$! build everything.
19$!
20$! LIBRARY To just compile the [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library.
21$! APPS To just compile the [.xxx.EXE.CRYPTO]*.EXE
22$! ALL To do both LIBRARY and APPS
23$!
24$! Specify DEBUG or NODEBUG as P2 to compile with or without debugger
25$! information.
26$!
27$! Specify which compiler at P3 to try to compile under.
28$!
29$! VAXC For VAX C.
30$! DECC For DEC C.
31$! GNUC For GNU C.
32$!
33$! If you don't speficy a compiler, it will try to determine which
34$! "C" compiler to use.
35$!
36$! P4, if defined, sets a TCP/IP library to use, through one of the following
37$! keywords:
38$!
39$! UCX for UCX
40$! TCPIP for TCPIP (post UCX)
41$! SOCKETSHR for SOCKETSHR+NETLIB
42$!
43$! P5, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up)
44$!
45$! P6, if defined, sets a choice of crypto methods to compile.
46$! WARNING: this should only be done to recompile some part of an already
47$! fully compiled library.
48$!
49$!
50$! Define A TCP/IP Library That We Will Need To Link To.
51$! (That Is, If We Need To Link To One.)
52$!
53$ TCPIP_LIB = ""
54$!
55$! Check Which Architecture We Are Using.
56$!
57$ IF (F$GETSYI("CPU").GE.128)
58$ THEN
59$!
60$! The Architecture Is AXP
61$!
62$ ARCH := AXP
63$!
64$! Else...
65$!
66$ ELSE
67$!
68$! The Architecture Is VAX.
69$!
70$ ARCH := VAX
71$!
72$! End The Architecture Check.
73$!
74$ ENDIF
75$!
76$! Define The Different Encryption Types.
77$!
78$ ENCRYPT_TYPES = "Basic,SHA1,RAND,DES,AES,DSA,RSA,DH"
79$!
80$! Check To Make Sure We Have Valid Command Line Parameters.
81$!
82$ GOSUB CHECK_OPTIONS
83$!
84$! Initialise logical names and such
85$!
86$ GOSUB INITIALISE
87$!
88$! Tell The User What Kind of Machine We Run On.
89$!
90$ WRITE SYS$OUTPUT "Compiling On A ",ARCH," Machine."
91$!
92$! Define The OBJ Directory.
93$!
94$ OBJ_DIR := SYS$DISK:[-.'ARCH'.OBJ.CRYPTO]
95$!
96$! Check To See If The Architecture Specific OBJ Directory Exists.
97$!
98$ IF (F$PARSE(OBJ_DIR).EQS."")
99$ THEN
100$!
101$! It Dosen't Exist, So Create It.
102$!
103$ CREATE/DIR 'OBJ_DIR'
104$!
105$! End The Architecture Specific OBJ Directory Check.
106$!
107$ ENDIF
108$!
109$! Define The EXE Directory.
110$!
111$ EXE_DIR := SYS$DISK:[-.'ARCH'.EXE.CRYPTO]
112$!
113$! Check To See If The Architecture Specific Directory Exists.
114$!
115$ IF (F$PARSE(EXE_DIR).EQS."")
116$ THEN
117$!
118$! It Dosen't Exist, So Create It.
119$!
120$ CREATE/DIRECTORY 'EXE_DIR'
121$!
122$! End The Architecture Specific Directory Check.
123$!
124$ ENDIF
125$!
126$! Define The Library Name.
127$!
128$ LIB_NAME := 'EXE_DIR'LIBCRYPTO.OLB
129$!
130$! Define The CRYPTO-LIB We Are To Use.
131$!
132$ CRYPTO_LIB := 'EXE_DIR'LIBCRYPTO.OLB
133$!
134$! Check To See If We Already Have A "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" Library...
135$!
136$ IF (F$SEARCH(LIB_NAME).EQS."")
137$ THEN
138$!
139$! Guess Not, Create The Library.
140$!
141$ LIBRARY/CREATE/OBJECT 'LIB_NAME'
142$!
143$! End The Library Check.
144$!
145$ ENDIF
146$!
147$! Build our options file for the application
148$!
149$ GOSUB CHECK_OPT_FILE
150$!
151$! Define The Different Encryption "library" Strings.
152$!
153$ LIB_ = "fips,fips_err_wrapper"
154$ LIB_SHA1 = "fips_sha1dgst,fips_sha1_selftest"
155$ LIB_RAND = "fips_rand"
156$ LIB_DES = "fips_des_enc,fips_des_selftest,fips_set_key"
157$ LIB_AES = "fips_aes_core,fips_aes_selftest"
158$ LIB_DSA = "fips_dsa_ossl,fips_dsa_gen,fips_dsa_selftest"
159$ LIB_RSA = "fips_rsa_eay,fips_rsa_gen,fips_rsa_selftest"
160$ LIB_DH = "fips_dh_check,fips_dh_gen,fips_dh_key"
161$!
162$! Setup exceptional compilations
163$!
164$ COMPILEWITH_CC3 = ",bss_rtcp,"
165$ COMPILEWITH_CC4 = ",a_utctm,bss_log,o_time,"
166$ COMPILEWITH_CC5 = ",md2_dgst,md4_dgst,md5_dgst,mdc2dgst," + -
167 "sha_dgst,sha1dgst,rmd_dgst,bf_enc,"
168$!
169$! Figure Out What Other Modules We Are To Build.
170$!
171$ BUILD_SET:
172$!
173$! Define A Module Counter.
174$!
175$ MODULE_COUNTER = 0
176$!
177$! Top Of The Loop.
178$!
179$ MODULE_NEXT:
180$!
181$! Extract The Module Name From The Encryption List.
182$!
183$ MODULE_NAME = F$ELEMENT(MODULE_COUNTER,",",ENCRYPT_TYPES)
184$ IF MODULE_NAME.EQS."Basic" THEN MODULE_NAME = ""
185$ MODULE_NAME1 = MODULE_NAME
186$!
187$! Check To See If We Are At The End Of The Module List.
188$!
189$ IF (MODULE_NAME.EQS.",")
190$ THEN
191$!
192$! We Are At The End Of The Module List, Go To MODULE_DONE.
193$!
194$ GOTO MODULE_DONE
195$!
196$! End The Module List Check.
197$!
198$ ENDIF
199$!
200$! Increment The Moudle Counter.
201$!
202$ MODULE_COUNTER = MODULE_COUNTER + 1
203$!
204$! Create The Library and Apps Module Names.
205$!
206$ LIB_MODULE = "LIB_" + MODULE_NAME
207$ APPS_MODULE = "APPS_" + MODULE_NAME
208$ IF (MODULE_NAME.EQS."ASN1_2")
209$ THEN
210$ MODULE_NAME = "ASN1"
211$ ENDIF
212$ IF (MODULE_NAME.EQS."EVP_2")
213$ THEN
214$ MODULE_NAME = "EVP"
215$ ENDIF
216$!
217$! Set state (can be LIB and APPS)
218$!
219$ STATE = "LIB"
220$ IF BUILDALL .EQS. "APPS" THEN STATE = "APPS"
221$!
222$! Check if the library module name actually is defined
223$!
224$ IF F$TYPE('LIB_MODULE') .EQS. ""
225$ THEN
226$ WRITE SYS$ERROR ""
227$ WRITE SYS$ERROR "The module ",MODULE_NAME," does not exist. Continuing..."
228$ WRITE SYS$ERROR ""
229$ GOTO MODULE_NEXT
230$ ENDIF
231$!
232$! Top Of The Module Loop.
233$!
234$ MODULE_AGAIN:
235$!
236$! Tell The User What Module We Are Building.
237$!
238$ IF (MODULE_NAME1.NES."")
239$ THEN
240$ IF STATE .EQS. "LIB"
241$ THEN
242$ WRITE SYS$OUTPUT "Compiling The ",MODULE_NAME1," Library Files. (",BUILDALL,",",STATE,")"
243$ ELSE IF F$TYPE('APPS_MODULE') .NES. ""
244$ THEN
245$ WRITE SYS$OUTPUT "Compiling The ",MODULE_NAME1," Applications. (",BUILDALL,",",STATE,")"
246$ ENDIF
247$ ENDIF
248$ ENDIF
249$!
250$! Define A File Counter And Set It To "0".
251$!
252$ FILE_COUNTER = 0
253$ APPLICATION = ""
254$ APPLICATION_COUNTER = 0
255$!
256$! Top Of The File Loop.
257$!
258$ NEXT_FILE:
259$!
260$! Look in the LIB_MODULE is we're in state LIB
261$!
262$ IF STATE .EQS. "LIB"
263$ THEN
264$!
265$! O.K, Extract The File Name From The File List.
266$!
267$ FILE_NAME = F$ELEMENT(FILE_COUNTER,",",'LIB_MODULE')
268$!
269$! else
270$!
271$ ELSE
272$ FILE_NAME = ","
273$!
274$ IF F$TYPE('APPS_MODULE') .NES. ""
275$ THEN
276$!
277$! Extract The File Name From The File List.
278$! This part is a bit more complicated.
279$!
280$ IF APPLICATION .EQS. ""
281$ THEN
282$ APPLICATION = F$ELEMENT(APPLICATION_COUNTER,";",'APPS_MODULE')
283$ APPLICATION_COUNTER = APPLICATION_COUNTER + 1
284$ APPLICATION_OBJECTS = F$ELEMENT(1,"/",APPLICATION)
285$ APPLICATION = F$ELEMENT(0,"/",APPLICATION)
286$ FILE_COUNTER = 0
287$ ENDIF
288$
289$! WRITE SYS$OUTPUT "DEBUG: SHOW SYMBOL APPLICATION*"
290$! SHOW SYMBOL APPLICATION*
291$!
292$ IF APPLICATION .NES. ";"
293$ THEN
294$ FILE_NAME = F$ELEMENT(FILE_COUNTER,",",APPLICATION_OBJECTS)
295$ IF FILE_NAME .EQS. ","
296$ THEN
297$ APPLICATION = ""
298$ GOTO NEXT_FILE
299$ ENDIF
300$ ENDIF
301$ ENDIF
302$ ENDIF
303$!
304$! Check To See If We Are At The End Of The File List.
305$!
306$ IF (FILE_NAME.EQS.",")
307$ THEN
308$!
309$! We Are At The End Of The File List, Change State Or Goto FILE_DONE.
310$!
311$ IF STATE .EQS. "LIB" .AND. BUILDALL .NES. "LIBRARY"
312$ THEN
313$ STATE = "APPS"
314$ GOTO MODULE_AGAIN
315$ ELSE
316$ GOTO FILE_DONE
317$ ENDIF
318$!
319$! End The File List Check.
320$!
321$ ENDIF
322$!
323$! Increment The Counter.
324$!
325$ FILE_COUNTER = FILE_COUNTER + 1
326$!
327$! Create The Source File Name.
328$!
329$ TMP_FILE_NAME = F$ELEMENT(1,"]",FILE_NAME)
330$ IF TMP_FILE_NAME .EQS. "]" THEN TMP_FILE_NAME = FILE_NAME
331$ IF F$ELEMENT(0,".",TMP_FILE_NAME) .EQS. TMP_FILE_NAME THEN -
332 FILE_NAME = FILE_NAME + ".c"
333$ IF (MODULE_NAME.NES."")
334$ THEN
335$ SOURCE_FILE = "SYS$DISK:[." + MODULE_NAME+ "]" + FILE_NAME
336$ ELSE
337$ SOURCE_FILE = "SYS$DISK:[]" + FILE_NAME
338$ ENDIF
339$ SOURCE_FILE = SOURCE_FILE - "]["
340$!
341$! Create The Object File Name.
342$!
343$ OBJECT_FILE = OBJ_DIR + F$PARSE(FILE_NAME,,,"NAME","SYNTAX_ONLY") + ".OBJ"
344$ ON WARNING THEN GOTO NEXT_FILE
345$!
346$! Check To See If The File We Want To Compile Is Actually There.
347$!
348$ IF (F$SEARCH(SOURCE_FILE).EQS."")
349$ THEN
350$!
351$! Tell The User That The File Doesn't Exist.
352$!
353$ WRITE SYS$OUTPUT ""
354$ WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Doesn't Exist."
355$ WRITE SYS$OUTPUT ""
356$!
357$! Exit The Build.
358$!
359$ GOTO EXIT
360$!
361$! End The File Exist Check.
362$!
363$ ENDIF
364$!
365$! Tell The User We Are Compiling The File.
366$!
367$ IF (MODULE_NAME.EQS."")
368$ THEN
369$ WRITE SYS$OUTPUT "Compiling The ",FILE_NAME," File. (",BUILDALL,",",STATE,")"
370$ ENDIF
371$ IF (MODULE_NAME.NES."")
372$ THEN
373$ WRITE SYS$OUTPUT " ",FILE_NAME,""
374$ ENDIF
375$!
376$! Compile The File.
377$!
378$ ON ERROR THEN GOTO NEXT_FILE
379$ FILE_NAME0 = F$ELEMENT(0,".",FILE_NAME)
380$ IF FILE_NAME - ".mar" .NES. FILE_NAME
381$ THEN
382$ MACRO/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
383$ ELSE
384$ IF COMPILEWITH_CC3 - FILE_NAME0 .NES. COMPILEWITH_CC3
385$ THEN
386$ CC3/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
387$ ELSE
388$ IF COMPILEWITH_CC4 - FILE_NAME0 .NES. COMPILEWITH_CC4
389$ THEN
390$ CC4/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
391$ ELSE
392$ IF COMPILEWITH_CC5 - FILE_NAME0 .NES. COMPILEWITH_CC5
393$ THEN
394$ CC5/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
395$ ELSE
396$ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
397$ ENDIF
398$ ENDIF
399$ ENDIF
400$ ENDIF
401$ IF STATE .EQS. "LIB"
402$ THEN
403$!
404$! Add It To The Library.
405$!
406$ LIBRARY/REPLACE 'LIB_NAME' 'OBJECT_FILE'
407$!
408$! Time To Clean Up The Object File.
409$!
410$ DELETE 'OBJECT_FILE';*
411$ ENDIF
412$!
413$! Go Back And Do It Again.
414$!
415$ GOTO NEXT_FILE
416$!
417$! All Done With This Library Part.
418$!
419$ FILE_DONE:
420$!
421$! Time To Build Some Applications
422$!
423$ IF F$TYPE('APPS_MODULE') .NES. "" .AND. BUILDALL .NES. "LIBRARY"
424$ THEN
425$ APPLICATION_COUNTER = 0
426$ NEXT_APPLICATION:
427$ APPLICATION = F$ELEMENT(APPLICATION_COUNTER,";",'APPS_MODULE')
428$ IF APPLICATION .EQS. ";" THEN GOTO APPLICATION_DONE
429$
430$ APPLICATION_COUNTER = APPLICATION_COUNTER + 1
431$ APPLICATION_OBJECTS = F$ELEMENT(1,"/",APPLICATION)
432$ APPLICATION = F$ELEMENT(0,"/",APPLICATION)
433$
434$! WRITE SYS$OUTPUT "DEBUG: SHOW SYMBOL APPLICATION*"
435$! SHOW SYMBOL APPLICATION*
436$!
437$! Tell the user what happens
438$!
439$ WRITE SYS$OUTPUT " ",APPLICATION,".exe"
440$!
441$! Link The Program.
442$!
443$ ON ERROR THEN GOTO NEXT_APPLICATION
444$!
445$! Check To See If We Are To Link With A Specific TCP/IP Library.
446$!
447$ IF (TCPIP_LIB.NES."")
448$ THEN
449$!
450$! Link With A TCP/IP Library.
451$!
452$ LINK/'DEBUGGER'/'TRACEBACK'/EXE='EXE_DIR''APPLICATION'.EXE -
453 'OBJ_DIR''APPLICATION_OBJECTS', -
454 'CRYPTO_LIB'/LIBRARY, -
455 'TCPIP_LIB','OPT_FILE'/OPTION
456$!
457$! Else...
458$!
459$ ELSE
460$!
461$! Don't Link With A TCP/IP Library.
462$!
463$ LINK/'DEBUGGER'/'TRACEBACK'/EXE='EXE_DIR''APPLICATION'.EXE -
464 'OBJ_DIR''APPLICATION_OBJECTS',-
465 'CRYPTO_LIB'/LIBRARY, -
466 'OPT_FILE'/OPTION
467$!
468$! End The TCP/IP Library Check.
469$!
470$ ENDIF
471$ GOTO NEXT_APPLICATION
472$ APPLICATION_DONE:
473$ ENDIF
474$!
475$! Go Back And Get The Next Module.
476$!
477$ GOTO MODULE_NEXT
478$!
479$! All Done With This Module.
480$!
481$ MODULE_DONE:
482$!
483$! Tell The User That We Are All Done.
484$!
485$ WRITE SYS$OUTPUT "All Done..."
486$ EXIT:
487$ GOSUB CLEANUP
488$ EXIT
489$!
490$! Check For The Link Option FIle.
491$!
492$ CHECK_OPT_FILE:
493$!
494$! Check To See If We Need To Make A VAX C Option File.
495$!
496$ IF (COMPILER.EQS."VAXC")
497$ THEN
498$!
499$! Check To See If We Already Have A VAX C Linker Option File.
500$!
501$ IF (F$SEARCH(OPT_FILE).EQS."")
502$ THEN
503$!
504$! We Need A VAX C Linker Option File.
505$!
506$ CREATE 'OPT_FILE'
507$DECK
508!
509! Default System Options File To Link Agianst
510! The Sharable VAX C Runtime Library.
511!
512SYS$SHARE:VAXCRTL.EXE/SHARE
513$EOD
514$!
515$! End The Option File Check.
516$!
517$ ENDIF
518$!
519$! End The VAXC Check.
520$!
521$ ENDIF
522$!
523$! Check To See If We Need A GNU C Option File.
524$!
525$ IF (COMPILER.EQS."GNUC")
526$ THEN
527$!
528$! Check To See If We Already Have A GNU C Linker Option File.
529$!
530$ IF (F$SEARCH(OPT_FILE).EQS."")
531$ THEN
532$!
533$! We Need A GNU C Linker Option File.
534$!
535$ CREATE 'OPT_FILE'
536$DECK
537!
538! Default System Options File To Link Agianst
539! The Sharable C Runtime Library.
540!
541GNU_CC:[000000]GCCLIB/LIBRARY
542SYS$SHARE:VAXCRTL/SHARE
543$EOD
544$!
545$! End The Option File Check.
546$!
547$ ENDIF
548$!
549$! End The GNU C Check.
550$!
551$ ENDIF
552$!
553$! Check To See If We Need A DEC C Option File.
554$!
555$ IF (COMPILER.EQS."DECC")
556$ THEN
557$!
558$! Check To See If We Already Have A DEC C Linker Option File.
559$!
560$ IF (F$SEARCH(OPT_FILE).EQS."")
561$ THEN
562$!
563$! Figure Out If We Need An AXP Or A VAX Linker Option File.
564$!
565$ IF ARCH .EQS. "VAX"
566$ THEN
567$!
568$! We Need A DEC C Linker Option File For VAX.
569$!
570$ CREATE 'OPT_FILE'
571$DECK
572!
573! Default System Options File To Link Agianst
574! The Sharable DEC C Runtime Library.
575!
576SYS$SHARE:DECC$SHR.EXE/SHARE
577$EOD
578$!
579$! Else...
580$!
581$ ELSE
582$!
583$! Create The AXP Linker Option File.
584$!
585$ CREATE 'OPT_FILE'
586$DECK
587!
588! Default System Options File For AXP To Link Agianst
589! The Sharable C Runtime Library.
590!
591SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE
592SYS$SHARE:CMA$OPEN_RTL/SHARE
593$EOD
594$!
595$! End The VAX/AXP DEC C Option File Check.
596$!
597$ ENDIF
598$!
599$! End The Option File Search.
600$!
601$ ENDIF
602$!
603$! End The DEC C Check.
604$!
605$ ENDIF
606$!
607$! Tell The User What Linker Option File We Are Using.
608$!
609$ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"."
610$!
611$! Time To RETURN.
612$!
613$ RETURN
614$!
615$! Check The User's Options.
616$!
617$ CHECK_OPTIONS:
618$!
619$! Check To See If P1 Is Blank.
620$!
621$ IF (P1.EQS."ALL")
622$ THEN
623$!
624$! P1 Is Blank, So Build Everything.
625$!
626$ BUILDALL = "TRUE"
627$!
628$! Else...
629$!
630$ ELSE
631$!
632$! Else, Check To See If P1 Has A Valid Arguement.
633$!
634$ IF (P1.EQS."LIBRARY").OR.(P1.EQS."APPS")
635$ THEN
636$!
637$! A Valid Arguement.
638$!
639$ BUILDALL = P1
640$!
641$! Else...
642$!
643$ ELSE
644$!
645$! Tell The User We Don't Know What They Want.
646$!
647$ WRITE SYS$OUTPUT ""
648$ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:"
649$ WRITE SYS$OUTPUT ""
650$ WRITE SYS$OUTPUT " ALL : Just Build Everything."
651$ WRITE SYS$OUTPUT " LIBRARY : To Compile Just The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library."
652$ WRITE SYS$OUTPUT " APPS : To Compile Just The [.xxx.EXE.CRYPTO]*.EXE Programs."
653$ WRITE SYS$OUTPUT ""
654$ WRITE SYS$OUTPUT " Where 'xxx' Stands For:"
655$ WRITE SYS$OUTPUT ""
656$ WRITE SYS$OUTPUT " AXP : Alpha Architecture."
657$ WRITE SYS$OUTPUT " VAX : VAX Architecture."
658$ WRITE SYS$OUTPUT ""
659$!
660$! Time To EXIT.
661$!
662$ EXIT
663$!
664$! End The Valid Arguement Check.
665$!
666$ ENDIF
667$!
668$! End The P1 Check.
669$!
670$ ENDIF
671$!
672$! Check To See If P2 Is Blank.
673$!
674$ IF (P2.EQS."NODEBUG")
675$ THEN
676$!
677$! P2 Is NODEBUG, So Compile Without The Debugger Information.
678$!
679$ DEBUGGER = "NODEBUG"
680$ TRACEBACK = "NOTRACEBACK"
681$ GCC_OPTIMIZE = "OPTIMIZE"
682$ CC_OPTIMIZE = "OPTIMIZE"
683$ MACRO_OPTIMIZE = "OPTIMIZE"
684$ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile."
685$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization."
686$ ELSE
687$!
688$! Check To See If We Are To Compile With Debugger Information.
689$!
690$ IF (P2.EQS."DEBUG")
691$ THEN
692$!
693$! Compile With Debugger Information.
694$!
695$ DEBUGGER = "DEBUG"
696$ TRACEBACK = "TRACEBACK"
697$ GCC_OPTIMIZE = "NOOPTIMIZE"
698$ CC_OPTIMIZE = "NOOPTIMIZE"
699$ MACRO_OPTIMIZE = "NOOPTIMIZE"
700$ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile."
701$ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization."
702$ ELSE
703$!
704$! They Entered An Invalid Option..
705$!
706$ WRITE SYS$OUTPUT ""
707$ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:"
708$ WRITE SYS$OUTPUT ""
709$ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information."
710$ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information."
711$ WRITE SYS$OUTPUT ""
712$!
713$! Time To EXIT.
714$!
715$ EXIT
716$!
717$! End The Valid Arguement Check.
718$!
719$ ENDIF
720$!
721$! End The P2 Check.
722$!
723$ ENDIF
724$!
725$! Special Threads For OpenVMS v7.1 Or Later
726$!
727$! Written By: Richard Levitte
728$! richard@levitte.org
729$!
730$!
731$! Check To See If We Have A Option For P5.
732$!
733$ IF (P5.EQS."")
734$ THEN
735$!
736$! Get The Version Of VMS We Are Using.
737$!
738$ ISSEVEN :=
739$ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION")))
740$ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP))
741$!
742$! Check To See If The VMS Version Is v7.1 Or Later.
743$!
744$ IF (TMP.GE.71)
745$ THEN
746$!
747$! We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
748$!
749$ ISSEVEN := ,PTHREAD_USE_D4
750$!
751$! End The VMS Version Check.
752$!
753$ ENDIF
754$!
755$! End The P5 Check.
756$!
757$ ENDIF
758$!
759$! Check To See If P3 Is Blank.
760$!
761$ IF (P3.EQS."")
762$ THEN
763$!
764$! O.K., The User Didn't Specify A Compiler, Let's Try To
765$! Find Out Which One To Use.
766$!
767$! Check To See If We Have GNU C.
768$!
769$ IF (F$TRNLNM("GNU_CC").NES."")
770$ THEN
771$!
772$! Looks Like GNUC, Set To Use GNUC.
773$!
774$ P3 = "GNUC"
775$!
776$! Else...
777$!
778$ ELSE
779$!
780$! Check To See If We Have VAXC Or DECC.
781$!
782$ IF (ARCH.EQS."AXP").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."")
783$ THEN
784$!
785$! Looks Like DECC, Set To Use DECC.
786$!
787$ P3 = "DECC"
788$!
789$! Else...
790$!
791$ ELSE
792$!
793$! Looks Like VAXC, Set To Use VAXC.
794$!
795$ P3 = "VAXC"
796$!
797$! End The VAXC Compiler Check.
798$!
799$ ENDIF
800$!
801$! End The DECC & VAXC Compiler Check.
802$!
803$ ENDIF
804$!
805$! End The Compiler Check.
806$!
807$ ENDIF
808$!
809$! Check To See If We Have A Option For P4.
810$!
811$ IF (P4.EQS."")
812$ THEN
813$!
814$! Find out what socket library we have available
815$!
816$ IF F$PARSE("SOCKETSHR:") .NES. ""
817$ THEN
818$!
819$! We have SOCKETSHR, and it is my opinion that it's the best to use.
820$!
821$ P4 = "SOCKETSHR"
822$!
823$! Tell the user
824$!
825$ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP"
826$!
827$! Else, let's look for something else
828$!
829$ ELSE
830$!
831$! Like UCX (the reason to do this before Multinet is that the UCX
832$! emulation is easier to use...)
833$!
834$ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" -
835 .OR. F$PARSE("SYS$SHARE:UCX$IPC_SHR.EXE") .NES. "" -
836 .OR. F$PARSE("SYS$LIBRARY:UCX$IPC.OLB") .NES. ""
837$ THEN
838$!
839$! Last resort: a UCX or UCX-compatible library
840$!
841$ P4 = "UCX"
842$!
843$! Tell the user
844$!
845$ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP"
846$!
847$! That was all...
848$!
849$ ENDIF
850$ ENDIF
851$ ENDIF
852$!
853$! Set Up Initial CC Definitions, Possibly With User Ones
854$!
855$ CCDEFS = "TCPIP_TYPE_''P4',DSO_VMS"
856$ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS
857$ CCEXTRAFLAGS = ""
858$ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS
859$ CCDISABLEWARNINGS = "LONGLONGTYPE,LONGLONGSUFX"
860$ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
861 CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS
862$!
863$! Check To See If The User Entered A Valid Paramter.
864$!
865$ IF (P3.EQS."VAXC").OR.(P3.EQS."DECC").OR.(P3.EQS."GNUC")
866$ THEN
867$!
868$! Check To See If The User Wanted DECC.
869$!
870$ IF (P3.EQS."DECC")
871$ THEN
872$!
873$! Looks Like DECC, Set To Use DECC.
874$!
875$ COMPILER = "DECC"
876$!
877$! Tell The User We Are Using DECC.
878$!
879$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
880$!
881$! Use DECC...
882$!
883$ CC = "CC"
884$ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
885 THEN CC = "CC/DECC"
886$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89" + -
887 "/NOLIST/PREFIX=ALL" + -
888 "/INCLUDE=(SYS$DISK:[],SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + -
889 CCEXTRAFLAGS
890$!
891$! Define The Linker Options File Name.
892$!
893$ OPT_FILE = "SYS$DISK:[]VAX_DECC_OPTIONS.OPT"
894$!
895$! End DECC Check.
896$!
897$ ENDIF
898$!
899$! Check To See If We Are To Use VAXC.
900$!
901$ IF (P3.EQS."VAXC")
902$ THEN
903$!
904$! Looks Like VAXC, Set To Use VAXC.
905$!
906$ COMPILER = "VAXC"
907$!
908$! Tell The User We Are Using VAX C.
909$!
910$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
911$!
912$! Compile Using VAXC.
913$!
914$ CC = "CC"
915$ IF ARCH.EQS."AXP"
916$ THEN
917$ WRITE SYS$OUTPUT "There is no VAX C on Alpha!"
918$ EXIT
919$ ENDIF
920$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC"
921$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
922 "/INCLUDE=(SYS$DISK:[],SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + -
923 CCEXTRAFLAGS
924$ CCDEFS = """VAXC""," + CCDEFS
925$!
926$! Define <sys> As SYS$COMMON:[SYSLIB]
927$!
928$ DEFINE/NOLOG SYS SYS$COMMON:[SYSLIB]
929$!
930$! Define The Linker Options File Name.
931$!
932$ OPT_FILE = "SYS$DISK:[]VAX_VAXC_OPTIONS.OPT"
933$!
934$! End VAXC Check
935$!
936$ ENDIF
937$!
938$! Check To See If We Are To Use GNU C.
939$!
940$ IF (P3.EQS."GNUC")
941$ THEN
942$!
943$! Looks Like GNUC, Set To Use GNUC.
944$!
945$ COMPILER = "GNUC"
946$!
947$! Tell The User We Are Using GNUC.
948$!
949$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
950$!
951$! Use GNU C...
952$!
953$ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
954 "/INCLUDE=(SYS$DISK:[],SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + -
955 CCEXTRAFLAGS
956$!
957$! Define The Linker Options File Name.
958$!
959$ OPT_FILE = "SYS$DISK:[]VAX_GNUC_OPTIONS.OPT"
960$!
961$! End The GNU C Check.
962$!
963$ ENDIF
964$!
965$! Set up default defines
966$!
967$ CCDEFS = """FLAT_INC=1""," + CCDEFS
968$!
969$! Finish up the definition of CC.
970$!
971$ IF COMPILER .EQS. "DECC"
972$ THEN
973$ IF CCDISABLEWARNINGS .EQS. ""
974$ THEN
975$ CC4DISABLEWARNINGS = "DOLLARID"
976$ ELSE
977$ CC4DISABLEWARNINGS = CCDISABLEWARNINGS + ",DOLLARID"
978$ CCDISABLEWARNINGS = "/WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))"
979$ ENDIF
980$ CC4DISABLEWARNINGS = "/WARNING=(DISABLE=(" + CC4DISABLEWARNINGS + "))"
981$ ELSE
982$ CCDISABLEWARNINGS = ""
983$ CC4DISABLEWARNINGS = ""
984$ ENDIF
985$ CC3 = CC + "/DEFINE=(" + CCDEFS + ISSEVEN + ")" + CCDISABLEWARNINGS
986$ CC = CC + "/DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS
987$ IF ARCH .EQS. "VAX" .AND. COMPILER .EQS. "DECC" .AND. P2 .NES. "DEBUG"
988$ THEN
989$ CC5 = CC + "/OPTIMIZE=NODISJOINT"
990$ ELSE
991$ CC5 = CC + "/NOOPTIMIZE"
992$ ENDIF
993$ CC4 = CC - CCDISABLEWARNINGS + CC4DISABLEWARNINGS
994$!
995$! Show user the result
996$!
997$ WRITE/SYMBOL SYS$OUTPUT "Main C Compiling Command: ",CC
998$!
999$! Else The User Entered An Invalid Arguement.
1000$!
1001$ ELSE
1002$!
1003$! Tell The User We Don't Know What They Want.
1004$!
1005$ WRITE SYS$OUTPUT ""
1006$ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:"
1007$ WRITE SYS$OUTPUT ""
1008$ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C."
1009$ WRITE SYS$OUTPUT " DECC : To Compile With DEC C."
1010$ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C."
1011$ WRITE SYS$OUTPUT ""
1012$!
1013$! Time To EXIT.
1014$!
1015$ EXIT
1016$!
1017$! End The Valid Arguement Check.
1018$!
1019$ ENDIF
1020$!
1021$! Build a MACRO command for the architecture at hand
1022$!
1023$ IF ARCH .EQS. "VAX" THEN MACRO = "MACRO/''DEBUGGER'"
1024$ IF ARCH .EQS. "AXP" THEN MACRO = "MACRO/MIGRATION/''DEBUGGER'/''MACRO_OPTIMIZE'"
1025$!
1026$! Show user the result
1027$!
1028$ WRITE/SYMBOL SYS$OUTPUT "Main MACRO Compiling Command: ",MACRO
1029$!
1030$! Time to check the contents, and to make sure we get the correct library.
1031$!
1032$ IF P4.EQS."SOCKETSHR" .OR. P4.EQS."MULTINET" .OR. P4.EQS."UCX" -
1033 .OR. P4.EQS."TCPIP" .OR. P4.EQS."NONE"
1034$ THEN
1035$!
1036$! Check to see if SOCKETSHR was chosen
1037$!
1038$ IF P4.EQS."SOCKETSHR"
1039$ THEN
1040$!
1041$! Set the library to use SOCKETSHR
1042$!
1043$ TCPIP_LIB = "SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT/OPT"
1044$!
1045$! Done with SOCKETSHR
1046$!
1047$ ENDIF
1048$!
1049$! Check to see if MULTINET was chosen
1050$!
1051$ IF P4.EQS."MULTINET"
1052$ THEN
1053$!
1054$! Set the library to use UCX emulation.
1055$!
1056$ P4 = "UCX"
1057$!
1058$! Done with MULTINET
1059$!
1060$ ENDIF
1061$!
1062$! Check to see if UCX was chosen
1063$!
1064$ IF P4.EQS."UCX"
1065$ THEN
1066$!
1067$! Set the library to use UCX.
1068$!
1069$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT/OPT"
1070$ IF F$TRNLNM("UCX$IPC_SHR") .NES. ""
1071$ THEN
1072$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT/OPT"
1073$ ELSE
1074$ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN -
1075 TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT/OPT"
1076$ ENDIF
1077$!
1078$! Done with UCX
1079$!
1080$ ENDIF
1081$!
1082$! Check to see if TCPIP was chosen
1083$!
1084$ IF P4.EQS."TCPIP"
1085$ THEN
1086$!
1087$! Set the library to use TCPIP (post UCX).
1088$!
1089$ TCPIP_LIB = "SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT/OPT"
1090$!
1091$! Done with TCPIP
1092$!
1093$ ENDIF
1094$!
1095$! Check to see if NONE was chosen
1096$!
1097$ IF P4.EQS."NONE"
1098$ THEN
1099$!
1100$! Do not use a TCPIP library.
1101$!
1102$ TCPIP_LIB = ""
1103$!
1104$! Done with TCPIP
1105$!
1106$ ENDIF
1107$!
1108$! Print info
1109$!
1110$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB
1111$!
1112$! Else The User Entered An Invalid Arguement.
1113$!
1114$ ELSE
1115$!
1116$! Tell The User We Don't Know What They Want.
1117$!
1118$ WRITE SYS$OUTPUT ""
1119$ WRITE SYS$OUTPUT "The Option ",P4," Is Invalid. The Valid Options Are:"
1120$ WRITE SYS$OUTPUT ""
1121$ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library."
1122$ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library."
1123$ WRITE SYS$OUTPUT " TCPIP : To link with TCPIP (post UCX) TCP/IP library."
1124$ WRITE SYS$OUTPUT ""
1125$!
1126$! Time To EXIT.
1127$!
1128$ EXIT
1129$!
1130$! Done with TCP/IP libraries
1131$!
1132$ ENDIF
1133$!
1134$! Check if the user wanted to compile just a subset of all the encryption
1135$! methods.
1136$!
1137$ IF P6 .NES. ""
1138$ THEN
1139$ ENCRYPT_TYPES = P6
1140$ ENDIF
1141$!
1142$! Time To RETURN...
1143$!
1144$ RETURN
1145$!
1146$ INITIALISE:
1147$!
1148$! Save old value of the logical name OPENSSL
1149$!
1150$ __SAVE_OPENSSL = F$TRNLNM("OPENSSL","LNM$PROCESS_TABLE")
1151$!
1152$! Save directory information
1153$!
1154$ __HERE = F$PARSE(F$PARSE("A.;",F$ENVIRONMENT("PROCEDURE"))-"A.;","[]A.;") - "A.;"
1155$ __HERE = F$EDIT(__HERE,"UPCASE")
1156$ __TOP = __HERE - "FIPS]"
1157$ __INCLUDE = __TOP + "INCLUDE.OPENSSL]"
1158$!
1159$! Set up the logical name OPENSSL to point at the include directory
1160$!
1161$ DEFINE OPENSSL/NOLOG '__INCLUDE'
1162$!
1163$! Done
1164$!
1165$ RETURN
1166$!
1167$ CLEANUP:
1168$!
1169$! Restore the logical name OPENSSL if it had a value
1170$!
1171$ IF __SAVE_OPENSSL .EQS. ""
1172$ THEN
1173$ DEASSIGN OPENSSL
1174$ ELSE
1175$ DEFINE/NOLOG OPENSSL '__SAVE_OPENSSL'
1176$ ENDIF
1177$!
1178$! Done
1179$!
1180$ RETURN
diff --git a/src/lib/libssl/src/fips/fips.c b/src/lib/libssl/src/fips/fips.c
new file mode 100644
index 0000000000..7ecba57f70
--- /dev/null
+++ b/src/lib/libssl/src/fips/fips.c
@@ -0,0 +1,260 @@
1/* ====================================================================
2 * Copyright (c) 2003 The OpenSSL Project. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * 3. All advertising materials mentioning features or use of this
17 * software must display the following acknowledgment:
18 * "This product includes software developed by the OpenSSL Project
19 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
20 *
21 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
22 * endorse or promote products derived from this software without
23 * prior written permission. For written permission, please contact
24 * openssl-core@openssl.org.
25 *
26 * 5. Products derived from this software may not be called "OpenSSL"
27 * nor may "OpenSSL" appear in their names without prior written
28 * permission of the OpenSSL Project.
29 *
30 * 6. Redistributions of any form whatsoever must retain the following
31 * acknowledgment:
32 * "This product includes software developed by the OpenSSL Project
33 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
34 *
35 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
36 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
38 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
41 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
42 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
43 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
44 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
45 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
46 * OF THE POSSIBILITY OF SUCH DAMAGE.
47 *
48 */
49
50#include <openssl/fips.h>
51#include <openssl/rand.h>
52#include <openssl/fips_rand.h>
53#include <openssl/err.h>
54#include <openssl/bio.h>
55#include <openssl/hmac.h>
56#include <string.h>
57#include <limits.h>
58#include "fips_locl.h"
59
60#ifdef OPENSSL_FIPS
61
62#ifndef PATH_MAX
63#define PATH_MAX 1024
64#endif
65
66static int fips_md5_allowed = 0;
67static int fips_selftest_fail = 0;
68
69void FIPS_allow_md5(int onoff)
70 {
71 if (fips_is_started())
72 {
73 int owning_thread = fips_is_owning_thread();
74
75 if (!owning_thread) CRYPTO_w_lock(CRYPTO_LOCK_FIPS);
76 fips_md5_allowed = onoff;
77 if (!owning_thread) CRYPTO_w_unlock(CRYPTO_LOCK_FIPS);
78 }
79 }
80
81int FIPS_md5_allowed(void)
82 {
83 int ret = 1;
84 if (fips_is_started())
85 {
86 int owning_thread = fips_is_owning_thread();
87
88 if (!owning_thread) CRYPTO_r_lock(CRYPTO_LOCK_FIPS);
89 ret = fips_md5_allowed;
90 if (!owning_thread) CRYPTO_r_unlock(CRYPTO_LOCK_FIPS);
91 }
92 return ret;
93 }
94
95int FIPS_selftest_failed(void)
96 {
97 int ret = 0;
98 if (fips_is_started())
99 {
100 int owning_thread = fips_is_owning_thread();
101
102 if (!owning_thread) CRYPTO_r_lock(CRYPTO_LOCK_FIPS);
103 ret = fips_selftest_fail;
104 if (!owning_thread) CRYPTO_r_unlock(CRYPTO_LOCK_FIPS);
105 }
106 return ret;
107 }
108
109int FIPS_selftest()
110 {
111 ERR_load_crypto_strings();
112
113 return FIPS_selftest_sha1()
114 && FIPS_selftest_aes()
115 && FIPS_selftest_des()
116 && FIPS_selftest_rsa()
117 && FIPS_selftest_dsa();
118 }
119
120static int FIPS_check_exe(const char *path)
121 {
122 unsigned char buf[1024];
123 char p2[PATH_MAX];
124 unsigned int n;
125 unsigned char mdbuf[EVP_MAX_MD_SIZE];
126 FILE *f;
127 static char key[]="etaonrishdlcupfm";
128 HMAC_CTX hmac;
129 const char *sha1_fmt="%s.sha1";
130
131 f=fopen(path,"rb");
132#ifdef __CYGWIN32__
133 /* cygwin scrupulously strips .exe extentions:-( as of now it's
134 actually no point to attempt above fopen, but we keep the call
135 just in case the behavior changes in the future... */
136 if (!f)
137 {
138 sha1_fmt="%s.exe.sha1";
139 BIO_snprintf(p2,sizeof p2,"%s.exe",path);
140 f=fopen(p2,"rb");
141 }
142#endif
143 if(!f)
144 {
145 FIPSerr(FIPS_F_FIPS_CHECK_EXE,FIPS_R_CANNOT_READ_EXE);
146 return 0;
147 }
148 HMAC_Init(&hmac,key,strlen(key),EVP_sha1());
149 while(!feof(f))
150 {
151 n=fread(buf,1,sizeof buf,f);
152 if(ferror(f))
153 {
154 clearerr(f);
155 fclose(f);
156 FIPSerr(FIPS_F_FIPS_CHECK_EXE,FIPS_R_CANNOT_READ_EXE);
157 return 0;
158 }
159 if (n) HMAC_Update(&hmac,buf,n);
160 }
161 fclose(f);
162 HMAC_Final(&hmac,mdbuf,&n);
163 HMAC_CTX_cleanup(&hmac);
164 BIO_snprintf(p2,sizeof p2,sha1_fmt,path);
165 f=fopen(p2,"rb");
166 if(!f || fread(buf,1,20,f) != 20)
167 {
168 if (f) fclose(f);
169 FIPSerr(FIPS_F_FIPS_CHECK_EXE,FIPS_R_CANNOT_READ_EXE_DIGEST);
170 return 0;
171 }
172 fclose(f);
173 if(memcmp(buf,mdbuf,20))
174 {
175 FIPSerr(FIPS_F_FIPS_CHECK_EXE,FIPS_R_EXE_DIGEST_DOES_NOT_MATCH);
176 return 0;
177 }
178 return 1;
179 }
180
181int FIPS_mode_set(int onoff,const char *path)
182 {
183 void fips_set_mode(int _onoff);
184 int fips_set_owning_thread();
185 int fips_clear_owning_thread();
186 int ret = 0;
187
188 CRYPTO_w_lock(CRYPTO_LOCK_FIPS);
189 fips_set_started();
190 fips_set_owning_thread();
191
192 if(onoff)
193 {
194 unsigned char buf[24];
195
196 fips_selftest_fail = 0;
197
198 /* Don't go into FIPS mode twice, just so we can do automagic
199 seeding */
200 if(FIPS_mode())
201 {
202 FIPSerr(FIPS_F_FIPS_MODE_SET,FIPS_R_FIPS_MODE_ALREADY_SET);
203 fips_selftest_fail = 1;
204 ret = 0;
205 goto end;
206 }
207
208 if(!FIPS_check_exe(path))
209 {
210 fips_selftest_fail = 1;
211 ret = 0;
212 goto end;
213 }
214
215 /* automagically seed PRNG if not already seeded */
216 if(!FIPS_rand_seeded())
217 {
218 if(RAND_bytes(buf,sizeof buf) <= 0)
219 {
220 fips_selftest_fail = 1;
221 ret = 0;
222 goto end;
223 }
224 FIPS_set_prng_key(buf,buf+8);
225 FIPS_rand_seed(buf+16,8);
226 }
227
228 /* now switch into FIPS mode */
229 fips_set_rand_check(FIPS_rand_method());
230 RAND_set_rand_method(FIPS_rand_method());
231 if(FIPS_selftest())
232 fips_set_mode(1);
233 else
234 {
235 fips_selftest_fail = 1;
236 ret = 0;
237 goto end;
238 }
239 ret = 1;
240 goto end;
241 }
242 fips_set_mode(0);
243 fips_selftest_fail = 0;
244 ret = 1;
245end:
246 fips_clear_owning_thread();
247 CRYPTO_w_unlock(CRYPTO_LOCK_FIPS);
248 return ret;
249 }
250
251#if 0
252/* here just to cause error codes to exist */
253static void dummy()
254 {
255 FIPSerr(FIPS_F_HASH_FINAL,FIPS_F_NON_FIPS_METHOD);
256 FIPSerr(FIPS_F_HASH_FINAL,FIPS_R_FIPS_SELFTEST_FAILED);
257 }
258#endif
259
260#endif
diff --git a/src/lib/libssl/src/fips/fips.h b/src/lib/libssl/src/fips/fips.h
new file mode 100644
index 0000000000..a4df06b148
--- /dev/null
+++ b/src/lib/libssl/src/fips/fips.h
@@ -0,0 +1,125 @@
1/* ====================================================================
2 * Copyright (c) 2003 The OpenSSL Project. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * 3. All advertising materials mentioning features or use of this
17 * software must display the following acknowledgment:
18 * "This product includes software developed by the OpenSSL Project
19 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
20 *
21 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
22 * endorse or promote products derived from this software without
23 * prior written permission. For written permission, please contact
24 * openssl-core@openssl.org.
25 *
26 * 5. Products derived from this software may not be called "OpenSSL"
27 * nor may "OpenSSL" appear in their names without prior written
28 * permission of the OpenSSL Project.
29 *
30 * 6. Redistributions of any form whatsoever must retain the following
31 * acknowledgment:
32 * "This product includes software developed by the OpenSSL Project
33 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
34 *
35 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
36 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
38 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
41 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
42 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
43 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
44 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
45 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
46 * OF THE POSSIBILITY OF SUCH DAMAGE.
47 *
48 */
49
50#include <openssl/opensslconf.h>
51
52#ifdef OPENSSL_FIPS
53
54#ifdef __cplusplus
55extern "C" {
56#endif
57
58/* Note that these are defined in crypto/cryptlib.c so they're
59 * available even without -lfips.
60 */
61struct dsa_st;
62
63int FIPS_mode_set(int onoff,const char *path);
64void FIPS_allow_md5(int onoff);
65int FIPS_md5_allowed(void);
66int FIPS_selftest_failed(void);
67int FIPS_dsa_check(struct dsa_st *dsa);
68void FIPS_corrupt_sha1(void);
69int FIPS_selftest_sha1(void);
70void FIPS_corrupt_aes(void);
71int FIPS_selftest_aes(void);
72void FIPS_corrupt_des(void);
73int FIPS_selftest_des(void);
74void FIPS_corrupt_rsa(void);
75int FIPS_selftest_rsa(void);
76void FIPS_corrupt_dsa(void);
77int FIPS_selftest_dsa(void);
78
79/* The following lines are auto generated by the script mkerr.pl. Any changes
80 * made after this point may be overwritten when the script is next run.
81 */
82void ERR_load_FIPS_strings(void);
83
84/* BEGIN ERROR CODES */
85/* The following lines are auto generated by the script mkerr.pl. Any changes
86 * made after this point may be overwritten when the script is next run.
87 */
88void ERR_load_FIPS_strings(void);
89
90/* Error codes for the FIPS functions. */
91
92/* Function codes. */
93#define FIPS_F_DSA_DO_SIGN 111
94#define FIPS_F_DSA_DO_VERIFY 112
95#define FIPS_F_DSA_GENERATE_PARAMETERS 110
96#define FIPS_F_FIPS_CHECK_DSA 116
97#define FIPS_F_FIPS_CHECK_EXE 106
98#define FIPS_F_FIPS_CHECK_RSA 115
99#define FIPS_F_FIPS_DSA_CHECK 102
100#define FIPS_F_FIPS_MODE_SET 105
101#define FIPS_F_FIPS_SELFTEST_AES 104
102#define FIPS_F_FIPS_SELFTEST_DES 107
103#define FIPS_F_FIPS_SELFTEST_DSA 109
104#define FIPS_F_FIPS_SELFTEST_RSA 108
105#define FIPS_F_FIPS_SELFTEST_SHA1 103
106#define FIPS_F_HASH_FINAL 100
107#define FIPS_F_DH_GENERATE_PARAMETERS 117
108#define FIPS_F_RSA_EAY_PUBLIC_ENCRYPT 114
109#define FIPS_F_RSA_GENERATE_KEY 113
110#define FIPS_F_SSLEAY_RAND_BYTES 101
111
112/* Reason codes. */
113#define FIPS_R_CANNOT_READ_EXE 103
114#define FIPS_R_CANNOT_READ_EXE_DIGEST 104
115#define FIPS_R_EXE_DIGEST_DOES_NOT_MATCH 105
116#define FIPS_R_FIPS_MODE_ALREADY_SET 102
117#define FIPS_R_FIPS_SELFTEST_FAILED 106
118#define FIPS_R_NON_FIPS_METHOD 100
119#define FIPS_R_PAIRWISE_TEST_FAILED 107
120#define FIPS_R_SELFTEST_FAILED 101
121
122#ifdef __cplusplus
123}
124#endif
125#endif
diff --git a/src/lib/libssl/src/fips/fips_locl.h b/src/lib/libssl/src/fips/fips_locl.h
new file mode 100644
index 0000000000..215e382549
--- /dev/null
+++ b/src/lib/libssl/src/fips/fips_locl.h
@@ -0,0 +1,67 @@
1/* ====================================================================
2 * Copyright (c) 2003 The OpenSSL Project. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * 3. All advertising materials mentioning features or use of this
17 * software must display the following acknowledgment:
18 * "This product includes software developed by the OpenSSL Project
19 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
20 *
21 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
22 * endorse or promote products derived from this software without
23 * prior written permission. For written permission, please contact
24 * openssl-core@openssl.org.
25 *
26 * 5. Products derived from this software may not be called "OpenSSL"
27 * nor may "OpenSSL" appear in their names without prior written
28 * permission of the OpenSSL Project.
29 *
30 * 6. Redistributions of any form whatsoever must retain the following
31 * acknowledgment:
32 * "This product includes software developed by the OpenSSL Project
33 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
34 *
35 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
36 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
38 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
41 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
42 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
43 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
44 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
45 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
46 * OF THE POSSIBILITY OF SUCH DAMAGE.
47 *
48 */
49
50#ifdef OPENSSL_FIPS
51
52#ifdef __cplusplus
53extern "C" {
54#endif
55
56/* These are really defined in crypto/cryptlib.c */
57void fips_set_started(void);
58int fips_is_started(void);
59int fips_is_owning_thread(void);
60int fips_set_owning_thread(void);
61int fips_clear_owning_thread(void);
62void fips_set_rand_check(void *rand_check);
63
64#ifdef __cplusplus
65}
66#endif
67#endif
diff --git a/src/lib/libssl/src/fips/fips_test_suite.c b/src/lib/libssl/src/fips/fips_test_suite.c
new file mode 100644
index 0000000000..60ee8d856b
--- /dev/null
+++ b/src/lib/libssl/src/fips/fips_test_suite.c
@@ -0,0 +1,341 @@
1/* ====================================================================
2 * Copyright (c) 2003 The OpenSSL Project. All rights reserved.
3 *
4 *
5 * This command is intended as a test driver for the FIPS-140 testing
6 * lab performing FIPS-140 validation. It demonstrates the use of the
7 * OpenSSL library ito perform a variety of common cryptographic
8 * functions. A power-up self test is demonstrated by deliberately
9 * pointing to an invalid executable hash
10 *
11 * Contributed by Steve Marquess.
12 *
13 */
14#include <stdio.h>
15#include <assert.h>
16#include <ctype.h>
17#include <string.h>
18#include <stdlib.h>
19#include <openssl/aes.h>
20#include <openssl/des.h>
21#include <openssl/rsa.h>
22#include <openssl/dsa.h>
23#include <openssl/sha.h>
24#include <openssl/md5.h>
25#include <openssl/err.h>
26#include <openssl/fips.h>
27#include <openssl/bn.h>
28#include <openssl/rand.h>
29#ifndef OPENSSL_FIPS
30int main(int argc, char *argv[])
31 {
32 printf("No FIPS support\n");
33 return(0);
34 }
35#else
36
37/* AES: encrypt and decrypt known plaintext, verify result matches original plaintext
38*/
39static int FIPS_aes_test()
40 {
41 unsigned char userkey[16] = { 0xde, 0xad, 0xbe, 0xef, 0xfe, 0xed, 0xf0, 0x0d };
42 unsigned char plaintext[16] = "etaonrishdlcu";
43 unsigned char ciphertext[16];
44 unsigned char buf[16];
45 AES_KEY key;
46 AES_KEY dkey;
47
48 ERR_clear_error();
49 if (AES_set_encrypt_key( userkey, 128, &key ))
50 return 0;
51 AES_encrypt( plaintext, ciphertext, &key);
52 if (AES_set_decrypt_key( userkey, 128, &dkey ))
53 return 0;
54 AES_decrypt( ciphertext, buf, &dkey);
55 if (memcmp(buf, plaintext, sizeof(buf)))
56 return 0;
57 return 1;
58 }
59
60/* DES: encrypt and decrypt known plaintext, verify result matches original plaintext
61*/
62static int FIPS_des_test()
63 {
64 DES_cblock userkey = { 0xde, 0xad, 0xbe, 0xef, 0xfe, 0xed, 0xf0, 0x0d };
65 DES_cblock plaintext = { 'e', 't', 'a', 'o', 'n', 'r', 'i', 's' };
66
67 DES_key_schedule key;
68 DES_cblock ciphertext;
69 DES_cblock buf;
70
71 ERR_clear_error();
72 if (DES_set_key(&userkey, &key) < 0)
73 return 0;
74 DES_ecb_encrypt( &plaintext, &ciphertext, &key, 1);
75 DES_ecb_encrypt( &ciphertext, &buf, &key, 0);
76 if (memcmp(buf, plaintext, sizeof(buf)))
77 return 0;
78 return 1;
79 }
80
81/* DSA: generate key and sign a known digest, then verify the signature
82 * against the digest
83*/
84static int FIPS_dsa_test()
85 {
86 DSA *dsa = NULL;
87 unsigned char dgst[] = "etaonrishdlc";
88 unsigned char sig[256];
89 unsigned int siglen;
90
91 ERR_clear_error();
92 dsa = DSA_generate_parameters(512,NULL,0,NULL,NULL,NULL,NULL);
93 if (!dsa)
94 return 0;
95 if (!DSA_generate_key(dsa))
96 return 0;
97 if ( DSA_sign(0,dgst,sizeof(dgst) - 1,sig,&siglen,dsa) != 1 )
98 return 0;
99 if ( DSA_verify(0,dgst,sizeof(dgst) - 1,sig,siglen,dsa) != 1 )
100 return 0;
101 DSA_free(dsa);
102 return 1;
103 }
104
105/* RSA: generate keys and encrypt and decrypt known plaintext, verify result
106 * matches the original plaintext
107*/
108static int FIPS_rsa_test()
109 {
110 RSA *key;
111 unsigned char input_ptext[] = "etaonrishdlc";
112 unsigned char ctext[256];
113 unsigned char ptext[256];
114 int n;
115
116 ERR_clear_error();
117 key = RSA_generate_key(1024,65537,NULL,NULL);
118 if (!key)
119 return 0;
120 n = RSA_size(key);
121 n = RSA_public_encrypt(sizeof(input_ptext) - 1,input_ptext,ctext,key,RSA_PKCS1_PADDING);
122 if (n < 0)
123 return 0;
124 n = RSA_private_decrypt(n,ctext,ptext,key,RSA_PKCS1_PADDING);
125 if (n < 0)
126 return 0;
127 RSA_free(key);
128 if (memcmp(input_ptext,ptext,sizeof(input_ptext) - 1))
129 return 0;
130 return 1;
131 }
132
133/* SHA1: generate hash of known digest value and compare to known
134 precomputed correct hash
135*/
136static int FIPS_sha1_test()
137 {
138 unsigned char digest[SHA_DIGEST_LENGTH] =
139 { 0x11, 0xf1, 0x9a, 0x3a, 0xec, 0x1a, 0x1e, 0x8e, 0x65, 0xd4, 0x9a, 0x38, 0x0c, 0x8b, 0x1e, 0x2c, 0xe8, 0xb3, 0xc5, 0x18 };
140 unsigned char str[] = "etaonrishd";
141
142 unsigned char md[SHA_DIGEST_LENGTH];
143
144 ERR_clear_error();
145 if (!SHA1(str,sizeof(str) - 1,md)) return 0;
146 if (memcmp(md,digest,sizeof(md)))
147 return 0;
148 return 1;
149 }
150
151/* MD5: generate hash of known digest value and compare to known
152 precomputed correct hash
153*/
154static int md5_test()
155 {
156 unsigned char digest[MD5_DIGEST_LENGTH] =
157 { 0x48, 0x50, 0xf0, 0xa3, 0x3a, 0xed, 0xd3, 0xaf, 0x6e, 0x47, 0x7f, 0x83, 0x02, 0xb1, 0x09, 0x68 };
158 unsigned char str[] = "etaonrishd";
159
160 unsigned char md[MD5_DIGEST_LENGTH];
161
162 ERR_clear_error();
163 if (!MD5(str,sizeof(str) - 1,md))
164 return 0;
165 if (memcmp(md,digest,sizeof(md)))
166 return 0;
167 return 1;
168 }
169
170/* DH: generate shared parameters
171*/
172static int dh_test()
173 {
174 DH *dh;
175
176 ERR_clear_error();
177 dh = DH_generate_parameters(256, 2, NULL, NULL);
178 if (dh)
179 return 1;
180 return 0;
181 }
182
183/* Zeroize
184*/
185static int Zeroize()
186 {
187 RSA *key;
188 unsigned char userkey[16] =
189 { 0x48, 0x50, 0xf0, 0xa3, 0x3a, 0xed, 0xd3, 0xaf, 0x6e, 0x47, 0x7f, 0x83, 0x02, 0xb1, 0x09, 0x68 };
190 int i, n;
191
192 key = RSA_generate_key(1024,65537,NULL,NULL);
193 if (!key)
194 return 0;
195 n = BN_num_bytes(key->d);
196 printf(" Generated %d byte RSA private key\n", n);
197 printf("\tBN key before overwriting:\n%s\n", BN_bn2hex(key->d));
198 BN_rand(key->d,n*8,-1,0);
199 printf("\tBN key after overwriting:\n%s\n", BN_bn2hex(key->d));
200
201 printf("\tchar buffer key before overwriting: \n\t\t");
202 for(i = 0; i < sizeof(userkey); i++) printf("%02x", userkey[i]);
203 printf("\n");
204 RAND_bytes(userkey, sizeof userkey);
205 printf("\tchar buffer key after overwriting: \n\t\t");
206 for(i = 0; i < sizeof(userkey); i++) printf("%02x", userkey[i]);
207 printf("\n");
208
209 return 1;
210 }
211
212static int Error;
213const char * Fail(const char *msg)
214 {
215 Error++;
216 return msg;
217 }
218
219int main(int argc,char **argv)
220 {
221
222 printf("\tFIPS-mode test application\n\n");
223
224 /* Load entropy from external file, if any */
225 RAND_load_file(".rnd", 1024);
226
227 if (argv[1]) {
228 /* Corrupted KAT tests */
229 if (!strcmp(argv[1], "aes")) {
230 FIPS_corrupt_aes();
231 printf("3. AES encryption/decryption with corrupted KAT...\n");
232 } else if (!strcmp(argv[1], "des")) {
233 FIPS_corrupt_des();
234 printf("5. DES-ECB encryption/decryption with corrupted KAT...\n");
235 } else if (!strcmp(argv[1], "dsa")) {
236 FIPS_corrupt_dsa();
237 printf("6. DSA key generation and signature validation with corrupted KAT...\n");
238 } else if (!strcmp(argv[1], "rsa")) {
239 FIPS_corrupt_rsa();
240 printf("4. RSA key generation and encryption/decryption with corrupted KAT...\n");
241 } else if (!strcmp(argv[1], "sha1")) {
242 FIPS_corrupt_sha1();
243 printf("7. SHA-1 hash with corrupted KAT...\n");
244 } else {
245 printf("Bad argument \"%s\"\n", argv[1]);
246 exit(1);
247 }
248 if (!FIPS_mode_set(1,argv[0]))
249 {
250 ERR_load_crypto_strings();
251 ERR_print_errors(BIO_new_fp(stderr,BIO_NOCLOSE));
252 printf("Power-up self test failed\n");
253 exit(1);
254 }
255 printf("Power-up self test successful\n");
256 exit(0);
257 }
258
259 /* Non-Approved cryptographic operation
260 */
261 printf("0. Non-Approved cryptographic operation test...\n");
262 printf("\ta. Excluded algorithm (MD5)...");
263 printf( md5_test() ? "successful\n" : Fail("FAILED!\n") );
264 printf("\tb. Included algorithm (D-H)...");
265 printf( dh_test() ? "successful\n" : Fail("FAILED!\n") );
266
267 /* Power-up self test failure
268 */
269 printf("1. Automatic power-up self test...");
270 printf( FIPS_mode_set(1,"/dev/null") ? Fail("passed INCORRECTLY!\n") : "failed as expected\n" );
271
272 /* Algorithm call when uninitialized failure
273 */
274 printf("\ta. AES API failure on failed power-up self test...");
275 printf( FIPS_aes_test() ? Fail("passed INCORRECTLY!\n") :"failed as expected\n" );
276 printf("\tb. RSA API failure on failed power-up self test...");
277 printf( FIPS_rsa_test() ? Fail("passed INCORRECTLY!\n") : "failed as expected\n" );
278 printf("\tc. DES API failure on failed power-up self test...");
279 printf( FIPS_des_test() ? Fail("passed INCORRECTLY!\n") : "failed as expected\n" );
280 printf("\td. DSA API failure on failed power-up self test...");
281 printf( FIPS_dsa_test() ? Fail("passed INCORRECTLY!\n") : "failed as expected\n" );
282 printf("\te. SHA1 API failure on failed power-up self test...");
283 printf( FIPS_sha1_test() ? Fail("passed INCORRECTLY!\n") : "failed as expected\n" );
284
285 /* Power-up self test retry
286 */
287 ERR_clear_error();
288 printf("2. Automatic power-up self test retry...");
289 if (!FIPS_mode_set(1,argv[0]))
290 {
291 ERR_load_crypto_strings();
292 ERR_print_errors(BIO_new_fp(stderr,BIO_NOCLOSE));
293 printf(Fail("FAILED!\n"));
294 exit(1);
295 }
296 printf("successful\n");
297
298 /* AES encryption/decryption
299 */
300 printf("3. AES encryption/decryption...");
301 printf( FIPS_aes_test() ? "successful\n" : Fail("FAILED!\n") );
302
303 /* RSA key generation and encryption/decryption
304 */
305 printf("4. RSA key generation and encryption/decryption...");
306 printf( FIPS_rsa_test() ? "successful\n" : Fail("FAILED!\n") );
307
308 /* DES-CBC encryption/decryption
309 */
310 printf("5. DES-ECB encryption/decryption...");
311 printf( FIPS_des_test() ? "successful\n" : Fail("FAILED!\n") );
312
313 /* DSA key generation and signature validation
314 */
315 printf("6. DSA key generation and signature validation...");
316 printf( FIPS_dsa_test() ? "successful\n" : Fail("FAILED!\n") );
317
318 /* SHA-1 hash
319 */
320 printf("7. SHA-1 hash...");
321 printf( FIPS_sha1_test() ? "successful\n" : Fail("FAILED!\n") );
322
323 /* Non-Approved cryptographic operation
324 */
325 printf("8. Non-Approved cryptographic operation test...\n");
326 printf("\ta. Excluded algorithm (MD5)...");
327 printf( md5_test() ? Fail("passed INCORRECTLY!\n")
328 : "failed as expected\n" );
329 printf("\tb. Included algorithm (D-H)...");
330 printf( dh_test() ? "successful as expected\n"
331 : Fail("failed INCORRECTLY!\n") );
332
333 /* Zeroization
334 */
335 printf("9. Zero-ization...\n");
336 Zeroize();
337
338 printf("\nAll tests completed with %d errors\n", Error);
339 return 0;
340 }
341#endif
diff --git a/src/lib/libssl/src/fips/install.com b/src/lib/libssl/src/fips/install.com
new file mode 100644
index 0000000000..aa19f0599d
--- /dev/null
+++ b/src/lib/libssl/src/fips/install.com
@@ -0,0 +1,55 @@
1$! INSTALL.COM -- Installs the files in a given directory tree
2$!
3$! Author: Richard Levitte <richard@levitte.org>
4$! Time of creation: 27-MAY-2004 11:47
5$!
6$! P1 root of the directory tree
7$!
8$ IF P1 .EQS. ""
9$ THEN
10$ WRITE SYS$OUTPUT "First argument missing."
11$ WRITE SYS$OUTPUT "Should be the directory where you want things installed."
12$ EXIT
13$ ENDIF
14$
15$ ROOT = F$PARSE(P1,"[]A.;0",,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0"
16$ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY")
17$ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") -
18 - "[000000." - "][" - "[" - "]"
19$ ROOT = ROOT_DEV + "[" + ROOT_DIR
20$
21$ DEFINE/NOLOG WRK_SSLROOT 'ROOT'.] /TRANS=CONC
22$ DEFINE/NOLOG WRK_SSLINCLUDE WRK_SSLROOT:[INCLUDE]
23$
24$ IF F$PARSE("WRK_SSLROOT:[000000]") .EQS. "" THEN -
25 CREATE/DIR/LOG WRK_SSLROOT:[000000]
26$ IF F$PARSE("WRK_SSLINCLUDE:") .EQS. "" THEN -
27 CREATE/DIR/LOG WRK_SSLINCLUDE:
28$
29$ FDIRS := ,RAND,SHA1,DES,AES,DSA,RSA
30$ EXHEADER_ := fips.h
31$ EXHEADER_SHA1 :=
32$ EXHEADER_RAND := fips_rand.h
33$ EXHEADER_DES :=
34$ EXHEADER_AES :=
35$ EXHEADER_DSA :=
36$ EXHEADER_RSA :=
37$
38$ I = 0
39$ LOOP_FDIRS:
40$ D = F$EDIT(F$ELEMENT(I, ",", FDIRS),"TRIM")
41$ I = I + 1
42$ IF D .EQS. "," THEN GOTO LOOP_FDIRS_END
43$ tmp = EXHEADER_'D'
44$ IF tmp .EQS. "" THEN GOTO LOOP_FDIRS
45$ IF D .EQS. ""
46$ THEN
47$ COPY 'tmp' WRK_SSLINCLUDE: /LOG
48$ ELSE
49$ COPY [.'D']'tmp' WRK_SSLINCLUDE: /LOG
50$ ENDIF
51$ SET FILE/PROT=WORLD:RE WRK_SSLINCLUDE:'tmp'
52$ GOTO LOOP_FDIRS
53$ LOOP_FDIRS_END:
54$
55$ EXIT
diff --git a/src/lib/libssl/src/fips/openssl_fips_fingerprint b/src/lib/libssl/src/fips/openssl_fips_fingerprint
new file mode 100755
index 0000000000..d3dfb7eb61
--- /dev/null
+++ b/src/lib/libssl/src/fips/openssl_fips_fingerprint
@@ -0,0 +1,30 @@
1#!/bin/sh
2#
3# Check the library fingerprint and generate an executable fingerprint, or
4# return an error
5
6lib=$1
7exe=$2
8
9# deal with the case where we're run from within the build and OpenSSL is
10# not yet installed. Also, make sure LD_LIBRARY_PATH is properly set in
11# case shared libraries are built.
12if [ "X$TOP" != "X" ]
13then
14 if test "$OSTYPE" = msdosdjgpp; then
15 PATH="$TOP/apps;$TOP;$PATH"
16 else
17 PATH="$TOP/apps:$TOP:$PATH"
18 fi
19 LD_LIBRARY_PATH=$TOP; export LD_LIBRARY_PATH
20else
21 LD_LIBRARY_PATH=.; export LD_LIBRARY_PATH
22fi
23
24echo "Checking library fingerprint for $lib"
25openssl sha1 -hmac etaonrishdlcupfm $lib | sed "s/(.*\//(/" | diff -w $lib.sha1 - || { echo "$libs fingerprint mismatch"; exit 1; }
26
27[ -x $exe.exe ] && exe=$exe.exe
28
29echo "Making fingerprint for $exe"
30openssl sha1 -hmac etaonrishdlcupfm -binary $exe > $exe.sha1 || rm $exe.sha1
diff --git a/src/lib/libssl/src/fips/rand/Makefile b/src/lib/libssl/src/fips/rand/Makefile
new file mode 100644
index 0000000000..c8922abc77
--- /dev/null
+++ b/src/lib/libssl/src/fips/rand/Makefile
@@ -0,0 +1,104 @@
1#
2# SSLeay/fips/rand/Makefile
3#
4
5DIR= rand
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST= fips_randtest.c
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=fips_rand.c
26LIBOBJ=fips_rand.o
27
28SRC= $(LIBSRC)
29
30EXHEADER= fips_rand.h
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd $(TOP); $(MAKE) DIRS=fips SDIRS=$(DIR) sub_all)
37
38all: check lib
39
40check:
41 TOP=`pwd`/$(TOP) ../fips_check_sha1 fingerprint.sha1 $(SRC) $(HEADER)
42
43lib: $(LIBOBJ)
44 $(AR) $(LIB) $(LIBOBJ)
45 $(RANLIB) $(LIB) || echo Never mind.
46 @sleep 2; touch lib
47
48files:
49 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
50
51links:
52 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/include/openssl $(EXHEADER)
53 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/test $(TEST)
54 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/apps $(APPS)
55
56install:
57 @headerlist="$(EXHEADER)"; for i in $$headerlist; \
58 do \
59 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
60 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
61 done
62
63tags:
64 ctags $(SRC)
65
66tests:
67
68lint:
69 lint -DLINT $(INCLUDES) $(SRC)>fluff
70
71depend:
72 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(SRC) $(TEST)
73
74dclean:
75 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
76 mv -f Makefile.new $(MAKEFILE)
77
78clean:
79 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
80
81# DO NOT DELETE THIS LINE -- make depend depends on it.
82
83fips_rand.o: ../../e_os.h ../../include/openssl/bio.h
84fips_rand.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
85fips_rand.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
86fips_rand.o: ../../include/openssl/err.h ../../include/openssl/fips_rand.h
87fips_rand.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
88fips_rand.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
89fips_rand.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
90fips_rand.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
91fips_rand.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
92fips_rand.o: fips_rand.c
93fips_randtest.o: ../../e_os.h ../../include/openssl/bio.h
94fips_randtest.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
95fips_randtest.o: ../../include/openssl/des_old.h ../../include/openssl/e_os2.h
96fips_randtest.o: ../../include/openssl/err.h ../../include/openssl/fips_rand.h
97fips_randtest.o: ../../include/openssl/lhash.h
98fips_randtest.o: ../../include/openssl/opensslconf.h
99fips_randtest.o: ../../include/openssl/opensslv.h
100fips_randtest.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
101fips_randtest.o: ../../include/openssl/safestack.h
102fips_randtest.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
103fips_randtest.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
104fips_randtest.o: fips_randtest.c
diff --git a/src/lib/libssl/src/fips/rand/fips_rand.c b/src/lib/libssl/src/fips/rand/fips_rand.c
new file mode 100644
index 0000000000..cc2f12deb9
--- /dev/null
+++ b/src/lib/libssl/src/fips/rand/fips_rand.c
@@ -0,0 +1,355 @@
1/* ====================================================================
2 * Copyright (c) 2003 The OpenSSL Project. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * 3. All advertising materials mentioning features or use of this
17 * software must display the following acknowledgment:
18 * "This product includes software developed by the OpenSSL Project
19 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
20 *
21 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
22 * endorse or promote products derived from this software without
23 * prior written permission. For written permission, please contact
24 * openssl-core@openssl.org.
25 *
26 * 5. Products derived from this software may not be called "OpenSSL"
27 * nor may "OpenSSL" appear in their names without prior written
28 * permission of the OpenSSL Project.
29 *
30 * 6. Redistributions of any form whatsoever must retain the following
31 * acknowledgment:
32 * "This product includes software developed by the OpenSSL Project
33 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
34 *
35 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
36 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
38 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
41 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
42 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
43 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
44 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
45 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
46 * OF THE POSSIBILITY OF SUCH DAMAGE.
47 *
48 */
49
50/*
51 * This is a FIPS approved PRNG, ANSI X9.31 A.2.4.
52 */
53
54#include "e_os.h"
55
56/* If we don't define _XOPEN_SOURCE_EXTENDED, struct timeval won't
57 be defined and gettimeofday() won't be declared with strict compilers
58 like DEC C in ANSI C mode. */
59#ifndef _XOPEN_SOURCE_EXTENDED
60#define _XOPEN_SOURCE_EXTENDED 1
61#endif
62
63#include <openssl/des.h>
64#include <openssl/rand.h>
65#include <openssl/err.h>
66#include <openssl/fips_rand.h>
67#ifndef OPENSSL_SYS_WIN32
68#include <sys/time.h>
69#endif
70#include <assert.h>
71#ifndef OPENSSL_SYS_WIN32
72# ifdef OPENSSL_UNISTD
73# include OPENSSL_UNISTD
74# else
75# include <unistd.h>
76# endif
77#endif
78#include <string.h>
79
80#ifdef OPENSSL_FIPS
81
82#define SEED_SIZE 8
83
84static unsigned char seed[SEED_SIZE];
85static FIPS_RAND_SIZE_T n_seed;
86static FIPS_RAND_SIZE_T o_seed;
87static DES_cblock key1;
88static DES_cblock key2;
89static DES_key_schedule ks1,ks2;
90static int key_set;
91static int test_mode;
92static unsigned char test_faketime[8];
93
94#ifndef GETPID_IS_MEANINGLESS
95static int seed_pid;
96static int key_pid;
97#endif
98
99static void fips_rand_cleanup(void);
100static void fips_rand_add(const void *buf, FIPS_RAND_SIZE_T num, double add_entropy);
101static int fips_rand_bytes(unsigned char *buf, FIPS_RAND_SIZE_T num);
102static int fips_rand_status(void);
103
104static RAND_METHOD rand_fips_meth=
105 {
106 FIPS_rand_seed,
107 fips_rand_bytes,
108 fips_rand_cleanup,
109 fips_rand_add,
110 fips_rand_bytes,
111 fips_rand_status
112 };
113
114static int second;
115
116RAND_METHOD *FIPS_rand_method(void)
117{
118 return &rand_fips_meth;
119}
120
121void FIPS_set_prng_key(const unsigned char k1[8],const unsigned char k2[8])
122 {
123 memcpy(&key1,k1,sizeof key1);
124 memcpy(&key2,k2,sizeof key2);
125 key_set=1;
126#ifndef GETPID_IS_MEANINGLESS
127 key_pid=getpid();
128#endif
129 second=0;
130 }
131
132void FIPS_test_mode(int test,const unsigned char faketime[8])
133 {
134 test_mode=test;
135 if(!test_mode)
136 return;
137 memcpy(test_faketime,faketime,sizeof test_faketime);
138 }
139
140/* NB: this returns true if _partially_ seeded */
141int FIPS_rand_seeded()
142 { return key_set || n_seed; }
143
144static void fips_gettime(unsigned char buf[8])
145 {
146#ifdef OPENSSL_SYS_WIN32
147 FILETIME ft;
148#else
149 struct timeval tv;
150#endif
151
152 if(test_mode)
153 {
154 fprintf(stderr,"WARNING!!! PRNG IN TEST MODE!!!\n");
155 memcpy(buf,test_faketime,sizeof test_faketime);
156 return;
157 }
158#ifdef OPENSSL_SYS_WIN32
159 GetSystemTimeAsFileTime(&ft);
160 buf[0] = (unsigned char) (ft.dwHighDateTime & 0xff);
161 buf[1] = (unsigned char) ((ft.dwHighDateTime >> 8) & 0xff);
162 buf[2] = (unsigned char) ((ft.dwHighDateTime >> 16) & 0xff);
163 buf[3] = (unsigned char) ((ft.dwHighDateTime >> 24) & 0xff);
164 buf[4] = (unsigned char) (ft.dwLowDateTime & 0xff);
165 buf[5] = (unsigned char) ((ft.dwLowDateTime >> 8) & 0xff);
166 buf[6] = (unsigned char) ((ft.dwLowDateTime >> 16) & 0xff);
167 buf[7] = (unsigned char) ((ft.dwLowDateTime >> 24) & 0xff);
168#else
169 gettimeofday(&tv,NULL);
170 buf[0] = (unsigned char) (tv.tv_sec & 0xff);
171 buf[1] = (unsigned char) ((tv.tv_sec >> 8) & 0xff);
172 buf[2] = (unsigned char) ((tv.tv_sec >> 16) & 0xff);
173 buf[3] = (unsigned char) ((tv.tv_sec >> 24) & 0xff);
174 buf[4] = (unsigned char) (tv.tv_usec & 0xff);
175 buf[5] = (unsigned char) ((tv.tv_usec >> 8) & 0xff);
176 buf[6] = (unsigned char) ((tv.tv_usec >> 16) & 0xff);
177 buf[7] = (unsigned char) ((tv.tv_usec >> 24) & 0xff);
178#endif
179
180#if 0 /* This eminently sensible strategy is not acceptable to NIST. Sigh. */
181#ifndef GETPID_IS_MEANINGLESS
182 /* we mix in the PID to ensure that after a fork the children don't give
183 * the same results as each other
184 */
185 pid=getpid();
186 /* make sure we shift the pid to the MSB */
187 if((pid&0xffff0000) == 0)
188 pid<<=16;
189 *(long *)&buf[0]^=pid;
190#endif
191#endif
192 }
193
194static void fips_rand_encrypt(unsigned char *out,const unsigned char *in)
195 {
196 DES_ecb2_encrypt(in,out,&ks1,&ks2,1);
197 }
198
199static void fips_rand_cleanup(void)
200 {
201 OPENSSL_cleanse(seed,sizeof seed);
202 n_seed=0;
203 }
204
205void FIPS_rand_seed(const void *buf_, FIPS_RAND_SIZE_T num)
206 {
207 const char *buf=buf_;
208 FIPS_RAND_SIZE_T n;
209 static int init;
210
211 /* If the key hasn't been set, we can't seed! */
212 if(!key_set)
213 return;
214
215 CRYPTO_w_lock(CRYPTO_LOCK_RAND);
216 if(!init)
217 {
218 init=1;
219 DES_set_key(&key1,&ks1);
220 DES_set_key(&key2,&ks2);
221 }
222
223 /*
224 * This algorithm only uses 64 bits of seed, so ensure that we use
225 * the most recent 64 bits.
226 */
227 for(n=0 ; n < num ; )
228 {
229 FIPS_RAND_SIZE_T t=num-n;
230
231 if(o_seed+t > sizeof seed)
232 t=sizeof seed-o_seed;
233 memcpy(seed+o_seed,buf+n,t);
234 n+=t;
235 o_seed+=t;
236 if(o_seed == sizeof seed)
237 o_seed=0;
238 if(n_seed < sizeof seed)
239 n_seed+=t;
240 }
241
242#ifndef GETPID_IS_MEANINGLESS
243 seed_pid=getpid();
244#endif
245
246 CRYPTO_w_unlock(CRYPTO_LOCK_RAND);
247 }
248
249static void fips_rand_add(const void *buf, FIPS_RAND_SIZE_T num, double add_entropy)
250 {
251 FIPS_rand_seed(buf,num);
252 }
253
254static int fips_rand_bytes(unsigned char *buf,FIPS_RAND_SIZE_T num)
255 {
256 FIPS_RAND_SIZE_T n;
257 unsigned char timeseed[8];
258 unsigned char intermediate[SEED_SIZE];
259 unsigned char output[SEED_SIZE];
260 static unsigned char previous[SEED_SIZE];
261#ifndef GETPID_IS_MEANINGLESS
262 int pid;
263#endif
264
265 if(n_seed < sizeof seed)
266 {
267 RANDerr(RAND_F_FIPS_RAND_BYTES,RAND_R_PRNG_NOT_SEEDED);
268 return 0;
269 }
270
271#ifdef FIPS_RAND_MAX_SIZE_T
272 if (num > FIPS_RAND_MAX_SIZE_T)
273 {
274#ifdef RAND_R_PRNG_ASKING_FOR_TOO_MUCH
275 RANDerr(RAND_F_FIPS_RAND_BYTES,RAND_R_PRNG_ASKING_FOR_TOO_MUCH);
276 return 0;
277#else
278 return -1; /* signal "not supported" condition */
279#endif
280 }
281#endif
282
283#ifndef GETPID_IS_MEANINGLESS
284 pid=getpid();
285 if(pid != seed_pid)
286 {
287 RANDerr(RAND_F_FIPS_RAND_BYTES,RAND_R_PRNG_NOT_RESEEDED);
288 return 0;
289 }
290 if(pid != key_pid)
291 {
292 RANDerr(RAND_F_FIPS_RAND_BYTES,RAND_R_PRNG_NOT_REKEYED);
293 return 0;
294 }
295#endif
296
297 CRYPTO_w_lock(CRYPTO_LOCK_RAND);
298
299 for(n=0 ; n < num ; )
300 {
301 unsigned char t[SEED_SIZE];
302 FIPS_RAND_SIZE_T l;
303
304 /* ANS X9.31 A.2.4: I = ede*K(DT)
305 timeseed == DT
306 intermediate == I
307 */
308 fips_gettime(timeseed);
309 fips_rand_encrypt(intermediate,timeseed);
310
311 /* ANS X9.31 A.2.4: R = ede*K(I^V)
312 intermediate == I
313 seed == V
314 output == R
315 */
316 for(l=0 ; l < sizeof t ; ++l)
317 t[l]=intermediate[l]^seed[l];
318 fips_rand_encrypt(output,t);
319
320 /* ANS X9.31 A.2.4: V = ede*K(R^I)
321 output == R
322 intermediate == I
323 seed == V
324 */
325 for(l=0 ; l < sizeof t ; ++l)
326 t[l]=output[l]^intermediate[l];
327 fips_rand_encrypt(seed,t);
328
329 if(second && !memcmp(output,previous,sizeof previous))
330 {
331 RANDerr(RAND_F_FIPS_RAND_BYTES,RAND_R_PRNG_STUCK);
332 CRYPTO_w_unlock(CRYPTO_LOCK_RAND);
333 return 0;
334 }
335 memcpy(previous,output,sizeof previous);
336 second=1;
337
338 /* Successive values of R may be concatenated to produce a
339 pseudo random number of the desired length */
340 l=SEED_SIZE < num-n ? SEED_SIZE : num-n;
341 memcpy(buf+n,output,l);
342 n+=l;
343 }
344
345 CRYPTO_w_unlock(CRYPTO_LOCK_RAND);
346
347 return 1;
348 }
349
350static int fips_rand_status(void)
351 {
352 return n_seed == sizeof seed;
353 }
354
355#endif /* OPENSSL_FIPS */
diff --git a/src/lib/libssl/src/fips/rand/fips_rand.h b/src/lib/libssl/src/fips/rand/fips_rand.h
new file mode 100644
index 0000000000..1286b63ab2
--- /dev/null
+++ b/src/lib/libssl/src/fips/rand/fips_rand.h
@@ -0,0 +1,73 @@
1/* ====================================================================
2 * Copyright (c) 2003 The OpenSSL Project. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * 3. All advertising materials mentioning features or use of this
17 * software must display the following acknowledgment:
18 * "This product includes software developed by the OpenSSL Project
19 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
20 *
21 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
22 * endorse or promote products derived from this software without
23 * prior written permission. For written permission, please contact
24 * openssl-core@openssl.org.
25 *
26 * 5. Products derived from this software may not be called "OpenSSL"
27 * nor may "OpenSSL" appear in their names without prior written
28 * permission of the OpenSSL Project.
29 *
30 * 6. Redistributions of any form whatsoever must retain the following
31 * acknowledgment:
32 * "This product includes software developed by the OpenSSL Project
33 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
34 *
35 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
36 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
38 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
41 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
42 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
43 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
44 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
45 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
46 * OF THE POSSIBILITY OF SUCH DAMAGE.
47 *
48 */
49
50#ifndef HEADER_FIPS_RAND_H
51#define HEADER_FIPS_RAND_H
52
53#include "des.h"
54
55#ifdef OPENSSL_FIPS
56
57#ifdef __cplusplus
58extern "C" {
59#endif
60
61void FIPS_set_prng_key(const unsigned char k1[8],const unsigned char k2[8]);
62void FIPS_test_mode(int test,const unsigned char faketime[8]);
63void FIPS_rand_seed(const void *buf, FIPS_RAND_SIZE_T num);
64/* NB: this returns true if _partially_ seeded */
65int FIPS_rand_seeded(void);
66
67RAND_METHOD *FIPS_rand_method(void);
68
69#ifdef __cplusplus
70}
71#endif
72#endif
73#endif
diff --git a/src/lib/libssl/src/fips/rand/fips_randtest.c b/src/lib/libssl/src/fips/rand/fips_randtest.c
new file mode 100644
index 0000000000..6165944e56
--- /dev/null
+++ b/src/lib/libssl/src/fips/rand/fips_randtest.c
@@ -0,0 +1,369 @@
1/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
2 * All rights reserved.
3 *
4 * This package is an SSL implementation written
5 * by Eric Young (eay@cryptsoft.com).
6 * The implementation was written so as to conform with Netscapes SSL.
7 *
8 * This library is free for commercial and non-commercial use as long as
9 * the following conditions are aheared to. The following conditions
10 * apply to all code found in this distribution, be it the RC4, RSA,
11 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
12 * included with this distribution is covered by the same copyright terms
13 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
14 *
15 * Copyright remains Eric Young's, and as such any Copyright notices in
16 * the code are not to be removed.
17 * If this package is used in a product, Eric Young should be given attribution
18 * as the author of the parts of the library used.
19 * This can be in the form of a textual message at program startup or
20 * in documentation (online or textual) provided with the package.
21 *
22 * Redistribution and use in source and binary forms, with or without
23 * modification, are permitted provided that the following conditions
24 * are met:
25 * 1. Redistributions of source code must retain the copyright
26 * notice, this list of conditions and the following disclaimer.
27 * 2. Redistributions in binary form must reproduce the above copyright
28 * notice, this list of conditions and the following disclaimer in the
29 * documentation and/or other materials provided with the distribution.
30 * 3. All advertising materials mentioning features or use of this software
31 * must display the following acknowledgement:
32 * "This product includes cryptographic software written by
33 * Eric Young (eay@cryptsoft.com)"
34 * The word 'cryptographic' can be left out if the rouines from the library
35 * being used are not cryptographic related :-).
36 * 4. If you include any Windows specific code (or a derivative thereof) from
37 * the apps directory (application code) you must include an acknowledgement:
38 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
39 *
40 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
41 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
43 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
44 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
45 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
46 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
47 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
48 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
49 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
50 * SUCH DAMAGE.
51 *
52 * The licence and distribution terms for any publically available version or
53 * derivative of this code cannot be changed. i.e. this code cannot simply be
54 * copied and put under another distribution licence
55 * [including the GNU Public Licence.]
56 */
57/* ====================================================================
58 * Copyright (c) 2003 The OpenSSL Project. All rights reserved.
59 *
60 * Redistribution and use in source and binary forms, with or without
61 * modification, are permitted provided that the following conditions
62 * are met:
63 *
64 * 1. Redistributions of source code must retain the above copyright
65 * notice, this list of conditions and the following disclaimer.
66 *
67 * 2. Redistributions in binary form must reproduce the above copyright
68 * notice, this list of conditions and the following disclaimer in
69 * the documentation and/or other materials provided with the
70 * distribution.
71 *
72 * 3. All advertising materials mentioning features or use of this
73 * software must display the following acknowledgment:
74 * "This product includes software developed by the OpenSSL Project
75 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
76 *
77 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
78 * endorse or promote products derived from this software without
79 * prior written permission. For written permission, please contact
80 * openssl-core@openssl.org.
81 *
82 * 5. Products derived from this software may not be called "OpenSSL"
83 * nor may "OpenSSL" appear in their names without prior written
84 * permission of the OpenSSL Project.
85 *
86 * 6. Redistributions of any form whatsoever must retain the following
87 * acknowledgment:
88 * "This product includes software developed by the OpenSSL Project
89 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
90 *
91 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
92 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
93 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
94 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
95 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
96 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
97 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
98 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
99 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
100 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
101 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
102 * OF THE POSSIBILITY OF SUCH DAMAGE.
103 *
104 */
105
106#include <stdio.h>
107#include <stdlib.h>
108#include <openssl/rand.h>
109#include <openssl/fips_rand.h>
110#include <openssl/err.h>
111
112#include "e_os.h"
113
114#ifndef OPENSSL_FIPS
115int main(int argc, char *argv[])
116{
117 printf("No FIPS RAND support\n");
118 return(0);
119}
120
121#else
122
123/* some FIPS 140-1 random number test */
124/* some simple tests */
125
126static DES_cblock prng_key1={0x21,0x58,0x47,0xb7,0xc2,0x97,0x5a,0x8e};
127static DES_cblock prng_key2={0x61,0x23,0x05,0x96,0x18,0x91,0x86,0xac};
128static unsigned char prng_seed[8]={0x6b,0xa3,0x4f,0x07,0xe4,0x2a,0xb0,0xc};
129
130typedef struct
131 {
132 DES_cblock keys[2];
133 const unsigned char time[8];
134 const unsigned char seed[8];
135 const unsigned char block1[8];
136 const unsigned char block100[8];
137 } PRNGtest;
138
139/* FIXME: these test vectors are made up! */
140static PRNGtest t1=
141 {
142 { { 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07 },
143 { 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f },
144 },
145 { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },
146 { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },
147 { 0x33,0xc3,0xdf,0xfe,0x60,0x60,0x49,0x9e },
148 { 0xcd,0x2b,0x41,0xaf,0x80,0x51,0x37,0xd8 }
149 };
150static PRNGtest t2=
151 {
152 { { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff },
153 { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff } },
154 { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff },
155 { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff },
156 { 0x65,0xf1,0xa4,0x07,0x42,0x38,0xd5,0x25 },
157 { 0xbb,0x75,0x84,0x20,0x7a,0x44,0xf0,0xa0 }
158 };
159
160static void dump(const unsigned char *b,int n)
161 {
162 while(n-- > 0)
163 {
164 printf(" %02x",*b++);
165 }
166 }
167
168static void compare(const unsigned char *result,const unsigned char *expected,
169 int n)
170 {
171 int i;
172
173 for(i=0 ; i < n ; ++i)
174 if(result[i] != expected[i])
175 {
176 puts("Random test failed, got:");
177 dump(result,8);
178 puts("\n expected:");
179 dump(expected,8);
180 putchar('\n');
181 EXIT(1);
182 }
183 }
184
185static void run_test(const PRNGtest *t)
186 {
187 unsigned char buf[8];
188 int n;
189
190 FIPS_set_prng_key(t->keys[0],t->keys[1]);
191 FIPS_test_mode(1,t->time);
192 RAND_seed(t->seed,sizeof t->seed);
193
194 if(RAND_bytes(buf,8) <= 0)
195 {
196 ERR_print_errors_fp(stderr);
197 EXIT(2);
198 }
199 compare(buf,t->block1,8);
200 for(n=0 ; n < 99 ; ++n)
201 if(RAND_bytes(buf,8) <= 0)
202 {
203 ERR_print_errors_fp(stderr);
204 EXIT(2);
205 }
206 compare(buf,t->block100,8);
207 FIPS_test_mode(0,NULL);
208 }
209
210int main()
211 {
212 unsigned char buf[2500];
213 int i,j,k,s,sign,nsign,err=0;
214 unsigned long n1;
215 unsigned long n2[16];
216 unsigned long runs[2][34];
217 /*double d; */
218 long d;
219
220 ERR_load_crypto_strings();
221 RAND_set_rand_method(FIPS_rand_method());
222
223 run_test(&t1);
224 run_test(&t2);
225
226 FIPS_set_prng_key(prng_key1,prng_key2);
227 RAND_seed(prng_seed,sizeof prng_seed);
228
229 i = RAND_pseudo_bytes(buf,2500);
230 if (i <= 0)
231 {
232 printf ("init failed, the rand method is not properly installed\n");
233 err++;
234 goto err;
235 }
236
237 n1=0;
238 for (i=0; i<16; i++) n2[i]=0;
239 for (i=0; i<34; i++) runs[0][i]=runs[1][i]=0;
240
241 /* test 1 and 2 */
242 sign=0;
243 nsign=0;
244 for (i=0; i<2500; i++)
245 {
246 j=buf[i];
247
248 n2[j&0x0f]++;
249 n2[(j>>4)&0x0f]++;
250
251 for (k=0; k<8; k++)
252 {
253 s=(j&0x01);
254 if (s == sign)
255 nsign++;
256 else
257 {
258 if (nsign > 34) nsign=34;
259 if (nsign != 0)
260 {
261 runs[sign][nsign-1]++;
262 if (nsign > 6)
263 runs[sign][5]++;
264 }
265 sign=s;
266 nsign=1;
267 }
268
269 if (s) n1++;
270 j>>=1;
271 }
272 }
273 if (nsign > 34) nsign=34;
274 if (nsign != 0) runs[sign][nsign-1]++;
275
276 /* test 1 */
277 if (!((9654 < n1) && (n1 < 10346)))
278 {
279 printf("test 1 failed, X=%lu\n",n1);
280 err++;
281 }
282 printf("test 1 done\n");
283
284 /* test 2 */
285#ifdef undef
286 d=0;
287 for (i=0; i<16; i++)
288 d+=n2[i]*n2[i];
289 d=d*16.0/5000.0-5000.0;
290 if (!((1.03 < d) && (d < 57.4)))
291 {
292 printf("test 2 failed, X=%.2f\n",d);
293 err++;
294 }
295#endif
296 d=0;
297 for (i=0; i<16; i++)
298 d+=n2[i]*n2[i];
299 d=(d*8)/25-500000;
300 if (!((103 < d) && (d < 5740)))
301 {
302 printf("test 2 failed, X=%ld.%02ld\n",d/100L,d%100L);
303 err++;
304 }
305 printf("test 2 done\n");
306
307 /* test 3 */
308 for (i=0; i<2; i++)
309 {
310 if (!((2267 < runs[i][0]) && (runs[i][0] < 2733)))
311 {
312 printf("test 3 failed, bit=%d run=%d num=%lu\n",
313 i,1,runs[i][0]);
314 err++;
315 }
316 if (!((1079 < runs[i][1]) && (runs[i][1] < 1421)))
317 {
318 printf("test 3 failed, bit=%d run=%d num=%lu\n",
319 i,2,runs[i][1]);
320 err++;
321 }
322 if (!(( 502 < runs[i][2]) && (runs[i][2] < 748)))
323 {
324 printf("test 3 failed, bit=%d run=%d num=%lu\n",
325 i,3,runs[i][2]);
326 err++;
327 }
328 if (!(( 223 < runs[i][3]) && (runs[i][3] < 402)))
329 {
330 printf("test 3 failed, bit=%d run=%d num=%lu\n",
331 i,4,runs[i][3]);
332 err++;
333 }
334 if (!(( 90 < runs[i][4]) && (runs[i][4] < 223)))
335 {
336 printf("test 3 failed, bit=%d run=%d num=%lu\n",
337 i,5,runs[i][4]);
338 err++;
339 }
340 if (!(( 90 < runs[i][5]) && (runs[i][5] < 223)))
341 {
342 printf("test 3 failed, bit=%d run=%d num=%lu\n",
343 i,6,runs[i][5]);
344 err++;
345 }
346 }
347 printf("test 3 done\n");
348
349 /* test 4 */
350 if (runs[0][33] != 0)
351 {
352 printf("test 4 failed, bit=%d run=%d num=%lu\n",
353 0,34,runs[0][33]);
354 err++;
355 }
356 if (runs[1][33] != 0)
357 {
358 printf("test 4 failed, bit=%d run=%d num=%lu\n",
359 1,34,runs[1][33]);
360 err++;
361 }
362 printf("test 4 done\n");
363 err:
364 err=((err)?1:0);
365 EXIT(err);
366 return(err);
367 }
368
369#endif
diff --git a/src/lib/libssl/src/fips/rsa/Makefile b/src/lib/libssl/src/fips/rsa/Makefile
new file mode 100644
index 0000000000..bb20f86442
--- /dev/null
+++ b/src/lib/libssl/src/fips/rsa/Makefile
@@ -0,0 +1,111 @@
1#
2# SSLeay/fips/rsa/Makefile
3#
4
5DIR= rsa
6TOP= ../..
7CC= cc
8INCLUDES=
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17
18CFLAGS= $(INCLUDES) $(CFLAG)
19
20GENERAL=Makefile
21TEST=
22APPS=
23
24LIB=$(TOP)/libcrypto.a
25LIBSRC=fips_rsa_eay.c fips_rsa_gen.c fips_rsa_selftest.c
26LIBOBJ=fips_rsa_eay.o fips_rsa_gen.o fips_rsa_selftest.o
27
28SRC= $(LIBSRC)
29
30EXHEADER=
31HEADER= $(EXHEADER)
32
33ALL= $(GENERAL) $(SRC) $(HEADER)
34
35top:
36 (cd $(TOP); $(MAKE) DIRS=fips FDIRS=$(DIR) sub_all)
37
38all: check lib
39
40lib: $(LIBOBJ)
41 $(AR) $(LIB) $(LIBOBJ)
42 $(RANLIB) $(LIB) || echo Never mind.
43 @sleep 2; touch lib
44
45check:
46 TOP=`pwd`/$(TOP) ../fips_check_sha1 fingerprint.sha1 $(SRC) $(HEADER)
47
48files:
49 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
50
51links:
52 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/include/openssl $(EXHEADER)
53 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/test $(TEST)
54 @$(PERL) $(TOP)/util/mklink.pl $(TOP)/apps $(APPS)
55
56install:
57 @headerlist="$(EXHEADER)"; for i in $$headerlist; \
58 do \
59 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
60 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
61 done
62
63tags:
64 ctags $(SRC)
65
66tests:
67
68lint:
69 lint -DLINT $(INCLUDES) $(SRC)>fluff
70
71depend:
72 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(SRC) $(TEST)
73
74dclean:
75 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
76 mv -f Makefile.new $(MAKEFILE)
77
78clean:
79 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
80# DO NOT DELETE THIS LINE -- make depend depends on it.
81
82fips_rsa_eay.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
83fips_rsa_eay.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
84fips_rsa_eay.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
85fips_rsa_eay.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
86fips_rsa_eay.o: ../../include/openssl/opensslconf.h
87fips_rsa_eay.o: ../../include/openssl/opensslv.h
88fips_rsa_eay.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
89fips_rsa_eay.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
90fips_rsa_eay.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
91fips_rsa_eay.o: fips_rsa_eay.c
92fips_rsa_gen.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
93fips_rsa_gen.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
94fips_rsa_gen.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
95fips_rsa_gen.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
96fips_rsa_gen.o: ../../include/openssl/opensslconf.h
97fips_rsa_gen.o: ../../include/openssl/opensslv.h
98fips_rsa_gen.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rsa.h
99fips_rsa_gen.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
100fips_rsa_gen.o: ../../include/openssl/symhacks.h fips_rsa_gen.c
101fips_rsa_selftest.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
102fips_rsa_selftest.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
103fips_rsa_selftest.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
104fips_rsa_selftest.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
105fips_rsa_selftest.o: ../../include/openssl/opensslconf.h
106fips_rsa_selftest.o: ../../include/openssl/opensslv.h
107fips_rsa_selftest.o: ../../include/openssl/ossl_typ.h
108fips_rsa_selftest.o: ../../include/openssl/rsa.h
109fips_rsa_selftest.o: ../../include/openssl/safestack.h
110fips_rsa_selftest.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
111fips_rsa_selftest.o: ../../include/openssl/symhacks.h fips_rsa_selftest.c
diff --git a/src/lib/libssl/src/fips/rsa/fips_rsa_eay.c b/src/lib/libssl/src/fips/rsa/fips_rsa_eay.c
new file mode 100644
index 0000000000..c571e2b1bf
--- /dev/null
+++ b/src/lib/libssl/src/fips/rsa/fips_rsa_eay.c
@@ -0,0 +1,735 @@
1/* crypto/rsa/rsa_eay.c */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdio.h>
60#include <openssl/err.h>
61#include <openssl/bn.h>
62#include <openssl/rsa.h>
63#include <openssl/rand.h>
64#include <openssl/fips.h>
65
66#if !defined(RSA_NULL) && defined(OPENSSL_FIPS)
67
68static int RSA_eay_public_encrypt(FIPS_RSA_SIZE_T flen, const unsigned char *from,
69 unsigned char *to, RSA *rsa,int padding);
70static int RSA_eay_private_encrypt(FIPS_RSA_SIZE_T flen, const unsigned char *from,
71 unsigned char *to, RSA *rsa,int padding);
72static int RSA_eay_public_decrypt(FIPS_RSA_SIZE_T flen, const unsigned char *from,
73 unsigned char *to, RSA *rsa,int padding);
74static int RSA_eay_private_decrypt(FIPS_RSA_SIZE_T flen, const unsigned char *from,
75 unsigned char *to, RSA *rsa,int padding);
76static int RSA_eay_mod_exp(BIGNUM *r0, const BIGNUM *i, RSA *rsa);
77static int RSA_eay_init(RSA *rsa);
78static int RSA_eay_finish(RSA *rsa);
79static RSA_METHOD rsa_pkcs1_eay_meth={
80 "Eric Young's PKCS#1 RSA",
81 RSA_eay_public_encrypt,
82 RSA_eay_public_decrypt, /* signature verification */
83 RSA_eay_private_encrypt, /* signing */
84 RSA_eay_private_decrypt,
85 RSA_eay_mod_exp,
86 BN_mod_exp_mont, /* XXX probably we should not use Montgomery if e == 3 */
87 RSA_eay_init,
88 RSA_eay_finish,
89 0, /* flags */
90 NULL,
91 0, /* rsa_sign */
92 0 /* rsa_verify */
93 };
94
95const RSA_METHOD *RSA_PKCS1_SSLeay(void)
96 {
97 return(&rsa_pkcs1_eay_meth);
98 }
99
100static int RSA_eay_public_encrypt(FIPS_RSA_SIZE_T flen, const unsigned char *from,
101 unsigned char *to, RSA *rsa, int padding)
102 {
103 BIGNUM f,ret;
104 int i,j,k,num=0,r= -1;
105 unsigned char *buf=NULL;
106 BN_CTX *ctx=NULL;
107
108 BN_init(&f);
109 BN_init(&ret);
110
111 if(FIPS_selftest_failed())
112 {
113 FIPSerr(FIPS_F_RSA_EAY_PUBLIC_ENCRYPT,FIPS_R_FIPS_SELFTEST_FAILED);
114 goto err;
115 }
116
117 if ((ctx=BN_CTX_new()) == NULL) goto err;
118 num=BN_num_bytes(rsa->n);
119 if ((buf=(unsigned char *)OPENSSL_malloc(num)) == NULL)
120 {
121 RSAerr(RSA_F_RSA_EAY_PUBLIC_ENCRYPT,ERR_R_MALLOC_FAILURE);
122 goto err;
123 }
124
125 switch (padding)
126 {
127 case RSA_PKCS1_PADDING:
128 i=RSA_padding_add_PKCS1_type_2(buf,num,from,flen);
129 break;
130#ifndef OPENSSL_NO_SHA
131 case RSA_PKCS1_OAEP_PADDING:
132 i=RSA_padding_add_PKCS1_OAEP(buf,num,from,flen,NULL,0);
133 break;
134#endif
135 case RSA_SSLV23_PADDING:
136 i=RSA_padding_add_SSLv23(buf,num,from,flen);
137 break;
138 case RSA_NO_PADDING:
139 i=RSA_padding_add_none(buf,num,from,flen);
140 break;
141 default:
142 RSAerr(RSA_F_RSA_EAY_PUBLIC_ENCRYPT,RSA_R_UNKNOWN_PADDING_TYPE);
143 goto err;
144 }
145 if (i <= 0) goto err;
146
147 if (BN_bin2bn(buf,num,&f) == NULL) goto err;
148
149 if (BN_ucmp(&f, rsa->n) >= 0)
150 {
151 /* usually the padding functions would catch this */
152 RSAerr(RSA_F_RSA_EAY_PUBLIC_ENCRYPT,RSA_R_DATA_TOO_LARGE_FOR_MODULUS);
153 goto err;
154 }
155
156 if ((rsa->_method_mod_n == NULL) && (rsa->flags & RSA_FLAG_CACHE_PUBLIC))
157 {
158 BN_MONT_CTX* bn_mont_ctx;
159 if ((bn_mont_ctx=BN_MONT_CTX_new()) == NULL)
160 goto err;
161 if (!BN_MONT_CTX_set(bn_mont_ctx,rsa->n,ctx))
162 {
163 BN_MONT_CTX_free(bn_mont_ctx);
164 goto err;
165 }
166 if (rsa->_method_mod_n == NULL) /* other thread may have finished first */
167 {
168 CRYPTO_w_lock(CRYPTO_LOCK_RSA);
169 if (rsa->_method_mod_n == NULL)
170 {
171 rsa->_method_mod_n = bn_mont_ctx;
172 bn_mont_ctx = NULL;
173 }
174 CRYPTO_w_unlock(CRYPTO_LOCK_RSA);
175 }
176 if (bn_mont_ctx)
177 BN_MONT_CTX_free(bn_mont_ctx);
178 }
179
180 if (!rsa->meth->bn_mod_exp(&ret,&f,rsa->e,rsa->n,ctx,
181 rsa->_method_mod_n)) goto err;
182
183 /* put in leading 0 bytes if the number is less than the
184 * length of the modulus */
185 j=BN_num_bytes(&ret);
186 i=BN_bn2bin(&ret,&(to[num-j]));
187 for (k=0; k<(num-i); k++)
188 to[k]=0;
189
190 r=num;
191err:
192 if (ctx != NULL) BN_CTX_free(ctx);
193 BN_clear_free(&f);
194 BN_clear_free(&ret);
195 if (buf != NULL)
196 {
197 OPENSSL_cleanse(buf,num);
198 OPENSSL_free(buf);
199 }
200 return(r);
201 }
202
203static int rsa_eay_blinding(RSA *rsa, BN_CTX *ctx)
204 {
205 int ret = 1;
206 CRYPTO_w_lock(CRYPTO_LOCK_RSA);
207 /* Check again inside the lock - the macro's check is racey */
208 if(rsa->blinding == NULL)
209 ret = RSA_blinding_on(rsa, ctx);
210 CRYPTO_w_unlock(CRYPTO_LOCK_RSA);
211 return ret;
212 }
213
214#define BLINDING_HELPER(rsa, ctx, err_instr) \
215 do { \
216 if((!((rsa)->flags & RSA_FLAG_NO_BLINDING)) && \
217 ((rsa)->blinding == NULL) && \
218 !rsa_eay_blinding(rsa, ctx)) \
219 err_instr \
220 } while(0)
221
222static BN_BLINDING *setup_blinding(RSA *rsa, BN_CTX *ctx)
223 {
224 BIGNUM *A, *Ai;
225 BN_BLINDING *ret = NULL;
226
227 /* added in OpenSSL 0.9.6j and 0.9.7b */
228
229 /* NB: similar code appears in RSA_blinding_on (rsa_lib.c);
230 * this should be placed in a new function of its own, but for reasons
231 * of binary compatibility can't */
232
233 BN_CTX_start(ctx);
234 A = BN_CTX_get(ctx);
235 if ((RAND_status() == 0) && rsa->d != NULL && rsa->d->d != NULL)
236 {
237 /* if PRNG is not properly seeded, resort to secret exponent as unpredictable seed */
238 RAND_add(rsa->d->d, rsa->d->dmax * sizeof rsa->d->d[0], 0);
239 if (!BN_pseudo_rand_range(A,rsa->n)) goto err;
240 }
241 else
242 {
243 if (!BN_rand_range(A,rsa->n)) goto err;
244 }
245 if ((Ai=BN_mod_inverse(NULL,A,rsa->n,ctx)) == NULL) goto err;
246
247 if (!rsa->meth->bn_mod_exp(A,A,rsa->e,rsa->n,ctx,rsa->_method_mod_n))
248 goto err;
249 ret = BN_BLINDING_new(A,Ai,rsa->n);
250 BN_free(Ai);
251err:
252 BN_CTX_end(ctx);
253 return ret;
254 }
255
256/* signing */
257static int RSA_eay_private_encrypt(FIPS_RSA_SIZE_T flen, const unsigned char *from,
258 unsigned char *to, RSA *rsa, int padding)
259 {
260 BIGNUM f,ret;
261 int i,j,k,num=0,r= -1;
262 unsigned char *buf=NULL;
263 BN_CTX *ctx=NULL;
264 int local_blinding = 0;
265 BN_BLINDING *blinding = NULL;
266
267 BN_init(&f);
268 BN_init(&ret);
269
270 if ((ctx=BN_CTX_new()) == NULL) goto err;
271 num=BN_num_bytes(rsa->n);
272 if ((buf=(unsigned char *)OPENSSL_malloc(num)) == NULL)
273 {
274 RSAerr(RSA_F_RSA_EAY_PRIVATE_ENCRYPT,ERR_R_MALLOC_FAILURE);
275 goto err;
276 }
277
278 switch (padding)
279 {
280 case RSA_PKCS1_PADDING:
281 i=RSA_padding_add_PKCS1_type_1(buf,num,from,flen);
282 break;
283 case RSA_NO_PADDING:
284 i=RSA_padding_add_none(buf,num,from,flen);
285 break;
286 case RSA_SSLV23_PADDING:
287 default:
288 RSAerr(RSA_F_RSA_EAY_PRIVATE_ENCRYPT,RSA_R_UNKNOWN_PADDING_TYPE);
289 goto err;
290 }
291 if (i <= 0) goto err;
292
293 if (BN_bin2bn(buf,num,&f) == NULL) goto err;
294
295 if (BN_ucmp(&f, rsa->n) >= 0)
296 {
297 /* usually the padding functions would catch this */
298 RSAerr(RSA_F_RSA_EAY_PRIVATE_ENCRYPT,RSA_R_DATA_TOO_LARGE_FOR_MODULUS);
299 goto err;
300 }
301
302 BLINDING_HELPER(rsa, ctx, goto err;);
303 blinding = rsa->blinding;
304
305 /* Now unless blinding is disabled, 'blinding' is non-NULL.
306 * But the BN_BLINDING object may be owned by some other thread
307 * (we don't want to keep it constant and we don't want to use
308 * lots of locking to avoid race conditions, so only a single
309 * thread can use it; other threads have to use local blinding
310 * factors) */
311 if (!(rsa->flags & RSA_FLAG_NO_BLINDING))
312 {
313 if (blinding == NULL)
314 {
315 RSAerr(RSA_F_RSA_EAY_PRIVATE_ENCRYPT, ERR_R_INTERNAL_ERROR);
316 goto err;
317 }
318 }
319
320 if (blinding != NULL)
321 {
322 if (blinding->thread_id != CRYPTO_thread_id())
323 {
324 /* we need a local one-time blinding factor */
325
326 blinding = setup_blinding(rsa, ctx);
327 if (blinding == NULL)
328 goto err;
329 local_blinding = 1;
330 }
331 }
332
333 if (blinding)
334 if (!BN_BLINDING_convert(&f, blinding, ctx)) goto err;
335
336 if ( (rsa->flags & RSA_FLAG_EXT_PKEY) ||
337 ((rsa->p != NULL) &&
338 (rsa->q != NULL) &&
339 (rsa->dmp1 != NULL) &&
340 (rsa->dmq1 != NULL) &&
341 (rsa->iqmp != NULL)) )
342 { if (!rsa->meth->rsa_mod_exp(&ret,&f,rsa)) goto err; }
343 else
344 {
345 if (!rsa->meth->bn_mod_exp(&ret,&f,rsa->d,rsa->n,ctx,NULL)) goto err;
346 }
347
348 if (blinding)
349 if (!BN_BLINDING_invert(&ret, blinding, ctx)) goto err;
350
351 /* put in leading 0 bytes if the number is less than the
352 * length of the modulus */
353 j=BN_num_bytes(&ret);
354 i=BN_bn2bin(&ret,&(to[num-j]));
355 for (k=0; k<(num-i); k++)
356 to[k]=0;
357
358 r=num;
359err:
360 if (ctx != NULL) BN_CTX_free(ctx);
361 BN_clear_free(&ret);
362 BN_clear_free(&f);
363 if (local_blinding)
364 BN_BLINDING_free(blinding);
365 if (buf != NULL)
366 {
367 OPENSSL_cleanse(buf,num);
368 OPENSSL_free(buf);
369 }
370 return(r);
371 }
372
373static int RSA_eay_private_decrypt(FIPS_RSA_SIZE_T flen, const unsigned char *from,
374 unsigned char *to, RSA *rsa, int padding)
375 {
376 BIGNUM f,ret;
377 int j,num=0,r= -1;
378 unsigned char *p;
379 unsigned char *buf=NULL;
380 BN_CTX *ctx=NULL;
381 int local_blinding = 0;
382 BN_BLINDING *blinding = NULL;
383
384 BN_init(&f);
385 BN_init(&ret);
386 ctx=BN_CTX_new();
387 if (ctx == NULL) goto err;
388
389 num=BN_num_bytes(rsa->n);
390
391 if ((buf=(unsigned char *)OPENSSL_malloc(num)) == NULL)
392 {
393 RSAerr(RSA_F_RSA_EAY_PRIVATE_DECRYPT,ERR_R_MALLOC_FAILURE);
394 goto err;
395 }
396
397 /* This check was for equality but PGP does evil things
398 * and chops off the top '0' bytes */
399 if (flen > num)
400 {
401 RSAerr(RSA_F_RSA_EAY_PRIVATE_DECRYPT,RSA_R_DATA_GREATER_THAN_MOD_LEN);
402 goto err;
403 }
404
405 /* make data into a big number */
406 if (BN_bin2bn(from,(int)flen,&f) == NULL) goto err;
407
408 if (BN_ucmp(&f, rsa->n) >= 0)
409 {
410 RSAerr(RSA_F_RSA_EAY_PRIVATE_DECRYPT,RSA_R_DATA_TOO_LARGE_FOR_MODULUS);
411 goto err;
412 }
413
414 BLINDING_HELPER(rsa, ctx, goto err;);
415 blinding = rsa->blinding;
416
417 /* Now unless blinding is disabled, 'blinding' is non-NULL.
418 * But the BN_BLINDING object may be owned by some other thread
419 * (we don't want to keep it constant and we don't want to use
420 * lots of locking to avoid race conditions, so only a single
421 * thread can use it; other threads have to use local blinding
422 * factors) */
423 if (!(rsa->flags & RSA_FLAG_NO_BLINDING))
424 {
425 if (blinding == NULL)
426 {
427 RSAerr(RSA_F_RSA_EAY_PRIVATE_DECRYPT, ERR_R_INTERNAL_ERROR);
428 goto err;
429 }
430 }
431
432 if (blinding != NULL)
433 {
434 if (blinding->thread_id != CRYPTO_thread_id())
435 {
436 /* we need a local one-time blinding factor */
437
438 blinding = setup_blinding(rsa, ctx);
439 if (blinding == NULL)
440 goto err;
441 local_blinding = 1;
442 }
443 }
444
445 if (blinding)
446 if (!BN_BLINDING_convert(&f, blinding, ctx)) goto err;
447
448 /* do the decrypt */
449 if ( (rsa->flags & RSA_FLAG_EXT_PKEY) ||
450 ((rsa->p != NULL) &&
451 (rsa->q != NULL) &&
452 (rsa->dmp1 != NULL) &&
453 (rsa->dmq1 != NULL) &&
454 (rsa->iqmp != NULL)) )
455 { if (!rsa->meth->rsa_mod_exp(&ret,&f,rsa)) goto err; }
456 else
457 {
458 if (!rsa->meth->bn_mod_exp(&ret,&f,rsa->d,rsa->n,ctx,NULL))
459 goto err;
460 }
461
462 if (blinding)
463 if (!BN_BLINDING_invert(&ret, blinding, ctx)) goto err;
464
465 p=buf;
466 j=BN_bn2bin(&ret,p); /* j is only used with no-padding mode */
467
468 switch (padding)
469 {
470 case RSA_PKCS1_PADDING:
471 r=RSA_padding_check_PKCS1_type_2(to,num,buf,j,num);
472 break;
473#ifndef OPENSSL_NO_SHA
474 case RSA_PKCS1_OAEP_PADDING:
475 r=RSA_padding_check_PKCS1_OAEP(to,num,buf,j,num,NULL,0);
476 break;
477#endif
478 case RSA_SSLV23_PADDING:
479 r=RSA_padding_check_SSLv23(to,num,buf,j,num);
480 break;
481 case RSA_NO_PADDING:
482 r=RSA_padding_check_none(to,num,buf,j,num);
483 break;
484 default:
485 RSAerr(RSA_F_RSA_EAY_PRIVATE_DECRYPT,RSA_R_UNKNOWN_PADDING_TYPE);
486 goto err;
487 }
488 if (r < 0)
489 RSAerr(RSA_F_RSA_EAY_PRIVATE_DECRYPT,RSA_R_PADDING_CHECK_FAILED);
490
491err:
492 if (ctx != NULL) BN_CTX_free(ctx);
493 BN_clear_free(&f);
494 BN_clear_free(&ret);
495 if (local_blinding)
496 BN_BLINDING_free(blinding);
497 if (buf != NULL)
498 {
499 OPENSSL_cleanse(buf,num);
500 OPENSSL_free(buf);
501 }
502 return(r);
503 }
504
505/* signature verification */
506static int RSA_eay_public_decrypt(FIPS_RSA_SIZE_T flen, const unsigned char *from,
507 unsigned char *to, RSA *rsa, int padding)
508 {
509 BIGNUM f,ret;
510 int i,num=0,r= -1;
511 unsigned char *p;
512 unsigned char *buf=NULL;
513 BN_CTX *ctx=NULL;
514
515 BN_init(&f);
516 BN_init(&ret);
517 ctx=BN_CTX_new();
518 if (ctx == NULL) goto err;
519
520 num=BN_num_bytes(rsa->n);
521 buf=(unsigned char *)OPENSSL_malloc(num);
522 if (buf == NULL)
523 {
524 RSAerr(RSA_F_RSA_EAY_PUBLIC_DECRYPT,ERR_R_MALLOC_FAILURE);
525 goto err;
526 }
527
528 /* This check was for equality but PGP does evil things
529 * and chops off the top '0' bytes */
530 if (flen > num)
531 {
532 RSAerr(RSA_F_RSA_EAY_PUBLIC_DECRYPT,RSA_R_DATA_GREATER_THAN_MOD_LEN);
533 goto err;
534 }
535
536 if (BN_bin2bn(from,flen,&f) == NULL) goto err;
537
538 if (BN_ucmp(&f, rsa->n) >= 0)
539 {
540 RSAerr(RSA_F_RSA_EAY_PUBLIC_DECRYPT,RSA_R_DATA_TOO_LARGE_FOR_MODULUS);
541 goto err;
542 }
543
544 /* do the decrypt */
545 if ((rsa->_method_mod_n == NULL) && (rsa->flags & RSA_FLAG_CACHE_PUBLIC))
546 {
547 BN_MONT_CTX* bn_mont_ctx;
548 if ((bn_mont_ctx=BN_MONT_CTX_new()) == NULL)
549 goto err;
550 if (!BN_MONT_CTX_set(bn_mont_ctx,rsa->n,ctx))
551 {
552 BN_MONT_CTX_free(bn_mont_ctx);
553 goto err;
554 }
555 if (rsa->_method_mod_n == NULL) /* other thread may have finished first */
556 {
557 CRYPTO_w_lock(CRYPTO_LOCK_RSA);
558 if (rsa->_method_mod_n == NULL)
559 {
560 rsa->_method_mod_n = bn_mont_ctx;
561 bn_mont_ctx = NULL;
562 }
563 CRYPTO_w_unlock(CRYPTO_LOCK_RSA);
564 }
565 if (bn_mont_ctx)
566 BN_MONT_CTX_free(bn_mont_ctx);
567 }
568
569 if (!rsa->meth->bn_mod_exp(&ret,&f,rsa->e,rsa->n,ctx,
570 rsa->_method_mod_n)) goto err;
571
572 p=buf;
573 i=BN_bn2bin(&ret,p);
574
575 switch (padding)
576 {
577 case RSA_PKCS1_PADDING:
578 r=RSA_padding_check_PKCS1_type_1(to,num,buf,i,num);
579 break;
580 case RSA_NO_PADDING:
581 r=RSA_padding_check_none(to,num,buf,i,num);
582 break;
583 default:
584 RSAerr(RSA_F_RSA_EAY_PUBLIC_DECRYPT,RSA_R_UNKNOWN_PADDING_TYPE);
585 goto err;
586 }
587 if (r < 0)
588 RSAerr(RSA_F_RSA_EAY_PUBLIC_DECRYPT,RSA_R_PADDING_CHECK_FAILED);
589
590err:
591 if (ctx != NULL) BN_CTX_free(ctx);
592 BN_clear_free(&f);
593 BN_clear_free(&ret);
594 if (buf != NULL)
595 {
596 OPENSSL_cleanse(buf,num);
597 OPENSSL_free(buf);
598 }
599 return(r);
600 }
601
602static int RSA_eay_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa)
603 {
604 BIGNUM r1,m1,vrfy;
605 int ret=0;
606 BN_CTX *ctx;
607
608 BN_init(&m1);
609 BN_init(&r1);
610 BN_init(&vrfy);
611 if ((ctx=BN_CTX_new()) == NULL) goto err;
612
613 if (rsa->flags & RSA_FLAG_CACHE_PRIVATE)
614 {
615 if (rsa->_method_mod_p == NULL)
616 {
617 BN_MONT_CTX* bn_mont_ctx;
618 if ((bn_mont_ctx=BN_MONT_CTX_new()) == NULL)
619 goto err;
620 if (!BN_MONT_CTX_set(bn_mont_ctx,rsa->p,ctx))
621 {
622 BN_MONT_CTX_free(bn_mont_ctx);
623 goto err;
624 }
625 if (rsa->_method_mod_p == NULL) /* other thread may have finished first */
626 {
627 CRYPTO_w_lock(CRYPTO_LOCK_RSA);
628 if (rsa->_method_mod_p == NULL)
629 {
630 rsa->_method_mod_p = bn_mont_ctx;
631 bn_mont_ctx = NULL;
632 }
633 CRYPTO_w_unlock(CRYPTO_LOCK_RSA);
634 }
635 if (bn_mont_ctx)
636 BN_MONT_CTX_free(bn_mont_ctx);
637 }
638
639 if (rsa->_method_mod_q == NULL)
640 {
641 BN_MONT_CTX* bn_mont_ctx;
642 if ((bn_mont_ctx=BN_MONT_CTX_new()) == NULL)
643 goto err;
644 if (!BN_MONT_CTX_set(bn_mont_ctx,rsa->q,ctx))
645 {
646 BN_MONT_CTX_free(bn_mont_ctx);
647 goto err;
648 }
649 if (rsa->_method_mod_q == NULL) /* other thread may have finished first */
650 {
651 CRYPTO_w_lock(CRYPTO_LOCK_RSA);
652 if (rsa->_method_mod_q == NULL)
653 {
654 rsa->_method_mod_q = bn_mont_ctx;
655 bn_mont_ctx = NULL;
656 }
657 CRYPTO_w_unlock(CRYPTO_LOCK_RSA);
658 }
659 if (bn_mont_ctx)
660 BN_MONT_CTX_free(bn_mont_ctx);
661 }
662 }
663
664 if (!BN_mod(&r1,I,rsa->q,ctx)) goto err;
665 if (!rsa->meth->bn_mod_exp(&m1,&r1,rsa->dmq1,rsa->q,ctx,
666 rsa->_method_mod_q)) goto err;
667
668 if (!BN_mod(&r1,I,rsa->p,ctx)) goto err;
669 if (!rsa->meth->bn_mod_exp(r0,&r1,rsa->dmp1,rsa->p,ctx,
670 rsa->_method_mod_p)) goto err;
671
672 if (!BN_sub(r0,r0,&m1)) goto err;
673 /* This will help stop the size of r0 increasing, which does
674 * affect the multiply if it optimised for a power of 2 size */
675 if (r0->neg)
676 if (!BN_add(r0,r0,rsa->p)) goto err;
677
678 if (!BN_mul(&r1,r0,rsa->iqmp,ctx)) goto err;
679 if (!BN_mod(r0,&r1,rsa->p,ctx)) goto err;
680 /* If p < q it is occasionally possible for the correction of
681 * adding 'p' if r0 is negative above to leave the result still
682 * negative. This can break the private key operations: the following
683 * second correction should *always* correct this rare occurrence.
684 * This will *never* happen with OpenSSL generated keys because
685 * they ensure p > q [steve]
686 */
687 if (r0->neg)
688 if (!BN_add(r0,r0,rsa->p)) goto err;
689 if (!BN_mul(&r1,r0,rsa->q,ctx)) goto err;
690 if (!BN_add(r0,&r1,&m1)) goto err;
691
692 if (rsa->e && rsa->n)
693 {
694 if (!rsa->meth->bn_mod_exp(&vrfy,r0,rsa->e,rsa->n,ctx,NULL)) goto err;
695 /* If 'I' was greater than (or equal to) rsa->n, the operation
696 * will be equivalent to using 'I mod n'. However, the result of
697 * the verify will *always* be less than 'n' so we don't check
698 * for absolute equality, just congruency. */
699 if (!BN_sub(&vrfy, &vrfy, I)) goto err;
700 if (!BN_mod(&vrfy, &vrfy, rsa->n, ctx)) goto err;
701 if (vrfy.neg)
702 if (!BN_add(&vrfy, &vrfy, rsa->n)) goto err;
703 if (!BN_is_zero(&vrfy))
704 /* 'I' and 'vrfy' aren't congruent mod n. Don't leak
705 * miscalculated CRT output, just do a raw (slower)
706 * mod_exp and return that instead. */
707 if (!rsa->meth->bn_mod_exp(r0,I,rsa->d,rsa->n,ctx,NULL)) goto err;
708 }
709 ret=1;
710err:
711 BN_clear_free(&m1);
712 BN_clear_free(&r1);
713 BN_clear_free(&vrfy);
714 BN_CTX_free(ctx);
715 return(ret);
716 }
717
718static int RSA_eay_init(RSA *rsa)
719 {
720 rsa->flags|=RSA_FLAG_CACHE_PUBLIC|RSA_FLAG_CACHE_PRIVATE;
721 return(1);
722 }
723
724static int RSA_eay_finish(RSA *rsa)
725 {
726 if (rsa->_method_mod_n != NULL)
727 BN_MONT_CTX_free(rsa->_method_mod_n);
728 if (rsa->_method_mod_p != NULL)
729 BN_MONT_CTX_free(rsa->_method_mod_p);
730 if (rsa->_method_mod_q != NULL)
731 BN_MONT_CTX_free(rsa->_method_mod_q);
732 return(1);
733 }
734
735#endif
diff --git a/src/lib/libssl/src/fips/rsa/fips_rsa_gen.c b/src/lib/libssl/src/fips/rsa/fips_rsa_gen.c
new file mode 100644
index 0000000000..2c92112477
--- /dev/null
+++ b/src/lib/libssl/src/fips/rsa/fips_rsa_gen.c
@@ -0,0 +1,249 @@
1/* crypto/rsa/rsa_gen.c */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdio.h>
60#include <string.h>
61#include <time.h>
62#include <openssl/err.h>
63#include <openssl/bn.h>
64#include <openssl/rsa.h>
65#include <openssl/fips.h>
66
67#ifdef OPENSSL_FIPS
68
69static int fips_check_rsa(RSA *rsa)
70 {
71 int n;
72 unsigned char ctext[256];
73 unsigned char ptext[256];
74 /* The longest we can have with OAEP padding and a 512 bit key */
75 static unsigned char original_ptext[] =
76 "\x01\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a\xbc\xde\xf0"
77 "\x23\x45\x67\x89\xab\xcd";
78
79 /* this will fail for keys shorter than 512 bits */
80 n=RSA_public_encrypt(sizeof(original_ptext)-1,original_ptext,ctext,rsa,
81 RSA_PKCS1_OAEP_PADDING);
82 if(n < 0)
83 {
84 ERR_print_errors_fp(stderr);
85 exit(1);
86 }
87 if(!memcmp(ctext,original_ptext,n))
88 {
89 FIPSerr(FIPS_F_FIPS_CHECK_RSA,FIPS_R_PAIRWISE_TEST_FAILED);
90 return 0;
91 }
92 n=RSA_private_decrypt(n,ctext,ptext,rsa,RSA_PKCS1_OAEP_PADDING);
93 if(n < 0)
94 {
95 ERR_print_errors_fp(stderr);
96 exit(1);
97 }
98 if(n != sizeof(original_ptext)-1 || memcmp(ptext,original_ptext,n))
99 {
100 FIPSerr(FIPS_F_FIPS_CHECK_RSA,FIPS_R_PAIRWISE_TEST_FAILED);
101 return 0;
102 }
103
104 return 1;
105 }
106
107RSA *RSA_generate_key(FIPS_RSA_SIZE_T bits, unsigned long e_value,
108 void (*callback)(int,int,void *), void *cb_arg)
109 {
110 RSA *rsa=NULL;
111 BIGNUM *r0=NULL,*r1=NULL,*r2=NULL,*r3=NULL,*tmp;
112 int bitsp,bitsq,ok= -1,n=0,i;
113 BN_CTX *ctx=NULL,*ctx2=NULL;
114
115 if(FIPS_selftest_failed())
116 {
117 FIPSerr(FIPS_F_RSA_GENERATE_KEY,FIPS_R_FIPS_SELFTEST_FAILED);
118 return NULL;
119 }
120
121 ctx=BN_CTX_new();
122 if (ctx == NULL) goto err;
123 ctx2=BN_CTX_new();
124 if (ctx2 == NULL) goto err;
125 BN_CTX_start(ctx);
126 r0 = BN_CTX_get(ctx);
127 r1 = BN_CTX_get(ctx);
128 r2 = BN_CTX_get(ctx);
129 r3 = BN_CTX_get(ctx);
130 if (r3 == NULL) goto err;
131
132 bitsp=(bits+1)/2;
133 bitsq=bits-bitsp;
134 rsa=RSA_new();
135 if (rsa == NULL) goto err;
136
137 /* set e */
138 rsa->e=BN_new();
139 if (rsa->e == NULL) goto err;
140
141#if 1
142 /* The problem is when building with 8, 16, or 32 BN_ULONG,
143 * unsigned long can be larger */
144 for (i=0; i<sizeof(unsigned long)*8; i++)
145 {
146 if (e_value & (1UL<<i))
147 BN_set_bit(rsa->e,i);
148 }
149#else
150 if (!BN_set_word(rsa->e,e_value)) goto err;
151#endif
152
153 /* generate p and q */
154 for (;;)
155 {
156 rsa->p=BN_generate_prime(NULL,bitsp,0,NULL,NULL,callback,cb_arg);
157 if (rsa->p == NULL) goto err;
158 if (!BN_sub(r2,rsa->p,BN_value_one())) goto err;
159 if (!BN_gcd(r1,r2,rsa->e,ctx)) goto err;
160 if (BN_is_one(r1)) break;
161 if (callback != NULL) callback(2,n++,cb_arg);
162 BN_free(rsa->p);
163 }
164 if (callback != NULL) callback(3,0,cb_arg);
165 for (;;)
166 {
167 rsa->q=BN_generate_prime(NULL,bitsq,0,NULL,NULL,callback,cb_arg);
168 if (rsa->q == NULL) goto err;
169 if (!BN_sub(r2,rsa->q,BN_value_one())) goto err;
170 if (!BN_gcd(r1,r2,rsa->e,ctx)) goto err;
171 if (BN_is_one(r1) && (BN_cmp(rsa->p,rsa->q) != 0))
172 break;
173 if (callback != NULL) callback(2,n++,cb_arg);
174 BN_free(rsa->q);
175 }
176 if (callback != NULL) callback(3,1,cb_arg);
177 if (BN_cmp(rsa->p,rsa->q) < 0)
178 {
179 tmp=rsa->p;
180 rsa->p=rsa->q;
181 rsa->q=tmp;
182 }
183
184 /* calculate n */
185 rsa->n=BN_new();
186 if (rsa->n == NULL) goto err;
187 if (!BN_mul(rsa->n,rsa->p,rsa->q,ctx)) goto err;
188
189 /* calculate d */
190 if (!BN_sub(r1,rsa->p,BN_value_one())) goto err; /* p-1 */
191 if (!BN_sub(r2,rsa->q,BN_value_one())) goto err; /* q-1 */
192 if (!BN_mul(r0,r1,r2,ctx)) goto err; /* (p-1)(q-1) */
193
194/* should not be needed, since gcd(p-1,e) == 1 and gcd(q-1,e) == 1 */
195/* for (;;)
196 {
197 if (!BN_gcd(r3,r0,rsa->e,ctx)) goto err;
198 if (BN_is_one(r3)) break;
199
200 if (1)
201 {
202 if (!BN_add_word(rsa->e,2L)) goto err;
203 continue;
204 }
205 RSAerr(RSA_F_RSA_GENERATE_KEY,RSA_R_BAD_E_VALUE);
206 goto err;
207 }
208*/
209 rsa->d=BN_mod_inverse(NULL,rsa->e,r0,ctx2); /* d */
210 if (rsa->d == NULL) goto err;
211
212 /* calculate d mod (p-1) */
213 rsa->dmp1=BN_new();
214 if (rsa->dmp1 == NULL) goto err;
215 if (!BN_mod(rsa->dmp1,rsa->d,r1,ctx)) goto err;
216
217 /* calculate d mod (q-1) */
218 rsa->dmq1=BN_new();
219 if (rsa->dmq1 == NULL) goto err;
220 if (!BN_mod(rsa->dmq1,rsa->d,r2,ctx)) goto err;
221
222 /* calculate inverse of q mod p */
223 rsa->iqmp=BN_mod_inverse(NULL,rsa->q,rsa->p,ctx2);
224 if (rsa->iqmp == NULL) goto err;
225
226 if(!fips_check_rsa(rsa))
227 goto err;
228
229 ok=1;
230err:
231 if (ok == -1)
232 {
233 RSAerr(RSA_F_RSA_GENERATE_KEY,ERR_LIB_BN);
234 ok=0;
235 }
236 BN_CTX_end(ctx);
237 BN_CTX_free(ctx);
238 BN_CTX_free(ctx2);
239
240 if (!ok)
241 {
242 if (rsa != NULL) RSA_free(rsa);
243 return(NULL);
244 }
245 else
246 return(rsa);
247 }
248
249#endif
diff --git a/src/lib/libssl/src/fips/rsa/fips_rsa_selftest.c b/src/lib/libssl/src/fips/rsa/fips_rsa_selftest.c
new file mode 100644
index 0000000000..4e3b9445fc
--- /dev/null
+++ b/src/lib/libssl/src/fips/rsa/fips_rsa_selftest.c
@@ -0,0 +1,251 @@
1/* ====================================================================
2 * Copyright (c) 2003 The OpenSSL Project. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * 3. All advertising materials mentioning features or use of this
17 * software must display the following acknowledgment:
18 * "This product includes software developed by the OpenSSL Project
19 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
20 *
21 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
22 * endorse or promote products derived from this software without
23 * prior written permission. For written permission, please contact
24 * openssl-core@openssl.org.
25 *
26 * 5. Products derived from this software may not be called "OpenSSL"
27 * nor may "OpenSSL" appear in their names without prior written
28 * permission of the OpenSSL Project.
29 *
30 * 6. Redistributions of any form whatsoever must retain the following
31 * acknowledgment:
32 * "This product includes software developed by the OpenSSL Project
33 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
34 *
35 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
36 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
38 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
41 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
42 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
43 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
44 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
45 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
46 * OF THE POSSIBILITY OF SUCH DAMAGE.
47 *
48 */
49
50#include <string.h>
51#include <openssl/err.h>
52#include <openssl/fips.h>
53#include <openssl/rsa.h>
54#include <openssl/sha.h>
55#include <openssl/opensslconf.h>
56
57#ifdef OPENSSL_FIPS
58#define SetKey \
59 key->n = BN_bin2bn(n, sizeof(n)-1, key->n); \
60 key->e = BN_bin2bn(e, sizeof(e)-1, key->e); \
61 key->d = BN_bin2bn(d, sizeof(d)-1, key->d); \
62 key->p = BN_bin2bn(p, sizeof(p)-1, key->p); \
63 key->q = BN_bin2bn(q, sizeof(q)-1, key->q); \
64 key->dmp1 = BN_bin2bn(dmp1, sizeof(dmp1)-1, key->dmp1); \
65 key->dmq1 = BN_bin2bn(dmq1, sizeof(dmq1)-1, key->dmq1); \
66 key->iqmp = BN_bin2bn(iqmp, sizeof(iqmp)-1, key->iqmp); \
67 memcpy(c, ctext_ex, sizeof(ctext_ex) - 1); \
68 return (sizeof(ctext_ex) - 1);
69
70static unsigned char n[] =
71"\x00\xBB\xF8\x2F\x09\x06\x82\xCE\x9C\x23\x38\xAC\x2B\x9D\xA8\x71"
72"\xF7\x36\x8D\x07\xEE\xD4\x10\x43\xA4\x40\xD6\xB6\xF0\x74\x54\xF5"
73"\x1F\xB8\xDF\xBA\xAF\x03\x5C\x02\xAB\x61\xEA\x48\xCE\xEB\x6F\xCD"
74"\x48\x76\xED\x52\x0D\x60\xE1\xEC\x46\x19\x71\x9D\x8A\x5B\x8B\x80"
75"\x7F\xAF\xB8\xE0\xA3\xDF\xC7\x37\x72\x3E\xE6\xB4\xB7\xD9\x3A\x25"
76"\x84\xEE\x6A\x64\x9D\x06\x09\x53\x74\x88\x34\xB2\x45\x45\x98\x39"
77"\x4E\xE0\xAA\xB1\x2D\x7B\x61\xA5\x1F\x52\x7A\x9A\x41\xF6\xC1\x68"
78"\x7F\xE2\x53\x72\x98\xCA\x2A\x8F\x59\x46\xF8\xE5\xFD\x09\x1D\xBD"
79"\xCB";
80
81
82static int setrsakey(RSA *key, unsigned char *c)
83 {
84 static unsigned char e[] = "\x11";
85
86 static unsigned char d[] =
87"\x00\xA5\xDA\xFC\x53\x41\xFA\xF2\x89\xC4\xB9\x88\xDB\x30\xC1\xCD"
88"\xF8\x3F\x31\x25\x1E\x06\x68\xB4\x27\x84\x81\x38\x01\x57\x96\x41"
89"\xB2\x94\x10\xB3\xC7\x99\x8D\x6B\xC4\x65\x74\x5E\x5C\x39\x26\x69"
90"\xD6\x87\x0D\xA2\xC0\x82\xA9\x39\xE3\x7F\xDC\xB8\x2E\xC9\x3E\xDA"
91"\xC9\x7F\xF3\xAD\x59\x50\xAC\xCF\xBC\x11\x1C\x76\xF1\xA9\x52\x94"
92"\x44\xE5\x6A\xAF\x68\xC5\x6C\x09\x2C\xD3\x8D\xC3\xBE\xF5\xD2\x0A"
93"\x93\x99\x26\xED\x4F\x74\xA1\x3E\xDD\xFB\xE1\xA1\xCE\xCC\x48\x94"
94"\xAF\x94\x28\xC2\xB7\xB8\x88\x3F\xE4\x46\x3A\x4B\xC8\x5B\x1C\xB3"
95"\xC1";
96
97 static unsigned char p[] =
98"\x00\xEE\xCF\xAE\x81\xB1\xB9\xB3\xC9\x08\x81\x0B\x10\xA1\xB5\x60"
99"\x01\x99\xEB\x9F\x44\xAE\xF4\xFD\xA4\x93\xB8\x1A\x9E\x3D\x84\xF6"
100"\x32\x12\x4E\xF0\x23\x6E\x5D\x1E\x3B\x7E\x28\xFA\xE7\xAA\x04\x0A"
101"\x2D\x5B\x25\x21\x76\x45\x9D\x1F\x39\x75\x41\xBA\x2A\x58\xFB\x65"
102"\x99";
103
104 static unsigned char q[] =
105"\x00\xC9\x7F\xB1\xF0\x27\xF4\x53\xF6\x34\x12\x33\xEA\xAA\xD1\xD9"
106"\x35\x3F\x6C\x42\xD0\x88\x66\xB1\xD0\x5A\x0F\x20\x35\x02\x8B\x9D"
107"\x86\x98\x40\xB4\x16\x66\xB4\x2E\x92\xEA\x0D\xA3\xB4\x32\x04\xB5"
108"\xCF\xCE\x33\x52\x52\x4D\x04\x16\xA5\xA4\x41\xE7\x00\xAF\x46\x15"
109"\x03";
110
111 static unsigned char dmp1[] =
112"\x54\x49\x4C\xA6\x3E\xBA\x03\x37\xE4\xE2\x40\x23\xFC\xD6\x9A\x5A"
113"\xEB\x07\xDD\xDC\x01\x83\xA4\xD0\xAC\x9B\x54\xB0\x51\xF2\xB1\x3E"
114"\xD9\x49\x09\x75\xEA\xB7\x74\x14\xFF\x59\xC1\xF7\x69\x2E\x9A\x2E"
115"\x20\x2B\x38\xFC\x91\x0A\x47\x41\x74\xAD\xC9\x3C\x1F\x67\xC9\x81";
116
117 static unsigned char dmq1[] =
118"\x47\x1E\x02\x90\xFF\x0A\xF0\x75\x03\x51\xB7\xF8\x78\x86\x4C\xA9"
119"\x61\xAD\xBD\x3A\x8A\x7E\x99\x1C\x5C\x05\x56\xA9\x4C\x31\x46\xA7"
120"\xF9\x80\x3F\x8F\x6F\x8A\xE3\x42\xE9\x31\xFD\x8A\xE4\x7A\x22\x0D"
121"\x1B\x99\xA4\x95\x84\x98\x07\xFE\x39\xF9\x24\x5A\x98\x36\xDA\x3D";
122
123 static unsigned char iqmp[] =
124"\x00\xB0\x6C\x4F\xDA\xBB\x63\x01\x19\x8D\x26\x5B\xDB\xAE\x94\x23"
125"\xB3\x80\xF2\x71\xF7\x34\x53\x88\x50\x93\x07\x7F\xCD\x39\xE2\x11"
126"\x9F\xC9\x86\x32\x15\x4F\x58\x83\xB1\x67\xA9\x67\xBF\x40\x2B\x4E"
127"\x9E\x2E\x0F\x96\x56\xE6\x98\xEA\x36\x66\xED\xFB\x25\x79\x80\x39"
128"\xF7";
129
130 static unsigned char ctext_ex[] =
131"\x42\x4b\xc9\x51\x61\xd4\xca\xa0\x18\x6c\x4d\xca\x61\x8f\x2d\x07"
132"\x8c\x63\xc5\x6b\xa2\x4c\x32\xb1\xda\xb7\xdd\x32\xb6\x51\x68\xc3"
133"\x6e\x98\x46\xd6\xbb\x1a\xd5\x99\x05\x92\x7c\xd7\xbc\x08\x9e\xe4"
134"\xc3\x70\x4d\xe6\x99\x7e\x61\x31\x07\x7a\x19\xdb\x3e\x11\xfa\x3d"
135"\x7c\x61\xd7\x78\x14\x3f\x05\x16\xa0\xc4\xbf\xcd\xee\xca\x67\x4c"
136"\x80\x4e\xca\x43\x2f\x35\x43\x58\xa7\x50\x7e\x3e\x52\x82\xab\xac"
137"\xa6\x50\xe8\x39\x9f\xe0\x7f\x58\x1d\x1b\x90\x93\x04\xec\xb3\xf9"
138"\x24\xd3\x75\x3e\x39\xd1\x14\xc6\x33\xce\xd6\xee\x20\x47\xec\xe4";
139
140 SetKey;
141 }
142
143void FIPS_corrupt_rsa()
144 {
145 n[0]++;
146 }
147
148int FIPS_selftest_rsa()
149 {
150 int clen;
151 RSA *key;
152 unsigned char expected_ctext[256];
153 unsigned char ctext[256];
154 unsigned char ptext[256];
155 static unsigned char original_ptext[] =
156 "\x01\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a\xbc\xde\xf0"
157 "\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a\xbc\xde\xf0\x12"
158 "\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a\xbc\xde\xf0\x12\x34"
159 "\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a\xbc\xde\xf0\x12\x34\x56"
160 "\x89\xab\xcd\xef\x12\x34\x56\x78\x9a\xbc\xde\xf0\x12\x34\x56\x78"
161 "\xab\xcd\xef\x12\x34\x56\x78\x9a\xbc\xde\xf0\x12\x34\x56\x78\x9a"
162 "\xcd\xef\x12\x34\x56\x78\x9a\xbc\xde\xf0\x12\x34\x56\x78\x9a\xbc"
163 "\xef\x12\x34\x56\x78\x9a\xbc\xde\xf0\x12\x34\x56\x78\x9a\xbc\xde"
164 "\xf0\x12\x34\x56\x78\x9a\xbc\xde\xf0\x12\x34\x56\x78\x9a\xbc\xde";
165 unsigned char md[SHA_DIGEST_LENGTH];
166 unsigned char mdkat[SHA_DIGEST_LENGTH] =
167 "\x2d\x57\x1d\x6f\x5c\x37\xf9\xf0\x3b\xb4\x3c\xe8\x2c\x4c\xb3\x04"
168 "\x75\xa2\x0e\xfb";
169 unsigned char ctextkat[] =
170 "\x3e\xc5\x0a\xbe\x29\xa2\xca\x9a\x35\x14\x17\x26\xa4\x0f\xa3\x03"
171 "\x65\xb5\x37\xf5\x6a\xaa\xb\xf\x2c\x0d\x8\xc0\x73\x8\x3c\x88\x85"
172 "\x36\x68\x16\xfe\x2f\x59\x77\x7e\x2a\x76\x9a\xc7\x27\x19\x9b\x54"
173 "\x14\x87\xf3\xe0\xce\x1e\x68\x10\x40\x14\xac\xbc\xe6\x6f\x26\x1f"
174 "\x55\xd1\x15\x81\x48\x10\xf4\x89\xe5\x67\x52\x42\x87\x04\x74\x4e"
175 "\x96\x14\x7c\x53\xc9\x1e\x84\x11\x7d\x7d\x23\xbd\xff\x6c\xcb\x00"
176 "\x96\x2e\x7d\xfb\x47\xea\x78\xcd\xd8\x04\x3a\x98\x06\x13\x68\x39"
177 "\xa1\xe2\xbc\x9f\x64\xc7\x62\xf0\x74\x4d\x42\xe0\x0b\xcf\x24\x48";
178 int i;
179
180 /* Perform pairwise consistency test by: ... */
181
182 key=RSA_new();
183 clen=setrsakey(key,expected_ctext);
184 /* ...1) apply public key to plaintext, resulting ciphertext must be
185 * different
186 */
187 i=RSA_public_encrypt(128,original_ptext,ctext,key,
188 RSA_NO_PADDING);
189 if(i != clen || memcmp(ctext,expected_ctext,i))
190 {
191 FIPSerr(FIPS_F_FIPS_SELFTEST_RSA,FIPS_R_SELFTEST_FAILED);
192 return 0;
193 }
194 if(!memcmp(ctext,original_ptext,i))
195 {
196 FIPSerr(FIPS_F_FIPS_SELFTEST_RSA,FIPS_R_SELFTEST_FAILED);
197 return 0;
198 }
199 /* ...2) apply private key to ciphertext and compare result to
200 * original plaintext; results must be equal
201 */
202 i=RSA_private_decrypt(i,ctext,ptext,key,RSA_NO_PADDING);
203 if(i != 128 || memcmp(ptext,original_ptext,i))
204 {
205 FIPSerr(FIPS_F_FIPS_SELFTEST_RSA,FIPS_R_SELFTEST_FAILED);
206 return 0;
207 }
208
209 /* Perform sign and verify Known Answer Test by... */
210
211 /* ...1) using the same RSA key to encrypt the SHA-1 hash of a
212 * plaintext value larger than the RSA key size
213 */
214 if (RSA_size(key) >= sizeof(original_ptext) - 1)
215 {
216 FIPSerr(FIPS_F_FIPS_SELFTEST_RSA,FIPS_R_SELFTEST_FAILED);
217 return 0;
218 }
219 /* ...2) then generate the SHA-1 digest of plaintext, and compare the
220 * digest to the Known Answer (note here we duplicate the SHA-1 KAT)
221 */
222 SHA1(original_ptext,sizeof(original_ptext) - 1,md);
223 if(memcmp(md,mdkat,SHA_DIGEST_LENGTH))
224 {
225 FIPSerr(FIPS_F_FIPS_SELFTEST_SHA1,FIPS_R_SELFTEST_FAILED);
226 return 0;
227 }
228 /* ...3) then encrypt the digest, and compare the ciphertext
229 * to the Known Answer
230 */
231 i=RSA_private_encrypt(sizeof(md),md,ctext,key,RSA_PKCS1_PADDING);
232 if(i != clen || memcmp(ctextkat,ctext,i))
233 {
234 FIPSerr(FIPS_F_FIPS_SELFTEST_RSA,FIPS_R_SELFTEST_FAILED);
235 return 0;
236 }
237 /* ...4) and finally decrypt the signed digest and compare with
238 * the original Known Answer
239 */
240 i=RSA_public_decrypt(i,ctext,md,key,RSA_PKCS1_PADDING);
241 if(i != sizeof(md) || memcmp(mdkat,md,i))
242 {
243 FIPSerr(FIPS_F_FIPS_SELFTEST_RSA,FIPS_R_SELFTEST_FAILED);
244 return 0;
245 }
246
247 RSA_free(key);
248 return 1;
249 }
250
251#endif /* def OPENSSL_FIPS */
diff --git a/src/lib/libssl/src/install.com b/src/lib/libssl/src/install.com
index 4e4fe80dfe..8de3a7f977 100644
--- a/src/lib/libssl/src/install.com
+++ b/src/lib/libssl/src/install.com
@@ -52,23 +52,23 @@ $ IF F$PARSE("WRK_SSLPRIVATE:") .EQS. "" THEN -
52$ IF F$PARSE("WRK_SSLROOT:[VMS]") .EQS. "" THEN - 52$ IF F$PARSE("WRK_SSLROOT:[VMS]") .EQS. "" THEN -
53 CREATE/DIR/LOG WRK_SSLROOT:[VMS] 53 CREATE/DIR/LOG WRK_SSLROOT:[VMS]
54$ 54$
55$ SDIRS := CRYPTO,SSL,APPS,VMS!,RSAREF,TEST,TOOLS 55$ DIRS := CRYPTO,FIPS,SSL,APPS,VMS!,RSAREF,TEST,TOOLS
56$ EXHEADER := e_os2.h 56$ EXHEADER := e_os2.h
57$ 57$
58$ COPY 'EXHEADER' WRK_SSLINCLUDE: /LOG 58$ COPY 'EXHEADER' WRK_SSLINCLUDE: /LOG
59$ SET FILE/PROT=WORLD:RE WRK_SSLINCLUDE:'EXHEADER' 59$ SET FILE/PROT=WORLD:RE WRK_SSLINCLUDE:'EXHEADER'
60$ 60$
61$ I = 0 61$ I = 0
62$ LOOP_SDIRS: 62$ LOOP_DIRS:
63$ D = F$ELEMENT(I, ",", SDIRS) 63$ D = F$ELEMENT(I, ",", DIRS)
64$ I = I + 1 64$ I = I + 1
65$ IF D .EQS. "," THEN GOTO LOOP_SDIRS_END 65$ IF D .EQS. "," THEN GOTO LOOP_DIRS_END
66$ WRITE SYS$OUTPUT "Installing ",D," files." 66$ WRITE SYS$OUTPUT "Installing ",D," files."
67$ SET DEFAULT [.'D'] 67$ SET DEFAULT [.'D']
68$ @INSTALL 'ROOT'] 68$ @INSTALL 'ROOT']
69$ SET DEFAULT [-] 69$ SET DEFAULT [-]
70$ GOTO LOOP_SDIRS 70$ GOTO LOOP_DIRS
71$ LOOP_SDIRS_END: 71$ LOOP_DIRS_END:
72$ 72$
73$ DEASSIGN WRK_SSLROOT 73$ DEASSIGN WRK_SSLROOT
74$ DEASSIGN WRK_SSLVLIB 74$ DEASSIGN WRK_SSLVLIB
diff --git a/src/lib/libssl/src/makevms.com b/src/lib/libssl/src/makevms.com
index 443f3c15c5..d892fe9f0d 100644
--- a/src/lib/libssl/src/makevms.com
+++ b/src/lib/libssl/src/makevms.com
@@ -178,7 +178,7 @@ $ WRITE H_FILE "# define OPENSSL_SYS_VMS"
178$ WRITE H_FILE "#endif" 178$ WRITE H_FILE "#endif"
179$ CONFIG_LOGICALS := NO_ASM,NO_RSA,NO_DSA,NO_DH,NO_MD2,NO_MD5,NO_RIPEMD,- 179$ CONFIG_LOGICALS := NO_ASM,NO_RSA,NO_DSA,NO_DH,NO_MD2,NO_MD5,NO_RIPEMD,-
180 NO_SHA,NO_SHA0,NO_SHA1,NO_DES/NO_MDC2;NO_MDC2,NO_RC2,NO_RC4,NO_RC5,- 180 NO_SHA,NO_SHA0,NO_SHA1,NO_DES/NO_MDC2;NO_MDC2,NO_RC2,NO_RC4,NO_RC5,-
181 NO_IDEA,NO_BF,NO_CAST,NO_HMAC,NO_SSL2 181 NO_IDEA,NO_BF,NO_CAST,NO_HMAC,NO_SSL2,FIPS
182$ CONFIG_LOG_I = 0 182$ CONFIG_LOG_I = 0
183$ CONFIG_LOG_LOOP: 183$ CONFIG_LOG_LOOP:
184$ CONFIG_LOG_E1 = F$ELEMENT(CONFIG_LOG_I,",",CONFIG_LOGICALS) 184$ CONFIG_LOG_E1 = F$ELEMENT(CONFIG_LOG_I,",",CONFIG_LOGICALS)
@@ -357,7 +357,7 @@ $! Copy a lot of files around.
357$! 357$!
358$ SOFTLINKS: 358$ SOFTLINKS:
359$! 359$!
360$! Tell The User We Are Partly Rebuilding The [.TEST] Directory. 360$! Tell The User We Are Partly Rebuilding The [.APPS] Directory.
361$! 361$!
362$ WRITE SYS$OUTPUT "Rebuilding The '[.APPS]MD4.C', '[.APPS]MD5.C' And '[.APPS]RMD160.C' Files." 362$ WRITE SYS$OUTPUT "Rebuilding The '[.APPS]MD4.C', '[.APPS]MD5.C' And '[.APPS]RMD160.C' Files."
363$! 363$!
@@ -480,6 +480,33 @@ $!
480$ EXHEADER := ssl.h,ssl2.h,ssl3.h,ssl23.h,tls1.h,kssl.h 480$ EXHEADER := ssl.h,ssl2.h,ssl3.h,ssl23.h,tls1.h,kssl.h
481$ COPY SYS$DISK:[.SSL]'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL] 481$ COPY SYS$DISK:[.SSL]'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
482$! 482$!
483$! Copy All The ".H" Files From The [.FIPS] Directories.
484$!
485$ FDIRS := ,SHA1,RAND,DES,AES,DSA,RSA
486$ EXHEADER_ := fips.h
487$ EXHEADER_SHA1 :=
488$ EXHEADER_RAND := fips_rand.h
489$ EXHEADER_DES :=
490$ EXHEADER_AES :=
491$ EXHEADER_DSA :=
492$ EXHEADER_RSA :=
493$
494$ I = 0
495$ LOOP_FDIRS:
496$ D = F$EDIT(F$ELEMENT(I, ",", FDIRS),"TRIM")
497$ I = I + 1
498$ IF D .EQS. "," THEN GOTO LOOP_FDIRS_END
499$ tmp = EXHEADER_'D'
500$ IF tmp .EQS. "" THEN GOTO LOOP_FDIRS
501$ IF D .EQS. ""
502$ THEN
503$ COPY [.FIPS]'tmp' SYS$DISK:[.INCLUDE.OPENSSL] !/LOG
504$ ELSE
505$ COPY [.FIPS.'D']'tmp' SYS$DISK:[.INCLUDE.OPENSSL] !/LOG
506$ ENDIF
507$ GOTO LOOP_FDIRS
508$ LOOP_FDIRS_END:
509$!
483$! Purge all doubles 510$! Purge all doubles
484$! 511$!
485$ PURGE SYS$DISK:[.INCLUDE.OPENSSL]*.H 512$ PURGE SYS$DISK:[.INCLUDE.OPENSSL]*.H
@@ -505,9 +532,21 @@ $! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library.
505$! 532$!
506$ @CRYPTO-LIB LIBRARY 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" "''BUILDPART'" 533$ @CRYPTO-LIB LIBRARY 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" "''BUILDPART'"
507$! 534$!
535$! Go Back To The Main Directory.
536$!
537$ SET DEFAULT [-]
538$!
539$! Go To The [.FIPS] Directory.
540$!
541$ SET DEFAULT SYS$DISK:[.FIPS]
542$!
543$! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library.
544$!
545$ @FIPS-LIB LIBRARY 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" "''BUILDPART'"
546$!
508$! Build The [.xxx.EXE.CRYPTO]*.EXE Test Applications. 547$! Build The [.xxx.EXE.CRYPTO]*.EXE Test Applications.
509$! 548$!
510$ @CRYPTO-LIB APPS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN' 549$ @FIPS-LIB APPS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
511$! 550$!
512$! Go Back To The Main Directory. 551$! Go Back To The Main Directory.
513$! 552$!
diff --git a/src/lib/libssl/src/ms/do_masm.bat b/src/lib/libssl/src/ms/do_masm.bat
index f4c958c561..61c52562f7 100644
--- a/src/lib/libssl/src/ms/do_masm.bat
+++ b/src/lib/libssl/src/ms/do_masm.bat
@@ -1,3 +1,5 @@
1rem use "fips" as the first argument to make a proper FIPS build.
2
1@echo off 3@echo off
2echo Generating x86 for MASM assember 4echo Generating x86 for MASM assember
3 5
@@ -56,13 +58,13 @@ cd ..\..\..
56echo on 58echo on
57 59
58perl util\mkfiles.pl >MINFO 60perl util\mkfiles.pl >MINFO
59rem perl util\mk1mf.pl VC-MSDOS no-sock >ms\msdos.mak 61rem perl util\mk1mf.pl no-sock %1 VC-MSDOS >ms\msdos.mak
60rem perl util\mk1mf.pl VC-W31-32 >ms\w31.mak 62rem perl util\mk1mf.pl %1 VC-W31-32 >ms\w31.mak
61perl util\mk1mf.pl dll VC-W31-32 >ms\w31dll.mak 63perl util\mk1mf.pl dll %1 VC-W31-32 >ms\w31dll.mak
62perl util\mk1mf.pl VC-WIN32 >ms\nt.mak 64perl util\mk1mf.pl %1 VC-WIN32 >ms\nt.mak
63perl util\mk1mf.pl dll VC-WIN32 >ms\ntdll.mak 65perl util\mk1mf.pl dll %1 VC-WIN32 >ms\ntdll.mak
64 66
65perl util\mkdef.pl 16 libeay > ms\libeay16.def 67perl util\mkdef.pl 16 libeay %1 > ms\libeay16.def
66perl util\mkdef.pl 32 libeay > ms\libeay32.def 68perl util\mkdef.pl 32 libeay %1 > ms\libeay32.def
67perl util\mkdef.pl 16 ssleay > ms\ssleay16.def 69perl util\mkdef.pl 16 ssleay %1 > ms\ssleay16.def
68perl util\mkdef.pl 32 ssleay > ms\ssleay32.def 70perl util\mkdef.pl 32 ssleay %1 > ms\ssleay32.def
diff --git a/src/lib/libssl/src/ms/do_ms.bat b/src/lib/libssl/src/ms/do_ms.bat
index a8cf515bac..72179708bf 100644
--- a/src/lib/libssl/src/ms/do_ms.bat
+++ b/src/lib/libssl/src/ms/do_ms.bat
@@ -1,14 +1,14 @@
1 1
2perl util\mkfiles.pl >MINFO 2perl util\mkfiles.pl >MINFO
3rem perl util\mk1mf.pl VC-MSDOS no-sock >ms\msdos.mak 3rem perl util\mk1mf.pl no-sock %1 VC-MSDOS >ms\msdos.mak
4rem perl util\mk1mf.pl VC-W31-32 >ms\w31.mak 4rem perl util\mk1mf.pl %1 VC-W31-32 >ms\w31.mak
5perl util\mk1mf.pl dll VC-W31-32 >ms\w31dll.mak 5perl util\mk1mf.pl dll %1 VC-W31-32 >ms\w31dll.mak
6perl util\mk1mf.pl no-asm VC-WIN32 >ms\nt.mak 6perl util\mk1mf.pl no-asm %1 VC-WIN32 >ms\nt.mak
7perl util\mk1mf.pl dll no-asm VC-WIN32 >ms\ntdll.mak 7perl util\mk1mf.pl dll no-asm %1 VC-WIN32 >ms\ntdll.mak
8perl util\mk1mf.pl no-asm VC-CE >ms\ce.mak 8perl util\mk1mf.pl no-asm %1 VC-CE >ms\ce.mak
9perl util\mk1mf.pl dll no-asm VC-CE >ms\cedll.mak 9perl util\mk1mf.pl dll no-asm %1 VC-CE >ms\cedll.mak
10 10
11perl util\mkdef.pl 16 libeay > ms\libeay16.def 11perl util\mkdef.pl 16 libeay %1 > ms\libeay16.def
12perl util\mkdef.pl 32 libeay > ms\libeay32.def 12perl util\mkdef.pl 32 libeay %1 > ms\libeay32.def
13perl util\mkdef.pl 16 ssleay > ms\ssleay16.def 13perl util\mkdef.pl 16 ssleay %1 > ms\ssleay16.def
14perl util\mkdef.pl 32 ssleay > ms\ssleay32.def 14perl util\mkdef.pl 32 ssleay %1 > ms\ssleay32.def
diff --git a/src/lib/libssl/src/ms/do_nasm.bat b/src/lib/libssl/src/ms/do_nasm.bat
index 557f8a66d7..270dab0058 100644
--- a/src/lib/libssl/src/ms/do_nasm.bat
+++ b/src/lib/libssl/src/ms/do_nasm.bat
@@ -1,3 +1,4 @@
1rem use "fips" as the first argument to make a proper FIPS build.
1 2
2@echo off 3@echo off
3echo Generating x86 for NASM assember 4echo Generating x86 for NASM assember
@@ -57,14 +58,14 @@ cd ..\..\..
57echo on 58echo on
58 59
59perl util\mkfiles.pl >MINFO 60perl util\mkfiles.pl >MINFO
60rem perl util\mk1mf.pl VC-MSDOS no-sock >ms\msdos.mak 61rem perl util\mk1mf.pl no-sock %1 VC-MSDOS >ms\msdos.mak
61rem perl util\mk1mf.pl VC-W31-32 >ms\w31.mak 62rem perl util\mk1mf.pl %1 VC-W31-32 >ms\w31.mak
62perl util\mk1mf.pl dll VC-W31-32 >ms\w31dll.mak 63perl util\mk1mf.pl dll %1 VC-W31-32 >ms\w31dll.mak
63perl util\mk1mf.pl nasm VC-WIN32 >ms\nt.mak 64perl util\mk1mf.pl nasm %1 VC-WIN32 >ms\nt.mak
64perl util\mk1mf.pl dll nasm VC-WIN32 >ms\ntdll.mak 65perl util\mk1mf.pl dll nasm %1 VC-WIN32 >ms\ntdll.mak
65perl util\mk1mf.pl nasm BC-NT >ms\bcb.mak 66perl util\mk1mf.pl nasm %1 BC-NT >ms\bcb.mak
66 67
67perl util\mkdef.pl 16 libeay > ms\libeay16.def 68perl util\mkdef.pl 16 libeay %1 > ms\libeay16.def
68perl util\mkdef.pl 32 libeay > ms\libeay32.def 69perl util\mkdef.pl 32 libeay %1 > ms\libeay32.def
69perl util\mkdef.pl 16 ssleay > ms\ssleay16.def 70perl util\mkdef.pl 16 ssleay %1 > ms\ssleay16.def
70perl util\mkdef.pl 32 ssleay > ms\ssleay32.def 71perl util\mkdef.pl 32 ssleay %1 > ms\ssleay32.def
diff --git a/src/lib/libssl/src/ms/do_nt.bat b/src/lib/libssl/src/ms/do_nt.bat
index 9c06c27caa..66b408b283 100644
--- a/src/lib/libssl/src/ms/do_nt.bat
+++ b/src/lib/libssl/src/ms/do_nt.bat
@@ -1,7 +1,7 @@
1 1
2perl util\mkfiles.pl >MINFO 2perl util\mkfiles.pl >MINFO
3perl util\mk1mf.pl no-asm VC-NT >ms\nt.mak 3perl util\mk1mf.pl no-asm %1 VC-NT >ms\nt.mak
4perl util\mk1mf.pl dll no-asm VC-NT >ms\ntdll.mak 4perl util\mk1mf.pl dll no-asm %1 VC-NT >ms\ntdll.mak
5 5
6perl util\mkdef.pl libeay NT > ms\libeay32.def 6perl util\mkdef.pl libeay NT %1 > ms\libeay32.def
7perl util\mkdef.pl ssleay NT > ms\ssleay32.def 7perl util\mkdef.pl ssleay NT %1 > ms\ssleay32.def
diff --git a/src/lib/libssl/src/ms/test.bat b/src/lib/libssl/src/ms/test.bat
index c3a1b0c28d..7fb0442147 100644
--- a/src/lib/libssl/src/ms/test.bat
+++ b/src/lib/libssl/src/ms/test.bat
@@ -87,20 +87,22 @@ echo testss
87call %test%\testss openssl 87call %test%\testss openssl
88if errorlevel 1 goto done 88if errorlevel 1 goto done
89 89
90set SSL_TEST=ssltest -key keyU.ss -cert certU.ss -c_key keyU.ss -c_cert certU.ss -CAfile certCA.ss
91
90echo test sslv2 92echo test sslv2
91ssltest -ssl2 93ssltest -ssl2
92if errorlevel 1 goto done 94if errorlevel 1 goto done
93 95
94echo test sslv2 with server authentication 96echo test sslv2 with server authentication
95ssltest -ssl2 -server_auth -CAfile cert.tmp 97%SSL_TEST% -ssl2 -server_auth
96if errorlevel 1 goto done 98if errorlevel 1 goto done
97 99
98echo test sslv2 with client authentication 100echo test sslv2 with client authentication
99ssltest -ssl2 -client_auth -CAfile cert.tmp 101%SSL_TEST% -ssl2 -client_auth
100if errorlevel 1 goto done 102if errorlevel 1 goto done
101 103
102echo test sslv2 with both client and server authentication 104echo test sslv2 with both client and server authentication
103ssltest -ssl2 -server_auth -client_auth -CAfile cert.tmp 105%SSL_TEST% -ssl2 -server_auth -client_auth
104if errorlevel 1 goto done 106if errorlevel 1 goto done
105 107
106echo test sslv3 108echo test sslv3
@@ -108,15 +110,15 @@ ssltest -ssl3
108if errorlevel 1 goto done 110if errorlevel 1 goto done
109 111
110echo test sslv3 with server authentication 112echo test sslv3 with server authentication
111ssltest -ssl3 -server_auth -CAfile cert.tmp 113%SSL_TEST% -ssl3 -server_auth
112if errorlevel 1 goto done 114if errorlevel 1 goto done
113 115
114echo test sslv3 with client authentication 116echo test sslv3 with client authentication
115ssltest -ssl3 -client_auth -CAfile cert.tmp 117%SSL_TEST% -ssl3 -client_auth
116if errorlevel 1 goto done 118if errorlevel 1 goto done
117 119
118echo test sslv3 with both client and server authentication 120echo test sslv3 with both client and server authentication
119ssltest -ssl3 -server_auth -client_auth -CAfile cert.tmp 121%SSL_TEST% -ssl3 -server_auth -client_auth
120if errorlevel 1 goto done 122if errorlevel 1 goto done
121 123
122echo test sslv2/sslv3 124echo test sslv2/sslv3
@@ -124,15 +126,15 @@ ssltest
124if errorlevel 1 goto done 126if errorlevel 1 goto done
125 127
126echo test sslv2/sslv3 with server authentication 128echo test sslv2/sslv3 with server authentication
127ssltest -server_auth -CAfile cert.tmp 129%SSL_TEST% -server_auth
128if errorlevel 1 goto done 130if errorlevel 1 goto done
129 131
130echo test sslv2/sslv3 with client authentication 132echo test sslv2/sslv3 with client authentication
131ssltest -client_auth -CAfile cert.tmp 133%SSL_TEST% -client_auth
132if errorlevel 1 goto done 134if errorlevel 1 goto done
133 135
134echo test sslv2/sslv3 with both client and server authentication 136echo test sslv2/sslv3 with both client and server authentication
135ssltest -server_auth -client_auth -CAfile cert.tmp 137%SSL_TEST% -server_auth -client_auth
136if errorlevel 1 goto done 138if errorlevel 1 goto done
137 139
138echo test sslv2 via BIO pair 140echo test sslv2 via BIO pair
@@ -144,15 +146,15 @@ ssltest -bio_pair -dhe1024dsa -v
144if errorlevel 1 goto done 146if errorlevel 1 goto done
145 147
146echo test sslv2 with server authentication via BIO pair 148echo test sslv2 with server authentication via BIO pair
147ssltest -bio_pair -ssl2 -server_auth -CAfile cert.tmp 149%SSL_TEST% -bio_pair -ssl2 -server_auth
148if errorlevel 1 goto done 150if errorlevel 1 goto done
149 151
150echo test sslv2 with client authentication via BIO pair 152echo test sslv2 with client authentication via BIO pair
151ssltest -bio_pair -ssl2 -client_auth -CAfile cert.tmp 153%SSL_TEST% -bio_pair -ssl2 -client_auth
152if errorlevel 1 goto done 154if errorlevel 1 goto done
153 155
154echo test sslv2 with both client and server authentication via BIO pair 156echo test sslv2 with both client and server authentication via BIO pair
155ssltest -bio_pair -ssl2 -server_auth -client_auth -CAfile cert.tmp 157%SSL_TEST% -bio_pair -ssl2 -server_auth -client_auth
156if errorlevel 1 goto done 158if errorlevel 1 goto done
157 159
158echo test sslv3 via BIO pair 160echo test sslv3 via BIO pair
@@ -160,31 +162,31 @@ ssltest -bio_pair -ssl3
160if errorlevel 1 goto done 162if errorlevel 1 goto done
161 163
162echo test sslv3 with server authentication via BIO pair 164echo test sslv3 with server authentication via BIO pair
163ssltest -bio_pair -ssl3 -server_auth -CAfile cert.tmp 165%SSL_TEST% -bio_pair -ssl3 -server_auth
164if errorlevel 1 goto done 166if errorlevel 1 goto done
165 167
166echo test sslv3 with client authentication via BIO pair 168echo test sslv3 with client authentication via BIO pair
167ssltest -bio_pair -ssl3 -client_auth -CAfile cert.tmp 169%SSL_TEST% -bio_pair -ssl3 -client_auth
168if errorlevel 1 goto done 170if errorlevel 1 goto done
169 171
170echo test sslv3 with both client and server authentication via BIO pair 172echo test sslv3 with both client and server authentication via BIO pair
171ssltest -bio_pair -ssl3 -server_auth -client_auth -CAfile cert.tmp 173%SSL_TEST% -bio_pair -ssl3 -server_auth -client_auth
172if errorlevel 1 goto done 174if errorlevel 1 goto done
173 175
174echo test sslv2/sslv3 via BIO pair 176echo test sslv2/sslv3 via BIO pair
175ssltest 177ssltest -bio_pair
176if errorlevel 1 goto done 178if errorlevel 1 goto done
177 179
178echo test sslv2/sslv3 with server authentication 180echo test sslv2/sslv3 with server authentication
179ssltest -bio_pair -server_auth -CAfile cert.tmp 181%SSL_TEST% -bio_pair -server_auth
180if errorlevel 1 goto done 182if errorlevel 1 goto done
181 183
182echo test sslv2/sslv3 with client authentication via BIO pair 184echo test sslv2/sslv3 with client authentication via BIO pair
183ssltest -bio_pair -client_auth -CAfile cert.tmp 185%SSL_TEST% -bio_pair -client_auth
184if errorlevel 1 goto done 186if errorlevel 1 goto done
185 187
186echo test sslv2/sslv3 with both client and server authentication via BIO pair 188echo test sslv2/sslv3 with both client and server authentication via BIO pair
187ssltest -bio_pair -server_auth -client_auth -CAfile cert.tmp 189%SSL_TEST% -bio_pair -server_auth -client_auth
188if errorlevel 1 goto done 190if errorlevel 1 goto done
189 191
190del cert.tmp 192del cert.tmp
diff --git a/src/lib/libssl/src/ms/testss.bat b/src/lib/libssl/src/ms/testss.bat
index f7e58e2756..b4aaf3c601 100644
--- a/src/lib/libssl/src/ms/testss.bat
+++ b/src/lib/libssl/src/ms/testss.bat
@@ -4,7 +4,7 @@ rem set ssleay=..\out\ssleay
4set ssleay=%1 4set ssleay=%1
5 5
6set reqcmd=%ssleay% req 6set reqcmd=%ssleay% req
7set x509cmd=%ssleay% x509 7set x509cmd=%ssleay% x509 -sha1
8set verifycmd=%ssleay% verify 8set verifycmd=%ssleay% verify
9 9
10set CAkey=keyCA.ss 10set CAkey=keyCA.ss
diff --git a/src/lib/libssl/src/openssl.spec b/src/lib/libssl/src/openssl.spec
index 6a272f6969..98ef153e3b 100644
--- a/src/lib/libssl/src/openssl.spec
+++ b/src/lib/libssl/src/openssl.spec
@@ -1,7 +1,7 @@
1%define libmaj 0 1%define libmaj 0
2%define libmin 9 2%define libmin 9
3%define librel 7 3%define librel 7
4%define librev d 4%define librev g
5Release: 1 5Release: 1
6 6
7%define openssldir /var/ssl 7%define openssldir /var/ssl
diff --git a/src/lib/libssl/src/shlib/hpux10-cc.sh b/src/lib/libssl/src/shlib/hpux10-cc.sh
index 81eb9d4cab..fcadda827d 100644
--- a/src/lib/libssl/src/shlib/hpux10-cc.sh
+++ b/src/lib/libssl/src/shlib/hpux10-cc.sh
@@ -74,9 +74,9 @@ make clean
74 74
75# Hack the Makefiles to pick up the dynamic libraries during linking 75# Hack the Makefiles to pick up the dynamic libraries during linking
76# 76#
77sed 's/^PEX_LIBS=.*$/PEX_LIBS=-L\/usr\/local\/ssl\/lib/' Makefile.ssl >xxx; mv xxx Makefile.ssl 77sed 's/^PEX_LIBS=.*$/PEX_LIBS=-L\/usr\/local\/ssl\/lib/' Makefile >xxx; mv xxx Makefile.ssl
78sed 's/-L\.\.//' apps/Makefile.ssl >xxx; mv xxx apps/Makefile.ssl 78sed 's/-L\.\.//' apps/Makefile >xxx; mv xxx apps/Makefile
79sed 's/-L\.\.//' test/Makefile.ssl >xxx; mv xxx test/Makefile.ssl 79sed 's/-L\.\.//' test/Makefile >xxx; mv xxx test/Makefile
80# Build the static libs and the executables in one make. 80# Build the static libs and the executables in one make.
81make 81make
82# Install everything 82# Install everything
diff --git a/src/lib/libssl/src/ssl/Makefile b/src/lib/libssl/src/ssl/Makefile
new file mode 100644
index 0000000000..baf191b909
--- /dev/null
+++ b/src/lib/libssl/src/ssl/Makefile
@@ -0,0 +1,1020 @@
1#
2# SSLeay/ssl/Makefile
3#
4
5DIR= ssl
6TOP= ..
7CC= cc
8INCLUDES= -I../crypto -I$(TOP) -I../include $(KRB5_INCLUDES)
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16AR= ar r
17# KRB5 stuff
18KRB5_INCLUDES=
19
20CFLAGS= $(INCLUDES) $(CFLAG)
21
22GENERAL=Makefile README ssl-lib.com install.com
23TEST=ssltest.c
24APPS=
25
26LIB=$(TOP)/libssl.a
27SHARED_LIB= libssl$(SHLIB_EXT)
28LIBSRC= \
29 s2_meth.c s2_srvr.c s2_clnt.c s2_lib.c s2_enc.c s2_pkt.c \
30 s3_meth.c s3_srvr.c s3_clnt.c s3_lib.c s3_enc.c s3_pkt.c s3_both.c \
31 s23_meth.c s23_srvr.c s23_clnt.c s23_lib.c s23_pkt.c \
32 t1_meth.c t1_srvr.c t1_clnt.c t1_lib.c t1_enc.c \
33 ssl_lib.c ssl_err2.c ssl_cert.c ssl_sess.c \
34 ssl_ciph.c ssl_stat.c ssl_rsa.c \
35 ssl_asn1.c ssl_txt.c ssl_algs.c \
36 bio_ssl.c ssl_err.c kssl.c
37LIBOBJ= \
38 s2_meth.o s2_srvr.o s2_clnt.o s2_lib.o s2_enc.o s2_pkt.o \
39 s3_meth.o s3_srvr.o s3_clnt.o s3_lib.o s3_enc.o s3_pkt.o s3_both.o \
40 s23_meth.o s23_srvr.o s23_clnt.o s23_lib.o s23_pkt.o \
41 t1_meth.o t1_srvr.o t1_clnt.o t1_lib.o t1_enc.o \
42 ssl_lib.o ssl_err2.o ssl_cert.o ssl_sess.o \
43 ssl_ciph.o ssl_stat.o ssl_rsa.o \
44 ssl_asn1.o ssl_txt.o ssl_algs.o \
45 bio_ssl.o ssl_err.o kssl.o
46
47SRC= $(LIBSRC)
48
49EXHEADER= ssl.h ssl2.h ssl3.h ssl23.h tls1.h kssl.h
50HEADER= $(EXHEADER) ssl_locl.h kssl_lcl.h
51
52ALL= $(GENERAL) $(SRC) $(HEADER)
53
54top:
55 (cd ..; $(MAKE) DIRS=$(DIR) all)
56
57all: shared
58
59lib: $(LIBOBJ)
60 $(AR) $(LIB) $(LIBOBJ)
61 $(RANLIB) $(LIB) || echo Never mind.
62 @touch lib
63
64shared: lib
65 if [ -n "$(SHARED_LIBS)" ]; then \
66 (cd ..; $(MAKE) $(SHARED_LIB)); \
67 fi
68
69files:
70 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
71
72links:
73 @$(PERL) $(TOP)/util/mklink.pl ../include/openssl $(EXHEADER)
74 @$(PERL) $(TOP)/util/mklink.pl ../test $(TEST)
75 @$(PERL) $(TOP)/util/mklink.pl ../apps $(APPS)
76
77install:
78 @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
79 do \
80 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
81 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
82 done;
83
84tags:
85 ctags $(SRC)
86
87tests:
88
89lint:
90 lint -DLINT $(INCLUDES) $(SRC)>fluff
91
92depend:
93 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
94
95dclean:
96 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
97 mv -f Makefile.new $(MAKEFILE)
98
99clean:
100 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
101
102# DO NOT DELETE THIS LINE -- make depend depends on it.
103
104bio_ssl.o: ../include/openssl/aes.h ../include/openssl/asn1.h
105bio_ssl.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
106bio_ssl.o: ../include/openssl/bn.h ../include/openssl/buffer.h
107bio_ssl.o: ../include/openssl/cast.h ../include/openssl/comp.h
108bio_ssl.o: ../include/openssl/crypto.h ../include/openssl/des.h
109bio_ssl.o: ../include/openssl/des_old.h ../include/openssl/dh.h
110bio_ssl.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
111bio_ssl.o: ../include/openssl/err.h ../include/openssl/evp.h
112bio_ssl.o: ../include/openssl/idea.h ../include/openssl/kssl.h
113bio_ssl.o: ../include/openssl/lhash.h ../include/openssl/md2.h
114bio_ssl.o: ../include/openssl/md4.h ../include/openssl/md5.h
115bio_ssl.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
116bio_ssl.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
117bio_ssl.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
118bio_ssl.o: ../include/openssl/pem.h ../include/openssl/pem2.h
119bio_ssl.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
120bio_ssl.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
121bio_ssl.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
122bio_ssl.o: ../include/openssl/safestack.h ../include/openssl/sha.h
123bio_ssl.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
124bio_ssl.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
125bio_ssl.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
126bio_ssl.o: ../include/openssl/tls1.h ../include/openssl/ui.h
127bio_ssl.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
128bio_ssl.o: ../include/openssl/x509_vfy.h bio_ssl.c
129kssl.o: ../include/openssl/aes.h ../include/openssl/asn1.h
130kssl.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
131kssl.o: ../include/openssl/bn.h ../include/openssl/buffer.h
132kssl.o: ../include/openssl/cast.h ../include/openssl/comp.h
133kssl.o: ../include/openssl/crypto.h ../include/openssl/des.h
134kssl.o: ../include/openssl/des_old.h ../include/openssl/dh.h
135kssl.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
136kssl.o: ../include/openssl/evp.h ../include/openssl/idea.h
137kssl.o: ../include/openssl/krb5_asn.h ../include/openssl/kssl.h
138kssl.o: ../include/openssl/lhash.h ../include/openssl/md2.h
139kssl.o: ../include/openssl/md4.h ../include/openssl/md5.h
140kssl.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
141kssl.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
142kssl.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
143kssl.o: ../include/openssl/pem.h ../include/openssl/pem2.h
144kssl.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
145kssl.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
146kssl.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
147kssl.o: ../include/openssl/safestack.h ../include/openssl/sha.h
148kssl.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
149kssl.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
150kssl.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
151kssl.o: ../include/openssl/tls1.h ../include/openssl/ui.h
152kssl.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
153kssl.o: ../include/openssl/x509_vfy.h kssl.c
154s23_clnt.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
155s23_clnt.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
156s23_clnt.o: ../include/openssl/bn.h ../include/openssl/buffer.h
157s23_clnt.o: ../include/openssl/cast.h ../include/openssl/comp.h
158s23_clnt.o: ../include/openssl/crypto.h ../include/openssl/des.h
159s23_clnt.o: ../include/openssl/des_old.h ../include/openssl/dh.h
160s23_clnt.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
161s23_clnt.o: ../include/openssl/err.h ../include/openssl/evp.h
162s23_clnt.o: ../include/openssl/idea.h ../include/openssl/kssl.h
163s23_clnt.o: ../include/openssl/lhash.h ../include/openssl/md2.h
164s23_clnt.o: ../include/openssl/md4.h ../include/openssl/md5.h
165s23_clnt.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
166s23_clnt.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
167s23_clnt.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
168s23_clnt.o: ../include/openssl/pem.h ../include/openssl/pem2.h
169s23_clnt.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
170s23_clnt.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
171s23_clnt.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
172s23_clnt.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
173s23_clnt.o: ../include/openssl/sha.h ../include/openssl/ssl.h
174s23_clnt.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
175s23_clnt.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
176s23_clnt.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
177s23_clnt.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
178s23_clnt.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h s23_clnt.c
179s23_clnt.o: ssl_locl.h
180s23_lib.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
181s23_lib.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
182s23_lib.o: ../include/openssl/bn.h ../include/openssl/buffer.h
183s23_lib.o: ../include/openssl/cast.h ../include/openssl/comp.h
184s23_lib.o: ../include/openssl/crypto.h ../include/openssl/des.h
185s23_lib.o: ../include/openssl/des_old.h ../include/openssl/dh.h
186s23_lib.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
187s23_lib.o: ../include/openssl/err.h ../include/openssl/evp.h
188s23_lib.o: ../include/openssl/idea.h ../include/openssl/kssl.h
189s23_lib.o: ../include/openssl/lhash.h ../include/openssl/md2.h
190s23_lib.o: ../include/openssl/md4.h ../include/openssl/md5.h
191s23_lib.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
192s23_lib.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
193s23_lib.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
194s23_lib.o: ../include/openssl/pem.h ../include/openssl/pem2.h
195s23_lib.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
196s23_lib.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
197s23_lib.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
198s23_lib.o: ../include/openssl/safestack.h ../include/openssl/sha.h
199s23_lib.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
200s23_lib.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
201s23_lib.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
202s23_lib.o: ../include/openssl/tls1.h ../include/openssl/ui.h
203s23_lib.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
204s23_lib.o: ../include/openssl/x509_vfy.h s23_lib.c ssl_locl.h
205s23_meth.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
206s23_meth.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
207s23_meth.o: ../include/openssl/bn.h ../include/openssl/buffer.h
208s23_meth.o: ../include/openssl/cast.h ../include/openssl/comp.h
209s23_meth.o: ../include/openssl/crypto.h ../include/openssl/des.h
210s23_meth.o: ../include/openssl/des_old.h ../include/openssl/dh.h
211s23_meth.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
212s23_meth.o: ../include/openssl/err.h ../include/openssl/evp.h
213s23_meth.o: ../include/openssl/idea.h ../include/openssl/kssl.h
214s23_meth.o: ../include/openssl/lhash.h ../include/openssl/md2.h
215s23_meth.o: ../include/openssl/md4.h ../include/openssl/md5.h
216s23_meth.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
217s23_meth.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
218s23_meth.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
219s23_meth.o: ../include/openssl/pem.h ../include/openssl/pem2.h
220s23_meth.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
221s23_meth.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
222s23_meth.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
223s23_meth.o: ../include/openssl/safestack.h ../include/openssl/sha.h
224s23_meth.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
225s23_meth.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
226s23_meth.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
227s23_meth.o: ../include/openssl/tls1.h ../include/openssl/ui.h
228s23_meth.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
229s23_meth.o: ../include/openssl/x509_vfy.h s23_meth.c ssl_locl.h
230s23_pkt.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
231s23_pkt.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
232s23_pkt.o: ../include/openssl/bn.h ../include/openssl/buffer.h
233s23_pkt.o: ../include/openssl/cast.h ../include/openssl/comp.h
234s23_pkt.o: ../include/openssl/crypto.h ../include/openssl/des.h
235s23_pkt.o: ../include/openssl/des_old.h ../include/openssl/dh.h
236s23_pkt.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
237s23_pkt.o: ../include/openssl/err.h ../include/openssl/evp.h
238s23_pkt.o: ../include/openssl/idea.h ../include/openssl/kssl.h
239s23_pkt.o: ../include/openssl/lhash.h ../include/openssl/md2.h
240s23_pkt.o: ../include/openssl/md4.h ../include/openssl/md5.h
241s23_pkt.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
242s23_pkt.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
243s23_pkt.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
244s23_pkt.o: ../include/openssl/pem.h ../include/openssl/pem2.h
245s23_pkt.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
246s23_pkt.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
247s23_pkt.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
248s23_pkt.o: ../include/openssl/safestack.h ../include/openssl/sha.h
249s23_pkt.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
250s23_pkt.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
251s23_pkt.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
252s23_pkt.o: ../include/openssl/tls1.h ../include/openssl/ui.h
253s23_pkt.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
254s23_pkt.o: ../include/openssl/x509_vfy.h s23_pkt.c ssl_locl.h
255s23_srvr.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
256s23_srvr.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
257s23_srvr.o: ../include/openssl/bn.h ../include/openssl/buffer.h
258s23_srvr.o: ../include/openssl/cast.h ../include/openssl/comp.h
259s23_srvr.o: ../include/openssl/crypto.h ../include/openssl/des.h
260s23_srvr.o: ../include/openssl/des_old.h ../include/openssl/dh.h
261s23_srvr.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
262s23_srvr.o: ../include/openssl/err.h ../include/openssl/evp.h
263s23_srvr.o: ../include/openssl/idea.h ../include/openssl/kssl.h
264s23_srvr.o: ../include/openssl/lhash.h ../include/openssl/md2.h
265s23_srvr.o: ../include/openssl/md4.h ../include/openssl/md5.h
266s23_srvr.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
267s23_srvr.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
268s23_srvr.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
269s23_srvr.o: ../include/openssl/pem.h ../include/openssl/pem2.h
270s23_srvr.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
271s23_srvr.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
272s23_srvr.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
273s23_srvr.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
274s23_srvr.o: ../include/openssl/sha.h ../include/openssl/ssl.h
275s23_srvr.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
276s23_srvr.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
277s23_srvr.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
278s23_srvr.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
279s23_srvr.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h s23_srvr.c
280s23_srvr.o: ssl_locl.h
281s2_clnt.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
282s2_clnt.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
283s2_clnt.o: ../include/openssl/bn.h ../include/openssl/buffer.h
284s2_clnt.o: ../include/openssl/cast.h ../include/openssl/comp.h
285s2_clnt.o: ../include/openssl/crypto.h ../include/openssl/des.h
286s2_clnt.o: ../include/openssl/des_old.h ../include/openssl/dh.h
287s2_clnt.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
288s2_clnt.o: ../include/openssl/err.h ../include/openssl/evp.h
289s2_clnt.o: ../include/openssl/idea.h ../include/openssl/kssl.h
290s2_clnt.o: ../include/openssl/lhash.h ../include/openssl/md2.h
291s2_clnt.o: ../include/openssl/md4.h ../include/openssl/md5.h
292s2_clnt.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
293s2_clnt.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
294s2_clnt.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
295s2_clnt.o: ../include/openssl/pem.h ../include/openssl/pem2.h
296s2_clnt.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
297s2_clnt.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
298s2_clnt.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
299s2_clnt.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
300s2_clnt.o: ../include/openssl/sha.h ../include/openssl/ssl.h
301s2_clnt.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
302s2_clnt.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
303s2_clnt.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
304s2_clnt.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
305s2_clnt.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h s2_clnt.c
306s2_clnt.o: ssl_locl.h
307s2_enc.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
308s2_enc.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
309s2_enc.o: ../include/openssl/bn.h ../include/openssl/buffer.h
310s2_enc.o: ../include/openssl/cast.h ../include/openssl/comp.h
311s2_enc.o: ../include/openssl/crypto.h ../include/openssl/des.h
312s2_enc.o: ../include/openssl/des_old.h ../include/openssl/dh.h
313s2_enc.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
314s2_enc.o: ../include/openssl/err.h ../include/openssl/evp.h
315s2_enc.o: ../include/openssl/idea.h ../include/openssl/kssl.h
316s2_enc.o: ../include/openssl/lhash.h ../include/openssl/md2.h
317s2_enc.o: ../include/openssl/md4.h ../include/openssl/md5.h
318s2_enc.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
319s2_enc.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
320s2_enc.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
321s2_enc.o: ../include/openssl/pem.h ../include/openssl/pem2.h
322s2_enc.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
323s2_enc.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
324s2_enc.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
325s2_enc.o: ../include/openssl/safestack.h ../include/openssl/sha.h
326s2_enc.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
327s2_enc.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
328s2_enc.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
329s2_enc.o: ../include/openssl/tls1.h ../include/openssl/ui.h
330s2_enc.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
331s2_enc.o: ../include/openssl/x509_vfy.h s2_enc.c ssl_locl.h
332s2_lib.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
333s2_lib.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
334s2_lib.o: ../include/openssl/bn.h ../include/openssl/buffer.h
335s2_lib.o: ../include/openssl/cast.h ../include/openssl/comp.h
336s2_lib.o: ../include/openssl/crypto.h ../include/openssl/des.h
337s2_lib.o: ../include/openssl/des_old.h ../include/openssl/dh.h
338s2_lib.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
339s2_lib.o: ../include/openssl/err.h ../include/openssl/evp.h
340s2_lib.o: ../include/openssl/idea.h ../include/openssl/kssl.h
341s2_lib.o: ../include/openssl/lhash.h ../include/openssl/md2.h
342s2_lib.o: ../include/openssl/md4.h ../include/openssl/md5.h
343s2_lib.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
344s2_lib.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
345s2_lib.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
346s2_lib.o: ../include/openssl/pem.h ../include/openssl/pem2.h
347s2_lib.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
348s2_lib.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
349s2_lib.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
350s2_lib.o: ../include/openssl/safestack.h ../include/openssl/sha.h
351s2_lib.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
352s2_lib.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
353s2_lib.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
354s2_lib.o: ../include/openssl/tls1.h ../include/openssl/ui.h
355s2_lib.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
356s2_lib.o: ../include/openssl/x509_vfy.h s2_lib.c ssl_locl.h
357s2_meth.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
358s2_meth.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
359s2_meth.o: ../include/openssl/bn.h ../include/openssl/buffer.h
360s2_meth.o: ../include/openssl/cast.h ../include/openssl/comp.h
361s2_meth.o: ../include/openssl/crypto.h ../include/openssl/des.h
362s2_meth.o: ../include/openssl/des_old.h ../include/openssl/dh.h
363s2_meth.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
364s2_meth.o: ../include/openssl/err.h ../include/openssl/evp.h
365s2_meth.o: ../include/openssl/idea.h ../include/openssl/kssl.h
366s2_meth.o: ../include/openssl/lhash.h ../include/openssl/md2.h
367s2_meth.o: ../include/openssl/md4.h ../include/openssl/md5.h
368s2_meth.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
369s2_meth.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
370s2_meth.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
371s2_meth.o: ../include/openssl/pem.h ../include/openssl/pem2.h
372s2_meth.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
373s2_meth.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
374s2_meth.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
375s2_meth.o: ../include/openssl/safestack.h ../include/openssl/sha.h
376s2_meth.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
377s2_meth.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
378s2_meth.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
379s2_meth.o: ../include/openssl/tls1.h ../include/openssl/ui.h
380s2_meth.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
381s2_meth.o: ../include/openssl/x509_vfy.h s2_meth.c ssl_locl.h
382s2_pkt.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
383s2_pkt.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
384s2_pkt.o: ../include/openssl/bn.h ../include/openssl/buffer.h
385s2_pkt.o: ../include/openssl/cast.h ../include/openssl/comp.h
386s2_pkt.o: ../include/openssl/crypto.h ../include/openssl/des.h
387s2_pkt.o: ../include/openssl/des_old.h ../include/openssl/dh.h
388s2_pkt.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
389s2_pkt.o: ../include/openssl/err.h ../include/openssl/evp.h
390s2_pkt.o: ../include/openssl/idea.h ../include/openssl/kssl.h
391s2_pkt.o: ../include/openssl/lhash.h ../include/openssl/md2.h
392s2_pkt.o: ../include/openssl/md4.h ../include/openssl/md5.h
393s2_pkt.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
394s2_pkt.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
395s2_pkt.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
396s2_pkt.o: ../include/openssl/pem.h ../include/openssl/pem2.h
397s2_pkt.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
398s2_pkt.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
399s2_pkt.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
400s2_pkt.o: ../include/openssl/safestack.h ../include/openssl/sha.h
401s2_pkt.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
402s2_pkt.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
403s2_pkt.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
404s2_pkt.o: ../include/openssl/tls1.h ../include/openssl/ui.h
405s2_pkt.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
406s2_pkt.o: ../include/openssl/x509_vfy.h s2_pkt.c ssl_locl.h
407s2_srvr.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
408s2_srvr.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
409s2_srvr.o: ../include/openssl/bn.h ../include/openssl/buffer.h
410s2_srvr.o: ../include/openssl/cast.h ../include/openssl/comp.h
411s2_srvr.o: ../include/openssl/crypto.h ../include/openssl/des.h
412s2_srvr.o: ../include/openssl/des_old.h ../include/openssl/dh.h
413s2_srvr.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
414s2_srvr.o: ../include/openssl/err.h ../include/openssl/evp.h
415s2_srvr.o: ../include/openssl/idea.h ../include/openssl/kssl.h
416s2_srvr.o: ../include/openssl/lhash.h ../include/openssl/md2.h
417s2_srvr.o: ../include/openssl/md4.h ../include/openssl/md5.h
418s2_srvr.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
419s2_srvr.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
420s2_srvr.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
421s2_srvr.o: ../include/openssl/pem.h ../include/openssl/pem2.h
422s2_srvr.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
423s2_srvr.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
424s2_srvr.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
425s2_srvr.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
426s2_srvr.o: ../include/openssl/sha.h ../include/openssl/ssl.h
427s2_srvr.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
428s2_srvr.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
429s2_srvr.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
430s2_srvr.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
431s2_srvr.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h s2_srvr.c
432s2_srvr.o: ssl_locl.h
433s3_both.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
434s3_both.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
435s3_both.o: ../include/openssl/bn.h ../include/openssl/buffer.h
436s3_both.o: ../include/openssl/cast.h ../include/openssl/comp.h
437s3_both.o: ../include/openssl/crypto.h ../include/openssl/des.h
438s3_both.o: ../include/openssl/des_old.h ../include/openssl/dh.h
439s3_both.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
440s3_both.o: ../include/openssl/err.h ../include/openssl/evp.h
441s3_both.o: ../include/openssl/idea.h ../include/openssl/kssl.h
442s3_both.o: ../include/openssl/lhash.h ../include/openssl/md2.h
443s3_both.o: ../include/openssl/md4.h ../include/openssl/md5.h
444s3_both.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
445s3_both.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
446s3_both.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
447s3_both.o: ../include/openssl/pem.h ../include/openssl/pem2.h
448s3_both.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
449s3_both.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
450s3_both.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
451s3_both.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
452s3_both.o: ../include/openssl/sha.h ../include/openssl/ssl.h
453s3_both.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
454s3_both.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
455s3_both.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
456s3_both.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
457s3_both.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h s3_both.c
458s3_both.o: ssl_locl.h
459s3_clnt.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
460s3_clnt.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
461s3_clnt.o: ../include/openssl/bn.h ../include/openssl/buffer.h
462s3_clnt.o: ../include/openssl/cast.h ../include/openssl/comp.h
463s3_clnt.o: ../include/openssl/crypto.h ../include/openssl/des.h
464s3_clnt.o: ../include/openssl/des_old.h ../include/openssl/dh.h
465s3_clnt.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
466s3_clnt.o: ../include/openssl/err.h ../include/openssl/evp.h
467s3_clnt.o: ../include/openssl/fips.h ../include/openssl/idea.h
468s3_clnt.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
469s3_clnt.o: ../include/openssl/md2.h ../include/openssl/md4.h
470s3_clnt.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
471s3_clnt.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
472s3_clnt.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
473s3_clnt.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
474s3_clnt.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
475s3_clnt.o: ../include/openssl/rand.h ../include/openssl/rc2.h
476s3_clnt.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
477s3_clnt.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
478s3_clnt.o: ../include/openssl/safestack.h ../include/openssl/sha.h
479s3_clnt.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
480s3_clnt.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
481s3_clnt.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
482s3_clnt.o: ../include/openssl/tls1.h ../include/openssl/ui.h
483s3_clnt.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
484s3_clnt.o: ../include/openssl/x509_vfy.h kssl_lcl.h s3_clnt.c ssl_locl.h
485s3_enc.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
486s3_enc.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
487s3_enc.o: ../include/openssl/bn.h ../include/openssl/buffer.h
488s3_enc.o: ../include/openssl/cast.h ../include/openssl/comp.h
489s3_enc.o: ../include/openssl/crypto.h ../include/openssl/des.h
490s3_enc.o: ../include/openssl/des_old.h ../include/openssl/dh.h
491s3_enc.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
492s3_enc.o: ../include/openssl/err.h ../include/openssl/evp.h
493s3_enc.o: ../include/openssl/idea.h ../include/openssl/kssl.h
494s3_enc.o: ../include/openssl/lhash.h ../include/openssl/md2.h
495s3_enc.o: ../include/openssl/md4.h ../include/openssl/md5.h
496s3_enc.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
497s3_enc.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
498s3_enc.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
499s3_enc.o: ../include/openssl/pem.h ../include/openssl/pem2.h
500s3_enc.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
501s3_enc.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
502s3_enc.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
503s3_enc.o: ../include/openssl/safestack.h ../include/openssl/sha.h
504s3_enc.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
505s3_enc.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
506s3_enc.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
507s3_enc.o: ../include/openssl/tls1.h ../include/openssl/ui.h
508s3_enc.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
509s3_enc.o: ../include/openssl/x509_vfy.h s3_enc.c ssl_locl.h
510s3_lib.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
511s3_lib.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
512s3_lib.o: ../include/openssl/bn.h ../include/openssl/buffer.h
513s3_lib.o: ../include/openssl/cast.h ../include/openssl/comp.h
514s3_lib.o: ../include/openssl/crypto.h ../include/openssl/des.h
515s3_lib.o: ../include/openssl/des_old.h ../include/openssl/dh.h
516s3_lib.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
517s3_lib.o: ../include/openssl/err.h ../include/openssl/evp.h
518s3_lib.o: ../include/openssl/idea.h ../include/openssl/kssl.h
519s3_lib.o: ../include/openssl/lhash.h ../include/openssl/md2.h
520s3_lib.o: ../include/openssl/md4.h ../include/openssl/md5.h
521s3_lib.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
522s3_lib.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
523s3_lib.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
524s3_lib.o: ../include/openssl/pem.h ../include/openssl/pem2.h
525s3_lib.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
526s3_lib.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
527s3_lib.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
528s3_lib.o: ../include/openssl/safestack.h ../include/openssl/sha.h
529s3_lib.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
530s3_lib.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
531s3_lib.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
532s3_lib.o: ../include/openssl/tls1.h ../include/openssl/ui.h
533s3_lib.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
534s3_lib.o: ../include/openssl/x509_vfy.h kssl_lcl.h s3_lib.c ssl_locl.h
535s3_meth.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
536s3_meth.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
537s3_meth.o: ../include/openssl/bn.h ../include/openssl/buffer.h
538s3_meth.o: ../include/openssl/cast.h ../include/openssl/comp.h
539s3_meth.o: ../include/openssl/crypto.h ../include/openssl/des.h
540s3_meth.o: ../include/openssl/des_old.h ../include/openssl/dh.h
541s3_meth.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
542s3_meth.o: ../include/openssl/err.h ../include/openssl/evp.h
543s3_meth.o: ../include/openssl/idea.h ../include/openssl/kssl.h
544s3_meth.o: ../include/openssl/lhash.h ../include/openssl/md2.h
545s3_meth.o: ../include/openssl/md4.h ../include/openssl/md5.h
546s3_meth.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
547s3_meth.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
548s3_meth.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
549s3_meth.o: ../include/openssl/pem.h ../include/openssl/pem2.h
550s3_meth.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
551s3_meth.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
552s3_meth.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
553s3_meth.o: ../include/openssl/safestack.h ../include/openssl/sha.h
554s3_meth.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
555s3_meth.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
556s3_meth.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
557s3_meth.o: ../include/openssl/tls1.h ../include/openssl/ui.h
558s3_meth.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
559s3_meth.o: ../include/openssl/x509_vfy.h s3_meth.c ssl_locl.h
560s3_pkt.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
561s3_pkt.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
562s3_pkt.o: ../include/openssl/bn.h ../include/openssl/buffer.h
563s3_pkt.o: ../include/openssl/cast.h ../include/openssl/comp.h
564s3_pkt.o: ../include/openssl/crypto.h ../include/openssl/des.h
565s3_pkt.o: ../include/openssl/des_old.h ../include/openssl/dh.h
566s3_pkt.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
567s3_pkt.o: ../include/openssl/err.h ../include/openssl/evp.h
568s3_pkt.o: ../include/openssl/idea.h ../include/openssl/kssl.h
569s3_pkt.o: ../include/openssl/lhash.h ../include/openssl/md2.h
570s3_pkt.o: ../include/openssl/md4.h ../include/openssl/md5.h
571s3_pkt.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
572s3_pkt.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
573s3_pkt.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
574s3_pkt.o: ../include/openssl/pem.h ../include/openssl/pem2.h
575s3_pkt.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
576s3_pkt.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
577s3_pkt.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
578s3_pkt.o: ../include/openssl/safestack.h ../include/openssl/sha.h
579s3_pkt.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
580s3_pkt.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
581s3_pkt.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
582s3_pkt.o: ../include/openssl/tls1.h ../include/openssl/ui.h
583s3_pkt.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
584s3_pkt.o: ../include/openssl/x509_vfy.h s3_pkt.c ssl_locl.h
585s3_srvr.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
586s3_srvr.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
587s3_srvr.o: ../include/openssl/bn.h ../include/openssl/buffer.h
588s3_srvr.o: ../include/openssl/cast.h ../include/openssl/comp.h
589s3_srvr.o: ../include/openssl/crypto.h ../include/openssl/des.h
590s3_srvr.o: ../include/openssl/des_old.h ../include/openssl/dh.h
591s3_srvr.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
592s3_srvr.o: ../include/openssl/err.h ../include/openssl/evp.h
593s3_srvr.o: ../include/openssl/fips.h ../include/openssl/idea.h
594s3_srvr.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
595s3_srvr.o: ../include/openssl/md2.h ../include/openssl/md4.h
596s3_srvr.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
597s3_srvr.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
598s3_srvr.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
599s3_srvr.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
600s3_srvr.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
601s3_srvr.o: ../include/openssl/rand.h ../include/openssl/rc2.h
602s3_srvr.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
603s3_srvr.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
604s3_srvr.o: ../include/openssl/safestack.h ../include/openssl/sha.h
605s3_srvr.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
606s3_srvr.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
607s3_srvr.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
608s3_srvr.o: ../include/openssl/tls1.h ../include/openssl/ui.h
609s3_srvr.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
610s3_srvr.o: ../include/openssl/x509_vfy.h kssl_lcl.h s3_srvr.c ssl_locl.h
611ssl_algs.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
612ssl_algs.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
613ssl_algs.o: ../include/openssl/bn.h ../include/openssl/buffer.h
614ssl_algs.o: ../include/openssl/cast.h ../include/openssl/comp.h
615ssl_algs.o: ../include/openssl/crypto.h ../include/openssl/des.h
616ssl_algs.o: ../include/openssl/des_old.h ../include/openssl/dh.h
617ssl_algs.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
618ssl_algs.o: ../include/openssl/err.h ../include/openssl/evp.h
619ssl_algs.o: ../include/openssl/idea.h ../include/openssl/kssl.h
620ssl_algs.o: ../include/openssl/lhash.h ../include/openssl/md2.h
621ssl_algs.o: ../include/openssl/md4.h ../include/openssl/md5.h
622ssl_algs.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
623ssl_algs.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
624ssl_algs.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
625ssl_algs.o: ../include/openssl/pem.h ../include/openssl/pem2.h
626ssl_algs.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
627ssl_algs.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
628ssl_algs.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
629ssl_algs.o: ../include/openssl/safestack.h ../include/openssl/sha.h
630ssl_algs.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
631ssl_algs.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
632ssl_algs.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
633ssl_algs.o: ../include/openssl/tls1.h ../include/openssl/ui.h
634ssl_algs.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
635ssl_algs.o: ../include/openssl/x509_vfy.h ssl_algs.c ssl_locl.h
636ssl_asn1.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
637ssl_asn1.o: ../include/openssl/asn1_mac.h ../include/openssl/bio.h
638ssl_asn1.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
639ssl_asn1.o: ../include/openssl/buffer.h ../include/openssl/cast.h
640ssl_asn1.o: ../include/openssl/comp.h ../include/openssl/crypto.h
641ssl_asn1.o: ../include/openssl/des.h ../include/openssl/des_old.h
642ssl_asn1.o: ../include/openssl/dh.h ../include/openssl/dsa.h
643ssl_asn1.o: ../include/openssl/e_os2.h ../include/openssl/err.h
644ssl_asn1.o: ../include/openssl/evp.h ../include/openssl/idea.h
645ssl_asn1.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
646ssl_asn1.o: ../include/openssl/md2.h ../include/openssl/md4.h
647ssl_asn1.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
648ssl_asn1.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
649ssl_asn1.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
650ssl_asn1.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
651ssl_asn1.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
652ssl_asn1.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
653ssl_asn1.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
654ssl_asn1.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
655ssl_asn1.o: ../include/openssl/sha.h ../include/openssl/ssl.h
656ssl_asn1.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
657ssl_asn1.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
658ssl_asn1.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
659ssl_asn1.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
660ssl_asn1.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h ssl_asn1.c
661ssl_asn1.o: ssl_locl.h
662ssl_cert.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
663ssl_cert.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
664ssl_cert.o: ../include/openssl/bn.h ../include/openssl/buffer.h
665ssl_cert.o: ../include/openssl/cast.h ../include/openssl/comp.h
666ssl_cert.o: ../include/openssl/conf.h ../include/openssl/crypto.h
667ssl_cert.o: ../include/openssl/des.h ../include/openssl/des_old.h
668ssl_cert.o: ../include/openssl/dh.h ../include/openssl/dsa.h
669ssl_cert.o: ../include/openssl/e_os2.h ../include/openssl/err.h
670ssl_cert.o: ../include/openssl/evp.h ../include/openssl/fips.h
671ssl_cert.o: ../include/openssl/idea.h ../include/openssl/kssl.h
672ssl_cert.o: ../include/openssl/lhash.h ../include/openssl/md2.h
673ssl_cert.o: ../include/openssl/md4.h ../include/openssl/md5.h
674ssl_cert.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
675ssl_cert.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
676ssl_cert.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
677ssl_cert.o: ../include/openssl/pem.h ../include/openssl/pem2.h
678ssl_cert.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
679ssl_cert.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
680ssl_cert.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
681ssl_cert.o: ../include/openssl/safestack.h ../include/openssl/sha.h
682ssl_cert.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
683ssl_cert.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
684ssl_cert.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
685ssl_cert.o: ../include/openssl/tls1.h ../include/openssl/ui.h
686ssl_cert.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
687ssl_cert.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h
688ssl_cert.o: ssl_cert.c ssl_locl.h
689ssl_ciph.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
690ssl_ciph.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
691ssl_ciph.o: ../include/openssl/bn.h ../include/openssl/buffer.h
692ssl_ciph.o: ../include/openssl/cast.h ../include/openssl/comp.h
693ssl_ciph.o: ../include/openssl/crypto.h ../include/openssl/des.h
694ssl_ciph.o: ../include/openssl/des_old.h ../include/openssl/dh.h
695ssl_ciph.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
696ssl_ciph.o: ../include/openssl/err.h ../include/openssl/evp.h
697ssl_ciph.o: ../include/openssl/fips.h ../include/openssl/idea.h
698ssl_ciph.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
699ssl_ciph.o: ../include/openssl/md2.h ../include/openssl/md4.h
700ssl_ciph.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
701ssl_ciph.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
702ssl_ciph.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
703ssl_ciph.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
704ssl_ciph.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
705ssl_ciph.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
706ssl_ciph.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
707ssl_ciph.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
708ssl_ciph.o: ../include/openssl/sha.h ../include/openssl/ssl.h
709ssl_ciph.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
710ssl_ciph.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
711ssl_ciph.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
712ssl_ciph.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
713ssl_ciph.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h ssl_ciph.c
714ssl_ciph.o: ssl_locl.h
715ssl_err.o: ../include/openssl/aes.h ../include/openssl/asn1.h
716ssl_err.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
717ssl_err.o: ../include/openssl/bn.h ../include/openssl/buffer.h
718ssl_err.o: ../include/openssl/cast.h ../include/openssl/comp.h
719ssl_err.o: ../include/openssl/crypto.h ../include/openssl/des.h
720ssl_err.o: ../include/openssl/des_old.h ../include/openssl/dh.h
721ssl_err.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
722ssl_err.o: ../include/openssl/err.h ../include/openssl/evp.h
723ssl_err.o: ../include/openssl/idea.h ../include/openssl/kssl.h
724ssl_err.o: ../include/openssl/lhash.h ../include/openssl/md2.h
725ssl_err.o: ../include/openssl/md4.h ../include/openssl/md5.h
726ssl_err.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
727ssl_err.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
728ssl_err.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
729ssl_err.o: ../include/openssl/pem.h ../include/openssl/pem2.h
730ssl_err.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
731ssl_err.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
732ssl_err.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
733ssl_err.o: ../include/openssl/safestack.h ../include/openssl/sha.h
734ssl_err.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
735ssl_err.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
736ssl_err.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
737ssl_err.o: ../include/openssl/tls1.h ../include/openssl/ui.h
738ssl_err.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
739ssl_err.o: ../include/openssl/x509_vfy.h ssl_err.c
740ssl_err2.o: ../include/openssl/aes.h ../include/openssl/asn1.h
741ssl_err2.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
742ssl_err2.o: ../include/openssl/bn.h ../include/openssl/buffer.h
743ssl_err2.o: ../include/openssl/cast.h ../include/openssl/comp.h
744ssl_err2.o: ../include/openssl/crypto.h ../include/openssl/des.h
745ssl_err2.o: ../include/openssl/des_old.h ../include/openssl/dh.h
746ssl_err2.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
747ssl_err2.o: ../include/openssl/err.h ../include/openssl/evp.h
748ssl_err2.o: ../include/openssl/idea.h ../include/openssl/kssl.h
749ssl_err2.o: ../include/openssl/lhash.h ../include/openssl/md2.h
750ssl_err2.o: ../include/openssl/md4.h ../include/openssl/md5.h
751ssl_err2.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
752ssl_err2.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
753ssl_err2.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
754ssl_err2.o: ../include/openssl/pem.h ../include/openssl/pem2.h
755ssl_err2.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
756ssl_err2.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
757ssl_err2.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
758ssl_err2.o: ../include/openssl/safestack.h ../include/openssl/sha.h
759ssl_err2.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
760ssl_err2.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
761ssl_err2.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
762ssl_err2.o: ../include/openssl/tls1.h ../include/openssl/ui.h
763ssl_err2.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
764ssl_err2.o: ../include/openssl/x509_vfy.h ssl_err2.c
765ssl_lib.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
766ssl_lib.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
767ssl_lib.o: ../include/openssl/bn.h ../include/openssl/buffer.h
768ssl_lib.o: ../include/openssl/cast.h ../include/openssl/comp.h
769ssl_lib.o: ../include/openssl/conf.h ../include/openssl/crypto.h
770ssl_lib.o: ../include/openssl/des.h ../include/openssl/des_old.h
771ssl_lib.o: ../include/openssl/dh.h ../include/openssl/dsa.h
772ssl_lib.o: ../include/openssl/e_os2.h ../include/openssl/err.h
773ssl_lib.o: ../include/openssl/evp.h ../include/openssl/fips.h
774ssl_lib.o: ../include/openssl/idea.h ../include/openssl/kssl.h
775ssl_lib.o: ../include/openssl/lhash.h ../include/openssl/md2.h
776ssl_lib.o: ../include/openssl/md4.h ../include/openssl/md5.h
777ssl_lib.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
778ssl_lib.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
779ssl_lib.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
780ssl_lib.o: ../include/openssl/pem.h ../include/openssl/pem2.h
781ssl_lib.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
782ssl_lib.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
783ssl_lib.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
784ssl_lib.o: ../include/openssl/safestack.h ../include/openssl/sha.h
785ssl_lib.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
786ssl_lib.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
787ssl_lib.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
788ssl_lib.o: ../include/openssl/tls1.h ../include/openssl/ui.h
789ssl_lib.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
790ssl_lib.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h kssl_lcl.h
791ssl_lib.o: ssl_lib.c ssl_locl.h
792ssl_rsa.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
793ssl_rsa.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
794ssl_rsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
795ssl_rsa.o: ../include/openssl/cast.h ../include/openssl/comp.h
796ssl_rsa.o: ../include/openssl/crypto.h ../include/openssl/des.h
797ssl_rsa.o: ../include/openssl/des_old.h ../include/openssl/dh.h
798ssl_rsa.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
799ssl_rsa.o: ../include/openssl/err.h ../include/openssl/evp.h
800ssl_rsa.o: ../include/openssl/idea.h ../include/openssl/kssl.h
801ssl_rsa.o: ../include/openssl/lhash.h ../include/openssl/md2.h
802ssl_rsa.o: ../include/openssl/md4.h ../include/openssl/md5.h
803ssl_rsa.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
804ssl_rsa.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
805ssl_rsa.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
806ssl_rsa.o: ../include/openssl/pem.h ../include/openssl/pem2.h
807ssl_rsa.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
808ssl_rsa.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
809ssl_rsa.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
810ssl_rsa.o: ../include/openssl/safestack.h ../include/openssl/sha.h
811ssl_rsa.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
812ssl_rsa.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
813ssl_rsa.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
814ssl_rsa.o: ../include/openssl/tls1.h ../include/openssl/ui.h
815ssl_rsa.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
816ssl_rsa.o: ../include/openssl/x509_vfy.h ssl_locl.h ssl_rsa.c
817ssl_sess.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
818ssl_sess.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
819ssl_sess.o: ../include/openssl/bn.h ../include/openssl/buffer.h
820ssl_sess.o: ../include/openssl/cast.h ../include/openssl/comp.h
821ssl_sess.o: ../include/openssl/crypto.h ../include/openssl/des.h
822ssl_sess.o: ../include/openssl/des_old.h ../include/openssl/dh.h
823ssl_sess.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
824ssl_sess.o: ../include/openssl/err.h ../include/openssl/evp.h
825ssl_sess.o: ../include/openssl/idea.h ../include/openssl/kssl.h
826ssl_sess.o: ../include/openssl/lhash.h ../include/openssl/md2.h
827ssl_sess.o: ../include/openssl/md4.h ../include/openssl/md5.h
828ssl_sess.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
829ssl_sess.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
830ssl_sess.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
831ssl_sess.o: ../include/openssl/pem.h ../include/openssl/pem2.h
832ssl_sess.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
833ssl_sess.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
834ssl_sess.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
835ssl_sess.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
836ssl_sess.o: ../include/openssl/sha.h ../include/openssl/ssl.h
837ssl_sess.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
838ssl_sess.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
839ssl_sess.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
840ssl_sess.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
841ssl_sess.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h ssl_locl.h
842ssl_sess.o: ssl_sess.c
843ssl_stat.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
844ssl_stat.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
845ssl_stat.o: ../include/openssl/bn.h ../include/openssl/buffer.h
846ssl_stat.o: ../include/openssl/cast.h ../include/openssl/comp.h
847ssl_stat.o: ../include/openssl/crypto.h ../include/openssl/des.h
848ssl_stat.o: ../include/openssl/des_old.h ../include/openssl/dh.h
849ssl_stat.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
850ssl_stat.o: ../include/openssl/err.h ../include/openssl/evp.h
851ssl_stat.o: ../include/openssl/idea.h ../include/openssl/kssl.h
852ssl_stat.o: ../include/openssl/lhash.h ../include/openssl/md2.h
853ssl_stat.o: ../include/openssl/md4.h ../include/openssl/md5.h
854ssl_stat.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
855ssl_stat.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
856ssl_stat.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
857ssl_stat.o: ../include/openssl/pem.h ../include/openssl/pem2.h
858ssl_stat.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
859ssl_stat.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
860ssl_stat.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
861ssl_stat.o: ../include/openssl/safestack.h ../include/openssl/sha.h
862ssl_stat.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
863ssl_stat.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
864ssl_stat.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
865ssl_stat.o: ../include/openssl/tls1.h ../include/openssl/ui.h
866ssl_stat.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
867ssl_stat.o: ../include/openssl/x509_vfy.h ssl_locl.h ssl_stat.c
868ssl_txt.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
869ssl_txt.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
870ssl_txt.o: ../include/openssl/bn.h ../include/openssl/buffer.h
871ssl_txt.o: ../include/openssl/cast.h ../include/openssl/comp.h
872ssl_txt.o: ../include/openssl/crypto.h ../include/openssl/des.h
873ssl_txt.o: ../include/openssl/des_old.h ../include/openssl/dh.h
874ssl_txt.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
875ssl_txt.o: ../include/openssl/err.h ../include/openssl/evp.h
876ssl_txt.o: ../include/openssl/idea.h ../include/openssl/kssl.h
877ssl_txt.o: ../include/openssl/lhash.h ../include/openssl/md2.h
878ssl_txt.o: ../include/openssl/md4.h ../include/openssl/md5.h
879ssl_txt.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
880ssl_txt.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
881ssl_txt.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
882ssl_txt.o: ../include/openssl/pem.h ../include/openssl/pem2.h
883ssl_txt.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
884ssl_txt.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
885ssl_txt.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
886ssl_txt.o: ../include/openssl/safestack.h ../include/openssl/sha.h
887ssl_txt.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
888ssl_txt.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
889ssl_txt.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
890ssl_txt.o: ../include/openssl/tls1.h ../include/openssl/ui.h
891ssl_txt.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
892ssl_txt.o: ../include/openssl/x509_vfy.h ssl_locl.h ssl_txt.c
893t1_clnt.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
894t1_clnt.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
895t1_clnt.o: ../include/openssl/bn.h ../include/openssl/buffer.h
896t1_clnt.o: ../include/openssl/cast.h ../include/openssl/comp.h
897t1_clnt.o: ../include/openssl/crypto.h ../include/openssl/des.h
898t1_clnt.o: ../include/openssl/des_old.h ../include/openssl/dh.h
899t1_clnt.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
900t1_clnt.o: ../include/openssl/err.h ../include/openssl/evp.h
901t1_clnt.o: ../include/openssl/idea.h ../include/openssl/kssl.h
902t1_clnt.o: ../include/openssl/lhash.h ../include/openssl/md2.h
903t1_clnt.o: ../include/openssl/md4.h ../include/openssl/md5.h
904t1_clnt.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
905t1_clnt.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
906t1_clnt.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
907t1_clnt.o: ../include/openssl/pem.h ../include/openssl/pem2.h
908t1_clnt.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
909t1_clnt.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
910t1_clnt.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
911t1_clnt.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
912t1_clnt.o: ../include/openssl/sha.h ../include/openssl/ssl.h
913t1_clnt.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
914t1_clnt.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
915t1_clnt.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
916t1_clnt.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
917t1_clnt.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h ssl_locl.h
918t1_clnt.o: t1_clnt.c
919t1_enc.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
920t1_enc.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
921t1_enc.o: ../include/openssl/bn.h ../include/openssl/buffer.h
922t1_enc.o: ../include/openssl/cast.h ../include/openssl/comp.h
923t1_enc.o: ../include/openssl/crypto.h ../include/openssl/des.h
924t1_enc.o: ../include/openssl/des_old.h ../include/openssl/dh.h
925t1_enc.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
926t1_enc.o: ../include/openssl/err.h ../include/openssl/evp.h
927t1_enc.o: ../include/openssl/fips.h ../include/openssl/hmac.h
928t1_enc.o: ../include/openssl/idea.h ../include/openssl/kssl.h
929t1_enc.o: ../include/openssl/lhash.h ../include/openssl/md2.h
930t1_enc.o: ../include/openssl/md4.h ../include/openssl/md5.h
931t1_enc.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
932t1_enc.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
933t1_enc.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
934t1_enc.o: ../include/openssl/pem.h ../include/openssl/pem2.h
935t1_enc.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
936t1_enc.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
937t1_enc.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
938t1_enc.o: ../include/openssl/safestack.h ../include/openssl/sha.h
939t1_enc.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
940t1_enc.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
941t1_enc.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
942t1_enc.o: ../include/openssl/tls1.h ../include/openssl/ui.h
943t1_enc.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
944t1_enc.o: ../include/openssl/x509_vfy.h ssl_locl.h t1_enc.c
945t1_lib.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
946t1_lib.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
947t1_lib.o: ../include/openssl/bn.h ../include/openssl/buffer.h
948t1_lib.o: ../include/openssl/cast.h ../include/openssl/comp.h
949t1_lib.o: ../include/openssl/crypto.h ../include/openssl/des.h
950t1_lib.o: ../include/openssl/des_old.h ../include/openssl/dh.h
951t1_lib.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
952t1_lib.o: ../include/openssl/err.h ../include/openssl/evp.h
953t1_lib.o: ../include/openssl/idea.h ../include/openssl/kssl.h
954t1_lib.o: ../include/openssl/lhash.h ../include/openssl/md2.h
955t1_lib.o: ../include/openssl/md4.h ../include/openssl/md5.h
956t1_lib.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
957t1_lib.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
958t1_lib.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
959t1_lib.o: ../include/openssl/pem.h ../include/openssl/pem2.h
960t1_lib.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
961t1_lib.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
962t1_lib.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
963t1_lib.o: ../include/openssl/safestack.h ../include/openssl/sha.h
964t1_lib.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
965t1_lib.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
966t1_lib.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
967t1_lib.o: ../include/openssl/tls1.h ../include/openssl/ui.h
968t1_lib.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
969t1_lib.o: ../include/openssl/x509_vfy.h ssl_locl.h t1_lib.c
970t1_meth.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
971t1_meth.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
972t1_meth.o: ../include/openssl/bn.h ../include/openssl/buffer.h
973t1_meth.o: ../include/openssl/cast.h ../include/openssl/comp.h
974t1_meth.o: ../include/openssl/crypto.h ../include/openssl/des.h
975t1_meth.o: ../include/openssl/des_old.h ../include/openssl/dh.h
976t1_meth.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
977t1_meth.o: ../include/openssl/err.h ../include/openssl/evp.h
978t1_meth.o: ../include/openssl/idea.h ../include/openssl/kssl.h
979t1_meth.o: ../include/openssl/lhash.h ../include/openssl/md2.h
980t1_meth.o: ../include/openssl/md4.h ../include/openssl/md5.h
981t1_meth.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
982t1_meth.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
983t1_meth.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
984t1_meth.o: ../include/openssl/pem.h ../include/openssl/pem2.h
985t1_meth.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
986t1_meth.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
987t1_meth.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
988t1_meth.o: ../include/openssl/safestack.h ../include/openssl/sha.h
989t1_meth.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
990t1_meth.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
991t1_meth.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
992t1_meth.o: ../include/openssl/tls1.h ../include/openssl/ui.h
993t1_meth.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
994t1_meth.o: ../include/openssl/x509_vfy.h ssl_locl.h t1_meth.c
995t1_srvr.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
996t1_srvr.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
997t1_srvr.o: ../include/openssl/bn.h ../include/openssl/buffer.h
998t1_srvr.o: ../include/openssl/cast.h ../include/openssl/comp.h
999t1_srvr.o: ../include/openssl/crypto.h ../include/openssl/des.h
1000t1_srvr.o: ../include/openssl/des_old.h ../include/openssl/dh.h
1001t1_srvr.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
1002t1_srvr.o: ../include/openssl/err.h ../include/openssl/evp.h
1003t1_srvr.o: ../include/openssl/idea.h ../include/openssl/kssl.h
1004t1_srvr.o: ../include/openssl/lhash.h ../include/openssl/md2.h
1005t1_srvr.o: ../include/openssl/md4.h ../include/openssl/md5.h
1006t1_srvr.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
1007t1_srvr.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
1008t1_srvr.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
1009t1_srvr.o: ../include/openssl/pem.h ../include/openssl/pem2.h
1010t1_srvr.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
1011t1_srvr.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
1012t1_srvr.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
1013t1_srvr.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
1014t1_srvr.o: ../include/openssl/sha.h ../include/openssl/ssl.h
1015t1_srvr.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
1016t1_srvr.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
1017t1_srvr.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
1018t1_srvr.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
1019t1_srvr.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h ssl_locl.h
1020t1_srvr.o: t1_srvr.c
diff --git a/src/lib/libssl/src/ssl/kssl.c b/src/lib/libssl/src/ssl/kssl.c
index 51378897f6..3afa95f3fa 100644
--- a/src/lib/libssl/src/ssl/kssl.c
+++ b/src/lib/libssl/src/ssl/kssl.c
@@ -73,6 +73,8 @@
73#undef _XOPEN_SOURCE /* To avoid clashes with anything else... */ 73#undef _XOPEN_SOURCE /* To avoid clashes with anything else... */
74#include <string.h> 74#include <string.h>
75 75
76#define KRB5_PRIVATE 1
77
76#include <openssl/ssl.h> 78#include <openssl/ssl.h>
77#include <openssl/evp.h> 79#include <openssl/evp.h>
78#include <openssl/objects.h> 80#include <openssl/objects.h>
@@ -80,6 +82,10 @@
80 82
81#ifndef OPENSSL_NO_KRB5 83#ifndef OPENSSL_NO_KRB5
82 84
85#ifndef ENOMEM
86#define ENOMEM KRB5KRB_ERR_GENERIC
87#endif
88
83/* 89/*
84 * When OpenSSL is built on Windows, we do not want to require that 90 * When OpenSSL is built on Windows, we do not want to require that
85 * the Kerberos DLLs be available in order for the OpenSSL DLLs to 91 * the Kerberos DLLs be available in order for the OpenSSL DLLs to
@@ -932,7 +938,7 @@ print_krb5_data(char *label, krb5_data *kdata)
932 int i; 938 int i;
933 939
934 printf("%s[%d] ", label, kdata->length); 940 printf("%s[%d] ", label, kdata->length);
935 for (i=0; i < kdata->length; i++) 941 for (i=0; i < (int)kdata->length; i++)
936 { 942 {
937 if (0 && isprint((int) kdata->data[i])) 943 if (0 && isprint((int) kdata->data[i]))
938 printf( "%c ", kdata->data[i]); 944 printf( "%c ", kdata->data[i]);
@@ -984,14 +990,14 @@ print_krb5_keyblock(char *label, krb5_keyblock *keyblk)
984#ifdef KRB5_HEIMDAL 990#ifdef KRB5_HEIMDAL
985 printf("%s\n\t[et%d:%d]: ", label, keyblk->keytype, 991 printf("%s\n\t[et%d:%d]: ", label, keyblk->keytype,
986 keyblk->keyvalue->length); 992 keyblk->keyvalue->length);
987 for (i=0; i < keyblk->keyvalue->length; i++) 993 for (i=0; i < (int)keyblk->keyvalue->length; i++)
988 { 994 {
989 printf("%02x",(unsigned char *)(keyblk->keyvalue->contents)[i]); 995 printf("%02x",(unsigned char *)(keyblk->keyvalue->contents)[i]);
990 } 996 }
991 printf("\n"); 997 printf("\n");
992#else 998#else
993 printf("%s\n\t[et%d:%d]: ", label, keyblk->enctype, keyblk->length); 999 printf("%s\n\t[et%d:%d]: ", label, keyblk->enctype, keyblk->length);
994 for (i=0; i < keyblk->length; i++) 1000 for (i=0; i < (int)keyblk->length; i++)
995 { 1001 {
996 printf("%02x",keyblk->contents[i]); 1002 printf("%02x",keyblk->contents[i]);
997 } 1003 }
@@ -1010,12 +1016,12 @@ print_krb5_princ(char *label, krb5_principal_data *princ)
1010 1016
1011 printf("%s principal Realm: ", label); 1017 printf("%s principal Realm: ", label);
1012 if (princ == NULL) return; 1018 if (princ == NULL) return;
1013 for (ui=0; ui < princ->realm.length; ui++) putchar(princ->realm.data[ui]); 1019 for (ui=0; ui < (int)princ->realm.length; ui++) putchar(princ->realm.data[ui]);
1014 printf(" (nametype %d) has %d strings:\n", princ->type,princ->length); 1020 printf(" (nametype %d) has %d strings:\n", princ->type,princ->length);
1015 for (i=0; i < princ->length; i++) 1021 for (i=0; i < (int)princ->length; i++)
1016 { 1022 {
1017 printf("\t%d [%d]: ", i, princ->data[i].length); 1023 printf("\t%d [%d]: ", i, princ->data[i].length);
1018 for (uj=0; uj < princ->data[i].length; uj++) { 1024 for (uj=0; uj < (int)princ->data[i].length; uj++) {
1019 putchar(princ->data[i].data[uj]); 1025 putchar(princ->data[i].data[uj]);
1020 } 1026 }
1021 printf("\n"); 1027 printf("\n");
diff --git a/src/lib/libssl/src/ssl/kssl.h b/src/lib/libssl/src/ssl/kssl.h
index 19a689b089..a3d20e1ccb 100644
--- a/src/lib/libssl/src/ssl/kssl.h
+++ b/src/lib/libssl/src/ssl/kssl.h
@@ -82,6 +82,12 @@ extern "C" {
82#ifdef KRB5_HEIMDAL 82#ifdef KRB5_HEIMDAL
83typedef unsigned char krb5_octet; 83typedef unsigned char krb5_octet;
84#define FAR 84#define FAR
85#else
86
87#ifndef FAR
88#define FAR
89#endif
90
85#endif 91#endif
86 92
87/* Uncomment this to debug kssl problems or 93/* Uncomment this to debug kssl problems or
diff --git a/src/lib/libssl/src/ssl/s23_clnt.c b/src/lib/libssl/src/ssl/s23_clnt.c
index 64ee4269ec..779e94a35c 100644
--- a/src/lib/libssl/src/ssl/s23_clnt.c
+++ b/src/lib/libssl/src/ssl/s23_clnt.c
@@ -235,7 +235,8 @@ static int ssl23_client_hello(SSL *s)
235#endif 235#endif
236 236
237 p=s->s3->client_random; 237 p=s->s3->client_random;
238 RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE); 238 if(RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE) <= 0)
239 return -1;
239 240
240 /* Do the message type and length last */ 241 /* Do the message type and length last */
241 d= &(buf[2]); 242 d= &(buf[2]);
@@ -248,6 +249,14 @@ static int ssl23_client_hello(SSL *s)
248 *(d++)=TLS1_VERSION_MINOR; 249 *(d++)=TLS1_VERSION_MINOR;
249 s->client_version=TLS1_VERSION; 250 s->client_version=TLS1_VERSION;
250 } 251 }
252#ifdef OPENSSL_FIPS
253 else if(FIPS_mode())
254 {
255 SSLerr(SSL_F_SSL23_CLIENT_HELLO,
256 SSL_R_ONLY_TLS_ALLOWED_IN_FIPS_MODE);
257 return -1;
258 }
259#endif
251 else if (!(s->options & SSL_OP_NO_SSLv3)) 260 else if (!(s->options & SSL_OP_NO_SSLv3))
252 { 261 {
253 *(d++)=SSL3_VERSION_MAJOR; 262 *(d++)=SSL3_VERSION_MAJOR;
@@ -296,7 +305,9 @@ static int ssl23_client_hello(SSL *s)
296 i=ch_len; 305 i=ch_len;
297 s2n(i,d); 306 s2n(i,d);
298 memset(&(s->s3->client_random[0]),0,SSL3_RANDOM_SIZE); 307 memset(&(s->s3->client_random[0]),0,SSL3_RANDOM_SIZE);
299 RAND_pseudo_bytes(&(s->s3->client_random[SSL3_RANDOM_SIZE-i]),i); 308 if(RAND_pseudo_bytes(&(s->s3->client_random[SSL3_RANDOM_SIZE-i]),i) <= 0)
309 return -1;
310
300 memcpy(p,&(s->s3->client_random[SSL3_RANDOM_SIZE-i]),i); 311 memcpy(p,&(s->s3->client_random[SSL3_RANDOM_SIZE-i]),i);
301 p+=i; 312 p+=i;
302 313
@@ -426,6 +437,14 @@ static int ssl23_get_server_hello(SSL *s)
426 if ((p[2] == SSL3_VERSION_MINOR) && 437 if ((p[2] == SSL3_VERSION_MINOR) &&
427 !(s->options & SSL_OP_NO_SSLv3)) 438 !(s->options & SSL_OP_NO_SSLv3))
428 { 439 {
440#ifdef OPENSSL_FIPS
441 if(FIPS_mode())
442 {
443 SSLerr(SSL_F_SSL23_GET_SERVER_HELLO,
444 SSL_R_ONLY_TLS_ALLOWED_IN_FIPS_MODE);
445 goto err;
446 }
447#endif
429 s->version=SSL3_VERSION; 448 s->version=SSL3_VERSION;
430 s->method=SSLv3_client_method(); 449 s->method=SSLv3_client_method();
431 } 450 }
diff --git a/src/lib/libssl/src/ssl/s23_lib.c b/src/lib/libssl/src/ssl/s23_lib.c
index b70002a647..8d7dbcf569 100644
--- a/src/lib/libssl/src/ssl/s23_lib.c
+++ b/src/lib/libssl/src/ssl/s23_lib.c
@@ -87,7 +87,7 @@ static SSL_METHOD SSLv23_data= {
87 ssl3_ctx_ctrl, 87 ssl3_ctx_ctrl,
88 ssl23_get_cipher_by_char, 88 ssl23_get_cipher_by_char,
89 ssl23_put_cipher_by_char, 89 ssl23_put_cipher_by_char,
90 ssl_undefined_function, 90 ssl_undefined_const_function,
91 ssl23_num_ciphers, 91 ssl23_num_ciphers,
92 ssl23_get_cipher, 92 ssl23_get_cipher,
93 ssl_bad_method, 93 ssl_bad_method,
diff --git a/src/lib/libssl/src/ssl/s23_srvr.c b/src/lib/libssl/src/ssl/s23_srvr.c
index c5404ca0bc..92f3391f60 100644
--- a/src/lib/libssl/src/ssl/s23_srvr.c
+++ b/src/lib/libssl/src/ssl/s23_srvr.c
@@ -407,6 +407,15 @@ int ssl23_get_client_hello(SSL *s)
407 } 407 }
408 } 408 }
409 409
410#ifdef OPENSSL_FIPS
411 if (FIPS_mode() && (s->version < TLS1_VERSION))
412 {
413 SSLerr(SSL_F_SSL23_GET_CLIENT_HELLO,
414 SSL_R_ONLY_TLS_ALLOWED_IN_FIPS_MODE);
415 goto err;
416 }
417#endif
418
410 if (s->state == SSL23_ST_SR_CLNT_HELLO_B) 419 if (s->state == SSL23_ST_SR_CLNT_HELLO_B)
411 { 420 {
412 /* we have SSLv3/TLSv1 in an SSLv2 header 421 /* we have SSLv3/TLSv1 in an SSLv2 header
diff --git a/src/lib/libssl/src/ssl/s2_clnt.c b/src/lib/libssl/src/ssl/s2_clnt.c
index 43b32eb415..c67829f495 100644
--- a/src/lib/libssl/src/ssl/s2_clnt.c
+++ b/src/lib/libssl/src/ssl/s2_clnt.c
@@ -612,7 +612,8 @@ static int client_hello(SSL *s)
612 s->s2->challenge_length=SSL2_CHALLENGE_LENGTH; 612 s->s2->challenge_length=SSL2_CHALLENGE_LENGTH;
613 s2n(SSL2_CHALLENGE_LENGTH,p); /* challenge length */ 613 s2n(SSL2_CHALLENGE_LENGTH,p); /* challenge length */
614 /*challenge id data*/ 614 /*challenge id data*/
615 RAND_pseudo_bytes(s->s2->challenge,SSL2_CHALLENGE_LENGTH); 615 if(RAND_pseudo_bytes(s->s2->challenge,SSL2_CHALLENGE_LENGTH) <= 0)
616 return -1;
616 memcpy(d,s->s2->challenge,SSL2_CHALLENGE_LENGTH); 617 memcpy(d,s->s2->challenge,SSL2_CHALLENGE_LENGTH);
617 d+=SSL2_CHALLENGE_LENGTH; 618 d+=SSL2_CHALLENGE_LENGTH;
618 619
@@ -660,7 +661,9 @@ static int client_master_key(SSL *s)
660 SSLerr(SSL_F_CLIENT_MASTER_KEY, ERR_R_INTERNAL_ERROR); 661 SSLerr(SSL_F_CLIENT_MASTER_KEY, ERR_R_INTERNAL_ERROR);
661 return -1; 662 return -1;
662 } 663 }
663 if (i > 0) RAND_pseudo_bytes(sess->key_arg,i); 664 if (i > 0)
665 if(RAND_pseudo_bytes(sess->key_arg,i) <= 0)
666 return -1;
664 667
665 /* make a master key */ 668 /* make a master key */
666 i=EVP_CIPHER_key_length(c); 669 i=EVP_CIPHER_key_length(c);
diff --git a/src/lib/libssl/src/ssl/s2_lib.c b/src/lib/libssl/src/ssl/s2_lib.c
index edcef4dda2..26ce8c8d98 100644
--- a/src/lib/libssl/src/ssl/s2_lib.c
+++ b/src/lib/libssl/src/ssl/s2_lib.c
@@ -263,7 +263,7 @@ SSL_CIPHER *ssl2_get_cipher(unsigned int u)
263 return(NULL); 263 return(NULL);
264 } 264 }
265 265
266int ssl2_pending(SSL *s) 266int ssl2_pending(const SSL *s)
267 { 267 {
268 return SSL_in_init(s) ? 0 : s->s2->ract_data_length; 268 return SSL_in_init(s) ? 0 : s->s2->ract_data_length;
269 } 269 }
diff --git a/src/lib/libssl/src/ssl/s2_srvr.c b/src/lib/libssl/src/ssl/s2_srvr.c
index 5da2a54af3..853871f28c 100644
--- a/src/lib/libssl/src/ssl/s2_srvr.c
+++ b/src/lib/libssl/src/ssl/s2_srvr.c
@@ -498,7 +498,8 @@ static int get_client_master_key(SSL *s)
498 i=ek; 498 i=ek;
499 else 499 else
500 i=EVP_CIPHER_key_length(c); 500 i=EVP_CIPHER_key_length(c);
501 RAND_pseudo_bytes(p,i); 501 if(RAND_pseudo_bytes(p,i) <= 0)
502 return 0;
502 } 503 }
503#else 504#else
504 if (i < 0) 505 if (i < 0)
@@ -804,7 +805,8 @@ static int server_hello(SSL *s)
804 /* make and send conn_id */ 805 /* make and send conn_id */
805 s2n(SSL2_CONNECTION_ID_LENGTH,p); /* add conn_id length */ 806 s2n(SSL2_CONNECTION_ID_LENGTH,p); /* add conn_id length */
806 s->s2->conn_id_length=SSL2_CONNECTION_ID_LENGTH; 807 s->s2->conn_id_length=SSL2_CONNECTION_ID_LENGTH;
807 RAND_pseudo_bytes(s->s2->conn_id,(int)s->s2->conn_id_length); 808 if(RAND_pseudo_bytes(s->s2->conn_id,(int)s->s2->conn_id_length) <= 0)
809 return -1;
808 memcpy(d,s->s2->conn_id,SSL2_CONNECTION_ID_LENGTH); 810 memcpy(d,s->s2->conn_id,SSL2_CONNECTION_ID_LENGTH);
809 d+=SSL2_CONNECTION_ID_LENGTH; 811 d+=SSL2_CONNECTION_ID_LENGTH;
810 812
@@ -949,7 +951,8 @@ static int request_certificate(SSL *s)
949 p=(unsigned char *)s->init_buf->data; 951 p=(unsigned char *)s->init_buf->data;
950 *(p++)=SSL2_MT_REQUEST_CERTIFICATE; 952 *(p++)=SSL2_MT_REQUEST_CERTIFICATE;
951 *(p++)=SSL2_AT_MD5_WITH_RSA_ENCRYPTION; 953 *(p++)=SSL2_AT_MD5_WITH_RSA_ENCRYPTION;
952 RAND_pseudo_bytes(ccd,SSL2_MIN_CERT_CHALLENGE_LENGTH); 954 if(RAND_pseudo_bytes(ccd,SSL2_MIN_CERT_CHALLENGE_LENGTH) <= 0)
955 return -1;
953 memcpy(p,ccd,SSL2_MIN_CERT_CHALLENGE_LENGTH); 956 memcpy(p,ccd,SSL2_MIN_CERT_CHALLENGE_LENGTH);
954 957
955 s->state=SSL2_ST_SEND_REQUEST_CERTIFICATE_B; 958 s->state=SSL2_ST_SEND_REQUEST_CERTIFICATE_B;
diff --git a/src/lib/libssl/src/ssl/s3_clnt.c b/src/lib/libssl/src/ssl/s3_clnt.c
index 26ce0cb963..0969476b25 100644
--- a/src/lib/libssl/src/ssl/s3_clnt.c
+++ b/src/lib/libssl/src/ssl/s3_clnt.c
@@ -117,6 +117,7 @@
117#include <openssl/objects.h> 117#include <openssl/objects.h>
118#include <openssl/evp.h> 118#include <openssl/evp.h>
119#include <openssl/md5.h> 119#include <openssl/md5.h>
120#include <openssl/fips.h>
120 121
121static SSL_METHOD *ssl3_get_client_method(int ver); 122static SSL_METHOD *ssl3_get_client_method(int ver);
122static int ssl3_client_hello(SSL *s); 123static int ssl3_client_hello(SSL *s);
@@ -534,7 +535,8 @@ static int ssl3_client_hello(SSL *s)
534 p=s->s3->client_random; 535 p=s->s3->client_random;
535 Time=time(NULL); /* Time */ 536 Time=time(NULL); /* Time */
536 l2n(Time,p); 537 l2n(Time,p);
537 RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE-sizeof(Time)); 538 if(RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE-4) <= 0)
539 goto err;
538 540
539 /* Do the message type and length last */ 541 /* Do the message type and length last */
540 d=p= &(buf[4]); 542 d=p= &(buf[4]);
@@ -1160,11 +1162,14 @@ static int ssl3_get_key_exchange(SSL *s)
1160 q=md_buf; 1162 q=md_buf;
1161 for (num=2; num > 0; num--) 1163 for (num=2; num > 0; num--)
1162 { 1164 {
1165 EVP_MD_CTX_set_flags(&md_ctx,
1166 EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
1163 EVP_DigestInit_ex(&md_ctx,(num == 2) 1167 EVP_DigestInit_ex(&md_ctx,(num == 2)
1164 ?s->ctx->md5:s->ctx->sha1, NULL); 1168 ?s->ctx->md5:s->ctx->sha1, NULL);
1165 EVP_DigestUpdate(&md_ctx,&(s->s3->client_random[0]),SSL3_RANDOM_SIZE); 1169 EVP_DigestUpdate(&md_ctx,&(s->s3->client_random[0]),SSL3_RANDOM_SIZE);
1166 EVP_DigestUpdate(&md_ctx,&(s->s3->server_random[0]),SSL3_RANDOM_SIZE); 1170 EVP_DigestUpdate(&md_ctx,&(s->s3->server_random[0]),SSL3_RANDOM_SIZE);
1167 EVP_DigestUpdate(&md_ctx,param,param_len); 1171 EVP_DigestUpdate(&md_ctx,param,param_len);
1172
1168 EVP_DigestFinal_ex(&md_ctx,q,(unsigned int *)&i); 1173 EVP_DigestFinal_ex(&md_ctx,q,(unsigned int *)&i);
1169 q+=i; 1174 q+=i;
1170 j+=i; 1175 j+=i;
diff --git a/src/lib/libssl/src/ssl/s3_enc.c b/src/lib/libssl/src/ssl/s3_enc.c
index 92efb9597d..a012d3f2b5 100644
--- a/src/lib/libssl/src/ssl/s3_enc.c
+++ b/src/lib/libssl/src/ssl/s3_enc.c
@@ -146,6 +146,7 @@ static int ssl3_generate_key_block(SSL *s, unsigned char *km, int num)
146#endif 146#endif
147 k=0; 147 k=0;
148 EVP_MD_CTX_init(&m5); 148 EVP_MD_CTX_init(&m5);
149 EVP_MD_CTX_set_flags(&m5, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
149 EVP_MD_CTX_init(&s1); 150 EVP_MD_CTX_init(&s1);
150 for (i=0; i<num; i+=MD5_DIGEST_LENGTH) 151 for (i=0; i<num; i+=MD5_DIGEST_LENGTH)
151 { 152 {
@@ -501,6 +502,8 @@ int ssl3_enc(SSL *s, int send)
501 502
502void ssl3_init_finished_mac(SSL *s) 503void ssl3_init_finished_mac(SSL *s)
503 { 504 {
505 EVP_MD_CTX_set_flags(&(s->s3->finish_dgst1),
506 EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
504 EVP_DigestInit_ex(&(s->s3->finish_dgst1),s->ctx->md5, NULL); 507 EVP_DigestInit_ex(&(s->s3->finish_dgst1),s->ctx->md5, NULL);
505 EVP_DigestInit_ex(&(s->s3->finish_dgst2),s->ctx->sha1, NULL); 508 EVP_DigestInit_ex(&(s->s3->finish_dgst2),s->ctx->sha1, NULL);
506 } 509 }
@@ -641,6 +644,7 @@ int ssl3_generate_master_secret(SSL *s, unsigned char *out, unsigned char *p,
641 unsigned int n; 644 unsigned int n;
642 645
643 EVP_MD_CTX_init(&ctx); 646 EVP_MD_CTX_init(&ctx);
647 EVP_MD_CTX_set_flags(&ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
644 for (i=0; i<3; i++) 648 for (i=0; i<3; i++)
645 { 649 {
646 EVP_DigestInit_ex(&ctx,s->ctx->sha1, NULL); 650 EVP_DigestInit_ex(&ctx,s->ctx->sha1, NULL);
diff --git a/src/lib/libssl/src/ssl/s3_lib.c b/src/lib/libssl/src/ssl/s3_lib.c
index d04096016c..9bf1dbec06 100644
--- a/src/lib/libssl/src/ssl/s3_lib.c
+++ b/src/lib/libssl/src/ssl/s3_lib.c
@@ -142,7 +142,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
142 SSL3_TXT_RSA_NULL_SHA, 142 SSL3_TXT_RSA_NULL_SHA,
143 SSL3_CK_RSA_NULL_SHA, 143 SSL3_CK_RSA_NULL_SHA,
144 SSL_kRSA|SSL_aRSA|SSL_eNULL |SSL_SHA1|SSL_SSLV3, 144 SSL_kRSA|SSL_aRSA|SSL_eNULL |SSL_SHA1|SSL_SSLV3,
145 SSL_NOT_EXP|SSL_STRONG_NONE, 145 SSL_NOT_EXP|SSL_STRONG_NONE|SSL_FIPS,
146 0, 146 0,
147 0, 147 0,
148 0, 148 0,
@@ -183,7 +183,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
183 SSL3_TXT_ADH_DES_40_CBC_SHA, 183 SSL3_TXT_ADH_DES_40_CBC_SHA,
184 SSL3_CK_ADH_DES_40_CBC_SHA, 184 SSL3_CK_ADH_DES_40_CBC_SHA,
185 SSL_kEDH |SSL_aNULL|SSL_DES|SSL_SHA1|SSL_SSLV3, 185 SSL_kEDH |SSL_aNULL|SSL_DES|SSL_SHA1|SSL_SSLV3,
186 SSL_EXPORT|SSL_EXP40, 186 SSL_EXPORT|SSL_EXP40|SSL_FIPS,
187 0, 187 0,
188 40, 188 40,
189 128, 189 128,
@@ -196,7 +196,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
196 SSL3_TXT_ADH_DES_64_CBC_SHA, 196 SSL3_TXT_ADH_DES_64_CBC_SHA,
197 SSL3_CK_ADH_DES_64_CBC_SHA, 197 SSL3_CK_ADH_DES_64_CBC_SHA,
198 SSL_kEDH |SSL_aNULL|SSL_DES |SSL_SHA1|SSL_SSLV3, 198 SSL_kEDH |SSL_aNULL|SSL_DES |SSL_SHA1|SSL_SSLV3,
199 SSL_NOT_EXP|SSL_LOW, 199 SSL_NOT_EXP|SSL_LOW|SSL_FIPS,
200 0, 200 0,
201 56, 201 56,
202 56, 202 56,
@@ -209,7 +209,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
209 SSL3_TXT_ADH_DES_192_CBC_SHA, 209 SSL3_TXT_ADH_DES_192_CBC_SHA,
210 SSL3_CK_ADH_DES_192_CBC_SHA, 210 SSL3_CK_ADH_DES_192_CBC_SHA,
211 SSL_kEDH |SSL_aNULL|SSL_3DES |SSL_SHA1|SSL_SSLV3, 211 SSL_kEDH |SSL_aNULL|SSL_3DES |SSL_SHA1|SSL_SSLV3,
212 SSL_NOT_EXP|SSL_HIGH, 212 SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
213 0, 213 0,
214 168, 214 168,
215 168, 215 168,
@@ -291,7 +291,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
291 SSL3_TXT_RSA_DES_40_CBC_SHA, 291 SSL3_TXT_RSA_DES_40_CBC_SHA,
292 SSL3_CK_RSA_DES_40_CBC_SHA, 292 SSL3_CK_RSA_DES_40_CBC_SHA,
293 SSL_kRSA|SSL_aRSA|SSL_DES|SSL_SHA1|SSL_SSLV3, 293 SSL_kRSA|SSL_aRSA|SSL_DES|SSL_SHA1|SSL_SSLV3,
294 SSL_EXPORT|SSL_EXP40, 294 SSL_EXPORT|SSL_EXP40|SSL_FIPS,
295 0, 295 0,
296 40, 296 40,
297 56, 297 56,
@@ -304,7 +304,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
304 SSL3_TXT_RSA_DES_64_CBC_SHA, 304 SSL3_TXT_RSA_DES_64_CBC_SHA,
305 SSL3_CK_RSA_DES_64_CBC_SHA, 305 SSL3_CK_RSA_DES_64_CBC_SHA,
306 SSL_kRSA|SSL_aRSA|SSL_DES |SSL_SHA1|SSL_SSLV3, 306 SSL_kRSA|SSL_aRSA|SSL_DES |SSL_SHA1|SSL_SSLV3,
307 SSL_NOT_EXP|SSL_LOW, 307 SSL_NOT_EXP|SSL_LOW|SSL_FIPS,
308 0, 308 0,
309 56, 309 56,
310 56, 310 56,
@@ -317,7 +317,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
317 SSL3_TXT_RSA_DES_192_CBC3_SHA, 317 SSL3_TXT_RSA_DES_192_CBC3_SHA,
318 SSL3_CK_RSA_DES_192_CBC3_SHA, 318 SSL3_CK_RSA_DES_192_CBC3_SHA,
319 SSL_kRSA|SSL_aRSA|SSL_3DES |SSL_SHA1|SSL_SSLV3, 319 SSL_kRSA|SSL_aRSA|SSL_3DES |SSL_SHA1|SSL_SSLV3,
320 SSL_NOT_EXP|SSL_HIGH, 320 SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
321 0, 321 0,
322 168, 322 168,
323 168, 323 168,
@@ -332,7 +332,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
332 SSL3_TXT_DH_DSS_DES_40_CBC_SHA, 332 SSL3_TXT_DH_DSS_DES_40_CBC_SHA,
333 SSL3_CK_DH_DSS_DES_40_CBC_SHA, 333 SSL3_CK_DH_DSS_DES_40_CBC_SHA,
334 SSL_kDHd |SSL_aDH|SSL_DES|SSL_SHA1|SSL_SSLV3, 334 SSL_kDHd |SSL_aDH|SSL_DES|SSL_SHA1|SSL_SSLV3,
335 SSL_EXPORT|SSL_EXP40, 335 SSL_EXPORT|SSL_EXP40|SSL_FIPS,
336 0, 336 0,
337 40, 337 40,
338 56, 338 56,
@@ -345,7 +345,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
345 SSL3_TXT_DH_DSS_DES_64_CBC_SHA, 345 SSL3_TXT_DH_DSS_DES_64_CBC_SHA,
346 SSL3_CK_DH_DSS_DES_64_CBC_SHA, 346 SSL3_CK_DH_DSS_DES_64_CBC_SHA,
347 SSL_kDHd |SSL_aDH|SSL_DES |SSL_SHA1|SSL_SSLV3, 347 SSL_kDHd |SSL_aDH|SSL_DES |SSL_SHA1|SSL_SSLV3,
348 SSL_NOT_EXP|SSL_LOW, 348 SSL_NOT_EXP|SSL_LOW|SSL_FIPS,
349 0, 349 0,
350 56, 350 56,
351 56, 351 56,
@@ -358,7 +358,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
358 SSL3_TXT_DH_DSS_DES_192_CBC3_SHA, 358 SSL3_TXT_DH_DSS_DES_192_CBC3_SHA,
359 SSL3_CK_DH_DSS_DES_192_CBC3_SHA, 359 SSL3_CK_DH_DSS_DES_192_CBC3_SHA,
360 SSL_kDHd |SSL_aDH|SSL_3DES |SSL_SHA1|SSL_SSLV3, 360 SSL_kDHd |SSL_aDH|SSL_3DES |SSL_SHA1|SSL_SSLV3,
361 SSL_NOT_EXP|SSL_HIGH, 361 SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
362 0, 362 0,
363 168, 363 168,
364 168, 364 168,
@@ -371,7 +371,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
371 SSL3_TXT_DH_RSA_DES_40_CBC_SHA, 371 SSL3_TXT_DH_RSA_DES_40_CBC_SHA,
372 SSL3_CK_DH_RSA_DES_40_CBC_SHA, 372 SSL3_CK_DH_RSA_DES_40_CBC_SHA,
373 SSL_kDHr |SSL_aDH|SSL_DES|SSL_SHA1|SSL_SSLV3, 373 SSL_kDHr |SSL_aDH|SSL_DES|SSL_SHA1|SSL_SSLV3,
374 SSL_EXPORT|SSL_EXP40, 374 SSL_EXPORT|SSL_EXP40|SSL_FIPS,
375 0, 375 0,
376 40, 376 40,
377 56, 377 56,
@@ -384,7 +384,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
384 SSL3_TXT_DH_RSA_DES_64_CBC_SHA, 384 SSL3_TXT_DH_RSA_DES_64_CBC_SHA,
385 SSL3_CK_DH_RSA_DES_64_CBC_SHA, 385 SSL3_CK_DH_RSA_DES_64_CBC_SHA,
386 SSL_kDHr |SSL_aDH|SSL_DES |SSL_SHA1|SSL_SSLV3, 386 SSL_kDHr |SSL_aDH|SSL_DES |SSL_SHA1|SSL_SSLV3,
387 SSL_NOT_EXP|SSL_LOW, 387 SSL_NOT_EXP|SSL_LOW|SSL_FIPS,
388 0, 388 0,
389 56, 389 56,
390 56, 390 56,
@@ -397,7 +397,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
397 SSL3_TXT_DH_RSA_DES_192_CBC3_SHA, 397 SSL3_TXT_DH_RSA_DES_192_CBC3_SHA,
398 SSL3_CK_DH_RSA_DES_192_CBC3_SHA, 398 SSL3_CK_DH_RSA_DES_192_CBC3_SHA,
399 SSL_kDHr |SSL_aDH|SSL_3DES |SSL_SHA1|SSL_SSLV3, 399 SSL_kDHr |SSL_aDH|SSL_3DES |SSL_SHA1|SSL_SSLV3,
400 SSL_NOT_EXP|SSL_HIGH, 400 SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
401 0, 401 0,
402 168, 402 168,
403 168, 403 168,
@@ -412,7 +412,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
412 SSL3_TXT_EDH_DSS_DES_40_CBC_SHA, 412 SSL3_TXT_EDH_DSS_DES_40_CBC_SHA,
413 SSL3_CK_EDH_DSS_DES_40_CBC_SHA, 413 SSL3_CK_EDH_DSS_DES_40_CBC_SHA,
414 SSL_kEDH|SSL_aDSS|SSL_DES|SSL_SHA1|SSL_SSLV3, 414 SSL_kEDH|SSL_aDSS|SSL_DES|SSL_SHA1|SSL_SSLV3,
415 SSL_EXPORT|SSL_EXP40, 415 SSL_EXPORT|SSL_EXP40|SSL_FIPS,
416 0, 416 0,
417 40, 417 40,
418 56, 418 56,
@@ -425,7 +425,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
425 SSL3_TXT_EDH_DSS_DES_64_CBC_SHA, 425 SSL3_TXT_EDH_DSS_DES_64_CBC_SHA,
426 SSL3_CK_EDH_DSS_DES_64_CBC_SHA, 426 SSL3_CK_EDH_DSS_DES_64_CBC_SHA,
427 SSL_kEDH|SSL_aDSS|SSL_DES |SSL_SHA1|SSL_SSLV3, 427 SSL_kEDH|SSL_aDSS|SSL_DES |SSL_SHA1|SSL_SSLV3,
428 SSL_NOT_EXP|SSL_LOW, 428 SSL_NOT_EXP|SSL_LOW|SSL_FIPS,
429 0, 429 0,
430 56, 430 56,
431 56, 431 56,
@@ -438,7 +438,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
438 SSL3_TXT_EDH_DSS_DES_192_CBC3_SHA, 438 SSL3_TXT_EDH_DSS_DES_192_CBC3_SHA,
439 SSL3_CK_EDH_DSS_DES_192_CBC3_SHA, 439 SSL3_CK_EDH_DSS_DES_192_CBC3_SHA,
440 SSL_kEDH|SSL_aDSS|SSL_3DES |SSL_SHA1|SSL_SSLV3, 440 SSL_kEDH|SSL_aDSS|SSL_3DES |SSL_SHA1|SSL_SSLV3,
441 SSL_NOT_EXP|SSL_HIGH, 441 SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
442 0, 442 0,
443 168, 443 168,
444 168, 444 168,
@@ -451,7 +451,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
451 SSL3_TXT_EDH_RSA_DES_40_CBC_SHA, 451 SSL3_TXT_EDH_RSA_DES_40_CBC_SHA,
452 SSL3_CK_EDH_RSA_DES_40_CBC_SHA, 452 SSL3_CK_EDH_RSA_DES_40_CBC_SHA,
453 SSL_kEDH|SSL_aRSA|SSL_DES|SSL_SHA1|SSL_SSLV3, 453 SSL_kEDH|SSL_aRSA|SSL_DES|SSL_SHA1|SSL_SSLV3,
454 SSL_EXPORT|SSL_EXP40, 454 SSL_EXPORT|SSL_EXP40|SSL_FIPS,
455 0, 455 0,
456 40, 456 40,
457 56, 457 56,
@@ -464,7 +464,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
464 SSL3_TXT_EDH_RSA_DES_64_CBC_SHA, 464 SSL3_TXT_EDH_RSA_DES_64_CBC_SHA,
465 SSL3_CK_EDH_RSA_DES_64_CBC_SHA, 465 SSL3_CK_EDH_RSA_DES_64_CBC_SHA,
466 SSL_kEDH|SSL_aRSA|SSL_DES |SSL_SHA1|SSL_SSLV3, 466 SSL_kEDH|SSL_aRSA|SSL_DES |SSL_SHA1|SSL_SSLV3,
467 SSL_NOT_EXP|SSL_LOW, 467 SSL_NOT_EXP|SSL_LOW|SSL_FIPS,
468 0, 468 0,
469 56, 469 56,
470 56, 470 56,
@@ -477,7 +477,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
477 SSL3_TXT_EDH_RSA_DES_192_CBC3_SHA, 477 SSL3_TXT_EDH_RSA_DES_192_CBC3_SHA,
478 SSL3_CK_EDH_RSA_DES_192_CBC3_SHA, 478 SSL3_CK_EDH_RSA_DES_192_CBC3_SHA,
479 SSL_kEDH|SSL_aRSA|SSL_3DES |SSL_SHA1|SSL_SSLV3, 479 SSL_kEDH|SSL_aRSA|SSL_3DES |SSL_SHA1|SSL_SSLV3,
480 SSL_NOT_EXP|SSL_HIGH, 480 SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
481 0, 481 0,
482 168, 482 168,
483 168, 483 168,
@@ -541,7 +541,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
541 SSL3_TXT_KRB5_DES_64_CBC_SHA, 541 SSL3_TXT_KRB5_DES_64_CBC_SHA,
542 SSL3_CK_KRB5_DES_64_CBC_SHA, 542 SSL3_CK_KRB5_DES_64_CBC_SHA,
543 SSL_kKRB5|SSL_aKRB5| SSL_DES|SSL_SHA1 |SSL_SSLV3, 543 SSL_kKRB5|SSL_aKRB5| SSL_DES|SSL_SHA1 |SSL_SSLV3,
544 SSL_NOT_EXP|SSL_LOW, 544 SSL_NOT_EXP|SSL_LOW|SSL_FIPS,
545 0, 545 0,
546 56, 546 56,
547 56, 547 56,
@@ -555,7 +555,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
555 SSL3_TXT_KRB5_DES_192_CBC3_SHA, 555 SSL3_TXT_KRB5_DES_192_CBC3_SHA,
556 SSL3_CK_KRB5_DES_192_CBC3_SHA, 556 SSL3_CK_KRB5_DES_192_CBC3_SHA,
557 SSL_kKRB5|SSL_aKRB5| SSL_3DES|SSL_SHA1 |SSL_SSLV3, 557 SSL_kKRB5|SSL_aKRB5| SSL_3DES|SSL_SHA1 |SSL_SSLV3,
558 SSL_NOT_EXP|SSL_HIGH, 558 SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
559 0, 559 0,
560 112, 560 112,
561 168, 561 168,
@@ -653,7 +653,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
653 SSL3_TXT_KRB5_DES_40_CBC_SHA, 653 SSL3_TXT_KRB5_DES_40_CBC_SHA,
654 SSL3_CK_KRB5_DES_40_CBC_SHA, 654 SSL3_CK_KRB5_DES_40_CBC_SHA,
655 SSL_kKRB5|SSL_aKRB5| SSL_DES|SSL_SHA1 |SSL_SSLV3, 655 SSL_kKRB5|SSL_aKRB5| SSL_DES|SSL_SHA1 |SSL_SSLV3,
656 SSL_EXPORT|SSL_EXP40, 656 SSL_EXPORT|SSL_EXP40|SSL_FIPS,
657 0, 657 0,
658 40, 658 40,
659 56, 659 56,
@@ -767,7 +767,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
767 TLS1_TXT_RSA_EXPORT1024_WITH_DES_CBC_SHA, 767 TLS1_TXT_RSA_EXPORT1024_WITH_DES_CBC_SHA,
768 TLS1_CK_RSA_EXPORT1024_WITH_DES_CBC_SHA, 768 TLS1_CK_RSA_EXPORT1024_WITH_DES_CBC_SHA,
769 SSL_kRSA|SSL_aRSA|SSL_DES|SSL_SHA|SSL_TLSV1, 769 SSL_kRSA|SSL_aRSA|SSL_DES|SSL_SHA|SSL_TLSV1,
770 SSL_EXPORT|SSL_EXP56, 770 SSL_EXPORT|SSL_EXP56|SSL_FIPS,
771 0, 771 0,
772 56, 772 56,
773 56, 773 56,
@@ -780,7 +780,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
780 TLS1_TXT_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA, 780 TLS1_TXT_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA,
781 TLS1_CK_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA, 781 TLS1_CK_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA,
782 SSL_kEDH|SSL_aDSS|SSL_DES|SSL_SHA|SSL_TLSV1, 782 SSL_kEDH|SSL_aDSS|SSL_DES|SSL_SHA|SSL_TLSV1,
783 SSL_EXPORT|SSL_EXP56, 783 SSL_EXPORT|SSL_EXP56|SSL_FIPS,
784 0, 784 0,
785 56, 785 56,
786 56, 786 56,
@@ -835,7 +835,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
835 TLS1_TXT_RSA_WITH_AES_128_SHA, 835 TLS1_TXT_RSA_WITH_AES_128_SHA,
836 TLS1_CK_RSA_WITH_AES_128_SHA, 836 TLS1_CK_RSA_WITH_AES_128_SHA,
837 SSL_kRSA|SSL_aRSA|SSL_AES|SSL_SHA |SSL_TLSV1, 837 SSL_kRSA|SSL_aRSA|SSL_AES|SSL_SHA |SSL_TLSV1,
838 SSL_NOT_EXP|SSL_MEDIUM, 838 SSL_NOT_EXP|SSL_MEDIUM|SSL_FIPS,
839 0, 839 0,
840 128, 840 128,
841 128, 841 128,
@@ -848,7 +848,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
848 TLS1_TXT_DH_DSS_WITH_AES_128_SHA, 848 TLS1_TXT_DH_DSS_WITH_AES_128_SHA,
849 TLS1_CK_DH_DSS_WITH_AES_128_SHA, 849 TLS1_CK_DH_DSS_WITH_AES_128_SHA,
850 SSL_kDHd|SSL_aDH|SSL_AES|SSL_SHA|SSL_TLSV1, 850 SSL_kDHd|SSL_aDH|SSL_AES|SSL_SHA|SSL_TLSV1,
851 SSL_NOT_EXP|SSL_MEDIUM, 851 SSL_NOT_EXP|SSL_MEDIUM|SSL_FIPS,
852 0, 852 0,
853 128, 853 128,
854 128, 854 128,
@@ -861,7 +861,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
861 TLS1_TXT_DH_RSA_WITH_AES_128_SHA, 861 TLS1_TXT_DH_RSA_WITH_AES_128_SHA,
862 TLS1_CK_DH_RSA_WITH_AES_128_SHA, 862 TLS1_CK_DH_RSA_WITH_AES_128_SHA,
863 SSL_kDHr|SSL_aDH|SSL_AES|SSL_SHA|SSL_TLSV1, 863 SSL_kDHr|SSL_aDH|SSL_AES|SSL_SHA|SSL_TLSV1,
864 SSL_NOT_EXP|SSL_MEDIUM, 864 SSL_NOT_EXP|SSL_MEDIUM|SSL_FIPS,
865 0, 865 0,
866 128, 866 128,
867 128, 867 128,
@@ -874,7 +874,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
874 TLS1_TXT_DHE_DSS_WITH_AES_128_SHA, 874 TLS1_TXT_DHE_DSS_WITH_AES_128_SHA,
875 TLS1_CK_DHE_DSS_WITH_AES_128_SHA, 875 TLS1_CK_DHE_DSS_WITH_AES_128_SHA,
876 SSL_kEDH|SSL_aDSS|SSL_AES|SSL_SHA|SSL_TLSV1, 876 SSL_kEDH|SSL_aDSS|SSL_AES|SSL_SHA|SSL_TLSV1,
877 SSL_NOT_EXP|SSL_MEDIUM, 877 SSL_NOT_EXP|SSL_MEDIUM|SSL_FIPS,
878 0, 878 0,
879 128, 879 128,
880 128, 880 128,
@@ -887,7 +887,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
887 TLS1_TXT_DHE_RSA_WITH_AES_128_SHA, 887 TLS1_TXT_DHE_RSA_WITH_AES_128_SHA,
888 TLS1_CK_DHE_RSA_WITH_AES_128_SHA, 888 TLS1_CK_DHE_RSA_WITH_AES_128_SHA,
889 SSL_kEDH|SSL_aRSA|SSL_AES|SSL_SHA|SSL_TLSV1, 889 SSL_kEDH|SSL_aRSA|SSL_AES|SSL_SHA|SSL_TLSV1,
890 SSL_NOT_EXP|SSL_MEDIUM, 890 SSL_NOT_EXP|SSL_MEDIUM|SSL_FIPS,
891 0, 891 0,
892 128, 892 128,
893 128, 893 128,
@@ -900,7 +900,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
900 TLS1_TXT_ADH_WITH_AES_128_SHA, 900 TLS1_TXT_ADH_WITH_AES_128_SHA,
901 TLS1_CK_ADH_WITH_AES_128_SHA, 901 TLS1_CK_ADH_WITH_AES_128_SHA,
902 SSL_kEDH|SSL_aNULL|SSL_AES|SSL_SHA|SSL_TLSV1, 902 SSL_kEDH|SSL_aNULL|SSL_AES|SSL_SHA|SSL_TLSV1,
903 SSL_NOT_EXP|SSL_MEDIUM, 903 SSL_NOT_EXP|SSL_MEDIUM|SSL_FIPS,
904 0, 904 0,
905 128, 905 128,
906 128, 906 128,
@@ -914,7 +914,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
914 TLS1_TXT_RSA_WITH_AES_256_SHA, 914 TLS1_TXT_RSA_WITH_AES_256_SHA,
915 TLS1_CK_RSA_WITH_AES_256_SHA, 915 TLS1_CK_RSA_WITH_AES_256_SHA,
916 SSL_kRSA|SSL_aRSA|SSL_AES|SSL_SHA |SSL_TLSV1, 916 SSL_kRSA|SSL_aRSA|SSL_AES|SSL_SHA |SSL_TLSV1,
917 SSL_NOT_EXP|SSL_HIGH, 917 SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
918 0, 918 0,
919 256, 919 256,
920 256, 920 256,
@@ -927,7 +927,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
927 TLS1_TXT_DH_DSS_WITH_AES_256_SHA, 927 TLS1_TXT_DH_DSS_WITH_AES_256_SHA,
928 TLS1_CK_DH_DSS_WITH_AES_256_SHA, 928 TLS1_CK_DH_DSS_WITH_AES_256_SHA,
929 SSL_kDHd|SSL_aDH|SSL_AES|SSL_SHA|SSL_TLSV1, 929 SSL_kDHd|SSL_aDH|SSL_AES|SSL_SHA|SSL_TLSV1,
930 SSL_NOT_EXP|SSL_HIGH, 930 SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
931 0, 931 0,
932 256, 932 256,
933 256, 933 256,
@@ -940,7 +940,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
940 TLS1_TXT_DH_RSA_WITH_AES_256_SHA, 940 TLS1_TXT_DH_RSA_WITH_AES_256_SHA,
941 TLS1_CK_DH_RSA_WITH_AES_256_SHA, 941 TLS1_CK_DH_RSA_WITH_AES_256_SHA,
942 SSL_kDHr|SSL_aDH|SSL_AES|SSL_SHA|SSL_TLSV1, 942 SSL_kDHr|SSL_aDH|SSL_AES|SSL_SHA|SSL_TLSV1,
943 SSL_NOT_EXP|SSL_HIGH, 943 SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
944 0, 944 0,
945 256, 945 256,
946 256, 946 256,
@@ -953,7 +953,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
953 TLS1_TXT_DHE_DSS_WITH_AES_256_SHA, 953 TLS1_TXT_DHE_DSS_WITH_AES_256_SHA,
954 TLS1_CK_DHE_DSS_WITH_AES_256_SHA, 954 TLS1_CK_DHE_DSS_WITH_AES_256_SHA,
955 SSL_kEDH|SSL_aDSS|SSL_AES|SSL_SHA|SSL_TLSV1, 955 SSL_kEDH|SSL_aDSS|SSL_AES|SSL_SHA|SSL_TLSV1,
956 SSL_NOT_EXP|SSL_HIGH, 956 SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
957 0, 957 0,
958 256, 958 256,
959 256, 959 256,
@@ -966,7 +966,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
966 TLS1_TXT_DHE_RSA_WITH_AES_256_SHA, 966 TLS1_TXT_DHE_RSA_WITH_AES_256_SHA,
967 TLS1_CK_DHE_RSA_WITH_AES_256_SHA, 967 TLS1_CK_DHE_RSA_WITH_AES_256_SHA,
968 SSL_kEDH|SSL_aRSA|SSL_AES|SSL_SHA|SSL_TLSV1, 968 SSL_kEDH|SSL_aRSA|SSL_AES|SSL_SHA|SSL_TLSV1,
969 SSL_NOT_EXP|SSL_HIGH, 969 SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
970 0, 970 0,
971 256, 971 256,
972 256, 972 256,
@@ -979,7 +979,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
979 TLS1_TXT_ADH_WITH_AES_256_SHA, 979 TLS1_TXT_ADH_WITH_AES_256_SHA,
980 TLS1_CK_ADH_WITH_AES_256_SHA, 980 TLS1_CK_ADH_WITH_AES_256_SHA,
981 SSL_kEDH|SSL_aNULL|SSL_AES|SSL_SHA|SSL_TLSV1, 981 SSL_kEDH|SSL_aNULL|SSL_AES|SSL_SHA|SSL_TLSV1,
982 SSL_NOT_EXP|SSL_HIGH, 982 SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
983 0, 983 0,
984 256, 984 256,
985 256, 985 256,
@@ -1057,7 +1057,7 @@ SSL_CIPHER *ssl3_get_cipher(unsigned int u)
1057 return(NULL); 1057 return(NULL);
1058 } 1058 }
1059 1059
1060int ssl3_pending(SSL *s) 1060int ssl3_pending(const SSL *s)
1061 { 1061 {
1062 if (s->rstate == SSL_ST_READ_BODY) 1062 if (s->rstate == SSL_ST_READ_BODY)
1063 return 0; 1063 return 0;
diff --git a/src/lib/libssl/src/ssl/s3_pkt.c b/src/lib/libssl/src/ssl/s3_pkt.c
index 9f3e5139ad..cb0b12b400 100644
--- a/src/lib/libssl/src/ssl/s3_pkt.c
+++ b/src/lib/libssl/src/ssl/s3_pkt.c
@@ -862,7 +862,7 @@ start:
862 { 862 {
863 al=SSL_AD_UNEXPECTED_MESSAGE; 863 al=SSL_AD_UNEXPECTED_MESSAGE;
864 SSLerr(SSL_F_SSL3_READ_BYTES,SSL_R_DATA_BETWEEN_CCS_AND_FINISHED); 864 SSLerr(SSL_F_SSL3_READ_BYTES,SSL_R_DATA_BETWEEN_CCS_AND_FINISHED);
865 goto err; 865 goto f_err;
866 } 866 }
867 867
868 /* If the other end has shut down, throw anything we read away 868 /* If the other end has shut down, throw anything we read away
@@ -969,7 +969,7 @@ start:
969 { 969 {
970 al=SSL_AD_DECODE_ERROR; 970 al=SSL_AD_DECODE_ERROR;
971 SSLerr(SSL_F_SSL3_READ_BYTES,SSL_R_BAD_HELLO_REQUEST); 971 SSLerr(SSL_F_SSL3_READ_BYTES,SSL_R_BAD_HELLO_REQUEST);
972 goto err; 972 goto f_err;
973 } 973 }
974 974
975 if (s->msg_callback) 975 if (s->msg_callback)
@@ -1080,17 +1080,17 @@ start:
1080 if ( (rr->length != 1) || (rr->off != 0) || 1080 if ( (rr->length != 1) || (rr->off != 0) ||
1081 (rr->data[0] != SSL3_MT_CCS)) 1081 (rr->data[0] != SSL3_MT_CCS))
1082 { 1082 {
1083 i=SSL_AD_ILLEGAL_PARAMETER; 1083 al=SSL_AD_ILLEGAL_PARAMETER;
1084 SSLerr(SSL_F_SSL3_READ_BYTES,SSL_R_BAD_CHANGE_CIPHER_SPEC); 1084 SSLerr(SSL_F_SSL3_READ_BYTES,SSL_R_BAD_CHANGE_CIPHER_SPEC);
1085 goto err; 1085 goto f_err;
1086 } 1086 }
1087 1087
1088 /* Check we have a cipher to change to */ 1088 /* Check we have a cipher to change to */
1089 if (s->s3->tmp.new_cipher == NULL) 1089 if (s->s3->tmp.new_cipher == NULL)
1090 { 1090 {
1091 i=SSL_AD_UNEXPECTED_MESSAGE; 1091 al=SSL_AD_UNEXPECTED_MESSAGE;
1092 SSLerr(SSL_F_SSL3_GET_CERT_VERIFY,SSL_R_CCS_RECEIVED_EARLY); 1092 SSLerr(SSL_F_SSL3_GET_CERT_VERIFY,SSL_R_CCS_RECEIVED_EARLY);
1093 goto err; 1093 goto f_err;
1094 } 1094 }
1095 1095
1096 rr->length=0; 1096 rr->length=0;
diff --git a/src/lib/libssl/src/ssl/s3_srvr.c b/src/lib/libssl/src/ssl/s3_srvr.c
index deb3cffabe..c4a1a71523 100644
--- a/src/lib/libssl/src/ssl/s3_srvr.c
+++ b/src/lib/libssl/src/ssl/s3_srvr.c
@@ -125,6 +125,7 @@
125#include <openssl/krb5_asn.h> 125#include <openssl/krb5_asn.h>
126#endif 126#endif
127#include <openssl/md5.h> 127#include <openssl/md5.h>
128#include <openssl/fips.h>
128 129
129static SSL_METHOD *ssl3_get_server_method(int ver); 130static SSL_METHOD *ssl3_get_server_method(int ver);
130static int ssl3_get_client_hello(SSL *s); 131static int ssl3_get_client_hello(SSL *s);
@@ -955,7 +956,8 @@ static int ssl3_send_server_hello(SSL *s)
955 p=s->s3->server_random; 956 p=s->s3->server_random;
956 Time=time(NULL); /* Time */ 957 Time=time(NULL); /* Time */
957 l2n(Time,p); 958 l2n(Time,p);
958 RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE-sizeof(Time)); 959 if(RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE-4) <= 0)
960 return -1;
959 /* Do the message type and length last */ 961 /* Do the message type and length last */
960 d=p= &(buf[4]); 962 d=p= &(buf[4]);
961 963
@@ -1211,6 +1213,8 @@ static int ssl3_send_server_key_exchange(SSL *s)
1211 j=0; 1213 j=0;
1212 for (num=2; num > 0; num--) 1214 for (num=2; num > 0; num--)
1213 { 1215 {
1216 EVP_MD_CTX_set_flags(&md_ctx,
1217 EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
1214 EVP_DigestInit_ex(&md_ctx,(num == 2) 1218 EVP_DigestInit_ex(&md_ctx,(num == 2)
1215 ?s->ctx->md5:s->ctx->sha1, NULL); 1219 ?s->ctx->md5:s->ctx->sha1, NULL);
1216 EVP_DigestUpdate(&md_ctx,&(s->s3->client_random[0]),SSL3_RANDOM_SIZE); 1220 EVP_DigestUpdate(&md_ctx,&(s->s3->client_random[0]),SSL3_RANDOM_SIZE);
@@ -1491,7 +1495,8 @@ static int ssl3_get_client_key_exchange(SSL *s)
1491 i = SSL_MAX_MASTER_KEY_LENGTH; 1495 i = SSL_MAX_MASTER_KEY_LENGTH;
1492 p[0] = s->client_version >> 8; 1496 p[0] = s->client_version >> 8;
1493 p[1] = s->client_version & 0xff; 1497 p[1] = s->client_version & 0xff;
1494 RAND_pseudo_bytes(p+2, i-2); /* should be RAND_bytes, but we cannot work around a failure */ 1498 if(RAND_pseudo_bytes(p+2, i-2) <= 0) /* should be RAND_bytes, but we cannot work around a failure */
1499 goto err;
1495 } 1500 }
1496 1501
1497 s->session->master_key_length= 1502 s->session->master_key_length=
@@ -1589,7 +1594,7 @@ static int ssl3_get_client_key_exchange(SSL *s)
1589 n2s(p,i); 1594 n2s(p,i);
1590 enc_ticket.length = i; 1595 enc_ticket.length = i;
1591 1596
1592 if (n < enc_ticket.length + 6) 1597 if (n < (long)enc_ticket.length + 6)
1593 { 1598 {
1594 SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE, 1599 SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE,
1595 SSL_R_DATA_LENGTH_TOO_LONG); 1600 SSL_R_DATA_LENGTH_TOO_LONG);
@@ -1602,7 +1607,7 @@ static int ssl3_get_client_key_exchange(SSL *s)
1602 n2s(p,i); 1607 n2s(p,i);
1603 authenticator.length = i; 1608 authenticator.length = i;
1604 1609
1605 if (n < enc_ticket.length + authenticator.length + 6) 1610 if (n < (long)(enc_ticket.length + authenticator.length + 6))
1606 { 1611 {
1607 SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE, 1612 SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE,
1608 SSL_R_DATA_LENGTH_TOO_LONG); 1613 SSL_R_DATA_LENGTH_TOO_LONG);
@@ -1627,8 +1632,8 @@ static int ssl3_get_client_key_exchange(SSL *s)
1627 goto err; 1632 goto err;
1628 } 1633 }
1629 1634
1630 if (n != enc_ticket.length + authenticator.length + 1635 if (n != (long)(enc_ticket.length + authenticator.length +
1631 enc_pms.length + 6) 1636 enc_pms.length + 6))
1632 { 1637 {
1633 SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE, 1638 SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE,
1634 SSL_R_DATA_LENGTH_TOO_LONG); 1639 SSL_R_DATA_LENGTH_TOO_LONG);
diff --git a/src/lib/libssl/src/ssl/ssl.h b/src/lib/libssl/src/ssl/ssl.h
index 913bd40eea..3161f532cf 100644
--- a/src/lib/libssl/src/ssl/ssl.h
+++ b/src/lib/libssl/src/ssl/ssl.h
@@ -239,6 +239,7 @@ extern "C" {
239#define SSL_TXT_LOW "LOW" 239#define SSL_TXT_LOW "LOW"
240#define SSL_TXT_MEDIUM "MEDIUM" 240#define SSL_TXT_MEDIUM "MEDIUM"
241#define SSL_TXT_HIGH "HIGH" 241#define SSL_TXT_HIGH "HIGH"
242#define SSL_TXT_FIPS "FIPS"
242#define SSL_TXT_kFZA "kFZA" 243#define SSL_TXT_kFZA "kFZA"
243#define SSL_TXT_aFZA "aFZA" 244#define SSL_TXT_aFZA "aFZA"
244#define SSL_TXT_eFZA "eFZA" 245#define SSL_TXT_eFZA "eFZA"
@@ -372,7 +373,7 @@ typedef struct ssl_method_st
372 long (*ssl_ctx_ctrl)(SSL_CTX *ctx,int cmd,long larg,void *parg); 373 long (*ssl_ctx_ctrl)(SSL_CTX *ctx,int cmd,long larg,void *parg);
373 SSL_CIPHER *(*get_cipher_by_char)(const unsigned char *ptr); 374 SSL_CIPHER *(*get_cipher_by_char)(const unsigned char *ptr);
374 int (*put_cipher_by_char)(const SSL_CIPHER *cipher,unsigned char *ptr); 375 int (*put_cipher_by_char)(const SSL_CIPHER *cipher,unsigned char *ptr);
375 int (*ssl_pending)(SSL *s); 376 int (*ssl_pending)(const SSL *s);
376 int (*num_ciphers)(void); 377 int (*num_ciphers)(void);
377 SSL_CIPHER *(*get_cipher)(unsigned ncipher); 378 SSL_CIPHER *(*get_cipher)(unsigned ncipher);
378 struct ssl_method_st *(*get_ssl_method)(int version); 379 struct ssl_method_st *(*get_ssl_method)(int version);
@@ -998,8 +999,8 @@ extern "C" {
998 * -- that we sent (SSL_get_finished) 999 * -- that we sent (SSL_get_finished)
999 * -- that we expected from peer (SSL_get_peer_finished). 1000 * -- that we expected from peer (SSL_get_peer_finished).
1000 * Returns length (0 == no Finished so far), copies up to 'count' bytes. */ 1001 * Returns length (0 == no Finished so far), copies up to 'count' bytes. */
1001size_t SSL_get_finished(SSL *s, void *buf, size_t count); 1002size_t SSL_get_finished(const SSL *s, void *buf, size_t count);
1002size_t SSL_get_peer_finished(SSL *s, void *buf, size_t count); 1003size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count);
1003 1004
1004/* use either SSL_VERIFY_NONE or SSL_VERIFY_PEER, the last 2 options 1005/* use either SSL_VERIFY_NONE or SSL_VERIFY_PEER, the last 2 options
1005 * are 'ored' with SSL_VERIFY_PEER if they are desired */ 1006 * are 'ored' with SSL_VERIFY_PEER if they are desired */
@@ -1171,26 +1172,26 @@ int SSL_CTX_set_cipher_list(SSL_CTX *,const char *str);
1171SSL_CTX *SSL_CTX_new(SSL_METHOD *meth); 1172SSL_CTX *SSL_CTX_new(SSL_METHOD *meth);
1172void SSL_CTX_free(SSL_CTX *); 1173void SSL_CTX_free(SSL_CTX *);
1173long SSL_CTX_set_timeout(SSL_CTX *ctx,long t); 1174long SSL_CTX_set_timeout(SSL_CTX *ctx,long t);
1174long SSL_CTX_get_timeout(SSL_CTX *ctx); 1175long SSL_CTX_get_timeout(const SSL_CTX *ctx);
1175X509_STORE *SSL_CTX_get_cert_store(SSL_CTX *); 1176X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *);
1176void SSL_CTX_set_cert_store(SSL_CTX *,X509_STORE *); 1177void SSL_CTX_set_cert_store(SSL_CTX *,X509_STORE *);
1177int SSL_want(SSL *s); 1178int SSL_want(const SSL *s);
1178int SSL_clear(SSL *s); 1179int SSL_clear(SSL *s);
1179 1180
1180void SSL_CTX_flush_sessions(SSL_CTX *ctx,long tm); 1181void SSL_CTX_flush_sessions(SSL_CTX *ctx,long tm);
1181 1182
1182SSL_CIPHER *SSL_get_current_cipher(SSL *s); 1183SSL_CIPHER *SSL_get_current_cipher(const SSL *s);
1183int SSL_CIPHER_get_bits(SSL_CIPHER *c,int *alg_bits); 1184int SSL_CIPHER_get_bits(const SSL_CIPHER *c,int *alg_bits);
1184char * SSL_CIPHER_get_version(SSL_CIPHER *c); 1185char * SSL_CIPHER_get_version(const SSL_CIPHER *c);
1185const char * SSL_CIPHER_get_name(SSL_CIPHER *c); 1186const char * SSL_CIPHER_get_name(const SSL_CIPHER *c);
1186 1187
1187int SSL_get_fd(SSL *s); 1188int SSL_get_fd(const SSL *s);
1188int SSL_get_rfd(SSL *s); 1189int SSL_get_rfd(const SSL *s);
1189int SSL_get_wfd(SSL *s); 1190int SSL_get_wfd(const SSL *s);
1190const char * SSL_get_cipher_list(SSL *s,int n); 1191const char * SSL_get_cipher_list(const SSL *s,int n);
1191char * SSL_get_shared_ciphers(SSL *s, char *buf, int len); 1192char * SSL_get_shared_ciphers(const SSL *s, char *buf, int len);
1192int SSL_get_read_ahead(SSL * s); 1193int SSL_get_read_ahead(const SSL * s);
1193int SSL_pending(SSL *s); 1194int SSL_pending(const SSL *s);
1194#ifndef OPENSSL_NO_SOCK 1195#ifndef OPENSSL_NO_SOCK
1195int SSL_set_fd(SSL *s, int fd); 1196int SSL_set_fd(SSL *s, int fd);
1196int SSL_set_rfd(SSL *s, int fd); 1197int SSL_set_rfd(SSL *s, int fd);
@@ -1198,14 +1199,14 @@ int SSL_set_wfd(SSL *s, int fd);
1198#endif 1199#endif
1199#ifndef OPENSSL_NO_BIO 1200#ifndef OPENSSL_NO_BIO
1200void SSL_set_bio(SSL *s, BIO *rbio,BIO *wbio); 1201void SSL_set_bio(SSL *s, BIO *rbio,BIO *wbio);
1201BIO * SSL_get_rbio(SSL *s); 1202BIO * SSL_get_rbio(const SSL *s);
1202BIO * SSL_get_wbio(SSL *s); 1203BIO * SSL_get_wbio(const SSL *s);
1203#endif 1204#endif
1204int SSL_set_cipher_list(SSL *s, const char *str); 1205int SSL_set_cipher_list(SSL *s, const char *str);
1205void SSL_set_read_ahead(SSL *s, int yes); 1206void SSL_set_read_ahead(SSL *s, int yes);
1206int SSL_get_verify_mode(SSL *s); 1207int SSL_get_verify_mode(const SSL *s);
1207int SSL_get_verify_depth(SSL *s); 1208int SSL_get_verify_depth(const SSL *s);
1208int (*SSL_get_verify_callback(SSL *s))(int,X509_STORE_CTX *); 1209int (*SSL_get_verify_callback(const SSL *s))(int,X509_STORE_CTX *);
1209void SSL_set_verify(SSL *s, int mode, 1210void SSL_set_verify(SSL *s, int mode,
1210 int (*callback)(int ok,X509_STORE_CTX *ctx)); 1211 int (*callback)(int ok,X509_STORE_CTX *ctx));
1211void SSL_set_verify_depth(SSL *s, int depth); 1212void SSL_set_verify_depth(SSL *s, int depth);
@@ -1243,20 +1244,20 @@ const char *SSL_state_string(const SSL *s);
1243const char *SSL_rstate_string(const SSL *s); 1244const char *SSL_rstate_string(const SSL *s);
1244const char *SSL_state_string_long(const SSL *s); 1245const char *SSL_state_string_long(const SSL *s);
1245const char *SSL_rstate_string_long(const SSL *s); 1246const char *SSL_rstate_string_long(const SSL *s);
1246long SSL_SESSION_get_time(SSL_SESSION *s); 1247long SSL_SESSION_get_time(const SSL_SESSION *s);
1247long SSL_SESSION_set_time(SSL_SESSION *s, long t); 1248long SSL_SESSION_set_time(SSL_SESSION *s, long t);
1248long SSL_SESSION_get_timeout(SSL_SESSION *s); 1249long SSL_SESSION_get_timeout(const SSL_SESSION *s);
1249long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); 1250long SSL_SESSION_set_timeout(SSL_SESSION *s, long t);
1250void SSL_copy_session_id(SSL *to,SSL *from); 1251void SSL_copy_session_id(SSL *to,const SSL *from);
1251 1252
1252SSL_SESSION *SSL_SESSION_new(void); 1253SSL_SESSION *SSL_SESSION_new(void);
1253unsigned long SSL_SESSION_hash(SSL_SESSION *a); 1254unsigned long SSL_SESSION_hash(const SSL_SESSION *a);
1254int SSL_SESSION_cmp(SSL_SESSION *a,SSL_SESSION *b); 1255int SSL_SESSION_cmp(const SSL_SESSION *a,const SSL_SESSION *b);
1255#ifndef OPENSSL_NO_FP_API 1256#ifndef OPENSSL_NO_FP_API
1256int SSL_SESSION_print_fp(FILE *fp,SSL_SESSION *ses); 1257int SSL_SESSION_print_fp(FILE *fp,const SSL_SESSION *ses);
1257#endif 1258#endif
1258#ifndef OPENSSL_NO_BIO 1259#ifndef OPENSSL_NO_BIO
1259int SSL_SESSION_print(BIO *fp,SSL_SESSION *ses); 1260int SSL_SESSION_print(BIO *fp,const SSL_SESSION *ses);
1260#endif 1261#endif
1261void SSL_SESSION_free(SSL_SESSION *ses); 1262void SSL_SESSION_free(SSL_SESSION *ses);
1262int i2d_SSL_SESSION(SSL_SESSION *in,unsigned char **pp); 1263int i2d_SSL_SESSION(SSL_SESSION *in,unsigned char **pp);
@@ -1267,17 +1268,18 @@ int SSL_CTX_set_generate_session_id(SSL_CTX *, GEN_SESSION_CB);
1267int SSL_set_generate_session_id(SSL *, GEN_SESSION_CB); 1268int SSL_set_generate_session_id(SSL *, GEN_SESSION_CB);
1268int SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id, 1269int SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id,
1269 unsigned int id_len); 1270 unsigned int id_len);
1270SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a,unsigned char **pp,long length); 1271SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a,const unsigned char * const *pp,
1272 long length);
1271 1273
1272#ifdef HEADER_X509_H 1274#ifdef HEADER_X509_H
1273X509 * SSL_get_peer_certificate(SSL *s); 1275X509 * SSL_get_peer_certificate(const SSL *s);
1274#endif 1276#endif
1275 1277
1276STACK_OF(X509) *SSL_get_peer_cert_chain(SSL *s); 1278STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *s);
1277 1279
1278int SSL_CTX_get_verify_mode(SSL_CTX *ctx); 1280int SSL_CTX_get_verify_mode(const SSL_CTX *ctx);
1279int SSL_CTX_get_verify_depth(SSL_CTX *ctx); 1281int SSL_CTX_get_verify_depth(const SSL_CTX *ctx);
1280int (*SSL_CTX_get_verify_callback(SSL_CTX *ctx))(int,X509_STORE_CTX *); 1282int (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx))(int,X509_STORE_CTX *);
1281void SSL_CTX_set_verify(SSL_CTX *ctx,int mode, 1283void SSL_CTX_set_verify(SSL_CTX *ctx,int mode,
1282 int (*callback)(int, X509_STORE_CTX *)); 1284 int (*callback)(int, X509_STORE_CTX *));
1283void SSL_CTX_set_verify_depth(SSL_CTX *ctx,int depth); 1285void SSL_CTX_set_verify_depth(SSL_CTX *ctx,int depth);
@@ -1295,8 +1297,8 @@ int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, unsigned char *d);
1295void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb); 1297void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb);
1296void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u); 1298void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u);
1297 1299
1298int SSL_CTX_check_private_key(SSL_CTX *ctx); 1300int SSL_CTX_check_private_key(const SSL_CTX *ctx);
1299int SSL_check_private_key(SSL *ctx); 1301int SSL_check_private_key(const SSL *ctx);
1300 1302
1301int SSL_CTX_set_session_id_context(SSL_CTX *ctx,const unsigned char *sid_ctx, 1303int SSL_CTX_set_session_id_context(SSL_CTX *ctx,const unsigned char *sid_ctx,
1302 unsigned int sid_ctx_len); 1304 unsigned int sid_ctx_len);
@@ -1321,8 +1323,8 @@ long SSL_callback_ctrl(SSL *, int, void (*)());
1321long SSL_CTX_ctrl(SSL_CTX *ctx,int cmd, long larg, void *parg); 1323long SSL_CTX_ctrl(SSL_CTX *ctx,int cmd, long larg, void *parg);
1322long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)()); 1324long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)());
1323 1325
1324int SSL_get_error(SSL *s,int ret_code); 1326int SSL_get_error(const SSL *s,int ret_code);
1325const char *SSL_get_version(SSL *s); 1327const char *SSL_get_version(const SSL *s);
1326 1328
1327/* This sets the 'default' SSL version that SSL_new() will create */ 1329/* This sets the 'default' SSL version that SSL_new() will create */
1328int SSL_CTX_set_ssl_version(SSL_CTX *ctx,SSL_METHOD *meth); 1330int SSL_CTX_set_ssl_version(SSL_CTX *ctx,SSL_METHOD *meth);
@@ -1343,7 +1345,7 @@ SSL_METHOD *TLSv1_method(void); /* TLSv1.0 */
1343SSL_METHOD *TLSv1_server_method(void); /* TLSv1.0 */ 1345SSL_METHOD *TLSv1_server_method(void); /* TLSv1.0 */
1344SSL_METHOD *TLSv1_client_method(void); /* TLSv1.0 */ 1346SSL_METHOD *TLSv1_client_method(void); /* TLSv1.0 */
1345 1347
1346STACK_OF(SSL_CIPHER) *SSL_get_ciphers(SSL *s); 1348STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s);
1347 1349
1348int SSL_do_handshake(SSL *s); 1350int SSL_do_handshake(SSL *s);
1349int SSL_renegotiate(SSL *s); 1351int SSL_renegotiate(SSL *s);
@@ -1359,15 +1361,15 @@ const char *SSL_alert_desc_string(int value);
1359 1361
1360void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list); 1362void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list);
1361void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list); 1363void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list);
1362STACK_OF(X509_NAME) *SSL_get_client_CA_list(SSL *s); 1364STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s);
1363STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(SSL_CTX *s); 1365STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *s);
1364int SSL_add_client_CA(SSL *ssl,X509 *x); 1366int SSL_add_client_CA(SSL *ssl,X509 *x);
1365int SSL_CTX_add_client_CA(SSL_CTX *ctx,X509 *x); 1367int SSL_CTX_add_client_CA(SSL_CTX *ctx,X509 *x);
1366 1368
1367void SSL_set_connect_state(SSL *s); 1369void SSL_set_connect_state(SSL *s);
1368void SSL_set_accept_state(SSL *s); 1370void SSL_set_accept_state(SSL *s);
1369 1371
1370long SSL_get_default_timeout(SSL *s); 1372long SSL_get_default_timeout(const SSL *s);
1371 1373
1372int SSL_library_init(void ); 1374int SSL_library_init(void );
1373 1375
@@ -1376,43 +1378,43 @@ STACK_OF(X509_NAME) *SSL_dup_CA_list(STACK_OF(X509_NAME) *sk);
1376 1378
1377SSL *SSL_dup(SSL *ssl); 1379SSL *SSL_dup(SSL *ssl);
1378 1380
1379X509 *SSL_get_certificate(SSL *ssl); 1381X509 *SSL_get_certificate(const SSL *ssl);
1380/* EVP_PKEY */ struct evp_pkey_st *SSL_get_privatekey(SSL *ssl); 1382/* EVP_PKEY */ struct evp_pkey_st *SSL_get_privatekey(SSL *ssl);
1381 1383
1382void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx,int mode); 1384void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx,int mode);
1383int SSL_CTX_get_quiet_shutdown(SSL_CTX *ctx); 1385int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx);
1384void SSL_set_quiet_shutdown(SSL *ssl,int mode); 1386void SSL_set_quiet_shutdown(SSL *ssl,int mode);
1385int SSL_get_quiet_shutdown(SSL *ssl); 1387int SSL_get_quiet_shutdown(const SSL *ssl);
1386void SSL_set_shutdown(SSL *ssl,int mode); 1388void SSL_set_shutdown(SSL *ssl,int mode);
1387int SSL_get_shutdown(SSL *ssl); 1389int SSL_get_shutdown(const SSL *ssl);
1388int SSL_version(SSL *ssl); 1390int SSL_version(const SSL *ssl);
1389int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx); 1391int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx);
1390int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, 1392int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile,
1391 const char *CApath); 1393 const char *CApath);
1392#define SSL_get0_session SSL_get_session /* just peek at pointer */ 1394#define SSL_get0_session SSL_get_session /* just peek at pointer */
1393SSL_SESSION *SSL_get_session(SSL *ssl); 1395SSL_SESSION *SSL_get_session(const SSL *ssl);
1394SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */ 1396SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */
1395SSL_CTX *SSL_get_SSL_CTX(SSL *ssl); 1397SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl);
1396void SSL_set_info_callback(SSL *ssl, 1398void SSL_set_info_callback(SSL *ssl,
1397 void (*cb)(const SSL *ssl,int type,int val)); 1399 void (*cb)(const SSL *ssl,int type,int val));
1398void (*SSL_get_info_callback(SSL *ssl))(const SSL *ssl,int type,int val); 1400void (*SSL_get_info_callback(const SSL *ssl))(const SSL *ssl,int type,int val);
1399int SSL_state(SSL *ssl); 1401int SSL_state(const SSL *ssl);
1400 1402
1401void SSL_set_verify_result(SSL *ssl,long v); 1403void SSL_set_verify_result(SSL *ssl,long v);
1402long SSL_get_verify_result(SSL *ssl); 1404long SSL_get_verify_result(const SSL *ssl);
1403 1405
1404int SSL_set_ex_data(SSL *ssl,int idx,void *data); 1406int SSL_set_ex_data(SSL *ssl,int idx,void *data);
1405void *SSL_get_ex_data(SSL *ssl,int idx); 1407void *SSL_get_ex_data(const SSL *ssl,int idx);
1406int SSL_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, 1408int SSL_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
1407 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); 1409 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
1408 1410
1409int SSL_SESSION_set_ex_data(SSL_SESSION *ss,int idx,void *data); 1411int SSL_SESSION_set_ex_data(SSL_SESSION *ss,int idx,void *data);
1410void *SSL_SESSION_get_ex_data(SSL_SESSION *ss,int idx); 1412void *SSL_SESSION_get_ex_data(const SSL_SESSION *ss,int idx);
1411int SSL_SESSION_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, 1413int SSL_SESSION_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
1412 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); 1414 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
1413 1415
1414int SSL_CTX_set_ex_data(SSL_CTX *ssl,int idx,void *data); 1416int SSL_CTX_set_ex_data(SSL_CTX *ssl,int idx,void *data);
1415void *SSL_CTX_get_ex_data(SSL_CTX *ssl,int idx); 1417void *SSL_CTX_get_ex_data(const SSL_CTX *ssl,int idx);
1416int SSL_CTX_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, 1418int SSL_CTX_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
1417 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); 1419 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
1418 1420
@@ -1603,6 +1605,7 @@ void ERR_load_SSL_strings(void);
1603#define SSL_F_SSL_SET_TRUST 228 1605#define SSL_F_SSL_SET_TRUST 228
1604#define SSL_F_SSL_SET_WFD 196 1606#define SSL_F_SSL_SET_WFD 196
1605#define SSL_F_SSL_SHUTDOWN 224 1607#define SSL_F_SSL_SHUTDOWN 224
1608#define SSL_F_SSL_UNDEFINED_CONST_FUNCTION 243
1606#define SSL_F_SSL_UNDEFINED_FUNCTION 197 1609#define SSL_F_SSL_UNDEFINED_FUNCTION 197
1607#define SSL_F_SSL_USE_CERTIFICATE 198 1610#define SSL_F_SSL_USE_CERTIFICATE 198
1608#define SSL_F_SSL_USE_CERTIFICATE_ASN1 199 1611#define SSL_F_SSL_USE_CERTIFICATE_ASN1 199
@@ -1741,6 +1744,7 @@ void ERR_load_SSL_strings(void);
1741#define SSL_R_NULL_SSL_CTX 195 1744#define SSL_R_NULL_SSL_CTX 195
1742#define SSL_R_NULL_SSL_METHOD_PASSED 196 1745#define SSL_R_NULL_SSL_METHOD_PASSED 196
1743#define SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED 197 1746#define SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED 197
1747#define SSL_R_ONLY_TLS_ALLOWED_IN_FIPS_MODE 1115
1744#define SSL_R_PACKET_LENGTH_TOO_LONG 198 1748#define SSL_R_PACKET_LENGTH_TOO_LONG 198
1745#define SSL_R_PATH_TOO_LONG 270 1749#define SSL_R_PATH_TOO_LONG 270
1746#define SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE 199 1750#define SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE 199
diff --git a/src/lib/libssl/src/ssl/ssl_asn1.c b/src/lib/libssl/src/ssl/ssl_asn1.c
index d8ff8fc4a3..4d5900ad2f 100644
--- a/src/lib/libssl/src/ssl/ssl_asn1.c
+++ b/src/lib/libssl/src/ssl/ssl_asn1.c
@@ -226,7 +226,7 @@ int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp)
226 M_ASN1_I2D_finish(); 226 M_ASN1_I2D_finish();
227 } 227 }
228 228
229SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, unsigned char **pp, 229SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char * const *pp,
230 long length) 230 long length)
231 { 231 {
232 int version,ssl_version=0,i; 232 int version,ssl_version=0,i;
@@ -266,7 +266,7 @@ SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, unsigned char **pp,
266 ((unsigned long)os.data[1]<< 8L)| 266 ((unsigned long)os.data[1]<< 8L)|
267 (unsigned long)os.data[2]; 267 (unsigned long)os.data[2];
268 } 268 }
269 else if ((ssl_version>>8) == 3) 269 else if ((ssl_version>>8) == SSL3_VERSION_MAJOR)
270 { 270 {
271 if (os.length != 2) 271 if (os.length != 2)
272 { 272 {
@@ -287,9 +287,9 @@ SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, unsigned char **pp,
287 ret->cipher_id=id; 287 ret->cipher_id=id;
288 288
289 M_ASN1_D2I_get(osp,d2i_ASN1_OCTET_STRING); 289 M_ASN1_D2I_get(osp,d2i_ASN1_OCTET_STRING);
290 if ((ssl_version>>8) == SSL3_VERSION) 290 if ((ssl_version>>8) == SSL3_VERSION_MAJOR)
291 i=SSL3_MAX_SSL_SESSION_ID_LENGTH; 291 i=SSL3_MAX_SSL_SESSION_ID_LENGTH;
292 else /* if (ssl_version == SSL2_VERSION) */ 292 else /* if (ssl_version == SSL2_VERSION_MAJOR) */
293 i=SSL2_MAX_SSL_SESSION_ID_LENGTH; 293 i=SSL2_MAX_SSL_SESSION_ID_LENGTH;
294 294
295 if (os.length > i) 295 if (os.length > i)
diff --git a/src/lib/libssl/src/ssl/ssl_cert.c b/src/lib/libssl/src/ssl/ssl_cert.c
index 2cfb615878..b8b9bc2390 100644
--- a/src/lib/libssl/src/ssl/ssl_cert.c
+++ b/src/lib/libssl/src/ssl/ssl_cert.c
@@ -117,6 +117,7 @@
117 117
118#if defined(WIN32) 118#if defined(WIN32)
119#include <windows.h> 119#include <windows.h>
120#include <tchar.h>
120#endif 121#endif
121 122
122#ifdef NeXT 123#ifdef NeXT
@@ -129,6 +130,7 @@
129#include <openssl/pem.h> 130#include <openssl/pem.h>
130#include <openssl/x509v3.h> 131#include <openssl/x509v3.h>
131#include "ssl_locl.h" 132#include "ssl_locl.h"
133#include <openssl/fips.h>
132 134
133int SSL_get_ex_data_X509_STORE_CTX_idx(void) 135int SSL_get_ex_data_X509_STORE_CTX_idx(void)
134 { 136 {
@@ -542,12 +544,12 @@ void SSL_CTX_set_client_CA_list(SSL_CTX *ctx,STACK_OF(X509_NAME) *name_list)
542 set_client_CA_list(&(ctx->client_CA),name_list); 544 set_client_CA_list(&(ctx->client_CA),name_list);
543 } 545 }
544 546
545STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(SSL_CTX *ctx) 547STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *ctx)
546 { 548 {
547 return(ctx->client_CA); 549 return(ctx->client_CA);
548 } 550 }
549 551
550STACK_OF(X509_NAME) *SSL_get_client_CA_list(SSL *s) 552STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s)
551 { 553 {
552 if (s->type == SSL_ST_CONNECT) 554 if (s->type == SSL_ST_CONNECT)
553 { /* we are in the client */ 555 { /* we are in the client */
@@ -783,36 +785,54 @@ err:
783 785
784#else /* OPENSSL_SYS_WIN32 */ 786#else /* OPENSSL_SYS_WIN32 */
785 787
788#if defined(_WIN32_WCE)
789# ifndef UNICODE
790# error "WinCE comes in UNICODE flavor only..."
791# endif
792# if _WIN32_WCE<101 && !defined(OPENSSL_NO_MULTIBYTE)
793# define OPENSSL_NO_MULTIBYTE
794# endif
795# ifndef FindFirstFile
796# define FindFirstFile FindFirstFileW
797# endif
798# ifndef FindNextFile
799# define FindNextFile FindNextFileW
800# endif
801#endif
802
786int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stack, 803int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stack,
787 const char *dir) 804 const char *dir)
788 { 805 {
789 WIN32_FIND_DATA FindFileData; 806 WIN32_FIND_DATA FindFileData;
790 HANDLE hFind; 807 HANDLE hFind;
791 int ret = 0; 808 int ret = 0;
792#ifdef OPENSSL_SYS_WINCE 809 TCHAR *wdir = NULL;
793 WCHAR* wdir = NULL; 810 size_t i,len_0 = strlen(dir)+1; /* len_0 accounts for trailing 0 */
794#endif 811 char buf[1024],*slash;
812
813 if (len_0 > (sizeof(buf)-14)) /* 14 is just some value... */
814 {
815 SSLerr(SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK,SSL_R_PATH_TOO_LONG);
816 return ret;
817 }
795 818
796 CRYPTO_w_lock(CRYPTO_LOCK_READDIR); 819 CRYPTO_w_lock(CRYPTO_LOCK_READDIR);
797 820
798#ifdef OPENSSL_SYS_WINCE 821 if (sizeof(TCHAR) != sizeof(char))
799 /* convert strings to UNICODE */ 822 {
800 { 823 wdir = (TCHAR *)malloc(len_0*sizeof(TCHAR));
801 BOOL result = FALSE;
802 int i;
803 wdir = malloc((strlen(dir)+1)*2);
804 if (wdir == NULL) 824 if (wdir == NULL)
805 goto err_noclose; 825 goto err_noclose;
806 for (i=0; i<(int)strlen(dir)+1; i++) 826#ifndef OPENSSL_NO_MULTIBYTE
807 wdir[i] = (short)dir[i]; 827 if (!MultiByteToWideChar(CP_ACP,0,dir,len_0,
808 } 828 (WCHAR *)wdir,len_0))
809#endif 829#endif
830 for (i=0;i<len_0;i++) wdir[i]=(TCHAR)dir[i];
831
832 hFind = FindFirstFile(wdir, &FindFileData);
833 }
834 else hFind = FindFirstFile((const TCHAR *)dir, &FindFileData);
810 835
811#ifdef OPENSSL_SYS_WINCE
812 hFind = FindFirstFile(wdir, &FindFileData);
813#else
814 hFind = FindFirstFile(dir, &FindFileData);
815#endif
816 /* Note that a side effect is that the CAs will be sorted by name */ 836 /* Note that a side effect is that the CAs will be sorted by name */
817 if(hFind == INVALID_HANDLE_VALUE) 837 if(hFind == INVALID_HANDLE_VALUE)
818 { 838 {
@@ -821,25 +841,34 @@ int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stack,
821 SSLerr(SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK, ERR_R_SYS_LIB); 841 SSLerr(SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK, ERR_R_SYS_LIB);
822 goto err_noclose; 842 goto err_noclose;
823 } 843 }
824 844
825 do 845 strncpy(buf,dir,sizeof(buf)); /* strcpy is safe too... */
826 { 846 buf[len_0-1]='/'; /* no trailing zero! */
827 char buf[1024]; 847 slash=buf+len_0;
828 int r; 848
829 849 do {
830#ifdef OPENSSL_SYS_WINCE 850 const TCHAR *fnam=FindFileData.cFileName;
831 if(strlen(dir)+_tcslen(FindFileData.cFileName)+2 > sizeof buf) 851 size_t flen_0=_tcslen(fnam)+1;
832#else 852
833 if(strlen(dir)+strlen(FindFileData.cFileName)+2 > sizeof buf) 853 if (flen_0 > (sizeof(buf)-len_0))
834#endif
835 { 854 {
836 SSLerr(SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK,SSL_R_PATH_TOO_LONG); 855 SSLerr(SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK,SSL_R_PATH_TOO_LONG);
837 goto err; 856 goto err;
838 } 857 }
839 858 /* else strcpy would be safe too... */
840 r = BIO_snprintf(buf,sizeof buf,"%s/%s",dir,FindFileData.cFileName); 859
841 if (r <= 0 || r >= sizeof buf) 860 if (sizeof(TCHAR) != sizeof(char))
842 goto err; 861 {
862#ifndef OPENSSL_NO_MULTIBYTE
863 if (!WideCharToMultiByte(CP_ACP,0,
864 (WCHAR *)fnam,flen_0,
865 slash,sizeof(buf)-len_0,
866 NULL,0))
867#endif
868 for (i=0;i<flen_0;i++) slash[i]=(char)fnam[i];
869 }
870 else strncpy(slash,(const char *)fnam,sizeof(buf)-len_0);
871
843 if(!SSL_add_file_cert_subjects_to_stack(stack,buf)) 872 if(!SSL_add_file_cert_subjects_to_stack(stack,buf))
844 goto err; 873 goto err;
845 } 874 }
@@ -849,10 +878,9 @@ int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stack,
849err: 878err:
850 FindClose(hFind); 879 FindClose(hFind);
851err_noclose: 880err_noclose:
852#ifdef OPENSSL_SYS_WINCE
853 if (wdir != NULL) 881 if (wdir != NULL)
854 free(wdir); 882 free(wdir);
855#endif 883
856 CRYPTO_w_unlock(CRYPTO_LOCK_READDIR); 884 CRYPTO_w_unlock(CRYPTO_LOCK_READDIR);
857 return ret; 885 return ret;
858 } 886 }
diff --git a/src/lib/libssl/src/ssl/ssl_ciph.c b/src/lib/libssl/src/ssl/ssl_ciph.c
index 44c503eb04..b68ed81e52 100644
--- a/src/lib/libssl/src/ssl/ssl_ciph.c
+++ b/src/lib/libssl/src/ssl/ssl_ciph.c
@@ -59,6 +59,7 @@
59#include <stdio.h> 59#include <stdio.h>
60#include <openssl/objects.h> 60#include <openssl/objects.h>
61#include <openssl/comp.h> 61#include <openssl/comp.h>
62#include <openssl/fips.h>
62#include "ssl_locl.h" 63#include "ssl_locl.h"
63 64
64#define SSL_ENC_DES_IDX 0 65#define SSL_ENC_DES_IDX 0
@@ -153,13 +154,13 @@ static const SSL_CIPHER cipher_aliases[]={
153 {0,SSL_TXT_LOW, 0, 0, SSL_LOW, 0,0,0,0,SSL_STRONG_MASK}, 154 {0,SSL_TXT_LOW, 0, 0, SSL_LOW, 0,0,0,0,SSL_STRONG_MASK},
154 {0,SSL_TXT_MEDIUM,0, 0,SSL_MEDIUM, 0,0,0,0,SSL_STRONG_MASK}, 155 {0,SSL_TXT_MEDIUM,0, 0,SSL_MEDIUM, 0,0,0,0,SSL_STRONG_MASK},
155 {0,SSL_TXT_HIGH, 0, 0, SSL_HIGH, 0,0,0,0,SSL_STRONG_MASK}, 156 {0,SSL_TXT_HIGH, 0, 0, SSL_HIGH, 0,0,0,0,SSL_STRONG_MASK},
157 {0,SSL_TXT_FIPS, 0, 0, SSL_FIPS, 0,0,0,0,SSL_FIPS|SSL_STRONG_NONE},
156 }; 158 };
157 159
158static int init_ciphers=1; 160static int init_ciphers=1;
159 161
160static void load_ciphers(void) 162static void load_ciphers(void)
161 { 163 {
162 init_ciphers=0;
163 ssl_cipher_methods[SSL_ENC_DES_IDX]= 164 ssl_cipher_methods[SSL_ENC_DES_IDX]=
164 EVP_get_cipherbyname(SN_des_cbc); 165 EVP_get_cipherbyname(SN_des_cbc);
165 ssl_cipher_methods[SSL_ENC_3DES_IDX]= 166 ssl_cipher_methods[SSL_ENC_3DES_IDX]=
@@ -183,9 +184,10 @@ static void load_ciphers(void)
183 EVP_get_digestbyname(SN_md5); 184 EVP_get_digestbyname(SN_md5);
184 ssl_digest_methods[SSL_MD_SHA1_IDX]= 185 ssl_digest_methods[SSL_MD_SHA1_IDX]=
185 EVP_get_digestbyname(SN_sha1); 186 EVP_get_digestbyname(SN_sha1);
187 init_ciphers=0;
186 } 188 }
187 189
188int ssl_cipher_get_evp(SSL_SESSION *s, const EVP_CIPHER **enc, 190int ssl_cipher_get_evp(const SSL_SESSION *s, const EVP_CIPHER **enc,
189 const EVP_MD **md, SSL_COMP **comp) 191 const EVP_MD **md, SSL_COMP **comp)
190 { 192 {
191 int i; 193 int i;
@@ -359,7 +361,12 @@ static void ssl_cipher_collect_ciphers(const SSL_METHOD *ssl_method,
359 { 361 {
360 c = ssl_method->get_cipher(i); 362 c = ssl_method->get_cipher(i);
361 /* drop those that use any of that is not available */ 363 /* drop those that use any of that is not available */
364#ifdef OPENSSL_FIPS
365 if ((c != NULL) && c->valid && !(c->algorithms & mask)
366 && (!FIPS_mode() || (c->algo_strength & SSL_FIPS)))
367#else
362 if ((c != NULL) && c->valid && !(c->algorithms & mask)) 368 if ((c != NULL) && c->valid && !(c->algorithms & mask))
369#endif
363 { 370 {
364 co_list[co_list_num].cipher = c; 371 co_list[co_list_num].cipher = c;
365 co_list[co_list_num].next = NULL; 372 co_list[co_list_num].next = NULL;
@@ -854,7 +861,11 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(const SSL_METHOD *ssl_method,
854 */ 861 */
855 for (curr = head; curr != NULL; curr = curr->next) 862 for (curr = head; curr != NULL; curr = curr->next)
856 { 863 {
864#ifdef OPENSSL_FIPS
865 if (curr->active && (!FIPS_mode() || curr->cipher->algo_strength & SSL_FIPS))
866#else
857 if (curr->active) 867 if (curr->active)
868#endif
858 { 869 {
859 sk_SSL_CIPHER_push(cipherstack, curr->cipher); 870 sk_SSL_CIPHER_push(cipherstack, curr->cipher);
860#ifdef CIPHER_DEBUG 871#ifdef CIPHER_DEBUG
@@ -1054,7 +1065,7 @@ char *SSL_CIPHER_description(SSL_CIPHER *cipher, char *buf, int len)
1054 return(buf); 1065 return(buf);
1055 } 1066 }
1056 1067
1057char *SSL_CIPHER_get_version(SSL_CIPHER *c) 1068char *SSL_CIPHER_get_version(const SSL_CIPHER *c)
1058 { 1069 {
1059 int i; 1070 int i;
1060 1071
@@ -1069,7 +1080,7 @@ char *SSL_CIPHER_get_version(SSL_CIPHER *c)
1069 } 1080 }
1070 1081
1071/* return the actual cipher being used */ 1082/* return the actual cipher being used */
1072const char *SSL_CIPHER_get_name(SSL_CIPHER *c) 1083const char *SSL_CIPHER_get_name(const SSL_CIPHER *c)
1073 { 1084 {
1074 if (c != NULL) 1085 if (c != NULL)
1075 return(c->name); 1086 return(c->name);
@@ -1077,7 +1088,7 @@ const char *SSL_CIPHER_get_name(SSL_CIPHER *c)
1077 } 1088 }
1078 1089
1079/* number of bits for symmetric cipher */ 1090/* number of bits for symmetric cipher */
1080int SSL_CIPHER_get_bits(SSL_CIPHER *c, int *alg_bits) 1091int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits)
1081 { 1092 {
1082 int ret=0; 1093 int ret=0;
1083 1094
diff --git a/src/lib/libssl/src/ssl/ssl_err.c b/src/lib/libssl/src/ssl/ssl_err.c
index d2cb181503..29b8ff4788 100644
--- a/src/lib/libssl/src/ssl/ssl_err.c
+++ b/src/lib/libssl/src/ssl/ssl_err.c
@@ -1,6 +1,6 @@
1/* ssl/ssl_err.c */ 1/* ssl/ssl_err.c */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 1999-2002 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
@@ -193,6 +193,7 @@ static ERR_STRING_DATA SSL_str_functs[]=
193{ERR_PACK(0,SSL_F_SSL_SET_TRUST,0), "SSL_set_trust"}, 193{ERR_PACK(0,SSL_F_SSL_SET_TRUST,0), "SSL_set_trust"},
194{ERR_PACK(0,SSL_F_SSL_SET_WFD,0), "SSL_set_wfd"}, 194{ERR_PACK(0,SSL_F_SSL_SET_WFD,0), "SSL_set_wfd"},
195{ERR_PACK(0,SSL_F_SSL_SHUTDOWN,0), "SSL_shutdown"}, 195{ERR_PACK(0,SSL_F_SSL_SHUTDOWN,0), "SSL_shutdown"},
196{ERR_PACK(0,SSL_F_SSL_UNDEFINED_CONST_FUNCTION,0), "SSL_UNDEFINED_CONST_FUNCTION"},
196{ERR_PACK(0,SSL_F_SSL_UNDEFINED_FUNCTION,0), "SSL_UNDEFINED_FUNCTION"}, 197{ERR_PACK(0,SSL_F_SSL_UNDEFINED_FUNCTION,0), "SSL_UNDEFINED_FUNCTION"},
197{ERR_PACK(0,SSL_F_SSL_USE_CERTIFICATE,0), "SSL_use_certificate"}, 198{ERR_PACK(0,SSL_F_SSL_USE_CERTIFICATE,0), "SSL_use_certificate"},
198{ERR_PACK(0,SSL_F_SSL_USE_CERTIFICATE_ASN1,0), "SSL_use_certificate_ASN1"}, 199{ERR_PACK(0,SSL_F_SSL_USE_CERTIFICATE_ASN1,0), "SSL_use_certificate_ASN1"},
@@ -334,6 +335,7 @@ static ERR_STRING_DATA SSL_str_reasons[]=
334{SSL_R_NULL_SSL_CTX ,"null ssl ctx"}, 335{SSL_R_NULL_SSL_CTX ,"null ssl ctx"},
335{SSL_R_NULL_SSL_METHOD_PASSED ,"null ssl method passed"}, 336{SSL_R_NULL_SSL_METHOD_PASSED ,"null ssl method passed"},
336{SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED ,"old session cipher not returned"}, 337{SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED ,"old session cipher not returned"},
338{SSL_R_ONLY_TLS_ALLOWED_IN_FIPS_MODE ,"only tls allowed in fips mode"},
337{SSL_R_PACKET_LENGTH_TOO_LONG ,"packet length too long"}, 339{SSL_R_PACKET_LENGTH_TOO_LONG ,"packet length too long"},
338{SSL_R_PATH_TOO_LONG ,"path too long"}, 340{SSL_R_PATH_TOO_LONG ,"path too long"},
339{SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE ,"peer did not return a certificate"}, 341{SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE ,"peer did not return a certificate"},
diff --git a/src/lib/libssl/src/ssl/ssl_lib.c b/src/lib/libssl/src/ssl/ssl_lib.c
index ee9a82d586..631229558f 100644
--- a/src/lib/libssl/src/ssl/ssl_lib.c
+++ b/src/lib/libssl/src/ssl/ssl_lib.c
@@ -121,6 +121,7 @@
121#include <openssl/objects.h> 121#include <openssl/objects.h>
122#include <openssl/lhash.h> 122#include <openssl/lhash.h>
123#include <openssl/x509v3.h> 123#include <openssl/x509v3.h>
124#include <openssl/fips.h>
124 125
125const char *SSL_version_str=OPENSSL_VERSION_TEXT; 126const char *SSL_version_str=OPENSSL_VERSION_TEXT;
126 127
@@ -500,18 +501,18 @@ void SSL_set_bio(SSL *s,BIO *rbio,BIO *wbio)
500 s->wbio=wbio; 501 s->wbio=wbio;
501 } 502 }
502 503
503BIO *SSL_get_rbio(SSL *s) 504BIO *SSL_get_rbio(const SSL *s)
504 { return(s->rbio); } 505 { return(s->rbio); }
505 506
506BIO *SSL_get_wbio(SSL *s) 507BIO *SSL_get_wbio(const SSL *s)
507 { return(s->wbio); } 508 { return(s->wbio); }
508 509
509int SSL_get_fd(SSL *s) 510int SSL_get_fd(const SSL *s)
510 { 511 {
511 return(SSL_get_rfd(s)); 512 return(SSL_get_rfd(s));
512 } 513 }
513 514
514int SSL_get_rfd(SSL *s) 515int SSL_get_rfd(const SSL *s)
515 { 516 {
516 int ret= -1; 517 int ret= -1;
517 BIO *b,*r; 518 BIO *b,*r;
@@ -523,7 +524,7 @@ int SSL_get_rfd(SSL *s)
523 return(ret); 524 return(ret);
524 } 525 }
525 526
526int SSL_get_wfd(SSL *s) 527int SSL_get_wfd(const SSL *s)
527 { 528 {
528 int ret= -1; 529 int ret= -1;
529 BIO *b,*r; 530 BIO *b,*r;
@@ -605,7 +606,7 @@ err:
605 606
606 607
607/* return length of latest Finished message we sent, copy to 'buf' */ 608/* return length of latest Finished message we sent, copy to 'buf' */
608size_t SSL_get_finished(SSL *s, void *buf, size_t count) 609size_t SSL_get_finished(const SSL *s, void *buf, size_t count)
609 { 610 {
610 size_t ret = 0; 611 size_t ret = 0;
611 612
@@ -620,7 +621,7 @@ size_t SSL_get_finished(SSL *s, void *buf, size_t count)
620 } 621 }
621 622
622/* return length of latest Finished message we expected, copy to 'buf' */ 623/* return length of latest Finished message we expected, copy to 'buf' */
623size_t SSL_get_peer_finished(SSL *s, void *buf, size_t count) 624size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count)
624 { 625 {
625 size_t ret = 0; 626 size_t ret = 0;
626 627
@@ -635,32 +636,32 @@ size_t SSL_get_peer_finished(SSL *s, void *buf, size_t count)
635 } 636 }
636 637
637 638
638int SSL_get_verify_mode(SSL *s) 639int SSL_get_verify_mode(const SSL *s)
639 { 640 {
640 return(s->verify_mode); 641 return(s->verify_mode);
641 } 642 }
642 643
643int SSL_get_verify_depth(SSL *s) 644int SSL_get_verify_depth(const SSL *s)
644 { 645 {
645 return(s->verify_depth); 646 return(s->verify_depth);
646 } 647 }
647 648
648int (*SSL_get_verify_callback(SSL *s))(int,X509_STORE_CTX *) 649int (*SSL_get_verify_callback(const SSL *s))(int,X509_STORE_CTX *)
649 { 650 {
650 return(s->verify_callback); 651 return(s->verify_callback);
651 } 652 }
652 653
653int SSL_CTX_get_verify_mode(SSL_CTX *ctx) 654int SSL_CTX_get_verify_mode(const SSL_CTX *ctx)
654 { 655 {
655 return(ctx->verify_mode); 656 return(ctx->verify_mode);
656 } 657 }
657 658
658int SSL_CTX_get_verify_depth(SSL_CTX *ctx) 659int SSL_CTX_get_verify_depth(const SSL_CTX *ctx)
659 { 660 {
660 return(ctx->verify_depth); 661 return(ctx->verify_depth);
661 } 662 }
662 663
663int (*SSL_CTX_get_verify_callback(SSL_CTX *ctx))(int,X509_STORE_CTX *) 664int (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx))(int,X509_STORE_CTX *)
664 { 665 {
665 return(ctx->default_verify_callback); 666 return(ctx->default_verify_callback);
666 } 667 }
@@ -683,12 +684,12 @@ void SSL_set_read_ahead(SSL *s,int yes)
683 s->read_ahead=yes; 684 s->read_ahead=yes;
684 } 685 }
685 686
686int SSL_get_read_ahead(SSL *s) 687int SSL_get_read_ahead(const SSL *s)
687 { 688 {
688 return(s->read_ahead); 689 return(s->read_ahead);
689 } 690 }
690 691
691int SSL_pending(SSL *s) 692int SSL_pending(const SSL *s)
692 { 693 {
693 /* SSL_pending cannot work properly if read-ahead is enabled 694 /* SSL_pending cannot work properly if read-ahead is enabled
694 * (SSL_[CTX_]ctrl(..., SSL_CTRL_SET_READ_AHEAD, 1, NULL)), 695 * (SSL_[CTX_]ctrl(..., SSL_CTRL_SET_READ_AHEAD, 1, NULL)),
@@ -700,7 +701,7 @@ int SSL_pending(SSL *s)
700 return(s->method->ssl_pending(s)); 701 return(s->method->ssl_pending(s));
701 } 702 }
702 703
703X509 *SSL_get_peer_certificate(SSL *s) 704X509 *SSL_get_peer_certificate(const SSL *s)
704 { 705 {
705 X509 *r; 706 X509 *r;
706 707
@@ -716,7 +717,7 @@ X509 *SSL_get_peer_certificate(SSL *s)
716 return(r); 717 return(r);
717 } 718 }
718 719
719STACK_OF(X509) *SSL_get_peer_cert_chain(SSL *s) 720STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *s)
720 { 721 {
721 STACK_OF(X509) *r; 722 STACK_OF(X509) *r;
722 723
@@ -733,7 +734,7 @@ STACK_OF(X509) *SSL_get_peer_cert_chain(SSL *s)
733 734
734/* Now in theory, since the calling process own 't' it should be safe to 735/* Now in theory, since the calling process own 't' it should be safe to
735 * modify. We need to be able to read f without being hassled */ 736 * modify. We need to be able to read f without being hassled */
736void SSL_copy_session_id(SSL *t,SSL *f) 737void SSL_copy_session_id(SSL *t,const SSL *f)
737 { 738 {
738 CERT *tmp; 739 CERT *tmp;
739 740
@@ -762,7 +763,7 @@ void SSL_copy_session_id(SSL *t,SSL *f)
762 } 763 }
763 764
764/* Fix this so it checks all the valid key/cert options */ 765/* Fix this so it checks all the valid key/cert options */
765int SSL_CTX_check_private_key(SSL_CTX *ctx) 766int SSL_CTX_check_private_key(const SSL_CTX *ctx)
766 { 767 {
767 if ( (ctx == NULL) || 768 if ( (ctx == NULL) ||
768 (ctx->cert == NULL) || 769 (ctx->cert == NULL) ||
@@ -780,7 +781,7 @@ int SSL_CTX_check_private_key(SSL_CTX *ctx)
780 } 781 }
781 782
782/* Fix this function so that it takes an optional type parameter */ 783/* Fix this function so that it takes an optional type parameter */
783int SSL_check_private_key(SSL *ssl) 784int SSL_check_private_key(const SSL *ssl)
784 { 785 {
785 if (ssl == NULL) 786 if (ssl == NULL)
786 { 787 {
@@ -824,7 +825,7 @@ int SSL_connect(SSL *s)
824 return(s->method->ssl_connect(s)); 825 return(s->method->ssl_connect(s));
825 } 826 }
826 827
827long SSL_get_default_timeout(SSL *s) 828long SSL_get_default_timeout(const SSL *s)
828 { 829 {
829 return(s->method->get_timeout()); 830 return(s->method->get_timeout());
830 } 831 }
@@ -1071,7 +1072,7 @@ int ssl_cipher_ptr_id_cmp(const SSL_CIPHER * const *ap,
1071 1072
1072/** return a STACK of the ciphers available for the SSL and in order of 1073/** return a STACK of the ciphers available for the SSL and in order of
1073 * preference */ 1074 * preference */
1074STACK_OF(SSL_CIPHER) *SSL_get_ciphers(SSL *s) 1075STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s)
1075 { 1076 {
1076 if (s != NULL) 1077 if (s != NULL)
1077 { 1078 {
@@ -1108,7 +1109,7 @@ STACK_OF(SSL_CIPHER) *ssl_get_ciphers_by_id(SSL *s)
1108 } 1109 }
1109 1110
1110/** The old interface to get the same thing as SSL_get_ciphers() */ 1111/** The old interface to get the same thing as SSL_get_ciphers() */
1111const char *SSL_get_cipher_list(SSL *s,int n) 1112const char *SSL_get_cipher_list(const SSL *s,int n)
1112 { 1113 {
1113 SSL_CIPHER *c; 1114 SSL_CIPHER *c;
1114 STACK_OF(SSL_CIPHER) *sk; 1115 STACK_OF(SSL_CIPHER) *sk;
@@ -1145,7 +1146,7 @@ int SSL_set_cipher_list(SSL *s,const char *str)
1145 } 1146 }
1146 1147
1147/* works well for SSLv2, not so good for SSLv3 */ 1148/* works well for SSLv2, not so good for SSLv3 */
1148char *SSL_get_shared_ciphers(SSL *s,char *buf,int len) 1149char *SSL_get_shared_ciphers(const SSL *s,char *buf,int len)
1149 { 1150 {
1150 char *p; 1151 char *p;
1151 const char *cp; 1152 const char *cp;
@@ -1249,7 +1250,7 @@ err:
1249 return(NULL); 1250 return(NULL);
1250 } 1251 }
1251 1252
1252unsigned long SSL_SESSION_hash(SSL_SESSION *a) 1253unsigned long SSL_SESSION_hash(const SSL_SESSION *a)
1253 { 1254 {
1254 unsigned long l; 1255 unsigned long l;
1255 1256
@@ -1266,7 +1267,7 @@ unsigned long SSL_SESSION_hash(SSL_SESSION *a)
1266 * SSL_CTX_has_matching_session_id() is checked accordingly. It relies on being 1267 * SSL_CTX_has_matching_session_id() is checked accordingly. It relies on being
1267 * able to construct an SSL_SESSION that will collide with any existing session 1268 * able to construct an SSL_SESSION that will collide with any existing session
1268 * with a matching session ID. */ 1269 * with a matching session ID. */
1269int SSL_SESSION_cmp(SSL_SESSION *a,SSL_SESSION *b) 1270int SSL_SESSION_cmp(const SSL_SESSION *a,const SSL_SESSION *b)
1270 { 1271 {
1271 if (a->ssl_version != b->ssl_version) 1272 if (a->ssl_version != b->ssl_version)
1272 return(1); 1273 return(1);
@@ -1292,6 +1293,14 @@ SSL_CTX *SSL_CTX_new(SSL_METHOD *meth)
1292 return(NULL); 1293 return(NULL);
1293 } 1294 }
1294 1295
1296#ifdef OPENSSL_FIPS
1297 if (FIPS_mode() && (meth->version < TLS1_VERSION))
1298 {
1299 SSLerr(SSL_F_SSL_CTX_NEW, SSL_R_ONLY_TLS_ALLOWED_IN_FIPS_MODE);
1300 return NULL;
1301 }
1302#endif
1303
1295 if (SSL_get_ex_data_X509_STORE_CTX_idx() < 0) 1304 if (SSL_get_ex_data_X509_STORE_CTX_idx() < 0)
1296 { 1305 {
1297 SSLerr(SSL_F_SSL_CTX_NEW,SSL_R_X509_VERIFICATION_SETUP_PROBLEMS); 1306 SSLerr(SSL_F_SSL_CTX_NEW,SSL_R_X509_VERIFICATION_SETUP_PROBLEMS);
@@ -1722,7 +1731,7 @@ int SSL_set_ssl_method(SSL *s,SSL_METHOD *meth)
1722 return(ret); 1731 return(ret);
1723 } 1732 }
1724 1733
1725int SSL_get_error(SSL *s,int i) 1734int SSL_get_error(const SSL *s,int i)
1726 { 1735 {
1727 int reason; 1736 int reason;
1728 unsigned long l; 1737 unsigned long l;
@@ -1856,13 +1865,19 @@ int ssl_undefined_function(SSL *s)
1856 return(0); 1865 return(0);
1857 } 1866 }
1858 1867
1868int ssl_undefined_const_function(const SSL *s)
1869 {
1870 SSLerr(SSL_F_SSL_UNDEFINED_CONST_FUNCTION,ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
1871 return(0);
1872 }
1873
1859SSL_METHOD *ssl_bad_method(int ver) 1874SSL_METHOD *ssl_bad_method(int ver)
1860 { 1875 {
1861 SSLerr(SSL_F_SSL_BAD_METHOD,ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); 1876 SSLerr(SSL_F_SSL_BAD_METHOD,ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
1862 return(NULL); 1877 return(NULL);
1863 } 1878 }
1864 1879
1865const char *SSL_get_version(SSL *s) 1880const char *SSL_get_version(const SSL *s)
1866 { 1881 {
1867 if (s->version == TLS1_VERSION) 1882 if (s->version == TLS1_VERSION)
1868 return("TLSv1"); 1883 return("TLSv1");
@@ -2031,7 +2046,7 @@ void ssl_clear_cipher_ctx(SSL *s)
2031 } 2046 }
2032 2047
2033/* Fix this function so that it takes an optional type parameter */ 2048/* Fix this function so that it takes an optional type parameter */
2034X509 *SSL_get_certificate(SSL *s) 2049X509 *SSL_get_certificate(const SSL *s)
2035 { 2050 {
2036 if (s->cert != NULL) 2051 if (s->cert != NULL)
2037 return(s->cert->key->x509); 2052 return(s->cert->key->x509);
@@ -2048,7 +2063,7 @@ EVP_PKEY *SSL_get_privatekey(SSL *s)
2048 return(NULL); 2063 return(NULL);
2049 } 2064 }
2050 2065
2051SSL_CIPHER *SSL_get_current_cipher(SSL *s) 2066SSL_CIPHER *SSL_get_current_cipher(const SSL *s)
2052 { 2067 {
2053 if ((s->session != NULL) && (s->session->cipher != NULL)) 2068 if ((s->session != NULL) && (s->session->cipher != NULL))
2054 return(s->session->cipher); 2069 return(s->session->cipher);
@@ -2112,7 +2127,7 @@ void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx,int mode)
2112 ctx->quiet_shutdown=mode; 2127 ctx->quiet_shutdown=mode;
2113 } 2128 }
2114 2129
2115int SSL_CTX_get_quiet_shutdown(SSL_CTX *ctx) 2130int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx)
2116 { 2131 {
2117 return(ctx->quiet_shutdown); 2132 return(ctx->quiet_shutdown);
2118 } 2133 }
@@ -2122,7 +2137,7 @@ void SSL_set_quiet_shutdown(SSL *s,int mode)
2122 s->quiet_shutdown=mode; 2137 s->quiet_shutdown=mode;
2123 } 2138 }
2124 2139
2125int SSL_get_quiet_shutdown(SSL *s) 2140int SSL_get_quiet_shutdown(const SSL *s)
2126 { 2141 {
2127 return(s->quiet_shutdown); 2142 return(s->quiet_shutdown);
2128 } 2143 }
@@ -2132,17 +2147,17 @@ void SSL_set_shutdown(SSL *s,int mode)
2132 s->shutdown=mode; 2147 s->shutdown=mode;
2133 } 2148 }
2134 2149
2135int SSL_get_shutdown(SSL *s) 2150int SSL_get_shutdown(const SSL *s)
2136 { 2151 {
2137 return(s->shutdown); 2152 return(s->shutdown);
2138 } 2153 }
2139 2154
2140int SSL_version(SSL *s) 2155int SSL_version(const SSL *s)
2141 { 2156 {
2142 return(s->version); 2157 return(s->version);
2143 } 2158 }
2144 2159
2145SSL_CTX *SSL_get_SSL_CTX(SSL *ssl) 2160SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl)
2146 { 2161 {
2147 return(ssl->ctx); 2162 return(ssl->ctx);
2148 } 2163 }
@@ -2156,7 +2171,9 @@ int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx)
2156int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, 2171int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile,
2157 const char *CApath) 2172 const char *CApath)
2158 { 2173 {
2159 return(X509_STORE_load_locations(ctx->cert_store,CAfile,CApath)); 2174 int r;
2175 r=X509_STORE_load_locations(ctx->cert_store,CAfile,CApath);
2176 return r;
2160 } 2177 }
2161#endif 2178#endif
2162 2179
@@ -2166,12 +2183,12 @@ void SSL_set_info_callback(SSL *ssl,
2166 ssl->info_callback=cb; 2183 ssl->info_callback=cb;
2167 } 2184 }
2168 2185
2169void (*SSL_get_info_callback(SSL *ssl))(const SSL *ssl,int type,int val) 2186void (*SSL_get_info_callback(const SSL *ssl))(const SSL *ssl,int type,int val)
2170 { 2187 {
2171 return ssl->info_callback; 2188 return ssl->info_callback;
2172 } 2189 }
2173 2190
2174int SSL_state(SSL *ssl) 2191int SSL_state(const SSL *ssl)
2175 { 2192 {
2176 return(ssl->state); 2193 return(ssl->state);
2177 } 2194 }
@@ -2181,7 +2198,7 @@ void SSL_set_verify_result(SSL *ssl,long arg)
2181 ssl->verify_result=arg; 2198 ssl->verify_result=arg;
2182 } 2199 }
2183 2200
2184long SSL_get_verify_result(SSL *ssl) 2201long SSL_get_verify_result(const SSL *ssl)
2185 { 2202 {
2186 return(ssl->verify_result); 2203 return(ssl->verify_result);
2187 } 2204 }
@@ -2198,7 +2215,7 @@ int SSL_set_ex_data(SSL *s,int idx,void *arg)
2198 return(CRYPTO_set_ex_data(&s->ex_data,idx,arg)); 2215 return(CRYPTO_set_ex_data(&s->ex_data,idx,arg));
2199 } 2216 }
2200 2217
2201void *SSL_get_ex_data(SSL *s,int idx) 2218void *SSL_get_ex_data(const SSL *s,int idx)
2202 { 2219 {
2203 return(CRYPTO_get_ex_data(&s->ex_data,idx)); 2220 return(CRYPTO_get_ex_data(&s->ex_data,idx));
2204 } 2221 }
@@ -2215,7 +2232,7 @@ int SSL_CTX_set_ex_data(SSL_CTX *s,int idx,void *arg)
2215 return(CRYPTO_set_ex_data(&s->ex_data,idx,arg)); 2232 return(CRYPTO_set_ex_data(&s->ex_data,idx,arg));
2216 } 2233 }
2217 2234
2218void *SSL_CTX_get_ex_data(SSL_CTX *s,int idx) 2235void *SSL_CTX_get_ex_data(const SSL_CTX *s,int idx)
2219 { 2236 {
2220 return(CRYPTO_get_ex_data(&s->ex_data,idx)); 2237 return(CRYPTO_get_ex_data(&s->ex_data,idx));
2221 } 2238 }
@@ -2225,7 +2242,7 @@ int ssl_ok(SSL *s)
2225 return(1); 2242 return(1);
2226 } 2243 }
2227 2244
2228X509_STORE *SSL_CTX_get_cert_store(SSL_CTX *ctx) 2245X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *ctx)
2229 { 2246 {
2230 return(ctx->cert_store); 2247 return(ctx->cert_store);
2231 } 2248 }
@@ -2237,7 +2254,7 @@ void SSL_CTX_set_cert_store(SSL_CTX *ctx,X509_STORE *store)
2237 ctx->cert_store=store; 2254 ctx->cert_store=store;
2238 } 2255 }
2239 2256
2240int SSL_want(SSL *s) 2257int SSL_want(const SSL *s)
2241 { 2258 {
2242 return(s->rwstate); 2259 return(s->rwstate);
2243 } 2260 }
diff --git a/src/lib/libssl/src/ssl/ssl_locl.h b/src/lib/libssl/src/ssl/ssl_locl.h
index dd6c7a7323..25a144a0d0 100644
--- a/src/lib/libssl/src/ssl/ssl_locl.h
+++ b/src/lib/libssl/src/ssl/ssl_locl.h
@@ -302,8 +302,9 @@
302#define SSL_LOW 0x00000020L 302#define SSL_LOW 0x00000020L
303#define SSL_MEDIUM 0x00000040L 303#define SSL_MEDIUM 0x00000040L
304#define SSL_HIGH 0x00000080L 304#define SSL_HIGH 0x00000080L
305#define SSL_FIPS 0x00000100L
305 306
306/* we have used 000000ff - 24 bits left to go */ 307/* we have used 000001ff - 23 bits left to go */
307 308
308/* 309/*
309 * Macros to check the export status and cipher strength for export ciphers. 310 * Macros to check the export status and cipher strength for export ciphers.
@@ -498,10 +499,11 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(const SSL_METHOD *meth,
498 STACK_OF(SSL_CIPHER) **sorted, 499 STACK_OF(SSL_CIPHER) **sorted,
499 const char *rule_str); 500 const char *rule_str);
500void ssl_update_cache(SSL *s, int mode); 501void ssl_update_cache(SSL *s, int mode);
501int ssl_cipher_get_evp(SSL_SESSION *s,const EVP_CIPHER **enc,const EVP_MD **md, 502int ssl_cipher_get_evp(const SSL_SESSION *s,const EVP_CIPHER **enc,
502 SSL_COMP **comp); 503 const EVP_MD **md,SSL_COMP **comp);
503int ssl_verify_cert_chain(SSL *s,STACK_OF(X509) *sk); 504int ssl_verify_cert_chain(SSL *s,STACK_OF(X509) *sk);
504int ssl_undefined_function(SSL *s); 505int ssl_undefined_function(SSL *s);
506int ssl_undefined_const_function(const SSL *s);
505X509 *ssl_get_server_send_cert(SSL *); 507X509 *ssl_get_server_send_cert(SSL *);
506EVP_PKEY *ssl_get_sign_pkey(SSL *,SSL_CIPHER *); 508EVP_PKEY *ssl_get_sign_pkey(SSL *,SSL_CIPHER *);
507int ssl_cert_type(X509 *x,EVP_PKEY *pkey); 509int ssl_cert_type(X509 *x,EVP_PKEY *pkey);
@@ -535,7 +537,7 @@ long ssl2_ctrl(SSL *s,int cmd, long larg, void *parg);
535long ssl2_ctx_ctrl(SSL_CTX *s,int cmd, long larg, void *parg); 537long ssl2_ctx_ctrl(SSL_CTX *s,int cmd, long larg, void *parg);
536long ssl2_callback_ctrl(SSL *s,int cmd, void (*fp)()); 538long ssl2_callback_ctrl(SSL *s,int cmd, void (*fp)());
537long ssl2_ctx_callback_ctrl(SSL_CTX *s,int cmd, void (*fp)()); 539long ssl2_ctx_callback_ctrl(SSL_CTX *s,int cmd, void (*fp)());
538int ssl2_pending(SSL *s); 540int ssl2_pending(const SSL *s);
539 541
540SSL_CIPHER *ssl3_get_cipher_by_char(const unsigned char *p); 542SSL_CIPHER *ssl3_get_cipher_by_char(const unsigned char *p);
541int ssl3_put_cipher_by_char(const SSL_CIPHER *c,unsigned char *p); 543int ssl3_put_cipher_by_char(const SSL_CIPHER *c,unsigned char *p);
@@ -583,7 +585,7 @@ long ssl3_ctrl(SSL *s,int cmd, long larg, void *parg);
583long ssl3_ctx_ctrl(SSL_CTX *s,int cmd, long larg, void *parg); 585long ssl3_ctx_ctrl(SSL_CTX *s,int cmd, long larg, void *parg);
584long ssl3_callback_ctrl(SSL *s,int cmd, void (*fp)()); 586long ssl3_callback_ctrl(SSL *s,int cmd, void (*fp)());
585long ssl3_ctx_callback_ctrl(SSL_CTX *s,int cmd, void (*fp)()); 587long ssl3_ctx_callback_ctrl(SSL_CTX *s,int cmd, void (*fp)());
586int ssl3_pending(SSL *s); 588int ssl3_pending(const SSL *s);
587 589
588int ssl23_accept(SSL *s); 590int ssl23_accept(SSL *s);
589int ssl23_connect(SSL *s); 591int ssl23_connect(SSL *s);
diff --git a/src/lib/libssl/src/ssl/ssl_rsa.c b/src/lib/libssl/src/ssl/ssl_rsa.c
index 330390519b..fb0bd4d045 100644
--- a/src/lib/libssl/src/ssl/ssl_rsa.c
+++ b/src/lib/libssl/src/ssl/ssl_rsa.c
@@ -804,7 +804,7 @@ int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file)
804 /* When the while loop ends, it's usually just EOF. */ 804 /* When the while loop ends, it's usually just EOF. */
805 err = ERR_peek_last_error(); 805 err = ERR_peek_last_error();
806 if (ERR_GET_LIB(err) == ERR_LIB_PEM && ERR_GET_REASON(err) == PEM_R_NO_START_LINE) 806 if (ERR_GET_LIB(err) == ERR_LIB_PEM && ERR_GET_REASON(err) == PEM_R_NO_START_LINE)
807 (void)ERR_get_error(); 807 ERR_clear_error();
808 else 808 else
809 ret = 0; /* some real error */ 809 ret = 0; /* some real error */
810 } 810 }
diff --git a/src/lib/libssl/src/ssl/ssl_sess.c b/src/lib/libssl/src/ssl/ssl_sess.c
index 7016c87d3b..5f12aa361c 100644
--- a/src/lib/libssl/src/ssl/ssl_sess.c
+++ b/src/lib/libssl/src/ssl/ssl_sess.c
@@ -65,7 +65,7 @@ static void SSL_SESSION_list_remove(SSL_CTX *ctx, SSL_SESSION *s);
65static void SSL_SESSION_list_add(SSL_CTX *ctx,SSL_SESSION *s); 65static void SSL_SESSION_list_add(SSL_CTX *ctx,SSL_SESSION *s);
66static int remove_session_lock(SSL_CTX *ctx, SSL_SESSION *c, int lck); 66static int remove_session_lock(SSL_CTX *ctx, SSL_SESSION *c, int lck);
67 67
68SSL_SESSION *SSL_get_session(SSL *ssl) 68SSL_SESSION *SSL_get_session(const SSL *ssl)
69/* aka SSL_get0_session; gets 0 objects, just returns a copy of the pointer */ 69/* aka SSL_get0_session; gets 0 objects, just returns a copy of the pointer */
70 { 70 {
71 return(ssl->session); 71 return(ssl->session);
@@ -98,7 +98,7 @@ int SSL_SESSION_set_ex_data(SSL_SESSION *s, int idx, void *arg)
98 return(CRYPTO_set_ex_data(&s->ex_data,idx,arg)); 98 return(CRYPTO_set_ex_data(&s->ex_data,idx,arg));
99 } 99 }
100 100
101void *SSL_SESSION_get_ex_data(SSL_SESSION *s, int idx) 101void *SSL_SESSION_get_ex_data(const SSL_SESSION *s, int idx)
102 { 102 {
103 return(CRYPTO_get_ex_data(&s->ex_data,idx)); 103 return(CRYPTO_get_ex_data(&s->ex_data,idx));
104 } 104 }
@@ -141,7 +141,8 @@ static int def_generate_session_id(const SSL *ssl, unsigned char *id,
141{ 141{
142 unsigned int retry = 0; 142 unsigned int retry = 0;
143 do 143 do
144 RAND_pseudo_bytes(id, *id_len); 144 if(RAND_pseudo_bytes(id, *id_len) <= 0)
145 return 0;
145 while(SSL_has_matching_session_id(ssl, id, *id_len) && 146 while(SSL_has_matching_session_id(ssl, id, *id_len) &&
146 (++retry < MAX_SESS_ID_ATTEMPTS)); 147 (++retry < MAX_SESS_ID_ATTEMPTS));
147 if(retry < MAX_SESS_ID_ATTEMPTS) 148 if(retry < MAX_SESS_ID_ATTEMPTS)
@@ -609,13 +610,13 @@ long SSL_SESSION_set_timeout(SSL_SESSION *s, long t)
609 return(1); 610 return(1);
610 } 611 }
611 612
612long SSL_SESSION_get_timeout(SSL_SESSION *s) 613long SSL_SESSION_get_timeout(const SSL_SESSION *s)
613 { 614 {
614 if (s == NULL) return(0); 615 if (s == NULL) return(0);
615 return(s->timeout); 616 return(s->timeout);
616 } 617 }
617 618
618long SSL_SESSION_get_time(SSL_SESSION *s) 619long SSL_SESSION_get_time(const SSL_SESSION *s)
619 { 620 {
620 if (s == NULL) return(0); 621 if (s == NULL) return(0);
621 return(s->time); 622 return(s->time);
@@ -637,7 +638,7 @@ long SSL_CTX_set_timeout(SSL_CTX *s, long t)
637 return(l); 638 return(l);
638 } 639 }
639 640
640long SSL_CTX_get_timeout(SSL_CTX *s) 641long SSL_CTX_get_timeout(const SSL_CTX *s)
641 { 642 {
642 if (s == NULL) return(0); 643 if (s == NULL) return(0);
643 return(s->session_timeout); 644 return(s->session_timeout);
diff --git a/src/lib/libssl/src/ssl/ssl_txt.c b/src/lib/libssl/src/ssl/ssl_txt.c
index 40b76b1b26..8655a31333 100644
--- a/src/lib/libssl/src/ssl/ssl_txt.c
+++ b/src/lib/libssl/src/ssl/ssl_txt.c
@@ -61,7 +61,7 @@
61#include "ssl_locl.h" 61#include "ssl_locl.h"
62 62
63#ifndef OPENSSL_NO_FP_API 63#ifndef OPENSSL_NO_FP_API
64int SSL_SESSION_print_fp(FILE *fp, SSL_SESSION *x) 64int SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *x)
65 { 65 {
66 BIO *b; 66 BIO *b;
67 int ret; 67 int ret;
@@ -78,7 +78,7 @@ int SSL_SESSION_print_fp(FILE *fp, SSL_SESSION *x)
78 } 78 }
79#endif 79#endif
80 80
81int SSL_SESSION_print(BIO *bp, SSL_SESSION *x) 81int SSL_SESSION_print(BIO *bp, const SSL_SESSION *x)
82 { 82 {
83 unsigned int i; 83 unsigned int i;
84 char *s; 84 char *s;
diff --git a/src/lib/libssl/src/ssl/ssltest.c b/src/lib/libssl/src/ssl/ssltest.c
index 28095148e7..02878981f1 100644
--- a/src/lib/libssl/src/ssl/ssltest.c
+++ b/src/lib/libssl/src/ssl/ssltest.c
@@ -119,6 +119,7 @@
119#include <stdlib.h> 119#include <stdlib.h>
120#include <string.h> 120#include <string.h>
121#include <time.h> 121#include <time.h>
122#include <ctype.h>
122 123
123#define USE_SOCKETS 124#define USE_SOCKETS
124#include "e_os.h" 125#include "e_os.h"
@@ -127,12 +128,14 @@
127#include <openssl/crypto.h> 128#include <openssl/crypto.h>
128#include <openssl/evp.h> 129#include <openssl/evp.h>
129#include <openssl/x509.h> 130#include <openssl/x509.h>
131#include <openssl/x509v3.h>
130#include <openssl/ssl.h> 132#include <openssl/ssl.h>
131#ifndef OPENSSL_NO_ENGINE 133#ifndef OPENSSL_NO_ENGINE
132#include <openssl/engine.h> 134#include <openssl/engine.h>
133#endif 135#endif
134#include <openssl/err.h> 136#include <openssl/err.h>
135#include <openssl/rand.h> 137#include <openssl/rand.h>
138#include <openssl/fips.h>
136 139
137#define _XOPEN_SOURCE_EXTENDED 1 /* Or gethostname won't be declared properly 140#define _XOPEN_SOURCE_EXTENDED 1 /* Or gethostname won't be declared properly
138 on Compaq platforms (at least with DEC C). 141 on Compaq platforms (at least with DEC C).
@@ -168,8 +171,15 @@ static RSA MS_CALLBACK *tmp_rsa_cb(SSL *s, int is_export,int keylength);
168static void free_tmp_rsa(void); 171static void free_tmp_rsa(void);
169#endif 172#endif
170static int MS_CALLBACK app_verify_callback(X509_STORE_CTX *ctx, void *arg); 173static int MS_CALLBACK app_verify_callback(X509_STORE_CTX *ctx, void *arg);
171#define APP_CALLBACK "Test Callback Argument" 174#define APP_CALLBACK_STRING "Test Callback Argument"
172static char *app_verify_arg = APP_CALLBACK; 175struct app_verify_arg
176 {
177 char *string;
178 int app_verify;
179 int allow_proxy_certs;
180 char *proxy_auth;
181 char *proxy_cond;
182 };
173 183
174#ifndef OPENSSL_NO_DH 184#ifndef OPENSSL_NO_DH
175static DH *get_dh512(void); 185static DH *get_dh512(void);
@@ -198,8 +208,14 @@ static void sv_usage(void)
198 { 208 {
199 fprintf(stderr,"usage: ssltest [args ...]\n"); 209 fprintf(stderr,"usage: ssltest [args ...]\n");
200 fprintf(stderr,"\n"); 210 fprintf(stderr,"\n");
211#ifdef OPENSSL_FIPS
212 fprintf(stderr,"-F - run test in FIPS mode\n");
213#endif
201 fprintf(stderr," -server_auth - check server certificate\n"); 214 fprintf(stderr," -server_auth - check server certificate\n");
202 fprintf(stderr," -client_auth - do client authentication\n"); 215 fprintf(stderr," -client_auth - do client authentication\n");
216 fprintf(stderr," -proxy - allow proxy certificates\n");
217 fprintf(stderr," -proxy_auth <val> - set proxy policy rights\n");
218 fprintf(stderr," -proxy_cond <val> - experssion to test proxy policy rights\n");
203 fprintf(stderr," -v - more output\n"); 219 fprintf(stderr," -v - more output\n");
204 fprintf(stderr," -d - debug output\n"); 220 fprintf(stderr," -d - debug output\n");
205 fprintf(stderr," -reuse - use session-id reuse\n"); 221 fprintf(stderr," -reuse - use session-id reuse\n");
@@ -349,7 +365,8 @@ int main(int argc, char *argv[])
349 int tls1=0,ssl2=0,ssl3=0,ret=1; 365 int tls1=0,ssl2=0,ssl3=0,ret=1;
350 int client_auth=0; 366 int client_auth=0;
351 int server_auth=0,i; 367 int server_auth=0,i;
352 int app_verify=0; 368 struct app_verify_arg app_verify_arg =
369 { APP_CALLBACK_STRING, 0, 0, NULL, NULL };
353 char *server_cert=TEST_SERVER_CERT; 370 char *server_cert=TEST_SERVER_CERT;
354 char *server_key=NULL; 371 char *server_key=NULL;
355 char *client_cert=TEST_CLIENT_CERT; 372 char *client_cert=TEST_CLIENT_CERT;
@@ -369,6 +386,10 @@ int main(int argc, char *argv[])
369 clock_t s_time = 0, c_time = 0; 386 clock_t s_time = 0, c_time = 0;
370 int comp = 0; 387 int comp = 0;
371 COMP_METHOD *cm = NULL; 388 COMP_METHOD *cm = NULL;
389#ifdef OPENSSL_FIPS
390 int fips_mode=0;
391 const char *path=argv[0];
392#endif
372 393
373 verbose = 0; 394 verbose = 0;
374 debug = 0; 395 debug = 0;
@@ -400,10 +421,29 @@ int main(int argc, char *argv[])
400 421
401 while (argc >= 1) 422 while (argc >= 1)
402 { 423 {
403 if (strcmp(*argv,"-server_auth") == 0) 424 if(!strcmp(*argv,"-F"))
425 {
426#ifdef OPENSSL_FIPS
427 fips_mode=1;
428#else
429 fprintf(stderr,"not compiled with FIPS support, so exitting without running.\n");
430 EXIT(0);
431#endif
432 }
433 else if (strcmp(*argv,"-server_auth") == 0)
404 server_auth=1; 434 server_auth=1;
405 else if (strcmp(*argv,"-client_auth") == 0) 435 else if (strcmp(*argv,"-client_auth") == 0)
406 client_auth=1; 436 client_auth=1;
437 else if (strcmp(*argv,"-proxy_auth") == 0)
438 {
439 if (--argc < 1) goto bad;
440 app_verify_arg.proxy_auth= *(++argv);
441 }
442 else if (strcmp(*argv,"-proxy_cond") == 0)
443 {
444 if (--argc < 1) goto bad;
445 app_verify_arg.proxy_cond= *(++argv);
446 }
407 else if (strcmp(*argv,"-v") == 0) 447 else if (strcmp(*argv,"-v") == 0)
408 verbose=1; 448 verbose=1;
409 else if (strcmp(*argv,"-d") == 0) 449 else if (strcmp(*argv,"-d") == 0)
@@ -516,7 +556,11 @@ int main(int argc, char *argv[])
516 } 556 }
517 else if (strcmp(*argv,"-app_verify") == 0) 557 else if (strcmp(*argv,"-app_verify") == 0)
518 { 558 {
519 app_verify = 1; 559 app_verify_arg.app_verify = 1;
560 }
561 else if (strcmp(*argv,"-proxy") == 0)
562 {
563 app_verify_arg.allow_proxy_certs = 1;
520 } 564 }
521 else 565 else
522 { 566 {
@@ -534,6 +578,7 @@ bad:
534 goto end; 578 goto end;
535 } 579 }
536 580
581
537 if (!ssl2 && !ssl3 && !tls1 && number > 1 && !reuse && !force) 582 if (!ssl2 && !ssl3 && !tls1 && number > 1 && !reuse && !force)
538 { 583 {
539 fprintf(stderr, "This case cannot work. Use -f to perform " 584 fprintf(stderr, "This case cannot work. Use -f to perform "
@@ -543,6 +588,20 @@ bad:
543 EXIT(1); 588 EXIT(1);
544 } 589 }
545 590
591#ifdef OPENSSL_FIPS
592 if(fips_mode)
593 {
594 if(!FIPS_mode_set(1,path))
595 {
596 ERR_load_crypto_strings();
597 ERR_print_errors(BIO_new_fp(stderr,BIO_NOCLOSE));
598 EXIT(1);
599 }
600 else
601 fprintf(stderr,"*** IN FIPS MODE ***\n");
602 }
603#endif
604
546 if (print_time) 605 if (print_time)
547 { 606 {
548 if (!bio_pair) 607 if (!bio_pair)
@@ -676,20 +735,14 @@ bad:
676 SSL_CTX_set_verify(s_ctx, 735 SSL_CTX_set_verify(s_ctx,
677 SSL_VERIFY_PEER|SSL_VERIFY_FAIL_IF_NO_PEER_CERT, 736 SSL_VERIFY_PEER|SSL_VERIFY_FAIL_IF_NO_PEER_CERT,
678 verify_callback); 737 verify_callback);
679 if (app_verify) 738 SSL_CTX_set_cert_verify_callback(s_ctx, app_verify_callback, &app_verify_arg);
680 {
681 SSL_CTX_set_cert_verify_callback(s_ctx, app_verify_callback, app_verify_arg);
682 }
683 } 739 }
684 if (server_auth) 740 if (server_auth)
685 { 741 {
686 BIO_printf(bio_err,"server authentication\n"); 742 BIO_printf(bio_err,"server authentication\n");
687 SSL_CTX_set_verify(c_ctx,SSL_VERIFY_PEER, 743 SSL_CTX_set_verify(c_ctx,SSL_VERIFY_PEER,
688 verify_callback); 744 verify_callback);
689 if (app_verify) 745 SSL_CTX_set_cert_verify_callback(c_ctx, app_verify_callback, &app_verify_arg);
690 {
691 SSL_CTX_set_cert_verify_callback(s_ctx, app_verify_callback, app_verify_arg);
692 }
693 } 746 }
694 747
695 { 748 {
@@ -1471,6 +1524,22 @@ err:
1471 return(ret); 1524 return(ret);
1472 } 1525 }
1473 1526
1527static int get_proxy_auth_ex_data_idx(void)
1528 {
1529 static volatile int idx = -1;
1530 if (idx < 0)
1531 {
1532 CRYPTO_w_lock(CRYPTO_LOCK_SSL_CTX);
1533 if (idx < 0)
1534 {
1535 idx = X509_STORE_CTX_get_ex_new_index(0,
1536 "SSLtest for verify callback", NULL,NULL,NULL);
1537 }
1538 CRYPTO_w_unlock(CRYPTO_LOCK_SSL_CTX);
1539 }
1540 return idx;
1541 }
1542
1474static int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx) 1543static int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx)
1475 { 1544 {
1476 char *s,buf[256]; 1545 char *s,buf[256];
@@ -1480,42 +1549,467 @@ static int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx)
1480 if (s != NULL) 1549 if (s != NULL)
1481 { 1550 {
1482 if (ok) 1551 if (ok)
1483 fprintf(stderr,"depth=%d %s\n",ctx->error_depth,buf); 1552 fprintf(stderr,"depth=%d %s\n",
1553 ctx->error_depth,buf);
1484 else 1554 else
1555 {
1485 fprintf(stderr,"depth=%d error=%d %s\n", 1556 fprintf(stderr,"depth=%d error=%d %s\n",
1486 ctx->error_depth,ctx->error,buf); 1557 ctx->error_depth,ctx->error,buf);
1558 }
1487 } 1559 }
1488 1560
1489 if (ok == 0) 1561 if (ok == 0)
1490 { 1562 {
1563 fprintf(stderr,"Error string: %s\n",
1564 X509_verify_cert_error_string(ctx->error));
1491 switch (ctx->error) 1565 switch (ctx->error)
1492 { 1566 {
1493 case X509_V_ERR_CERT_NOT_YET_VALID: 1567 case X509_V_ERR_CERT_NOT_YET_VALID:
1494 case X509_V_ERR_CERT_HAS_EXPIRED: 1568 case X509_V_ERR_CERT_HAS_EXPIRED:
1495 case X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: 1569 case X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT:
1570 fprintf(stderr," ... ignored.\n");
1496 ok=1; 1571 ok=1;
1497 } 1572 }
1498 } 1573 }
1499 1574
1575 if (ok == 1)
1576 {
1577 X509 *xs = ctx->current_cert;
1578#if 0
1579 X509 *xi = ctx->current_issuer;
1580#endif
1581
1582 if (xs->ex_flags & EXFLAG_PROXY)
1583 {
1584 unsigned int *letters =
1585 X509_STORE_CTX_get_ex_data(ctx,
1586 get_proxy_auth_ex_data_idx());
1587
1588 if (letters)
1589 {
1590 int found_any = 0;
1591 int i;
1592 PROXY_CERT_INFO_EXTENSION *pci =
1593 X509_get_ext_d2i(xs, NID_proxyCertInfo,
1594 NULL, NULL);
1595
1596 switch (OBJ_obj2nid(pci->proxyPolicy->policyLanguage))
1597 {
1598 case NID_Independent:
1599 /* Completely meaningless in this
1600 program, as there's no way to
1601 grant explicit rights to a
1602 specific PrC. Basically, using
1603 id-ppl-Independent is the perfect
1604 way to grant no rights at all. */
1605 fprintf(stderr, " Independent proxy certificate");
1606 for (i = 0; i < 26; i++)
1607 letters[i] = 0;
1608 break;
1609 case NID_id_ppl_inheritAll:
1610 /* This is basically a NOP, we
1611 simply let the current rights
1612 stand as they are. */
1613 fprintf(stderr, " Proxy certificate inherits all");
1614 break;
1615 default:
1616 s = (char *)
1617 pci->proxyPolicy->policy->data;
1618 i = pci->proxyPolicy->policy->length;
1619
1620 /* The algorithm works as follows:
1621 it is assumed that previous
1622 iterations or the initial granted
1623 rights has already set some elements
1624 of `letters'. What we need to do is
1625 to clear those that weren't granted
1626 by the current PrC as well. The
1627 easiest way to do this is to add 1
1628 to all the elements whose letters
1629 are given with the current policy.
1630 That way, all elements that are set
1631 by the current policy and were
1632 already set by earlier policies and
1633 through the original grant of rights
1634 will get the value 2 or higher.
1635 The last thing to do is to sweep
1636 through `letters' and keep the
1637 elements having the value 2 as set,
1638 and clear all the others. */
1639
1640 fprintf(stderr, " Certificate proxy rights = %*.*s", i, i, s);
1641 while(i-- > 0)
1642 {
1643 char c = *s++;
1644 if (isascii(c) && isalpha(c))
1645 {
1646 if (islower(c))
1647 c = toupper(c);
1648 letters[c - 'A']++;
1649 }
1650 }
1651 for (i = 0; i < 26; i++)
1652 if (letters[i] < 2)
1653 letters[i] = 0;
1654 else
1655 letters[i] = 1;
1656 }
1657
1658 found_any = 0;
1659 fprintf(stderr,
1660 ", resulting proxy rights = ");
1661 for(i = 0; i < 26; i++)
1662 if (letters[i])
1663 {
1664 fprintf(stderr, "%c", i + 'A');
1665 found_any = 1;
1666 }
1667 if (!found_any)
1668 fprintf(stderr, "none");
1669 fprintf(stderr, "\n");
1670
1671 PROXY_CERT_INFO_EXTENSION_free(pci);
1672 }
1673 }
1674 }
1675
1500 return(ok); 1676 return(ok);
1501 } 1677 }
1502 1678
1679static void process_proxy_debug(int indent, const char *format, ...)
1680 {
1681 static const char indentation[] =
1682 ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
1683 ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"; /* That's 80 > */
1684 char my_format[256];
1685 va_list args;
1686
1687 BIO_snprintf(my_format, sizeof(my_format), "%*.*s %s",
1688 indent, indent, indentation, format);
1689
1690 va_start(args, format);
1691 vfprintf(stderr, my_format, args);
1692 va_end(args);
1693 }
1694/* Priority levels:
1695 0 [!]var, ()
1696 1 & ^
1697 2 |
1698*/
1699static int process_proxy_cond_adders(unsigned int letters[26],
1700 const char *cond, const char **cond_end, int *pos, int indent);
1701static int process_proxy_cond_val(unsigned int letters[26],
1702 const char *cond, const char **cond_end, int *pos, int indent)
1703 {
1704 char c;
1705 int ok = 1;
1706 int negate = 0;
1707
1708 while(isspace(*cond))
1709 {
1710 cond++; (*pos)++;
1711 }
1712 c = *cond;
1713
1714 if (debug)
1715 process_proxy_debug(indent,
1716 "Start process_proxy_cond_val at position %d: %s\n",
1717 *pos, cond);
1718
1719 while(c == '!')
1720 {
1721 negate = !negate;
1722 cond++; (*pos)++;
1723 while(isspace(*cond))
1724 {
1725 cond++; (*pos)++;
1726 }
1727 c = *cond;
1728 }
1729
1730 if (c == '(')
1731 {
1732 cond++; (*pos)++;
1733 ok = process_proxy_cond_adders(letters, cond, cond_end, pos,
1734 indent + 1);
1735 cond = *cond_end;
1736 if (ok < 0)
1737 goto end;
1738 while(isspace(*cond))
1739 {
1740 cond++; (*pos)++;
1741 }
1742 c = *cond;
1743 if (c != ')')
1744 {
1745 fprintf(stderr,
1746 "Weird condition character in position %d: "
1747 "%c\n", *pos, c);
1748 ok = -1;
1749 goto end;
1750 }
1751 cond++; (*pos)++;
1752 }
1753 else if (isascii(c) && isalpha(c))
1754 {
1755 if (islower(c))
1756 c = toupper(c);
1757 ok = letters[c - 'A'];
1758 cond++; (*pos)++;
1759 }
1760 else
1761 {
1762 fprintf(stderr,
1763 "Weird condition character in position %d: "
1764 "%c\n", *pos, c);
1765 ok = -1;
1766 goto end;
1767 }
1768 end:
1769 *cond_end = cond;
1770 if (ok >= 0 && negate)
1771 ok = !ok;
1772
1773 if (debug)
1774 process_proxy_debug(indent,
1775 "End process_proxy_cond_val at position %d: %s, returning %d\n",
1776 *pos, cond, ok);
1777
1778 return ok;
1779 }
1780static int process_proxy_cond_multipliers(unsigned int letters[26],
1781 const char *cond, const char **cond_end, int *pos, int indent)
1782 {
1783 int ok;
1784 char c;
1785
1786 if (debug)
1787 process_proxy_debug(indent,
1788 "Start process_proxy_cond_multipliers at position %d: %s\n",
1789 *pos, cond);
1790
1791 ok = process_proxy_cond_val(letters, cond, cond_end, pos, indent + 1);
1792 cond = *cond_end;
1793 if (ok < 0)
1794 goto end;
1795
1796 while(ok >= 0)
1797 {
1798 while(isspace(*cond))
1799 {
1800 cond++; (*pos)++;
1801 }
1802 c = *cond;
1803
1804 switch(c)
1805 {
1806 case '&':
1807 case '^':
1808 {
1809 int save_ok = ok;
1810
1811 cond++; (*pos)++;
1812 ok = process_proxy_cond_val(letters,
1813 cond, cond_end, pos, indent + 1);
1814 cond = *cond_end;
1815 if (ok < 0)
1816 break;
1817
1818 switch(c)
1819 {
1820 case '&':
1821 ok &= save_ok;
1822 break;
1823 case '^':
1824 ok ^= save_ok;
1825 break;
1826 default:
1827 fprintf(stderr, "SOMETHING IS SERIOUSLY WRONG!"
1828 " STOPPING\n");
1829 EXIT(1);
1830 }
1831 }
1832 break;
1833 default:
1834 goto end;
1835 }
1836 }
1837 end:
1838 if (debug)
1839 process_proxy_debug(indent,
1840 "End process_proxy_cond_multipliers at position %d: %s, returning %d\n",
1841 *pos, cond, ok);
1842
1843 *cond_end = cond;
1844 return ok;
1845 }
1846static int process_proxy_cond_adders(unsigned int letters[26],
1847 const char *cond, const char **cond_end, int *pos, int indent)
1848 {
1849 int ok;
1850 char c;
1851
1852 if (debug)
1853 process_proxy_debug(indent,
1854 "Start process_proxy_cond_adders at position %d: %s\n",
1855 *pos, cond);
1856
1857 ok = process_proxy_cond_multipliers(letters, cond, cond_end, pos,
1858 indent + 1);
1859 cond = *cond_end;
1860 if (ok < 0)
1861 goto end;
1862
1863 while(ok >= 0)
1864 {
1865 while(isspace(*cond))
1866 {
1867 cond++; (*pos)++;
1868 }
1869 c = *cond;
1870
1871 switch(c)
1872 {
1873 case '|':
1874 {
1875 int save_ok = ok;
1876
1877 cond++; (*pos)++;
1878 ok = process_proxy_cond_multipliers(letters,
1879 cond, cond_end, pos, indent + 1);
1880 cond = *cond_end;
1881 if (ok < 0)
1882 break;
1883
1884 switch(c)
1885 {
1886 case '|':
1887 ok |= save_ok;
1888 break;
1889 default:
1890 fprintf(stderr, "SOMETHING IS SERIOUSLY WRONG!"
1891 " STOPPING\n");
1892 EXIT(1);
1893 }
1894 }
1895 break;
1896 default:
1897 goto end;
1898 }
1899 }
1900 end:
1901 if (debug)
1902 process_proxy_debug(indent,
1903 "End process_proxy_cond_adders at position %d: %s, returning %d\n",
1904 *pos, cond, ok);
1905
1906 *cond_end = cond;
1907 return ok;
1908 }
1909
1910static int process_proxy_cond(unsigned int letters[26],
1911 const char *cond, const char **cond_end)
1912 {
1913 int pos = 1;
1914 return process_proxy_cond_adders(letters, cond, cond_end, &pos, 1);
1915 }
1916
1503static int MS_CALLBACK app_verify_callback(X509_STORE_CTX *ctx, void *arg) 1917static int MS_CALLBACK app_verify_callback(X509_STORE_CTX *ctx, void *arg)
1504 { 1918 {
1505 char *s = NULL,buf[256];
1506 int ok=1; 1919 int ok=1;
1920 struct app_verify_arg *cb_arg = arg;
1921 unsigned int letters[26]; /* only used with proxy_auth */
1507 1922
1508 fprintf(stderr, "In app_verify_callback, allowing cert. "); 1923 if (cb_arg->app_verify)
1509 fprintf(stderr, "Arg is: %s\n", (char *)arg);
1510 fprintf(stderr, "Finished printing do we have a context? 0x%x a cert? 0x%x\n",
1511 (unsigned int)ctx, (unsigned int)ctx->cert);
1512 if (ctx->cert)
1513 s=X509_NAME_oneline(X509_get_subject_name(ctx->cert),buf,256);
1514 if (s != NULL)
1515 { 1924 {
1925 char *s = NULL,buf[256];
1926
1927 fprintf(stderr, "In app_verify_callback, allowing cert. ");
1928 fprintf(stderr, "Arg is: %s\n", cb_arg->string);
1929 fprintf(stderr, "Finished printing do we have a context? 0x%x a cert? 0x%x\n",
1930 (unsigned int)ctx, (unsigned int)ctx->cert);
1931 if (ctx->cert)
1932 s=X509_NAME_oneline(X509_get_subject_name(ctx->cert),buf,256);
1933 if (s != NULL)
1934 {
1516 fprintf(stderr,"cert depth=%d %s\n",ctx->error_depth,buf); 1935 fprintf(stderr,"cert depth=%d %s\n",ctx->error_depth,buf);
1936 }
1937 return(1);
1938 }
1939 if (cb_arg->proxy_auth)
1940 {
1941 int found_any = 0, i;
1942 char *sp;
1943
1944 for(i = 0; i < 26; i++)
1945 letters[i] = 0;
1946 for(sp = cb_arg->proxy_auth; *sp; sp++)
1947 {
1948 char c = *sp;
1949 if (isascii(c) && isalpha(c))
1950 {
1951 if (islower(c))
1952 c = toupper(c);
1953 letters[c - 'A'] = 1;
1954 }
1955 }
1956
1957 fprintf(stderr,
1958 " Initial proxy rights = ");
1959 for(i = 0; i < 26; i++)
1960 if (letters[i])
1961 {
1962 fprintf(stderr, "%c", i + 'A');
1963 found_any = 1;
1964 }
1965 if (!found_any)
1966 fprintf(stderr, "none");
1967 fprintf(stderr, "\n");
1968
1969 X509_STORE_CTX_set_ex_data(ctx,
1970 get_proxy_auth_ex_data_idx(),letters);
1971 }
1972 if (cb_arg->allow_proxy_certs)
1973 {
1974 X509_STORE_CTX_set_flags(ctx, X509_V_FLAG_ALLOW_PROXY_CERTS);
1517 } 1975 }
1518 1976
1977#ifndef OPENSSL_NO_X509_VERIFY
1978# ifdef OPENSSL_FIPS
1979 if(s->version == TLS1_VERSION)
1980 FIPS_allow_md5(1);
1981# endif
1982 ok = X509_verify_cert(ctx);
1983# ifdef OPENSSL_FIPS
1984 if(s->version == TLS1_VERSION)
1985 FIPS_allow_md5(0);
1986# endif
1987#endif
1988
1989 if (cb_arg->proxy_auth)
1990 {
1991 if (ok)
1992 {
1993 const char *cond_end = NULL;
1994
1995 ok = process_proxy_cond(letters,
1996 cb_arg->proxy_cond, &cond_end);
1997
1998 if (ok < 0)
1999 EXIT(3);
2000 if (*cond_end)
2001 {
2002 fprintf(stderr, "Stopped processing condition before it's end.\n");
2003 ok = 0;
2004 }
2005 if (!ok)
2006 fprintf(stderr, "Proxy rights check with condition '%s' proved invalid\n",
2007 cb_arg->proxy_cond);
2008 else
2009 fprintf(stderr, "Proxy rights check with condition '%s' proved valid\n",
2010 cb_arg->proxy_cond);
2011 }
2012 }
1519 return(ok); 2013 return(ok);
1520 } 2014 }
1521 2015
diff --git a/src/lib/libssl/src/ssl/t1_enc.c b/src/lib/libssl/src/ssl/t1_enc.c
index 271e247eea..2c6246abf5 100644
--- a/src/lib/libssl/src/ssl/t1_enc.c
+++ b/src/lib/libssl/src/ssl/t1_enc.c
@@ -115,6 +115,7 @@
115#include <openssl/evp.h> 115#include <openssl/evp.h>
116#include <openssl/hmac.h> 116#include <openssl/hmac.h>
117#include <openssl/md5.h> 117#include <openssl/md5.h>
118#include <openssl/fips.h>
118 119
119static void tls1_P_hash(const EVP_MD *md, const unsigned char *sec, 120static void tls1_P_hash(const EVP_MD *md, const unsigned char *sec,
120 int sec_len, unsigned char *seed, int seed_len, 121 int sec_len, unsigned char *seed, int seed_len,
@@ -131,6 +132,8 @@ static void tls1_P_hash(const EVP_MD *md, const unsigned char *sec,
131 132
132 HMAC_CTX_init(&ctx); 133 HMAC_CTX_init(&ctx);
133 HMAC_CTX_init(&ctx_tmp); 134 HMAC_CTX_init(&ctx_tmp);
135 HMAC_CTX_set_flags(&ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
136 HMAC_CTX_set_flags(&ctx_tmp, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
134 HMAC_Init_ex(&ctx,sec,sec_len,md, NULL); 137 HMAC_Init_ex(&ctx,sec,sec_len,md, NULL);
135 HMAC_Init_ex(&ctx_tmp,sec,sec_len,md, NULL); 138 HMAC_Init_ex(&ctx_tmp,sec,sec_len,md, NULL);
136 HMAC_Update(&ctx,seed,seed_len); 139 HMAC_Update(&ctx,seed,seed_len);
@@ -177,7 +180,6 @@ static void tls1_PRF(const EVP_MD *md5, const EVP_MD *sha1,
177 S2= &(sec[len]); 180 S2= &(sec[len]);
178 len+=(slen&1); /* add for odd, make longer */ 181 len+=(slen&1); /* add for odd, make longer */
179 182
180
181 tls1_P_hash(md5 ,S1,len,label,label_len,out1,olen); 183 tls1_P_hash(md5 ,S1,len,label,label_len,out1,olen);
182 tls1_P_hash(sha1,S2,len,label,label_len,out2,olen); 184 tls1_P_hash(sha1,S2,len,label,label_len,out2,olen);
183 185
diff --git a/src/lib/libssl/src/test/CAss.cnf b/src/lib/libssl/src/test/CAss.cnf
index b941b7ae15..21da59a73a 100644
--- a/src/lib/libssl/src/test/CAss.cnf
+++ b/src/lib/libssl/src/test/CAss.cnf
@@ -23,3 +23,11 @@ organizationName_value = Dodgy Brothers
23 23
24commonName = Common Name (eg, YOUR name) 24commonName = Common Name (eg, YOUR name)
25commonName_value = Dodgy CA 25commonName_value = Dodgy CA
26
27[ v3_ca ]
28subjectKeyIdentifier=hash
29authorityKeyIdentifier=keyid:always,issuer:always
30basicConstraints = CA:true,pathlen:1
31keyUsage = cRLSign, keyCertSign
32issuerAltName=issuer:copy
33
diff --git a/src/lib/libssl/src/test/Makefile b/src/lib/libssl/src/test/Makefile
new file mode 100644
index 0000000000..6aeedf7fa3
--- /dev/null
+++ b/src/lib/libssl/src/test/Makefile
@@ -0,0 +1,788 @@
1#
2# test/Makefile
3#
4
5DIR= test
6TOP= ..
7CC= cc
8INCLUDES= -I$(TOP) -I../include $(KRB5_INCLUDES)
9CFLAG= -g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP= /usr/local/ssl
13MAKEFILE= Makefile
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16PERL= perl
17# KRB5 stuff
18KRB5_INCLUDES=
19LIBKRB5=
20
21PEX_LIBS=
22EX_LIBS= #-lnsl -lsocket
23
24CFLAGS= $(INCLUDES) $(CFLAG)
25
26GENERAL=Makefile maketests.com \
27 tests.com testenc.com tx509.com trsa.com tcrl.com tsid.com treq.com \
28 tpkcs7.com tpkcs7d.com tverify.com testgen.com testss.com testssl.com \
29 testca.com VMSca-response.1 VMSca-response.2
30
31DLIBCRYPTO= ../libcrypto.a
32DLIBSSL= ../libssl.a
33LIBCRYPTO= -L.. -lcrypto
34LIBSSL= -L.. -lssl
35
36BNTEST= bntest
37ECTEST= ectest
38EXPTEST= exptest
39IDEATEST= ideatest
40SHATEST= shatest
41SHA1TEST= sha1test
42FIPS_SHA1TEST= fips_sha1test
43MDC2TEST= mdc2test
44RMDTEST= rmdtest
45MD2TEST= md2test
46MD4TEST= md4test
47MD5TEST= md5test
48HMACTEST= hmactest
49RC2TEST= rc2test
50RC4TEST= rc4test
51RC5TEST= rc5test
52BFTEST= bftest
53CASTTEST= casttest
54DESTEST= destest
55FIPS_DESTEST= fips_desmovs
56RANDTEST= randtest
57FIPS_RANDTEST= fips_randtest
58DHTEST= dhtest
59DSATEST= dsatest
60FIPS_DSATEST= fips_dsatest
61METHTEST= methtest
62SSLTEST= ssltest
63RSATEST= rsa_test
64ENGINETEST= enginetest
65EVPTEST= evp_test
66FIPS_AESTEST= fips_aesavs
67
68TESTS= alltests
69
70EXE= $(BNTEST)$(EXE_EXT) $(ECTEST)$(EXE_EXT) $(IDEATEST)$(EXE_EXT) $(MD2TEST)$(EXE_EXT) $(MD4TEST)$(EXE_EXT) $(MD5TEST)$(EXE_EXT) $(HMACTEST)$(EXE_EXT) \
71 $(RC2TEST)$(EXE_EXT) $(RC4TEST)$(EXE_EXT) $(RC5TEST)$(EXE_EXT) \
72 $(DESTEST)$(EXE_EXT) $(FIPS_DESTEST)$(EXE_EXT) $(SHATEST)$(EXE_EXT) $(SHA1TEST)$(EXE_EXT) $(FIPS_SHA1TEST)$(EXE_EXT) $(MDC2TEST)$(EXE_EXT) $(RMDTEST)$(EXE_EXT) \
73 $(RANDTEST)$(EXE_EXT) $(FIPS_RANDTEST)$(EXE_EXT) $(DHTEST)$(EXE_EXT) $(ENGINETEST)$(EXE_EXT) \
74 $(BFTEST)$(EXE_EXT) $(CASTTEST)$(EXE_EXT) $(SSLTEST)$(EXE_EXT) $(EXPTEST)$(EXE_EXT) $(DSATEST)$(EXE_EXT) $(FIPS_DSATEST)$(EXE_EXT) $(RSATEST)$(EXE_EXT) \
75 $(EVPTEST)$(EXE_EXT) $(FIPS_AESTEST)$(EXE_EXT)
76
77# $(METHTEST)$(EXE_EXT)
78
79OBJ= $(BNTEST).o $(ECTEST).o $(IDEATEST).o $(MD2TEST).o $(MD4TEST).o $(MD5TEST).o \
80 $(HMACTEST).o \
81 $(RC2TEST).o $(RC4TEST).o $(RC5TEST).o \
82 $(DESTEST).o $(FIPS_DESTEST).o $(SHATEST).o $(SHA1TEST).o $(FIPS_SHA1TEST).o $(MDC2TEST).o $(RMDTEST).o \
83 $(RANDTEST).o $(FIPS_RANDTEST).o $(DHTEST).o $(ENGINETEST).o $(CASTTEST).o \
84 $(BFTEST).o $(SSLTEST).o $(DSATEST).o $(FIPS_DSATEST).o $(EXPTEST).o $(RSATEST).o \
85 $(EVPTEST).o $(FIPS_AESTEST).o
86SRC= $(BNTEST).c $(ECTEST).c $(IDEATEST).c $(MD2TEST).c $(MD4TEST).c $(MD5TEST).c \
87 $(HMACTEST).c \
88 $(RC2TEST).c $(RC4TEST).c $(RC5TEST).c \
89 $(DESTEST).c $(FIPS_DESTEST).c $(SHATEST).c $(SHA1TEST).c $(FIPS_SHA1TEST).c $(MDC2TEST).c $(RMDTEST).c \
90 $(RANDTEST).c $(FIPS_RANDTEST).c $(DHTEST).c $(ENGINETEST).c $(CASTTEST).c \
91 $(BFTEST).c $(SSLTEST).c $(DSATEST).c $(FIPS_DSATEST).c $(EXPTEST).c $(RSATEST).c \
92 $(EVPTEST).c $(FIPS_AESTEST).c
93
94EXHEADER=
95HEADER= $(EXHEADER)
96
97ALL= $(GENERAL) $(SRC) $(HEADER)
98
99top:
100 (cd ..; $(MAKE) DIRS=$(DIR) TESTS=$(TESTS) all)
101
102all: exe
103
104exe: $(EXE) dummytest$(EXE_EXT)
105
106files:
107 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
108
109links:
110
111generate: $(SRC)
112$(SRC):
113 @sh $(TOP)/util/point.sh dummytest.c $@
114
115errors:
116
117install:
118
119tags:
120 ctags $(SRC)
121
122tests: exe apps $(TESTS)
123
124apps:
125 @(cd ..; $(MAKE) DIRS=apps all)
126
127alltests: \
128 test_des test_idea test_sha test_md4 test_md5 test_hmac \
129 test_md2 test_mdc2 \
130 test_rmd test_rc2 test_rc4 test_rc5 test_bf test_cast test_aes \
131 test_rand test_bn test_ec test_enc test_x509 test_rsa test_crl test_sid \
132 test_gen test_req test_pkcs7 test_verify test_dh test_dsa \
133 test_ss test_ca test_engine test_evp test_ssl
134# temporarily removed
135# fips_test_aes
136
137fips_test_aes:
138 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
139 mkdir -p fips_aes_data/rsp; \
140 ../util/shlib_wrap.sh ./$(FIPS_AESTEST) -d fips_aes_data/list; \
141 fi
142
143test_evp:
144 ../util/shlib_wrap.sh ./$(EVPTEST) evptests.txt
145
146test_des:
147 ../util/shlib_wrap.sh ./$(DESTEST)
148
149test_idea:
150 ../util/shlib_wrap.sh ./$(IDEATEST)
151
152test_sha:
153 ../util/shlib_wrap.sh ./$(SHATEST)
154 ../util/shlib_wrap.sh ./$(SHA1TEST)
155 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
156 ../util/shlib_wrap.sh ./$(FIPS_SHA1TEST) sha1vectors.txt | sed s/Strings/Hashes/ | cmp sha1hashes.txt - ; \
157 fi
158
159test_mdc2:
160 ../util/shlib_wrap.sh ./$(MDC2TEST)
161
162test_md5:
163 ../util/shlib_wrap.sh ./$(MD5TEST)
164
165test_md4:
166 ../util/shlib_wrap.sh ./$(MD4TEST)
167
168test_hmac:
169 ../util/shlib_wrap.sh ./$(HMACTEST)
170
171test_md2:
172 ../util/shlib_wrap.sh ./$(MD2TEST)
173
174test_rmd:
175 ../util/shlib_wrap.sh ./$(RMDTEST)
176
177test_bf:
178 ../util/shlib_wrap.sh ./$(BFTEST)
179
180test_cast:
181 ../util/shlib_wrap.sh ./$(CASTTEST)
182
183test_rc2:
184 ../util/shlib_wrap.sh ./$(RC2TEST)
185
186test_rc4:
187 ../util/shlib_wrap.sh ./$(RC4TEST)
188
189test_rc5:
190 ../util/shlib_wrap.sh ./$(RC5TEST)
191
192test_rand:
193 ../util/shlib_wrap.sh ./$(RANDTEST)
194 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
195 ../util/shlib_wrap.sh ./$(FIPS_RANDTEST); \
196 fi
197
198test_enc:
199 @sh ./testenc
200
201test_x509:
202 echo test normal x509v1 certificate
203 sh ./tx509 2>/dev/null
204 echo test first x509v3 certificate
205 sh ./tx509 v3-cert1.pem 2>/dev/null
206 echo test second x509v3 certificate
207 sh ./tx509 v3-cert2.pem 2>/dev/null
208
209test_rsa:
210 @sh ./trsa 2>/dev/null
211 ../util/shlib_wrap.sh ./$(RSATEST)
212
213test_crl:
214 @sh ./tcrl 2>/dev/null
215
216test_sid:
217 @sh ./tsid 2>/dev/null
218
219test_req:
220 @sh ./treq 2>/dev/null
221 @sh ./treq testreq2.pem 2>/dev/null
222
223test_pkcs7:
224 @sh ./tpkcs7 2>/dev/null
225 @sh ./tpkcs7d 2>/dev/null
226
227test_bn:
228 @echo starting big number library test, could take a while...
229 @../util/shlib_wrap.sh ./$(BNTEST) >tmp.bntest
230 @echo quit >>tmp.bntest
231 @echo "running bc"
232 @<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"'
233 @echo 'test a^b%c implementations'
234 ../util/shlib_wrap.sh ./$(EXPTEST)
235
236test_ec:
237 @echo 'test elliptic curves'
238 ../util/shlib_wrap.sh ./$(ECTEST)
239
240test_verify:
241 @echo "The following command should have some OK's and some failures"
242 @echo "There are definitly a few expired certificates"
243 -../util/shlib_wrap.sh ../apps/openssl verify -CApath ../certs ../certs/*.pem
244
245test_dh:
246 @echo "Generate a set of DH parameters"
247 ../util/shlib_wrap.sh ./$(DHTEST)
248
249test_dsa:
250 @echo "Generate a set of DSA parameters"
251 ../util/shlib_wrap.sh ./$(DSATEST)
252 ../util/shlib_wrap.sh ./$(DSATEST) -app2_1
253 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
254 ../util/shlib_wrap.sh ./$(FIPS_DSATEST); \
255 ../util/shlib_wrap.sh ./$(FIPS_DSATEST) -app2_1; \
256 fi
257
258test_gen:
259 @echo "Generate and verify a certificate request"
260 @sh ./testgen
261
262test_ss keyU.ss certU.ss certCA.ss certP1.ss keyP1.ss certP2.ss keyP2.ss \
263 intP1.ss intP2.ss: testss
264 @echo "Generate and certify a test certificate"
265 @sh ./testss
266 @cat certCA.ss certU.ss > intP1.ss
267 @cat certCA.ss certU.ss certP1.ss > intP2.ss
268
269test_engine:
270 @echo "Manipulate the ENGINE structures"
271 ../util/shlib_wrap.sh ./$(ENGINETEST)
272
273test_ssl: keyU.ss certU.ss certCA.ss certP1.ss keyP1.ss certP2.ss keyP2.ss \
274 intP1.ss intP2.ss
275 @echo "test SSL protocol"
276 @if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
277 sh ./testfipsssl keyU.ss certU.ss certCA.ss; \
278 fi
279 @sh ./testssl keyU.ss certU.ss certCA.ss
280 @sh ./testsslproxy keyP1.ss certP1.ss intP1.ss
281 @sh ./testsslproxy keyP2.ss certP2.ss intP2.ss
282
283test_ca:
284 @if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then \
285 echo "skipping CA.sh test -- requires RSA"; \
286 else \
287 echo "Generate and certify a test certificate via the 'ca' program"; \
288 sh ./testca; \
289 fi
290
291test_aes: #$(AESTEST)
292# @echo "test Rijndael"
293# ../util/shlib_wrap.sh ./$(AESTEST)
294
295lint:
296 lint -DLINT $(INCLUDES) $(SRC)>fluff
297
298depend:
299 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(SRC)
300
301dclean:
302 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
303 mv -f Makefile.new $(MAKEFILE)
304
305clean:
306 rm -f .rnd tmp.bntest tmp.bctest *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff $(EXE) *.ss *.srl log
307
308$(DLIBSSL):
309 (cd ..; $(MAKE) DIRS=ssl all)
310
311$(DLIBCRYPTO):
312 (cd ..; $(MAKE) DIRS=crypto all)
313
314BUILD_CMD=if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
315 set -x; $${CC:-$(CC)} -o $$target$(EXE_EXT) $(CFLAGS) $$target.o $(PEX_LIBS) $(DLIBSSL) $(LIBKRB5) $(DLIBCRYPTO) $(EX_LIBS) ; \
316 elif [ -z "$(SHARED_LIBS)" ]; then \
317 set -x; $${CC:-$(CC)} -o $$target$(EXE_EXT) $(CFLAGS) $$target.o $(PEX_LIBS) $(LIBSSL) $(LIBKRB5) $(LIBCRYPTO) $(EX_LIBS) ; \
318 else \
319 set -x; LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
320 $(CC) -o $$target$(EXE_EXT) $(CFLAGS) $$target.o $(PEX_LIBS) $(LIBSSL) $(LIBKRB5) $(LIBCRYPTO) $(EX_LIBS) ; \
321 fi;
322
323$(FIPS_AESTEST)$(EXE_EXT): $(FIPS_AESTEST).o $(DLIBCRYPTO)
324 @target=$(FIPS_AESTEST); $(BUILD_CMD)
325 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
326 TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a $(FIPS_AESTEST); \
327 fi
328
329$(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO)
330 @target=$(RSATEST); $(BUILD_CMD)
331
332$(BNTEST)$(EXE_EXT): $(BNTEST).o $(DLIBCRYPTO)
333 @target=$(BNTEST); $(BUILD_CMD)
334
335$(ECTEST)$(EXE_EXT): $(ECTEST).o $(DLIBCRYPTO)
336 @target=$(ECTEST); $(BUILD_CMD)
337
338$(EXPTEST)$(EXE_EXT): $(EXPTEST).o $(DLIBCRYPTO)
339 @target=$(EXPTEST); $(BUILD_CMD)
340
341$(IDEATEST)$(EXE_EXT): $(IDEATEST).o $(DLIBCRYPTO)
342 @target=$(IDEATEST); $(BUILD_CMD)
343
344$(MD2TEST)$(EXE_EXT): $(MD2TEST).o $(DLIBCRYPTO)
345 @target=$(MD2TEST); $(BUILD_CMD)
346
347$(SHATEST)$(EXE_EXT): $(SHATEST).o $(DLIBCRYPTO)
348 @target=$(SHATEST); $(BUILD_CMD)
349
350$(SHA1TEST)$(EXE_EXT): $(SHA1TEST).o $(DLIBCRYPTO)
351 @target=$(SHA1TEST); $(BUILD_CMD)
352
353$(FIPS_SHA1TEST)$(EXE_EXT): $(FIPS_SHA1TEST).o $(DLIBCRYPTO)
354 @target=$(FIPS_SHA1TEST); $(BUILD_CMD)
355 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
356 TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a $(FIPS_SHA1TEST); \
357 fi
358
359$(RMDTEST)$(EXE_EXT): $(RMDTEST).o $(DLIBCRYPTO)
360 @target=$(RMDTEST); $(BUILD_CMD)
361
362$(MDC2TEST)$(EXE_EXT): $(MDC2TEST).o $(DLIBCRYPTO)
363 @target=$(MDC2TEST); $(BUILD_CMD)
364
365$(MD4TEST)$(EXE_EXT): $(MD4TEST).o $(DLIBCRYPTO)
366 @target=$(MD4TEST); $(BUILD_CMD)
367
368$(MD5TEST)$(EXE_EXT): $(MD5TEST).o $(DLIBCRYPTO)
369 @target=$(MD5TEST); $(BUILD_CMD)
370
371$(HMACTEST)$(EXE_EXT): $(HMACTEST).o $(DLIBCRYPTO)
372 @target=$(HMACTEST); $(BUILD_CMD)
373
374$(RC2TEST)$(EXE_EXT): $(RC2TEST).o $(DLIBCRYPTO)
375 @target=$(RC2TEST); $(BUILD_CMD)
376
377$(BFTEST)$(EXE_EXT): $(BFTEST).o $(DLIBCRYPTO)
378 @target=$(BFTEST); $(BUILD_CMD)
379
380$(CASTTEST)$(EXE_EXT): $(CASTTEST).o $(DLIBCRYPTO)
381 @target=$(CASTTEST); $(BUILD_CMD)
382
383$(RC4TEST)$(EXE_EXT): $(RC4TEST).o $(DLIBCRYPTO)
384 @target=$(RC4TEST); $(BUILD_CMD)
385
386$(RC5TEST)$(EXE_EXT): $(RC5TEST).o $(DLIBCRYPTO)
387 @target=$(RC5TEST); $(BUILD_CMD)
388
389$(DESTEST)$(EXE_EXT): $(DESTEST).o $(DLIBCRYPTO)
390 @target=$(DESTEST); $(BUILD_CMD)
391
392$(FIPS_DESTEST)$(EXE_EXT): $(FIPS_DESTEST).o $(DLIBCRYPTO)
393 @target=$(FIPS_DESTEST); $(BUILD_CMD)
394 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
395 TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a $(FIPS_DESTEST); \
396 fi
397
398$(RANDTEST)$(EXE_EXT): $(RANDTEST).o $(DLIBCRYPTO)
399 @target=$(RANDTEST); $(BUILD_CMD)
400
401$(FIPS_RANDTEST)$(EXE_EXT): $(FIPS_RANDTEST).o $(DLIBCRYPTO)
402 @target=$(FIPS_RANDTEST); $(BUILD_CMD)
403 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
404 TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a $(FIPS_RANDTEST); \
405 fi
406
407$(DHTEST)$(EXE_EXT): $(DHTEST).o $(DLIBCRYPTO)
408 @target=$(DHTEST); $(BUILD_CMD)
409
410$(DSATEST)$(EXE_EXT): $(DSATEST).o $(DLIBCRYPTO)
411 @target=$(DSATEST); $(BUILD_CMD)
412
413$(FIPS_DSATEST)$(EXE_EXT): $(FIPS_DSATEST).o $(DLIBCRYPTO)
414 @target=$(FIPS_DSATEST); $(BUILD_CMD)
415 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
416 TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a $(FIPS_DSATEST); \
417 fi
418
419$(METHTEST)$(EXE_EXT): $(METHTEST).o $(DLIBCRYPTO)
420 @target=$(METHTEST); $(BUILD_CMD)
421
422$(SSLTEST)$(EXE_EXT): $(SSLTEST).o $(DLIBSSL) $(DLIBCRYPTO)
423 @target=$(SSLTEST); $(BUILD_CMD)
424 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
425 TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a $(SSLTEST); \
426 fi
427
428$(ENGINETEST)$(EXE_EXT): $(ENGINETEST).o $(DLIBCRYPTO)
429 @target=$(ENGINETEST); $(BUILD_CMD)
430
431$(EVPTEST)$(EXE_EXT): $(EVPTEST).o $(DLIBCRYPTO)
432 @target=$(EVPTEST); $(BUILD_CMD)
433
434#$(AESTEST).o: $(AESTEST).c
435# $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c
436
437#$(AESTEST)$(EXE_EXT): $(AESTEST).o $(DLIBCRYPTO)
438# @target=$(AESTEST); $(BUILD_CMD)
439
440dummytest$(EXE_EXT): dummytest.o $(DLIBCRYPTO)
441 @target=dummytest; $(BUILD_CMD)
442
443# DO NOT DELETE THIS LINE -- make depend depends on it.
444
445bftest.o: ../e_os.h ../include/openssl/blowfish.h ../include/openssl/e_os2.h
446bftest.o: ../include/openssl/opensslconf.h bftest.c
447bntest.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
448bntest.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
449bntest.o: ../include/openssl/bn.h ../include/openssl/buffer.h
450bntest.o: ../include/openssl/cast.h ../include/openssl/crypto.h
451bntest.o: ../include/openssl/des.h ../include/openssl/des_old.h
452bntest.o: ../include/openssl/dh.h ../include/openssl/dsa.h
453bntest.o: ../include/openssl/e_os2.h ../include/openssl/err.h
454bntest.o: ../include/openssl/evp.h ../include/openssl/idea.h
455bntest.o: ../include/openssl/lhash.h ../include/openssl/md2.h
456bntest.o: ../include/openssl/md4.h ../include/openssl/md5.h
457bntest.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
458bntest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
459bntest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
460bntest.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
461bntest.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
462bntest.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
463bntest.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
464bntest.o: ../include/openssl/sha.h ../include/openssl/stack.h
465bntest.o: ../include/openssl/symhacks.h ../include/openssl/ui.h
466bntest.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
467bntest.o: ../include/openssl/x509_vfy.h bntest.c
468casttest.o: ../e_os.h ../include/openssl/cast.h ../include/openssl/e_os2.h
469casttest.o: ../include/openssl/opensslconf.h casttest.c
470destest.o: ../include/openssl/crypto.h ../include/openssl/des.h
471destest.o: ../include/openssl/des_old.h ../include/openssl/e_os2.h
472destest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
473destest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
474destest.o: ../include/openssl/symhacks.h ../include/openssl/ui.h
475destest.o: ../include/openssl/ui_compat.h destest.c
476dhtest.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/bn.h
477dhtest.o: ../include/openssl/crypto.h ../include/openssl/dh.h
478dhtest.o: ../include/openssl/e_os2.h ../include/openssl/err.h
479dhtest.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
480dhtest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
481dhtest.o: ../include/openssl/rand.h ../include/openssl/safestack.h
482dhtest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h dhtest.c
483dsatest.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/bn.h
484dsatest.o: ../include/openssl/crypto.h ../include/openssl/dh.h
485dsatest.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
486dsatest.o: ../include/openssl/err.h ../include/openssl/lhash.h
487dsatest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
488dsatest.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
489dsatest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
490dsatest.o: ../include/openssl/symhacks.h dsatest.c
491ectest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
492ectest.o: ../include/openssl/bn.h ../include/openssl/crypto.h
493ectest.o: ../include/openssl/dh.h ../include/openssl/dsa.h
494ectest.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
495ectest.o: ../include/openssl/engine.h ../include/openssl/err.h
496ectest.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
497ectest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
498ectest.o: ../include/openssl/rand.h ../include/openssl/rsa.h
499ectest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
500ectest.o: ../include/openssl/symhacks.h ../include/openssl/ui.h ectest.c
501enginetest.o: ../include/openssl/asn1.h ../include/openssl/bio.h
502enginetest.o: ../include/openssl/bn.h ../include/openssl/buffer.h
503enginetest.o: ../include/openssl/crypto.h ../include/openssl/dh.h
504enginetest.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
505enginetest.o: ../include/openssl/engine.h ../include/openssl/err.h
506enginetest.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
507enginetest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
508enginetest.o: ../include/openssl/rand.h ../include/openssl/rsa.h
509enginetest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
510enginetest.o: ../include/openssl/symhacks.h ../include/openssl/ui.h
511enginetest.o: enginetest.c
512evp_test.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
513evp_test.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
514evp_test.o: ../include/openssl/bn.h ../include/openssl/cast.h
515evp_test.o: ../include/openssl/conf.h ../include/openssl/crypto.h
516evp_test.o: ../include/openssl/des.h ../include/openssl/des_old.h
517evp_test.o: ../include/openssl/dh.h ../include/openssl/dsa.h
518evp_test.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
519evp_test.o: ../include/openssl/err.h ../include/openssl/evp.h
520evp_test.o: ../include/openssl/idea.h ../include/openssl/lhash.h
521evp_test.o: ../include/openssl/md2.h ../include/openssl/md4.h
522evp_test.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
523evp_test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
524evp_test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
525evp_test.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
526evp_test.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
527evp_test.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
528evp_test.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
529evp_test.o: ../include/openssl/sha.h ../include/openssl/stack.h
530evp_test.o: ../include/openssl/symhacks.h ../include/openssl/ui.h
531evp_test.o: ../include/openssl/ui_compat.h evp_test.c
532exptest.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/bn.h
533exptest.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
534exptest.o: ../include/openssl/err.h ../include/openssl/lhash.h
535exptest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
536exptest.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
537exptest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
538exptest.o: ../include/openssl/symhacks.h exptest.c
539fips_aesavs.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
540fips_aesavs.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
541fips_aesavs.o: ../include/openssl/bn.h ../include/openssl/cast.h
542fips_aesavs.o: ../include/openssl/crypto.h ../include/openssl/des.h
543fips_aesavs.o: ../include/openssl/des_old.h ../include/openssl/dh.h
544fips_aesavs.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
545fips_aesavs.o: ../include/openssl/err.h ../include/openssl/evp.h
546fips_aesavs.o: ../include/openssl/fips.h ../include/openssl/idea.h
547fips_aesavs.o: ../include/openssl/lhash.h ../include/openssl/md2.h
548fips_aesavs.o: ../include/openssl/md4.h ../include/openssl/md5.h
549fips_aesavs.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
550fips_aesavs.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
551fips_aesavs.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
552fips_aesavs.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
553fips_aesavs.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
554fips_aesavs.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
555fips_aesavs.o: ../include/openssl/sha.h ../include/openssl/stack.h
556fips_aesavs.o: ../include/openssl/symhacks.h ../include/openssl/ui.h
557fips_aesavs.o: ../include/openssl/ui_compat.h fips_aesavs.c
558fips_desmovs.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
559fips_desmovs.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
560fips_desmovs.o: ../include/openssl/bn.h ../include/openssl/cast.h
561fips_desmovs.o: ../include/openssl/crypto.h ../include/openssl/des.h
562fips_desmovs.o: ../include/openssl/des_old.h ../include/openssl/dh.h
563fips_desmovs.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
564fips_desmovs.o: ../include/openssl/err.h ../include/openssl/evp.h
565fips_desmovs.o: ../include/openssl/fips.h ../include/openssl/idea.h
566fips_desmovs.o: ../include/openssl/lhash.h ../include/openssl/md2.h
567fips_desmovs.o: ../include/openssl/md4.h ../include/openssl/md5.h
568fips_desmovs.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
569fips_desmovs.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
570fips_desmovs.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
571fips_desmovs.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
572fips_desmovs.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
573fips_desmovs.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
574fips_desmovs.o: ../include/openssl/sha.h ../include/openssl/stack.h
575fips_desmovs.o: ../include/openssl/symhacks.h ../include/openssl/ui.h
576fips_desmovs.o: ../include/openssl/ui_compat.h fips_desmovs.c
577fips_dsatest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
578fips_dsatest.o: ../include/openssl/bn.h ../include/openssl/crypto.h
579fips_dsatest.o: ../include/openssl/des.h ../include/openssl/des_old.h
580fips_dsatest.o: ../include/openssl/dh.h ../include/openssl/dsa.h
581fips_dsatest.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
582fips_dsatest.o: ../include/openssl/err.h ../include/openssl/fips.h
583fips_dsatest.o: ../include/openssl/fips_rand.h ../include/openssl/lhash.h
584fips_dsatest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
585fips_dsatest.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
586fips_dsatest.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
587fips_dsatest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
588fips_dsatest.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
589fips_dsatest.o: fips_dsatest.c
590fips_randtest.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/crypto.h
591fips_randtest.o: ../include/openssl/des.h ../include/openssl/des_old.h
592fips_randtest.o: ../include/openssl/e_os2.h ../include/openssl/err.h
593fips_randtest.o: ../include/openssl/fips_rand.h ../include/openssl/lhash.h
594fips_randtest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
595fips_randtest.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
596fips_randtest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
597fips_randtest.o: ../include/openssl/symhacks.h ../include/openssl/ui.h
598fips_randtest.o: ../include/openssl/ui_compat.h fips_randtest.c
599fips_sha1test.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/crypto.h
600fips_sha1test.o: ../include/openssl/e_os2.h ../include/openssl/err.h
601fips_sha1test.o: ../include/openssl/fips.h ../include/openssl/lhash.h
602fips_sha1test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
603fips_sha1test.o: ../include/openssl/safestack.h ../include/openssl/sha.h
604fips_sha1test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
605fips_sha1test.o: fips_sha1test.c
606hmactest.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
607hmactest.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
608hmactest.o: ../include/openssl/bn.h ../include/openssl/cast.h
609hmactest.o: ../include/openssl/crypto.h ../include/openssl/des.h
610hmactest.o: ../include/openssl/des_old.h ../include/openssl/dh.h
611hmactest.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
612hmactest.o: ../include/openssl/evp.h ../include/openssl/hmac.h
613hmactest.o: ../include/openssl/idea.h ../include/openssl/md2.h
614hmactest.o: ../include/openssl/md4.h ../include/openssl/md5.h
615hmactest.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
616hmactest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
617hmactest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
618hmactest.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
619hmactest.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
620hmactest.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
621hmactest.o: ../include/openssl/sha.h ../include/openssl/stack.h
622hmactest.o: ../include/openssl/symhacks.h ../include/openssl/ui.h
623hmactest.o: ../include/openssl/ui_compat.h hmactest.c
624ideatest.o: ../e_os.h ../include/openssl/e_os2.h ../include/openssl/idea.h
625ideatest.o: ../include/openssl/opensslconf.h ideatest.c
626md2test.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
627md2test.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
628md2test.o: ../include/openssl/bn.h ../include/openssl/cast.h
629md2test.o: ../include/openssl/crypto.h ../include/openssl/des.h
630md2test.o: ../include/openssl/des_old.h ../include/openssl/dh.h
631md2test.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
632md2test.o: ../include/openssl/evp.h ../include/openssl/idea.h
633md2test.o: ../include/openssl/md2.h ../include/openssl/md4.h
634md2test.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
635md2test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
636md2test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
637md2test.o: ../include/openssl/ossl_typ.h ../include/openssl/rc2.h
638md2test.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
639md2test.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
640md2test.o: ../include/openssl/safestack.h ../include/openssl/sha.h
641md2test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
642md2test.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h md2test.c
643md4test.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
644md4test.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
645md4test.o: ../include/openssl/bn.h ../include/openssl/cast.h
646md4test.o: ../include/openssl/crypto.h ../include/openssl/des.h
647md4test.o: ../include/openssl/des_old.h ../include/openssl/dh.h
648md4test.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
649md4test.o: ../include/openssl/evp.h ../include/openssl/idea.h
650md4test.o: ../include/openssl/md2.h ../include/openssl/md4.h
651md4test.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
652md4test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
653md4test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
654md4test.o: ../include/openssl/ossl_typ.h ../include/openssl/rc2.h
655md4test.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
656md4test.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
657md4test.o: ../include/openssl/safestack.h ../include/openssl/sha.h
658md4test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
659md4test.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h md4test.c
660md5test.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
661md5test.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
662md5test.o: ../include/openssl/bn.h ../include/openssl/cast.h
663md5test.o: ../include/openssl/crypto.h ../include/openssl/des.h
664md5test.o: ../include/openssl/des_old.h ../include/openssl/dh.h
665md5test.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
666md5test.o: ../include/openssl/evp.h ../include/openssl/idea.h
667md5test.o: ../include/openssl/md2.h ../include/openssl/md4.h
668md5test.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
669md5test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
670md5test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
671md5test.o: ../include/openssl/ossl_typ.h ../include/openssl/rc2.h
672md5test.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
673md5test.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
674md5test.o: ../include/openssl/safestack.h ../include/openssl/sha.h
675md5test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
676md5test.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h md5test.c
677mdc2test.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
678mdc2test.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
679mdc2test.o: ../include/openssl/bn.h ../include/openssl/cast.h
680mdc2test.o: ../include/openssl/crypto.h ../include/openssl/des.h
681mdc2test.o: ../include/openssl/des_old.h ../include/openssl/dh.h
682mdc2test.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
683mdc2test.o: ../include/openssl/evp.h ../include/openssl/idea.h
684mdc2test.o: ../include/openssl/md2.h ../include/openssl/md4.h
685mdc2test.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
686mdc2test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
687mdc2test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
688mdc2test.o: ../include/openssl/ossl_typ.h ../include/openssl/rc2.h
689mdc2test.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
690mdc2test.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
691mdc2test.o: ../include/openssl/safestack.h ../include/openssl/sha.h
692mdc2test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
693mdc2test.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h mdc2test.c
694randtest.o: ../e_os.h ../include/openssl/e_os2.h
695randtest.o: ../include/openssl/opensslconf.h ../include/openssl/ossl_typ.h
696randtest.o: ../include/openssl/rand.h randtest.c
697rc2test.o: ../e_os.h ../include/openssl/e_os2.h
698rc2test.o: ../include/openssl/opensslconf.h ../include/openssl/rc2.h rc2test.c
699rc4test.o: ../e_os.h ../include/openssl/e_os2.h
700rc4test.o: ../include/openssl/opensslconf.h ../include/openssl/rc4.h rc4test.c
701rc5test.o: ../e_os.h ../include/openssl/e_os2.h
702rc5test.o: ../include/openssl/opensslconf.h ../include/openssl/rc5.h rc5test.c
703rmdtest.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
704rmdtest.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
705rmdtest.o: ../include/openssl/bn.h ../include/openssl/cast.h
706rmdtest.o: ../include/openssl/crypto.h ../include/openssl/des.h
707rmdtest.o: ../include/openssl/des_old.h ../include/openssl/dh.h
708rmdtest.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
709rmdtest.o: ../include/openssl/evp.h ../include/openssl/idea.h
710rmdtest.o: ../include/openssl/md2.h ../include/openssl/md4.h
711rmdtest.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
712rmdtest.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
713rmdtest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
714rmdtest.o: ../include/openssl/ossl_typ.h ../include/openssl/rc2.h
715rmdtest.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
716rmdtest.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
717rmdtest.o: ../include/openssl/safestack.h ../include/openssl/sha.h
718rmdtest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
719rmdtest.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h rmdtest.c
720rsa_test.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
721rsa_test.o: ../include/openssl/bn.h ../include/openssl/crypto.h
722rsa_test.o: ../include/openssl/e_os2.h ../include/openssl/err.h
723rsa_test.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
724rsa_test.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
725rsa_test.o: ../include/openssl/rand.h ../include/openssl/rsa.h
726rsa_test.o: ../include/openssl/safestack.h ../include/openssl/stack.h
727rsa_test.o: ../include/openssl/symhacks.h rsa_test.c
728sha1test.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
729sha1test.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
730sha1test.o: ../include/openssl/bn.h ../include/openssl/cast.h
731sha1test.o: ../include/openssl/crypto.h ../include/openssl/des.h
732sha1test.o: ../include/openssl/des_old.h ../include/openssl/dh.h
733sha1test.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
734sha1test.o: ../include/openssl/evp.h ../include/openssl/idea.h
735sha1test.o: ../include/openssl/md2.h ../include/openssl/md4.h
736sha1test.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
737sha1test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
738sha1test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
739sha1test.o: ../include/openssl/ossl_typ.h ../include/openssl/rc2.h
740sha1test.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
741sha1test.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
742sha1test.o: ../include/openssl/safestack.h ../include/openssl/sha.h
743sha1test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
744sha1test.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h sha1test.c
745shatest.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
746shatest.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
747shatest.o: ../include/openssl/bn.h ../include/openssl/cast.h
748shatest.o: ../include/openssl/crypto.h ../include/openssl/des.h
749shatest.o: ../include/openssl/des_old.h ../include/openssl/dh.h
750shatest.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
751shatest.o: ../include/openssl/evp.h ../include/openssl/idea.h
752shatest.o: ../include/openssl/md2.h ../include/openssl/md4.h
753shatest.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
754shatest.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
755shatest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
756shatest.o: ../include/openssl/ossl_typ.h ../include/openssl/rc2.h
757shatest.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
758shatest.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
759shatest.o: ../include/openssl/safestack.h ../include/openssl/sha.h
760shatest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
761shatest.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h shatest.c
762ssltest.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
763ssltest.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
764ssltest.o: ../include/openssl/bn.h ../include/openssl/buffer.h
765ssltest.o: ../include/openssl/cast.h ../include/openssl/comp.h
766ssltest.o: ../include/openssl/conf.h ../include/openssl/crypto.h
767ssltest.o: ../include/openssl/des.h ../include/openssl/des_old.h
768ssltest.o: ../include/openssl/dh.h ../include/openssl/dsa.h
769ssltest.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
770ssltest.o: ../include/openssl/err.h ../include/openssl/evp.h
771ssltest.o: ../include/openssl/fips.h ../include/openssl/idea.h
772ssltest.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
773ssltest.o: ../include/openssl/md2.h ../include/openssl/md4.h
774ssltest.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
775ssltest.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
776ssltest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
777ssltest.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
778ssltest.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
779ssltest.o: ../include/openssl/rand.h ../include/openssl/rc2.h
780ssltest.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
781ssltest.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
782ssltest.o: ../include/openssl/safestack.h ../include/openssl/sha.h
783ssltest.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
784ssltest.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
785ssltest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
786ssltest.o: ../include/openssl/tls1.h ../include/openssl/ui.h
787ssltest.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
788ssltest.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h ssltest.c
diff --git a/src/lib/libssl/src/test/P1ss.cnf b/src/lib/libssl/src/test/P1ss.cnf
new file mode 100644
index 0000000000..876a0d35f8
--- /dev/null
+++ b/src/lib/libssl/src/test/P1ss.cnf
@@ -0,0 +1,37 @@
1#
2# SSLeay example configuration file.
3# This is mostly being used for generation of certificate requests.
4#
5
6RANDFILE = ./.rnd
7
8####################################################################
9[ req ]
10default_bits = 512
11default_keyfile = keySS.pem
12distinguished_name = req_distinguished_name
13encrypt_rsa_key = no
14default_md = md2
15
16[ req_distinguished_name ]
17countryName = Country Name (2 letter code)
18countryName_default = AU
19countryName_value = AU
20
21organizationName = Organization Name (eg, company)
22organizationName_value = Dodgy Brothers
23
240.commonName = Common Name (eg, YOUR name)
250.commonName_value = Brother 1
26
271.commonName = Common Name (eg, YOUR name)
281.commonName_value = Brother 2
29
302.commonName = Common Name (eg, YOUR name)
312.commonName_value = Proxy 1
32
33[ v3_proxy ]
34basicConstraints=CA:FALSE
35subjectKeyIdentifier=hash
36authorityKeyIdentifier=keyid,issuer:always
37proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:1,policy:text:AB
diff --git a/src/lib/libssl/src/test/P2ss.cnf b/src/lib/libssl/src/test/P2ss.cnf
new file mode 100644
index 0000000000..373a87e7c2
--- /dev/null
+++ b/src/lib/libssl/src/test/P2ss.cnf
@@ -0,0 +1,45 @@
1#
2# SSLeay example configuration file.
3# This is mostly being used for generation of certificate requests.
4#
5
6RANDFILE = ./.rnd
7
8####################################################################
9[ req ]
10default_bits = 512
11default_keyfile = keySS.pem
12distinguished_name = req_distinguished_name
13encrypt_rsa_key = no
14default_md = md2
15
16[ req_distinguished_name ]
17countryName = Country Name (2 letter code)
18countryName_default = AU
19countryName_value = AU
20
21organizationName = Organization Name (eg, company)
22organizationName_value = Dodgy Brothers
23
240.commonName = Common Name (eg, YOUR name)
250.commonName_value = Brother 1
26
271.commonName = Common Name (eg, YOUR name)
281.commonName_value = Brother 2
29
302.commonName = Common Name (eg, YOUR name)
312.commonName_value = Proxy 1
32
333.commonName = Common Name (eg, YOUR name)
343.commonName_value = Proxy 2
35
36[ v3_proxy ]
37basicConstraints=CA:FALSE
38subjectKeyIdentifier=hash
39authorityKeyIdentifier=keyid,issuer:always
40proxyCertInfo=critical,@proxy_ext
41
42[ proxy_ext ]
43language=id-ppl-anyLanguage
44pathlen=0
45policy=text:BC
diff --git a/src/lib/libssl/src/test/Uss.cnf b/src/lib/libssl/src/test/Uss.cnf
index c89692d519..0c0ebb5f67 100644
--- a/src/lib/libssl/src/test/Uss.cnf
+++ b/src/lib/libssl/src/test/Uss.cnf
@@ -26,3 +26,11 @@ organizationName_value = Dodgy Brothers
26 26
271.commonName = Common Name (eg, YOUR name) 271.commonName = Common Name (eg, YOUR name)
281.commonName_value = Brother 2 281.commonName_value = Brother 2
29
30[ v3_ee ]
31subjectKeyIdentifier=hash
32authorityKeyIdentifier=keyid,issuer:always
33basicConstraints = CA:false
34keyUsage = nonRepudiation, digitalSignature, keyEncipherment
35issuerAltName=issuer:copy
36
diff --git a/src/lib/libssl/src/test/bctest b/src/lib/libssl/src/test/bctest
index bdb3218f7a..e81fc0733a 100644
--- a/src/lib/libssl/src/test/bctest
+++ b/src/lib/libssl/src/test/bctest
@@ -1,6 +1,6 @@
1#!/bin/sh 1#!/bin/sh
2 2
3# This script is used by test/Makefile.ssl to check whether a sane 'bc' 3# This script is used by test/Makefile to check whether a sane 'bc'
4# is installed. 4# is installed.
5# ('make test_bn' should not try to run 'bc' if it does not exist or if 5# ('make test_bn' should not try to run 'bc' if it does not exist or if
6# it is a broken 'bc' version that is known to cause trouble.) 6# it is a broken 'bc' version that is known to cause trouble.)
diff --git a/src/lib/libssl/src/test/evptests.txt b/src/lib/libssl/src/test/evptests.txt
index 80bd9c7765..dfe91a5bc0 100644
--- a/src/lib/libssl/src/test/evptests.txt
+++ b/src/lib/libssl/src/test/evptests.txt
@@ -92,7 +92,102 @@ AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:000
92AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:F58C4C04D6E5F1BA779EABFB5F7BFBD6:AE2D8A571E03AC9C9EB76FAC45AF8E51:9CFC4E967EDB808D679F777BC6702C7D 92AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:F58C4C04D6E5F1BA779EABFB5F7BFBD6:AE2D8A571E03AC9C9EB76FAC45AF8E51:9CFC4E967EDB808D679F777BC6702C7D
93AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:9CFC4E967EDB808D679F777BC6702C7D:30C81C46A35CE411E5FBC1191A0A52EF:39F23369A9D9BACFA530E26304231461 93AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:9CFC4E967EDB808D679F777BC6702C7D:30C81C46A35CE411E5FBC1191A0A52EF:39F23369A9D9BACFA530E26304231461
94AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:39F23369A9D9BACFA530E26304231461:F69F2445DF4F9B17AD2B417BE66C3710:B2EB05E2C39BE9FCDA6C19078C6A9D1B 94AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:39F23369A9D9BACFA530E26304231461:F69F2445DF4F9B17AD2B417BE66C3710:B2EB05E2C39BE9FCDA6C19078C6A9D1B
95# We don't support CFB{1,8}-AESxxx.{En,De}crypt 95
96# CFB1-AES128.Encrypt
97
98AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:00:00:1
99AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:00020406080a0c0e10121416181a1c1e:80:80:1
100AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0004080c1014181c2024282c3034383d:80:80:1
101AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0008101820283038404850586068707b:00:00:1
102AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:00102030405060708090a0b0c0d0e0f6:80:80:1
103AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0020406080a0c0e10121416181a1c1ed:00:00:1
104AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:004080c1014181c2024282c3034383da:80:00:1
105AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:008101820283038404850586068707b4:80:00:1
106AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0102030405060708090a0b0c0d0e0f68:80:80:1
107AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:020406080a0c0e10121416181a1c1ed1:80:00:1
108AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:04080c1014181c2024282c3034383da2:00:80:1
109AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:08101820283038404850586068707b45:00:80:1
110AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:102030405060708090a0b0c0d0e0f68b:00:00:1
111AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:20406080a0c0e10121416181a1c1ed16:00:00:1
112AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:4080c1014181c2024282c3034383da2c:00:80:1
113AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:8101820283038404850586068707b459:80:80:1
114# all of the above packed into one...
115# in: 0110 1011 1100 0001 = 6bc1
116# out: 0110 1000 1011 0011 = 68b3
117AES-128-CFB1*8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6bc1:68b3:1
118
119# CFB1-AES128.Decrypt
120AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:00:00:0
121AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:00020406080a0c0e10121416181a1c1e:80:80:0
122AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0004080c1014181c2024282c3034383d:80:80:0
123AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0008101820283038404850586068707b:00:00:0
124AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:00102030405060708090a0b0c0d0e0f6:80:80:0
125AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0020406080a0c0e10121416181a1c1ed:00:00:0
126AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:004080c1014181c2024282c3034383da:80:00:0
127AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:008101820283038404850586068707b4:80:00:0
128AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0102030405060708090a0b0c0d0e0f68:80:80:0
129AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:020406080a0c0e10121416181a1c1ed1:80:00:0
130AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:04080c1014181c2024282c3034383da2:00:80:0
131AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:08101820283038404850586068707b45:00:80:0
132AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:102030405060708090a0b0c0d0e0f68b:00:00:0
133AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:20406080a0c0e10121416181a1c1ed16:00:00:0
134AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:4080c1014181c2024282c3034383da2c:00:80:0
135AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:8101820283038404850586068707b459:80:80:0
136# all of the above packed into one...
137# in: 0110 1000 1011 0011 = 68b3
138# out: 0110 1011 1100 0001 = 6bc1
139AES-128-CFB1*8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6bc1:68b3:0
140
141# TODO: CFB1-AES192 and 256
142
143# CFB8-AES128.Encrypt
144
145AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6b:3b:1
146AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0102030405060708090a0b0c0d0e0f3b:c1:79:1
147AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:02030405060708090a0b0c0d0e0f3b79:be:42:1
148AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:030405060708090a0b0c0d0e0f3b7942:e2:4c:1
149AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0405060708090a0b0c0d0e0f3b79424c:2e:9c:1
150AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:05060708090a0b0c0d0e0f3b79424c9c:40:0d:1
151AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:060708090a0b0c0d0e0f3b79424c9c0d:9f:d4:1
152AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0708090a0b0c0d0e0f3b79424c9c0dd4:96:36:1
153AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:08090a0b0c0d0e0f3b79424c9c0dd436:e9:ba:1
154AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:090a0b0c0d0e0f3b79424c9c0dd436ba:3d:ce:1
155AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0a0b0c0d0e0f3b79424c9c0dd436bace:7e:9e:1
156AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0b0c0d0e0f3b79424c9c0dd436bace9e:11:0e:1
157AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0c0d0e0f3b79424c9c0dd436bace9e0e:73:d4:1
158AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0d0e0f3b79424c9c0dd436bace9e0ed4:93:58:1
159AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0e0f3b79424c9c0dd436bace9e0ed458:17:6a:1
160AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0f3b79424c9c0dd436bace9e0ed4586a:2a:4f:1
161AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:3b79424c9c0dd436bace9e0ed4586a4f:ae:32:1
162AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:79424c9c0dd436bace9e0ed4586a4f32:2d:b9:1
163# all of the above packed into one
164AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6bc1bee22e409f96e93d7e117393172aae2d:3b79424c9c0dd436bace9e0ed4586a4f32b9:1
165
166# CFB8-AES128.Decrypt
167
168AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6b:3b:0
169AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0102030405060708090a0b0c0d0e0f3b:c1:79:0
170AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:02030405060708090a0b0c0d0e0f3b79:be:42:0
171AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:030405060708090a0b0c0d0e0f3b7942:e2:4c:0
172AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0405060708090a0b0c0d0e0f3b79424c:2e:9c:0
173AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:05060708090a0b0c0d0e0f3b79424c9c:40:0d:0
174AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:060708090a0b0c0d0e0f3b79424c9c0d:9f:d4:0
175AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0708090a0b0c0d0e0f3b79424c9c0dd4:96:36:0
176AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:08090a0b0c0d0e0f3b79424c9c0dd436:e9:ba:0
177AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:090a0b0c0d0e0f3b79424c9c0dd436ba:3d:ce:0
178AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0a0b0c0d0e0f3b79424c9c0dd436bace:7e:9e:0
179AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0b0c0d0e0f3b79424c9c0dd436bace9e:11:0e:0
180AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0c0d0e0f3b79424c9c0dd436bace9e0e:73:d4:0
181AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0d0e0f3b79424c9c0dd436bace9e0ed4:93:58:0
182AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0e0f3b79424c9c0dd436bace9e0ed458:17:6a:0
183AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0f3b79424c9c0dd436bace9e0ed4586a:2a:4f:0
184AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:3b79424c9c0dd436bace9e0ed4586a4f:ae:32:0
185AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:79424c9c0dd436bace9e0ed4586a4f32:2d:b9:0
186# all of the above packed into one
187AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6bc1bee22e409f96e93d7e117393172aae2d:3b79424c9c0dd436bace9e0ed4586a4f32b9:0
188
189# TODO: 192 and 256 bit keys
190
96# For all CFB128 encrypts and decrypts, the transformed sequence is 191# For all CFB128 encrypts and decrypts, the transformed sequence is
97# AES-bits-CFB:key:IV/ciphertext':plaintext:ciphertext:encdec 192# AES-bits-CFB:key:IV/ciphertext':plaintext:ciphertext:encdec
98# CFB128-AES128.Encrypt 193# CFB128-AES128.Encrypt
@@ -174,6 +269,16 @@ DESX-CBC:0123456789abcdeff1e0d3c2b5a49786fedcba9876543210:fedcba9876543210:37363
174# DES EDE3 CBC tests (from destest) 269# DES EDE3 CBC tests (from destest)
175DES-EDE3-CBC:0123456789abcdeff1e0d3c2b5a49786fedcba9876543210:fedcba9876543210:37363534333231204E6F77206973207468652074696D6520666F722000000000:3FE301C962AC01D02213763C1CBD4CDC799657C064ECF5D41C673812CFDE9675 270DES-EDE3-CBC:0123456789abcdeff1e0d3c2b5a49786fedcba9876543210:fedcba9876543210:37363534333231204E6F77206973207468652074696D6520666F722000000000:3FE301C962AC01D02213763C1CBD4CDC799657C064ECF5D41C673812CFDE9675
176 271
272# DES CFB1 from FIPS 81
273# plaintext: 0100 1110 0110 1111 0111 0111 = 4e6f77
274# ciphertext: 1100 1101 0001 1110 1100 1001 = cd1ec9
275
276DES-CFB1*8:0123456789abcdef:1234567890abcdef:4e6f77:cd1ec9
277
278# DES CFB8 from FIPS 81
279
280DES-CFB8:0123456789abcdef:1234567890abcdef:4e6f7720697320746865:f31fda07011462ee187f
281
177# RC4 tests (from rc4test) 282# RC4 tests (from rc4test)
178RC4:0123456789abcdef0123456789abcdef::0123456789abcdef:75b7878099e0c596 283RC4:0123456789abcdef0123456789abcdef::0123456789abcdef:75b7878099e0c596
179RC4:0123456789abcdef0123456789abcdef::0000000000000000:7494c2e7104b0879 284RC4:0123456789abcdef0123456789abcdef::0000000000000000:7494c2e7104b0879
diff --git a/src/lib/libssl/src/test/maketests.com b/src/lib/libssl/src/test/maketests.com
index 7c44e4545a..dfbfef7b1b 100644
--- a/src/lib/libssl/src/test/maketests.com
+++ b/src/lib/libssl/src/test/maketests.com
@@ -615,7 +615,7 @@ $ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
615 THEN CC = "CC/DECC" 615 THEN CC = "CC/DECC"
616$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89" + - 616$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89" + -
617 "/NOLIST/PREFIX=ALL" + - 617 "/NOLIST/PREFIX=ALL" + -
618 "/INCLUDE=(SYS$DISK:[-])" + CCEXTRAFLAGS 618 "/INCLUDE=(SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + CCEXTRAFLAGS
619$! 619$!
620$! Define The Linker Options File Name. 620$! Define The Linker Options File Name.
621$! 621$!
@@ -648,7 +648,7 @@ $ EXIT
648$ ENDIF 648$ ENDIF
649$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC" 649$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC"
650$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - 650$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
651 "/INCLUDE=(SYS$DISK:[-])" + CCEXTRAFLAGS 651 "/INCLUDE=(SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + CCEXTRAFLAGS
652$ CCDEFS = CCDEFS + ",""VAXC""" 652$ CCDEFS = CCDEFS + ",""VAXC"""
653$! 653$!
654$! Define <sys> As SYS$COMMON:[SYSLIB] 654$! Define <sys> As SYS$COMMON:[SYSLIB]
@@ -679,7 +679,7 @@ $!
679$! Use GNU C... 679$! Use GNU C...
680$! 680$!
681$ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - 681$ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
682 "/INCLUDE=(SYS$DISK:[-])" + CCEXTRAFLAGS 682 "/INCLUDE=(SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + CCEXTRAFLAGS
683$! 683$!
684$! Define The Linker Options File Name. 684$! Define The Linker Options File Name.
685$! 685$!
diff --git a/src/lib/libssl/src/test/tcrl b/src/lib/libssl/src/test/tcrl
index f71ef7a863..3ffed12a03 100644
--- a/src/lib/libssl/src/test/tcrl
+++ b/src/lib/libssl/src/test/tcrl
@@ -7,7 +7,7 @@ else
7fi 7fi
8export PATH 8export PATH
9 9
10cmd='../apps/openssl crl' 10cmd='../util/shlib_wrap.sh ../apps/openssl crl'
11 11
12if [ "$1"x != "x" ]; then 12if [ "$1"x != "x" ]; then
13 t=$1 13 t=$1
diff --git a/src/lib/libssl/src/test/testca b/src/lib/libssl/src/test/testca
index 8215ebb5d1..5b2faa78f1 100644
--- a/src/lib/libssl/src/test/testca
+++ b/src/lib/libssl/src/test/testca
@@ -11,6 +11,9 @@ export SH PATH
11SSLEAY_CONFIG="-config CAss.cnf" 11SSLEAY_CONFIG="-config CAss.cnf"
12export SSLEAY_CONFIG 12export SSLEAY_CONFIG
13 13
14OPENSSL="`pwd`/../util/shlib_wrap.sh openssl"
15export OPENSSL
16
14/bin/rm -fr demoCA 17/bin/rm -fr demoCA
15$SH ../apps/CA.sh -newca <<EOF 18$SH ../apps/CA.sh -newca <<EOF
16EOF 19EOF
diff --git a/src/lib/libssl/src/test/testenc b/src/lib/libssl/src/test/testenc
index 0656c7f525..4571ea2875 100644
--- a/src/lib/libssl/src/test/testenc
+++ b/src/lib/libssl/src/test/testenc
@@ -1,14 +1,14 @@
1#!/bin/sh 1#!/bin/sh
2 2
3testsrc=Makefile.ssl 3testsrc=Makefile
4test=./p 4test=./p
5cmd=../apps/openssl 5cmd="../util/shlib_wrap.sh ../apps/openssl"
6 6
7cat $testsrc >$test; 7cat $testsrc >$test;
8 8
9echo cat 9echo cat
10$cmd enc < $test > $test.cipher 10$cmd enc -non-fips-allow < $test > $test.cipher
11$cmd enc < $test.cipher >$test.clear 11$cmd enc -non-fips-allow < $test.cipher >$test.clear
12cmp $test $test.clear 12cmp $test $test.clear
13if [ $? != 0 ] 13if [ $? != 0 ]
14then 14then
@@ -17,8 +17,8 @@ else
17 /bin/rm $test.cipher $test.clear 17 /bin/rm $test.cipher $test.clear
18fi 18fi
19echo base64 19echo base64
20$cmd enc -a -e < $test > $test.cipher 20$cmd enc -non-fips-allow -a -e < $test > $test.cipher
21$cmd enc -a -d < $test.cipher >$test.clear 21$cmd enc -non-fips-allow -a -d < $test.cipher >$test.clear
22cmp $test $test.clear 22cmp $test $test.clear
23if [ $? != 0 ] 23if [ $? != 0 ]
24then 24then
@@ -30,8 +30,8 @@ fi
30for i in `$cmd list-cipher-commands` 30for i in `$cmd list-cipher-commands`
31do 31do
32 echo $i 32 echo $i
33 $cmd $i -bufsize 113 -e -k test < $test > $test.$i.cipher 33 $cmd $i -non-fips-allow -bufsize 113 -e -k test < $test > $test.$i.cipher
34 $cmd $i -bufsize 157 -d -k test < $test.$i.cipher >$test.$i.clear 34 $cmd $i -non-fips-allow -bufsize 157 -d -k test < $test.$i.cipher >$test.$i.clear
35 cmp $test $test.$i.clear 35 cmp $test $test.$i.clear
36 if [ $? != 0 ] 36 if [ $? != 0 ]
37 then 37 then
@@ -41,8 +41,8 @@ do
41 fi 41 fi
42 42
43 echo $i base64 43 echo $i base64
44 $cmd $i -bufsize 113 -a -e -k test < $test > $test.$i.cipher 44 $cmd $i -non-fips-allow -bufsize 113 -a -e -k test < $test > $test.$i.cipher
45 $cmd $i -bufsize 157 -a -d -k test < $test.$i.cipher >$test.$i.clear 45 $cmd $i -non-fips-allow -bufsize 157 -a -d -k test < $test.$i.cipher >$test.$i.clear
46 cmp $test $test.$i.clear 46 cmp $test $test.$i.clear
47 if [ $? != 0 ] 47 if [ $? != 0 ]
48 then 48 then
diff --git a/src/lib/libssl/src/test/testenc.com b/src/lib/libssl/src/test/testenc.com
index c24fa388c0..5e6f521f9d 100644
--- a/src/lib/libssl/src/test/testenc.com
+++ b/src/lib/libssl/src/test/testenc.com
@@ -4,7 +4,7 @@ $ __arch := VAX
4$ if f$getsyi("cpu") .ge. 128 then __arch := AXP 4$ if f$getsyi("cpu") .ge. 128 then __arch := AXP
5$ exe_dir := sys$disk:[-.'__arch'.exe.apps] 5$ exe_dir := sys$disk:[-.'__arch'.exe.apps]
6$ 6$
7$ testsrc := makefile.ssl 7$ testsrc := makefile.
8$ test := p.txt 8$ test := p.txt
9$ cmd := mcr 'exe_dir'openssl 9$ cmd := mcr 'exe_dir'openssl
10$ 10$
diff --git a/src/lib/libssl/src/test/testfipsssl b/src/lib/libssl/src/test/testfipsssl
new file mode 100644
index 0000000000..c4836edc25
--- /dev/null
+++ b/src/lib/libssl/src/test/testfipsssl
@@ -0,0 +1,113 @@
1#!/bin/sh
2
3if [ "$1" = "" ]; then
4 key=../apps/server.pem
5else
6 key="$1"
7fi
8if [ "$2" = "" ]; then
9 cert=../apps/server.pem
10else
11 cert="$2"
12fi
13
14ciphers="DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:AES256-SHA:EDH-RSA-DES-CBC3-SHA:EDH-DSS-DES-CBC3-SHA:DES-CBC3-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:AES128-SHA:EXP1024-DHE-DSS-DES-CBC-SHA:EXP1024-DES-CBC-SHA:EDH-RSA-DES-CBC-SHA:EDH-DSS-DES-CBC-SHA:DES-CBC-SHA:EXP-EDH-RSA-DES-CBC-SHA:EXP-EDH-DSS-DES-CBC-SHA:EXP-DES-CBC-SHA"
15
16ssltest="../util/shlib_wrap.sh ./ssltest -F -key $key -cert $cert -c_key $key -c_cert $cert -cipher $ciphers"
17
18if ../util/shlib_wrap.sh ../apps/openssl x509 -in $cert -text -noout | fgrep 'DSA Public Key' >/dev/null; then
19 dsa_cert=YES
20else
21 dsa_cert=NO
22fi
23
24if [ "$3" = "" ]; then
25 CA="-CApath ../certs"
26else
27 CA="-CAfile $3"
28fi
29
30if [ "$4" = "" ]; then
31 extra=""
32else
33 extra="$4"
34fi
35
36#############################################################################
37
38echo test ssl3 is forbidden in FIPS mode
39$ssltest -ssl3 $extra && exit 1
40
41echo test ssl2 is forbidden in FIPS mode
42$ssltest -ssl2 $extra && exit 1
43
44echo test tls1
45$ssltest -tls1 $extra || exit 1
46
47echo test tls1 with server authentication
48$ssltest -tls1 -server_auth $CA $extra || exit 1
49
50echo test tls1 with client authentication
51$ssltest -tls1 -client_auth $CA $extra || exit 1
52
53echo test tls1 with both client and server authentication
54$ssltest -tls1 -server_auth -client_auth $CA $extra || exit 1
55
56echo test tls1 via BIO pair
57$ssltest -bio_pair -tls1 $extra || exit 1
58
59echo test tls1 with server authentication via BIO pair
60$ssltest -bio_pair -tls1 -server_auth $CA $extra || exit 1
61
62echo test tls1 with client authentication via BIO pair
63$ssltest -bio_pair -tls1 -client_auth $CA $extra || exit 1
64
65echo test tls1 with both client and server authentication via BIO pair
66$ssltest -bio_pair -tls1 -server_auth -client_auth $CA $extra || exit 1
67
68# note that all the below actually choose TLS...
69
70if [ $dsa_cert = NO ]; then
71 echo test sslv2/sslv3 w/o DHE via BIO pair
72 $ssltest -bio_pair -no_dhe $extra || exit 1
73fi
74
75echo test sslv2/sslv3 with 1024bit DHE via BIO pair
76$ssltest -bio_pair -dhe1024dsa -v $extra || exit 1
77
78echo test sslv2/sslv3 with server authentication
79$ssltest -bio_pair -server_auth $CA $extra || exit 1
80
81echo test sslv2/sslv3 with client authentication via BIO pair
82$ssltest -bio_pair -client_auth $CA $extra || exit 1
83
84echo test sslv2/sslv3 with both client and server authentication via BIO pair
85$ssltest -bio_pair -server_auth -client_auth $CA $extra || exit 1
86
87echo test sslv2/sslv3 with both client and server authentication via BIO pair and app verify
88$ssltest -bio_pair -server_auth -client_auth -app_verify $CA $extra || exit 1
89
90#############################################################################
91
92if ../util/shlib_wrap.sh ../apps/openssl no-dh; then
93 echo skipping anonymous DH tests
94else
95 echo test tls1 with 1024bit anonymous DH, multiple handshakes
96 $ssltest -v -bio_pair -tls1 -cipher ADH -dhe1024dsa -num 10 -f -time $extra || exit 1
97fi
98
99if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then
100 echo skipping RSA tests
101else
102 echo test tls1 with 1024bit RSA, no DHE, multiple handshakes
103 ../util/shlib_wrap.sh ./ssltest -v -bio_pair -tls1 -cert ../apps/server2.pem -no_dhe -num 10 -f -time $extra || exit 1
104
105 if ../util/shlib_wrap.sh ../apps/openssl no-dh; then
106 echo skipping RSA+DHE tests
107 else
108 echo test tls1 with 1024bit RSA, 1024bit DHE, multiple handshakes
109 ../util/shlib_wrap.sh ./ssltest -v -bio_pair -tls1 -cert ../apps/server2.pem -dhe1024dsa -num 10 -f -time $extra || exit 1
110 fi
111fi
112
113exit 0
diff --git a/src/lib/libssl/src/test/testgen b/src/lib/libssl/src/test/testgen
index 3798543e04..524c0d134c 100644
--- a/src/lib/libssl/src/test/testgen
+++ b/src/lib/libssl/src/test/testgen
@@ -17,7 +17,7 @@ echo "generating certificate request"
17 17
18echo "string to make the random number generator think it has entropy" >> ./.rnd 18echo "string to make the random number generator think it has entropy" >> ./.rnd
19 19
20if ../apps/openssl no-rsa; then 20if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then
21 req_new='-newkey dsa:../apps/dsa512.pem' 21 req_new='-newkey dsa:../apps/dsa512.pem'
22else 22else
23 req_new='-new' 23 req_new='-new'
@@ -29,13 +29,13 @@ echo "This could take some time."
29 29
30rm -f testkey.pem testreq.pem 30rm -f testkey.pem testreq.pem
31 31
32../apps/openssl req -config test.cnf $req_new -out testreq.pem 32../util/shlib_wrap.sh ../apps/openssl req -config test.cnf $req_new -out testreq.pem
33if [ $? != 0 ]; then 33if [ $? != 0 ]; then
34echo problems creating request 34echo problems creating request
35exit 1 35exit 1
36fi 36fi
37 37
38../apps/openssl req -config test.cnf -verify -in testreq.pem -noout 38../util/shlib_wrap.sh ../apps/openssl req -config test.cnf -verify -in testreq.pem -noout
39if [ $? != 0 ]; then 39if [ $? != 0 ]; then
40echo signature on req is wrong 40echo signature on req is wrong
41exit 1 41exit 1
diff --git a/src/lib/libssl/src/test/testss b/src/lib/libssl/src/test/testss
index 8d3557f356..1a426857d3 100644
--- a/src/lib/libssl/src/test/testss
+++ b/src/lib/libssl/src/test/testss
@@ -1,9 +1,9 @@
1#!/bin/sh 1#!/bin/sh
2 2
3digest='-md5' 3digest='-sha1'
4reqcmd="../apps/openssl req" 4reqcmd="../util/shlib_wrap.sh ../apps/openssl req"
5x509cmd="../apps/openssl x509 $digest" 5x509cmd="../util/shlib_wrap.sh ../apps/openssl x509 $digest"
6verifycmd="../apps/openssl verify" 6verifycmd="../util/shlib_wrap.sh ../apps/openssl verify"
7dummycnf="../apps/openssl.cnf" 7dummycnf="../apps/openssl.cnf"
8 8
9CAkey="keyCA.ss" 9CAkey="keyCA.ss"
@@ -17,12 +17,24 @@ Ukey="keyU.ss"
17Ureq="reqU.ss" 17Ureq="reqU.ss"
18Ucert="certU.ss" 18Ucert="certU.ss"
19 19
20P1conf="P1ss.cnf"
21P1key="keyP1.ss"
22P1req="reqP1.ss"
23P1cert="certP1.ss"
24P1intermediate="tmp_intP1.ss"
25
26P2conf="P2ss.cnf"
27P2key="keyP2.ss"
28P2req="reqP2.ss"
29P2cert="certP2.ss"
30P2intermediate="tmp_intP2.ss"
31
20echo 32echo
21echo "make a certificate request using 'req'" 33echo "make a certificate request using 'req'"
22 34
23echo "string to make the random number generator think it has entropy" >> ./.rnd 35echo "string to make the random number generator think it has entropy" >> ./.rnd
24 36
25if ../apps/openssl no-rsa; then 37if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then
26 req_new='-newkey dsa:../apps/dsa512.pem' 38 req_new='-newkey dsa:../apps/dsa512.pem'
27else 39else
28 req_new='-new' 40 req_new='-new'
@@ -35,7 +47,7 @@ if [ $? != 0 ]; then
35fi 47fi
36echo 48echo
37echo "convert the certificate request into a self signed certificate using 'x509'" 49echo "convert the certificate request into a self signed certificate using 'x509'"
38$x509cmd -CAcreateserial -in $CAreq -days 30 -req -out $CAcert -signkey $CAkey >err.ss 50$x509cmd -CAcreateserial -in $CAreq -days 30 -req -out $CAcert -signkey $CAkey -extfile $CAconf -extensions v3_ca >err.ss
39if [ $? != 0 ]; then 51if [ $? != 0 ]; then
40 echo "error using 'x509' to self sign a certificate request" 52 echo "error using 'x509' to self sign a certificate request"
41 exit 1 53 exit 1
@@ -68,18 +80,18 @@ if [ $? != 0 ]; then
68fi 80fi
69 81
70echo 82echo
71echo "make another certificate request using 'req'" 83echo "make a user certificate request using 'req'"
72$reqcmd -config $Uconf -out $Ureq -keyout $Ukey $req_new >err.ss 84$reqcmd -config $Uconf -out $Ureq -keyout $Ukey $req_new >err.ss
73if [ $? != 0 ]; then 85if [ $? != 0 ]; then
74 echo "error using 'req' to generate a certificate request" 86 echo "error using 'req' to generate a user certificate request"
75 exit 1 87 exit 1
76fi 88fi
77 89
78echo 90echo
79echo "sign certificate request with the just created CA via 'x509'" 91echo "sign user certificate request with the just created CA via 'x509'"
80$x509cmd -CAcreateserial -in $Ureq -days 30 -req -out $Ucert -CA $CAcert -CAkey $CAkey >err.ss 92$x509cmd -CAcreateserial -in $Ureq -days 30 -req -out $Ucert -CA $CAcert -CAkey $CAkey -extfile $Uconf -extensions v3_ee >err.ss
81if [ $? != 0 ]; then 93if [ $? != 0 ]; then
82 echo "error using 'x509' to sign a certificate request" 94 echo "error using 'x509' to sign a user certificate request"
83 exit 1 95 exit 1
84fi 96fi
85 97
@@ -89,11 +101,63 @@ echo "Certificate details"
89$x509cmd -subject -issuer -startdate -enddate -noout -in $Ucert 101$x509cmd -subject -issuer -startdate -enddate -noout -in $Ucert
90 102
91echo 103echo
104echo "make a proxy certificate request using 'req'"
105$reqcmd -config $P1conf -out $P1req -keyout $P1key $req_new >err.ss
106if [ $? != 0 ]; then
107 echo "error using 'req' to generate a proxy certificate request"
108 exit 1
109fi
110
111echo
112echo "sign proxy certificate request with the just created user certificate via 'x509'"
113$x509cmd -CAcreateserial -in $P1req -days 30 -req -out $P1cert -CA $Ucert -CAkey $Ukey -extfile $P1conf -extensions v3_proxy >err.ss
114if [ $? != 0 ]; then
115 echo "error using 'x509' to sign a proxy certificate request"
116 exit 1
117fi
118
119cat $Ucert > $P1intermediate
120$verifycmd -CAfile $CAcert -untrusted $P1intermediate $P1cert
121echo
122echo "Certificate details"
123$x509cmd -subject -issuer -startdate -enddate -noout -in $P1cert
124
125echo
126echo "make another proxy certificate request using 'req'"
127$reqcmd -config $P2conf -out $P2req -keyout $P2key $req_new >err.ss
128if [ $? != 0 ]; then
129 echo "error using 'req' to generate another proxy certificate request"
130 exit 1
131fi
132
133echo
134echo "sign second proxy certificate request with the first proxy certificate via 'x509'"
135$x509cmd -CAcreateserial -in $P2req -days 30 -req -out $P2cert -CA $P1cert -CAkey $P1key -extfile $P2conf -extensions v3_proxy >err.ss
136if [ $? != 0 ]; then
137 echo "error using 'x509' to sign a second proxy certificate request"
138 exit 1
139fi
140
141cat $Ucert $P1cert > $P2intermediate
142$verifycmd -CAfile $CAcert -untrusted $P2intermediate $P2cert
143echo
144echo "Certificate details"
145$x509cmd -subject -issuer -startdate -enddate -noout -in $P2cert
146
147echo
92echo The generated CA certificate is $CAcert 148echo The generated CA certificate is $CAcert
93echo The generated CA private key is $CAkey 149echo The generated CA private key is $CAkey
94 150
95echo The generated user certificate is $Ucert 151echo The generated user certificate is $Ucert
96echo The generated user private key is $Ukey 152echo The generated user private key is $Ukey
97 153
154echo The first generated proxy certificate is $P1cert
155echo The first generated proxy private key is $P1key
156
157echo The second generated proxy certificate is $P2cert
158echo The second generated proxy private key is $P2key
159
98/bin/rm err.ss 160/bin/rm err.ss
161#/bin/rm $P1intermediate
162#/bin/rm $P2intermediate
99exit 0 163exit 0
diff --git a/src/lib/libssl/src/test/testssl b/src/lib/libssl/src/test/testssl
index ca8e718022..8ac90ae5ee 100644
--- a/src/lib/libssl/src/test/testssl
+++ b/src/lib/libssl/src/test/testssl
@@ -10,9 +10,9 @@ if [ "$2" = "" ]; then
10else 10else
11 cert="$2" 11 cert="$2"
12fi 12fi
13ssltest="./ssltest -key $key -cert $cert -c_key $key -c_cert $cert" 13ssltest="../util/shlib_wrap.sh ./ssltest -key $key -cert $cert -c_key $key -c_cert $cert"
14 14
15if ../apps/openssl x509 -in $cert -text -noout | fgrep 'DSA Public Key' >/dev/null; then 15if ../util/shlib_wrap.sh ../apps/openssl x509 -in $cert -text -noout | fgrep 'DSA Public Key' >/dev/null; then
16 dsa_cert=YES 16 dsa_cert=YES
17else 17else
18 dsa_cert=NO 18 dsa_cert=NO
@@ -121,24 +121,24 @@ $ssltest -bio_pair -server_auth -client_auth -app_verify $CA $extra || exit 1
121 121
122############################################################################# 122#############################################################################
123 123
124if ../apps/openssl no-dh; then 124if ../util/shlib_wrap.sh ../apps/openssl no-dh; then
125 echo skipping anonymous DH tests 125 echo skipping anonymous DH tests
126else 126else
127 echo test tls1 with 1024bit anonymous DH, multiple handshakes 127 echo test tls1 with 1024bit anonymous DH, multiple handshakes
128 $ssltest -v -bio_pair -tls1 -cipher ADH -dhe1024dsa -num 10 -f -time $extra || exit 1 128 $ssltest -v -bio_pair -tls1 -cipher ADH -dhe1024dsa -num 10 -f -time $extra || exit 1
129fi 129fi
130 130
131if ../apps/openssl no-rsa; then 131if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then
132 echo skipping RSA tests 132 echo skipping RSA tests
133else 133else
134 echo test tls1 with 1024bit RSA, no DHE, multiple handshakes 134 echo test tls1 with 1024bit RSA, no DHE, multiple handshakes
135 ./ssltest -v -bio_pair -tls1 -cert ../apps/server2.pem -no_dhe -num 10 -f -time $extra || exit 1 135 ../util/shlib_wrap.sh ./ssltest -v -bio_pair -tls1 -cert ../apps/server2.pem -no_dhe -num 10 -f -time $extra || exit 1
136 136
137 if ../apps/openssl no-dh; then 137 if ../util/shlib_wrap.sh ../apps/openssl no-dh; then
138 echo skipping RSA+DHE tests 138 echo skipping RSA+DHE tests
139 else 139 else
140 echo test tls1 with 1024bit RSA, 1024bit DHE, multiple handshakes 140 echo test tls1 with 1024bit RSA, 1024bit DHE, multiple handshakes
141 ./ssltest -v -bio_pair -tls1 -cert ../apps/server2.pem -dhe1024dsa -num 10 -f -time $extra || exit 1 141 ../util/shlib_wrap.sh ./ssltest -v -bio_pair -tls1 -cert ../apps/server2.pem -dhe1024dsa -num 10 -f -time $extra || exit 1
142 fi 142 fi
143fi 143fi
144 144
diff --git a/src/lib/libssl/src/test/testsslproxy b/src/lib/libssl/src/test/testsslproxy
new file mode 100644
index 0000000000..58bbda8ab7
--- /dev/null
+++ b/src/lib/libssl/src/test/testsslproxy
@@ -0,0 +1,10 @@
1#! /bin/sh
2
3echo 'Testing a lot of proxy conditions.'
4echo 'Some of them may turn out being invalid, which is fine.'
5for auth in A B C BC; do
6 for cond in A B C 'A|B&!C'; do
7 sh ./testssl $1 $2 $3 "-proxy -proxy_auth $auth -proxy_cond $cond"
8 if [ $? = 3 ]; then exit 1; fi
9 done
10done
diff --git a/src/lib/libssl/src/test/tpkcs7 b/src/lib/libssl/src/test/tpkcs7
index cf3bd9fadb..79bb6e0edf 100644
--- a/src/lib/libssl/src/test/tpkcs7
+++ b/src/lib/libssl/src/test/tpkcs7
@@ -7,7 +7,7 @@ else
7fi 7fi
8export PATH 8export PATH
9 9
10cmd='../apps/openssl pkcs7' 10cmd='../util/shlib_wrap.sh ../apps/openssl pkcs7'
11 11
12if [ "$1"x != "x" ]; then 12if [ "$1"x != "x" ]; then
13 t=$1 13 t=$1
diff --git a/src/lib/libssl/src/test/tpkcs7d b/src/lib/libssl/src/test/tpkcs7d
index 18f9311b06..20394b34c4 100644
--- a/src/lib/libssl/src/test/tpkcs7d
+++ b/src/lib/libssl/src/test/tpkcs7d
@@ -7,7 +7,7 @@ else
7fi 7fi
8export PATH 8export PATH
9 9
10cmd='../apps/openssl pkcs7' 10cmd='../util/shlib_wrap.sh ../apps/openssl pkcs7'
11 11
12if [ "$1"x != "x" ]; then 12if [ "$1"x != "x" ]; then
13 t=$1 13 t=$1
diff --git a/src/lib/libssl/src/test/treq b/src/lib/libssl/src/test/treq
index 47a8273cde..7e020210a5 100644
--- a/src/lib/libssl/src/test/treq
+++ b/src/lib/libssl/src/test/treq
@@ -7,7 +7,7 @@ else
7fi 7fi
8export PATH 8export PATH
9 9
10cmd='../apps/openssl req -config ../apps/openssl.cnf' 10cmd='../util/shlib_wrap.sh ../apps/openssl req -config ../apps/openssl.cnf'
11 11
12if [ "$1"x != "x" ]; then 12if [ "$1"x != "x" ]; then
13 t=$1 13 t=$1
diff --git a/src/lib/libssl/src/test/trsa b/src/lib/libssl/src/test/trsa
index 413e2ec0a0..67b4a98841 100644
--- a/src/lib/libssl/src/test/trsa
+++ b/src/lib/libssl/src/test/trsa
@@ -7,12 +7,12 @@ else
7fi 7fi
8export PATH 8export PATH
9 9
10if ../apps/openssl no-rsa; then 10if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then
11 echo skipping rsa conversion test 11 echo skipping rsa conversion test
12 exit 0 12 exit 0
13fi 13fi
14 14
15cmd='../apps/openssl rsa' 15cmd='../util/shlib_wrap.sh ../apps/openssl rsa'
16 16
17if [ "$1"x != "x" ]; then 17if [ "$1"x != "x" ]; then
18 t=$1 18 t=$1
diff --git a/src/lib/libssl/src/test/tsid b/src/lib/libssl/src/test/tsid
index 40a1dfa97c..fb4a7213b9 100644
--- a/src/lib/libssl/src/test/tsid
+++ b/src/lib/libssl/src/test/tsid
@@ -7,7 +7,7 @@ else
7fi 7fi
8export PATH 8export PATH
9 9
10cmd='../apps/openssl sess_id' 10cmd='../util/shlib_wrap.sh ../apps/openssl sess_id'
11 11
12if [ "$1"x != "x" ]; then 12if [ "$1"x != "x" ]; then
13 t=$1 13 t=$1
diff --git a/src/lib/libssl/src/test/tverify.com b/src/lib/libssl/src/test/tverify.com
index f97e71478f..2060184d1e 100644
--- a/src/lib/libssl/src/test/tverify.com
+++ b/src/lib/libssl/src/test/tverify.com
@@ -15,12 +15,15 @@ $ f = f$search("[-.certs]*.pem")
15$ if f .nes. "" .and. f .nes. old_f 15$ if f .nes. "" .and. f .nes. old_f
16$ then 16$ then
17$ certs = certs + " [-.certs]" + f$parse(f,,,"NAME") + ".pem" 17$ certs = certs + " [-.certs]" + f$parse(f,,,"NAME") + ".pem"
18$ if f$length(certs) .lt. 180 then goto loop_certs2
19$ c := YES 18$ c := YES
19$ if f$length(certs) .lt. 180 then goto loop_certs2
20$ endif 20$ endif
21$ certs = certs - " " 21$ certs = certs - " "
22$ 22$
23$ mcr 'exe_dir'openssl verify "-CAfile" certs.tmp 'certs' 23$ if c
24$ if c then goto loop_certs 24$ then
25$ mcr 'exe_dir'openssl verify "-CAfile" certs.tmp 'certs'
26$ goto loop_certs
27$ endif
25$ 28$
26$ delete certs.tmp;* 29$ delete certs.tmp;*
diff --git a/src/lib/libssl/src/test/tx509 b/src/lib/libssl/src/test/tx509
index d380963abc..1b9c8661f3 100644
--- a/src/lib/libssl/src/test/tx509
+++ b/src/lib/libssl/src/test/tx509
@@ -7,7 +7,7 @@ else
7fi 7fi
8export PATH 8export PATH
9 9
10cmd='../apps/openssl x509' 10cmd='../util/shlib_wrap.sh ../apps/openssl x509'
11 11
12if [ "$1"x != "x" ]; then 12if [ "$1"x != "x" ]; then
13 t=$1 13 t=$1
diff --git a/src/lib/libssl/src/tools/Makefile b/src/lib/libssl/src/tools/Makefile
new file mode 100644
index 0000000000..52a7970455
--- /dev/null
+++ b/src/lib/libssl/src/tools/Makefile
@@ -0,0 +1,61 @@
1#
2# SSLeay/tools/Makefile
3#
4
5DIR= tools
6TOP= ..
7CC= cc
8INCLUDES= -I$(TOP) -I../../include
9CFLAG=-g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP=/usr/local/ssl
13MAKEDEPPROG= makedepend
14MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
15MAKEFILE= Makefile
16
17CFLAGS= $(INCLUDES) $(CFLAG)
18
19TEST=
20APPS= c_rehash
21MISC_APPS= c_hash c_info c_issuer c_name
22
23all:
24
25install:
26 @for i in $(APPS) ; \
27 do \
28 (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
29 chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
30 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i ); \
31 done;
32 @for i in $(MISC_APPS) ; \
33 do \
34 (cp $$i $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$i.new; \
35 chmod 755 $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$i.new; \
36 mv -f $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$i.new $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$i ); \
37 done;
38
39files:
40 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
41
42links:
43
44lint:
45
46tags:
47
48errors:
49
50depend:
51
52dclean:
53 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
54 mv -f Makefile.new $(MAKEFILE)
55
56clean:
57 rm -f *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
58
59errors:
60
61# DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/src/lib/libssl/src/tools/c_issuer b/src/lib/libssl/src/tools/c_issuer
index 4c691201bb..55821ab740 100644
--- a/src/lib/libssl/src/tools/c_issuer
+++ b/src/lib/libssl/src/tools/c_issuer
@@ -6,5 +6,5 @@
6for i in $* 6for i in $*
7do 7do
8 n=`openssl x509 -issuer -noout -in $i` 8 n=`openssl x509 -issuer -noout -in $i`
9 echo "$i\t$n" 9 echo "$i $n"
10done 10done
diff --git a/src/lib/libssl/src/tools/c_rehash b/src/lib/libssl/src/tools/c_rehash
index 3e9ba1efe4..e614fb5466 100644
--- a/src/lib/libssl/src/tools/c_rehash
+++ b/src/lib/libssl/src/tools/c_rehash
@@ -1,4 +1,4 @@
1#!/usr/local/bin/perl 1#!/usr/bin/perl
2 2
3 3
4# Perl c_rehash script, scan all files in a directory 4# Perl c_rehash script, scan all files in a directory
diff --git a/src/lib/libssl/src/util/cygwin.sh b/src/lib/libssl/src/util/cygwin.sh
index 930f766b4f..7f791d47f4 100644
--- a/src/lib/libssl/src/util/cygwin.sh
+++ b/src/lib/libssl/src/util/cygwin.sh
@@ -21,11 +21,11 @@ function cleanup()
21 21
22function get_openssl_version() 22function get_openssl_version()
23{ 23{
24 eval `grep '^VERSION=' Makefile.ssl` 24 eval `grep '^VERSION=' Makefile`
25 if [ -z "${VERSION}" ] 25 if [ -z "${VERSION}" ]
26 then 26 then
27 echo "Error: Couldn't retrieve OpenSSL version from Makefile.ssl." 27 echo "Error: Couldn't retrieve OpenSSL version from Makefile."
28 echo " Check value of variable VERSION in Makefile.ssl." 28 echo " Check value of variable VERSION in Makefile."
29 exit 1 29 exit 1
30 fi 30 fi
31} 31}
@@ -39,7 +39,7 @@ function base_install()
39 39
40function doc_install() 40function doc_install()
41{ 41{
42 DOC_DIR=${INSTALL_PREFIX}/usr/doc/openssl 42 DOC_DIR=${INSTALL_PREFIX}/usr/share/doc/openssl
43 43
44 mkdir -p ${DOC_DIR} 44 mkdir -p ${DOC_DIR}
45 cp CHANGES CHANGES.SSLeay INSTALL LICENSE NEWS README ${DOC_DIR} 45 cp CHANGES CHANGES.SSLeay INSTALL LICENSE NEWS README ${DOC_DIR}
@@ -49,7 +49,7 @@ function doc_install()
49 49
50function create_cygwin_readme() 50function create_cygwin_readme()
51{ 51{
52 README_DIR=${INSTALL_PREFIX}/usr/doc/Cygwin 52 README_DIR=${INSTALL_PREFIX}/usr/share/doc/Cygwin
53 README_FILE=${README_DIR}/openssl-${VERSION}.README 53 README_FILE=${README_DIR}/openssl-${VERSION}.README
54 54
55 mkdir -p ${README_DIR} 55 mkdir -p ${README_DIR}
@@ -112,8 +112,8 @@ cd ${INSTALL_PREFIX}
112strip usr/bin/*.exe usr/bin/*.dll 112strip usr/bin/*.exe usr/bin/*.dll
113 113
114# Runtime package 114# Runtime package
115find etc usr/bin usr/doc usr/ssl/certs usr/ssl/man/man[157] usr/ssl/misc \ 115find etc usr/bin usr/share/doc usr/ssl/certs usr/ssl/man/man[157] \
116 usr/ssl/openssl.cnf usr/ssl/private -empty -o \! -type d | 116 usr/ssl/misc usr/ssl/openssl.cnf usr/ssl/private -empty -o \! -type d |
117tar cjfT openssl-${VERSION}-${SUBVERSION}.tar.bz2 - 117tar cjfT openssl-${VERSION}-${SUBVERSION}.tar.bz2 -
118# Development package 118# Development package
119find usr/include usr/lib usr/ssl/man/man3 -empty -o \! -type d | 119find usr/include usr/lib usr/ssl/man/man3 -empty -o \! -type d |
diff --git a/src/lib/libssl/src/util/domd b/src/lib/libssl/src/util/domd
index 49310bbdd1..5610521f0b 100644
--- a/src/lib/libssl/src/util/domd
+++ b/src/lib/libssl/src/util/domd
@@ -11,7 +11,7 @@ if [ "$1" = "-MD" ]; then
11fi 11fi
12if [ "$MAKEDEPEND" = "" ]; then MAKEDEPEND=makedepend; fi 12if [ "$MAKEDEPEND" = "" ]; then MAKEDEPEND=makedepend; fi
13 13
14cp Makefile.ssl Makefile.save 14cp Makefile Makefile.save
15# fake the presence of Kerberos 15# fake the presence of Kerberos
16touch $TOP/krb5.h 16touch $TOP/krb5.h
17if [ "$MAKEDEPEND" = "gcc" ]; then 17if [ "$MAKEDEPEND" = "gcc" ]; then
@@ -20,15 +20,15 @@ if [ "$MAKEDEPEND" = "gcc" ]; then
20 if [ "$1" != "--" ]; then args="$args $1"; fi 20 if [ "$1" != "--" ]; then args="$args $1"; fi
21 shift 21 shift
22 done 22 done
23 sed -e '/^# DO NOT DELETE.*/,$d' < Makefile.ssl > Makefile.tmp 23 sed -e '/^# DO NOT DELETE.*/,$d' < Makefile > Makefile.tmp
24 echo '# DO NOT DELETE THIS LINE -- make depend depends on it.' >> Makefile.tmp 24 echo '# DO NOT DELETE THIS LINE -- make depend depends on it.' >> Makefile.tmp
25 gcc -D OPENSSL_DOING_MAKEDEPEND -M $args >> Makefile.tmp 25 gcc -D OPENSSL_DOING_MAKEDEPEND -M $args >> Makefile.tmp
26 ${PERL} $TOP/util/clean-depend.pl < Makefile.tmp > Makefile.new 26 ${PERL} $TOP/util/clean-depend.pl < Makefile.tmp > Makefile.new
27 rm -f Makefile.tmp 27 rm -f Makefile.tmp
28else 28else
29 ${MAKEDEPEND} -D OPENSSL_DOING_MAKEDEPEND -f Makefile.ssl $@ 29 ${MAKEDEPEND} -D OPENSSL_DOING_MAKEDEPEND -f Makefile $@
30 ${PERL} $TOP/util/clean-depend.pl < Makefile.ssl > Makefile.new 30 ${PERL} $TOP/util/clean-depend.pl < Makefile > Makefile.new
31fi 31fi
32mv Makefile.new Makefile.ssl 32mv Makefile.new Makefile
33# unfake the presence of Kerberos 33# unfake the presence of Kerberos
34rm $TOP/krb5.h 34rm $TOP/krb5.h
diff --git a/src/lib/libssl/src/util/extract-names.pl b/src/lib/libssl/src/util/extract-names.pl
index 744a8e2324..35bd6ed843 100644
--- a/src/lib/libssl/src/util/extract-names.pl
+++ b/src/lib/libssl/src/util/extract-names.pl
@@ -9,9 +9,11 @@ while(<STDIN>) {
9 } elsif ($name) { 9 } elsif ($name) {
10 if (/ - /) { 10 if (/ - /) {
11 s/ - .*//; 11 s/ - .*//;
12 s/,[ \t]+/,/g; 12 s/,\s+/,/g;
13 s/^[ \t]+//g; 13 s/\s+,/,/g;
14 s/[ \t]+$//g; 14 s/^\s+//g;
15 s/\s+$//g;
16 s/\s/_/g;
15 push @words, split ','; 17 push @words, split ',';
16 } 18 }
17 } 19 }
diff --git a/src/lib/libssl/src/util/fixNT.sh b/src/lib/libssl/src/util/fixNT.sh
index ce4f19299b..ab9e766b86 100644
--- a/src/lib/libssl/src/util/fixNT.sh
+++ b/src/lib/libssl/src/util/fixNT.sh
@@ -3,12 +3,12 @@
3# clean up the mess that NT makes of my source tree 3# clean up the mess that NT makes of my source tree
4# 4#
5 5
6if [ -f makefile.ssl -a ! -f Makefile.ssl ]; then 6if [ -f makefile -a ! -f Makefile ]; then
7 /bin/mv makefile.ssl Makefile.ssl 7 /bin/mv makefile Makefile
8fi 8fi
9chmod +x Configure util/* 9chmod +x Configure util/*
10echo cleaning 10echo cleaning
11/bin/rm -f `find . -name '*.$$$' -print` 2>/dev/null >/dev/null 11/bin/rm -f `find . -name '*.$$$' -print` 2>/dev/null >/dev/null
12echo 'removing those damn ^M' 12echo 'removing those damn ^M'
13perl -pi -e 's/\015//' `find . -type 'f' -print |grep -v '.obj$' |grep -v '.der$' |grep -v '.gz'` 13perl -pi -e 's/\015//' `find . -type 'f' -print |grep -v '.obj$' |grep -v '.der$' |grep -v '.gz'`
14make -f Makefile.ssl links 14make -f Makefile links
diff --git a/src/lib/libssl/src/util/libeay.num b/src/lib/libssl/src/util/libeay.num
index 203c7713e7..56fb7446e0 100644
--- a/src/lib/libssl/src/util/libeay.num
+++ b/src/lib/libssl/src/util/libeay.num
@@ -284,20 +284,20 @@ EVP_add_alias 291 NOEXIST::FUNCTION:
284EVP_add_cipher 292 EXIST::FUNCTION: 284EVP_add_cipher 292 EXIST::FUNCTION:
285EVP_add_digest 293 EXIST::FUNCTION: 285EVP_add_digest 293 EXIST::FUNCTION:
286EVP_bf_cbc 294 EXIST::FUNCTION:BF 286EVP_bf_cbc 294 EXIST::FUNCTION:BF
287EVP_bf_cfb 295 EXIST::FUNCTION:BF 287EVP_bf_cfb64 295 EXIST::FUNCTION:BF
288EVP_bf_ecb 296 EXIST::FUNCTION:BF 288EVP_bf_ecb 296 EXIST::FUNCTION:BF
289EVP_bf_ofb 297 EXIST::FUNCTION:BF 289EVP_bf_ofb 297 EXIST::FUNCTION:BF
290EVP_cleanup 298 EXIST::FUNCTION: 290EVP_cleanup 298 EXIST::FUNCTION:
291EVP_des_cbc 299 EXIST::FUNCTION:DES 291EVP_des_cbc 299 EXIST::FUNCTION:DES
292EVP_des_cfb 300 EXIST::FUNCTION:DES 292EVP_des_cfb64 300 EXIST::FUNCTION:DES
293EVP_des_ecb 301 EXIST::FUNCTION:DES 293EVP_des_ecb 301 EXIST::FUNCTION:DES
294EVP_des_ede 302 EXIST::FUNCTION:DES 294EVP_des_ede 302 EXIST::FUNCTION:DES
295EVP_des_ede3 303 EXIST::FUNCTION:DES 295EVP_des_ede3 303 EXIST::FUNCTION:DES
296EVP_des_ede3_cbc 304 EXIST::FUNCTION:DES 296EVP_des_ede3_cbc 304 EXIST::FUNCTION:DES
297EVP_des_ede3_cfb 305 EXIST::FUNCTION:DES 297EVP_des_ede3_cfb64 305 EXIST::FUNCTION:DES
298EVP_des_ede3_ofb 306 EXIST::FUNCTION:DES 298EVP_des_ede3_ofb 306 EXIST::FUNCTION:DES
299EVP_des_ede_cbc 307 EXIST::FUNCTION:DES 299EVP_des_ede_cbc 307 EXIST::FUNCTION:DES
300EVP_des_ede_cfb 308 EXIST::FUNCTION:DES 300EVP_des_ede_cfb64 308 EXIST::FUNCTION:DES
301EVP_des_ede_ofb 309 EXIST::FUNCTION:DES 301EVP_des_ede_ofb 309 EXIST::FUNCTION:DES
302EVP_des_ofb 310 EXIST::FUNCTION:DES 302EVP_des_ofb 310 EXIST::FUNCTION:DES
303EVP_desx_cbc 311 EXIST::FUNCTION:DES 303EVP_desx_cbc 311 EXIST::FUNCTION:DES
@@ -308,14 +308,14 @@ EVP_get_cipherbyname 315 EXIST::FUNCTION:
308EVP_get_digestbyname 316 EXIST::FUNCTION: 308EVP_get_digestbyname 316 EXIST::FUNCTION:
309EVP_get_pw_prompt 317 EXIST::FUNCTION: 309EVP_get_pw_prompt 317 EXIST::FUNCTION:
310EVP_idea_cbc 318 EXIST::FUNCTION:IDEA 310EVP_idea_cbc 318 EXIST::FUNCTION:IDEA
311EVP_idea_cfb 319 EXIST::FUNCTION:IDEA 311EVP_idea_cfb64 319 EXIST::FUNCTION:IDEA
312EVP_idea_ecb 320 EXIST::FUNCTION:IDEA 312EVP_idea_ecb 320 EXIST::FUNCTION:IDEA
313EVP_idea_ofb 321 EXIST::FUNCTION:IDEA 313EVP_idea_ofb 321 EXIST::FUNCTION:IDEA
314EVP_md2 322 EXIST::FUNCTION:MD2 314EVP_md2 322 EXIST::FUNCTION:MD2
315EVP_md5 323 EXIST::FUNCTION:MD5 315EVP_md5 323 EXIST::FUNCTION:MD5
316EVP_md_null 324 EXIST::FUNCTION: 316EVP_md_null 324 EXIST::FUNCTION:
317EVP_rc2_cbc 325 EXIST::FUNCTION:RC2 317EVP_rc2_cbc 325 EXIST::FUNCTION:RC2
318EVP_rc2_cfb 326 EXIST::FUNCTION:RC2 318EVP_rc2_cfb64 326 EXIST::FUNCTION:RC2
319EVP_rc2_ecb 327 EXIST::FUNCTION:RC2 319EVP_rc2_ecb 327 EXIST::FUNCTION:RC2
320EVP_rc2_ofb 328 EXIST::FUNCTION:RC2 320EVP_rc2_ofb 328 EXIST::FUNCTION:RC2
321EVP_rc4 329 EXIST::FUNCTION:RC4 321EVP_rc4 329 EXIST::FUNCTION:RC4
@@ -962,7 +962,7 @@ i2t_ASN1_OBJECT 979 EXIST::FUNCTION:
962BN_BLINDING_new 980 EXIST::FUNCTION: 962BN_BLINDING_new 980 EXIST::FUNCTION:
963BN_BLINDING_free 981 EXIST::FUNCTION: 963BN_BLINDING_free 981 EXIST::FUNCTION:
964EVP_cast5_cbc 983 EXIST::FUNCTION:CAST 964EVP_cast5_cbc 983 EXIST::FUNCTION:CAST
965EVP_cast5_cfb 984 EXIST::FUNCTION:CAST 965EVP_cast5_cfb64 984 EXIST::FUNCTION:CAST
966EVP_cast5_ecb 985 EXIST::FUNCTION:CAST 966EVP_cast5_ecb 985 EXIST::FUNCTION:CAST
967EVP_cast5_ofb 986 EXIST::FUNCTION:CAST 967EVP_cast5_ofb 986 EXIST::FUNCTION:CAST
968BF_decrypt 987 EXIST::FUNCTION:BF 968BF_decrypt 987 EXIST::FUNCTION:BF
@@ -1057,7 +1057,7 @@ EVP_CIPHER_param_to_asn1 1084 EXIST::FUNCTION:
1057EVP_CIPHER_get_asn1_iv 1085 EXIST::FUNCTION: 1057EVP_CIPHER_get_asn1_iv 1085 EXIST::FUNCTION:
1058EVP_CIPHER_set_asn1_iv 1086 EXIST::FUNCTION: 1058EVP_CIPHER_set_asn1_iv 1086 EXIST::FUNCTION:
1059EVP_rc5_32_12_16_cbc 1087 EXIST::FUNCTION:RC5 1059EVP_rc5_32_12_16_cbc 1087 EXIST::FUNCTION:RC5
1060EVP_rc5_32_12_16_cfb 1088 EXIST::FUNCTION:RC5 1060EVP_rc5_32_12_16_cfb64 1088 EXIST::FUNCTION:RC5
1061EVP_rc5_32_12_16_ecb 1089 EXIST::FUNCTION:RC5 1061EVP_rc5_32_12_16_ecb 1089 EXIST::FUNCTION:RC5
1062EVP_rc5_32_12_16_ofb 1090 EXIST::FUNCTION:RC5 1062EVP_rc5_32_12_16_ofb 1090 EXIST::FUNCTION:RC5
1063asn1_add_error 1091 EXIST::FUNCTION: 1063asn1_add_error 1091 EXIST::FUNCTION:
@@ -2776,10 +2776,10 @@ ENGINE_load_4758cca 3218 EXIST::FUNCTION:ENGINE
2776_ossl_096_des_random_seed 3219 EXIST::FUNCTION:DES 2776_ossl_096_des_random_seed 3219 EXIST::FUNCTION:DES
2777EVP_aes_256_ofb 3220 EXIST::FUNCTION:AES 2777EVP_aes_256_ofb 3220 EXIST::FUNCTION:AES
2778EVP_aes_192_ofb 3221 EXIST::FUNCTION:AES 2778EVP_aes_192_ofb 3221 EXIST::FUNCTION:AES
2779EVP_aes_128_cfb 3222 EXIST::FUNCTION:AES 2779EVP_aes_128_cfb128 3222 EXIST::FUNCTION:AES
2780EVP_aes_256_cfb 3223 EXIST::FUNCTION:AES 2780EVP_aes_256_cfb128 3223 EXIST::FUNCTION:AES
2781EVP_aes_128_ofb 3224 EXIST::FUNCTION:AES 2781EVP_aes_128_ofb 3224 EXIST::FUNCTION:AES
2782EVP_aes_192_cfb 3225 EXIST::FUNCTION:AES 2782EVP_aes_192_cfb128 3225 EXIST::FUNCTION:AES
2783CONF_modules_free 3226 EXIST::FUNCTION: 2783CONF_modules_free 3226 EXIST::FUNCTION:
2784NCONF_default 3227 EXIST::FUNCTION: 2784NCONF_default 3227 EXIST::FUNCTION:
2785OPENSSL_no_config 3228 EXIST::FUNCTION: 2785OPENSSL_no_config 3228 EXIST::FUNCTION:
@@ -2803,3 +2803,67 @@ OpenSSLDie 3244 EXIST::FUNCTION:
2803OPENSSL_cleanse 3245 EXIST::FUNCTION: 2803OPENSSL_cleanse 3245 EXIST::FUNCTION:
2804ENGINE_setup_bsd_cryptodev 3246 EXIST:__FreeBSD__:FUNCTION:ENGINE 2804ENGINE_setup_bsd_cryptodev 3246 EXIST:__FreeBSD__:FUNCTION:ENGINE
2805ERR_release_err_state_table 3247 EXIST::FUNCTION:LHASH 2805ERR_release_err_state_table 3247 EXIST::FUNCTION:LHASH
2806EVP_aes_128_cfb8 3248 EXIST::FUNCTION:AES
2807FIPS_corrupt_rsa 3249 EXIST:OPENSSL_FIPS:FUNCTION:
2808FIPS_selftest_des 3250 EXIST:OPENSSL_FIPS:FUNCTION:
2809EVP_aes_128_cfb1 3251 EXIST::FUNCTION:AES
2810EVP_aes_192_cfb8 3252 EXIST::FUNCTION:AES
2811FIPS_mode_set 3253 EXIST:OPENSSL_FIPS:FUNCTION:
2812FIPS_selftest_dsa 3254 EXIST:OPENSSL_FIPS:FUNCTION:
2813EVP_aes_256_cfb8 3255 EXIST::FUNCTION:AES
2814FIPS_allow_md5 3256 EXIST:OPENSSL_FIPS:FUNCTION:
2815DES_ede3_cfb_encrypt 3257 EXIST::FUNCTION:DES
2816EVP_des_ede3_cfb8 3258 EXIST::FUNCTION:DES
2817FIPS_rand_seeded 3259 EXIST:OPENSSL_FIPS:FUNCTION:
2818AES_cfbr_encrypt_block 3260 EXIST::FUNCTION:AES
2819AES_cfb8_encrypt 3261 EXIST::FUNCTION:AES
2820FIPS_rand_seed 3262 EXIST:OPENSSL_FIPS:FUNCTION:
2821FIPS_corrupt_des 3263 EXIST:OPENSSL_FIPS:FUNCTION:
2822EVP_aes_192_cfb1 3264 EXIST::FUNCTION:AES
2823FIPS_selftest_aes 3265 EXIST:OPENSSL_FIPS:FUNCTION:
2824FIPS_set_prng_key 3266 EXIST:OPENSSL_FIPS:FUNCTION:
2825EVP_des_cfb8 3267 EXIST::FUNCTION:DES
2826FIPS_corrupt_dsa 3268 EXIST:OPENSSL_FIPS:FUNCTION:
2827FIPS_test_mode 3269 EXIST:OPENSSL_FIPS:FUNCTION:
2828FIPS_rand_method 3270 EXIST:OPENSSL_FIPS:FUNCTION:
2829EVP_aes_256_cfb1 3271 EXIST::FUNCTION:AES
2830ERR_load_FIPS_strings 3272 EXIST:OPENSSL_FIPS:FUNCTION:
2831FIPS_corrupt_aes 3273 EXIST:OPENSSL_FIPS:FUNCTION:
2832FIPS_selftest_sha1 3274 EXIST:OPENSSL_FIPS:FUNCTION:
2833FIPS_selftest_rsa 3275 EXIST:OPENSSL_FIPS:FUNCTION:
2834FIPS_corrupt_sha1 3276 EXIST:OPENSSL_FIPS:FUNCTION:
2835EVP_des_cfb1 3277 EXIST::FUNCTION:DES
2836FIPS_dsa_check 3278 EXIST:OPENSSL_FIPS:FUNCTION:
2837AES_cfb1_encrypt 3279 EXIST::FUNCTION:AES
2838EVP_des_ede3_cfb1 3280 EXIST::FUNCTION:DES
2839FIPS_rand_check 3281 EXIST:OPENSSL_FIPS:FUNCTION:
2840FIPS_md5_allowed 3282 EXIST:OPENSSL_FIPS:FUNCTION:
2841FIPS_mode 3283 EXIST:OPENSSL_FIPS:FUNCTION:
2842FIPS_selftest_failed 3284 EXIST:OPENSSL_FIPS:FUNCTION:
2843sk_is_sorted 3285 EXIST::FUNCTION:
2844X509_check_ca 3286 EXIST::FUNCTION:
2845private_idea_set_encrypt_key 3287 EXIST:OPENSSL_FIPS:FUNCTION:IDEA
2846HMAC_CTX_set_flags 3288 EXIST::FUNCTION:HMAC
2847private_SHA_Init 3289 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA0
2848private_CAST_set_key 3290 EXIST:OPENSSL_FIPS:FUNCTION:CAST
2849private_RIPEMD160_Init 3291 EXIST:OPENSSL_FIPS:FUNCTION:RIPEMD
2850private_RC5_32_set_key 3292 EXIST:OPENSSL_FIPS:FUNCTION:RC5
2851private_MD5_Init 3293 EXIST:OPENSSL_FIPS:FUNCTION:MD5
2852private_RC4_set_key 3294 EXIST:OPENSSL_FIPS:FUNCTION:RC4
2853private_MDC2_Init 3295 EXIST:OPENSSL_FIPS:FUNCTION:MDC2
2854private_RC2_set_key 3296 EXIST:OPENSSL_FIPS:FUNCTION:RC2
2855private_MD4_Init 3297 EXIST:OPENSSL_FIPS:FUNCTION:MD4
2856private_BF_set_key 3298 EXIST:OPENSSL_FIPS:FUNCTION:BF
2857private_MD2_Init 3299 EXIST:OPENSSL_FIPS:FUNCTION:MD2
2858d2i_PROXY_CERT_INFO_EXTENSION 3300 EXIST::FUNCTION:
2859PROXY_POLICY_it 3301 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2860PROXY_POLICY_it 3301 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2861i2d_PROXY_POLICY 3302 EXIST::FUNCTION:
2862i2d_PROXY_CERT_INFO_EXTENSION 3303 EXIST::FUNCTION:
2863d2i_PROXY_POLICY 3304 EXIST::FUNCTION:
2864PROXY_CERT_INFO_EXTENSION_new 3305 EXIST::FUNCTION:
2865PROXY_CERT_INFO_EXTENSION_free 3306 EXIST::FUNCTION:
2866PROXY_CERT_INFO_EXTENSION_it 3307 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2867PROXY_CERT_INFO_EXTENSION_it 3307 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2868PROXY_POLICY_free 3308 EXIST::FUNCTION:
2869PROXY_POLICY_new 3309 EXIST::FUNCTION:
diff --git a/src/lib/libssl/src/util/mk1mf.pl b/src/lib/libssl/src/util/mk1mf.pl
index b4bc0457e5..957264c6b5 100644
--- a/src/lib/libssl/src/util/mk1mf.pl
+++ b/src/lib/libssl/src/util/mk1mf.pl
@@ -10,7 +10,7 @@ $OPTIONS="";
10$ssl_version=""; 10$ssl_version="";
11$banner="\t\@echo Building OpenSSL"; 11$banner="\t\@echo Building OpenSSL";
12 12
13open(IN,"<Makefile.ssl") || die "unable to open Makefile.ssl!\n"; 13open(IN,"<Makefile") || die "unable to open Makefile!\n";
14while(<IN>) { 14while(<IN>) {
15 $ssl_version=$1 if (/^VERSION=(.*)$/); 15 $ssl_version=$1 if (/^VERSION=(.*)$/);
16 $OPTIONS=$1 if (/^OPTIONS=(.*)$/); 16 $OPTIONS=$1 if (/^OPTIONS=(.*)$/);
@@ -18,7 +18,7 @@ while(<IN>) {
18} 18}
19close(IN); 19close(IN);
20 20
21die "Makefile.ssl is not the toplevel Makefile!\n" if $ssl_version eq ""; 21die "Makefile is not the toplevel Makefile!\n" if $ssl_version eq "";
22 22
23$infile="MINFO"; 23$infile="MINFO";
24 24
@@ -222,7 +222,7 @@ $cflags.=" -DOPENSSL_NO_SHA" if $no_sha;
222$cflags.=" -DOPENSSL_NO_SHA1" if $no_sha1; 222$cflags.=" -DOPENSSL_NO_SHA1" if $no_sha1;
223$cflags.=" -DOPENSSL_NO_RIPEMD" if $no_ripemd; 223$cflags.=" -DOPENSSL_NO_RIPEMD" if $no_ripemd;
224$cflags.=" -DOPENSSL_NO_MDC2" if $no_mdc2; 224$cflags.=" -DOPENSSL_NO_MDC2" if $no_mdc2;
225$cflags.=" -DOPENSSL_NO_BF" if $no_bf; 225$cflags.=" -DOPENSSL_NO_BF" if $no_bf;
226$cflags.=" -DOPENSSL_NO_CAST" if $no_cast; 226$cflags.=" -DOPENSSL_NO_CAST" if $no_cast;
227$cflags.=" -DOPENSSL_NO_DES" if $no_des; 227$cflags.=" -DOPENSSL_NO_DES" if $no_des;
228$cflags.=" -DOPENSSL_NO_RSA" if $no_rsa; 228$cflags.=" -DOPENSSL_NO_RSA" if $no_rsa;
@@ -236,6 +236,7 @@ $cflags.=" -DOPENSSL_NO_KRB5" if $no_krb5;
236$cflags.=" -DOPENSSL_NO_EC" if $no_ec; 236$cflags.=" -DOPENSSL_NO_EC" if $no_ec;
237$cflags.=" -DOPENSSL_NO_ENGINE" if $no_engine; 237$cflags.=" -DOPENSSL_NO_ENGINE" if $no_engine;
238$cflags.=" -DOPENSSL_NO_HW" if $no_hw; 238$cflags.=" -DOPENSSL_NO_HW" if $no_hw;
239$cflags.=" -DOPENSSL_FIPS" if $fips;
239#$cflags.=" -DRSAref" if $rsaref ne ""; 240#$cflags.=" -DRSAref" if $rsaref ne "";
240 241
241## if ($unix) 242## if ($unix)
@@ -631,15 +632,21 @@ foreach (split(/\s+/,$test))
631$rules.= &do_lib_rule("\$(SSLOBJ)","\$(O_SSL)",$ssl,$shlib,"\$(SO_SSL)"); 632$rules.= &do_lib_rule("\$(SSLOBJ)","\$(O_SSL)",$ssl,$shlib,"\$(SO_SSL)");
632$rules.= &do_lib_rule("\$(CRYPTOOBJ)","\$(O_CRYPTO)",$crypto,$shlib,"\$(SO_CRYPTO)"); 633$rules.= &do_lib_rule("\$(CRYPTOOBJ)","\$(O_CRYPTO)",$crypto,$shlib,"\$(SO_CRYPTO)");
633 634
634$rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)"); 635if ($fips)
635 636 {
637 $rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)","\$(BIN_D)$o.sha1","\$(BIN_D)$o\$(E_EXE)$exep");
638 }
639else
640 {
641 $rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)");
642 }
636print $defs; 643print $defs;
637 644
638if ($platform eq "linux-elf") { 645if ($platform eq "linux-elf") {
639 print <<"EOF"; 646 print <<"EOF";
640# Generate perlasm output files 647# Generate perlasm output files
641%.cpp: 648%.cpp:
642 (cd \$(\@D)/..; PERL=perl make -f Makefile.ssl asm/\$(\@F)) 649 (cd \$(\@D)/..; PERL=perl make -f Makefile asm/\$(\@F))
643EOF 650EOF
644} 651}
645print "###################################################################\n"; 652print "###################################################################\n";
@@ -921,6 +928,7 @@ sub read_options
921 $no_aes=1; } 928 $no_aes=1; }
922 929
923 elsif (/^rsaref$/) { } 930 elsif (/^rsaref$/) { }
931 elsif (/^fips$/) { $fips=1; }
924 elsif (/^gcc$/) { $gcc=1; } 932 elsif (/^gcc$/) { $gcc=1; }
925 elsif (/^debug$/) { $debug=1; } 933 elsif (/^debug$/) { $debug=1; }
926 elsif (/^profile$/) { $profile=1; } 934 elsif (/^profile$/) { $profile=1; }
diff --git a/src/lib/libssl/src/util/mkdef.pl b/src/lib/libssl/src/util/mkdef.pl
index 01a1bfda19..9918c3d549 100644
--- a/src/lib/libssl/src/util/mkdef.pl
+++ b/src/lib/libssl/src/util/mkdef.pl
@@ -79,7 +79,7 @@ my $OS2=0;
79my $safe_stack_def = 0; 79my $safe_stack_def = 0;
80 80
81my @known_platforms = ( "__FreeBSD__", "PERL5", "NeXT", 81my @known_platforms = ( "__FreeBSD__", "PERL5", "NeXT",
82 "EXPORT_VAR_AS_FUNCTION" ); 82 "EXPORT_VAR_AS_FUNCTION", "OPENSSL_FIPS" );
83my @known_ossl_platforms = ( "VMS", "WIN16", "WIN32", "WINNT", "OS2" ); 83my @known_ossl_platforms = ( "VMS", "WIN16", "WIN32", "WINNT", "OS2" );
84my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF", 84my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF",
85 "CAST", "MD2", "MD4", "MD5", "SHA", "SHA0", "SHA1", 85 "CAST", "MD2", "MD4", "MD5", "SHA", "SHA0", "SHA1",
@@ -94,7 +94,7 @@ my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF",
94 "FP_API", "STDIO", "SOCK", "KRB5", "ENGINE", "HW" ); 94 "FP_API", "STDIO", "SOCK", "KRB5", "ENGINE", "HW" );
95 95
96my $options=""; 96my $options="";
97open(IN,"<Makefile.ssl") || die "unable to open Makefile.ssl!\n"; 97open(IN,"<Makefile") || die "unable to open Makefile!\n";
98while(<IN>) { 98while(<IN>) {
99 $options=$1 if (/^OPTIONS=(.*)$/); 99 $options=$1 if (/^OPTIONS=(.*)$/);
100} 100}
@@ -109,6 +109,7 @@ my $no_md2; my $no_md4; my $no_md5; my $no_sha; my $no_ripemd; my $no_mdc2;
109my $no_rsa; my $no_dsa; my $no_dh; my $no_hmac=0; my $no_aes; my $no_krb5; 109my $no_rsa; my $no_dsa; my $no_dh; my $no_hmac=0; my $no_aes; my $no_krb5;
110my $no_ec; my $no_engine; my $no_hw; 110my $no_ec; my $no_engine; my $no_hw;
111my $no_fp_api; 111my $no_fp_api;
112my $fips;
112 113
113foreach (@ARGV, split(/ /, $options)) 114foreach (@ARGV, split(/ /, $options))
114 { 115 {
@@ -129,6 +130,7 @@ foreach (@ARGV, split(/ /, $options))
129 } 130 }
130 $VMS=1 if $_ eq "VMS"; 131 $VMS=1 if $_ eq "VMS";
131 $OS2=1 if $_ eq "OS2"; 132 $OS2=1 if $_ eq "OS2";
133 $fips=1 if $_ eq "fips";
132 134
133 $do_ssl=1 if $_ eq "ssleay"; 135 $do_ssl=1 if $_ eq "ssleay";
134 if ($_ eq "ssl") { 136 if ($_ eq "ssl") {
@@ -265,6 +267,7 @@ $crypto.=" crypto/ocsp/ocsp.h";
265$crypto.=" crypto/ui/ui.h crypto/ui/ui_compat.h"; 267$crypto.=" crypto/ui/ui.h crypto/ui/ui_compat.h";
266$crypto.=" crypto/krb5/krb5_asn.h"; 268$crypto.=" crypto/krb5/krb5_asn.h";
267$crypto.=" crypto/tmdiff.h"; 269$crypto.=" crypto/tmdiff.h";
270$crypto.=" fips/fips.h fips/rand/fips_rand.h";
268 271
269my $symhacks="crypto/symhacks.h"; 272my $symhacks="crypto/symhacks.h";
270 273
@@ -469,7 +472,7 @@ sub do_defs
469 push(@tag,$1); 472 push(@tag,$1);
470 $tag{$1}=-1; 473 $tag{$1}=-1;
471 } 474 }
472 } elsif (/^\#\s*ifdef\s+(.*)/) { 475 } elsif (/^\#\s*ifdef\s+(\S*)/) {
473 push(@tag,"-"); 476 push(@tag,"-");
474 push(@tag,$1); 477 push(@tag,$1);
475 $tag{$1}=1; 478 $tag{$1}=1;
@@ -794,7 +797,7 @@ sub do_defs
794 } 797 }
795 close(IN); 798 close(IN);
796 799
797 my $algs; 800 my $algs = '';
798 my $plays; 801 my $plays;
799 802
800 print STDERR "DEBUG: postprocessing ----------\n" if $debug; 803 print STDERR "DEBUG: postprocessing ----------\n" if $debug;
@@ -864,6 +867,7 @@ sub do_defs
864 867
865 $platform{$s} = 868 $platform{$s} =
866 &reduce_platforms((defined($platform{$s})?$platform{$s}.',':"").$p); 869 &reduce_platforms((defined($platform{$s})?$platform{$s}.',':"").$p);
870 $algorithm{$s} = '' if !defined $algorithm{$s};
867 $algorithm{$s} .= ','.$a; 871 $algorithm{$s} .= ','.$a;
868 872
869 if (defined($variant{$s})) { 873 if (defined($variant{$s})) {
@@ -1028,6 +1032,9 @@ sub is_valid
1028 if ($keyword eq "EXPORT_VAR_AS_FUNCTION" && ($VMSVAX || $W32 || $W16)) { 1032 if ($keyword eq "EXPORT_VAR_AS_FUNCTION" && ($VMSVAX || $W32 || $W16)) {
1029 return 1; 1033 return 1;
1030 } 1034 }
1035 if ($keyword eq "OPENSSL_FIPS" && $fips) {
1036 return 1;
1037 }
1031 return 0; 1038 return 0;
1032 } else { 1039 } else {
1033 # algorithms 1040 # algorithms
@@ -1119,7 +1126,7 @@ sub print_test_file
1119sub get_version { 1126sub get_version {
1120 local *MF; 1127 local *MF;
1121 my $v = '?'; 1128 my $v = '?';
1122 open MF, 'Makefile.ssl' or return $v; 1129 open MF, 'Makefile' or return $v;
1123 while (<MF>) { 1130 while (<MF>) {
1124 $v = $1, last if /^VERSION=(.*?)\s*$/; 1131 $v = $1, last if /^VERSION=(.*?)\s*$/;
1125 } 1132 }
diff --git a/src/lib/libssl/src/util/mkerr.pl b/src/lib/libssl/src/util/mkerr.pl
index 1b2915c767..60e534807e 100644
--- a/src/lib/libssl/src/util/mkerr.pl
+++ b/src/lib/libssl/src/util/mkerr.pl
@@ -41,7 +41,8 @@ while (@ARGV) {
41} 41}
42 42
43if($recurse) { 43if($recurse) {
44 @source = (<crypto/*.c>, <crypto/*/*.c>, <ssl/*.c>); 44 @source = (<crypto/*.c>, <crypto/*/*.c>, <ssl/*.c>, <fips/*.c>,
45 <fips/*/*.c>);
45} else { 46} else {
46 @source = @ARGV; 47 @source = @ARGV;
47} 48}
@@ -262,7 +263,7 @@ foreach $lib (keys %csrc)
262 } else { 263 } else {
263 push @out, 264 push @out,
264"/* ====================================================================\n", 265"/* ====================================================================\n",
265" * Copyright (c) 2001-2003 The OpenSSL Project. All rights reserved.\n", 266" * Copyright (c) 2001-2005 The OpenSSL Project. All rights reserved.\n",
266" *\n", 267" *\n",
267" * Redistribution and use in source and binary forms, with or without\n", 268" * Redistribution and use in source and binary forms, with or without\n",
268" * modification, are permitted provided that the following conditions\n", 269" * modification, are permitted provided that the following conditions\n",
@@ -404,7 +405,7 @@ EOF
404 print OUT <<"EOF"; 405 print OUT <<"EOF";
405/* $cfile */ 406/* $cfile */
406/* ==================================================================== 407/* ====================================================================
407 * Copyright (c) 1999-2003 The OpenSSL Project. All rights reserved. 408 * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved.
408 * 409 *
409 * Redistribution and use in source and binary forms, with or without 410 * Redistribution and use in source and binary forms, with or without
410 * modification, are permitted provided that the following conditions 411 * modification, are permitted provided that the following conditions
diff --git a/src/lib/libssl/src/util/mkfiles.pl b/src/lib/libssl/src/util/mkfiles.pl
index 29e1404c69..928a274303 100644
--- a/src/lib/libssl/src/util/mkfiles.pl
+++ b/src/lib/libssl/src/util/mkfiles.pl
@@ -51,6 +51,14 @@ my @dirs = (
51"crypto/ocsp", 51"crypto/ocsp",
52"crypto/ui", 52"crypto/ui",
53"crypto/krb5", 53"crypto/krb5",
54"fips",
55"fips/aes",
56"fips/des",
57"fips/dsa",
58"fips/dh",
59"fips/rand",
60"fips/rsa",
61"fips/sha1",
54"ssl", 62"ssl",
55"apps", 63"apps",
56"test", 64"test",
@@ -58,7 +66,7 @@ my @dirs = (
58); 66);
59 67
60foreach (@dirs) { 68foreach (@dirs) {
61 &files_dir ($_, "Makefile.ssl"); 69 &files_dir ($_, "Makefile");
62} 70}
63 71
64exit(0); 72exit(0);
diff --git a/src/lib/libssl/src/util/mklink.pl b/src/lib/libssl/src/util/mklink.pl
index 9386da7aa4..c8653cecc3 100644
--- a/src/lib/libssl/src/util/mklink.pl
+++ b/src/lib/libssl/src/util/mklink.pl
@@ -52,6 +52,7 @@ $symlink_exists=eval {symlink("",""); 1};
52foreach $file (@files) { 52foreach $file (@files) {
53 my $err = ""; 53 my $err = "";
54 if ($symlink_exists) { 54 if ($symlink_exists) {
55 unlink "$from/$file";
55 symlink("$to/$file", "$from/$file") or $err = " [$!]"; 56 symlink("$to/$file", "$from/$file") or $err = " [$!]";
56 } else { 57 } else {
57 unlink "$from/$file"; 58 unlink "$from/$file";
diff --git a/src/lib/libssl/src/util/mkstack.pl b/src/lib/libssl/src/util/mkstack.pl
index 085c50f790..0ca9eb6a76 100644
--- a/src/lib/libssl/src/util/mkstack.pl
+++ b/src/lib/libssl/src/util/mkstack.pl
@@ -84,6 +84,7 @@ while(<IN>) {
84#define sk_${type_thing}_shift(st) SKM_sk_shift($type_thing, (st)) 84#define sk_${type_thing}_shift(st) SKM_sk_shift($type_thing, (st))
85#define sk_${type_thing}_pop(st) SKM_sk_pop($type_thing, (st)) 85#define sk_${type_thing}_pop(st) SKM_sk_pop($type_thing, (st))
86#define sk_${type_thing}_sort(st) SKM_sk_sort($type_thing, (st)) 86#define sk_${type_thing}_sort(st) SKM_sk_sort($type_thing, (st))
87#define sk_${type_thing}_is_sorted(st) SKM_sk_is_sorted($type_thing, (st))
87EOF 88EOF
88 } 89 }
89 foreach $type_thing (sort @asn1setlst) { 90 foreach $type_thing (sort @asn1setlst) {
diff --git a/src/lib/libssl/src/util/opensslwrap.sh b/src/lib/libssl/src/util/opensslwrap.sh
new file mode 100755
index 0000000000..91d29e2b87
--- /dev/null
+++ b/src/lib/libssl/src/util/opensslwrap.sh
@@ -0,0 +1,22 @@
1#!/bin/sh
2
3HERE="`echo $0 | sed -e 's|[^/]*$||'`"
4OPENSSL="${HERE}../apps/openssl"
5
6if [ -x "${OPENSSL}.exe" ]; then
7 # The original reason for this script existence is to work around
8 # certain caveats in run-time linker behaviour. On Windows platforms
9 # adjusting $PATH used to be sufficient, but with introduction of
10 # SafeDllSearchMode in XP/2003 the only way to get it right in
11 # *all* possible situations is to copy newly built .DLLs to apps/
12 # and test/, which is now done elsewhere... The $PATH is adjusted
13 # for backward compatibility (and nostagical reasons:-).
14 if [ "$OSTYPE" != msdosdjgpp ]; then
15 PATH="${HERE}..:$PATH"; export PATH
16 fi
17 exec "${OPENSSL}.exe" "$@"
18elif [ -x "${OPENSSL}" -a -x "${HERE}shlib_wrap.sh" ]; then
19 exec "${HERE}shlib_wrap.sh" "${OPENSSL}" "$@"
20else
21 exec "${OPENSSL}" "$@" # hope for the best...
22fi
diff --git a/src/lib/libssl/src/util/pl/BC-16.pl b/src/lib/libssl/src/util/pl/BC-16.pl
index 2033f524ca..8030653daa 100644
--- a/src/lib/libssl/src/util/pl/BC-16.pl
+++ b/src/lib/libssl/src/util/pl/BC-16.pl
@@ -64,7 +64,7 @@ $lfile='';
64 64
65$asm='bcc -c -B -Tml'; 65$asm='bcc -c -B -Tml';
66$afile='/o'; 66$afile='/o';
67if ($no_asm) 67if ($no_asm || $fips)
68 { 68 {
69 $bn_asm_obj=''; 69 $bn_asm_obj='';
70 $bn_asm_src=''; 70 $bn_asm_src='';
@@ -119,11 +119,11 @@ sub do_lib_rule
119 119
120sub do_link_rule 120sub do_link_rule
121 { 121 {
122 local($target,$files,$dep_libs,$libs)=@_; 122 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
123 local($ret,$f,$_,@f); 123 local($ret,$f,$_,@f);
124 124
125 $file =~ s/\//$o/g if $o ne '/'; 125 $file =~ s/\//$o/g if $o ne '/';
126 $n=&bname($targer); 126 $n=&bname($target);
127 $ret.="$target: $files $dep_libs\n"; 127 $ret.="$target: $files $dep_libs\n";
128 $ret.=" \$(LINK) @&&|"; 128 $ret.=" \$(LINK) @&&|";
129 129
@@ -139,7 +139,12 @@ sub do_link_rule
139 } 139 }
140 else 140 else
141 { $ret.="\n $r \$(APP_EX_OBJ) $files\n"; } 141 { $ret.="\n $r \$(APP_EX_OBJ) $files\n"; }
142 $ret.=" $target\n\n $libs\n\n|\n\n"; 142 $ret.=" $target\n\n $libs\n\n|\n";
143 if (defined $sha1file)
144 {
145 $ret.=" $openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
146 }
147 $ret.="\n";
143 return($ret); 148 return($ret);
144 } 149 }
145 150
diff --git a/src/lib/libssl/src/util/pl/BC-32.pl b/src/lib/libssl/src/util/pl/BC-32.pl
index e83b336190..897ae9d824 100644
--- a/src/lib/libssl/src/util/pl/BC-32.pl
+++ b/src/lib/libssl/src/util/pl/BC-32.pl
@@ -62,7 +62,7 @@ $des_enc_src='';
62$bf_enc_obj=''; 62$bf_enc_obj='';
63$bf_enc_src=''; 63$bf_enc_src='';
64 64
65if (!$no_asm) 65if (!$no_asm && !$fips)
66 { 66 {
67 $bn_mulw_obj='crypto\bn\asm\bn_win32.obj'; 67 $bn_mulw_obj='crypto\bn\asm\bn_win32.obj';
68 $bn_mulw_src='crypto\bn\asm\bn_win32.asm'; 68 $bn_mulw_src='crypto\bn\asm\bn_win32.asm';
@@ -122,13 +122,18 @@ sub do_lib_rule
122 122
123sub do_link_rule 123sub do_link_rule
124 { 124 {
125 local($target,$files,$dep_libs,$libs)=@_; 125 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
126 local($ret,$_); 126 local($ret,$_);
127 127
128 $file =~ s/\//$o/g if $o ne '/'; 128 $file =~ s/\//$o/g if $o ne '/';
129 $n=&bname($targer); 129 $n=&bname($targer);
130 $ret.="$target: $files $dep_libs\n"; 130 $ret.="$target: $files $dep_libs\n";
131 $ret.="\t\$(LINK) \$(LFLAGS) $files \$(APP_EX_OBJ), $target,, $libs\n\n"; 131 $ret.="\t\$(LINK) \$(LFLAGS) $files \$(APP_EX_OBJ), $target,, $libs\n";
132 if (defined $sha1file)
133 {
134 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
135 }
136 $ret.="\n";
132 return($ret); 137 return($ret);
133 } 138 }
134 139
diff --git a/src/lib/libssl/src/util/pl/Mingw32.pl b/src/lib/libssl/src/util/pl/Mingw32.pl
index 4bee638c4a..b9bb24d21d 100644
--- a/src/lib/libssl/src/util/pl/Mingw32.pl
+++ b/src/lib/libssl/src/util/pl/Mingw32.pl
@@ -21,7 +21,7 @@ if ($debug)
21else 21else
22 { $cflags="-DL_ENDIAN -DDSO_WIN32 -fomit-frame-pointer -O3 -mcpu=i486 -Wall"; } 22 { $cflags="-DL_ENDIAN -DDSO_WIN32 -fomit-frame-pointer -O3 -mcpu=i486 -Wall"; }
23 23
24if ($gaswin and !$no_asm) 24if ($gaswin and !$no_asm and !$fips)
25 { 25 {
26 $bn_asm_obj='$(OBJ_D)\bn-win32.o'; 26 $bn_asm_obj='$(OBJ_D)\bn-win32.o';
27 $bn_asm_src='crypto/bn/asm/bn-win32.s'; 27 $bn_asm_src='crypto/bn/asm/bn-win32.s';
@@ -92,13 +92,18 @@ sub do_lib_rule
92 92
93sub do_link_rule 93sub do_link_rule
94 { 94 {
95 local($target,$files,$dep_libs,$libs)=@_; 95 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
96 local($ret,$_); 96 local($ret,$_);
97 97
98 $file =~ s/\//$o/g if $o ne '/'; 98 $file =~ s/\//$o/g if $o ne '/';
99 $n=&bname($target); 99 $n=&bname($target);
100 $ret.="$target: $files $dep_libs\n"; 100 $ret.="$target: $files $dep_libs\n";
101 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n\n"; 101 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n";
102 if (defined $sha1file)
103 {
104 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
105 }
106 $ret.="\n";
102 return($ret); 107 return($ret);
103 } 108 }
1041; 1091;
diff --git a/src/lib/libssl/src/util/pl/OS2-EMX.pl b/src/lib/libssl/src/util/pl/OS2-EMX.pl
index ddb3524210..75d72ebbcb 100644
--- a/src/lib/libssl/src/util/pl/OS2-EMX.pl
+++ b/src/lib/libssl/src/util/pl/OS2-EMX.pl
@@ -48,7 +48,7 @@ $des_enc_src="";
48$bf_enc_obj=""; 48$bf_enc_obj="";
49$bf_enc_src=""; 49$bf_enc_src="";
50 50
51if (!$no_asm) 51if (!$no_asm && !$fips)
52 { 52 {
53 $bn_asm_obj="crypto/bn/asm/bn-os2$obj crypto/bn/asm/co-os2$obj"; 53 $bn_asm_obj="crypto/bn/asm/bn-os2$obj crypto/bn/asm/co-os2$obj";
54 $bn_asm_src="crypto/bn/asm/bn-os2.asm crypto/bn/asm/co-os2.asm"; 54 $bn_asm_src="crypto/bn/asm/bn-os2.asm crypto/bn/asm/co-os2.asm";
@@ -106,13 +106,18 @@ sub do_lib_rule
106 106
107sub do_link_rule 107sub do_link_rule
108 { 108 {
109 local($target,$files,$dep_libs,$libs)=@_; 109 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
110 local($ret,$_); 110 local($ret,$_);
111 111
112 $file =~ s/\//$o/g if $o ne '/'; 112 $file =~ s/\//$o/g if $o ne '/';
113 $n=&bname($target); 113 $n=&bname($target);
114 $ret.="$target: $files $dep_libs\n"; 114 $ret.="$target: $files $dep_libs\n";
115 $ret.="\t\$(LINK) ${efile}$target \$(CFLAG) \$(LFLAGS) $files $libs\n\n"; 115 $ret.="\t\$(LINK) ${efile}$target \$(CFLAG) \$(LFLAGS) $files $libs\n";
116 if (defined $sha1file)
117 {
118 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
119 }
120 $ret.="\n";
116 return($ret); 121 return($ret);
117 } 122 }
118 123
diff --git a/src/lib/libssl/src/util/pl/VC-16.pl b/src/lib/libssl/src/util/pl/VC-16.pl
index 7cda5e67a9..564ba3fd08 100644
--- a/src/lib/libssl/src/util/pl/VC-16.pl
+++ b/src/lib/libssl/src/util/pl/VC-16.pl
@@ -61,7 +61,7 @@ if ($shlib)
61else 61else
62 { $mlflags=''; } 62 { $mlflags=''; }
63 63
64$app_ex_obj="setargv.obj"; 64$app_ex_obj="";
65 65
66$obj='.obj'; 66$obj='.obj';
67$ofile="/Fo"; 67$ofile="/Fo";
@@ -90,7 +90,7 @@ $des_enc_src='';
90$bf_enc_obj=''; 90$bf_enc_obj='';
91$bf_enc_src=''; 91$bf_enc_src='';
92 92
93if (!$no_asm) 93if (!$no_asm && !$fips)
94 { 94 {
95 if ($asmbits == 32) 95 if ($asmbits == 32)
96 { 96 {
@@ -147,7 +147,7 @@ sub do_lib_rule
147 147
148sub do_link_rule 148sub do_link_rule
149 { 149 {
150 local($target,$files,$dep_libs,$libs)=@_; 150 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
151 local($ret,$f,$_,@f); 151 local($ret,$f,$_,@f);
152 152
153 $file =~ s/\//$o/g if $o ne '/'; 153 $file =~ s/\//$o/g if $o ne '/';
@@ -165,7 +165,12 @@ sub do_link_rule
165 } 165 }
166 else 166 else
167 { $ret.=" \$(APP_EX_OBJ) $files"; } 167 { $ret.=" \$(APP_EX_OBJ) $files"; }
168 $ret.="\n $target\n\n $libs\n\n<<\n\n"; 168 $ret.="\n $target\n\n $libs\n\n<<\n";
169 if (defined $sha1file)
170 {
171 $ret.=" $openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
172 }
173 $ret.="\n";
169 return($ret); 174 return($ret);
170 } 175 }
171 176
diff --git a/src/lib/libssl/src/util/pl/VC-32.pl b/src/lib/libssl/src/util/pl/VC-32.pl
index 285990c589..cf689b9feb 100644
--- a/src/lib/libssl/src/util/pl/VC-32.pl
+++ b/src/lib/libssl/src/util/pl/VC-32.pl
@@ -64,7 +64,7 @@ $des_enc_src='';
64$bf_enc_obj=''; 64$bf_enc_obj='';
65$bf_enc_src=''; 65$bf_enc_src='';
66 66
67if (!$no_asm) 67if (!$no_asm && !$fips)
68 { 68 {
69 $bn_asm_obj='crypto\bn\asm\bn_win32.obj'; 69 $bn_asm_obj='crypto\bn\asm\bn_win32.obj';
70 $bn_asm_src='crypto\bn\asm\bn_win32.asm'; 70 $bn_asm_src='crypto\bn\asm\bn_win32.asm';
@@ -126,14 +126,19 @@ sub do_lib_rule
126 126
127sub do_link_rule 127sub do_link_rule
128 { 128 {
129 local($target,$files,$dep_libs,$libs)=@_; 129 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
130 local($ret,$_); 130 local($ret,$_);
131 131
132 $file =~ s/\//$o/g if $o ne '/'; 132 $file =~ s/\//$o/g if $o ne '/';
133 $n=&bname($targer); 133 $n=&bname($targer);
134 $ret.="$target: $files $dep_libs\n"; 134 $ret.="$target: $files $dep_libs\n";
135 $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n"; 135 $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n";
136 $ret.=" \$(APP_EX_OBJ) $files $libs\n<<\n\n"; 136 $ret.=" \$(APP_EX_OBJ) $files $libs\n<<\n";
137 if (defined $sha1file)
138 {
139 $ret.=" $openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
140 }
141 $ret.="\n";
137 return($ret); 142 return($ret);
138 } 143 }
139 144
diff --git a/src/lib/libssl/src/util/pl/VC-CE.pl b/src/lib/libssl/src/util/pl/VC-CE.pl
index 1805ef9d97..2fd0c4dd32 100644
--- a/src/lib/libssl/src/util/pl/VC-CE.pl
+++ b/src/lib/libssl/src/util/pl/VC-CE.pl
@@ -47,7 +47,7 @@ $shlibp=($shlib)?".dll":".lib";
47$lfile='/out:'; 47$lfile='/out:';
48 48
49$shlib_ex_obj=""; 49$shlib_ex_obj="";
50#$app_ex_obj="setargv.obj"; 50$app_ex_obj="";
51$app_ex_obj=""; 51$app_ex_obj="";
52 52
53$bn_asm_obj=''; 53$bn_asm_obj='';
@@ -97,14 +97,19 @@ sub do_lib_rule
97 97
98sub do_link_rule 98sub do_link_rule
99 { 99 {
100 local($target,$files,$dep_libs,$libs)=@_; 100 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
101 local($ret,$_); 101 local($ret,$_);
102 102
103 $file =~ s/\//$o/g if $o ne '/'; 103 $file =~ s/\//$o/g if $o ne '/';
104 $n=&bname($targer); 104 $n=&bname($targer);
105 $ret.="$target: $files $dep_libs\n"; 105 $ret.="$target: $files $dep_libs\n";
106 $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n"; 106 $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n";
107 $ret.=" \$(APP_EX_OBJ) $files $libs\n<<\n\n"; 107 $ret.=" \$(APP_EX_OBJ) $files $libs\n<<\n";
108 if (defined $sha1file)
109 {
110 $ret.=" $openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
111 }
112 $ret.="\n";
108 return($ret); 113 return($ret);
109 } 114 }
110 115
diff --git a/src/lib/libssl/src/util/pl/linux.pl b/src/lib/libssl/src/util/pl/linux.pl
index 8924ed5480..df05c40526 100644
--- a/src/lib/libssl/src/util/pl/linux.pl
+++ b/src/lib/libssl/src/util/pl/linux.pl
@@ -72,13 +72,18 @@ sub do_shlib_rule
72 72
73sub do_link_rule 73sub do_link_rule
74 { 74 {
75 local($target,$files,$dep_libs,$libs)=@_; 75 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
76 local($ret,$_); 76 local($ret,$_);
77 77
78 $file =~ s/\//$o/g if $o ne '/'; 78 $file =~ s/\//$o/g if $o ne '/';
79 $n=&bname($target); 79 $n=&bname($target);
80 $ret.="$target: $files $dep_libs\n"; 80 $ret.="$target: $files $dep_libs\n";
81 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n\n"; 81 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n";
82 if (defined $sha1file)
83 {
84 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
85 }
86 $ret.="\n";
82 return($ret); 87 return($ret);
83 } 88 }
84 89
diff --git a/src/lib/libssl/src/util/pl/ultrix.pl b/src/lib/libssl/src/util/pl/ultrix.pl
index ea370c71f9..447b854708 100644
--- a/src/lib/libssl/src/util/pl/ultrix.pl
+++ b/src/lib/libssl/src/util/pl/ultrix.pl
@@ -17,7 +17,7 @@ else
17 17
18$cflags.=" -std1 -DL_ENDIAN"; 18$cflags.=" -std1 -DL_ENDIAN";
19 19
20if (!$no_asm) 20if (!$no_asm && !$fips)
21 { 21 {
22 $bn_asm_obj='$(OBJ_D)/mips1.o'; 22 $bn_asm_obj='$(OBJ_D)/mips1.o';
23 $bn_asm_src='crypto/bn/asm/mips1.s'; 23 $bn_asm_src='crypto/bn/asm/mips1.s';
@@ -25,13 +25,18 @@ if (!$no_asm)
25 25
26sub do_link_rule 26sub do_link_rule
27 { 27 {
28 local($target,$files,$dep_libs,$libs)=@_; 28 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
29 local($ret,$_); 29 local($ret,$_);
30 30
31 $file =~ s/\//$o/g if $o ne '/'; 31 $file =~ s/\//$o/g if $o ne '/';
32 $n=&bname($target); 32 $n=&bname($target);
33 $ret.="$target: $files $dep_libs\n"; 33 $ret.="$target: $files $dep_libs\n";
34 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n\n"; 34 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n";
35 if (defined $sha1file)
36 {
37 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
38 }
39 $ret.="\n";
35 return($ret); 40 return($ret);
36 } 41 }
37 42
diff --git a/src/lib/libssl/src/util/pl/unix.pl b/src/lib/libssl/src/util/pl/unix.pl
index 146611ad99..bbd1798a2e 100644
--- a/src/lib/libssl/src/util/pl/unix.pl
+++ b/src/lib/libssl/src/util/pl/unix.pl
@@ -70,13 +70,18 @@ sub do_lib_rule
70 70
71sub do_link_rule 71sub do_link_rule
72 { 72 {
73 local($target,$files,$dep_libs,$libs)=@_; 73 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_;
74 local($ret,$_); 74 local($ret,$_);
75 75
76 $file =~ s/\//$o/g if $o ne '/'; 76 $file =~ s/\//$o/g if $o ne '/';
77 $n=&bname($target); 77 $n=&bname($target);
78 $ret.="$target: $files $dep_libs\n"; 78 $ret.="$target: $files $dep_libs\n";
79 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n\n"; 79 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n";
80 if (defined $sha1file)
81 {
82 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
83 }
84 $ret.="\n";
80 return($ret); 85 return($ret);
81 } 86 }
82 87
diff --git a/src/lib/libssl/src/util/pod2mantest b/src/lib/libssl/src/util/pod2mantest
index 412ca8d6d8..384e683df4 100644
--- a/src/lib/libssl/src/util/pod2mantest
+++ b/src/lib/libssl/src/util/pod2mantest
@@ -1,6 +1,6 @@
1#!/bin/sh 1#!/bin/sh
2 2
3# This script is used by test/Makefile.ssl to check whether a sane 'pod2man' 3# This script is used by test/Makefile to check whether a sane 'pod2man'
4# is installed. 4# is installed.
5# ('make install' should not try to run 'pod2man' if it does not exist or if 5# ('make install' should not try to run 'pod2man' if it does not exist or if
6# it is a broken 'pod2man' version that is known to cause trouble. if we find 6# it is a broken 'pod2man' version that is known to cause trouble. if we find
diff --git a/src/lib/libssl/src/util/selftest.pl b/src/lib/libssl/src/util/selftest.pl
index 276b81183d..e9d5aa8938 100644
--- a/src/lib/libssl/src/util/selftest.pl
+++ b/src/lib/libssl/src/util/selftest.pl
@@ -34,9 +34,9 @@ foreach $_ (split("\n",$c)) {
34 $platform0=$1 if (/Configuring for (.*)$/); 34 $platform0=$1 if (/Configuring for (.*)$/);
35} 35}
36 36
37system "sh config" if (! -f "Makefile.ssl"); 37system "sh config" if (! -f "Makefile");
38 38
39if (open(IN,"<Makefile.ssl")) { 39if (open(IN,"<Makefile")) {
40 while (<IN>) { 40 while (<IN>) {
41 $version=$1 if (/^VERSION=(.*)$/); 41 $version=$1 if (/^VERSION=(.*)$/);
42 $platform=$1 if (/^PLATFORM=(.*)$/); 42 $platform=$1 if (/^PLATFORM=(.*)$/);
diff --git a/src/lib/libssl/src/util/shlib_wrap.sh b/src/lib/libssl/src/util/shlib_wrap.sh
new file mode 100755
index 0000000000..dc5f5b1ce4
--- /dev/null
+++ b/src/lib/libssl/src/util/shlib_wrap.sh
@@ -0,0 +1,70 @@
1#!/bin/sh
2
3[ $# -ne 0 ] || set -x # debug mode without arguments:-)
4
5THERE="`echo $0 | sed -e 's|[^/]*$||' 2>/dev/null`.."
6[ -d "${THERE}" ] || exec "$@" # should never happen...
7
8# Alternative to this is to parse ${THERE}/Makefile...
9LIBCRYPTOSO="${THERE}/libcrypto.so"
10if [ -f "$LIBCRYPTOSO" ]; then
11 while [ -h "$LIBCRYPTOSO" ]; do
12 LIBCRYPTOSO="${THERE}/`ls -l "$LIBCRYPTOSO" | sed -e 's|.*\-> ||'`"
13 done
14 SOSUFFIX=`echo ${LIBCRYPTOSO} | sed -e 's|.*\.so||' 2>/dev/null`
15 LIBSSLSO="${THERE}/libssl.so${SOSUFFIX}"
16fi
17
18SYSNAME=`(uname -s) 2>/dev/null`;
19case "$SYSNAME" in
20SunOS|IRIX*)
21 # SunOS and IRIX run-time linkers evaluate alternative
22 # variables depending on target ABI...
23 rld_var=LD_LIBRARY_PATH
24 case "`(/usr/bin/file "$LIBCRYPTOSO") 2>/dev/null`" in
25 *ELF\ 64*SPARC*)
26 [ -n "$LD_LIBRARY_PATH_64" ] && rld_var=LD_LIBRARY_PATH_64
27 ;;
28 *ELF\ N32*MIPS*)
29 [ -n "$LD_LIBRARYN32_PATH" ] && rld_var=LD_LIBRARYN32_PATH
30 _RLDN32_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT"; export _RLDN32_LIST
31 ;;
32 *ELF\ 64*MIPS*)
33 [ -n "$LD_LIBRARY64_PATH" ] && rld_var=LD_LIBRARY64_PATH
34 _RLD64_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT"; export _RLD64_LIST
35 ;;
36 esac
37 eval $rld_var=\"${THERE}:'$'$rld_var\"; export $rld_var
38 unset rld_var
39 ;;
40*) LD_LIBRARY_PATH="${THERE}:$LD_LIBRARY_PATH" # Linux, ELF HP-UX
41 DYLD_LIBRARY_PATH="${THERE}:$DYLD_LIBRARY_PATH" # MacOS X
42 SHLIB_PATH="${THERE}:$SHLIB_PATH" # legacy HP-UX
43 LIBPATH="${THERE}:$LIBPATH" # AIX, OS/2
44 export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH
45 # Even though $PATH is adjusted [for Windows sake], it doesn't
46 # necessarily does the trick. Trouble is that with introduction
47 # of SafeDllSearchMode in XP/2003 it's more appropriate to copy
48 # .DLLs in vicinity of executable, which is done elsewhere...
49 if [ "$OSTYPE" != msdosdjgpp ]; then
50 PATH="${THERE}:$PATH"; export PATH
51 fi
52 ;;
53esac
54
55if [ -f "$LIBCRYPTOSO" ]; then
56 # Following three lines are major excuse for isolating them into
57 # this wrapper script. Original reason for setting LD_PRELOAD
58 # was to make it possible to pass 'make test' when user linked
59 # with -rpath pointing to previous version installation. Wrapping
60 # it into a script makes it possible to do so on multi-ABI
61 # platforms.
62 case "$SYSNAME" in
63 *BSD) LD_PRELOAD="$LIBCRYPTOSO:$LIBSSLSO" ;; # *BSD
64 *) LD_PRELOAD="$LIBCRYPTOSO $LIBSSLSO" ;; # SunOS, Linux, ELF HP-UX
65 esac
66 _RLD_LIST="$LIBCRYPTOSO:$LIBSSLSO:DEFAULT" # Tru64, o32 IRIX
67 export LD_PRELOAD _RLD_LIST
68fi
69
70exec "$@"
diff --git a/src/lib/libssl/test/Makefile b/src/lib/libssl/test/Makefile
new file mode 100644
index 0000000000..6aeedf7fa3
--- /dev/null
+++ b/src/lib/libssl/test/Makefile
@@ -0,0 +1,788 @@
1#
2# test/Makefile
3#
4
5DIR= test
6TOP= ..
7CC= cc
8INCLUDES= -I$(TOP) -I../include $(KRB5_INCLUDES)
9CFLAG= -g
10INSTALL_PREFIX=
11OPENSSLDIR= /usr/local/ssl
12INSTALLTOP= /usr/local/ssl
13MAKEFILE= Makefile
14MAKEDEPPROG= makedepend
15MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
16PERL= perl
17# KRB5 stuff
18KRB5_INCLUDES=
19LIBKRB5=
20
21PEX_LIBS=
22EX_LIBS= #-lnsl -lsocket
23
24CFLAGS= $(INCLUDES) $(CFLAG)
25
26GENERAL=Makefile maketests.com \
27 tests.com testenc.com tx509.com trsa.com tcrl.com tsid.com treq.com \
28 tpkcs7.com tpkcs7d.com tverify.com testgen.com testss.com testssl.com \
29 testca.com VMSca-response.1 VMSca-response.2
30
31DLIBCRYPTO= ../libcrypto.a
32DLIBSSL= ../libssl.a
33LIBCRYPTO= -L.. -lcrypto
34LIBSSL= -L.. -lssl
35
36BNTEST= bntest
37ECTEST= ectest
38EXPTEST= exptest
39IDEATEST= ideatest
40SHATEST= shatest
41SHA1TEST= sha1test
42FIPS_SHA1TEST= fips_sha1test
43MDC2TEST= mdc2test
44RMDTEST= rmdtest
45MD2TEST= md2test
46MD4TEST= md4test
47MD5TEST= md5test
48HMACTEST= hmactest
49RC2TEST= rc2test
50RC4TEST= rc4test
51RC5TEST= rc5test
52BFTEST= bftest
53CASTTEST= casttest
54DESTEST= destest
55FIPS_DESTEST= fips_desmovs
56RANDTEST= randtest
57FIPS_RANDTEST= fips_randtest
58DHTEST= dhtest
59DSATEST= dsatest
60FIPS_DSATEST= fips_dsatest
61METHTEST= methtest
62SSLTEST= ssltest
63RSATEST= rsa_test
64ENGINETEST= enginetest
65EVPTEST= evp_test
66FIPS_AESTEST= fips_aesavs
67
68TESTS= alltests
69
70EXE= $(BNTEST)$(EXE_EXT) $(ECTEST)$(EXE_EXT) $(IDEATEST)$(EXE_EXT) $(MD2TEST)$(EXE_EXT) $(MD4TEST)$(EXE_EXT) $(MD5TEST)$(EXE_EXT) $(HMACTEST)$(EXE_EXT) \
71 $(RC2TEST)$(EXE_EXT) $(RC4TEST)$(EXE_EXT) $(RC5TEST)$(EXE_EXT) \
72 $(DESTEST)$(EXE_EXT) $(FIPS_DESTEST)$(EXE_EXT) $(SHATEST)$(EXE_EXT) $(SHA1TEST)$(EXE_EXT) $(FIPS_SHA1TEST)$(EXE_EXT) $(MDC2TEST)$(EXE_EXT) $(RMDTEST)$(EXE_EXT) \
73 $(RANDTEST)$(EXE_EXT) $(FIPS_RANDTEST)$(EXE_EXT) $(DHTEST)$(EXE_EXT) $(ENGINETEST)$(EXE_EXT) \
74 $(BFTEST)$(EXE_EXT) $(CASTTEST)$(EXE_EXT) $(SSLTEST)$(EXE_EXT) $(EXPTEST)$(EXE_EXT) $(DSATEST)$(EXE_EXT) $(FIPS_DSATEST)$(EXE_EXT) $(RSATEST)$(EXE_EXT) \
75 $(EVPTEST)$(EXE_EXT) $(FIPS_AESTEST)$(EXE_EXT)
76
77# $(METHTEST)$(EXE_EXT)
78
79OBJ= $(BNTEST).o $(ECTEST).o $(IDEATEST).o $(MD2TEST).o $(MD4TEST).o $(MD5TEST).o \
80 $(HMACTEST).o \
81 $(RC2TEST).o $(RC4TEST).o $(RC5TEST).o \
82 $(DESTEST).o $(FIPS_DESTEST).o $(SHATEST).o $(SHA1TEST).o $(FIPS_SHA1TEST).o $(MDC2TEST).o $(RMDTEST).o \
83 $(RANDTEST).o $(FIPS_RANDTEST).o $(DHTEST).o $(ENGINETEST).o $(CASTTEST).o \
84 $(BFTEST).o $(SSLTEST).o $(DSATEST).o $(FIPS_DSATEST).o $(EXPTEST).o $(RSATEST).o \
85 $(EVPTEST).o $(FIPS_AESTEST).o
86SRC= $(BNTEST).c $(ECTEST).c $(IDEATEST).c $(MD2TEST).c $(MD4TEST).c $(MD5TEST).c \
87 $(HMACTEST).c \
88 $(RC2TEST).c $(RC4TEST).c $(RC5TEST).c \
89 $(DESTEST).c $(FIPS_DESTEST).c $(SHATEST).c $(SHA1TEST).c $(FIPS_SHA1TEST).c $(MDC2TEST).c $(RMDTEST).c \
90 $(RANDTEST).c $(FIPS_RANDTEST).c $(DHTEST).c $(ENGINETEST).c $(CASTTEST).c \
91 $(BFTEST).c $(SSLTEST).c $(DSATEST).c $(FIPS_DSATEST).c $(EXPTEST).c $(RSATEST).c \
92 $(EVPTEST).c $(FIPS_AESTEST).c
93
94EXHEADER=
95HEADER= $(EXHEADER)
96
97ALL= $(GENERAL) $(SRC) $(HEADER)
98
99top:
100 (cd ..; $(MAKE) DIRS=$(DIR) TESTS=$(TESTS) all)
101
102all: exe
103
104exe: $(EXE) dummytest$(EXE_EXT)
105
106files:
107 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
108
109links:
110
111generate: $(SRC)
112$(SRC):
113 @sh $(TOP)/util/point.sh dummytest.c $@
114
115errors:
116
117install:
118
119tags:
120 ctags $(SRC)
121
122tests: exe apps $(TESTS)
123
124apps:
125 @(cd ..; $(MAKE) DIRS=apps all)
126
127alltests: \
128 test_des test_idea test_sha test_md4 test_md5 test_hmac \
129 test_md2 test_mdc2 \
130 test_rmd test_rc2 test_rc4 test_rc5 test_bf test_cast test_aes \
131 test_rand test_bn test_ec test_enc test_x509 test_rsa test_crl test_sid \
132 test_gen test_req test_pkcs7 test_verify test_dh test_dsa \
133 test_ss test_ca test_engine test_evp test_ssl
134# temporarily removed
135# fips_test_aes
136
137fips_test_aes:
138 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
139 mkdir -p fips_aes_data/rsp; \
140 ../util/shlib_wrap.sh ./$(FIPS_AESTEST) -d fips_aes_data/list; \
141 fi
142
143test_evp:
144 ../util/shlib_wrap.sh ./$(EVPTEST) evptests.txt
145
146test_des:
147 ../util/shlib_wrap.sh ./$(DESTEST)
148
149test_idea:
150 ../util/shlib_wrap.sh ./$(IDEATEST)
151
152test_sha:
153 ../util/shlib_wrap.sh ./$(SHATEST)
154 ../util/shlib_wrap.sh ./$(SHA1TEST)
155 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
156 ../util/shlib_wrap.sh ./$(FIPS_SHA1TEST) sha1vectors.txt | sed s/Strings/Hashes/ | cmp sha1hashes.txt - ; \
157 fi
158
159test_mdc2:
160 ../util/shlib_wrap.sh ./$(MDC2TEST)
161
162test_md5:
163 ../util/shlib_wrap.sh ./$(MD5TEST)
164
165test_md4:
166 ../util/shlib_wrap.sh ./$(MD4TEST)
167
168test_hmac:
169 ../util/shlib_wrap.sh ./$(HMACTEST)
170
171test_md2:
172 ../util/shlib_wrap.sh ./$(MD2TEST)
173
174test_rmd:
175 ../util/shlib_wrap.sh ./$(RMDTEST)
176
177test_bf:
178 ../util/shlib_wrap.sh ./$(BFTEST)
179
180test_cast:
181 ../util/shlib_wrap.sh ./$(CASTTEST)
182
183test_rc2:
184 ../util/shlib_wrap.sh ./$(RC2TEST)
185
186test_rc4:
187 ../util/shlib_wrap.sh ./$(RC4TEST)
188
189test_rc5:
190 ../util/shlib_wrap.sh ./$(RC5TEST)
191
192test_rand:
193 ../util/shlib_wrap.sh ./$(RANDTEST)
194 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
195 ../util/shlib_wrap.sh ./$(FIPS_RANDTEST); \
196 fi
197
198test_enc:
199 @sh ./testenc
200
201test_x509:
202 echo test normal x509v1 certificate
203 sh ./tx509 2>/dev/null
204 echo test first x509v3 certificate
205 sh ./tx509 v3-cert1.pem 2>/dev/null
206 echo test second x509v3 certificate
207 sh ./tx509 v3-cert2.pem 2>/dev/null
208
209test_rsa:
210 @sh ./trsa 2>/dev/null
211 ../util/shlib_wrap.sh ./$(RSATEST)
212
213test_crl:
214 @sh ./tcrl 2>/dev/null
215
216test_sid:
217 @sh ./tsid 2>/dev/null
218
219test_req:
220 @sh ./treq 2>/dev/null
221 @sh ./treq testreq2.pem 2>/dev/null
222
223test_pkcs7:
224 @sh ./tpkcs7 2>/dev/null
225 @sh ./tpkcs7d 2>/dev/null
226
227test_bn:
228 @echo starting big number library test, could take a while...
229 @../util/shlib_wrap.sh ./$(BNTEST) >tmp.bntest
230 @echo quit >>tmp.bntest
231 @echo "running bc"
232 @<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"'
233 @echo 'test a^b%c implementations'
234 ../util/shlib_wrap.sh ./$(EXPTEST)
235
236test_ec:
237 @echo 'test elliptic curves'
238 ../util/shlib_wrap.sh ./$(ECTEST)
239
240test_verify:
241 @echo "The following command should have some OK's and some failures"
242 @echo "There are definitly a few expired certificates"
243 -../util/shlib_wrap.sh ../apps/openssl verify -CApath ../certs ../certs/*.pem
244
245test_dh:
246 @echo "Generate a set of DH parameters"
247 ../util/shlib_wrap.sh ./$(DHTEST)
248
249test_dsa:
250 @echo "Generate a set of DSA parameters"
251 ../util/shlib_wrap.sh ./$(DSATEST)
252 ../util/shlib_wrap.sh ./$(DSATEST) -app2_1
253 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
254 ../util/shlib_wrap.sh ./$(FIPS_DSATEST); \
255 ../util/shlib_wrap.sh ./$(FIPS_DSATEST) -app2_1; \
256 fi
257
258test_gen:
259 @echo "Generate and verify a certificate request"
260 @sh ./testgen
261
262test_ss keyU.ss certU.ss certCA.ss certP1.ss keyP1.ss certP2.ss keyP2.ss \
263 intP1.ss intP2.ss: testss
264 @echo "Generate and certify a test certificate"
265 @sh ./testss
266 @cat certCA.ss certU.ss > intP1.ss
267 @cat certCA.ss certU.ss certP1.ss > intP2.ss
268
269test_engine:
270 @echo "Manipulate the ENGINE structures"
271 ../util/shlib_wrap.sh ./$(ENGINETEST)
272
273test_ssl: keyU.ss certU.ss certCA.ss certP1.ss keyP1.ss certP2.ss keyP2.ss \
274 intP1.ss intP2.ss
275 @echo "test SSL protocol"
276 @if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
277 sh ./testfipsssl keyU.ss certU.ss certCA.ss; \
278 fi
279 @sh ./testssl keyU.ss certU.ss certCA.ss
280 @sh ./testsslproxy keyP1.ss certP1.ss intP1.ss
281 @sh ./testsslproxy keyP2.ss certP2.ss intP2.ss
282
283test_ca:
284 @if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then \
285 echo "skipping CA.sh test -- requires RSA"; \
286 else \
287 echo "Generate and certify a test certificate via the 'ca' program"; \
288 sh ./testca; \
289 fi
290
291test_aes: #$(AESTEST)
292# @echo "test Rijndael"
293# ../util/shlib_wrap.sh ./$(AESTEST)
294
295lint:
296 lint -DLINT $(INCLUDES) $(SRC)>fluff
297
298depend:
299 $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(SRC)
300
301dclean:
302 $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
303 mv -f Makefile.new $(MAKEFILE)
304
305clean:
306 rm -f .rnd tmp.bntest tmp.bctest *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff $(EXE) *.ss *.srl log
307
308$(DLIBSSL):
309 (cd ..; $(MAKE) DIRS=ssl all)
310
311$(DLIBCRYPTO):
312 (cd ..; $(MAKE) DIRS=crypto all)
313
314BUILD_CMD=if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
315 set -x; $${CC:-$(CC)} -o $$target$(EXE_EXT) $(CFLAGS) $$target.o $(PEX_LIBS) $(DLIBSSL) $(LIBKRB5) $(DLIBCRYPTO) $(EX_LIBS) ; \
316 elif [ -z "$(SHARED_LIBS)" ]; then \
317 set -x; $${CC:-$(CC)} -o $$target$(EXE_EXT) $(CFLAGS) $$target.o $(PEX_LIBS) $(LIBSSL) $(LIBKRB5) $(LIBCRYPTO) $(EX_LIBS) ; \
318 else \
319 set -x; LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
320 $(CC) -o $$target$(EXE_EXT) $(CFLAGS) $$target.o $(PEX_LIBS) $(LIBSSL) $(LIBKRB5) $(LIBCRYPTO) $(EX_LIBS) ; \
321 fi;
322
323$(FIPS_AESTEST)$(EXE_EXT): $(FIPS_AESTEST).o $(DLIBCRYPTO)
324 @target=$(FIPS_AESTEST); $(BUILD_CMD)
325 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
326 TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a $(FIPS_AESTEST); \
327 fi
328
329$(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO)
330 @target=$(RSATEST); $(BUILD_CMD)
331
332$(BNTEST)$(EXE_EXT): $(BNTEST).o $(DLIBCRYPTO)
333 @target=$(BNTEST); $(BUILD_CMD)
334
335$(ECTEST)$(EXE_EXT): $(ECTEST).o $(DLIBCRYPTO)
336 @target=$(ECTEST); $(BUILD_CMD)
337
338$(EXPTEST)$(EXE_EXT): $(EXPTEST).o $(DLIBCRYPTO)
339 @target=$(EXPTEST); $(BUILD_CMD)
340
341$(IDEATEST)$(EXE_EXT): $(IDEATEST).o $(DLIBCRYPTO)
342 @target=$(IDEATEST); $(BUILD_CMD)
343
344$(MD2TEST)$(EXE_EXT): $(MD2TEST).o $(DLIBCRYPTO)
345 @target=$(MD2TEST); $(BUILD_CMD)
346
347$(SHATEST)$(EXE_EXT): $(SHATEST).o $(DLIBCRYPTO)
348 @target=$(SHATEST); $(BUILD_CMD)
349
350$(SHA1TEST)$(EXE_EXT): $(SHA1TEST).o $(DLIBCRYPTO)
351 @target=$(SHA1TEST); $(BUILD_CMD)
352
353$(FIPS_SHA1TEST)$(EXE_EXT): $(FIPS_SHA1TEST).o $(DLIBCRYPTO)
354 @target=$(FIPS_SHA1TEST); $(BUILD_CMD)
355 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
356 TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a $(FIPS_SHA1TEST); \
357 fi
358
359$(RMDTEST)$(EXE_EXT): $(RMDTEST).o $(DLIBCRYPTO)
360 @target=$(RMDTEST); $(BUILD_CMD)
361
362$(MDC2TEST)$(EXE_EXT): $(MDC2TEST).o $(DLIBCRYPTO)
363 @target=$(MDC2TEST); $(BUILD_CMD)
364
365$(MD4TEST)$(EXE_EXT): $(MD4TEST).o $(DLIBCRYPTO)
366 @target=$(MD4TEST); $(BUILD_CMD)
367
368$(MD5TEST)$(EXE_EXT): $(MD5TEST).o $(DLIBCRYPTO)
369 @target=$(MD5TEST); $(BUILD_CMD)
370
371$(HMACTEST)$(EXE_EXT): $(HMACTEST).o $(DLIBCRYPTO)
372 @target=$(HMACTEST); $(BUILD_CMD)
373
374$(RC2TEST)$(EXE_EXT): $(RC2TEST).o $(DLIBCRYPTO)
375 @target=$(RC2TEST); $(BUILD_CMD)
376
377$(BFTEST)$(EXE_EXT): $(BFTEST).o $(DLIBCRYPTO)
378 @target=$(BFTEST); $(BUILD_CMD)
379
380$(CASTTEST)$(EXE_EXT): $(CASTTEST).o $(DLIBCRYPTO)
381 @target=$(CASTTEST); $(BUILD_CMD)
382
383$(RC4TEST)$(EXE_EXT): $(RC4TEST).o $(DLIBCRYPTO)
384 @target=$(RC4TEST); $(BUILD_CMD)
385
386$(RC5TEST)$(EXE_EXT): $(RC5TEST).o $(DLIBCRYPTO)
387 @target=$(RC5TEST); $(BUILD_CMD)
388
389$(DESTEST)$(EXE_EXT): $(DESTEST).o $(DLIBCRYPTO)
390 @target=$(DESTEST); $(BUILD_CMD)
391
392$(FIPS_DESTEST)$(EXE_EXT): $(FIPS_DESTEST).o $(DLIBCRYPTO)
393 @target=$(FIPS_DESTEST); $(BUILD_CMD)
394 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
395 TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a $(FIPS_DESTEST); \
396 fi
397
398$(RANDTEST)$(EXE_EXT): $(RANDTEST).o $(DLIBCRYPTO)
399 @target=$(RANDTEST); $(BUILD_CMD)
400
401$(FIPS_RANDTEST)$(EXE_EXT): $(FIPS_RANDTEST).o $(DLIBCRYPTO)
402 @target=$(FIPS_RANDTEST); $(BUILD_CMD)
403 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
404 TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a $(FIPS_RANDTEST); \
405 fi
406
407$(DHTEST)$(EXE_EXT): $(DHTEST).o $(DLIBCRYPTO)
408 @target=$(DHTEST); $(BUILD_CMD)
409
410$(DSATEST)$(EXE_EXT): $(DSATEST).o $(DLIBCRYPTO)
411 @target=$(DSATEST); $(BUILD_CMD)
412
413$(FIPS_DSATEST)$(EXE_EXT): $(FIPS_DSATEST).o $(DLIBCRYPTO)
414 @target=$(FIPS_DSATEST); $(BUILD_CMD)
415 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
416 TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a $(FIPS_DSATEST); \
417 fi
418
419$(METHTEST)$(EXE_EXT): $(METHTEST).o $(DLIBCRYPTO)
420 @target=$(METHTEST); $(BUILD_CMD)
421
422$(SSLTEST)$(EXE_EXT): $(SSLTEST).o $(DLIBSSL) $(DLIBCRYPTO)
423 @target=$(SSLTEST); $(BUILD_CMD)
424 if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
425 TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a $(SSLTEST); \
426 fi
427
428$(ENGINETEST)$(EXE_EXT): $(ENGINETEST).o $(DLIBCRYPTO)
429 @target=$(ENGINETEST); $(BUILD_CMD)
430
431$(EVPTEST)$(EXE_EXT): $(EVPTEST).o $(DLIBCRYPTO)
432 @target=$(EVPTEST); $(BUILD_CMD)
433
434#$(AESTEST).o: $(AESTEST).c
435# $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c
436
437#$(AESTEST)$(EXE_EXT): $(AESTEST).o $(DLIBCRYPTO)
438# @target=$(AESTEST); $(BUILD_CMD)
439
440dummytest$(EXE_EXT): dummytest.o $(DLIBCRYPTO)
441 @target=dummytest; $(BUILD_CMD)
442
443# DO NOT DELETE THIS LINE -- make depend depends on it.
444
445bftest.o: ../e_os.h ../include/openssl/blowfish.h ../include/openssl/e_os2.h
446bftest.o: ../include/openssl/opensslconf.h bftest.c
447bntest.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
448bntest.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
449bntest.o: ../include/openssl/bn.h ../include/openssl/buffer.h
450bntest.o: ../include/openssl/cast.h ../include/openssl/crypto.h
451bntest.o: ../include/openssl/des.h ../include/openssl/des_old.h
452bntest.o: ../include/openssl/dh.h ../include/openssl/dsa.h
453bntest.o: ../include/openssl/e_os2.h ../include/openssl/err.h
454bntest.o: ../include/openssl/evp.h ../include/openssl/idea.h
455bntest.o: ../include/openssl/lhash.h ../include/openssl/md2.h
456bntest.o: ../include/openssl/md4.h ../include/openssl/md5.h
457bntest.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
458bntest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
459bntest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
460bntest.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
461bntest.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
462bntest.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
463bntest.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
464bntest.o: ../include/openssl/sha.h ../include/openssl/stack.h
465bntest.o: ../include/openssl/symhacks.h ../include/openssl/ui.h
466bntest.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
467bntest.o: ../include/openssl/x509_vfy.h bntest.c
468casttest.o: ../e_os.h ../include/openssl/cast.h ../include/openssl/e_os2.h
469casttest.o: ../include/openssl/opensslconf.h casttest.c
470destest.o: ../include/openssl/crypto.h ../include/openssl/des.h
471destest.o: ../include/openssl/des_old.h ../include/openssl/e_os2.h
472destest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
473destest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
474destest.o: ../include/openssl/symhacks.h ../include/openssl/ui.h
475destest.o: ../include/openssl/ui_compat.h destest.c
476dhtest.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/bn.h
477dhtest.o: ../include/openssl/crypto.h ../include/openssl/dh.h
478dhtest.o: ../include/openssl/e_os2.h ../include/openssl/err.h
479dhtest.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
480dhtest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
481dhtest.o: ../include/openssl/rand.h ../include/openssl/safestack.h
482dhtest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h dhtest.c
483dsatest.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/bn.h
484dsatest.o: ../include/openssl/crypto.h ../include/openssl/dh.h
485dsatest.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
486dsatest.o: ../include/openssl/err.h ../include/openssl/lhash.h
487dsatest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
488dsatest.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
489dsatest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
490dsatest.o: ../include/openssl/symhacks.h dsatest.c
491ectest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
492ectest.o: ../include/openssl/bn.h ../include/openssl/crypto.h
493ectest.o: ../include/openssl/dh.h ../include/openssl/dsa.h
494ectest.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
495ectest.o: ../include/openssl/engine.h ../include/openssl/err.h
496ectest.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
497ectest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
498ectest.o: ../include/openssl/rand.h ../include/openssl/rsa.h
499ectest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
500ectest.o: ../include/openssl/symhacks.h ../include/openssl/ui.h ectest.c
501enginetest.o: ../include/openssl/asn1.h ../include/openssl/bio.h
502enginetest.o: ../include/openssl/bn.h ../include/openssl/buffer.h
503enginetest.o: ../include/openssl/crypto.h ../include/openssl/dh.h
504enginetest.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
505enginetest.o: ../include/openssl/engine.h ../include/openssl/err.h
506enginetest.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
507enginetest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
508enginetest.o: ../include/openssl/rand.h ../include/openssl/rsa.h
509enginetest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
510enginetest.o: ../include/openssl/symhacks.h ../include/openssl/ui.h
511enginetest.o: enginetest.c
512evp_test.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
513evp_test.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
514evp_test.o: ../include/openssl/bn.h ../include/openssl/cast.h
515evp_test.o: ../include/openssl/conf.h ../include/openssl/crypto.h
516evp_test.o: ../include/openssl/des.h ../include/openssl/des_old.h
517evp_test.o: ../include/openssl/dh.h ../include/openssl/dsa.h
518evp_test.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
519evp_test.o: ../include/openssl/err.h ../include/openssl/evp.h
520evp_test.o: ../include/openssl/idea.h ../include/openssl/lhash.h
521evp_test.o: ../include/openssl/md2.h ../include/openssl/md4.h
522evp_test.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
523evp_test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
524evp_test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
525evp_test.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
526evp_test.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
527evp_test.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
528evp_test.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
529evp_test.o: ../include/openssl/sha.h ../include/openssl/stack.h
530evp_test.o: ../include/openssl/symhacks.h ../include/openssl/ui.h
531evp_test.o: ../include/openssl/ui_compat.h evp_test.c
532exptest.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/bn.h
533exptest.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
534exptest.o: ../include/openssl/err.h ../include/openssl/lhash.h
535exptest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
536exptest.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
537exptest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
538exptest.o: ../include/openssl/symhacks.h exptest.c
539fips_aesavs.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
540fips_aesavs.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
541fips_aesavs.o: ../include/openssl/bn.h ../include/openssl/cast.h
542fips_aesavs.o: ../include/openssl/crypto.h ../include/openssl/des.h
543fips_aesavs.o: ../include/openssl/des_old.h ../include/openssl/dh.h
544fips_aesavs.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
545fips_aesavs.o: ../include/openssl/err.h ../include/openssl/evp.h
546fips_aesavs.o: ../include/openssl/fips.h ../include/openssl/idea.h
547fips_aesavs.o: ../include/openssl/lhash.h ../include/openssl/md2.h
548fips_aesavs.o: ../include/openssl/md4.h ../include/openssl/md5.h
549fips_aesavs.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
550fips_aesavs.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
551fips_aesavs.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
552fips_aesavs.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
553fips_aesavs.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
554fips_aesavs.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
555fips_aesavs.o: ../include/openssl/sha.h ../include/openssl/stack.h
556fips_aesavs.o: ../include/openssl/symhacks.h ../include/openssl/ui.h
557fips_aesavs.o: ../include/openssl/ui_compat.h fips_aesavs.c
558fips_desmovs.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
559fips_desmovs.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
560fips_desmovs.o: ../include/openssl/bn.h ../include/openssl/cast.h
561fips_desmovs.o: ../include/openssl/crypto.h ../include/openssl/des.h
562fips_desmovs.o: ../include/openssl/des_old.h ../include/openssl/dh.h
563fips_desmovs.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
564fips_desmovs.o: ../include/openssl/err.h ../include/openssl/evp.h
565fips_desmovs.o: ../include/openssl/fips.h ../include/openssl/idea.h
566fips_desmovs.o: ../include/openssl/lhash.h ../include/openssl/md2.h
567fips_desmovs.o: ../include/openssl/md4.h ../include/openssl/md5.h
568fips_desmovs.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
569fips_desmovs.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
570fips_desmovs.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
571fips_desmovs.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
572fips_desmovs.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
573fips_desmovs.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
574fips_desmovs.o: ../include/openssl/sha.h ../include/openssl/stack.h
575fips_desmovs.o: ../include/openssl/symhacks.h ../include/openssl/ui.h
576fips_desmovs.o: ../include/openssl/ui_compat.h fips_desmovs.c
577fips_dsatest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
578fips_dsatest.o: ../include/openssl/bn.h ../include/openssl/crypto.h
579fips_dsatest.o: ../include/openssl/des.h ../include/openssl/des_old.h
580fips_dsatest.o: ../include/openssl/dh.h ../include/openssl/dsa.h
581fips_dsatest.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
582fips_dsatest.o: ../include/openssl/err.h ../include/openssl/fips.h
583fips_dsatest.o: ../include/openssl/fips_rand.h ../include/openssl/lhash.h
584fips_dsatest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
585fips_dsatest.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
586fips_dsatest.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
587fips_dsatest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
588fips_dsatest.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
589fips_dsatest.o: fips_dsatest.c
590fips_randtest.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/crypto.h
591fips_randtest.o: ../include/openssl/des.h ../include/openssl/des_old.h
592fips_randtest.o: ../include/openssl/e_os2.h ../include/openssl/err.h
593fips_randtest.o: ../include/openssl/fips_rand.h ../include/openssl/lhash.h
594fips_randtest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
595fips_randtest.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
596fips_randtest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
597fips_randtest.o: ../include/openssl/symhacks.h ../include/openssl/ui.h
598fips_randtest.o: ../include/openssl/ui_compat.h fips_randtest.c
599fips_sha1test.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/crypto.h
600fips_sha1test.o: ../include/openssl/e_os2.h ../include/openssl/err.h
601fips_sha1test.o: ../include/openssl/fips.h ../include/openssl/lhash.h
602fips_sha1test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
603fips_sha1test.o: ../include/openssl/safestack.h ../include/openssl/sha.h
604fips_sha1test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
605fips_sha1test.o: fips_sha1test.c
606hmactest.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
607hmactest.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
608hmactest.o: ../include/openssl/bn.h ../include/openssl/cast.h
609hmactest.o: ../include/openssl/crypto.h ../include/openssl/des.h
610hmactest.o: ../include/openssl/des_old.h ../include/openssl/dh.h
611hmactest.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
612hmactest.o: ../include/openssl/evp.h ../include/openssl/hmac.h
613hmactest.o: ../include/openssl/idea.h ../include/openssl/md2.h
614hmactest.o: ../include/openssl/md4.h ../include/openssl/md5.h
615hmactest.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
616hmactest.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
617hmactest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
618hmactest.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
619hmactest.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
620hmactest.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
621hmactest.o: ../include/openssl/sha.h ../include/openssl/stack.h
622hmactest.o: ../include/openssl/symhacks.h ../include/openssl/ui.h
623hmactest.o: ../include/openssl/ui_compat.h hmactest.c
624ideatest.o: ../e_os.h ../include/openssl/e_os2.h ../include/openssl/idea.h
625ideatest.o: ../include/openssl/opensslconf.h ideatest.c
626md2test.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
627md2test.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
628md2test.o: ../include/openssl/bn.h ../include/openssl/cast.h
629md2test.o: ../include/openssl/crypto.h ../include/openssl/des.h
630md2test.o: ../include/openssl/des_old.h ../include/openssl/dh.h
631md2test.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
632md2test.o: ../include/openssl/evp.h ../include/openssl/idea.h
633md2test.o: ../include/openssl/md2.h ../include/openssl/md4.h
634md2test.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
635md2test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
636md2test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
637md2test.o: ../include/openssl/ossl_typ.h ../include/openssl/rc2.h
638md2test.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
639md2test.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
640md2test.o: ../include/openssl/safestack.h ../include/openssl/sha.h
641md2test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
642md2test.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h md2test.c
643md4test.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
644md4test.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
645md4test.o: ../include/openssl/bn.h ../include/openssl/cast.h
646md4test.o: ../include/openssl/crypto.h ../include/openssl/des.h
647md4test.o: ../include/openssl/des_old.h ../include/openssl/dh.h
648md4test.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
649md4test.o: ../include/openssl/evp.h ../include/openssl/idea.h
650md4test.o: ../include/openssl/md2.h ../include/openssl/md4.h
651md4test.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
652md4test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
653md4test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
654md4test.o: ../include/openssl/ossl_typ.h ../include/openssl/rc2.h
655md4test.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
656md4test.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
657md4test.o: ../include/openssl/safestack.h ../include/openssl/sha.h
658md4test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
659md4test.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h md4test.c
660md5test.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
661md5test.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
662md5test.o: ../include/openssl/bn.h ../include/openssl/cast.h
663md5test.o: ../include/openssl/crypto.h ../include/openssl/des.h
664md5test.o: ../include/openssl/des_old.h ../include/openssl/dh.h
665md5test.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
666md5test.o: ../include/openssl/evp.h ../include/openssl/idea.h
667md5test.o: ../include/openssl/md2.h ../include/openssl/md4.h
668md5test.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
669md5test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
670md5test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
671md5test.o: ../include/openssl/ossl_typ.h ../include/openssl/rc2.h
672md5test.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
673md5test.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
674md5test.o: ../include/openssl/safestack.h ../include/openssl/sha.h
675md5test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
676md5test.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h md5test.c
677mdc2test.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
678mdc2test.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
679mdc2test.o: ../include/openssl/bn.h ../include/openssl/cast.h
680mdc2test.o: ../include/openssl/crypto.h ../include/openssl/des.h
681mdc2test.o: ../include/openssl/des_old.h ../include/openssl/dh.h
682mdc2test.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
683mdc2test.o: ../include/openssl/evp.h ../include/openssl/idea.h
684mdc2test.o: ../include/openssl/md2.h ../include/openssl/md4.h
685mdc2test.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
686mdc2test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
687mdc2test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
688mdc2test.o: ../include/openssl/ossl_typ.h ../include/openssl/rc2.h
689mdc2test.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
690mdc2test.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
691mdc2test.o: ../include/openssl/safestack.h ../include/openssl/sha.h
692mdc2test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
693mdc2test.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h mdc2test.c
694randtest.o: ../e_os.h ../include/openssl/e_os2.h
695randtest.o: ../include/openssl/opensslconf.h ../include/openssl/ossl_typ.h
696randtest.o: ../include/openssl/rand.h randtest.c
697rc2test.o: ../e_os.h ../include/openssl/e_os2.h
698rc2test.o: ../include/openssl/opensslconf.h ../include/openssl/rc2.h rc2test.c
699rc4test.o: ../e_os.h ../include/openssl/e_os2.h
700rc4test.o: ../include/openssl/opensslconf.h ../include/openssl/rc4.h rc4test.c
701rc5test.o: ../e_os.h ../include/openssl/e_os2.h
702rc5test.o: ../include/openssl/opensslconf.h ../include/openssl/rc5.h rc5test.c
703rmdtest.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
704rmdtest.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
705rmdtest.o: ../include/openssl/bn.h ../include/openssl/cast.h
706rmdtest.o: ../include/openssl/crypto.h ../include/openssl/des.h
707rmdtest.o: ../include/openssl/des_old.h ../include/openssl/dh.h
708rmdtest.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
709rmdtest.o: ../include/openssl/evp.h ../include/openssl/idea.h
710rmdtest.o: ../include/openssl/md2.h ../include/openssl/md4.h
711rmdtest.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
712rmdtest.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
713rmdtest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
714rmdtest.o: ../include/openssl/ossl_typ.h ../include/openssl/rc2.h
715rmdtest.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
716rmdtest.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
717rmdtest.o: ../include/openssl/safestack.h ../include/openssl/sha.h
718rmdtest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
719rmdtest.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h rmdtest.c
720rsa_test.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
721rsa_test.o: ../include/openssl/bn.h ../include/openssl/crypto.h
722rsa_test.o: ../include/openssl/e_os2.h ../include/openssl/err.h
723rsa_test.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
724rsa_test.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
725rsa_test.o: ../include/openssl/rand.h ../include/openssl/rsa.h
726rsa_test.o: ../include/openssl/safestack.h ../include/openssl/stack.h
727rsa_test.o: ../include/openssl/symhacks.h rsa_test.c
728sha1test.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
729sha1test.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
730sha1test.o: ../include/openssl/bn.h ../include/openssl/cast.h
731sha1test.o: ../include/openssl/crypto.h ../include/openssl/des.h
732sha1test.o: ../include/openssl/des_old.h ../include/openssl/dh.h
733sha1test.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
734sha1test.o: ../include/openssl/evp.h ../include/openssl/idea.h
735sha1test.o: ../include/openssl/md2.h ../include/openssl/md4.h
736sha1test.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
737sha1test.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
738sha1test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
739sha1test.o: ../include/openssl/ossl_typ.h ../include/openssl/rc2.h
740sha1test.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
741sha1test.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
742sha1test.o: ../include/openssl/safestack.h ../include/openssl/sha.h
743sha1test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
744sha1test.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h sha1test.c
745shatest.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
746shatest.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
747shatest.o: ../include/openssl/bn.h ../include/openssl/cast.h
748shatest.o: ../include/openssl/crypto.h ../include/openssl/des.h
749shatest.o: ../include/openssl/des_old.h ../include/openssl/dh.h
750shatest.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
751shatest.o: ../include/openssl/evp.h ../include/openssl/idea.h
752shatest.o: ../include/openssl/md2.h ../include/openssl/md4.h
753shatest.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
754shatest.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
755shatest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
756shatest.o: ../include/openssl/ossl_typ.h ../include/openssl/rc2.h
757shatest.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
758shatest.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
759shatest.o: ../include/openssl/safestack.h ../include/openssl/sha.h
760shatest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
761shatest.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h shatest.c
762ssltest.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
763ssltest.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
764ssltest.o: ../include/openssl/bn.h ../include/openssl/buffer.h
765ssltest.o: ../include/openssl/cast.h ../include/openssl/comp.h
766ssltest.o: ../include/openssl/conf.h ../include/openssl/crypto.h
767ssltest.o: ../include/openssl/des.h ../include/openssl/des_old.h
768ssltest.o: ../include/openssl/dh.h ../include/openssl/dsa.h
769ssltest.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
770ssltest.o: ../include/openssl/err.h ../include/openssl/evp.h
771ssltest.o: ../include/openssl/fips.h ../include/openssl/idea.h
772ssltest.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
773ssltest.o: ../include/openssl/md2.h ../include/openssl/md4.h
774ssltest.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
775ssltest.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
776ssltest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
777ssltest.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
778ssltest.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
779ssltest.o: ../include/openssl/rand.h ../include/openssl/rc2.h
780ssltest.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
781ssltest.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
782ssltest.o: ../include/openssl/safestack.h ../include/openssl/sha.h
783ssltest.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
784ssltest.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
785ssltest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
786ssltest.o: ../include/openssl/tls1.h ../include/openssl/ui.h
787ssltest.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
788ssltest.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h ssltest.c
diff --git a/src/lib/libssl/test/evptests.txt b/src/lib/libssl/test/evptests.txt
index 80bd9c7765..dfe91a5bc0 100644
--- a/src/lib/libssl/test/evptests.txt
+++ b/src/lib/libssl/test/evptests.txt
@@ -92,7 +92,102 @@ AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:000
92AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:F58C4C04D6E5F1BA779EABFB5F7BFBD6:AE2D8A571E03AC9C9EB76FAC45AF8E51:9CFC4E967EDB808D679F777BC6702C7D 92AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:F58C4C04D6E5F1BA779EABFB5F7BFBD6:AE2D8A571E03AC9C9EB76FAC45AF8E51:9CFC4E967EDB808D679F777BC6702C7D
93AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:9CFC4E967EDB808D679F777BC6702C7D:30C81C46A35CE411E5FBC1191A0A52EF:39F23369A9D9BACFA530E26304231461 93AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:9CFC4E967EDB808D679F777BC6702C7D:30C81C46A35CE411E5FBC1191A0A52EF:39F23369A9D9BACFA530E26304231461
94AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:39F23369A9D9BACFA530E26304231461:F69F2445DF4F9B17AD2B417BE66C3710:B2EB05E2C39BE9FCDA6C19078C6A9D1B 94AES-256-CBC:603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4:39F23369A9D9BACFA530E26304231461:F69F2445DF4F9B17AD2B417BE66C3710:B2EB05E2C39BE9FCDA6C19078C6A9D1B
95# We don't support CFB{1,8}-AESxxx.{En,De}crypt 95
96# CFB1-AES128.Encrypt
97
98AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:00:00:1
99AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:00020406080a0c0e10121416181a1c1e:80:80:1
100AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0004080c1014181c2024282c3034383d:80:80:1
101AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0008101820283038404850586068707b:00:00:1
102AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:00102030405060708090a0b0c0d0e0f6:80:80:1
103AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0020406080a0c0e10121416181a1c1ed:00:00:1
104AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:004080c1014181c2024282c3034383da:80:00:1
105AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:008101820283038404850586068707b4:80:00:1
106AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0102030405060708090a0b0c0d0e0f68:80:80:1
107AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:020406080a0c0e10121416181a1c1ed1:80:00:1
108AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:04080c1014181c2024282c3034383da2:00:80:1
109AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:08101820283038404850586068707b45:00:80:1
110AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:102030405060708090a0b0c0d0e0f68b:00:00:1
111AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:20406080a0c0e10121416181a1c1ed16:00:00:1
112AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:4080c1014181c2024282c3034383da2c:00:80:1
113AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:8101820283038404850586068707b459:80:80:1
114# all of the above packed into one...
115# in: 0110 1011 1100 0001 = 6bc1
116# out: 0110 1000 1011 0011 = 68b3
117AES-128-CFB1*8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6bc1:68b3:1
118
119# CFB1-AES128.Decrypt
120AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:00:00:0
121AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:00020406080a0c0e10121416181a1c1e:80:80:0
122AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0004080c1014181c2024282c3034383d:80:80:0
123AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0008101820283038404850586068707b:00:00:0
124AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:00102030405060708090a0b0c0d0e0f6:80:80:0
125AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0020406080a0c0e10121416181a1c1ed:00:00:0
126AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:004080c1014181c2024282c3034383da:80:00:0
127AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:008101820283038404850586068707b4:80:00:0
128AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:0102030405060708090a0b0c0d0e0f68:80:80:0
129AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:020406080a0c0e10121416181a1c1ed1:80:00:0
130AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:04080c1014181c2024282c3034383da2:00:80:0
131AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:08101820283038404850586068707b45:00:80:0
132AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:102030405060708090a0b0c0d0e0f68b:00:00:0
133AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:20406080a0c0e10121416181a1c1ed16:00:00:0
134AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:4080c1014181c2024282c3034383da2c:00:80:0
135AES-128-CFB1:2b7e151628aed2a6abf7158809cf4f3c:8101820283038404850586068707b459:80:80:0
136# all of the above packed into one...
137# in: 0110 1000 1011 0011 = 68b3
138# out: 0110 1011 1100 0001 = 6bc1
139AES-128-CFB1*8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6bc1:68b3:0
140
141# TODO: CFB1-AES192 and 256
142
143# CFB8-AES128.Encrypt
144
145AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6b:3b:1
146AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0102030405060708090a0b0c0d0e0f3b:c1:79:1
147AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:02030405060708090a0b0c0d0e0f3b79:be:42:1
148AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:030405060708090a0b0c0d0e0f3b7942:e2:4c:1
149AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0405060708090a0b0c0d0e0f3b79424c:2e:9c:1
150AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:05060708090a0b0c0d0e0f3b79424c9c:40:0d:1
151AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:060708090a0b0c0d0e0f3b79424c9c0d:9f:d4:1
152AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0708090a0b0c0d0e0f3b79424c9c0dd4:96:36:1
153AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:08090a0b0c0d0e0f3b79424c9c0dd436:e9:ba:1
154AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:090a0b0c0d0e0f3b79424c9c0dd436ba:3d:ce:1
155AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0a0b0c0d0e0f3b79424c9c0dd436bace:7e:9e:1
156AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0b0c0d0e0f3b79424c9c0dd436bace9e:11:0e:1
157AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0c0d0e0f3b79424c9c0dd436bace9e0e:73:d4:1
158AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0d0e0f3b79424c9c0dd436bace9e0ed4:93:58:1
159AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0e0f3b79424c9c0dd436bace9e0ed458:17:6a:1
160AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0f3b79424c9c0dd436bace9e0ed4586a:2a:4f:1
161AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:3b79424c9c0dd436bace9e0ed4586a4f:ae:32:1
162AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:79424c9c0dd436bace9e0ed4586a4f32:2d:b9:1
163# all of the above packed into one
164AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6bc1bee22e409f96e93d7e117393172aae2d:3b79424c9c0dd436bace9e0ed4586a4f32b9:1
165
166# CFB8-AES128.Decrypt
167
168AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6b:3b:0
169AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0102030405060708090a0b0c0d0e0f3b:c1:79:0
170AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:02030405060708090a0b0c0d0e0f3b79:be:42:0
171AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:030405060708090a0b0c0d0e0f3b7942:e2:4c:0
172AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0405060708090a0b0c0d0e0f3b79424c:2e:9c:0
173AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:05060708090a0b0c0d0e0f3b79424c9c:40:0d:0
174AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:060708090a0b0c0d0e0f3b79424c9c0d:9f:d4:0
175AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0708090a0b0c0d0e0f3b79424c9c0dd4:96:36:0
176AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:08090a0b0c0d0e0f3b79424c9c0dd436:e9:ba:0
177AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:090a0b0c0d0e0f3b79424c9c0dd436ba:3d:ce:0
178AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0a0b0c0d0e0f3b79424c9c0dd436bace:7e:9e:0
179AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0b0c0d0e0f3b79424c9c0dd436bace9e:11:0e:0
180AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0c0d0e0f3b79424c9c0dd436bace9e0e:73:d4:0
181AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0d0e0f3b79424c9c0dd436bace9e0ed4:93:58:0
182AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0e0f3b79424c9c0dd436bace9e0ed458:17:6a:0
183AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0f3b79424c9c0dd436bace9e0ed4586a:2a:4f:0
184AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:3b79424c9c0dd436bace9e0ed4586a4f:ae:32:0
185AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:79424c9c0dd436bace9e0ed4586a4f32:2d:b9:0
186# all of the above packed into one
187AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6bc1bee22e409f96e93d7e117393172aae2d:3b79424c9c0dd436bace9e0ed4586a4f32b9:0
188
189# TODO: 192 and 256 bit keys
190
96# For all CFB128 encrypts and decrypts, the transformed sequence is 191# For all CFB128 encrypts and decrypts, the transformed sequence is
97# AES-bits-CFB:key:IV/ciphertext':plaintext:ciphertext:encdec 192# AES-bits-CFB:key:IV/ciphertext':plaintext:ciphertext:encdec
98# CFB128-AES128.Encrypt 193# CFB128-AES128.Encrypt
@@ -174,6 +269,16 @@ DESX-CBC:0123456789abcdeff1e0d3c2b5a49786fedcba9876543210:fedcba9876543210:37363
174# DES EDE3 CBC tests (from destest) 269# DES EDE3 CBC tests (from destest)
175DES-EDE3-CBC:0123456789abcdeff1e0d3c2b5a49786fedcba9876543210:fedcba9876543210:37363534333231204E6F77206973207468652074696D6520666F722000000000:3FE301C962AC01D02213763C1CBD4CDC799657C064ECF5D41C673812CFDE9675 270DES-EDE3-CBC:0123456789abcdeff1e0d3c2b5a49786fedcba9876543210:fedcba9876543210:37363534333231204E6F77206973207468652074696D6520666F722000000000:3FE301C962AC01D02213763C1CBD4CDC799657C064ECF5D41C673812CFDE9675
176 271
272# DES CFB1 from FIPS 81
273# plaintext: 0100 1110 0110 1111 0111 0111 = 4e6f77
274# ciphertext: 1100 1101 0001 1110 1100 1001 = cd1ec9
275
276DES-CFB1*8:0123456789abcdef:1234567890abcdef:4e6f77:cd1ec9
277
278# DES CFB8 from FIPS 81
279
280DES-CFB8:0123456789abcdef:1234567890abcdef:4e6f7720697320746865:f31fda07011462ee187f
281
177# RC4 tests (from rc4test) 282# RC4 tests (from rc4test)
178RC4:0123456789abcdef0123456789abcdef::0123456789abcdef:75b7878099e0c596 283RC4:0123456789abcdef0123456789abcdef::0123456789abcdef:75b7878099e0c596
179RC4:0123456789abcdef0123456789abcdef::0000000000000000:7494c2e7104b0879 284RC4:0123456789abcdef0123456789abcdef::0000000000000000:7494c2e7104b0879
diff --git a/src/lib/libssl/test/maketests.com b/src/lib/libssl/test/maketests.com
index 7c44e4545a..dfbfef7b1b 100644
--- a/src/lib/libssl/test/maketests.com
+++ b/src/lib/libssl/test/maketests.com
@@ -615,7 +615,7 @@ $ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
615 THEN CC = "CC/DECC" 615 THEN CC = "CC/DECC"
616$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89" + - 616$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89" + -
617 "/NOLIST/PREFIX=ALL" + - 617 "/NOLIST/PREFIX=ALL" + -
618 "/INCLUDE=(SYS$DISK:[-])" + CCEXTRAFLAGS 618 "/INCLUDE=(SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + CCEXTRAFLAGS
619$! 619$!
620$! Define The Linker Options File Name. 620$! Define The Linker Options File Name.
621$! 621$!
@@ -648,7 +648,7 @@ $ EXIT
648$ ENDIF 648$ ENDIF
649$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC" 649$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC"
650$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - 650$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
651 "/INCLUDE=(SYS$DISK:[-])" + CCEXTRAFLAGS 651 "/INCLUDE=(SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + CCEXTRAFLAGS
652$ CCDEFS = CCDEFS + ",""VAXC""" 652$ CCDEFS = CCDEFS + ",""VAXC"""
653$! 653$!
654$! Define <sys> As SYS$COMMON:[SYSLIB] 654$! Define <sys> As SYS$COMMON:[SYSLIB]
@@ -679,7 +679,7 @@ $!
679$! Use GNU C... 679$! Use GNU C...
680$! 680$!
681$ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - 681$ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
682 "/INCLUDE=(SYS$DISK:[-])" + CCEXTRAFLAGS 682 "/INCLUDE=(SYS$DISK:[-],SYS$DISK:[-.CRYPTO])" + CCEXTRAFLAGS
683$! 683$!
684$! Define The Linker Options File Name. 684$! Define The Linker Options File Name.
685$! 685$!
diff --git a/src/lib/libssl/test/testenc.com b/src/lib/libssl/test/testenc.com
index c24fa388c0..5e6f521f9d 100644
--- a/src/lib/libssl/test/testenc.com
+++ b/src/lib/libssl/test/testenc.com
@@ -4,7 +4,7 @@ $ __arch := VAX
4$ if f$getsyi("cpu") .ge. 128 then __arch := AXP 4$ if f$getsyi("cpu") .ge. 128 then __arch := AXP
5$ exe_dir := sys$disk:[-.'__arch'.exe.apps] 5$ exe_dir := sys$disk:[-.'__arch'.exe.apps]
6$ 6$
7$ testsrc := makefile.ssl 7$ testsrc := makefile.
8$ test := p.txt 8$ test := p.txt
9$ cmd := mcr 'exe_dir'openssl 9$ cmd := mcr 'exe_dir'openssl
10$ 10$
diff --git a/src/lib/libssl/test/testfipsssl b/src/lib/libssl/test/testfipsssl
new file mode 100644
index 0000000000..c4836edc25
--- /dev/null
+++ b/src/lib/libssl/test/testfipsssl
@@ -0,0 +1,113 @@
1#!/bin/sh
2
3if [ "$1" = "" ]; then
4 key=../apps/server.pem
5else
6 key="$1"
7fi
8if [ "$2" = "" ]; then
9 cert=../apps/server.pem
10else
11 cert="$2"
12fi
13
14ciphers="DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:AES256-SHA:EDH-RSA-DES-CBC3-SHA:EDH-DSS-DES-CBC3-SHA:DES-CBC3-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:AES128-SHA:EXP1024-DHE-DSS-DES-CBC-SHA:EXP1024-DES-CBC-SHA:EDH-RSA-DES-CBC-SHA:EDH-DSS-DES-CBC-SHA:DES-CBC-SHA:EXP-EDH-RSA-DES-CBC-SHA:EXP-EDH-DSS-DES-CBC-SHA:EXP-DES-CBC-SHA"
15
16ssltest="../util/shlib_wrap.sh ./ssltest -F -key $key -cert $cert -c_key $key -c_cert $cert -cipher $ciphers"
17
18if ../util/shlib_wrap.sh ../apps/openssl x509 -in $cert -text -noout | fgrep 'DSA Public Key' >/dev/null; then
19 dsa_cert=YES
20else
21 dsa_cert=NO
22fi
23
24if [ "$3" = "" ]; then
25 CA="-CApath ../certs"
26else
27 CA="-CAfile $3"
28fi
29
30if [ "$4" = "" ]; then
31 extra=""
32else
33 extra="$4"
34fi
35
36#############################################################################
37
38echo test ssl3 is forbidden in FIPS mode
39$ssltest -ssl3 $extra && exit 1
40
41echo test ssl2 is forbidden in FIPS mode
42$ssltest -ssl2 $extra && exit 1
43
44echo test tls1
45$ssltest -tls1 $extra || exit 1
46
47echo test tls1 with server authentication
48$ssltest -tls1 -server_auth $CA $extra || exit 1
49
50echo test tls1 with client authentication
51$ssltest -tls1 -client_auth $CA $extra || exit 1
52
53echo test tls1 with both client and server authentication
54$ssltest -tls1 -server_auth -client_auth $CA $extra || exit 1
55
56echo test tls1 via BIO pair
57$ssltest -bio_pair -tls1 $extra || exit 1
58
59echo test tls1 with server authentication via BIO pair
60$ssltest -bio_pair -tls1 -server_auth $CA $extra || exit 1
61
62echo test tls1 with client authentication via BIO pair
63$ssltest -bio_pair -tls1 -client_auth $CA $extra || exit 1
64
65echo test tls1 with both client and server authentication via BIO pair
66$ssltest -bio_pair -tls1 -server_auth -client_auth $CA $extra || exit 1
67
68# note that all the below actually choose TLS...
69
70if [ $dsa_cert = NO ]; then
71 echo test sslv2/sslv3 w/o DHE via BIO pair
72 $ssltest -bio_pair -no_dhe $extra || exit 1
73fi
74
75echo test sslv2/sslv3 with 1024bit DHE via BIO pair
76$ssltest -bio_pair -dhe1024dsa -v $extra || exit 1
77
78echo test sslv2/sslv3 with server authentication
79$ssltest -bio_pair -server_auth $CA $extra || exit 1
80
81echo test sslv2/sslv3 with client authentication via BIO pair
82$ssltest -bio_pair -client_auth $CA $extra || exit 1
83
84echo test sslv2/sslv3 with both client and server authentication via BIO pair
85$ssltest -bio_pair -server_auth -client_auth $CA $extra || exit 1
86
87echo test sslv2/sslv3 with both client and server authentication via BIO pair and app verify
88$ssltest -bio_pair -server_auth -client_auth -app_verify $CA $extra || exit 1
89
90#############################################################################
91
92if ../util/shlib_wrap.sh ../apps/openssl no-dh; then
93 echo skipping anonymous DH tests
94else
95 echo test tls1 with 1024bit anonymous DH, multiple handshakes
96 $ssltest -v -bio_pair -tls1 -cipher ADH -dhe1024dsa -num 10 -f -time $extra || exit 1
97fi
98
99if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then
100 echo skipping RSA tests
101else
102 echo test tls1 with 1024bit RSA, no DHE, multiple handshakes
103 ../util/shlib_wrap.sh ./ssltest -v -bio_pair -tls1 -cert ../apps/server2.pem -no_dhe -num 10 -f -time $extra || exit 1
104
105 if ../util/shlib_wrap.sh ../apps/openssl no-dh; then
106 echo skipping RSA+DHE tests
107 else
108 echo test tls1 with 1024bit RSA, 1024bit DHE, multiple handshakes
109 ../util/shlib_wrap.sh ./ssltest -v -bio_pair -tls1 -cert ../apps/server2.pem -dhe1024dsa -num 10 -f -time $extra || exit 1
110 fi
111fi
112
113exit 0
diff --git a/src/lib/libssl/test/tverify.com b/src/lib/libssl/test/tverify.com
index f97e71478f..2060184d1e 100644
--- a/src/lib/libssl/test/tverify.com
+++ b/src/lib/libssl/test/tverify.com
@@ -15,12 +15,15 @@ $ f = f$search("[-.certs]*.pem")
15$ if f .nes. "" .and. f .nes. old_f 15$ if f .nes. "" .and. f .nes. old_f
16$ then 16$ then
17$ certs = certs + " [-.certs]" + f$parse(f,,,"NAME") + ".pem" 17$ certs = certs + " [-.certs]" + f$parse(f,,,"NAME") + ".pem"
18$ if f$length(certs) .lt. 180 then goto loop_certs2
19$ c := YES 18$ c := YES
19$ if f$length(certs) .lt. 180 then goto loop_certs2
20$ endif 20$ endif
21$ certs = certs - " " 21$ certs = certs - " "
22$ 22$
23$ mcr 'exe_dir'openssl verify "-CAfile" certs.tmp 'certs' 23$ if c
24$ if c then goto loop_certs 24$ then
25$ mcr 'exe_dir'openssl verify "-CAfile" certs.tmp 'certs'
26$ goto loop_certs
27$ endif
25$ 28$
26$ delete certs.tmp;* 29$ delete certs.tmp;*