Import of old SSLeay release: SSLeay 0.9.0b
authorRalf S. Engelschall <rse@openssl.org>
Mon, 21 Dec 1998 10:56:39 +0000 (10:56 +0000)
committerRalf S. Engelschall <rse@openssl.org>
Mon, 21 Dec 1998 10:56:39 +0000 (10:56 +0000)
826 files changed:
COPYRIGHT
Configure
HISTORY
INSTALL
MINFO
Makefile.ssl
PATENTS [new file with mode: 0644]
README
README.090 [new file with mode: 0644]
apps/Makefile.ssl
apps/apps.c
apps/apps.h
apps/asn1pars.c
apps/ca.c
apps/cert.pem [new file with mode: 0644]
apps/ciphers.c
apps/crl.c
apps/crl2p7.c
apps/dgst.c
apps/dh.c
apps/dsa.c
apps/dsap.pem [new file with mode: 0644]
apps/dsaparam.c
apps/eay.c
apps/enc.c
apps/errstr.c
apps/ext.v3 [new file with mode: 0644]
apps/g_ssleay.pl
apps/gendh.c
apps/gendsa.c
apps/genrsa.c
apps/mklinks
apps/openssl.c
apps/pem_mail.c
apps/pkcs7.c
apps/privkey.pem
apps/progs.h
apps/progs.pl
apps/req.c
apps/req.pem [new file with mode: 0644]
apps/rmlinks
apps/rsa.c
apps/s_apps.h
apps/s_cb.c
apps/s_client.c
apps/s_server.c
apps/s_socket.c
apps/s_time.c
apps/server.srl [new file with mode: 0644]
apps/sess_id.c
apps/speed.c
apps/ssleay.c
apps/testrsa.h
apps/verify.c
apps/version.c
apps/x509.c
bugs/alpha.c
bugs/stream.c
certs/ICE-CA.pem [new file with mode: 0644]
certs/ICE-root.pem [new file with mode: 0644]
certs/ICE-user.pem [new file with mode: 0644]
certs/ICE.crl [new file with mode: 0644]
config [new file with mode: 0755]
crypto/Makefile.ssl
crypto/asn1/Makefile.ssl
crypto/asn1/a_bitstr.c
crypto/asn1/a_bmp.c [new file with mode: 0644]
crypto/asn1/a_bool.c
crypto/asn1/a_bytes.c
crypto/asn1/a_d2i_fp.c
crypto/asn1/a_digest.c
crypto/asn1/a_dup.c
crypto/asn1/a_hdr.c
crypto/asn1/a_i2d_fp.c
crypto/asn1/a_int.c
crypto/asn1/a_meth.c
crypto/asn1/a_object.c
crypto/asn1/a_octet.c
crypto/asn1/a_print.c
crypto/asn1/a_set.c
crypto/asn1/a_sign.c
crypto/asn1/a_type.c
crypto/asn1/a_utctm.c
crypto/asn1/a_verify.c
crypto/asn1/asn1.err
crypto/asn1/asn1.h
crypto/asn1/asn1_err.c
crypto/asn1/asn1_lib.c
crypto/asn1/asn1_mac.h
crypto/asn1/asn1_par.c
crypto/asn1/d2i_dhp.c
crypto/asn1/d2i_dsap.c
crypto/asn1/d2i_pr.c
crypto/asn1/d2i_pu.c
crypto/asn1/d2i_r_pr.c
crypto/asn1/d2i_r_pu.c
crypto/asn1/d2i_s_pr.c
crypto/asn1/d2i_s_pu.c
crypto/asn1/evp_asn1.c [new file with mode: 0644]
crypto/asn1/f.c [new file with mode: 0644]
crypto/asn1/f_int.c
crypto/asn1/f_string.c
crypto/asn1/i2d_dhp.c
crypto/asn1/i2d_dsap.c
crypto/asn1/i2d_pr.c
crypto/asn1/i2d_pu.c
crypto/asn1/i2d_r_pr.c
crypto/asn1/i2d_r_pu.c
crypto/asn1/i2d_s_pr.c
crypto/asn1/i2d_s_pu.c
crypto/asn1/n_pkey.c
crypto/asn1/p7_dgst.c
crypto/asn1/p7_enc.c
crypto/asn1/p7_enc_c.c
crypto/asn1/p7_evp.c
crypto/asn1/p7_i_s.c
crypto/asn1/p7_lib.c
crypto/asn1/p7_recip.c
crypto/asn1/p7_s_e.c
crypto/asn1/p7_signd.c
crypto/asn1/p7_signi.c
crypto/asn1/pkcs8.c
crypto/asn1/t_pkey.c
crypto/asn1/t_req.c
crypto/asn1/t_x509.c
crypto/asn1/x_algor.c
crypto/asn1/x_attrib.c
crypto/asn1/x_cinf.c
crypto/asn1/x_crl.c
crypto/asn1/x_exten.c
crypto/asn1/x_info.c
crypto/asn1/x_name.c
crypto/asn1/x_pkey.c
crypto/asn1/x_pubkey.c
crypto/asn1/x_req.c
crypto/asn1/x_sig.c
crypto/asn1/x_spki.c
crypto/asn1/x_val.c
crypto/asn1/x_x509.c
crypto/bf/Makefile.ssl
crypto/bf/Makefile.uni
crypto/bf/asm/b-win32.asm
crypto/bf/asm/bf-586.pl [new file with mode: 0644]
crypto/bf/asm/bf-686.pl [new file with mode: 0644]
crypto/bf/asm/bx86unix.cpp
crypto/bf/asm/readme
crypto/bf/bf_cbc.c
crypto/bf/bf_cfb64.c
crypto/bf/bf_ecb.c
crypto/bf/bf_enc.c
crypto/bf/bf_locl.h
crypto/bf/bf_locl.org
crypto/bf/bf_ofb64.c
crypto/bf/bf_opts.c [new file with mode: 0644]
crypto/bf/bf_pi.h
crypto/bf/bf_skey.c
crypto/bf/bfs.cpp [new file with mode: 0644]
crypto/bf/bfspeed.c
crypto/bf/bftest.c
crypto/bf/blowfish.h
crypto/bio/Makefile.ssl
crypto/bio/b_dump.c
crypto/bio/b_print.c
crypto/bio/b_sock.c
crypto/bio/bf_buff.c
crypto/bio/bf_nbio.c
crypto/bio/bf_null.c
crypto/bio/bio.err
crypto/bio/bio.h
crypto/bio/bio_cb.c
crypto/bio/bio_err.c
crypto/bio/bio_lib.c
crypto/bio/bss_acpt.c
crypto/bio/bss_conn.c
crypto/bio/bss_fd.c
crypto/bio/bss_file.c
crypto/bio/bss_mem.c
crypto/bio/bss_null.c
crypto/bio/bss_rtcp.c
crypto/bio/bss_sock.c
crypto/bn/Makefile.ssl
crypto/bn/asm/alpha.s
crypto/bn/asm/bn-586.pl [new file with mode: 0644]
crypto/bn/asm/bn-win32.asm [new file with mode: 0644]
crypto/bn/asm/bn86unix.cpp [new file with mode: 0644]
crypto/bn/asm/pa-risc.s
crypto/bn/asm/pa-risc2.s
crypto/bn/asm/r3000.s
crypto/bn/asm/sparc.s
crypto/bn/asm/x86w16.asm
crypto/bn/asm/x86w32.asm
crypto/bn/bn.err
crypto/bn/bn.h
crypto/bn/bn.org
crypto/bn/bn_add.c
crypto/bn/bn_blind.c [new file with mode: 0644]
crypto/bn/bn_div.c
crypto/bn/bn_err.c
crypto/bn/bn_exp.c
crypto/bn/bn_gcd.c
crypto/bn/bn_lcl.h
crypto/bn/bn_lib.c
crypto/bn/bn_m.c [new file with mode: 0644]
crypto/bn/bn_mod.c
crypto/bn/bn_mont.c
crypto/bn/bn_mpi.c [new file with mode: 0644]
crypto/bn/bn_mul.c
crypto/bn/bn_mulw.c
crypto/bn/bn_prime.c
crypto/bn/bn_prime.h
crypto/bn/bn_print.c
crypto/bn/bn_rand.c
crypto/bn/bn_recp.c
crypto/bn/bn_shift.c
crypto/bn/bn_sqr.c
crypto/bn/bn_sub.c
crypto/bn/bn_word.c
crypto/bn/bnspeed.c
crypto/bn/bntest.c
crypto/bn/expspeed.c [new file with mode: 0644]
crypto/bn/exptest.c
crypto/buffer/Makefile.ssl
crypto/buffer/buf_err.c
crypto/buffer/buffer.c
crypto/buffer/buffer.h
crypto/cast/Makefile.ssl [new file with mode: 0644]
crypto/cast/Makefile.uni [new file with mode: 0644]
crypto/cast/asm/c-win32.asm [new file with mode: 0644]
crypto/cast/asm/cast-586.pl [new file with mode: 0644]
crypto/cast/asm/cx86unix.cpp [new file with mode: 0644]
crypto/cast/asm/readme [new file with mode: 0644]
crypto/cast/c_cfb64.c [new file with mode: 0644]
crypto/cast/c_ecb.c [new file with mode: 0644]
crypto/cast/c_enc.c [new file with mode: 0644]
crypto/cast/c_ofb64.c [new file with mode: 0644]
crypto/cast/c_skey.c [new file with mode: 0644]
crypto/cast/cast.h [new file with mode: 0644]
crypto/cast/cast_lcl.h [new file with mode: 0644]
crypto/cast/cast_s.h [new file with mode: 0644]
crypto/cast/cast_spd.c [new file with mode: 0644]
crypto/cast/castopts.c [new file with mode: 0644]
crypto/cast/casts.cpp [new file with mode: 0644]
crypto/cast/casttest.c [new file with mode: 0644]
crypto/conf/Makefile.ssl
crypto/conf/cnf_save.c
crypto/conf/conf.c
crypto/conf/conf.h
crypto/conf/conf_err.c
crypto/conf/conf_lcl.h
crypto/conf/test.c
crypto/cpt_err.c [new file with mode: 0644]
crypto/cryptall.h
crypto/cryptlib.c
crypto/cryptlib.h
crypto/crypto.c
crypto/crypto.err [new file with mode: 0644]
crypto/crypto.h
crypto/cversion.c
crypto/date.h
crypto/des/INSTALL
crypto/des/Makefile.lit
crypto/des/Makefile.ssl
crypto/des/Makefile.uni
crypto/des/VERSION
crypto/des/asm/crypt586.pl [new file with mode: 0644]
crypto/des/asm/d-win32.asm
crypto/des/asm/des-586.pl [new file with mode: 0644]
crypto/des/asm/des686.pl
crypto/des/asm/desboth.pl
crypto/des/asm/dx86unix.cpp
crypto/des/asm/readme
crypto/des/asm/y-win32.asm [new file with mode: 0644]
crypto/des/asm/yx86unix.cpp [new file with mode: 0644]
crypto/des/cbc3_enc.c
crypto/des/cbc_cksm.c
crypto/des/cbc_enc.c
crypto/des/cfb64ede.c
crypto/des/cfb64enc.c
crypto/des/cfb_enc.c
crypto/des/des.c
crypto/des/des.h
crypto/des/des.org
crypto/des/des3s.cpp [new file with mode: 0644]
crypto/des/des_enc.c
crypto/des/des_opts.c
crypto/des/des_ver.h
crypto/des/dess.cpp [new file with mode: 0644]
crypto/des/destest.c
crypto/des/ecb3_enc.c
crypto/des/ecb_enc.c
crypto/des/ede_enc.c
crypto/des/enc_read.c
crypto/des/enc_writ.c
crypto/des/fcrypt.c
crypto/des/fcrypt_b.c
crypto/des/ncbc_enc.c
crypto/des/ofb64ede.c
crypto/des/ofb64enc.c
crypto/des/ofb_enc.c
crypto/des/options.txt
crypto/des/pcbc_enc.c
crypto/des/podd.h
crypto/des/qud_cksm.c
crypto/des/rand_key.c
crypto/des/ranlib.sh [new file with mode: 0644]
crypto/des/read2pwd.c
crypto/des/read_pwd.c
crypto/des/rpc_des.h
crypto/des/rpc_enc.c
crypto/des/rpw.c
crypto/des/set_key.c
crypto/des/sk.h
crypto/des/speed.c
crypto/des/spr.h
crypto/des/str2key.c
crypto/des/supp.c
crypto/des/xcbc_enc.c
crypto/dh/Makefile.ssl
crypto/dh/dh.h
crypto/dh/dh_check.c
crypto/dh/dh_err.c
crypto/dh/dh_gen.c
crypto/dh/dh_key.c
crypto/dh/dh_lib.c
crypto/dh/dhtest.c
crypto/dh/p1024.c
crypto/dh/p192.c
crypto/dh/p512.c
crypto/dsa/Makefile.ssl
crypto/dsa/dsa.h
crypto/dsa/dsa_err.c
crypto/dsa/dsa_gen.c
crypto/dsa/dsa_key.c
crypto/dsa/dsa_lib.c
crypto/dsa/dsa_sign.c
crypto/dsa/dsa_vrf.c
crypto/dsa/dsagen.c
crypto/dsa/dsatest.c
crypto/err/Makefile.ssl
crypto/err/err.c
crypto/err/err.h
crypto/err/err_all.c
crypto/err/err_code.pl
crypto/err/err_genc.pl
crypto/err/err_prn.c
crypto/err/ssleay.ec [new file with mode: 0644]
crypto/evp/Makefile.ssl
crypto/evp/bio_b64.c
crypto/evp/bio_enc.c
crypto/evp/bio_md.c
crypto/evp/c_all.c
crypto/evp/digest.c
crypto/evp/e_cbc_3d.c
crypto/evp/e_cbc_bf.c
crypto/evp/e_cbc_c.c [new file with mode: 0644]
crypto/evp/e_cbc_d.c
crypto/evp/e_cbc_i.c
crypto/evp/e_cbc_r2.c
crypto/evp/e_cbc_r5.c [new file with mode: 0644]
crypto/evp/e_cfb_3d.c
crypto/evp/e_cfb_bf.c
crypto/evp/e_cfb_c.c [new file with mode: 0644]
crypto/evp/e_cfb_d.c
crypto/evp/e_cfb_i.c
crypto/evp/e_cfb_r2.c
crypto/evp/e_cfb_r5.c [new file with mode: 0644]
crypto/evp/e_dsa.c
crypto/evp/e_ecb_3d.c
crypto/evp/e_ecb_bf.c
crypto/evp/e_ecb_c.c [new file with mode: 0644]
crypto/evp/e_ecb_d.c
crypto/evp/e_ecb_i.c
crypto/evp/e_ecb_r2.c
crypto/evp/e_ecb_r5.c [new file with mode: 0644]
crypto/evp/e_null.c
crypto/evp/e_ofb_3d.c
crypto/evp/e_ofb_bf.c
crypto/evp/e_ofb_c.c [new file with mode: 0644]
crypto/evp/e_ofb_d.c
crypto/evp/e_ofb_i.c
crypto/evp/e_ofb_r2.c
crypto/evp/e_ofb_r5.c [new file with mode: 0644]
crypto/evp/e_rc4.c
crypto/evp/e_xcbc_d.c
crypto/evp/encode.c
crypto/evp/evp.err
crypto/evp/evp.h
crypto/evp/evp_enc.c
crypto/evp/evp_err.c
crypto/evp/evp_key.c
crypto/evp/evp_lib.c [new file with mode: 0644]
crypto/evp/m_dss.c
crypto/evp/m_dss1.c
crypto/evp/m_md2.c
crypto/evp/m_md5.c
crypto/evp/m_mdc2.c
crypto/evp/m_null.c
crypto/evp/m_ripemd.c [new file with mode: 0644]
crypto/evp/m_sha.c
crypto/evp/m_sha1.c
crypto/evp/names.c
crypto/evp/p_dec.c [new file with mode: 0644]
crypto/evp/p_enc.c [new file with mode: 0644]
crypto/evp/p_lib.c
crypto/evp/p_open.c
crypto/evp/p_seal.c
crypto/evp/p_sign.c
crypto/evp/p_verify.c
crypto/evp/pk_lib.c [new file with mode: 0644]
crypto/ex_data.c [new file with mode: 0644]
crypto/hmac/Makefile.ssl [new file with mode: 0644]
crypto/hmac/hmac.c [new file with mode: 0644]
crypto/hmac/hmac.h [new file with mode: 0644]
crypto/hmac/hmactest.c [new file with mode: 0644]
crypto/idea/Makefile.uni [new file with mode: 0644]
crypto/idea/i_cbc.c
crypto/idea/i_cfb64.c
crypto/idea/i_ecb.c
crypto/idea/i_ofb64.c
crypto/idea/i_skey.c
crypto/idea/idea_lcl.h
crypto/idea/idea_spd.c [new file with mode: 0644]
crypto/idea/ideatest.c
crypto/lhash/lh_stats.c
crypto/lhash/lh_test.c
crypto/lhash/lhash.c
crypto/lhash/lhash.h
crypto/md2/Makefile.ssl [new file with mode: 0644]
crypto/md2/md2.c [new file with mode: 0644]
crypto/md2/md2.h [new file with mode: 0644]
crypto/md2/md2.org [new file with mode: 0644]
crypto/md2/md2_dgst.c [new file with mode: 0644]
crypto/md2/md2_one.c [new file with mode: 0644]
crypto/md2/md2test.c [new file with mode: 0644]
crypto/md5/Makefile.ssl [new file with mode: 0644]
crypto/md5/Makefile.uni [new file with mode: 0644]
crypto/md5/asm/m5-win32.asm [new file with mode: 0644]
crypto/md5/asm/md5-586.pl [new file with mode: 0644]
crypto/md5/asm/mx86unix.cpp [new file with mode: 0644]
crypto/md5/md5.c [new file with mode: 0644]
crypto/md5/md5.h [new file with mode: 0644]
crypto/md5/md5_dgst.c [new file with mode: 0644]
crypto/md5/md5_locl.h [new file with mode: 0644]
crypto/md5/md5_one.c [new file with mode: 0644]
crypto/md5/md5s.cpp [new file with mode: 0644]
crypto/md5/md5test.c [new file with mode: 0644]
crypto/mdc2/mdc2.h
crypto/mdc2/mdc2_one.c
crypto/mdc2/mdc2dgst.c
crypto/mdc2/mdc2test.c
crypto/mem.c
crypto/objects/Makefile.ssl
crypto/objects/obj_dat.c
crypto/objects/obj_dat.h
crypto/objects/obj_err.c
crypto/objects/obj_lib.c
crypto/objects/objects.err
crypto/objects/objects.h
crypto/pem/Makefile.ssl
crypto/pem/ctx_size.c
crypto/pem/pem.h
crypto/pem/pem_all.c
crypto/pem/pem_err.c
crypto/pem/pem_info.c
crypto/pem/pem_lib.c
crypto/pem/pem_seal.c
crypto/pem/pem_sign.c
crypto/perlasm/cbc.pl [new file with mode: 0644]
crypto/perlasm/readme [new file with mode: 0644]
crypto/perlasm/x86asm.pl [new file with mode: 0644]
crypto/perlasm/x86ms.pl
crypto/perlasm/x86unix.pl
crypto/pkcs7/Makefile.ssl
crypto/pkcs7/enc.c [new file with mode: 0644]
crypto/pkcs7/p7/a1 [new file with mode: 0644]
crypto/pkcs7/p7/a2 [new file with mode: 0644]
crypto/pkcs7/p7/cert.p7c [new file with mode: 0644]
crypto/pkcs7/p7/smime.p7m [new file with mode: 0644]
crypto/pkcs7/p7/smime.p7s [new file with mode: 0644]
crypto/pkcs7/pk7_dgst.c
crypto/pkcs7/pk7_doit.c
crypto/pkcs7/pk7_enc.c
crypto/pkcs7/pk7_lib.c
crypto/pkcs7/pkcs7.err
crypto/pkcs7/pkcs7.h
crypto/pkcs7/pkcs7err.c
crypto/pkcs7/sign.c
crypto/pkcs7/verify.c
crypto/rand/md_rand.c
crypto/rand/rand.h
crypto/rand/randfile.c
crypto/rand/randtest.c
crypto/ranlib.sh [new file with mode: 0644]
crypto/rc2/Makefile.uni [new file with mode: 0644]
crypto/rc2/rc2.h
crypto/rc2/rc2.org
crypto/rc2/rc2_cbc.c
crypto/rc2/rc2_ecb.c
crypto/rc2/rc2_locl.h
crypto/rc2/rc2_skey.c
crypto/rc2/rc2cfb64.c
crypto/rc2/rc2ofb64.c
crypto/rc2/rc2speed.c [new file with mode: 0644]
crypto/rc2/rc2test.c
crypto/rc4/Makefile.ssl
crypto/rc4/Makefile.uni [new file with mode: 0644]
crypto/rc4/asm/r4-win32.asm [new file with mode: 0644]
crypto/rc4/asm/rc4-586.pl [new file with mode: 0644]
crypto/rc4/asm/rx86unix.cpp [new file with mode: 0644]
crypto/rc4/rc4.c
crypto/rc4/rc4_enc.c
crypto/rc4/rc4_locl.h [new file with mode: 0644]
crypto/rc4/rc4_locl.org [new file with mode: 0644]
crypto/rc4/rc4_skey.c [new file with mode: 0644]
crypto/rc4/rc4s.cpp [new file with mode: 0644]
crypto/rc4/rc4speed.c [new file with mode: 0644]
crypto/rc4/rc4test.c
crypto/rc5/Makefile.ssl [new file with mode: 0644]
crypto/rc5/Makefile.uni [new file with mode: 0644]
crypto/rc5/asm/r5-win32.asm [new file with mode: 0644]
crypto/rc5/asm/r586unix.cpp [new file with mode: 0644]
crypto/rc5/asm/rc5-586.pl [new file with mode: 0644]
crypto/rc5/rc5.h [new file with mode: 0644]
crypto/rc5/rc5_ecb.c [new file with mode: 0644]
crypto/rc5/rc5_enc.c [new file with mode: 0644]
crypto/rc5/rc5_locl.h [new file with mode: 0644]
crypto/rc5/rc5_skey.c [new file with mode: 0644]
crypto/rc5/rc5cfb64.c [new file with mode: 0644]
crypto/rc5/rc5ofb64.c [new file with mode: 0644]
crypto/rc5/rc5s.cpp [new file with mode: 0644]
crypto/rc5/rc5speed.c [new file with mode: 0644]
crypto/rc5/rc5test.c [new file with mode: 0644]
crypto/ripemd/Makefile.ssl [new file with mode: 0644]
crypto/ripemd/Makefile.uni [new file with mode: 0644]
crypto/ripemd/README [new file with mode: 0644]
crypto/ripemd/asm/rips.cpp [new file with mode: 0644]
crypto/ripemd/asm/rm-win32.asm [new file with mode: 0644]
crypto/ripemd/asm/rm86unix.cpp [new file with mode: 0644]
crypto/ripemd/asm/rmd-586.pl [new file with mode: 0644]
crypto/ripemd/ripemd.h [new file with mode: 0644]
crypto/ripemd/rmd160.c [new file with mode: 0644]
crypto/ripemd/rmd_dgst.c [new file with mode: 0644]
crypto/ripemd/rmd_locl.h [new file with mode: 0644]
crypto/ripemd/rmd_one.c [new file with mode: 0644]
crypto/ripemd/rmdconst.h [new file with mode: 0644]
crypto/ripemd/rmdtest.c [new file with mode: 0644]
crypto/rsa/Makefile.ssl
crypto/rsa/rsa.err
crypto/rsa/rsa.h
crypto/rsa/rsa_eay.c [new file with mode: 0644]
crypto/rsa/rsa_err.c
crypto/rsa/rsa_gen.c
crypto/rsa/rsa_lib.c
crypto/rsa/rsa_none.c [new file with mode: 0644]
crypto/rsa/rsa_pk1.c [new file with mode: 0644]
crypto/rsa/rsa_saos.c
crypto/rsa/rsa_sign.c
crypto/rsa/rsa_ssl.c [new file with mode: 0644]
crypto/sha/Makefile.ssl
crypto/sha/Makefile.uni [new file with mode: 0644]
crypto/sha/asm/README [new file with mode: 0644]
crypto/sha/asm/s1-win32.asm [new file with mode: 0644]
crypto/sha/asm/sha1-586.pl [new file with mode: 0644]
crypto/sha/asm/sx86unix.cpp [new file with mode: 0644]
crypto/sha/sha.c
crypto/sha/sha.h
crypto/sha/sha1.c [new file with mode: 0644]
crypto/sha/sha1_one.c
crypto/sha/sha1dgst.c
crypto/sha/sha1s.cpp [new file with mode: 0644]
crypto/sha/sha1test.c
crypto/sha/sha_dgst.c
crypto/sha/sha_locl.h
crypto/sha/sha_one.c
crypto/sha/sha_sgst.c [new file with mode: 0644]
crypto/sha/shatest.c
crypto/stack/stack.c
crypto/stack/stack.h
crypto/threads/mttest.c [new file with mode: 0644]
crypto/threads/th-lock.c [new file with mode: 0644]
crypto/tmdiff.c [new file with mode: 0644]
crypto/txt_db/txt_db.c
crypto/txt_db/txt_db.h
crypto/x509/Makefile.ssl
crypto/x509/by_dir.c
crypto/x509/by_file.c
crypto/x509/v3_net.c
crypto/x509/v3_x509.c
crypto/x509/x509.err
crypto/x509/x509.h
crypto/x509/x509_cmp.c
crypto/x509/x509_d2.c
crypto/x509/x509_def.c
crypto/x509/x509_err.c
crypto/x509/x509_ext.c
crypto/x509/x509_lu.c
crypto/x509/x509_obj.c
crypto/x509/x509_r2x.c
crypto/x509/x509_req.c
crypto/x509/x509_set.c
crypto/x509/x509_txt.c
crypto/x509/x509_v3.c
crypto/x509/x509_vfy.c
crypto/x509/x509_vfy.h
crypto/x509/x509name.c
crypto/x509/x509pack.c
crypto/x509/x509rset.c
crypto/x509/x509type.c
crypto/x509/x509v3.doc [new file with mode: 0644]
crypto/x509/x_all.c
crypto/x509v3/format [new file with mode: 0644]
crypto/x509v3/header [new file with mode: 0644]
crypto/x509v3/v3_ku.c [new file with mode: 0644]
crypto/x509v3/x509v3.h [new file with mode: 0644]
demos/b64.c
demos/bio/saccept.c
demos/prime/prime.c
demos/sign/sign.c
dep/crypto.txt [new file with mode: 0644]
dep/files [new file with mode: 0644]
dep/gen.pl [new file with mode: 0644]
dep/ssl.txt [new file with mode: 0644]
doc/blowfish.doc
doc/bn.doc
doc/des.doc
doc/rsa.doc
e_os.h
makefile.one
ms/16all.bat [new file with mode: 0755]
ms/32all.bat [new file with mode: 0755]
ms/certCA.srl
ms/certCA.ss
ms/certU.ss
ms/cipher.out [new file with mode: 0755]
ms/clear.out [new file with mode: 0755]
ms/keyCA.ss
ms/keyU.ss
ms/libeay16.def
ms/libeay32.def
ms/ntdll.mak
ms/req2CA.ss
ms/reqCA.ss
ms/reqU.ss
ms/ssleay16.def
ms/ssleay32.def
ms/test.bat
ms/testenc.bat
ms/testpem.bat
ms/testss.bat
ms/w31dll.mak
mt/README
mt/mttest.c
mt/pthread.sh [new file with mode: 0644]
perl/MANIFEST [new file with mode: 0644]
perl/Makefile.PL [new file with mode: 0644]
perl/OpenSSL.xs [new file with mode: 0644]
perl/SSLeay.pm [new file with mode: 0644]
perl/SSLeay.xs [new file with mode: 0644]
perl/b.pl [new file with mode: 0644]
perl/bio.pl [new file with mode: 0644]
perl/bio.txt [new file with mode: 0644]
perl/bio.xs [new file with mode: 0644]
perl/bn.pl [new file with mode: 0644]
perl/bn.txt [new file with mode: 0644]
perl/bn.xs [new file with mode: 0644]
perl/callback.c [new file with mode: 0644]
perl/cipher.pl [new file with mode: 0644]
perl/cipher.txt [new file with mode: 0644]
perl/cipher.xs [new file with mode: 0644]
perl/dh.pl [new file with mode: 0644]
perl/digest.txt [new file with mode: 0644]
perl/digest.xs [new file with mode: 0644]
perl/err.txt [new file with mode: 0644]
perl/err.xs [new file with mode: 0644]
perl/f.pl [new file with mode: 0644]
perl/g.pl [new file with mode: 0644]
perl/gen_rsa.pl [new file with mode: 0644]
perl/mul.pl [new file with mode: 0644]
perl/openssl.h [new file with mode: 0644]
perl/openssl_bio.xs [new file with mode: 0644]
perl/openssl_bn.xs [new file with mode: 0644]
perl/openssl_cb.c [new file with mode: 0644]
perl/openssl_cipher.xs [new file with mode: 0644]
perl/openssl_digest.xs [new file with mode: 0644]
perl/openssl_err.xs [new file with mode: 0644]
perl/openssl_ssl.xs [new file with mode: 0644]
perl/openssl_x509.xs [new file with mode: 0644]
perl/p5SSLeay.h [new file with mode: 0644]
perl/r.pl [new file with mode: 0644]
perl/s.pl [new file with mode: 0644]
perl/s2.pl [new file with mode: 0644]
perl/server.pem [new file with mode: 0644]
perl/ss.pl [new file with mode: 0644]
perl/ssl.pl [new file with mode: 0644]
perl/ssl.txt [new file with mode: 0644]
perl/ssl.xs [new file with mode: 0644]
perl/ssl_srvr.pl [new file with mode: 0644]
perl/sslbio.pl [new file with mode: 0644]
perl/t.pl [new file with mode: 0644]
perl/test [new file with mode: 0644]
perl/test.pl [new file with mode: 0644]
perl/test.txt [new file with mode: 0644]
perl/test2.pl [new file with mode: 0644]
perl/test3.pl [new file with mode: 0644]
perl/test8.pl [new file with mode: 0644]
perl/test9.pl [new file with mode: 0644]
perl/testbn.pl [new file with mode: 0644]
perl/testdec.pl [new file with mode: 0644]
perl/testmd.pl [new file with mode: 0644]
perl/tt.pl [new file with mode: 0644]
perl/typemap [new file with mode: 0644]
perl/x509.txt [new file with mode: 0644]
perl/x509.xs [new file with mode: 0644]
perl/xstmp.c [new file with mode: 0644]
perl/y.pl [new file with mode: 0644]
perl/yy.pl [new file with mode: 0644]
perl/z.pl [new file with mode: 0644]
perl/zz.pl [new file with mode: 0644]
rsaref/Makefile.ssl
rsaref/rsar_err.c
rsaref/rsaref.c
rsaref/rsaref.err
rsaref/rsaref.h
shlib/linux.sh
ssl/Makefile.ssl
ssl/bio_ssl.c
ssl/s23_clnt.c
ssl/s23_lib.c
ssl/s23_meth.c
ssl/s23_pkt.c
ssl/s23_srvr.c
ssl/s2_clnt.c
ssl/s2_enc.c
ssl/s2_lib.c
ssl/s2_meth.c
ssl/s2_pkt.c
ssl/s2_srvr.c
ssl/s3_both.c
ssl/s3_clnt.c
ssl/s3_enc.c
ssl/s3_lib.c
ssl/s3_meth.c
ssl/s3_pkt.c
ssl/s3_srvr.c
ssl/ssl.c
ssl/ssl.err
ssl/ssl.h
ssl/ssl2.h
ssl/ssl23.h
ssl/ssl3.h
ssl/ssl_algs.c
ssl/ssl_asn1.c
ssl/ssl_cert.c
ssl/ssl_ciph.c
ssl/ssl_err.c
ssl/ssl_err2.c
ssl/ssl_lib.c
ssl/ssl_locl.h
ssl/ssl_rsa.c
ssl/ssl_sess.c
ssl/ssl_stat.c
ssl/ssl_task.c
ssl/ssl_txt.c
ssl/ssltest.c
ssl/t1_clnt.c [new file with mode: 0644]
ssl/t1_enc.c [new file with mode: 0644]
ssl/t1_lib.c [new file with mode: 0644]
ssl/t1_meth.c [new file with mode: 0644]
ssl/t1_srvr.c [new file with mode: 0644]
ssl/tls1.h [new file with mode: 0644]
test/CAssdh.cnf [new file with mode: 0644]
test/CAssdsa.cnf [new file with mode: 0644]
test/CAssrsa.cnf [new file with mode: 0644]
test/Makefile.ssl
test/Sssdsa.cnf [new file with mode: 0644]
test/Sssrsa.cnf [new file with mode: 0644]
test/certCA.srl
test/methtest.c
test/r160test.c [new file with mode: 0644]
test/riptest [new file with mode: 0644]
test/testenc
test/testkey.pem
test/testreq.pem
test/times [new file with mode: 0644]
times/090/586-100.nt [new file with mode: 0644]
times/100.lnx [new file with mode: 0644]
times/100.nt [new file with mode: 0644]
times/200.lnx [new file with mode: 0644]
times/5.lnx [new file with mode: 0644]
times/586-085i.nt [new file with mode: 0644]
times/586-100.LN3 [new file with mode: 0644]
times/586-100.NT2 [new file with mode: 0644]
times/586-100.ln4 [new file with mode: 0644]
times/586-100.ntx [new file with mode: 0644]
times/586-1002.lnx [new file with mode: 0644]
times/686-200.lnx [new file with mode: 0644]
times/L1 [new file with mode: 0644]
times/pent2.t [new file with mode: 0644]
times/sparc2 [new file with mode: 0644]
times/x86/bfs.cpp [new file with mode: 0644]
times/x86/casts.cpp [new file with mode: 0644]
times/x86/des3s.cpp [new file with mode: 0644]
times/x86/dess.cpp [new file with mode: 0644]
times/x86/md5s.cpp [new file with mode: 0644]
times/x86/rc4s.cpp [new file with mode: 0644]
times/x86/sha1s.cpp [new file with mode: 0644]
tools/c_rehash
util/add_cr.pl
util/bat.sh [new file with mode: 0755]
util/do_ms.sh
util/fixNT.sh
util/libeay.num
util/mk1mf.pl
util/mkdef.pl
util/pl/BC-16.pl
util/pl/BC-32.pl
util/pl/VC-16.pl
util/pl/VC-32.pl
util/pl/linux.pl [new file with mode: 0644]
util/pl/unix.pl
util/sep_lib.sh [new file with mode: 0755]
util/sp-diff.pl
util/speed.sh
util/ssleay.num
util/up_ver.pl
util/x86asm.sh [new file with mode: 0755]

index 75b65cf..4faa8c0 100644 (file)
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -62,3 +62,4 @@ The reason behind this being stated in this direct manner is past
 experience in code simply being copied and the attribution removed
 from it and then being distributed as part of other packages. This
 implementation was a non-trivial and unpaid effort.
+
index ab20385..4f66d64 100755 (executable)
--- a/Configure
+++ b/Configure
 #              This is used on the DEC Alpha where long is 8 bytes
 #              and int is 4
 # BN_LLONG     use the type 'long long' in crypto/bn/bn.h
-# MD2_CHAR     use 'char' instead of 'int' for MD2_INT in crypto/md/md2.h
-# MD2_LONG     use 'long' instead of 'int' for MD2_INT in crypto/md/md2.h
+# MD2_CHAR     use 'char' instead of 'int' for MD2_INT in crypto/md2/md2.h
+# MD2_LONG     use 'long' instead of 'int' for MD2_INT in crypto/md2/md2.h
 # IDEA_SHORT   use 'short' instead of 'int' for IDEA_INT in crypto/idea/idea.h
 # IDEA_LONG    use 'long' instead of 'int' for IDEA_INT in crypto/idea/idea.h
 # RC2_SHORT    use 'short' instead of 'int' for RC2_INT in crypto/rc2/rc2.h
 # RC2_LONG     use 'long' instead of 'int' for RC2_INT in crypto/rc2/rc2.h
 # RC4_CHAR     use 'char' instead of 'int' for RC4_INT in crypto/rc4/rc4.h
 # RC4_LONG     use 'long' instead of 'int' for RC4_INT in crypto/rc4/rc4.h
-# RC4_INDEX    define RC4_INDEX in crypto/rc4/rc4_enc.c.  This turns on
+# RC4_INDEX    define RC4_INDEX in crypto/rc4/rc4_locl.h.  This turns on
 #              array lookups instead of pointer use.
 # BF_PTR       use 'pointer arithmatic' for Blowfish (unsafe on Alpha).
 # BF_PTR2      use a pentium/intel specific version.
+# MD5_ASM      use some extra md5 assember,
+# SHA1_ASM     use some extra sha1 assember, must define L_ENDIAN for x86
+# RMD160_ASM   use some extra ripemd160 assember,
+# BN_ASM       use some extra bn assember,
 
 $x86_gcc_des="DES_PTR DES_RISC1 DES_UNROLL";
 
@@ -51,7 +55,13 @@ $tlib="-lnsl -lsocket";
 $bits1="THIRTY_TWO_BIT ";
 $bits2="SIXTY_FOUR_BIT ";
 
-# -DB_ENDIAN slows things down on a sparc
+$x86_sol_asm="asm/bn86-sol.o:asm/dx86-sol.o asm/yx86-sol.o:asm/bx86-sol.o:asm/mx86-sol.o:asm/sx86-sol.o:asm/cx86-sol.o:asm/rx86-sol.o:asm/rm86-sol.o:asm/r586-sol.o";
+$x86_elf_asm="asm/bn86-elf.o:asm/dx86-elf.o asm/yx86-elf.o:asm/bx86-elf.o:asm/mx86-elf.o:asm/sx86-elf.o:asm/cx86-elf.o:asm/rx86-elf.o:asm/rm86-elf.o:asm/r586-elf.o";
+$x86_out_asm="asm/bn86-out.o:asm/dx86-out.o asm/yx86-out.o:asm/bx86-out.o:asm/mx86-out.o:asm/sx86-out.o:asm/cx86-out.o:asm/rx86-out.o:asm/rm86-out.o:asm/r586-out.o";
+$x86_bsdi_asm="asm/bn86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/bx86bsdi.o:asm/mx86bsdi.o:asm/sx86bsdi.o:asm/cx86bsdi.o:asm/rx86bsdi.o:asm/rm86bsdi.o:asm/r586bsdi.o";
+
+# -DB_ENDIAN slows things down on a sparc for md5, but helps sha1.
+# So the md5_locl.h file has an undef B_ENDIAN if sun is defined
 
 #config-string CC : CFLAGS : LDFLAGS : special header file mods:bn_asm \
 # des_asm:bf_asm
@@ -63,18 +73,17 @@ $bits2="SIXTY_FOUR_BIT ";
 
 # A few of my development configs
 "purify",      "purify gcc:-g -DPURIFY -Wall:-lsocket -lnsl::::",
-"debug",       "gcc:-DREF_CHECK -DCRYPTO_MDEBUG -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:::::",
+"debug",       "gcc:-DREF_CHECK -DCRYPTO_MDEBUG -ggdb -g2 -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:::::",
 "dist",                "cc:-O -DNOPROTO::::",
 
 # Basic configs that should work on any box
 "gcc",         "gcc:-O3::BN_LLONG:::",
 "cc",          "cc:-O -DNOPROTO -DNOCONST:::::",
 
+
 # My solaris setups
-"solaris-x86-gcc","gcc:-O3 -fomit-frame-pointer -m486 -Wall -DL_ENDIAN:\
-       -lsocket -lnsl:BN_LLONG $x86_gcc_des $x86_gcc_opts:asm/x86-sol.o:asm/dx86-sol.o asm/cx86-sol.o:asm/bx86-sol.o",
-"solaris-sparc-gcc","gcc:-O3 -fomit-frame-pointer -mv8 -Wall:\
-       -lsocket -lnsl:BN_LLONG RC4_CHAR DES_UNROLL BF_PTR:::",
+"solaris-x86-gcc","gcc:-O3 -fomit-frame-pointer -m486 -Wall -DL_ENDIAN -DBN_ASM:-lsocket -lnsl:BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_sol_asm:",
+"solaris-sparc-gcc","gcc:-O3 -fomit-frame-pointer -mv8 -Wall -DB_ENDIAN:-lsocket -lnsl:BN_LLONG RC4_CHAR DES_UNROLL BF_PTR:::",
 # DO NOT use /xO[34] on sparc with SC3.0. 
 # It is broken, and will not pass the tests
 "solaris-sparc-cc","cc:-fast -O -Xa -DB_ENDIAN:\
@@ -116,30 +125,44 @@ $bits2="SIXTY_FOUR_BIT ";
 "alpha400-cc", "cc:-arch host -tune host -fast -std -O4 -inline speed::SIXTY_FOUR_BIT_LONG:asm/alpha.o::",
 
 # The intel boxes :-), It would be worth seeing if bsdi-gcc can use the
-# x86-lnx.o file file since it is hand tweaked assembler.
-"linux-elf",   "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized::BN_LLONG $x86_gcc_des $x86_gcc_opts:asm/x86-lnx.o:asm/dx86-elf.o asm/cx86-elf.o:asm/bx86-elf.o",
-"debug-linux-elf","gcc:-DREF_CHECK -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -m486 -Wall:-lefence:BN_LLONG $x86_gcc_des $x86_gcc_opts:asm/x86-lnx.o:asm/dx86-elf.o asm/cx86-elf.o:asm/bx86-elf.o",
-"linux-aout",  "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:asm/x86-lnxa.o:asm/dx86-out.o asm/cx86-out.o:asm/bx86-out.o",
-"NetBSD-sparc",        "gcc:-DTERMIOS -O3 -fomit-frame-pointer -mv8 -Wall::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL:::",
-"NetBSD-x86",  "gcc:-DTERMIOS -D_ANSI_SOURCE -O3 -fomit-frame-pointer -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:asm/x86-lnxa.o:asm/dx86-out.o asm/cx86-out.o:asm/bx86-out.o",
-"FreeBSD",   "gcc:-DTERMIOS -D_ANSI_SOURCE -fomit-frame-pointer -O3 -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:asm/x86-lnxa.o:asm/dx86-out.o asm/cx86-out.o:asm/bx86-out.o",
-#"bsdi-gcc",   "shlicc2:-O3 -ffast-math-m486::RSA_LLONG $x86_gcc_des $x86_gcc_opts:::",
-#"bsdi-gcc",     "gcc:-O3 -ffast-math -DPERL5 -m486::RSA_LLONG $x86_gc_des $x86_gcc_opts:asm/x86-bsdi.o:asm/dx86bsdi.o asm/cx86bsdi.o:asm/bx86bsdi.o",
-"bsdi-gcc",     "gcc:-O3 -ffast-math -DPERL5 -m486::RSA_LLONG $x86_gc_des $x86_gcc_opts:::",
-"nextstep",    "cc:-O3 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:::",
+# bn86-elf.o file file since it is hand tweaked assembler.
+"linux-elf",   "gcc:-DL_ENDIAN -DTERMIO -DBN_ASM -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_elf_asm",
+"debug-linux-elf","gcc:-DREF_CHECK -DBN_ASM -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -m486 -Wall:-lefence:BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_elf_asm",
+"linux-aout",  "gcc:-DL_ENDIAN -DTERMIO -DBN_ASM -O3 -fomit-frame-pointer -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_out_asm",
+"NetBSD-sparc",        "gcc:-DTERMIOS -O3 -fomit-frame-pointer -mv8 -Wall -DB_ENDIAN::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL:::",
+"NetBSD-m86",  "gcc:-DTERMIOS -O3 -fomit-frame-pointer -Wall -DB_ENDIAN::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL:::",
+"NetBSD-x86",  "gcc:-DTERMIOS -DBN_ASM -D_ANSI_SOURCE -O3 -fomit-frame-pointer -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:",
+"FreeBSD",   "gcc:-DTERMIOS -DBN_ASM -DL_ENDIAN -D_ANSI_SOURCE -fomit-frame-pointer -O3 -m486 -Wall::BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_out_asm",
+#"bsdi-gcc",     "gcc:-O3 -ffast-math -DBN_ASM -DL_ENDIAN -DPERL5 -m486::RSA_LLONG $x86_gc_des $x86_gcc_opts:$x86_bsdi_asm",
+"nextstep",    "cc:-O3 -Wall -DBN_ASM::BN_LLONG $x86_gcc_des $x86_gcc_opts:::",
+# NCR MP-RAS UNIX ver 02.03.01
+"ncr-scde","cc:-O6 -Xa -Hoff=BEHAVED -686 -Hwide -Hiw:-lsocket -lnsl:$x86_gcc_des $x86_gcc_opts:::",
 
 # UnixWare 2.0
-"unixware-2.0","cc:-O:-lsocket -lnsl:$x86_gcc_des $x86_gcc_opts:::",
-"unixware-2.0-pentium","cc:-O -Kpentium -Kthread:-lsocket -lnsl:MD2_CHAR RC4_INDEX $x86_des_des::",
+"unixware-2.0","cc:-O -DFILIO_H:-lsocket -lnsl:$x86_gcc_des $x86_gcc_opts:::",
+"unixware-2.0-pentium","cc:-O -DFILIO_H -Kpentium -Kthread:-lsocket -lnsl:MD2_CHAR RC4_INDEX $x86_des_des::",
 
 # IBM's AIX.
 "aix-cc",   "cc:-O -DAIX -DB_ENDIAN::BN_LLONG RC4_CHAR:::",
 "aix-gcc",  "gcc:-O2 -DAIX -DB_ENDIAN::BN_LLONG RC4_CHAR:::",
 
+#
+# Cray T90 (SDSC)
+# It's Big-endian, but the algorithms work properly when B_ENDIAN is NOT
+# defined.  The T90 ints and longs are 8 bytes long, and apparently the
+# B_ENDIAN code assumes 4 byte ints.  Fortunately, the non-B_ENDIAN and
+# non L_ENDIAN code aligns the bytes in each word correctly.
+#
+# The BIT_FIELD_LIMITS define is to avoid two fatal compiler errors:
+#'Taking the address of a bit field is not allowed. '
+#'An expression with bit field exists as the operand of "sizeof" '
+# (written by Wayne Schroeder <schroede@SDSC.EDU>)
+"cray-t90-cc", "cc: -DBIT_FIELD_LIMITS -DTERMIOS::SIXTY_FOUR_BIT_LONG DES_INT:::",
+
 # DGUX, 88100.
 "dgux-R3-gcc", "gcc:-O3 -fomit-frame-pointer::RC4_INDEX DES_UNROLL:::",
 "dgux-R4-gcc", "gcc:-O3 -fomit-frame-pointer:-lnsl -lsocket:RC4_INDEX:RC4_INDEX DES_UNROLL:::",
-"dgux-R4-x86-gcc",     "gcc:-O3 -fomit-frame-pointer -DL_ENDIAN:-lnsl -lsocket:BN_LLONG $x86_gcc_des $x86_gcc_opts:asm/x86-lnx.o:asm/dx86-elf.o asm/cx86-elf.o:asm/bx86-elf.o",
+"dgux-R4-x86-gcc",     "gcc:-O3 -DBN_ASM -fomit-frame-pointer -DL_ENDIAN:-lnsl -lsocket:BN_LLONG $x86_gcc_des $x86_gcc_opts:$x86_elf_asm",
 
 # SCO 5
 "sco5-cc",  "cc:-O:-lsocket:$x86_gcc_des $x86_gcc_opts:::", # des options?
@@ -167,15 +190,21 @@ $Makefile="Makefile.ssl";
 $des_locl="crypto/des/des_locl.h";
 $des   ="crypto/des/des.h";
 $bn    ="crypto/bn/bn.h";
-$md2   ="crypto/md/md2.h";
+$md2   ="crypto/md2/md2.h";
 $rc4   ="crypto/rc4/rc4.h";
-$rc4_enc="crypto/rc4/rc4_enc.c";
+$rc4_locl="crypto/rc4/rc4_locl.h";
 $idea  ="crypto/idea/idea.h";
 $rc2   ="crypto/rc2/rc2.h";
 $bf    ="crypto/bf/bf_locl.h";
 $bn_mulw="bn_mulw.o";
 $des_enc="des_enc.o fcrypt_b.o";
 $bf_enc        ="bf_enc.o";
+$cast_enc="c_enc.o";
+$rc4_enc="rc4_enc.o";
+$rc5_enc="rc5_enc.o";
+$md5_obj="";
+$sha1_obj="";
+$rmd160_obj="";
 
 if ($#ARGV < 0)
        {
@@ -219,14 +248,33 @@ if (!defined($table{$target}))
        exit(1);
        }
 
-($cc,$cflags,$lflags,$bn_ops,$bn_obj,$des_obj,$bf_obj)=
+($cc,$cflags,$lflags,$bn_ops,$bn_obj,$des_obj,$bf_obj,$md5_obj,$sha1_obj,
+       $cast_obj,$rc4_obj,$rmd160_obj,$rc5_obj)=
        split(/\s*:\s*/,$table{$target});
 $cflags="$flags$cflags" if ($flags ne "");
 $lflags="$libs$lflags"if ($libs ne "");
 
-$bn_obj=$bn_mulw unless ($bn_obj =~ /\.o$/);
-$des_obj=$des_enc unless ($des_obj =~ /\.o$/);
-$bf_obj=$bf_enc unless ($bf_obj =~ /\.o$/);
+$bn_obj=$bn_mulw       unless ($bn_obj =~ /\.o$/);
+$des_obj=$des_enc      unless ($des_obj =~ /\.o$/);
+$bf_obj=$bf_enc                unless ($bf_obj =~ /\.o$/);
+$cast_obj=$cast_enc    unless ($cast_obj =~ /\.o$/);
+$rc4_obj=$rc4_enc      unless ($rc4_obj =~ /\.o$/);
+$rc5_obj=$rc5_enc      unless ($rc5_obj =~ /\.o$/);
+if ($sha1_obj =~ /\.o$/)
+       {
+#      $sha1_obj=$sha1_enc;
+       $cflags.=" -DSHA1_ASM";
+       }
+if ($md5_obj =~ /\.o$/)
+       {
+#      $md5_obj=$md5_enc;
+       $cflags.=" -DMD5_ASM";
+       }
+if ($rmd160_obj =~ /\.o$/)
+       {
+#      $rmd160_obj=$rmd160_enc;
+       $cflags.=" -DRMD160_ASM";
+       }
 
 $n=&file_new($Makefile);
 open(IN,"<".$Makefile) || die "unable to read $Makefile:$!\n";
@@ -240,18 +288,30 @@ while (<IN>)
        s/^BN_MULW=.*$/BN_MULW= $bn_obj/;
        s/^DES_ENC=.*$/DES_ENC= $des_obj/;
        s/^BF_ENC=.*$/BF_ENC= $bf_obj/;
+       s/^CAST_ENC=.*$/CAST_ENC= $cast_obj/;
+       s/^RC4_ENC=.*$/RC4_ENC= $rc4_obj/;
+       s/^RC5_ENC=.*$/RC5_ENC= $rc5_obj/;
+       s/^MD5_ASM_OBJ=.*$/MD5_ASM_OBJ= $md5_obj/;
+       s/^SHA1_ASM_OBJ=.*$/SHA1_ASM_OBJ= $sha1_obj/;
+       s/^RMD160_ASM_OBJ=.*$/RMD160_ASM_OBJ= $rmd160_obj/;
        print OUT $_."\n";
        }
 close(IN);
 close(OUT);
 &Rename($Makefile,&file_old($Makefile));
 &Rename($n,$Makefile);
-print "CC     =$cc\n";
-print "CFLAG  =$cflags\n";
-print "EX_LIBS=$lflags\n";
-print "BN_MULW=$bn_obj\n";
-print "DES_ENC=$des_obj\n";
-print "BF_ENC =$bf_obj\n";
+print "CC            =$cc\n";
+print "CFLAG         =$cflags\n";
+print "EX_LIBS       =$lflags\n";
+print "BN_MULW       =$bn_obj\n";
+print "DES_ENC       =$des_obj\n";
+print "BF_ENC        =$bf_obj\n";
+print "CAST_ENC      =$cast_obj\n";
+print "RC4_ENC       =$rc4_obj\n";
+print "RC5_ENC       =$rc5_obj\n";
+print "MD5_OBJ_ASM   =$md5_obj\n";
+print "SHA1_OBJ_ASM  =$sha1_obj\n";
+print "RMD160_OBJ_ASM=$rmd160_obj\n";
 
 $des_ptr=0;
 $des_risc1=0;
@@ -287,8 +347,8 @@ foreach (sort split(/\s+/,$bn_ops))
        $rc2_int=3 if /RC2_LONG/;
        $bf_ptr=1 if $_ eq "BF_PTR";
        $bf_ptr=2 if $_ eq "BF_PTR2";
-       ($b64l,$b64,$b32,$b16,$b8)=(1,0,0,0,0) if /SIXTY_FOUR_BIT_LONG/;
        ($b64l,$b64,$b32,$b16,$b8)=(0,1,0,0,0) if /SIXTY_FOUR_BIT/;
+       ($b64l,$b64,$b32,$b16,$b8)=(1,0,0,0,0) if /SIXTY_FOUR_BIT_LONG/;
        ($b64l,$b64,$b32,$b16,$b8)=(0,0,1,0,0) if /THIRTY_TWO_BIT/;
        ($b64l,$b64,$b32,$b16,$b8)=(0,0,0,1,0) if /SIXTEEN_BIT/;
        ($b64l,$b64,$b32,$b16,$b8)=(0,0,0,0,1) if /EIGHT_BIT/;
@@ -375,9 +435,9 @@ close(OUT);
 &Rename($rc4,&file_old($rc4));
 &Rename($n,$rc4);
 
-(($in=$rc4_enc) =~ s/\.([^.]+)/.$postfix/);
-$n=&file_new($rc4_enc);
-open(IN,"<".$in) || die "unable to read $rc4_enc:$!\n";
+(($in=$rc4_locl) =~ s/\.([^.]+)/.$postfix/);
+$n=&file_new($rc4_locl);
+open(IN,"<".$in) || die "unable to read $rc4_locl:$!\n";
 open(OUT,">$n") || die "unable to read $n:$!\n";
 while (<IN>)
        {
@@ -388,8 +448,8 @@ while (<IN>)
        }
 close(IN);
 close(OUT);
-&Rename($rc4_enc,&file_old($rc4_enc));
-&Rename($n,$rc4_enc);
+&Rename($rc4_locl,&file_old($rc4_locl));
+&Rename($n,$rc4_locl);
 
 (($in=$md2) =~ s/\.([^.]+)/.$postfix/);
 $n=&file_new($md2);
diff --git a/HISTORY b/HISTORY
index 7844faa..7712100 100644 (file)
--- a/HISTORY
+++ b/HISTORY
@@ -1,3 +1,193 @@
+16-Mar-98
+       - Patch for Cray T90 from Wayne Schroeder <schroede@SDSC.EDU>
+       - Lots and lots of changes
+
+29-Jan-98
+       - ASN1_BIT_STRING_set_bit()/ASN1_BIT_STRING_get_bit() from
+         Goetz Babin-Ebell <babinebell@trustcenter.de>.
+       - SSL_version() now returns SSL2_VERSION, SSL3_VERSION or
+         TLS1_VERSION.
+
+7-Jan-98
+       - Finally reworked the cipher string to ciphers again, so it
+         works correctly
+       - All the app_data stuff is now ex_data with funcion calls to access.
+         The index is supplied by a function and 'methods' can be setup
+         for the types that are called on XXX_new/XXX_free.  This lets
+         applications get notified on creation and destruction.  Some of
+         the RSA methods could be implemented this way and I may do so.
+       - Oh yes, SSL under perl5 is working at the basic level.
+
+15-Dec-97
+       - Warning - the gethostbyname cache is not fully thread safe,
+         but it should work well enough.
+       - Major internal reworking of the app_data stuff.  More functions
+         but if you were accessing ->app_data directly, things will
+         stop working.
+       - The perlv5 stuff is working.  Currently on message digests,
+         ciphers and the bignum library.
+
+9-Dec-97
+       - Modified re-negotiation so that server initated re-neg
+         will cause a SSL_read() to return -1 should retry.
+         The danger otherwise was that the server and the
+         client could end up both trying to read when using non-blocking
+         sockets.
+
+4-Dec-97
+       - Lots of small changes
+       - Fix for binaray mode in Windows for the FILE BIO, thanks to
+         Bob Denny <rdenny@dc3.com>
+
+17-Nov-97
+       - Quite a few internal cleanups, (removal of errno, and using macros
+         defined in e_os.h).
+       - A bug in ca.c, pointed out by yasuyuki-ito@d-cruise.co.jp, where
+         the automactic naming out output files was being stuffed up.
+
+29-Oct-97
+       - The Cast5 cipher has been added.  MD5 and SHA-1 are now in assember
+         for x86.
+
+21-Oct-97
+       - Fixed a bug in the BIO_gethostbyname() cache.
+
+15-Oct-97
+       - cbc mode for blowfish/des/3des is now in assember.  Blowfish asm
+         has also been improved.  At this point in time, on the pentium,
+         md5 is %80 faster, the unoptimesed sha-1 is %79 faster,
+         des-cbc is %28 faster, des-ede3-cbc is %9 faster and blowfish-cbc
+         is %62 faster.
+
+12-Oct-97
+       - MEM_BUF_grow() has been fixed so that it always sets the buf->length
+         to the value we are 'growing' to.  Think of MEM_BUF_grow() as the
+         way to set the length value correctly.
+
+10-Oct-97
+       - I now hash for certificate lookup on the raw DER encoded RDN (md5).
+         This breaks things again :-(.  This is efficent since I cache
+         the DER encoding of the RDN.
+       - The text DN now puts in the numeric OID instead of UNKNOWN.
+       - req can now process arbitary OIDs in the config file.
+       - I've been implementing md5 in x86 asm, much faster :-).
+       - Started sha1 in x86 asm, needs more work.
+       - Quite a few speedups in the BN stuff.  RSA public operation
+         has been made faster by caching the BN_MONT_CTX structure.
+         The calulating of the Ai where A*Ai === 1 mod m was rather
+         expensive.  Basically a 40-50% speedup on public operations.
+         The RSA speedup is now 15% on pentiums and %20 on pentium
+         pro.
+
+30-Sep-97
+       - After doing some profiling, I added x86 adm for bn_add_words(),
+         which just adds 2 arrays of longs together.  A %10 speedup
+         for 512 and 1024 bit RSA on the pentium pro.
+
+29-Sep-97
+       - Converted the x86 bignum assembler to us the perl scripts
+         for generation.
+
+23-Sep-97
+       - If SSL_set_session() is passed a NULL session, it now clears the
+         current session-id.
+
+22-Sep-97
+       - Added a '-ss_cert file' to apps/ca.c.  This will sign selfsigned
+         certificates.
+       - Bug in crypto/evp/encode.c where by decoding of 65 base64
+         encoded lines, one line at a time (via a memory BIO) would report
+         EOF after the first line was decoded.
+       - Fix in X509_find_by_issuer_and_serial() from
+         Dr Stephen Henson <shenson@bigfoot.com>
+
+19-Sep-97
+       - NO_FP_API and NO_STDIO added.
+       - Put in sh config command.  It auto runs Configure with the correct
+         parameters.
+
+18-Sep-97
+       - Fix x509.c so if a DSA cert has different parameters to its parent,
+         they are left in place.  Not tested yet.
+
+16-Sep-97
+       - ssl_create_cipher_list() had some bugs, fixes from
+         Patrick Eisenacher <eisenach@stud.uni-frankfurt.de>
+       - Fixed a bug in the Base64 BIO, where it would return 1 instead
+         of -1 when end of input was encountered but should retry.
+         Basically a Base64/Memory BIO interaction problem.
+       - Added a HMAC set of functions in preporarion for TLS work.
+
+15-Sep-97
+       - Top level makefile tweak - Cameron Simpson <cs@zip.com.au>
+       - Prime generation spead up %25 (512 bit prime, pentium pro linux)
+         by using montgomery multiplication in the prime number test.
+
+11-Sep-97
+       - Ugly bug in ssl3_write_bytes().  Basically if application land
+         does a SSL_write(ssl,buf,len) where len > 16k, the SSLv3 write code
+         did not check the size and tried to copy the entire buffer.
+         This would tend to cause memory overwrites since SSLv3 has
+         a maximum packet size of 16k.  If your program uses
+         buffers <= 16k, you would probably never see this problem.
+       - Fixed a new errors that were cause by malloc() not returning
+         0 initialised memory..
+       - SSL_OP_NETSCAPE_CA_DN_BUG was being switched on when using
+         SSL_CTX_set_options(ssl_ctx,SSL_OP_ALL); which was a bad thing
+         since this flags stops SSLeay being able to handle client
+         cert requests correctly.
+
+08-Sep-97
+       - SSL_SESS_CACHE_NO_INTERNAL_LOOKUP option added.  When switched
+         on, the SSL server routines will not use a SSL_SESSION that is
+         held in it's cache.  This in intended to be used with the session-id
+         callbacks so that while the session-ids are still stored in the
+         cache, the decision to use them and how to look them up can be
+         done by the callbacks.  The are the 'new', 'get' and 'remove'
+         callbacks.  This can be used to determine the session-id
+         to use depending on information like which port/host the connection
+         is coming from.  Since the are also SSL_SESSION_set_app_data() and
+         SSL_SESSION_get_app_data() functions, the application can hold
+         information against the session-id as well.
+
+03-Sep-97
+       - Added lookup of CRLs to the by_dir method,
+         X509_load_crl_file() also added.  Basically it means you can
+         lookup CRLs via the same system used to lookup certificates.
+       - Changed things so that the X509_NAME structure can contain
+         ASN.1 BIT_STRINGS which is required for the unique
+         identifier OID.
+       - Fixed some problems with the auto flushing of the session-id
+         cache.  It was not occuring on the server side.
+
+02-Sep-97
+       - Added SSL_CTX_sess_cache_size(SSL_CTX *ctx,unsigned long size)
+         which is the maximum number of entries allowed in the
+         session-id cache.  This is enforced with a simple FIFO list.
+         The default size is 20*1024 entries which is rather large :-).
+         The Timeout code is still always operating.
+
+01-Sep-97
+       - Added an argument to all the 'generate private key/prime`
+         callbacks.  It is the last parameter so this should not
+         break existing code but it is needed for C++.
+       - Added the BIO_FLAGS_BASE64_NO_NL flag for the BIO_f_base64()
+         BIO.  This lets the BIO read and write base64 encoded data
+         without inserting or looking for '\n' characters.  The '-A'
+         flag turns this on when using apps/enc.c.
+       - RSA_NO_PADDING added to help BSAFE functionality.  This is a
+         very dangerous thing to use, since RSA private key
+         operations without random padding bytes (as PKCS#1 adds) can
+         be attacked such that the private key can be revealed.
+       - ASN.1 bug and rc2-40-cbc and rc4-40 added by
+         Dr Stephen Henson <shenson@bigfoot.com>
+
+31-Aug-97 (stuff added while I was away)       
+       - Linux pthreads by Tim Hudson (tjh@cryptsoft.com).
+       - RSA_flags() added allowing bypass of pub/priv match check
+         in ssl/ssl_rsa.c - Tim Hudson.
+       - A few minor bugs.
+
 SSLeay 0.8.1 released.
 
 19-Jul-97
diff --git a/INSTALL b/INSTALL
index 9cbdfd7..d394bf8 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -38,7 +38,7 @@ make -f Makefile.ssl links
 Makefile.ssl           CC CFLAG EX_LIBS BN_MULW
 crypto/des/des.h       DES_LONG
 crypto/des/des_locl.h  DES_PTR
-crypto/md/md2.h                MD2_INT
+crypto/md2/md2.h       MD2_INT
 crypto/rc4/rc4.h       RC4_INT
 crypto/rc4/rc4_enc.c   RC4_INDEX
 crypto/rc2/rc2.h       RC2_INT
diff --git a/MINFO b/MINFO
index 024b85d..0509f33 100644 (file)
--- a/MINFO
+++ b/MINFO
@@ -3,12 +3,13 @@ AR=ar r
 BASENAME=SSLeay
 BF_ENC=bf_enc.o
 BN_MULW=bn_mulw.o
+CAST_ENC=c_enc.o
 CC=cc
 CFLAG=-O -DNOPROTO
 DES_ENC=des_enc.o fcrypt_b.o
 DIRS=crypto ssl rsaref apps test tools
-EDIRS=times doc bugs util include certs ms shlib mt demos
-EX_HEADER=
+EDIRS=times doc bugs util include certs ms shlib mt demos perl dep
+EXHEADER=e_os.h
 EX_LIBS=
 GENERAL=Makefile
 HEADER=e_os.h
@@ -18,25 +19,32 @@ MAKE=make -f Makefile.ssl
 MAKEFILE=Makefile.ssl
 MAN1=1
 MAN3=3
-MISC=COPYRIGHT Configure HISTORY.066 INSTALL Makefile.ssl Makefile README TODO HISTORY README.066 README.080 VERSION PROBLEMS MINFO makefile.one e_os.h MICROSOFT makevms.com
-NAME=SSLeay-0.8.1
+MD5_ASM_OBJ=
+MISC=COPYRIGHT Configure HISTORY.066 INSTALL Makefile.ssl Makefile README TODO HISTORY README.066 README.080 README.090 VERSION PROBLEMS MINFO makefile.one e_os.h MICROSOFT makevms.com config PATENTS
+NAME=SSLeay-0.9.0
 ONEDIRS=out tmp
 PEX_LIBS=-L. -L.. -L../.. -L../../..
-SDIRS=md sha mdc2 des rc4 rc2 idea bf bn rsa dsa dh buffer bio stack lhash rand err objects evp pem asn1 x509 conf txt_db pkcs7
+RC4_ENC=rc4_enc.o
+RC5_ENC=rc5_enc.o
+RMD160_ASM_OBJ=
+SDIRS=md2 md5 sha mdc2 hmac ripemd des rc2 rc4 rc5 idea bf cast bn rsa dsa dh buffer bio stack lhash rand err objects evp pem asn1 x509 conf txt_db pkcs7
+SHA1_ASM_OBJ=
 SHELL=/bin/sh
-TARFILE=SSLeay-0.8.1.tar
+TARFILE=SSLeay-0.9.0.tar
 TOP=.
-VERSION=0.8.1
+VERSION=0.9.0
 WDIRS=windows
-WTARFILE=SSLeay-0.8.1-win.tar
+WTARFILE=SSLeay-0.9.0-win.tar
 RELATIVE_DIRECTORY=
 RELATIVE_DIRECTORY=crypto
-ALL=Makefile README cryptlib.c mem.c cversion.c cryptlib.h date.h crypto.h cryptall.h
+ALL=Makefile README cryptlib.c mem.c cversion.c ex_data.c cpt_err.c cryptlib.h date.h crypto.h cryptall.h
 AR=ar r
 CC=cc
 CFLAG=-g
 CFLAGS=-I. -I../include -g -DCFLAGS=" \"cc -g\" "
 DIR=crypto
+ERR=crypto
+ERRC=cpt_err
 EXHEADER=crypto.h cryptall.h
 EX_LIBS=
 GENERAL=Makefile README
@@ -45,39 +53,64 @@ INCLUDE=-I. -I../include
 INCLUDES=-I.. -I../../include
 INSTALLTOP=/usr/local/ssl
 LIB=../libcrypto.a
-LIBOBJ=cryptlib.o mem.o cversion.o
+LIBOBJ=cryptlib.o mem.o cversion.o ex_data.o cpt_err.o
 LIBS=
-LIBSRC=cryptlib.c mem.c cversion.c
+LIBSRC=cryptlib.c mem.c cversion.c ex_data.c cpt_err.c
 MAKE=make -f Makefile.ssl
 MAKEDEPEND=makedepend -f Makefile.ssl
 MAKEFILE=Makefile.ssl
 PEX_LIBS=
 RM=/bin/rm -f
-SDIRS=md sha mdc2 des rc4 rc2 idea bf bn rsa dsa dh buffer bio stack lhash rand err objects evp pem x509 asn1 conf txt_db pkcs7
-SRC=cryptlib.c mem.c cversion.c
+SDIRS=md2 md5 sha mdc2 hmac ripemd des rc2 rc4 rc5 idea bf cast bn rsa dsa dh buffer bio stack lhash rand err objects evp pem x509 asn1 conf txt_db pkcs7
+SRC=cryptlib.c mem.c cversion.c ex_data.c cpt_err.c
 TOP=..
 RELATIVE_DIRECTORY=
-RELATIVE_DIRECTORY=crypto/md
-ALL=Makefile md2_dgst.c md5_dgst.c md2_one.c md5_one.c md5_locl.h md2.h md5.h
+RELATIVE_DIRECTORY=crypto/md2
+ALL=Makefile md2_dgst.c md5_one.c md2.h
 APPS=
 AR=ar r
 CC=cc
 CFLAG=-g
 CFLAGS= -g
 DIR=md
-EXHEADER=md2.h md5.h
+EXHEADER=md2.h
 GENERAL=Makefile
-HEADER=md5_locl.h md2.h md5.h
+HEADER=md2.h
 INCLUDES=
 INSTALLTOP=/usr/local/ssl
 LIB=../../libcrypto.a
-LIBOBJ=md2_dgst.o md5_dgst.o md2_one.o md5_one.o
-LIBSRC=md2_dgst.c md5_dgst.c md2_one.c md5_one.c
+LIBOBJ=md2_dgst.o md2_one.o
+LIBSRC=md2_dgst.c md5_one.c
 MAKE=make -f Makefile.ssl
 MAKEDEPEND=makedepend -f Makefile.ssl
 MAKEFILE=Makefile.ssl
-SRC=md2_dgst.c md5_dgst.c md2_one.c md5_one.c
-TEST=md2test.c md5test.c
+SRC=md2_dgst.c md5_one.c
+TEST=md2test.c
+TOP=../..
+RELATIVE_DIRECTORY=
+RELATIVE_DIRECTORY=crypto/md5
+ALL=Makefile md5_dgst.c md5_one.c md5_locl.h md5.h
+APPS=md5.c
+AR=ar r
+CC=cc
+CFLAG=-g
+CFLAGS= -g
+CPP=cc -E
+DIR=md5
+EXHEADER=md5.h
+GENERAL=Makefile
+HEADER=md5_locl.h md5.h
+INCLUDES=
+INSTALLTOP=/usr/local/ssl
+LIB=../../libcrypto.a
+LIBOBJ=md5_dgst.o md5_one.o 
+LIBSRC=md5_dgst.c md5_one.c
+MAKE=make -f Makefile.ssl
+MAKEDEPEND=makedepend -f Makefile.ssl
+MAKEFILE=Makefile.ssl
+MD5_ASM_OBJ=
+SRC=md5_dgst.c md5_one.c
+TEST=md5test.c
 TOP=../..
 RELATIVE_DIRECTORY=
 RELATIVE_DIRECTORY=crypto/sha
@@ -94,11 +127,12 @@ HEADER=sha_locl.h sha.h
 INCLUDES=
 INSTALLTOP=/usr/local/ssl
 LIB=../../libcrypto.a
-LIBOBJ=sha_dgst.o sha1dgst.o sha_one.o sha1_one.o
+LIBOBJ=sha_dgst.o sha1dgst.o sha_one.o sha1_one.o 
 LIBSRC=sha_dgst.c sha1dgst.c sha_one.c sha1_one.c
 MAKE=make -f Makefile.ssl
 MAKEDEPEND=makedepend -f Makefile.ssl
 MAKEFILE=Makefile.ssl
+SHA1_ASM_OBJ=
 SRC=sha_dgst.c sha1dgst.c sha_one.c sha1_one.c
 TEST=shatest.c sha1test.c
 TOP=../..
@@ -126,8 +160,56 @@ SRC=mdc2dgst.c mdc2_one.c
 TEST=mdc2test.c
 TOP=../..
 RELATIVE_DIRECTORY=
+RELATIVE_DIRECTORY=crypto/hmac
+ALL=Makefile hmac.c hmac.h
+APPS=
+AR=ar r
+CC=cc
+CFLAG=-g
+CFLAGS= -g
+DIR=hmac
+EXHEADER=hmac.h
+GENERAL=Makefile
+HEADER=hmac.h
+INCLUDES=
+INSTALLTOP=/usr/local/ssl
+LIB=../../libcrypto.a
+LIBOBJ=hmac.o
+LIBSRC=hmac.c
+MAKE=make -f Makefile.ssl
+MAKEDEPEND=makedepend -f Makefile.ssl
+MAKEFILE=Makefile.ssl
+SRC=hmac.c
+TEST=hmactest.c
+TOP=../..
+RELATIVE_DIRECTORY=
+RELATIVE_DIRECTORY=crypto/ripemd
+ALL=Makefile rmd_dgst.c rmd_one.c rmd_locl.h rmdconst.h ripemd.h
+APPS=rmd160.c
+AR=ar r
+CC=cc
+CFLAG=-g
+CFLAGS= -g
+CPP=cc -E
+DIR=ripemd
+EXHEADER=ripemd.h
+GENERAL=Makefile
+HEADER=rmd_locl.h rmdconst.h ripemd.h
+INCLUDES=
+INSTALLTOP=/usr/local/ssl
+LIB=../../libcrypto.a
+LIBOBJ=rmd_dgst.o rmd_one.o 
+LIBSRC=rmd_dgst.c rmd_one.c
+MAKE=make -f Makefile.ssl
+MAKEDEPEND=makedepend -f Makefile.ssl
+MAKEFILE=Makefile.ssl
+RIP_ASM_OBJ=
+SRC=rmd_dgst.c rmd_one.c
+TEST=rmdtest.c
+TOP=../..
+RELATIVE_DIRECTORY=
 RELATIVE_DIRECTORY=crypto/des
-ALL=Makefile des.org des_locl.org cbc3_enc.c cbc_cksm.c cbc_enc.c cfb64enc.c cfb_enc.c ecb3_enc.c ecb_enc.c ede_enc.c enc_read.c enc_writ.c fcrypt.c ncbc_enc.c ofb64enc.c ofb_enc.c pcbc_enc.c qud_cksm.c rand_key.c read_pwd.c rpc_enc.c set_key.c des_enc.c fcrypt_b.c read2pwd.c fcrypt.c xcbc_enc.c str2key.c cfb64ede.c ofb64ede.c supp.c des_locl.h rpc_des.h podd.h sk.h spr.h des_ver.h des.h
+ALL=Makefile des.org des_locl.org cbc_cksm.c cbc_enc.c cfb64enc.c cfb_enc.c ecb3_enc.c ecb_enc.c enc_read.c enc_writ.c fcrypt.c ofb64enc.c ofb_enc.c pcbc_enc.c qud_cksm.c rand_key.c read_pwd.c rpc_enc.c set_key.c des_enc.c fcrypt_b.c read2pwd.c fcrypt.c xcbc_enc.c str2key.c cfb64ede.c ofb64ede.c supp.c des_locl.h rpc_des.h podd.h sk.h spr.h des_ver.h des.h
 APPS=
 AR=ar r
 CC=cc
@@ -142,17 +224,40 @@ HEADER=des_locl.h rpc_des.h podd.h sk.h spr.h des_ver.h des.h
 INCLUDES=
 INSTALLTOP=/usr/local/ssl
 LIB=../../libcrypto.a
-LIBOBJ=set_key.o ecb_enc.o ede_enc.o cbc_enc.o cbc3_enc.o ecb3_enc.o cfb64enc.o cfb64ede.o cfb_enc.o ofb64ede.o enc_read.o enc_writ.o ncbc_enc.o ofb64enc.o ofb_enc.o str2key.o pcbc_enc.o qud_cksm.o rand_key.o des_enc.o fcrypt_b.o read2pwd.o fcrypt.o xcbc_enc.o read_pwd.o rpc_enc.o cbc_cksm.o supp.o
-LIBSRC=cbc3_enc.c cbc_cksm.c cbc_enc.c cfb64enc.c cfb_enc.c ecb3_enc.c ecb_enc.c ede_enc.c enc_read.c enc_writ.c fcrypt.c ncbc_enc.c ofb64enc.c ofb_enc.c pcbc_enc.c qud_cksm.c rand_key.c read_pwd.c rpc_enc.c set_key.c des_enc.c fcrypt_b.c read2pwd.c fcrypt.c xcbc_enc.c str2key.c cfb64ede.c ofb64ede.c supp.c
+LIBOBJ=set_key.o ecb_enc.o cbc_enc.o ecb3_enc.o cfb64enc.o cfb64ede.o cfb_enc.o ofb64ede.o enc_read.o enc_writ.o ofb64enc.o ofb_enc.o str2key.o pcbc_enc.o qud_cksm.o rand_key.o des_enc.o fcrypt_b.o read2pwd.o fcrypt.o xcbc_enc.o read_pwd.o rpc_enc.o cbc_cksm.o supp.o
+LIBSRC=cbc_cksm.c cbc_enc.c cfb64enc.c cfb_enc.c ecb3_enc.c ecb_enc.c enc_read.c enc_writ.c fcrypt.c ofb64enc.c ofb_enc.c pcbc_enc.c qud_cksm.c rand_key.c read_pwd.c rpc_enc.c set_key.c des_enc.c fcrypt_b.c read2pwd.c fcrypt.c xcbc_enc.c str2key.c cfb64ede.c ofb64ede.c supp.c
 MAKE=make -f Makefile.ssl
 MAKEDEPEND=makedepend -f Makefile.ssl
 MAKEFILE=Makefile.ssl
-SRC=cbc3_enc.c cbc_cksm.c cbc_enc.c cfb64enc.c cfb_enc.c ecb3_enc.c ecb_enc.c ede_enc.c enc_read.c enc_writ.c fcrypt.c ncbc_enc.c ofb64enc.c ofb_enc.c pcbc_enc.c qud_cksm.c rand_key.c read_pwd.c rpc_enc.c set_key.c des_enc.c fcrypt_b.c read2pwd.c fcrypt.c xcbc_enc.c str2key.c cfb64ede.c ofb64ede.c supp.c
+SRC=cbc_cksm.c cbc_enc.c cfb64enc.c cfb_enc.c ecb3_enc.c ecb_enc.c enc_read.c enc_writ.c fcrypt.c ofb64enc.c ofb_enc.c pcbc_enc.c qud_cksm.c rand_key.c read_pwd.c rpc_enc.c set_key.c des_enc.c fcrypt_b.c read2pwd.c fcrypt.c xcbc_enc.c str2key.c cfb64ede.c ofb64ede.c supp.c
 TEST=destest.c
 TOP=../..
 RELATIVE_DIRECTORY=
+RELATIVE_DIRECTORY=crypto/rc2
+ALL=Makefile rc2_ecb.c rc2_skey.c rc2_cbc.c rc2cfb64.c rc2ofb64.c rc2_locl.h rc2.h
+APPS=
+AR=ar r
+CC=cc
+CFLAG=-g
+CFLAGS= -g
+DIR=rc2
+EXHEADER=rc2.h
+GENERAL=Makefile
+HEADER=rc2_locl.h rc2.h
+INCLUDES=
+INSTALLTOP=/usr/local/ssl
+LIB=../../libcrypto.a
+LIBOBJ=rc2_ecb.o rc2_skey.o rc2_cbc.o rc2cfb64.o rc2ofb64.o
+LIBSRC=rc2_ecb.c rc2_skey.c rc2_cbc.c rc2cfb64.c rc2ofb64.c
+MAKE=make -f Makefile.ssl
+MAKEDEPEND=makedepend -f Makefile.ssl
+MAKEFILE=Makefile.ssl
+SRC=rc2_ecb.c rc2_skey.c rc2_cbc.c rc2cfb64.c rc2ofb64.c
+TEST=rc2test.c
+TOP=../..
+RELATIVE_DIRECTORY=
 RELATIVE_DIRECTORY=crypto/rc4
-ALL=Makefile rc4_enc.c rc4.h
+ALL=Makefile rc4_skey.c rc4_enc.c rc4.h rc4_locl.h
 APPS=
 AR=ar r
 CC=cc
@@ -161,40 +266,43 @@ CFLAGS= -g
 DIR=rc4
 EXHEADER=rc4.h
 GENERAL=Makefile
-HEADER=rc4.h
+HEADER=rc4.h rc4_locl.h
 INCLUDES=
 INSTALLTOP=/usr/local/ssl
 LIB=../../libcrypto.a
-LIBOBJ=rc4_enc.o
-LIBSRC=rc4_enc.c
+LIBOBJ=rc4_skey.o rc4_enc.o
+LIBSRC=rc4_skey.c rc4_enc.c
 MAKE=make -f Makefile.ssl
 MAKEDEPEND=makedepend -f Makefile.ssl
 MAKEFILE=Makefile.ssl
-SRC=rc4_enc.c
+RC4_ENC=rc4_enc.o
+SRC=rc4_skey.c rc4_enc.c
 TEST=rc4test.c
 TOP=../..
 RELATIVE_DIRECTORY=
-RELATIVE_DIRECTORY=crypto/rc2
-ALL=Makefile rc2_ecb.c rc2_skey.c rc2_cbc.c rc2cfb64.c rc2ofb64.c rc2_locl.h rc2.h
+RELATIVE_DIRECTORY=crypto/rc5
+ALL=Makefile rc5_skey.c rc5_ecb.c rc5_enc.c rc5cfb64.c rc5ofb64.c rc5_locl.h rc5.h
 APPS=
 AR=ar r
 CC=cc
 CFLAG=-g
 CFLAGS= -g
-DIR=rc2
-EXHEADER=rc2.h
+CPP=cc -E
+DIR=rc5
+EXHEADER=rc5.h
 GENERAL=Makefile
-HEADER=rc2_locl.h rc2.h
+HEADER=rc5_locl.h rc5.h
 INCLUDES=
 INSTALLTOP=/usr/local/ssl
 LIB=../../libcrypto.a
-LIBOBJ=rc2_ecb.o rc2_skey.o rc2_cbc.o rc2cfb64.o rc2ofb64.o
-LIBSRC=rc2_ecb.c rc2_skey.c rc2_cbc.c rc2cfb64.c rc2ofb64.c
+LIBOBJ=rc5_skey.o rc5_ecb.o rc5_enc.o rc5cfb64.o rc5ofb64.o
+LIBSRC=rc5_skey.c rc5_ecb.c rc5_enc.c rc5cfb64.c rc5ofb64.c
 MAKE=make -f Makefile.ssl
 MAKEDEPEND=makedepend -f Makefile.ssl
 MAKEFILE=Makefile.ssl
-SRC=rc2_ecb.c rc2_skey.c rc2_cbc.c rc2cfb64.c rc2ofb64.c
-TEST=rc2test.c
+RC5_ENC=rc5_enc.o
+SRC=rc5_skey.c rc5_ecb.c rc5_enc.c rc5cfb64.c rc5ofb64.c
+TEST=rc5test.c
 TOP=../..
 RELATIVE_DIRECTORY=
 RELATIVE_DIRECTORY=crypto/idea
@@ -221,7 +329,7 @@ TEST=ideatest.c
 TOP=../..
 RELATIVE_DIRECTORY=
 RELATIVE_DIRECTORY=crypto/bf
-ALL=Makefile bf_skey.c bf_ecb.c bf_enc.c bf_cbc.c bf_cfb64.c bf_ofb64.c bf_pi.h bf_locl.h blowfish.h
+ALL=Makefile bf_skey.c bf_ecb.c bf_enc.c bf_cfb64.c bf_ofb64.c bf_pi.h bf_locl.h blowfish.h
 APPS=
 AR=ar r
 BF_ENC=bf_enc.o
@@ -236,17 +344,42 @@ HEADER=bf_pi.h bf_locl.h blowfish.h
 INCLUDES=
 INSTALLTOP=/usr/local/ssl
 LIB=../../libcrypto.a
-LIBOBJ=bf_skey.o bf_ecb.o bf_enc.o bf_cbc.o bf_cfb64.o bf_ofb64.o
-LIBSRC=bf_skey.c bf_ecb.c bf_enc.c bf_cbc.c bf_cfb64.c bf_ofb64.c
+LIBOBJ=bf_skey.o bf_ecb.o bf_enc.o bf_cfb64.o bf_ofb64.o
+LIBSRC=bf_skey.c bf_ecb.c bf_enc.c bf_cfb64.c bf_ofb64.c
 MAKE=make -f Makefile.ssl
 MAKEDEPEND=makedepend -f Makefile.ssl
 MAKEFILE=Makefile.ssl
-SRC=bf_skey.c bf_ecb.c bf_enc.c bf_cbc.c bf_cfb64.c bf_ofb64.c
+SRC=bf_skey.c bf_ecb.c bf_enc.c bf_cfb64.c bf_ofb64.c
 TEST=bftest.c
 TOP=../..
 RELATIVE_DIRECTORY=
+RELATIVE_DIRECTORY=crypto/cast
+ALL=Makefile c_skey.c c_ecb.c c_enc.c c_cfb64.c c_ofb64.c cast_s.h cast_lcl.h cast.h
+APPS=
+AR=ar r
+CAST_ENC=c_enc.o
+CC=cc
+CFLAG=-g
+CFLAGS= -g
+CPP=cc -E
+DIR=cast
+EXHEADER=cast.h
+GENERAL=Makefile
+HEADER=cast_s.h cast_lcl.h cast.h
+INCLUDES=
+INSTALLTOP=/usr/local/ssl
+LIB=../../libcrypto.a
+LIBOBJ=c_skey.o c_ecb.o c_enc.o c_cfb64.o c_ofb64.o
+LIBSRC=c_skey.c c_ecb.c c_enc.c c_cfb64.c c_ofb64.c
+MAKE=make -f Makefile.ssl
+MAKEDEPEND=makedepend -f Makefile.ssl
+MAKEFILE=Makefile.ssl
+SRC=c_skey.c c_ecb.c c_enc.c c_cfb64.c c_ofb64.c
+TEST=casttest.c
+TOP=../..
+RELATIVE_DIRECTORY=
 RELATIVE_DIRECTORY=crypto/bn
-ALL=Makefile bn_add.c bn_div.c bn_exp.c bn_lib.c bn_mod.c bn_mul.c bn_print.c bn_rand.c bn_shift.c bn_sub.c bn_word.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c bn_mulw.c bn_recp.c bn_mont.c bn_lcl.h bn_prime.h bn.h
+ALL=Makefile bn_add.c bn_div.c bn_exp.c bn_lib.c bn_mod.c bn_mul.c bn_print.c bn_rand.c bn_shift.c bn_sub.c bn_word.c bn_blind.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c bn_mulw.c bn_recp.c bn_mont.c bn_mpi.c bn_lcl.h bn_prime.h bn.h
 APPS=
 AR=ar r
 BN_MULW=bn_mulw.o
@@ -262,17 +395,17 @@ HEADER=bn_lcl.h bn_prime.h bn.h
 INCLUDES=-I.. -I../../include
 INSTALLTOP=/usr/local/ssl
 LIB=../../libcrypto.a
-LIBOBJ=bn_add.o bn_div.o bn_exp.o bn_lib.o bn_mod.o bn_mul.o bn_print.o bn_rand.o bn_shift.o bn_sub.o bn_word.o bn_gcd.o bn_prime.o bn_err.o bn_sqr.o bn_mulw.o bn_recp.o bn_mont.o
-LIBSRC=bn_add.c bn_div.c bn_exp.c bn_lib.c bn_mod.c bn_mul.c bn_print.c bn_rand.c bn_shift.c bn_sub.c bn_word.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c bn_mulw.c bn_recp.c bn_mont.c
+LIBOBJ=bn_add.o bn_div.o bn_exp.o bn_lib.o bn_mod.o bn_mul.o bn_print.o bn_rand.o bn_shift.o bn_sub.o bn_word.o bn_blind.o bn_gcd.o bn_prime.o bn_err.o bn_sqr.o bn_mulw.o bn_recp.o bn_mont.o bn_mpi.o
+LIBSRC=bn_add.c bn_div.c bn_exp.c bn_lib.c bn_mod.c bn_mul.c bn_print.c bn_rand.c bn_shift.c bn_sub.c bn_word.c bn_blind.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c bn_mulw.c bn_recp.c bn_mont.c bn_mpi.c
 MAKE=make -f Makefile.ssl
 MAKEDEPEND=makedepend -f Makefile.ssl
 MAKEFILE=Makefile.ssl
-SRC=bn_add.c bn_div.c bn_exp.c bn_lib.c bn_mod.c bn_mul.c bn_print.c bn_rand.c bn_shift.c bn_sub.c bn_word.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c bn_mulw.c bn_recp.c bn_mont.c
+SRC=bn_add.c bn_div.c bn_exp.c bn_lib.c bn_mod.c bn_mul.c bn_print.c bn_rand.c bn_shift.c bn_sub.c bn_word.c bn_blind.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c bn_mulw.c bn_recp.c bn_mont.c bn_mpi.c
 TEST=bntest.c exptest.c
 TOP=../..
 RELATIVE_DIRECTORY=
 RELATIVE_DIRECTORY=crypto/rsa
-ALL=Makefile rsa_enc.c rsa_gen.c rsa_lib.c rsa_sign.c rsa_saos.c rsa_err.c rsa.h
+ALL=Makefile rsa_eay.c rsa_gen.c rsa_lib.c rsa_sign.c rsa_saos.c rsa_err.c rsa_pk1.c rsa_ssl.c rsa_none.c rsa.h
 APPS=
 AR=ar r
 CC=cc
@@ -287,12 +420,12 @@ HEADER=rsa.h
 INCLUDES=-I.. -I../../include
 INSTALLTOP=/usr/local/ssl
 LIB=../../libcrypto.a
-LIBOBJ=rsa_enc.o rsa_gen.o rsa_lib.o rsa_sign.o rsa_saos.o rsa_err.o
-LIBSRC=rsa_enc.c rsa_gen.c rsa_lib.c rsa_sign.c rsa_saos.c rsa_err.c
+LIBOBJ=rsa_eay.o rsa_gen.o rsa_lib.o rsa_sign.o rsa_saos.o rsa_err.o rsa_pk1.o rsa_ssl.o rsa_none.o
+LIBSRC=rsa_eay.c rsa_gen.c rsa_lib.c rsa_sign.c rsa_saos.c rsa_err.c rsa_pk1.c rsa_ssl.c rsa_none.c
 MAKE=make -f Makefile.ssl
 MAKEDEPEND=makedepend -f Makefile.ssl
 MAKEFILE=Makefile.ssl
-SRC=rsa_enc.c rsa_gen.c rsa_lib.c rsa_sign.c rsa_saos.c rsa_err.c
+SRC=rsa_eay.c rsa_gen.c rsa_lib.c rsa_sign.c rsa_saos.c rsa_err.c rsa_pk1.c rsa_ssl.c rsa_none.c
 TEST=
 TOP=../..
 RELATIVE_DIRECTORY=
@@ -372,7 +505,7 @@ TEST=
 TOP=../..
 RELATIVE_DIRECTORY=
 RELATIVE_DIRECTORY=crypto/bio
-ALL=Makefile bio_lib.c bio_cb.c bio_err.c bss_mem.c bss_null.c bss_fd.c bss_file.c bss_sock.c bss_conn.c bf_null.c bf_buff.c b_print.c b_dump.c b_sock.c bss_acpt.c bf_nbio.c bio.h
+ALL=Makefile bio_lib.c bio_cb.c bio_err.c bss_mem.c bss_null.c bss_fd.c bss_file.c bss_sock.c bss_conn.c bf_null.c bf_buff.c b_print.c b_dump.c b_sock.c bss_acpt.c bf_nbio.c bio.h bss_file.c
 APPS=
 AR=ar r
 CC=cc
@@ -381,9 +514,9 @@ CFLAGS=-I.. -I../../include -g
 DIR=bio
 ERR=bio
 ERRC=bio_err
-EXHEADER=bio.h
+EXHEADER=bio.h bss_file.c
 GENERAL=Makefile
-HEADER=bio.h
+HEADER=bio.h bss_file.c
 INCLUDES=-I.. -I../../include
 INSTALLTOP=/usr/local/ssl
 LIB=../../libcrypto.a
@@ -472,7 +605,7 @@ AR=ar r
 CC=cc
 CFLAG=-g
 CFLAGS=-I.. -I../../include -g
-DIR=error
+DIR=err
 EXHEADER=err.h
 GENERAL=Makefile
 HEADER=err.h
@@ -514,7 +647,7 @@ TEST=
 TOP=../..
 RELATIVE_DIRECTORY=
 RELATIVE_DIRECTORY=crypto/evp
-ALL=Makefile encode.c digest.c evp_enc.c evp_key.c e_ecb_d.c e_cbc_d.c e_cfb_d.c e_ofb_d.c e_ecb_i.c e_cbc_i.c e_cfb_i.c e_ofb_i.c e_ecb_3d.c e_cbc_3d.c e_rc4.c names.c e_cfb_3d.c e_ofb_3d.c e_xcbc_d.c e_ecb_r2.c e_cbc_r2.c e_cfb_r2.c e_ofb_r2.c e_ecb_bf.c e_cbc_bf.c e_cfb_bf.c e_ofb_bf.c m_null.c m_md2.c m_md5.c m_sha.c m_sha1.c m_dss.c m_dss1.c m_mdc2.c p_open.c p_seal.c p_sign.c p_verify.c p_lib.c bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c c_all.c evp.h
+ALL=Makefile encode.c digest.c evp_enc.c evp_key.c e_ecb_d.c e_cbc_d.c e_cfb_d.c e_ofb_d.c e_ecb_i.c e_cbc_i.c e_cfb_i.c e_ofb_i.c e_ecb_3d.c e_cbc_3d.c e_rc4.c names.c e_cfb_3d.c e_ofb_3d.c e_xcbc_d.c e_ecb_r2.c e_cbc_r2.c e_cfb_r2.c e_ofb_r2.c e_ecb_bf.c e_cbc_bf.c e_cfb_bf.c e_ofb_bf.c e_ecb_c.c e_cbc_c.c e_cfb_c.c e_ofb_c.c e_ecb_r5.c e_cbc_r5.c e_cfb_r5.c e_ofb_r5.c m_null.c m_md2.c m_md5.c m_sha.c m_sha1.c m_dss.c m_dss1.c m_mdc2.c m_ripemd.c p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c p_dec.c bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c c_all.c evp_lib.c evp.h
 APPS=
 AR=ar r
 CC=cc
@@ -529,12 +662,12 @@ HEADER=evp.h
 INCLUDES=-I.. -I../../include
 INSTALLTOP=/usr/local/ssl
 LIB=../../libcrypto.a
-LIBOBJ=encode.o digest.o evp_enc.o evp_key.o e_ecb_d.o e_cbc_d.o e_cfb_d.o e_ofb_d.o e_ecb_i.o e_cbc_i.o e_cfb_i.o e_ofb_i.o e_ecb_3d.o e_cbc_3d.o e_rc4.o names.o e_cfb_3d.o e_ofb_3d.o e_xcbc_d.o e_ecb_r2.o e_cbc_r2.o e_cfb_r2.o e_ofb_r2.o e_ecb_bf.o e_cbc_bf.o e_cfb_bf.o e_ofb_bf.o m_null.o m_md2.o m_md5.o m_sha.o m_sha1.o m_dss.o m_dss1.o m_mdc2.o p_open.o p_seal.o p_sign.o p_verify.o p_lib.o bio_md.o bio_b64.o bio_enc.o evp_err.o e_null.o c_all.o
-LIBSRC=encode.c digest.c evp_enc.c evp_key.c e_ecb_d.c e_cbc_d.c e_cfb_d.c e_ofb_d.c e_ecb_i.c e_cbc_i.c e_cfb_i.c e_ofb_i.c e_ecb_3d.c e_cbc_3d.c e_rc4.c names.c e_cfb_3d.c e_ofb_3d.c e_xcbc_d.c e_ecb_r2.c e_cbc_r2.c e_cfb_r2.c e_ofb_r2.c e_ecb_bf.c e_cbc_bf.c e_cfb_bf.c e_ofb_bf.c m_null.c m_md2.c m_md5.c m_sha.c m_sha1.c m_dss.c m_dss1.c m_mdc2.c p_open.c p_seal.c p_sign.c p_verify.c p_lib.c bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c c_all.c
+LIBOBJ=encode.o digest.o evp_enc.o evp_key.o e_ecb_d.o e_cbc_d.o e_cfb_d.o e_ofb_d.o e_ecb_i.o e_cbc_i.o e_cfb_i.o e_ofb_i.o e_ecb_3d.o e_cbc_3d.o e_rc4.o names.o e_cfb_3d.o e_ofb_3d.o e_xcbc_d.o e_ecb_r2.o e_cbc_r2.o e_cfb_r2.o e_ofb_r2.o e_ecb_bf.o e_cbc_bf.o e_cfb_bf.o e_ofb_bf.o e_ecb_c.o e_cbc_c.o e_cfb_c.o e_ofb_c.o e_ecb_r5.o e_cbc_r5.o e_cfb_r5.o e_ofb_r5.o m_null.o m_md2.o m_md5.o m_sha.o m_sha1.o m_dss.o m_dss1.o m_mdc2.o m_ripemd.o p_open.o p_seal.o p_sign.o p_verify.o p_lib.o p_enc.o p_dec.o bio_md.o bio_b64.o bio_enc.o evp_err.o e_null.o c_all.o evp_lib.o
+LIBSRC=encode.c digest.c evp_enc.c evp_key.c e_ecb_d.c e_cbc_d.c e_cfb_d.c e_ofb_d.c e_ecb_i.c e_cbc_i.c e_cfb_i.c e_ofb_i.c e_ecb_3d.c e_cbc_3d.c e_rc4.c names.c e_cfb_3d.c e_ofb_3d.c e_xcbc_d.c e_ecb_r2.c e_cbc_r2.c e_cfb_r2.c e_ofb_r2.c e_ecb_bf.c e_cbc_bf.c e_cfb_bf.c e_ofb_bf.c e_ecb_c.c e_cbc_c.c e_cfb_c.c e_ofb_c.c e_ecb_r5.c e_cbc_r5.c e_cfb_r5.c e_ofb_r5.c m_null.c m_md2.c m_md5.c m_sha.c m_sha1.c m_dss.c m_dss1.c m_mdc2.c m_ripemd.c p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c p_dec.c bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c c_all.c evp_lib.c
 MAKE=make -f Makefile.ssl
 MAKEDEPEND=makedepend -f Makefile.ssl
 MAKEFILE=Makefile.ssl
-SRC=encode.c digest.c evp_enc.c evp_key.c e_ecb_d.c e_cbc_d.c e_cfb_d.c e_ofb_d.c e_ecb_i.c e_cbc_i.c e_cfb_i.c e_ofb_i.c e_ecb_3d.c e_cbc_3d.c e_rc4.c names.c e_cfb_3d.c e_ofb_3d.c e_xcbc_d.c e_ecb_r2.c e_cbc_r2.c e_cfb_r2.c e_ofb_r2.c e_ecb_bf.c e_cbc_bf.c e_cfb_bf.c e_ofb_bf.c m_null.c m_md2.c m_md5.c m_sha.c m_sha1.c m_dss.c m_dss1.c m_mdc2.c p_open.c p_seal.c p_sign.c p_verify.c p_lib.c bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c c_all.c
+SRC=encode.c digest.c evp_enc.c evp_key.c e_ecb_d.c e_cbc_d.c e_cfb_d.c e_ofb_d.c e_ecb_i.c e_cbc_i.c e_cfb_i.c e_ofb_i.c e_ecb_3d.c e_cbc_3d.c e_rc4.c names.c e_cfb_3d.c e_ofb_3d.c e_xcbc_d.c e_ecb_r2.c e_cbc_r2.c e_cfb_r2.c e_ofb_r2.c e_ecb_bf.c e_cbc_bf.c e_cfb_bf.c e_ofb_bf.c e_ecb_c.c e_cbc_c.c e_cfb_c.c e_ofb_c.c e_ecb_r5.c e_cbc_r5.c e_cfb_r5.c e_ofb_r5.c m_null.c m_md2.c m_md5.c m_sha.c m_sha1.c m_dss.c m_dss1.c m_mdc2.c m_ripemd.c p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c p_dec.c bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c c_all.c evp_lib.c
 TEST=
 TOP=../..
 RELATIVE_DIRECTORY=
@@ -565,7 +698,7 @@ TEST=
 TOP=../..
 RELATIVE_DIRECTORY=
 RELATIVE_DIRECTORY=crypto/asn1
-ALL=Makefile README a_object.c a_bitstr.c a_utctm.c a_int.c a_octet.c a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_sign.c a_digest.c a_verify.c x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c d2i_r_pr.c i2d_r_pr.c d2i_r_pu.c i2d_r_pu.c d2i_s_pr.c i2d_s_pr.c d2i_s_pu.c i2d_s_pu.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c t_req.c t_x509.c t_pkey.c p7_i_s.c p7_signi.c p7_signd.c p7_recip.c p7_enc_c.c p7_evp.c p7_dgst.c p7_s_e.c p7_enc.c p7_lib.c f_int.c f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c d2i_dsap.c n_pkey.c a_hdr.c x_pkey.c a_bool.c x_exten.c asn1_par.c asn1_lib.c asn1_err.c a_meth.c a_bytes.c asn1.h asn1_mac.h
+ALL=Makefile README a_object.c a_bitstr.c a_utctm.c a_int.c a_octet.c a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_sign.c a_digest.c a_verify.c x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c d2i_r_pr.c i2d_r_pr.c d2i_r_pu.c i2d_r_pu.c d2i_s_pr.c i2d_s_pr.c d2i_s_pu.c i2d_s_pu.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c t_req.c t_x509.c t_pkey.c p7_i_s.c p7_signi.c p7_signd.c p7_recip.c p7_enc_c.c p7_evp.c p7_dgst.c p7_s_e.c p7_enc.c p7_lib.c f_int.c f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c d2i_dsap.c n_pkey.c a_hdr.c x_pkey.c a_bool.c x_exten.c asn1_par.c asn1_lib.c asn1_err.c a_meth.c a_bytes.c evp_asn1.c asn1.h asn1_mac.h
 APPS=
 AR=ar r
 CC=cc
@@ -580,12 +713,12 @@ HEADER=asn1.h asn1_mac.h
 INCLUDES=-I.. -I../../include
 INSTALLTOP=/usr/local/ssl
 LIB=../../libcrypto.a
-LIBOBJ=a_object.o a_bitstr.o a_utctm.o a_int.o a_octet.o a_print.o a_type.o a_set.o a_dup.o a_d2i_fp.o a_i2d_fp.o a_sign.o a_digest.o a_verify.o x_algor.o x_val.o x_pubkey.o x_sig.o x_req.o x_attrib.o x_name.o x_cinf.o x_x509.o x_crl.o x_info.o x_spki.o d2i_r_pr.o i2d_r_pr.o d2i_r_pu.o i2d_r_pu.o d2i_s_pr.o i2d_s_pr.o d2i_s_pu.o i2d_s_pu.o d2i_pu.o d2i_pr.o i2d_pu.o i2d_pr.o t_req.o t_x509.o t_pkey.o p7_i_s.o p7_signi.o p7_signd.o p7_recip.o p7_enc_c.o p7_evp.o p7_dgst.o p7_s_e.o p7_enc.o p7_lib.o f_int.o f_string.o i2d_dhp.o i2d_dsap.o d2i_dhp.o d2i_dsap.o n_pkey.o a_hdr.o x_pkey.o a_bool.o x_exten.o asn1_par.o asn1_lib.o asn1_err.o a_meth.o a_bytes.o
-LIBSRC=a_object.c a_bitstr.c a_utctm.c a_int.c a_octet.c a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_sign.c a_digest.c a_verify.c x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c d2i_r_pr.c i2d_r_pr.c d2i_r_pu.c i2d_r_pu.c d2i_s_pr.c i2d_s_pr.c d2i_s_pu.c i2d_s_pu.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c t_req.c t_x509.c t_pkey.c p7_i_s.c p7_signi.c p7_signd.c p7_recip.c p7_enc_c.c p7_evp.c p7_dgst.c p7_s_e.c p7_enc.c p7_lib.c f_int.c f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c d2i_dsap.c n_pkey.c a_hdr.c x_pkey.c a_bool.c x_exten.c asn1_par.c asn1_lib.c asn1_err.c a_meth.c a_bytes.c
+LIBOBJ=a_object.o a_bitstr.o a_utctm.o a_int.o a_octet.o a_print.o a_type.o a_set.o a_dup.o a_d2i_fp.o a_i2d_fp.o a_sign.o a_digest.o a_verify.o x_algor.o x_val.o x_pubkey.o x_sig.o x_req.o x_attrib.o x_name.o x_cinf.o x_x509.o x_crl.o x_info.o x_spki.o d2i_r_pr.o i2d_r_pr.o d2i_r_pu.o i2d_r_pu.o d2i_s_pr.o i2d_s_pr.o d2i_s_pu.o i2d_s_pu.o d2i_pu.o d2i_pr.o i2d_pu.o i2d_pr.o t_req.o t_x509.o t_pkey.o p7_i_s.o p7_signi.o p7_signd.o p7_recip.o p7_enc_c.o p7_evp.o p7_dgst.o p7_s_e.o p7_enc.o p7_lib.o f_int.o f_string.o i2d_dhp.o i2d_dsap.o d2i_dhp.o d2i_dsap.o n_pkey.o a_hdr.o x_pkey.o a_bool.o x_exten.o asn1_par.o asn1_lib.o asn1_err.o a_meth.o a_bytes.o evp_asn1.o
+LIBSRC=a_object.c a_bitstr.c a_utctm.c a_int.c a_octet.c a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_sign.c a_digest.c a_verify.c x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c d2i_r_pr.c i2d_r_pr.c d2i_r_pu.c i2d_r_pu.c d2i_s_pr.c i2d_s_pr.c d2i_s_pu.c i2d_s_pu.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c t_req.c t_x509.c t_pkey.c p7_i_s.c p7_signi.c p7_signd.c p7_recip.c p7_enc_c.c p7_evp.c p7_dgst.c p7_s_e.c p7_enc.c p7_lib.c f_int.c f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c d2i_dsap.c n_pkey.c a_hdr.c x_pkey.c a_bool.c x_exten.c asn1_par.c asn1_lib.c asn1_err.c a_meth.c a_bytes.c evp_asn1.c
 MAKE=make -f Makefile.ssl
 MAKEDEPEND=makedepend -f Makefile.ssl
 MAKEFILE=Makefile.ssl
-SRC=a_object.c a_bitstr.c a_utctm.c a_int.c a_octet.c a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_sign.c a_digest.c a_verify.c x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c d2i_r_pr.c i2d_r_pr.c d2i_r_pu.c i2d_r_pu.c d2i_s_pr.c i2d_s_pr.c d2i_s_pu.c i2d_s_pu.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c t_req.c t_x509.c t_pkey.c p7_i_s.c p7_signi.c p7_signd.c p7_recip.c p7_enc_c.c p7_evp.c p7_dgst.c p7_s_e.c p7_enc.c p7_lib.c f_int.c f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c d2i_dsap.c n_pkey.c a_hdr.c x_pkey.c a_bool.c x_exten.c asn1_par.c asn1_lib.c asn1_err.c a_meth.c a_bytes.c
+SRC=a_object.c a_bitstr.c a_utctm.c a_int.c a_octet.c a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_sign.c a_digest.c a_verify.c x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_name.c x_cinf.c x_x509.c x_crl.c x_info.c x_spki.c d2i_r_pr.c i2d_r_pr.c d2i_r_pu.c i2d_r_pu.c d2i_s_pr.c i2d_s_pr.c d2i_s_pu.c i2d_s_pu.c d2i_pu.c d2i_pr.c i2d_pu.c i2d_pr.c t_req.c t_x509.c t_pkey.c p7_i_s.c p7_signi.c p7_signd.c p7_recip.c p7_enc_c.c p7_evp.c p7_dgst.c p7_s_e.c p7_enc.c p7_lib.c f_int.c f_string.c i2d_dhp.c i2d_dsap.c d2i_dhp.c d2i_dsap.c n_pkey.c a_hdr.c x_pkey.c a_bool.c x_exten.c asn1_par.c asn1_lib.c asn1_err.c a_meth.c a_bytes.c evp_asn1.c
 TEST=
 TOP=../..
 RELATIVE_DIRECTORY=
@@ -688,7 +821,7 @@ TEST=
 TOP=../..
 RELATIVE_DIRECTORY=
 RELATIVE_DIRECTORY=ssl
-ALL=Makefile README s2_meth.c s2_srvr.c s2_clnt.c s2_lib.c s2_pkt.c s2_enc.c s3_meth.c s3_srvr.c s3_clnt.c s3_lib.c s3_pkt.c s3_enc.c s3_both.c s23_meth.c s23_srvr.c s23_clnt.c s23_lib.c s23_pkt.c ssl_lib.c ssl_err2.c ssl_cert.c ssl_sess.c ssl_ciph.c ssl_stat.c ssl_rsa.c ssl_asn1.c ssl_txt.c ssl_algs.c bio_ssl.c ssl_err.c ssl.h ssl2.h ssl3.h ssl23.h ssl_locl.h
+ALL=Makefile README s2_meth.c s2_srvr.c s2_clnt.c s2_lib.c s2_enc.c s2_pkt.c s3_meth.c s3_srvr.c s3_clnt.c s3_lib.c s3_enc.c s3_pkt.c s3_both.c s23_meth.c s23_srvr.c s23_clnt.c s23_lib.c s23_pkt.c t1_meth.c t1_srvr.c t1_clnt.c t1_lib.c t1_enc.c ssl_lib.c ssl_err2.c ssl_cert.c ssl_sess.c ssl_ciph.c ssl_stat.c ssl_rsa.c ssl_asn1.c ssl_txt.c ssl_algs.c bio_ssl.c ssl_err.c ssl.h ssl2.h ssl3.h ssl23.h tls1.h ssl_locl.h
 APPS=
 AR=ar r
 CC=cc
@@ -697,18 +830,18 @@ CFLAGS=-I../crypto -I../include -g
 DIR=ssl
 ERR=ssl
 ERRC=ssl_err
-EXHEADER=ssl.h ssl2.h ssl3.h ssl23.h
+EXHEADER=ssl.h ssl2.h ssl3.h ssl23.h tls1.h
 GENERAL=Makefile README
-HEADER=ssl.h ssl2.h ssl3.h ssl23.h ssl_locl.h
+HEADER=ssl.h ssl2.h ssl3.h ssl23.h tls1.h ssl_locl.h
 INCLUDES=-I../crypto -I../include
 INSTALLTOP=/usr/local/ssl
 LIB=../libssl.a
-LIBOBJ=s2_meth.o s2_srvr.o s2_clnt.o s2_lib.o s2_pkt.o s2_enc.o s3_meth.o s3_srvr.o s3_clnt.o s3_lib.o s3_pkt.o s3_enc.o s3_both.o s23_meth.o s23_srvr.o s23_clnt.o s23_lib.o s23_pkt.o ssl_lib.o ssl_err2.o ssl_cert.o ssl_sess.o ssl_ciph.o ssl_stat.o ssl_rsa.o ssl_asn1.o ssl_txt.o ssl_algs.o bio_ssl.o ssl_err.o
-LIBSRC=s2_meth.c s2_srvr.c s2_clnt.c s2_lib.c s2_pkt.c s2_enc.c s3_meth.c s3_srvr.c s3_clnt.c s3_lib.c s3_pkt.c s3_enc.c s3_both.c s23_meth.c s23_srvr.c s23_clnt.c s23_lib.c s23_pkt.c ssl_lib.c ssl_err2.c ssl_cert.c ssl_sess.c ssl_ciph.c ssl_stat.c ssl_rsa.c ssl_asn1.c ssl_txt.c ssl_algs.c bio_ssl.c ssl_err.c
+LIBOBJ=s2_meth.o s2_srvr.o s2_clnt.o s2_lib.o s2_enc.o s2_pkt.o s3_meth.o s3_srvr.o s3_clnt.o s3_lib.o s3_enc.o s3_pkt.o s3_both.o s23_meth.o s23_srvr.o s23_clnt.o s23_lib.o s23_pkt.o t1_meth.o t1_srvr.o t1_clnt.o t1_lib.o t1_enc.o ssl_lib.o ssl_err2.o ssl_cert.o ssl_sess.o ssl_ciph.o ssl_stat.o ssl_rsa.o ssl_asn1.o ssl_txt.o ssl_algs.o bio_ssl.o ssl_err.o
+LIBSRC=s2_meth.c s2_srvr.c s2_clnt.c s2_lib.c s2_enc.c s2_pkt.c s3_meth.c s3_srvr.c s3_clnt.c s3_lib.c s3_enc.c s3_pkt.c s3_both.c s23_meth.c s23_srvr.c s23_clnt.c s23_lib.c s23_pkt.c t1_meth.c t1_srvr.c t1_clnt.c t1_lib.c t1_enc.c ssl_lib.c ssl_err2.c ssl_cert.c ssl_sess.c ssl_ciph.c ssl_stat.c ssl_rsa.c ssl_asn1.c ssl_txt.c ssl_algs.c bio_ssl.c ssl_err.c
 MAKE=make -f Makefile.ssl
 MAKEDEPEND=makedepend -f Makefile.ssl
 MAKEFILE=Makefile.ssl
-SRC=s2_meth.c s2_srvr.c s2_clnt.c s2_lib.c s2_pkt.c s2_enc.c s3_meth.c s3_srvr.c s3_clnt.c s3_lib.c s3_pkt.c s3_enc.c s3_both.c s23_meth.c s23_srvr.c s23_clnt.c s23_lib.c s23_pkt.c ssl_lib.c ssl_err2.c ssl_cert.c ssl_sess.c ssl_ciph.c ssl_stat.c ssl_rsa.c ssl_asn1.c ssl_txt.c ssl_algs.c bio_ssl.c ssl_err.c
+SRC=s2_meth.c s2_srvr.c s2_clnt.c s2_lib.c s2_enc.c s2_pkt.c s3_meth.c s3_srvr.c s3_clnt.c s3_lib.c s3_enc.c s3_pkt.c s3_both.c s23_meth.c s23_srvr.c s23_clnt.c s23_lib.c s23_pkt.c t1_meth.c t1_srvr.c t1_clnt.c t1_lib.c t1_enc.c ssl_lib.c ssl_err2.c ssl_cert.c ssl_sess.c ssl_ciph.c ssl_stat.c ssl_rsa.c ssl_asn1.c ssl_txt.c ssl_algs.c bio_ssl.c ssl_err.c
 TEST=ssltest.c
 TOP=..
 RELATIVE_DIRECTORY=
@@ -738,7 +871,7 @@ TEST=
 TOP=..
 RELATIVE_DIRECTORY=
 RELATIVE_DIRECTORY=apps
-ALL=Makefile verify.c asn1pars.c req.c dgst.c dh.c enc.c gendh.c errstr.c ca.c gendsa.c pkcs7.c crl2p7.c crl.c rsa.c dsa.c dsaparam.c x509.c genrsa.c s_server.c s_client.c speed.c s_time.c apps.c s_cb.c s_socket.c version.c sess_id.c ciphers.c apps.h progs.h s_apps.h testdsa.h testrsa.h 
+ALL=Makefile verify.c asn1pars.c req.c dgst.c dh.c enc.c gendh.c errstr.c ca.c pkcs7.c crl2p7.c crl.c rsa.c dsa.c dsaparam.c x509.c genrsa.c s_server.c s_client.c speed.c s_time.c apps.c s_cb.c s_socket.c version.c sess_id.c ciphers.c apps.h progs.h s_apps.h testdsa.h testrsa.h 
 A_OBJ=apps.o
 A_SRC=apps.c
 CC=cc
@@ -750,9 +883,9 @@ DLIBSSL=../libssl.a
 EXE=ssleay
 EXHEADER=
 EX_LIBS=
-E_EXE=verify asn1pars req dgst dh enc gendh gendsa errstr ca crl rsa dsa dsaparam x509 genrsa s_server s_client speed s_time version pkcs7 crl2pkcs7 sess_id ciphers
-E_OBJ=verify.o asn1pars.o req.o dgst.o dh.o enc.o gendh.o errstr.o ca.o gendsa.o pkcs7.o crl2p7.o crl.o rsa.o dsa.o dsaparam.o x509.o genrsa.o s_server.o s_client.o speed.o s_time.o apps.o s_cb.o s_socket.o version.o sess_id.o ciphers.o
-E_SRC=verify.c asn1pars.c req.c dgst.c dh.c enc.c gendh.c errstr.c ca.c gendsa.c pkcs7.c crl2p7.c crl.c rsa.c dsa.c dsaparam.c x509.c genrsa.c s_server.c s_client.c speed.c s_time.c apps.c s_cb.c s_socket.c version.c sess_id.c ciphers.c
+E_EXE=verify asn1pars req dgst dh enc gendh errstr ca crl rsa dsa dsaparam x509 genrsa s_server s_client speed s_time version pkcs7 crl2pkcs7 sess_id ciphers
+E_OBJ=verify.o asn1pars.o req.o dgst.o dh.o enc.o gendh.o errstr.o ca.o pkcs7.o crl2p7.o crl.o rsa.o dsa.o dsaparam.o x509.o genrsa.o s_server.o s_client.o speed.o s_time.o apps.o s_cb.o s_socket.o version.o sess_id.o ciphers.o
+E_SRC=verify.c asn1pars.c req.c dgst.c dh.c enc.c gendh.c errstr.c ca.c pkcs7.c crl2p7.c crl.c rsa.c dsa.c dsaparam.c x509.c genrsa.c s_server.c s_client.c speed.c s_time.c apps.c s_cb.c s_socket.c version.c sess_id.c ciphers.c
 GENERAL=Makefile
 HEADER=apps.h progs.h s_apps.h testdsa.h testrsa.h 
 INCLUDES=-I../include
@@ -766,16 +899,17 @@ PEX_LIBS=
 PROGS=ssleay.c
 RM=/bin/rm -f
 SCRIPTS=CA.sh der_chop
-SRC=verify.c asn1pars.c req.c dgst.c dh.c enc.c gendh.c errstr.c ca.c gendsa.c pkcs7.c crl2p7.c crl.c rsa.c dsa.c dsaparam.c x509.c genrsa.c s_server.c s_client.c speed.c s_time.c apps.c s_cb.c s_socket.c version.c sess_id.c ciphers.c
+SRC=verify.c asn1pars.c req.c dgst.c dh.c enc.c gendh.c errstr.c ca.c pkcs7.c crl2p7.c crl.c rsa.c dsa.c dsaparam.c x509.c genrsa.c s_server.c s_client.c speed.c s_time.c apps.c s_cb.c s_socket.c version.c sess_id.c ciphers.c
 SSLEAY=ssleay
 S_OBJ=s_cb.o s_socket.o
 S_SRC=s_cb.c s_socket.c
 TOP=..
 RELATIVE_DIRECTORY=
 RELATIVE_DIRECTORY=test
-ALL=Makefile.ssl bntest.c ideatest.c md2test.c md5test.c rc4test.c destest.c shatest.c sha1test.c mdc2test.c randtest.c dhtest.c rc2test.c bftest.c ssltest.c dsatest.c exptest.c 
+ALL=Makefile.ssl bntest.c ideatest.c md2test.c md5test.c hmactest.c rc2test.c rc4test.c rc5test.c destest.c shatest.c sha1test.c mdc2test.c rmdtest.c randtest.c dhtest.c casttest.c bftest.c ssltest.c dsatest.c exptest.c 
 BFTEST=bftest
 BNTEST=bntest
+CASTTEST=casttest
 CC=cc
 CFLAG=-g
 CFLAGS=-I../include -g
@@ -785,12 +919,13 @@ DIR=test
 DLIBCRYPTO=../libcrypto.a
 DLIBSSL=../libssl.a
 DSATEST=dsatest
-EXE=bntest ideatest md2test md5test rc4test destest shatest sha1test mdc2test randtest dhtest rc2test bftest ssltest exptest dsatest
+EXE=bntest ideatest md2test md5test hmactest rc2test rc4test rc5test destest shatest sha1test mdc2test rmdtest randtest dhtest bftest casttest ssltest exptest dsatest
 EXHEADER=
 EXPTEST=exptest
-EX_LIBS=-lnsl -lsocket
+EX_LIBS=
 GENERAL=Makefile.ssl
 HEADER=
+HMACTEST=hmactest
 IDEATEST=ideatest
 INCLUDES=-I../include
 INSTALLTOP=/usr/local/ssl
@@ -803,14 +938,16 @@ MD2TEST=md2test
 MD5TEST=md5test
 MDC2TEST=mdc2test
 METHTEST=methtest
-OBJ=bntest.o ideatest.o md2test.o md5test.o rc4test.o destest.o shatest.o sha1test.o mdc2test.o randtest.o dhtest.o rc2test.o bftest.o ssltest.o dsatest.o exptest.o
+OBJ=bntest.o ideatest.o md2test.o md5test.o hmactest.o rc2test.o rc4test.o rc5test.o destest.o shatest.o sha1test.o mdc2test.o rmdtest.o randtest.o dhtest.o casttest.o bftest.o ssltest.o dsatest.o exptest.o
 PEX_LIBS=
 RANDTEST=randtest
 RC2TEST=rc2test
 RC4TEST=rc4test
+RC5TEST=rc5test
+RMDTEST=rmdtest
 SHA1TEST=sha1test
 SHATEST=shatest
-SRC=bntest.c ideatest.c md2test.c md5test.c rc4test.c destest.c shatest.c sha1test.c mdc2test.c randtest.c dhtest.c rc2test.c bftest.c ssltest.c dsatest.c exptest.c
+SRC=bntest.c ideatest.c md2test.c md5test.c hmactest.c rc2test.c rc4test.c rc5test.c destest.c shatest.c sha1test.c mdc2test.c rmdtest.c randtest.c dhtest.c casttest.c bftest.c ssltest.c dsatest.c exptest.c
 SSLTEST=ssltest
 TOP=..
 RELATIVE_DIRECTORY=
index 676ece0..0f35202 100644 (file)
@@ -1,6 +1,6 @@
 #
 # Makefile for all the SSL related library routines and utilities
-VERSION        = 0.8.1a
+VERSION = 0.9.0a
 #
 # make install will install:
 #   libraries into $INSTALLTOP/lib
@@ -21,9 +21,9 @@ VERSION       = 0.8.1a
 #
 # If you must get hold of people directly (we much prefer the above
 # lists to be used if the question is of general interest!):
-#      Eric Young <eay@cryptsoft.com>
-#      Tim Hudson <tjh@cryptsoft.com>
-#      or both    <ssleay@cryptsoft.com>
+#       Eric Young <eay@cryptsoft.com>
+#       Tim Hudson <tjh@cryptsoft.com>
+#       or both    <ssleay@cryptsoft.com>
 #
 # The primary distribution of SSLeay is from
 # ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL
@@ -35,71 +35,124 @@ VERSION    = 0.8.1a
 # NO_RC4  - Define to build without the RC4 algorithm
 # NO_RC2  - Define to build without the RC2 algorithm
 # THREADS - Define when building with threads, you will probably also need any
-#          system defines as well, i.e. _REENTERANT for Solaris 2.[34]
+#           system defines as well, i.e. _REENTERANT for Solaris 2.[34]
 # TERMIO  - Define the termio terminal subsystem, needed if sgtty is missing.
 # TERMIOS - Define the termios terminal subsystem, Silicon Graphics.
 # LONGCRYPT - Define to use HPUX 10.x's long password modification to crypt(3).
 # DEVRANDOM - Give this the value of the 'random device' if your OS supports
-#          one.  32 bytes will be read from this when the random
-#          number generator is initalised.
+#           one.  32 bytes will be read from this when the random
+#           number generator is initalised.
 # SSL_ALLOW_ADH - define if you want the server to be able to use the
-#          SSLv3 anon-DH ciphers.
+#           SSLv3 anon-DH ciphers.
 # SSL_ALLOW_ENULL - define if you want the server to be able to use the
-#          NULL encryption ciphers.
+#           NULL encryption ciphers.
 #
 # LOCK_DEBUG - turns on lots of lock debug output :-)
 # REF_CHECK - turn on some xyz_free() assertions.
+# REF_PRINT - prints some stuff on structure free.
 # CRYPTO_MDEBUG - turns on my 'memory leak' detecting stuff
 # MFUNC - Make all Malloc/Free/Realloc calls call
-#      CRYPTO_malloc/CRYPTO_free/CRYPTO_realloc which can be setup to
-#      call application defined callbacks via CRYPTO_set_mem_functions()
+#       CRYPTO_malloc/CRYPTO_free/CRYPTO_realloc which can be setup to
+#       call application defined callbacks via CRYPTO_set_mem_functions()
+# MD5_ASM needs to be defined to use the x86 assembler for MD5
+# SHA1_ASM needs to be defined to use the x86 assembler for SHA1
+# RMD160_ASM needs to be defined to use the x86 assembler for RIPEMD160
 
 
 CC= cc
+#CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized -DMD5_ASM -DSHA1_ASM -DRMD160_ASM
 CFLAG= -O -DNOPROTO
-#CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized
 PEX_LIBS= -L. -L.. -L../.. -L../../..
 EX_LIBS= 
-#EX_LIBS= #-lRSAglue -lrsaref -lnsl -lsocket
 AR=ar r
 
 # Set BN_MULW to bn_mulw.o if you want to use the C version
-#BN_MULW= asm/x86-lnx.o
 BN_MULW= bn_mulw.o
-#BN_MULW= asm/x86-lnx.o                # elf
-#BN_MULW= asm/x86-sol.o                # solaris
-#BN_MULW= asm/x86-lnxa.o       # a.out, FreeBSD
-#BN_MULW= asm/x86-bsdi.o       # bsdi
-#BN_MULW= asm/alpha.o          # DEC Alpha
-#BN_MULW= asm/pa-risc2.o       # HP-UX PA-RISC
-#BN_MULW= asm/r3000.o          # SGI MIPS cpu
-#BN_MULW= asm/sparc.o          # Sun solaris/SunOS
-#BN_MULW= asm/x86nt32.o                # Windows 95/NT
-#BN_MULW= asm/x86w16.o         # 16 bit code for Windows 3.1/DOS
-#BN_MULW= asm/x86w32.o         # 32 bit code for Windows 3.1
+#BN_MULW= bn_mulw.o
+#BN_MULW= asm/bn86-elf.o        # elf, linux-elf
+#BN_MULW= asm/bn86-sol.o        # solaris
+#BN_MULW= asm/bn86-out.o        # a.out, FreeBSD
+#BN_MULW= asm/bn86bsdi.o        # bsdi
+#BN_MULW= asm/alpha.o           # DEC Alpha
+#BN_MULW= asm/pa-risc2.o        # HP-UX PA-RISC
+#BN_MULW= asm/r3000.o           # SGI MIPS cpu
+#BN_MULW= asm/sparc.o           # Sun solaris/SunOS
+#BN_MULW= asm/bn-win32.o                # Windows 95/NT
+#BN_MULW= asm/x86w16.o          # 16 bit code for Windows 3.1/DOS
+#BN_MULW= asm/x86w32.o          # 32 bit code for Windows 3.1
 
 # Set DES_ENC to des_enc.o if you want to use the C version
 #There are 4 x86 assember options.
 DES_ENC= des_enc.o fcrypt_b.o
-#DES_ENC= des_enc.o fcrypt_b.o         # C
-#DES_ENC= asm/dx86-elf.o asm/cx86-elf.o # elf
-#DES_ENC= asm/dx86-sol.o asm/cx86-sol.o        # solaris
-#DES_ENC= asm/dx86-out.o asm/cx86-out.o        # a.out, FreeBSD
-#DES_ENC= asm/dx86bsdi.o asm/cx86bsdi.o        # bsdi
+#DES_ENC= des_enc.o fcrypt_b.o          # C
+#DES_ENC= asm/dx86-elf.o asm/yx86-elf.o # elf
+#DES_ENC= asm/dx86-sol.o asm/yx86-sol.o # solaris
+#DES_ENC= asm/dx86-out.o asm/yx86-out.o # a.out, FreeBSD
+#DES_ENC= asm/dx86bsdi.o asm/yx86bsdi.o # bsdi
 
 # Set BF_ENC to bf_enc.o if you want to use the C version
 #There are 4 x86 assember options.
 BF_ENC= bf_enc.o
-#BF_ENC= bf_enc.o      # C
+#BF_ENC= bf_enc.o
 #BF_ENC= asm/bx86-elf.o # elf
-#BF_ENC= asm/bx86-sol.o        # solaris
-#BF_ENC= asm/bx86-out.o        # a.out, FreeBSD
-#BF_ENC= asm/bx86bsdi.o        # bsdi
+#BF_ENC= asm/bx86-sol.o # solaris
+#BF_ENC= asm/bx86-out.o # a.out, FreeBSD
+#BF_ENC= asm/bx86bsdi.o # bsdi
 
-DIRS=  crypto ssl rsaref apps test tools
+# Set CAST_ENC to c_enc.o if you want to use the C version
+#There are 4 x86 assember options.
+CAST_ENC= c_enc.o
+#CAST_ENC= c_enc.o
+#CAST_ENC= asm/cx86-elf.o # elf
+#CAST_ENC= asm/cx86-sol.o # solaris
+#CAST_ENC= asm/cx86-out.o # a.out, FreeBSD
+#CAST_ENC= asm/cx86bsdi.o # bsdi
+
+# Set RC4_ENC to rc4_enc.o if you want to use the C version
+#There are 4 x86 assember options.
+RC4_ENC= rc4_enc.o
+#RC4_ENC= rc4_enc.o
+#RC4_ENC= asm/rx86-elf.o # elf
+#RC4_ENC= asm/rx86-sol.o # solaris
+#RC4_ENC= asm/rx86-out.o # a.out, FreeBSD
+#RC4_ENC= asm/rx86bsdi.o # bsdi
+
+# Set RC5_ENC to rc5_enc.o if you want to use the C version
+#There are 4 x86 assember options.
+RC5_ENC= rc5_enc.o
+#RC5_ENC= rc5_enc.o
+#RC5_ENC= asm/r586-elf.o # elf
+#RC5_ENC= asm/r586-sol.o # solaris
+#RC5_ENC= asm/r586-out.o # a.out, FreeBSD
+#RC5_ENC= asm/r586bsdi.o # bsdi
+
+# Also need MD5_ASM defined
+MD5_ASM_OBJ= 
+#MD5_ASM_OBJ= asm/mx86-elf.o        # elf
+#MD5_ASM_OBJ= asm/mx86-sol.o        # solaris
+#MD5_ASM_OBJ= asm/mx86-out.o        # a.out, FreeBSD
+#MD5_ASM_OBJ= asm/mx86bsdi.o        # bsdi
+
+# Also need SHA1_ASM defined
+SHA1_ASM_OBJ= 
+#SHA1_ASM_OBJ= asm/sx86-elf.o       # elf
+#SHA1_ASM_OBJ= asm/sx86-sol.o       # solaris
+#SHA1_ASM_OBJ= asm/sx86-out.o       # a.out, FreeBSD
+#SHA1_ASM_OBJ= asm/sx86bsdi.o       # bsdi
+
+# Also need RMD160_ASM defined
+RMD160_ASM_OBJ= 
+#RMD160_ASM_OBJ= asm/rm86-elf.o       # elf
+#RMD160_ASM_OBJ= asm/rm86-sol.o       # solaris
+#RMD160_ASM_OBJ= asm/rm86-out.o       # a.out, FreeBSD
+#RMD160_ASM_OBJ= asm/rm86bsdi.o       # bsdi
+
+DIRS=   crypto ssl rsaref apps test tools
 # dirs in crypto to build
 SDIRS=  \
-       md sha mdc2 des rc4 rc2 idea bf bn rsa dsa dh \
+       md2 md5 sha mdc2 hmac ripemd \
+       des rc2 rc4 rc5 idea bf cast \
+       bn rsa dsa dh \
        buffer bio stack lhash rand err objects \
        evp pem asn1 x509 conf txt_db pkcs7
 
@@ -108,46 +161,46 @@ SDIRS=  \
 INSTALLTOP=/usr/local/ssl
 
 MAKEFILE= Makefile.ssl
-MAKE=    make -f Makefile.ssl
+MAKE=     make -f Makefile.ssl
 
 MAN1=1
 MAN3=3
 SHELL=/bin/sh
 
-TOP=   .
+TOP=    .
 ONEDIRS=out tmp
-EDIRS= times doc bugs util include certs ms shlib mt demos
-MISC=  COPYRIGHT Configure HISTORY.066 INSTALL Makefile.ssl Makefile \
-       README TODO HISTORY README.066 README.080 \
+EDIRS=  times doc bugs util include certs ms shlib mt demos perl dep
+MISC=   COPYRIGHT Configure HISTORY.066 INSTALL Makefile.ssl Makefile \
+       README TODO HISTORY README.066 README.080 README.090 \
        VERSION PROBLEMS MINFO makefile.one e_os.h \
-       MICROSOFT makevms.com
-WDIRS= windows
-LIBS=  libcrypto.a libssl.a 
-
-GENERAL=       Makefile
-BASENAME=      SSLeay
-NAME=          $(BASENAME)-$(VERSION)
-TARFILE=       $(NAME).tar
-WTARFILE=      $(NAME)-win.tar
-EX_HEADER=
-HEADER=                e_os.h
+       MICROSOFT makevms.com config PATENTS
+WDIRS=  windows
+LIBS=   libcrypto.a libssl.a 
+
+GENERAL=        Makefile
+BASENAME=       SSLeay
+NAME=           $(BASENAME)-$(VERSION)
+TARFILE=        $(NAME).tar
+WTARFILE=       $(NAME)-win.tar
+EXHEADER=       e_os.h
+HEADER=         e_os.h
 
 all:
        @for i in $(DIRS) ;\
        do \
        (cd $$i; echo "making $$i..."; \
-       $(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_MULW='${BN_MULW}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' SDIRS='${SDIRS}' AR='${AR}' all ); \
+       $(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_MULW='${BN_MULW}' 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}' SDIRS='${SDIRS}' AR='${AR}' all ); \
        done;
 
 sub_all:
        @for i in $(DIRS) ;\
        do \
        (cd $$i; echo "making $$i..."; \
-       $(MAKE) CC='${CC}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_MULW='${BN_MULW}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' AR='${AR}' all ); \
+       $(MAKE) CC='${CC}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_MULW='${BN_MULW}' 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}' all ); \
        done;
 
 clean:
-       /bin/rm -f *.o core a.out fluff *.map
+       /bin/rm -f shlib/*.o *.o core a.out fluff *.map
        @for i in $(DIRS) ;\
        do \
        (cd $$i; echo "cleaning $$i..."; \
@@ -158,14 +211,14 @@ clean:
        /bin/rm -f $(TARFILE)
        @for i in $(ONEDIRS) ;\
        do \
-       /bin/rm -f $$i/*; \
+       /bin/rm -fr $$i/*; \
        done
 
 makefile.one: files
        perl util/mk1mf.pl >makefile.one; \
        sh util/do_ms.sh
 
-files: MINFO
+files:  MINFO
        perl $(TOP)/util/files.pl Makefile.ssl > $(TOP)/MINFO
        @for i in $(DIRS) ;\
        do \
@@ -176,13 +229,14 @@ files:    MINFO
 links:
        /bin/rm -f Makefile;
        ./util/point.sh Makefile.ssl Makefile;
+       $(TOP)/util/mklink.sh include $(EXHEADER) ;
        @for i in $(DIRS) ;\
        do \
        (cd $$i; echo "making links in $$i..."; \
        $(MAKE) SDIRS='${SDIRS}' links ); \
        done;
        # @(cd apps; sh ./mklinks)
-       sh tools/c_rehash certs
+       @( SSLEAY="`pwd`/apps/ssleay"; export SSLEAY; sh tools/c_rehash certs )
 
 dclean:
        /bin/rm -f *.bak
@@ -195,11 +249,11 @@ dclean:
 rehash:
        @(PATH="`pwd`/apps:${PATH}"; sh tools/c_rehash certs)
 
-test:  tests
+test:   tests
 
 tests:
        (cd test; echo "testing $$i..."; \
-       $(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_MULW='${BN_MULW}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' SDIRS='${SDIRS}' AR='${AR}' tests );
+       $(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_MULW='${BN_MULW}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SDIRS='${SDIRS}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' tests );
        @apps/ssleay version -a
 
 depend:
@@ -242,8 +296,9 @@ tar:
        mv $(NAME) $(BASENAME) ) 
        gzip -f $(TARFILE)
 
-dist:  
+dist:   
        perl Configure dist
+       perl util/up_ver.pl ${VERSION}
        @$(MAKE) dist_pem_h
        @$(MAKE) SDIRS='${SDIRS}' clean
        @$(MAKE) SDIRS='${SDIRS}' dclean
@@ -267,7 +322,7 @@ install: all
        done
        @for i in $(LIBS) ;\
        do \
-       (       echo installing $$i; \
+       (       echo installing $$i; \
                cp $$i $(INSTALLTOP)/lib; \
                sh util/ranlib.sh $(INSTALLTOP)/lib/$$i; \
                chmod 644 $(INSTALLTOP)/lib/$$i ); \
diff --git a/PATENTS b/PATENTS
new file mode 100644 (file)
index 0000000..61423d0
--- /dev/null
+++ b/PATENTS
@@ -0,0 +1,9 @@
+RSA Data Security holds software patents on the RSA and RC5 algorithms.
+If there ciphers are used used inside the USA (and Japan?), you must contact
+RSA Data Security for licencing conditions.
+
+The IDEA algorithm is patented by XXXX and they should be contacted if that
+algorithm is to be used.
+
+RC4 is a trademark of RSA Data Security, so use of this label should perhaps
+only me used with RSA Data Security's permission.
diff --git a/README b/README
index 543a133..eaa7700 100644 (file)
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-               SSLeay 0.8.1b 29-Jun-1998
+               SSLeay 0.9.0b 29-Jun-1998
                Copyright (c) 1997, Eric Young
                All rights reserved.
 
diff --git a/README.090 b/README.090
new file mode 100644 (file)
index 0000000..634870d
--- /dev/null
@@ -0,0 +1,71 @@
+10-Apr-1998
+I said the next version would go out at easter, and so it shall.
+I expect a 0.9.1 will follow with portability fixes in the next few weeks.
+
+This is a quick, meet the deadline.  Look to ssl-users for comments on what
+is new etc.
+
+The state of play
+- TLSv1 - I need to do some explaining about how the methods interact.
+  The bad news is that SSLeay 0.8.x application will not roll back to
+  SSLv3, I suffed up.  0.8.x is rather pedantic about the '3.0' version
+  number.  Look at the 'no-tls' options in applications in the apps directory.
+- The perl5 stuff is very rough.  The SSL part does not work due to
+  reference count hassles in the BIO stuff.  I just have not had time to
+  look at it.  The cipher, digest and bignum stuff works though.  I just
+  need to clean up the API.
+- Lots of x86 assember.  I now have it for des, 3des, rc4, rc5, blowfish,
+  cast, md5, sha1 and ripemd160.  It has been tested on win32, linux (elf)
+  and FreeBSD (a.out).
+- As mentioned above, cast, rc5 and ripemd160 have been added.
+- A simple HMAC set of functions.
+- EX_DATA strucutre, which can be used by applications or other libraries
+  to tack arbitarty data against strucutures that include it.
+  You will probably have to see examples to see how to use it, and I will
+  elaberate on the ssl-users mailing list
+- RSA blinding.  If you fear timing attacks on RSA, you can turn on
+  blinding which defeats it.
+- From Tim Hudson, try running 'sh config' instead of 'perl Configure'.
+  I makes an educated guess as to what you are and then runs 'perl Configure'
+- The error stuff has been modified so arbitary strings can be taged
+  against an error message.  It is used in a few places to elaberate on
+  parameters that caused the error.
+
+Areas of work
+- The 16bit big-num assember needs a routine added.  The WIN16 and
+  WIN32 stuff is ok, but MS-DOS or 286 builds need the update.
+- Most of the bignum assember will not work.  There will be a function
+  missing, bn_add_words().  I need people to send me the C compiler output
+  for platforms I don't already have.  Currently, the assember is correct for
+  x86, win32, win16(386+), linux elf, FreeBSD a.out and sparc.
+- PKCS7, I have delusions of s/MIME.  I need to do a BIO interface.
+- perl5, it needs finishing
+- X509v3 extension.  I have some ideas, I just need to
+  implement them :-)
+- Public key methods.  I need to clean up the library internally so
+  public key methods are loaded is a similar way to symetric ciphers
+  and digests.  I also need to seperate out the digests from public
+  key methods.  This stuff is needed to support sortware patents, smaller
+  code size and hardware tokens.
+
+Anyway, this release gets out the bug fixes and TLS, but be warned, until
+all those old SSLeay 0.8.x based server get upgraded, you will need to
+connect with SSLv3 if TLSv1 fails.
+
+eric (about to go bushwalking for the 4 day easter break :-)
+
+PS Common problems
+- For Win32 build, use /MD to specify your libraries, or build SSLeay with
+  the same flags as your application.  Visual C stuffs up the malloc routines
+  if memory allocated by one memory model is freed by another.  FILE pointers
+  are a major cause of these problem.
+- If you are trying to use non-blocking IO and it is not working,
+  try 'ssleay s_client -help' and see if the -nbio option is listed.
+  For unixware, it has the non-block IO define in 'differnt' header file
+  and SSLeay will silently build without non-blocking IO calls (but for
+  unixware, the special header has been included).
+- -DL_ENDIAN.  For the message digests, some code needs to be turned off
+  in the C code when assember is used.  For x86, this means the L_ENDIAN
+  needs to defined when x86 -DSHA1_ASM is defined.  The reasons this is
+  not automagically done is because non-x86 assember could be bigendian.
+  For pure C code builds, the B_ENDIAN/L_ENDIAN flags are optional.
index 4fac51f..1cace40 100644 (file)
@@ -31,7 +31,7 @@ SCRIPTS=CA.sh der_chop
 
 EXE= $(SSLEAY)
 
-E_EXE= verify asn1pars req dgst dh enc gendh gendsa errstr ca crl \
+E_EXE= verify asn1pars req dgst dh enc gendh errstr ca crl \
        rsa dsa dsaparam \
        x509 genrsa s_server s_client speed \
        s_time version pkcs7 crl2pkcs7 sess_id ciphers
@@ -44,7 +44,7 @@ S_OBJ=        s_cb.o s_socket.o
 S_SRC= s_cb.c s_socket.c
 
 E_OBJ= verify.o asn1pars.o req.o dgst.o dh.o enc.o gendh.o errstr.o ca.o \
-       gendsa.o pkcs7.o crl2p7.o crl.o \
+       pkcs7.o crl2p7.o crl.o \
        rsa.o dsa.o dsaparam.o \
        x509.o genrsa.o s_server.o s_client.o speed.o \
        s_time.o $(A_OBJ) $(S_OBJ) version.o sess_id.o \
@@ -53,7 +53,7 @@ E_OBJ=        verify.o asn1pars.o req.o dgst.o dh.o enc.o gendh.o errstr.o ca.o \
 #      pem_mail.o
 
 E_SRC= verify.c asn1pars.c req.c dgst.c dh.c enc.c gendh.c errstr.c ca.c \
-       gendsa.c pkcs7.c crl2p7.c crl.c \
+       pkcs7.c crl2p7.c crl.c \
        rsa.c dsa.c dsaparam.c \
        x509.c genrsa.c s_server.c s_client.c speed.c \
        s_time.c $(A_SRC) $(S_SRC) version.c sess_id.c \
index 7c9510e..5f0c8fa 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/apps.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
 #include "apps.h"
 #undef NON_MAIN
 
-#ifdef WIN16
-#define APPS_WIN16
-#ifdef FLAT_BUILD
-#include "bss_file.c"
-#else
-#include "../crypto/bio/bss_file.c"
-#endif
+#ifdef WINDOWS
+#  include "bss_file.c"
 #endif
 
 #ifndef NOPROTO
index 528828c..25a9262 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/apps.h */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
 #ifndef HEADER_APPS_H
 #define HEADER_APPS_H
 
-#ifdef FLAT_INC
 #include "e_os.h"
-#else
-#include "../e_os.h"
-#endif
 
 #include "buffer.h"
 #include "bio.h"
 #include "crypto.h"
 #include "progs.h"
 
-#ifdef WIN16
+#ifdef NO_STDIO
 BIO_METHOD *BIO_s_file();
 #endif
 
index 111e282..3d38228 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/asn1pars.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -75,6 +75,7 @@
  * -i          - indent the details by depth
  * -offset     - where in the file to start
  * -length     - how many bytes to use
+ * -oid file   - extra oid decription file
  */
 
 #undef PROG
@@ -89,17 +90,16 @@ char **argv;
        long num;
        BIO *in=NULL,*out=NULL,*b64=NULL;
        int informat,indent=0;
-       char *infile,*str=NULL,*prog;
+       char *infile=NULL,*str=NULL,*prog,*oidfile=NULL;
        BUF_MEM *buf=NULL;
 
-       infile=NULL;
        informat=FORMAT_PEM;
 
        apps_startup();
 
        if (bio_err == NULL)
                if ((bio_err=BIO_new(BIO_s_file())) != NULL)
-                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE);
+                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 
        prog=argv[0];
        argc--;
@@ -120,6 +120,11 @@ char **argv;
                        {
                        indent=1;
                        }
+               else if (strcmp(*argv,"-oid") == 0)
+                       {
+                       if (--argc < 1) goto bad;
+                       oidfile= *(++argv);
+                       }
                else if (strcmp(*argv,"-offset") == 0)
                        {
                        if (--argc < 1) goto bad;
@@ -151,6 +156,7 @@ bad:
                BIO_printf(bio_err," -offset arg   offset into file\n");
                BIO_printf(bio_err," -length arg   lenth of section in file\n");
                BIO_printf(bio_err," -i            indent entries\n");
+               BIO_printf(bio_err," -oid file     file of extra oid definitions\n");
                goto end;
                }
 
@@ -163,7 +169,19 @@ bad:
                ERR_print_errors(bio_err);
                goto end;
                }
-       BIO_set_fp(out,stdout,BIO_NOCLOSE);
+       BIO_set_fp(out,stdout,BIO_NOCLOSE|BIO_FP_TEXT);
+
+       if (oidfile != NULL)
+               {
+               if (BIO_read_filename(in,oidfile) <= 0)
+                       {
+                       BIO_printf(bio_err,"problems opening %s\n",oidfile);
+                       ERR_print_errors(bio_err);
+                       goto end;
+                       }
+               OBJ_create_objects(in);
+               }
+
        if (infile == NULL)
                BIO_set_fp(in,stdin,BIO_NOCLOSE);
        else
@@ -214,6 +232,7 @@ end:
        if (ret != 0)
                ERR_print_errors(bio_err);
        if (buf != NULL) BUF_MEM_free(buf);
+       OBJ_cleanup();
        EXIT(ret);
        }
 
index 3e10d6c..a584836 100644 (file)
--- a/apps/ca.c
+++ b/apps/ca.c
@@ -1,5 +1,5 @@
 /* apps/ca.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -97,6 +97,7 @@
 #define ENV_PRIVATE_KEY                "private_key"
 #define ENV_RANDFILE           "RANDFILE"
 #define ENV_DEFAULT_DAYS       "default_days"
+#define ENV_DEFAULT_STARTDATE  "default_startdate"
 #define ENV_DEFAULT_CRL_DAYS   "default_crl_days"
 #define ENV_DEFAULT_CRL_HOURS  "default_crl_hours"
 #define ENV_DEFAULT_MD         "default_md"
@@ -139,6 +140,7 @@ static char *ca_usage[]={
 " -outdir dir     - Where to put output certificates\n",
 " -infiles ....   - The last argument, requests to process\n",
 " -spkac file     - File contains DN and signed public key and challenge\n",
+" -ss_cert file   - File contains a self signed cert to sign\n",
 " -preserveDN     - Don't re-order the DN\n",
 " -batch         - Don't ask questions\n",
 " -msie_hack     - msie modifications to handle all thos universal strings\n",
@@ -163,16 +165,19 @@ static int index_name_cmp(char **a,char **b);
 static BIGNUM *load_serial(char *serialfile);
 static int save_serial(char *serialfile, BIGNUM *serial);
 static int certify(X509 **xret, char *infile,EVP_PKEY *pkey,X509 *x509,
-       EVP_MD *dgst,STACK *policy,TXT_DB *db,BIGNUM *serial,int days,
-       int batch, STACK *extensions,int verbose);
+       EVP_MD *dgst,STACK *policy,TXT_DB *db,BIGNUM *serial,char *startdate,
+       int days, int batch, STACK *extensions,int verbose);
+static int certify_cert(X509 **xret, char *infile,EVP_PKEY *pkey,X509 *x509,
+       EVP_MD *dgst,STACK *policy,TXT_DB *db,BIGNUM *serial,char *startdate,
+       int days,int batch,STACK *extensions,int verbose);
 static int certify_spkac(X509 **xret, char *infile,EVP_PKEY *pkey,X509 *x509,
-       EVP_MD *dgst,STACK *policy,TXT_DB *db,BIGNUM *serial,int days,
-       STACK *extensions,int verbose);
+       EVP_MD *dgst,STACK *policy,TXT_DB *db,BIGNUM *serial,char *startdate,
+       int days,STACK *extensions,int verbose);
 static int fix_data(int nid, int *type);
 static void write_new_certificate(BIO *bp, X509 *x, int output_der);
 static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, EVP_MD *dgst,
-       STACK *policy, TXT_DB *db, BIGNUM *serial, int days, int batch,
-       int verbose, X509_REQ *req, STACK *extensions);
+       STACK *policy, TXT_DB *db, BIGNUM *serial, char *startdate,
+       int days, int batch, int verbose, X509_REQ *req, STACK *extensions);
 static int check_time_format(char *str);
 #else
 static STACK *load_extensions();
@@ -187,6 +192,7 @@ static int fix_data();
 static BIGNUM *load_serial();
 static int save_serial();
 static int certify();
+static int certify_cert();
 static int certify_spkac();
 static void write_new_certificate();
 static int do_body();
@@ -221,6 +227,7 @@ char **argv;
        char *certfile=NULL;
        char *infile=NULL;
        char *spkac_file=NULL;
+       char *ss_cert_file=NULL;
        EVP_PKEY *pkey=NULL;
        int output_der = 0;
        char *outfile=NULL;
@@ -228,6 +235,7 @@ char **argv;
        char *serialfile=NULL;
        char *extensions=NULL;
        BIGNUM *serial=NULL;
+       char *startdate=NULL;
        int days=0;
        int batch=0;
        X509 *x509=NULL;
@@ -263,7 +271,7 @@ EF_ALIGNMENT=0;
        preserve=0;
        if (bio_err == NULL)
                if ((bio_err=BIO_new(BIO_s_file())) != NULL)
-                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE);
+                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 
        argc--;
        argv++;
@@ -281,6 +289,11 @@ EF_ALIGNMENT=0;
                        if (--argc < 1) goto bad;
                        section= *(++argv);
                        }
+               else if (strcmp(*argv,"-startdate") == 0)
+                       {
+                       if (--argc < 1) goto bad;
+                       startdate= *(++argv);
+                       }
                else if (strcmp(*argv,"-days") == 0)
                        {
                        if (--argc < 1) goto bad;
@@ -352,6 +365,12 @@ EF_ALIGNMENT=0;
                        req=1;
                        break;
                        }
+               else if (strcmp(*argv, "-ss_cert") == 0)
+                       {
+                       if (--argc < 1) goto bad;
+                       ss_cert_file = *(++argv);
+                       req=1;
+                       }
                else if (strcmp(*argv, "-spkac") == 0)
                        {
                        if (--argc < 1) goto bad;
@@ -570,7 +589,7 @@ bad:
                }
        if (verbose)
                {
-               BIO_set_fp(out,stdout,BIO_NOCLOSE); /* cannot fail */
+               BIO_set_fp(out,stdout,BIO_NOCLOSE|BIO_FP_TEXT); /* cannot fail */
                TXT_DB_write(out,db);
                BIO_printf(bio_err,"%d entries loaded from the database\n",
                        db->data->num);
@@ -605,7 +624,7 @@ bad:
                                }
                        }
                else
-                       BIO_set_fp(Sout,stdout,BIO_NOCLOSE);
+                       BIO_set_fp(Sout,stdout,BIO_NOCLOSE|BIO_FP_TEXT);
                }
 
        if (req)
@@ -647,6 +666,22 @@ bad:
                                goto err;
                        }
 
+               if (startdate == NULL)
+                       {
+                       startdate=(char *)CONF_get_string(conf,section,
+                               ENV_DEFAULT_STARTDATE);
+                       if (startdate == NULL)
+                               startdate="today";
+                       else
+                               {
+                               if (!ASN1_UTCTIME_set_string(NULL,startdate))
+                                       {
+                                       BIO_printf(bio_err,"start date is invalid, it should be YYMMDDHHMMSS\n");
+                                       goto err;
+                                       }
+                               }
+                       }
+
                if (days == 0)
                        {
                        days=(int)CONF_get_number(conf,section,
@@ -685,7 +720,7 @@ bad:
                        {
                        total++;
                        j=certify_spkac(&x,spkac_file,pkey,x509,dgst,attribs,db,
-                               serial,days,extensions_sk,verbose);
+                               serial,startdate,days,extensions_sk,verbose);
                        if (j < 0) goto err;
                        if (j > 0)
                                {
@@ -704,11 +739,31 @@ bad:
                                        }
                                }
                        }
+               if (ss_cert_file != NULL)
+                       {
+                       total++;
+                       j=certify_cert(&x,ss_cert_file,pkey,x509,dgst,attribs,
+                               db,serial,startdate,days,batch,
+                               extensions_sk,verbose);
+                       if (j < 0) goto err;
+                       if (j > 0)
+                               {
+                               total_done++;
+                               BIO_printf(bio_err,"\n");
+                               if (!BN_add_word(serial,1)) goto err;
+                               if (!sk_push(cert_sk,(char *)x))
+                                       {
+                                       BIO_printf(bio_err,"Malloc failure\n");
+                                       goto err;
+                                       }
+                               }
+                       }
                if (infile != NULL)
                        {
                        total++;
                        j=certify(&x,infile,pkey,x509,dgst,attribs,db,
-                               serial,days,batch,extensions_sk,verbose);
+                               serial,startdate,days,batch,
+                               extensions_sk,verbose);
                        if (j < 0) goto err;
                        if (j > 0)
                                {
@@ -726,7 +781,8 @@ bad:
                        {
                        total++;
                        j=certify(&x,argv[i],pkey,x509,dgst,attribs,db,
-                               serial,days,batch,extensions_sk,verbose);
+                               serial,startdate,days,batch,
+                               extensions_sk,verbose);
                        if (j < 0) goto err;
                        if (j > 0)
                                {
@@ -798,7 +854,7 @@ bad:
                                {
                                for (k=0; k<j; k++)
                                        {
-                                       sprintf((char *)n,"%02X",*(p++));
+                                       sprintf((char *)n,"%02X",(unsigned char)*(p++));
                                        n+=2;
                                        }
                                }
@@ -893,6 +949,8 @@ bad:
                if (ci->issuer == NULL) goto err;
 
                X509_gmtime_adj(ci->lastUpdate,0);
+               if (ci->nextUpdate == NULL)
+                       ci->nextUpdate=ASN1_UTCTIME_new();
                X509_gmtime_adj(ci->nextUpdate,(crldays*24+crlhours)*60*60);
 
                for (i=0; i<sk_num(db->data); i++)
@@ -1092,7 +1150,7 @@ err:
        return(ret);
        }
 
-static int certify(xret,infile,pkey,x509,dgst,policy,db,serial,days,
+static int certify(xret,infile,pkey,x509,dgst,policy,db,serial,startdate,days,
        batch,extensions,verbose)
 X509 **xret;
 char *infile;
@@ -1102,6 +1160,7 @@ EVP_MD *dgst;
 STACK *policy;
 TXT_DB *db;
 BIGNUM *serial;
+char *startdate;
 int days;
 int batch;
 STACK *extensions;
@@ -1130,15 +1189,6 @@ int verbose;
 
        BIO_printf(bio_err,"Check that the request matches the signature\n");
 
-       if (    (req->req_info == NULL) ||
-               (req->req_info->pubkey == NULL) ||
-               (req->req_info->pubkey->public_key == NULL) ||
-               (req->req_info->pubkey->public_key->data == NULL))
-               {
-               BIO_printf(bio_err,"The certificate request appears to corrupted\n");
-               BIO_printf(bio_err,"It does not contain a public key\n");
-               goto err;
-               }
        if ((pktmp=X509_REQ_get_pubkey(req)) == NULL)
                {
                BIO_printf(bio_err,"error unpacking public key\n");
@@ -1160,8 +1210,8 @@ int verbose;
        else
                BIO_printf(bio_err,"Signature ok\n");
 
-       ok=do_body(xret,pkey,x509,dgst,policy,db,serial,days,batch,verbose,req,
-               extensions);
+       ok=do_body(xret,pkey,x509,dgst,policy,db,serial,startdate,
+               days,batch,verbose,req,extensions);
 
 err:
        if (req != NULL) X509_REQ_free(req);
@@ -1169,15 +1219,89 @@ err:
        return(ok);
        }
 
-static int do_body(xret,pkey,x509,dgst,policy,db,serial,days,batch,verbose,req,
-       extensions)
+static int certify_cert(xret,infile,pkey,x509,dgst,policy,db,serial,startdate,
+       days, batch,extensions,verbose)
 X509 **xret;
+char *infile;
 EVP_PKEY *pkey;
 X509 *x509;
 EVP_MD *dgst;
 STACK *policy;
 TXT_DB *db;
 BIGNUM *serial;
+char *startdate;
+int days;
+int batch;
+STACK *extensions;
+int verbose;
+       {
+       X509 *req=NULL;
+       X509_REQ *rreq=NULL;
+       BIO *in=NULL;
+       EVP_PKEY *pktmp=NULL;
+       int ok= -1,i;
+
+       in=BIO_new(BIO_s_file());
+
+       if (BIO_read_filename(in,infile) <= 0)
+               {
+               perror(infile);
+               goto err;
+               }
+       if ((req=PEM_read_bio_X509(in,NULL,NULL)) == NULL)
+               {
+               BIO_printf(bio_err,"Error reading self signed certificate in %s\n",infile);
+               goto err;
+               }
+       if (verbose)
+               X509_print(bio_err,req);
+
+       BIO_printf(bio_err,"Check that the request matches the signature\n");
+
+       if ((pktmp=X509_get_pubkey(req)) == NULL)
+               {
+               BIO_printf(bio_err,"error unpacking public key\n");
+               goto err;
+               }
+       i=X509_verify(req,pktmp);
+       if (i < 0)
+               {
+               ok=0;
+               BIO_printf(bio_err,"Signature verification problems....\n");
+               goto err;
+               }
+       if (i == 0)
+               {
+               ok=0;
+               BIO_printf(bio_err,"Signature did not match the certificate request\n");
+               goto err;
+               }
+       else
+               BIO_printf(bio_err,"Signature ok\n");
+
+       if ((rreq=X509_to_X509_REQ(req,NULL,EVP_md5())) == NULL)
+               goto err;
+
+       ok=do_body(xret,pkey,x509,dgst,policy,db,serial,startdate,days,
+               batch,verbose,rreq,extensions);
+
+err:
+       if (rreq != NULL) X509_REQ_free(rreq);
+       if (req != NULL) X509_free(req);
+       if (in != NULL) BIO_free(in);
+       return(ok);
+       }
+
+static int do_body(xret,pkey,x509,dgst,policy,db,serial,startdate,days,
+       batch,verbose,req, extensions)
+X509 **xret;
+EVP_PKEY *pkey;
+X509 *x509;
+EVP_MD *dgst;
+STACK *policy;
+TXT_DB *db;
+BIGNUM *serial;
+char *startdate;
 int days;
 int batch;
 int verbose;
@@ -1185,7 +1309,7 @@ X509_REQ *req;
 STACK *extensions;
        {
        X509_NAME *name=NULL,*CAname=NULL,*subject=NULL;
-       ASN1_UTCTIME *tm;
+       ASN1_UTCTIME *tm,*tmptm;
        ASN1_STRING *str,*str2;
        ASN1_OBJECT *obj;
        X509 *ret=NULL;
@@ -1200,6 +1324,13 @@ STACK *extensions;
        char *row[DB_NUMBER],**rrow,**irow=NULL;
        char buf[25],*pbuf;
 
+       tmptm=ASN1_UTCTIME_new();
+       if (tmptm == NULL)
+               {
+               BIO_printf(bio_err,"malloc error\n");
+               return(0);
+               }
+
        for (i=0; i<DB_NUMBER; i++)
                row[i]=NULL;
 
@@ -1471,8 +1602,16 @@ again2:
                goto err;
 
        BIO_printf(bio_err,"Certificate is to be certified until ");
-       X509_gmtime_adj(X509_get_notBefore(ret),0);
-       X509_gmtime_adj(X509_get_notAfter(ret),(long)60*60*24*days);
+       if (strcmp(startdate,"today") == 0)
+               {
+               X509_gmtime_adj(X509_get_notBefore(ret),0);
+               X509_gmtime_adj(X509_get_notAfter(ret),(long)60*60*24*days);
+               }
+       else
+               {
+               /*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/
+               ASN1_UTCTIME_set_string(X509_get_notBefore(ret),startdate);
+               }
        ASN1_UTCTIME_print(bio_err,X509_get_notAfter(ret));
        BIO_printf(bio_err," (%d days)\n",days);
 
@@ -1623,8 +1762,8 @@ int output_der;
        BIO_puts(bp,"\n");
        }
 
-static int certify_spkac(xret,infile,pkey,x509,dgst,policy,db,serial,days,
-       extensions,verbose)
+static int certify_spkac(xret,infile,pkey,x509,dgst,policy,db,serial,
+       startdate,days,extensions,verbose)
 X509 **xret;
 char *infile;
 EVP_PKEY *pkey;
@@ -1633,6 +1772,7 @@ EVP_MD *dgst;
 STACK *policy;
 TXT_DB *db;
 BIGNUM *serial;
+char *startdate;
 int days;
 STACK *extensions;
 int verbose;
@@ -1778,8 +1918,8 @@ int verbose;
        BIO_printf(bio_err,"Signature ok\n");
 
        X509_REQ_set_pubkey(req,pktmp);
-       ok=do_body(xret,pkey,x509,dgst,policy,db,serial,days,1,verbose,req,
-               extensions);
+       ok=do_body(xret,pkey,x509,dgst,policy,db,serial,startdate,
+               days,1,verbose,req,extensions);
 err:
        if (req != NULL) X509_REQ_free(req);
        if (parms != NULL) CONF_free(parms);
diff --git a/apps/cert.pem b/apps/cert.pem
new file mode 100644 (file)
index 0000000..de4a77a
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBoDCCAUoCAQAwDQYJKoZIhvcNAQEEBQAwYzELMAkGA1UEBhMCQVUxEzARBgNV
+BAgTClF1ZWVuc2xhbmQxGjAYBgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMSMwIQYD
+VQQDExpTZXJ2ZXIgdGVzdCBjZXJ0ICg1MTIgYml0KTAeFw05NzA5MDkwMzQxMjZa
+Fw05NzEwMDkwMzQxMjZaMF4xCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0
+YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxFzAVBgNVBAMT
+DkVyaWMgdGhlIFlvdW5nMFEwCQYFKw4DAgwFAANEAAJBALVEqPODnpI4rShlY8S7
+tB713JNvabvn6Gned7zylwLLiXQAo/PAT6mfdWPTyCX9RlId/Aroh1ou893BA32Q
+sggwDQYJKoZIhvcNAQEEBQADQQCU5SSgapJSdRXJoX+CpCvFy+JVh9HpSjCpSNKO
+19raHv98hKAUJuP9HyM+SUsffO6mAIgitUaqW8/wDMePhEC3
+-----END CERTIFICATE-----
index 16ff2b4..867196e 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/ciphers.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -59,7 +59,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#ifdef WIN16
+#ifdef NO_STDIO
 #define APPS_WIN16
 #endif
 #include "apps.h"
index 9642ee5..2c18374 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/crl.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -109,7 +109,6 @@ char **argv;
        BIO *out=NULL;
        int informat,outformat;
        char *infile=NULL,*outfile=NULL;
-       char *str=NULL;
        int hash=0,issuer=0,lastupdate=0,nextupdate=0,noout=0;
        char **pp,buf[256];
 
@@ -117,7 +116,7 @@ char **argv;
 
        if (bio_err == NULL)
                if ((bio_err=BIO_new(BIO_s_file())) != NULL)
-                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE);
+                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 
        if (bio_out == NULL)
                if ((bio_out=BIO_new(BIO_s_file())) != NULL)
@@ -209,7 +208,7 @@ bad:
                        if (issuer == i)
                                {
                                X509_NAME_oneline(x->crl->issuer,buf,256);
-                               fprintf(stdout,"issuer= %s\n",str);
+                               fprintf(stdout,"issuer= %s\n",buf);
                                }
 
                        if (hash == i)
@@ -226,7 +225,10 @@ bad:
                        if (nextupdate == i)
                                {
                                fprintf(stdout,"nextUpdate=");
-                               ASN1_UTCTIME_print(bio_out,x->crl->nextUpdate);
+                               if (x->crl->nextUpdate != NULL)
+                                       ASN1_UTCTIME_print(bio_out,x->crl->nextUpdate);
+                               else
+                                       fprintf(stdout,"NONE");
                                fprintf(stdout,"\n");
                                }
                        }
@@ -259,8 +261,10 @@ bad:
        else if (outformat == FORMAT_TEXT)
                {
                X509_REVOKED *r;
+               STACK *sk;
 
-               while ((r=(X509_REVOKED *)sk_pop(x->crl->revoked)) != NULL)
+               sk=sk_dup(x->crl->revoked);
+               while ((r=(X509_REVOKED *)sk_pop(sk)) != NULL)
                        {
                        fprintf(stdout,"revoked: serialNumber=");
                        i2a_ASN1_INTEGER(out,r->serialNumber);
@@ -268,6 +272,7 @@ bad:
                        ASN1_UTCTIME_print(bio_out,r->revocationDate);
                        fprintf(stdout,"\n");
                        }
+               sk_free(sk);
                i=1;
                }
        else    
index 04bb1a1..82a7829 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/crl2p7.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -106,7 +106,7 @@ char **argv;
 
        if (bio_err == NULL)
                if ((bio_err=BIO_new(BIO_s_file())) != NULL)
-                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE);
+                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 
        infile=NULL;
        outfile=NULL;
index 6d7a178..eea291d 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/dgst.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -103,7 +103,7 @@ char **argv;
                }
        if (bio_err == NULL)
                if ((bio_err=BIO_new(BIO_s_file())) != NULL)
-                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE);
+                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 
        /* first check the program name */
         program_name(argv[0],pname,PROG_NAME_SIZE);
@@ -135,16 +135,16 @@ char **argv;
                BIO_printf(bio_err,"unknown option '%s'\n",*argv);
                BIO_printf(bio_err,"options are\n");
                BIO_printf(bio_err,"-c   to output the digest with separating colons\n");
-               BIO_printf(bio_err,"-c   to output debug info\n");
-               BIO_printf(bio_err,"-%3s to use the %s message digest alogorithm (default)\n",
+               BIO_printf(bio_err,"-d   to output debug info\n");
+               BIO_printf(bio_err,"-%3s to use the %s message digest algorithm (default)\n",
                        LN_md5,LN_md5);
-               BIO_printf(bio_err,"-%3s to use the %s message digest alogorithm\n",
+               BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
                        LN_md2,LN_md2);
-               BIO_printf(bio_err,"-%3s to use the %s message digest alogorithm\n",
+               BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
                        LN_sha1,LN_sha1);
-               BIO_printf(bio_err,"-%3s to use the %s message digest alogorithm\n",
+               BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
                        LN_sha,LN_sha);
-               BIO_printf(bio_err,"-%3s to use the %s message digest alogorithm\n",
+               BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
                        LN_mdc2,LN_mdc2);
                err=1;
                goto end;
index 8a3bcfb..bbf445e 100644 (file)
--- a/apps/dh.c
+++ b/apps/dh.c
@@ -1,5 +1,5 @@
 /* apps/dh.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -95,7 +95,7 @@ char **argv;
 
        if (bio_err == NULL)
                if ((bio_err=BIO_new(BIO_s_file())) != NULL)
-                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE);
+                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 
        infile=NULL;
        outfile=NULL;
index 585116a..fbd85a4 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/dsa.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -99,7 +99,7 @@ char **argv;
 
        if (bio_err == NULL)
                if ((bio_err=BIO_new(BIO_s_file())) != NULL)
-                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE);
+                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 
        infile=NULL;
        outfile=NULL;
diff --git a/apps/dsap.pem b/apps/dsap.pem
new file mode 100644 (file)
index 0000000..d4dfdb3
--- /dev/null
@@ -0,0 +1,6 @@
+-----BEGIN DSA PARAMETERS-----
+MIGcAkEA+ZiKEvZmc9MtnaFZh4NiZ3oZS4J1PHvPrm9MXj5ntVheDPkdmBDTncya
+GAJcMjwsyB/GvLDGd6yGCw/8eF+09wIVAK3VagOxGd/Q4Af5NbxR5FB7CXEjAkA2
+t/q7HgVLi0KeKvcDG8BRl3wuy7bCvpjgtWiJc/tpvcuzeuAayH89UofjAGueKjXD
+ADiRffvSdhrNw5dkqdql
+-----END DSA PARAMETERS-----
index e9485c0..6e99289 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/dsaparam.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -83,7 +83,7 @@
  */
 
 #ifndef NOPROTO
-static void MS_CALLBACK dsa_cb(int p, int n);
+static void MS_CALLBACK dsa_cb(int p, int n, char *arg);
 #else
 static void MS_CALLBACK dsa_cb();
 #endif
@@ -104,7 +104,7 @@ char **argv;
 
        if (bio_err == NULL)
                if ((bio_err=BIO_new(BIO_s_file())) != NULL)
-                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE);
+                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 
        infile=NULL;
        outfile=NULL;
@@ -217,7 +217,8 @@ bad:
 
                BIO_printf(bio_err,"Generating DSA parameters, %d bit long prime\n",num);
                BIO_printf(bio_err,"This could take some time\n");
-               dsa=DSA_generate_parameters(num,NULL,0,NULL,NULL,dsa_cb);
+               dsa=DSA_generate_parameters(num,NULL,0,NULL,NULL,
+                       dsa_cb,(char *)bio_err);
                }
        else if (informat == FORMAT_ASN1)
                dsa=d2i_DSAparams_bio(in,NULL);
@@ -322,9 +323,10 @@ end:
        EXIT(ret);
        }
 
-static void MS_CALLBACK dsa_cb(p, n)
+static void MS_CALLBACK dsa_cb(p, n, arg)
 int p;
 int n;
+char *arg;
        {
        char c='*';
 
@@ -332,8 +334,8 @@ int n;
        if (p == 1) c='+';
        if (p == 2) c='*';
        if (p == 3) c='\n';
-       BIO_write(bio_err,&c,1);
-       BIO_flush(bio_err);
+       BIO_write((BIO *)arg,&c,1);
+       BIO_flush((BIO *)arg);
 #ifdef LINT
        p=n;
 #endif
index c7a59ca..37d5dcb 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/eay.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
index d7c9909..c00d520 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/enc.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -96,7 +96,7 @@ char **argv;
        char *str=NULL;
        char *hkey=NULL,*hiv=NULL;
        int enc=1,printkey=0,i,base64=0;
-       int debug=0;
+       int debug=0,olb64=0;
        EVP_CIPHER *cipher=NULL,*c;
        char *inf=NULL,*outf=NULL;
        BIO *in=NULL,*out=NULL,*b64=NULL,*benc=NULL,*rbio=NULL,*wbio=NULL;
@@ -107,7 +107,7 @@ char **argv;
 
        if (bio_err == NULL)
                if ((bio_err=BIO_new(BIO_s_file())) != NULL)
-                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE);
+                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 
        /* first check the program name */
         program_name(argv[0],pname,PROG_NAME_SIZE);
@@ -148,6 +148,8 @@ char **argv;
                        debug=1;
                else if (strcmp(*argv,"-P") == 0)
                        printkey=2;
+               else if (strcmp(*argv,"-A") == 0)
+                       olb64=1;
                else if (strcmp(*argv,"-a") == 0)
                        base64=1;
                else if (strcmp(*argv,"-base64") == 0)
@@ -281,6 +283,18 @@ bad:
                                LN_bf_cfb64, LN_bf_ofb64);
                        BIO_printf(bio_err," -%-4s (%s)\n","bf", LN_bf_cbc);
 #endif
+#ifndef NO_BLOWFISH
+                       BIO_printf(bio_err," -%-12s -%-12s -%-12s -%-12s",
+                               LN_cast5_ecb, LN_cast5_cbc,
+                               LN_cast5_cfb64, LN_cast5_ofb64);
+                       BIO_printf(bio_err," -%-4s (%s)\n","cast", LN_cast5_cbc);
+#endif
+#ifndef NO_BLOWFISH
+                       BIO_printf(bio_err," -%-12s -%-12s -%-12s -%-12s",
+                               LN_rc5_ecb, LN_rc5_cbc,
+                               LN_rc5_cfb64, LN_rc5_ofb64);
+                       BIO_printf(bio_err," -%-4s (%s)\n","rc5", LN_rc5_cbc);
+#endif
                        goto end;
                        }
                argc--;
@@ -463,6 +477,8 @@ bad:
                        BIO_set_callback(b64,BIO_debug_callback);
                        BIO_set_callback_arg(b64,bio_err);
                        }
+               if (olb64)
+                       BIO_set_flags(b64,BIO_FLAGS_BASE64_NO_NL);
                if (enc)
                        wbio=BIO_push(b64,wbio);
                else
index 6d0f9d1..d2b2b3f 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/errstr.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -80,7 +80,7 @@ char **argv;
 
        if (bio_err == NULL)
                if ((bio_err=BIO_new(BIO_s_file())) != NULL)
-                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE);
+                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 
        SSL_load_error_strings();
 
diff --git a/apps/ext.v3 b/apps/ext.v3
new file mode 100644 (file)
index 0000000..87ee8e6
--- /dev/null
@@ -0,0 +1,2 @@
+2.99999.3      SET.ex3         SET x509v3 extension 3
+
index 237dd4c..cd05fe6 100644 (file)
@@ -57,14 +57,16 @@ foreach ("md2","md5","sha","sha1","mdc2")
 
 foreach (
        "base64",
-       "des", "des3", "desx", "idea", "rc4", "rc2","bf",
+       "des", "des3", "desx", "idea", "rc4", "rc2","bf","cast","rc5",
        "des-ecb", "des-ede",    "des-ede3",
        "des-cbc", "des-ede-cbc","des-ede3-cbc",
        "des-cfb", "des-ede-cfb","des-ede3-cfb",
        "des-ofb", "des-ede-ofb","des-ede3-ofb",
        "idea-cbc","idea-ecb",   "idea-cfb", "idea-ofb",
        "rc2-cbc", "rc2-ecb",    "rc2-cfb",  "rc2-ofb",
-       "bf-cbc",  "bf-ecb",     "bf-cfb",   "bf-ofb")
+       "bf-cbc",  "bf-ecb",     "bf-cfb",   "bf-ofb",
+       "cast5-cbc","cast5-ecb", "cast5-cfb","cast5-ofb",
+       "cast-cbc", "rc5-cbc",   "rc5-ecb",  "rc5-cfb",  "rc5-ofb")
        {
        push(@files,$_);
 
@@ -74,6 +76,8 @@ foreach (
        elsif ($_ =~ /rc4/)  { $t="#ifndef NO_RC4\n${t}#endif\n"; }
        elsif ($_ =~ /rc2/)  { $t="#ifndef NO_RC2\n${t}#endif\n"; }
        elsif ($_ =~ /bf/)   { $t="#ifndef NO_BLOWFISH\n${t}#endif\n"; }
+       elsif ($_ =~ /cast/) { $t="#ifndef NO_CAST\n${t}#endif\n"; }
+       elsif ($_ =~ /rc5/)  { $t="#ifndef NO_RC5\n${t}#endif\n"; }
        print $t;
        }
 
index b7b6d0f..2790f17 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/gendh.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -74,7 +74,7 @@
 #define PROG gendh_main
 
 #ifndef NOPROTO
-static void MS_CALLBACK dh_cb(int p, int n);
+static void MS_CALLBACK dh_cb(int p, int n, char *arg);
 static long dh_load_rand(char *names);
 #else
 static void MS_CALLBACK dh_cb();
@@ -97,7 +97,7 @@ char **argv;
 
        if (bio_err == NULL)
                if ((bio_err=BIO_new(BIO_s_file())) != NULL)
-                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE);
+                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 
        argv++;
        argc--;
@@ -171,7 +171,7 @@ bad:
 
        BIO_printf(bio_err,"Generating DH parameters, %d bit long strong prime, generator of %d\n",num,g);
        BIO_printf(bio_err,"This is going to take a long time\n");
-       dh=DH_generate_parameters(num,g,dh_cb);
+       dh=DH_generate_parameters(num,g,dh_cb,(char *)bio_err);
                
        if (dh == NULL) goto end;
 
@@ -191,9 +191,10 @@ end:
        EXIT(ret);
        }
 
-static void MS_CALLBACK dh_cb(p, n)
+static void MS_CALLBACK dh_cb(p,n,arg)
 int p;
 int n;
+char *arg;
        {
        char c='*';
 
@@ -201,8 +202,8 @@ int n;
        if (p == 1) c='+';
        if (p == 2) c='*';
        if (p == 3) c='\n';
-       BIO_write(bio_err,&c,1);
-       BIO_flush(bio_err);
+       BIO_write((BIO *)arg,&c,1);
+       BIO_flush((BIO *)arg);
 #ifdef LINT
        p=n;
 #endif
index 35f299a..e0e5afa 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/gendsa.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -94,7 +94,7 @@ char **argv;
 
        if (bio_err == NULL)
                if ((bio_err=BIO_new(BIO_s_file())) != NULL)
-                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE);
+                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 
        argv++;
        argc--;
@@ -135,7 +135,7 @@ bad:
                }
 
        in=BIO_new(BIO_s_file());
-       if (!(BIO_read_filename(in,"r")))
+       if (!(BIO_read_filename(in,"dsaparams")))
                {
                perror(dsaparams);
                goto end;
index 9731754..cdba618 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/genrsa.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -75,7 +75,7 @@
 #define PROG genrsa_main
 
 #ifndef NOPROTO
-static void MS_CALLBACK genrsa_cb(int p, int n);
+static void MS_CALLBACK genrsa_cb(int p, int n, char *arg);
 static long gr_load_rand(char *names);
 #else
 static void MS_CALLBACK genrsa_cb();
@@ -101,7 +101,7 @@ char **argv;
 
        if (bio_err == NULL)
                if ((bio_err=BIO_new(BIO_s_file())) != NULL)
-                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE);
+                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
        if ((out=BIO_new(BIO_s_file())) == NULL)
                {
                BIO_printf(bio_err,"unable to creat BIO for output\n");
@@ -201,7 +201,7 @@ bad:
 
        BIO_printf(bio_err,"Generating RSA private key, %d bit long modulus\n",
                num);
-       rsa=RSA_generate_key(num,f4,genrsa_cb);
+       rsa=RSA_generate_key(num,f4,genrsa_cb,(char *)bio_err);
                
        if (randfile == NULL)
                BIO_printf(bio_err,"unable to write 'random state'\n");
@@ -234,9 +234,10 @@ err:
        EXIT(ret);
        }
 
-static void MS_CALLBACK genrsa_cb(p, n)
+static void MS_CALLBACK genrsa_cb(p, n, arg)
 int p;
 int n;
+char *arg;
        {
        char c='*';
 
@@ -244,8 +245,8 @@ int n;
        if (p == 1) c='+';
        if (p == 2) c='*';
        if (p == 3) c='\n';
-       BIO_write(bio_err,&c,1);
-       BIO_flush(bio_err);
+       BIO_write((BIO *)arg,&c,1);
+       BIO_flush((BIO *)arg);
 #ifdef LINT
        p=n;
 #endif
index 6423613..55a56b3 100644 (file)
@@ -1,5 +1,5 @@
 #!/bin/sh
-for i in verify asn1parse req dgst dh enc gendh gendsa errstr ca crl rsa dsa dsaparam x509 genrsa s_server s_client speed s_time version pkcs7 crl2pkcs7 sess_id ciphers md2 md5 sha sha1 mdc2 base64 des des3 desx idea rc4 rc2 bf des-ecb des-ede des-ede3 des-cbc des-ede-cbc des-ede3-cbc des-cfb des-ede-cfb des-ede3-cfb des-ofb des-ede-ofb des-ede3-ofb idea-cbc idea-ecb idea-cfb idea-ofb rc2-cbc rc2-ecb rc2-cfb rc2-ofb bf-cbc bf-ecb bf-cfb bf-ofb 
+for i in verify asn1parse req dgst dh enc gendh errstr ca crl rsa dsa dsaparam x509 genrsa s_server s_client speed s_time version pkcs7 crl2pkcs7 sess_id ciphers md2 md5 sha sha1 mdc2 base64 des des3 desx idea rc4 rc2 bf cast rc5 des-ecb des-ede des-ede3 des-cbc des-ede-cbc des-ede3-cbc des-cfb des-ede-cfb des-ede3-cfb des-ofb des-ede-ofb des-ede3-ofb idea-cbc idea-ecb idea-cfb idea-ofb rc2-cbc rc2-ecb rc2-cfb rc2-ofb bf-cbc bf-ecb bf-cfb bf-ofb cast5-cbc cast5-ecb cast5-cfb cast5-ofb cast-cbc rc5-cbc rc5-ecb rc5-cfb rc5-ofb 
 do
 echo making symlink for $i
 /bin/rm -f $i
index f69f14a..eac411b 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/ssleay.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
  * [including the GNU Public Licence.]
  */
 
-#define DEBUG
+#ifndef DEBUG
+#undef DEBUG
+#endif
 
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
-#ifdef WIN16
-#define APPS_WIN16
-#endif
 #include "bio.h"
 #include "crypto.h"
 #include "lhash.h"
 #include "s_apps.h"
 #include "err.h"
 
+/*
+#ifdef WINDOWS
+#include "bss_file.c"
+#endif
+*/
 
 #ifndef NOPROTO
 static unsigned long MS_CALLBACK hash(FUNCTION *a);
 static int MS_CALLBACK cmp(FUNCTION *a,FUNCTION *b);
 static LHASH *prog_init(void );
 static int do_cmd(LHASH *prog,int argc,char *argv[]);
-static void sig_stop(int i);
 #else
 static unsigned long MS_CALLBACK hash();
 static int MS_CALLBACK cmp();
 static LHASH *prog_init();
 static int do_cmd();
-static void sig_stop();
 #endif
 
 LHASH *config=NULL;
@@ -143,7 +145,7 @@ char *Argv[];
 
        if (bio_err == NULL)
                if ((bio_err=BIO_new(BIO_s_file())) != NULL)
-                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE);
+                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 
        CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
 
@@ -224,6 +226,7 @@ char *Argv[];
                        }
                if (ret != 0)
                        BIO_printf(bio_err,"error in %s\n",argv[0]);
+               BIO_flush(bio_err);
                }
        BIO_printf(bio_err,"bad exit\n");
        ret=1;
index e48c358..64e04ac 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/pem_mail.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
index 47bd756..4105dbd 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/pkcs7.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -87,7 +87,9 @@ char **argv;
        {
        PKCS7 *p7=NULL;
        int i,badops=0;
+#if !defined(NO_DES) || !defined(NO_IDEA)
        EVP_CIPHER *enc=NULL;
+#endif
        BIO *in=NULL,*out=NULL;
        int informat,outformat;
        char *infile,*outfile,*prog,buf[256];
@@ -98,7 +100,7 @@ char **argv;
 
        if (bio_err == NULL)
                if ((bio_err=BIO_new(BIO_s_file())) != NULL)
-                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE);
+                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 
        infile=NULL;
        outfile=NULL;
index 8308004..b567e41 100644 (file)
@@ -1,15 +1,11 @@
 -----BEGIN DSA PRIVATE KEY-----
 Proc-Type: 4,ENCRYPTED
-DEK-Info: DES-EDE3-CBC,2221AF3DAA41AB24
+DEK-Info: DES-EDE3-CBC,1BF8E9CE60B9941C
 
-IOx3ubYOV2SETDSWiuG4bsioEl7jA2CulYKAJvIfy8z5GI+08NwptNOUqbMhDV1s
-156KhUvBvG48uz9mxcOyHjZRD0HNixGNMXDaFJSajINFoGtmYZRc20DEoY6buzsi
-E76GK95cJHsjJsdNrdggIJRTaiLayLzsMFVDrKhmaJVTKlBpcdnFM4BEKSyD2H5N
-OllrfK6GgmlH+WVXU9AlXoy5Jm0YXT7i5bPCB5eDDL/GkTISFHZsnEYpHCrMARsw
-5V15dYEwFc6NA/psBGk1qS2CHVIOYNcfCfndR90+UCos+rMBkcQDfvxI95+L8dbS
-ONJJrUqiCHV/zYSE+aXZN001mJJLvHOW65YbgdwSOfiowcv7HPbFrGdwOOJvSEx2
-d571YvqfsaDojwR5KLgfFDSwVBwzo/mfcFeVrT9Q8LwPL4/dwwoElWTmYbSaW0uZ
-Ov73xRUbVGa5LTJoGbFVMvjpmEO2qtBsx7vq9AT8v8gDzYSuEafyC7d0h85EIfTJ
-wPlIN3xKTiqFpp/eFCkdKqNn826NoC1TgQuoCBIrJ8gZsIr1l8R+iAuGxKGPASoF
-cyqnpcqGgaaTrxnk9cX4dQ==
+JuhgIvVRrxCRedTTC9ABlIByMsq6IcpqyDZwOPS4rxTtVWvjj1BMHtoCebK7CKMZ
+dLsvztfSkdAYmTGK62C73RwlmnMxB4JXhTLaoAX2eL9iylojTWRg+/0Y4rbIKmUe
+hrmwrHld7vnfE9XHL8OoaFp6aJ8BB9B8HIfdJMnrNcTWJSGS6gYPTWPdm7ZCykEV
+2fFEX6IqWjBjaRm36Esj5mHLRVhBbi2n/jy5IhZeqjEsQ8adYGUulzPSe5xc2JZa
++OO4ch/RRqWTFP59eNPfdke3UE7uNlUhPnYDAOXhSdMJBzI+T9RQXU2y/tMOrYYK
+3+jNQcQ9q1Xy1s5dz/BOvw==
 -----END DSA PRIVATE KEY-----
index 50e2ca4..ec00396 100644 (file)
@@ -6,7 +6,6 @@ extern int dgst_main(int argc,char *argv[]);
 extern int dh_main(int argc,char *argv[]);
 extern int enc_main(int argc,char *argv[]);
 extern int gendh_main(int argc,char *argv[]);
-extern int gendsa_main(int argc,char *argv[]);
 extern int errstr_main(int argc,char *argv[]);
 extern int ca_main(int argc,char *argv[]);
 extern int crl_main(int argc,char *argv[]);
@@ -32,7 +31,6 @@ extern int dgst_main();
 extern int dh_main();
 extern int enc_main();
 extern int gendh_main();
-extern int gendsa_main();
 extern int errstr_main();
 extern int ca_main();
 extern int crl_main();
@@ -78,9 +76,6 @@ FUNCTION functions[] = {
 #ifndef NO_DH
        {FUNC_TYPE_GENERAL,"gendh",gendh_main},
 #endif
-#ifndef NO_DSA
-       {FUNC_TYPE_GENERAL,"gendsa",gendsa_main},
-#endif
        {FUNC_TYPE_GENERAL,"errstr",errstr_main},
 #ifndef NO_RSA
        {FUNC_TYPE_GENERAL,"ca",ca_main},
@@ -145,6 +140,12 @@ FUNCTION functions[] = {
 #ifndef NO_BLOWFISH
        {FUNC_TYPE_CIPHER,"bf",enc_main},
 #endif
+#ifndef NO_CAST
+       {FUNC_TYPE_CIPHER,"cast",enc_main},
+#endif
+#ifndef NO_RC5
+       {FUNC_TYPE_CIPHER,"rc5",enc_main},
+#endif
 #ifndef NO_DES
        {FUNC_TYPE_CIPHER,"des-ecb",enc_main},
 #endif
@@ -217,6 +218,33 @@ FUNCTION functions[] = {
 #ifndef NO_BLOWFISH
        {FUNC_TYPE_CIPHER,"bf-ofb",enc_main},
 #endif
+#ifndef NO_CAST
+       {FUNC_TYPE_CIPHER,"cast5-cbc",enc_main},
+#endif
+#ifndef NO_CAST
+       {FUNC_TYPE_CIPHER,"cast5-ecb",enc_main},
+#endif
+#ifndef NO_CAST
+       {FUNC_TYPE_CIPHER,"cast5-cfb",enc_main},
+#endif
+#ifndef NO_CAST
+       {FUNC_TYPE_CIPHER,"cast5-ofb",enc_main},
+#endif
+#ifndef NO_CAST
+       {FUNC_TYPE_CIPHER,"cast-cbc",enc_main},
+#endif
+#ifndef NO_RC5
+       {FUNC_TYPE_CIPHER,"rc5-cbc",enc_main},
+#endif
+#ifndef NO_RC5
+       {FUNC_TYPE_CIPHER,"rc5-ecb",enc_main},
+#endif
+#ifndef NO_RC5
+       {FUNC_TYPE_CIPHER,"rc5-cfb",enc_main},
+#endif
+#ifndef NO_RC5
+       {FUNC_TYPE_CIPHER,"rc5-ofb",enc_main},
+#endif
        {0,NULL,NULL}
        };
 #endif
index 237dd4c..cd05fe6 100644 (file)
@@ -57,14 +57,16 @@ foreach ("md2","md5","sha","sha1","mdc2")
 
 foreach (
        "base64",
-       "des", "des3", "desx", "idea", "rc4", "rc2","bf",
+       "des", "des3", "desx", "idea", "rc4", "rc2","bf","cast","rc5",
        "des-ecb", "des-ede",    "des-ede3",
        "des-cbc", "des-ede-cbc","des-ede3-cbc",
        "des-cfb", "des-ede-cfb","des-ede3-cfb",
        "des-ofb", "des-ede-ofb","des-ede3-ofb",
        "idea-cbc","idea-ecb",   "idea-cfb", "idea-ofb",
        "rc2-cbc", "rc2-ecb",    "rc2-cfb",  "rc2-ofb",
-       "bf-cbc",  "bf-ecb",     "bf-cfb",   "bf-ofb")
+       "bf-cbc",  "bf-ecb",     "bf-cfb",   "bf-ofb",
+       "cast5-cbc","cast5-ecb", "cast5-cfb","cast5-ofb",
+       "cast-cbc", "rc5-cbc",   "rc5-ecb",  "rc5-cfb",  "rc5-ofb")
        {
        push(@files,$_);
 
@@ -74,6 +76,8 @@ foreach (
        elsif ($_ =~ /rc4/)  { $t="#ifndef NO_RC4\n${t}#endif\n"; }
        elsif ($_ =~ /rc2/)  { $t="#ifndef NO_RC2\n${t}#endif\n"; }
        elsif ($_ =~ /bf/)   { $t="#ifndef NO_BLOWFISH\n${t}#endif\n"; }
+       elsif ($_ =~ /cast/) { $t="#ifndef NO_CAST\n${t}#endif\n"; }
+       elsif ($_ =~ /rc5/)  { $t="#ifndef NO_RC5\n${t}#endif\n"; }
        print $t;
        }
 
index 9b6041e..f51345f 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/req.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -60,7 +60,7 @@
 #include <stdlib.h>
 #include <time.h>
 #include <string.h>
-#ifdef WIN16
+#ifdef NO_STDIO
 #define APPS_WIN16
 #endif
 #include "apps.h"
@@ -111,7 +111,7 @@ static int add_attribute_object(STACK *n, char *text, char *def,
        char *value, int nid,int min,int max);
 static int add_DN_object(X509_NAME *n, char *text, char *def, char *value,
        int nid,int min,int max);
-static void MS_CALLBACK req_cb(int p,int n);
+static void MS_CALLBACK req_cb(int p,int n,char *arg);
 static int req_fix_data(int nid,int *type,int len,int min,int max);
 #else
 static int make_REQ();
@@ -135,7 +135,9 @@ int MAIN(argc, argv)
 int argc;
 char **argv;
        {
+#ifndef NO_DSA
        DSA *dsa_params=NULL;
+#endif
        int ex=1,x509=0,days=30;
        X509 *x509ss=NULL;
        X509_REQ *req=NULL;
@@ -160,7 +162,7 @@ char **argv;
 
        if (bio_err == NULL)
                if ((bio_err=BIO_new(BIO_s_file())) != NULL)
-                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE);
+                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 
        infile=NULL;
        outfile=NULL;
@@ -228,7 +230,9 @@ char **argv;
                                p+=4;
                                newkey= atoi(p);
                                }
-                       else if (strncmp("dsa:",p,4) == 0)
+                       else
+#ifndef NO_DSA
+                               if (strncmp("dsa:",p,4) == 0)
                                {
                                X509 *xtmp=NULL;
                                EVP_PKEY *dtmp;
@@ -249,6 +253,9 @@ char **argv;
                                                BIO_printf(bio_err,"unable to load DSA parameters from file\n");
                                                goto end;
                                                }
+
+                                       /* This will 'disapear'
+                                        * when we free xtmp */
                                        dtmp=X509_get_pubkey(xtmp);
                                        if (dtmp->type == EVP_PKEY_DSA)
                                                dsa_params=DSAparams_dup(dtmp->pkey.dsa);
@@ -258,18 +265,21 @@ char **argv;
                                                BIO_printf(bio_err,"Certificate does not contain DSA parameters\n");
                                                goto end;
                                                }
-                                       
                                        }
                                BIO_free(in);
                                newkey=BN_num_bits(dsa_params->p);
                                in=NULL;
                                }
-                       else if (strncmp("dh:",p,4) == 0)
+                       else 
+#endif
+#ifndef NO_DH
+                               if (strncmp("dh:",p,4) == 0)
                                {
                                pkey_type=TYPE_DH;
                                p+=3;
                                }
                        else
+#endif
                                pkey_type=TYPE_RSA;
 
                        newreq=1;
@@ -463,7 +473,8 @@ bad:
                if (pkey_type == TYPE_RSA)
                        {
                        if (!EVP_PKEY_assign_RSA(pkey,
-                               RSA_generate_key(newkey,0x10001,req_cb)))
+                               RSA_generate_key(newkey,0x10001,
+                                       req_cb,(char *)bio_err)))
                                goto end;
                        }
                else
@@ -559,8 +570,10 @@ loop:
 
        if (newreq || x509)
                {
+#ifndef NO_DSA
                if (pkey->type == EVP_PKEY_DSA)
                        digest=EVP_dss1();
+#endif
 
                if (pkey == NULL)
                        {
@@ -733,7 +746,9 @@ end:
        if (pkey != NULL) EVP_PKEY_free(pkey);
        if (req != NULL) X509_REQ_free(req);
        if (x509ss != NULL) X509_free(x509ss);
+#ifndef NO_DSA
        if (dsa_params != NULL) DSA_free(dsa_params);
+#endif
        EXIT(ex);
        }
 
@@ -743,7 +758,7 @@ EVP_PKEY *pkey;
 int attribs;
        {
        int ret=0,i,j;
-       unsigned char *p;
+       unsigned char *p,*q;
        X509_REQ_INFO *ri;
        char buf[100];
        int nid,min,max;
@@ -800,19 +815,43 @@ start:            for (;;)
                        if ((int)sk_num(sk) <= i) break;
 
                        v=(CONF_VALUE *)sk_value(sk,i);
-                       p=NULL;
+                       p=q=NULL;
                        type=v->name;
+                       /* Allow for raw OIDs */
+                       /* [n.mm.ooo.ppp] */
                        for (j=0; type[j] != '\0'; j++)
                                {
                                if (    (type[j] == ':') ||
                                        (type[j] == ',') ||
                                        (type[j] == '.'))
-                                       p= (unsigned char *)&(type[j+1]);
+                                       p=(unsigned char *)&(type[j+1]);
+                               if (type[j] == '[')
+                                       {
+                                       p=(unsigned char *)&(type[j+1]);
+                                       for (j++; type[j] != '\0'; j++)
+                                               if (type[j] == ']')
+                                                       {
+                                                       q=(unsigned char *)&(type[j]);
+                                                       break;
+                                                       }
+                                       break;
+                                       }
                                }
                        if (p != NULL)
                                type=(char *)p;
                        if ((nid=OBJ_txt2nid(type)) == NID_undef)
-                               goto start;
+                               {
+                               /* Add a new one if possible */
+                               if ((p != NULL) && (q != NULL) && (*q == ']'))
+                                       {
+                                       *q='\0';
+                                       nid=OBJ_create((char *)p,NULL,NULL);
+                                       *q=']';
+                                       if (nid == NID_undef) goto start;
+                                       }
+                               else
+                                       goto start;
+                               }
 
                        sprintf(buf,"%s_default",v->name);
                        if ((def=CONF_get_string(req_conf,tmp,buf)) == NULL)
@@ -1044,9 +1083,10 @@ err:
        return(0);
        }
 
-static void MS_CALLBACK req_cb(p, n)
+static void MS_CALLBACK req_cb(p,n,arg)
 int p;
 int n;
+char *arg;
        {
        char c='*';
 
@@ -1054,8 +1094,8 @@ int n;
        if (p == 1) c='+';
        if (p == 2) c='*';
        if (p == 3) c='\n';
-       BIO_write(bio_err,&c,1);
-       BIO_flush(bio_err);
+       BIO_write((BIO *)arg,&c,1);
+       BIO_flush((BIO *)arg);
 #ifdef LINT
        p=n;
 #endif
diff --git a/apps/req.pem b/apps/req.pem
new file mode 100644 (file)
index 0000000..5537df6
--- /dev/null
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBlzCCAVcCAQAwXjELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUx
+ITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEXMBUGA1UEAxMORXJp
+YyB0aGUgWW91bmcwge8wgaYGBSsOAwIMMIGcAkEA+ZiKEvZmc9MtnaFZh4NiZ3oZ
+S4J1PHvPrm9MXj5ntVheDPkdmBDTncyaGAJcMjwsyB/GvLDGd6yGCw/8eF+09wIV
+AK3VagOxGd/Q4Af5NbxR5FB7CXEjAkA2t/q7HgVLi0KeKvcDG8BRl3wuy7bCvpjg
+tWiJc/tpvcuzeuAayH89UofjAGueKjXDADiRffvSdhrNw5dkqdqlA0QAAkEAtUSo
+84OekjitKGVjxLu0HvXck29pu+foad53vPKXAsuJdACj88BPqZ91Y9PIJf1GUh38
+CuiHWi7z3cEDfZCyCKAAMAkGBSsOAwIbBQADLwAwLAIUTg8amKVBE9oqC5B75dDQ
+Chy3LdQCFHKodGEj3LjuTzdm/RTe2KZL9Uzf
+-----END CERTIFICATE REQUEST-----
index 54bc996..7c4f898 100644 (file)
@@ -1,5 +1,5 @@
 #!/bin/sh
-for i in verify asn1parse req dgst dh enc gendh gendsa errstr ca crl rsa dsa dsaparam x509 genrsa s_server s_client speed s_time version pkcs7 crl2pkcs7 sess_id ciphers md2 md5 sha sha1 mdc2 base64 des des3 desx idea rc4 rc2 bf des-ecb des-ede des-ede3 des-cbc des-ede-cbc des-ede3-cbc des-cfb des-ede-cfb des-ede3-cfb des-ofb des-ede-ofb des-ede3-ofb idea-cbc idea-ecb idea-cfb idea-ofb rc2-cbc rc2-ecb rc2-cfb rc2-ofb bf-cbc bf-ecb bf-cfb bf-ofb 
+for i in verify asn1parse req dgst dh enc gendh errstr ca crl rsa dsa dsaparam x509 genrsa s_server s_client speed s_time version pkcs7 crl2pkcs7 sess_id ciphers md2 md5 sha sha1 mdc2 base64 des des3 desx idea rc4 rc2 bf cast rc5 des-ecb des-ede des-ede3 des-cbc des-ede-cbc des-ede3-cbc des-cfb des-ede-cfb des-ede3-cfb des-ofb des-ede-ofb des-ede3-ofb idea-cbc idea-ecb idea-cfb idea-ofb rc2-cbc rc2-ecb rc2-cfb rc2-ofb bf-cbc bf-ecb bf-cfb bf-ofb cast5-cbc cast5-ecb cast5-cfb cast5-ofb cast-cbc rc5-cbc rc5-ecb rc5-cfb rc5-ofb 
 do
 echo removing $i
 /bin/rm -f $i
index 9f2df77..267b12b 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/rsa.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -99,7 +99,7 @@ char **argv;
 
        if (bio_err == NULL)
                if ((bio_err=BIO_new(BIO_s_file())) != NULL)
-                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE);
+                       BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 
        infile=NULL;
        outfile=NULL;
index 6857674..ba32094 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/s_apps.h */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -79,9 +79,8 @@ int nbio_init_client_ip(int *sock,unsigned char ip[4], int port);
 int nbio_sock_error(int sock);
 int spawn(int argc, char **argv, int *in, int *out);
 int init_server(int *sock, int port);
+int init_server_long(int *sock, int port,char *ip);
 int should_retry(int i);
-int sock_err(void );
-int socket_ioctl(int, long,unsigned long *);
 void sock_cleanup(void );
 int extract_port(char *str, short *port_ptr);
 int extract_host_port(char *str,char **host_ptr,unsigned char *ip,short *p);
@@ -108,8 +107,6 @@ int nbio_sock_error();
 int spawn();
 int init_server();
 int should_retry();
-int sock_err();
-int socket_ioctl();
 void sock_cleanup();
 int extract_port();
 int extract_host_port();
index 712a043..cd086bb 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/s_cb.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -71,7 +71,6 @@
 int verify_depth=0;
 int verify_error=X509_V_OK;
 
-/* should be X509 * but we can just have them as char *. */
 int MS_CALLBACK verify_callback(ok, ctx)
 int ok;
 X509_STORE_CTX *ctx;
@@ -137,7 +136,7 @@ char *key_file;
                if (SSL_CTX_use_certificate_file(ctx,cert_file,
                        SSL_FILETYPE_PEM) <= 0)
                        {
-                       BIO_printf(bio_err,"unable to set certificate file\n");
+                       BIO_printf(bio_err,"unable to get certificate from '%s'\n",cert_file);
                        ERR_print_errors(bio_err);
                        return(0);
                        }
@@ -145,7 +144,7 @@ char *key_file;
                if (SSL_CTX_use_PrivateKey_file(ctx,key_file,
                        SSL_FILETYPE_PEM) <= 0)
                        {
-                       BIO_printf(bio_err,"unable to set public key file\n");
+                       BIO_printf(bio_err,"unable to get private key from '%s'\n",key_file);
                        ERR_print_errors(bio_err);
                        return(0);
                        }
index b5dc238..e783eb7 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/s_client.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -60,7 +60,7 @@
 #include <stdlib.h>
 #include <string.h>
 #define USE_SOCKETS
-#ifdef WIN16
+#ifdef NO_STDIO
 #define APPS_WIN16
 #endif
 #include "apps.h"
@@ -127,6 +127,8 @@ static void sc_usage()
        BIO_printf(bio_err," -quiet        - no s_client output\n");
        BIO_printf(bio_err," -ssl2         - just use SSLv2\n");
        BIO_printf(bio_err," -ssl3         - just use SSLv3\n");
+       BIO_printf(bio_err," -tls1         - just use TLSv1\n");
+       BIO_printf(bio_err," -no_tls1/-no_ssl3/-no_ssl2 - turn off that protocol\n");
        BIO_printf(bio_err," -bugs         - Switch on all SSL implementation bug workarounds\n");
        BIO_printf(bio_err," -cipher       - prefered cipher to use, use the 'ssleay ciphers'\n");
        BIO_printf(bio_err,"                 command to se what is available\n");
@@ -137,6 +139,7 @@ int MAIN(argc, argv)
 int argc;
 char **argv;
        {
+       int off=0;
        SSL *con=NULL,*con2=NULL;
        int s,k,width,state=0;
        char *cbuf=NULL,*sbuf=NULL;
@@ -165,6 +168,7 @@ char **argv;
 #endif
 
        apps_startup();
+       c_Pause=0;
        c_quiet=0;
        c_debug=0;
 
@@ -235,6 +239,10 @@ char **argv;
                else if (strcmp(*argv,"-ssl3") == 0)
                        meth=SSLv3_client_method();
 #endif
+#ifndef NO_TLS1
+               else if (strcmp(*argv,"-tls1") == 0)
+                       meth=TLSv1_client_method();
+#endif
                else if (strcmp(*argv,"-bugs") == 0)
                        bugs=1;
                else if (strcmp(*argv,"-key") == 0)
@@ -256,6 +264,12 @@ char **argv;
                        if (--argc < 1) goto bad;
                        CAfile= *(++argv);
                        }
+               else if (strcmp(*argv,"-no_tls1") == 0)
+                       off|=SSL_OP_NO_TLSv1;
+               else if (strcmp(*argv,"-no_ssl3") == 0)
+                       off|=SSL_OP_NO_SSLv3;
+               else if (strcmp(*argv,"-no_ssl2") == 0)
+                       off|=SSL_OP_NO_SSLv2;
                else if (strcmp(*argv,"-cipher") == 0)
                        {
                        if (--argc < 1) goto bad;
@@ -302,7 +316,10 @@ bad:
                goto end;
                }
 
-       if (bugs) SSL_CTX_set_options(ctx,SSL_OP_ALL);
+       if (bugs)
+               SSL_CTX_set_options(ctx,SSL_OP_ALL|off);
+       else
+               SSL_CTX_set_options(ctx,off);
 
        if (state) SSL_CTX_set_info_callback(ctx,apps_ssl_info_callback);
        if (cipher != NULL)
@@ -319,20 +336,21 @@ bad:
        if ((!SSL_CTX_load_verify_locations(ctx,CAfile,CApath)) ||
                (!SSL_CTX_set_default_verify_paths(ctx)))
                {
-               BIO_printf(bio_err,"error seting default verify locations\n");
+               /* BIO_printf(bio_err,"error seting default verify locations\n"); */
                ERR_print_errors(bio_err);
-               goto end;
+               /* goto end; */
                }
 
        SSL_load_error_strings();
 
        con=(SSL *)SSL_new(ctx);
+/*     SSL_set_cipher_list(con,"RC4-MD5"); */
 
 re_start:
 
        if (init_client(&s,host,port) == 0)
                {
-               BIO_printf(bio_err,"connect:errno=%d\n",errno);
+               BIO_printf(bio_err,"connect:errno=%d\n",get_last_socket_error());
                SHUTDOWN(s);
                goto end;
                }
@@ -343,7 +361,11 @@ re_start:
                {
                unsigned long l=1;
                BIO_printf(bio_c_out,"turning on non blocking io\n");
-               socket_ioctl(s,FIONBIO,&l);
+               if (BIO_socket_ioctl(s,FIONBIO,&l) < 0)
+                       {
+                       ERR_print_errors(bio_err);
+                       goto end;
+                       }
                }
 #endif                                              
        if (c_Pause & 0x01) con->debug=1;
@@ -386,7 +408,7 @@ re_start:
                FD_ZERO(&readfds);
                FD_ZERO(&writefds);
 
-               if (SSL_in_init(con))
+               if (SSL_in_init(con) && !SSL_total_renegotiations(con))
                        {
                        in_init=1;
                        tty_on=0;
@@ -427,11 +449,11 @@ re_start:
 /*             printf("mode tty(%d %d%d) ssl(%d%d)\n",
                        tty_on,read_tty,write_tty,read_ssl,write_ssl);*/
 
-/*             printf("pending=%d\n",SSL_pending(con)); */
                i=select(width,&readfds,&writefds,NULL,NULL);
                if ( i < 0)
                        {
-                       BIO_printf(bio_err,"bad select %d\n",sock_err());
+                       BIO_printf(bio_err,"bad select %d\n",
+                               get_last_socket_error());
                        goto shut;
                        /* goto end; */
                        }
@@ -489,7 +511,7 @@ re_start:
                                if ((k != 0) || (cbuf_len != 0))
                                        {
                                        BIO_printf(bio_err,"write:errno=%d\n",
-                                               errno);
+                                               get_last_socket_error());
                                        goto shut;
                                        }
                                else
@@ -526,7 +548,10 @@ re_start:
 #endif
                else if (FD_ISSET(SSL_get_fd(con),&readfds))
                        {
-                       k=SSL_read(con,sbuf,BUFSIZZ);
+#ifdef RENEG
+{ static int iiii; if (++iiii == 52) { SSL_renegotiate(con); iiii=0; } }
+#endif
+                       k=SSL_read(con,sbuf,1024 /* BUFSIZZ */ );
 
                        switch (SSL_get_error(con,k))
                                {
@@ -555,7 +580,7 @@ re_start:
                                BIO_printf(bio_c_out,"read X BLOCK\n");
                                break;
                        case SSL_ERROR_SYSCALL:
-                               BIO_printf(bio_err,"read:errno=%d\n",errno);
+                               BIO_printf(bio_err,"read:errno=%d\n",get_last_socket_error());
                                goto shut;
                        case SSL_ERROR_ZERO_RETURN:
                                BIO_printf(bio_c_out,"closed\n");
@@ -619,7 +644,7 @@ BIO *bio;
 SSL *s;
 int full;
        {
-       X509 *peer;
+       X509 *peer=NULL;
        char *p;
        static char *space="                ";
        char buf[BUFSIZ];
@@ -657,7 +682,6 @@ int full;
                        X509_NAME_oneline(X509_get_issuer_name(peer),
                                buf,BUFSIZ);
                        BIO_printf(bio,"issuer=%s\n",buf);
-                       X509_free(peer);
                        }
                else
                        BIO_printf(bio,"no peer certificate available\n");
@@ -687,7 +711,7 @@ int full;
                                {
                                if (*p == ':')
                                        {
-                                       BIO_write(bio,space,15-j);
+                                       BIO_write(bio,space,15-j%25);
                                        i++;
                                        j=0;
                                        BIO_write(bio,((i%3)?" ":"\n"),1);
@@ -711,7 +735,12 @@ int full;
        BIO_printf(bio,"%s, Cipher is %s\n",
                SSL_CIPHER_get_version(c),
                SSL_CIPHER_get_name(c));
+       if (peer != NULL)
+               BIO_printf(bio,"Server public key is %d bit\n",
+                       EVP_PKEY_bits(X509_get_pubkey(peer)));
        SSL_SESSION_print(bio,SSL_get_session(s));
        BIO_printf(bio,"---\n");
+       if (peer != NULL)
+               X509_free(peer);
        }
 
index d1e406c..5012ef2 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/s_server.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -61,7 +61,7 @@
 #include <string.h>
 #include <sys/types.h>
 #include <sys/stat.h>
-#ifdef WIN16
+#ifdef NO_STDIO
 #define APPS_WIN16
 #endif
 #include "lhash.h"
@@ -82,8 +82,11 @@ static void close_accept_socket(void );
 static void sv_usage(void);
 static int init_ssl_connection(SSL *s);
 static void print_stats(BIO *bp,SSL_CTX *ctx);
+#ifndef NO_DH
 static DH *load_dh_param(void );
 static DH *get_dh512(void);
+#endif
+/* static void s_server_init(void);*/
 #else
 static RSA MS_CALLBACK *tmp_rsa_cb();
 static int sv_body();
@@ -92,15 +95,19 @@ static void close_accept_socket();
 static void sv_usage();
 static int&