2014-07-10 13:07:09 +02:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
|
2014-08-01 01:18:45 +02:00
|
|
|
openbsd_branch=`cat OPENBSD_BRANCH`
|
|
|
|
libressl_version=`cat VERSION`
|
|
|
|
|
|
|
|
if [ ! -d openbsd ]; then
|
2014-07-11 02:41:42 +02:00
|
|
|
if [ -z "$LIBRESSL_GIT" ]; then
|
|
|
|
git clone https://github.com/libressl-portable/openbsd.git
|
|
|
|
else
|
|
|
|
git clone $LIBRESSL_GIT/openbsd
|
|
|
|
fi
|
2014-07-10 16:05:45 +02:00
|
|
|
fi
|
2014-08-01 01:18:45 +02:00
|
|
|
(cd openbsd
|
|
|
|
git checkout $openbsd_branch
|
2014-08-08 14:31:28 +02:00
|
|
|
git pull --rebase)
|
2014-07-10 13:07:09 +02:00
|
|
|
|
2014-07-22 01:56:24 +02:00
|
|
|
dir=`pwd`
|
|
|
|
libssl_src=$dir/openbsd/src/lib/libssl
|
|
|
|
libssl_regress=$dir/openbsd/src/regress/lib/libssl
|
|
|
|
libc_src=$dir/openbsd/src/lib/libc
|
|
|
|
libc_regress=$dir/openbsd/src/regress/lib/libc
|
|
|
|
libcrypto_src=$dir/openbsd/src/lib/libcrypto
|
2014-08-28 04:46:43 +02:00
|
|
|
openssl_cmd_src=$dir/openbsd/src/usr.bin/openssl
|
2014-07-22 01:56:24 +02:00
|
|
|
libcrypto_regress=$dir/openbsd/src/regress/lib/libcrypto
|
2014-07-10 13:07:09 +02:00
|
|
|
|
|
|
|
source $libssl_src/ssl/shlib_version
|
|
|
|
libssl_version=$major:$minor:0
|
|
|
|
echo libssl version $libssl_version
|
|
|
|
|
|
|
|
source $libcrypto_src/crypto/shlib_version
|
|
|
|
libcrypto_version=$major:$minor:0
|
|
|
|
echo libcrypto version $libcrypto_version
|
|
|
|
|
2014-07-21 11:21:59 +02:00
|
|
|
CP='cp -p'
|
|
|
|
|
2014-07-10 13:07:09 +02:00
|
|
|
copy_src() {
|
|
|
|
mkdir -p $1
|
|
|
|
rm -f $1/*.c
|
2014-08-28 04:46:43 +02:00
|
|
|
for file in $3; do
|
2014-11-20 07:26:55 +01:00
|
|
|
if [ -e $2/src/$1/$file ]; then
|
|
|
|
$CP $2/src/$1/$file $1
|
|
|
|
else
|
|
|
|
$CP crypto/compat/$file $1
|
|
|
|
fi
|
2014-07-10 13:07:09 +02:00
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
copy_hdrs() {
|
|
|
|
for file in $2; do
|
2014-07-21 11:21:59 +02:00
|
|
|
$CP $libssl_src/src/$1/$file include/openssl
|
2014-07-10 13:07:09 +02:00
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
copy_crypto() {
|
2014-08-28 04:46:43 +02:00
|
|
|
copy_src crypto/$1 $libssl_src "$2"
|
2014-07-10 13:07:09 +02:00
|
|
|
crypto_subdirs="$crypto_subdirs $1"
|
|
|
|
}
|
|
|
|
|
2014-07-21 11:21:59 +02:00
|
|
|
$CP $libssl_src/src/LICENSE COPYING
|
2014-07-10 13:07:09 +02:00
|
|
|
|
2014-07-21 11:21:59 +02:00
|
|
|
$CP $libcrypto_src/crypto/arch/amd64/opensslconf.h include/openssl
|
|
|
|
$CP $libssl_src/src/crypto/opensslfeatures.h include/openssl
|
|
|
|
$CP $libssl_src/src/e_os2.h include/openssl
|
|
|
|
$CP $libssl_src/src/ssl/pqueue.h include
|
2014-07-10 13:07:09 +02:00
|
|
|
|
2014-07-28 14:50:48 +02:00
|
|
|
for i in explicit_bzero.c strlcpy.c strlcat.c strndup.c strnlen.c \
|
|
|
|
timingsafe_bcmp.c timingsafe_memcmp.c; do
|
2014-07-21 11:21:59 +02:00
|
|
|
$CP $libc_src/string/$i crypto/compat
|
2014-07-10 13:07:09 +02:00
|
|
|
done
|
2014-07-21 11:21:59 +02:00
|
|
|
$CP $libc_src/stdlib/reallocarray.c crypto/compat
|
|
|
|
$CP $libc_src/crypt/arc4random.c crypto/compat
|
|
|
|
$CP $libc_src/crypt/chacha_private.h crypto/compat
|
|
|
|
$CP $libcrypto_src/crypto/getentropy_*.c crypto/compat
|
|
|
|
$CP $libcrypto_src/crypto/arc4random_*.h crypto/compat
|
2014-07-10 13:07:09 +02:00
|
|
|
|
2014-07-22 01:56:24 +02:00
|
|
|
(cd $libssl_src/src/crypto/objects/;
|
2014-07-10 13:07:09 +02:00
|
|
|
perl objects.pl objects.txt obj_mac.num obj_mac.h;
|
|
|
|
perl obj_dat.pl obj_mac.h obj_dat.h )
|
|
|
|
mkdir -p include/openssl crypto/objects
|
|
|
|
mv $libssl_src/src/crypto/objects/obj_mac.h ./include/openssl/obj_mac.h
|
|
|
|
mv $libssl_src/src/crypto/objects/obj_dat.h ./crypto/objects/obj_dat.h
|
|
|
|
|
|
|
|
copy_hdrs crypto "stack/stack.h lhash/lhash.h stack/safestack.h opensslv.h
|
|
|
|
ossl_typ.h err/err.h crypto.h comp/comp.h x509/x509.h buffer/buffer.h
|
|
|
|
objects/objects.h asn1/asn1.h bn/bn.h ec/ec.h ecdsa/ecdsa.h
|
|
|
|
ecdh/ecdh.h rsa/rsa.h sha/sha.h x509/x509_vfy.h pkcs7/pkcs7.h pem/pem.h
|
|
|
|
pem/pem2.h hmac/hmac.h rand/rand.h md5/md5.h
|
|
|
|
krb5/krb5_asn.h asn1/asn1_mac.h x509v3/x509v3.h conf/conf.h ocsp/ocsp.h
|
|
|
|
aes/aes.h modes/modes.h asn1/asn1t.h dso/dso.h bf/blowfish.h
|
|
|
|
bio/bio.h cast/cast.h cmac/cmac.h conf/conf_api.h des/des.h dh/dh.h
|
|
|
|
dsa/dsa.h cms/cms.h engine/engine.h ui/ui.h pkcs12/pkcs12.h ts/ts.h
|
|
|
|
md4/md4.h ripemd/ripemd.h whrlpool/whrlpool.h idea/idea.h mdc2/mdc2.h
|
2014-08-28 04:46:43 +02:00
|
|
|
rc2/rc2.h rc4/rc4.h rc5/rc5.h ui/ui_compat.h txt_db/txt_db.h
|
2014-11-18 15:02:32 +01:00
|
|
|
chacha/chacha.h evp/evp.h poly1305/poly1305.h camellia/camellia.h
|
|
|
|
gost/gost.h"
|
2014-07-10 13:07:09 +02:00
|
|
|
|
|
|
|
copy_hdrs ssl "srtp.h ssl.h ssl2.h ssl3.h ssl23.h tls1.h dtls1.h"
|
|
|
|
|
2014-08-28 04:46:43 +02:00
|
|
|
for i in ssl/srtp.h ssl/ssl_locl.h; do
|
2014-07-21 11:21:59 +02:00
|
|
|
$CP $libssl_src/src/$i ssl
|
2014-07-10 13:07:09 +02:00
|
|
|
done
|
|
|
|
|
2014-08-28 04:46:43 +02:00
|
|
|
copy_src ssl $libssl_src \
|
|
|
|
"s3_meth.c s3_srvr.c s3_clnt.c s3_lib.c s3_enc.c s3_pkt.c
|
2014-07-10 13:07:09 +02:00
|
|
|
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 d1_meth.c d1_srvr.c d1_clnt.c
|
|
|
|
d1_lib.c d1_pkt.c d1_both.c d1_enc.c d1_srtp.c ssl_lib.c ssl_err2.c
|
|
|
|
ssl_cert.c ssl_sess.c ssl_ciph.c ssl_stat.c ssl_rsa.c ssl_asn1.c ssl_txt.c
|
|
|
|
ssl_algs.c bio_ssl.c ssl_err.c t1_reneg.c s3_cbc.c pqueue.c"
|
|
|
|
|
2014-08-28 04:46:43 +02:00
|
|
|
copy_src crypto $libssl_src \
|
|
|
|
"cryptlib.h cryptlib.c malloc-wrapper.c mem_clr.c mem_dbg.c cversion.c
|
2014-07-10 13:07:09 +02:00
|
|
|
ex_data.c cpt_err.c o_time.c o_time.h o_str.c o_init.c md32_common.h"
|
|
|
|
|
|
|
|
copy_crypto aes "aes_cbc.c aes_core.c aes_misc.c aes_ecb.c aes_cfb.c aes_ofb.c aes_ctr.c
|
|
|
|
aes_ige.c aes_wrap.c aes_locl.h"
|
|
|
|
|
|
|
|
copy_crypto asn1 "a_object.c a_bitstr.c a_utctm.c a_gentm.c a_time.c
|
|
|
|
a_int.c a_octet.c a_print.c a_type.c a_dup.c a_d2i_fp.c a_i2d_fp.c a_enum.c
|
|
|
|
a_utf8.c a_sign.c a_digest.c a_verify.c a_mbstr.c a_strex.c x_algor.c
|
|
|
|
x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_bignum.c x_long.c x_name.c
|
|
|
|
x_x509.c x_x509a.c x_crl.c x_info.c x_spki.c nsseq.c x_nx509.c d2i_pu.c
|
|
|
|
d2i_pr.c i2d_pu.c i2d_pr.c t_req.c t_x509.c t_x509a.c t_crl.c t_pkey.c
|
|
|
|
t_spki.c t_bitst.c tasn_new.c tasn_fre.c tasn_enc.c tasn_dec.c tasn_utl.c
|
|
|
|
tasn_typ.c tasn_prn.c ameth_lib.c f_int.c f_string.c n_pkey.c f_enum.c
|
|
|
|
x_pkey.c a_bool.c x_exten.c bio_asn1.c bio_ndef.c asn_mime.c asn1_gen.c
|
|
|
|
asn1_par.c asn1_lib.c asn1_err.c a_bytes.c a_strnid.c evp_asn1.c asn_pack.c
|
|
|
|
p5_pbe.c p5_pbev2.c p8_pkey.c asn_moid.c a_set.c asn1_locl.h charmap.h"
|
|
|
|
|
|
|
|
copy_crypto bf "bf_skey.c bf_ecb.c bf_enc.c bf_cfb64.c bf_ofb64.c bf_locl.h bf_pi.h"
|
|
|
|
|
|
|
|
copy_crypto bio "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_dump.c
|
2014-11-20 07:26:55 +01:00
|
|
|
b_sock.c bss_acpt.c bf_nbio.c bss_log.c bss_bio.c bss_dgram.c b_print.c
|
|
|
|
b_posix.c b_win.c"
|
2014-07-10 13:07:09 +02:00
|
|
|
|
|
|
|
copy_crypto bn "bn_add.c bn_asm.c bn_div.c bn_exp.c bn_lib.c bn_ctx.c bn_mul.c
|
|
|
|
bn_mod.c bn_print.c bn_rand.c bn_shift.c bn_word.c bn_blind.c bn_kron.c
|
|
|
|
bn_sqrt.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c bn_recp.c bn_mont.c
|
|
|
|
bn_mpi.c bn_exp2.c bn_gf2m.c bn_nist.c bn_depr.c bn_const.c bn_x931p.c
|
|
|
|
bn_lcl.h bn_prime.h"
|
|
|
|
|
|
|
|
copy_crypto buffer "buffer.c buf_err.c buf_str.c"
|
|
|
|
|
2014-11-18 15:02:32 +01:00
|
|
|
copy_crypto camellia "cmll_cfb.c cmll_ctr.c cmll_ecb.c cmll_ofb.c camellia.c
|
2014-11-18 00:48:46 +01:00
|
|
|
cmll_cbc.c cmll_misc.c cmll_locl.h"
|
|
|
|
|
2014-07-10 13:07:09 +02:00
|
|
|
copy_crypto cast "c_skey.c c_ecb.c c_enc.c c_cfb64.c c_ofb64.c cast_lcl.h
|
|
|
|
cast_s.h"
|
|
|
|
|
|
|
|
copy_crypto chacha "chacha.c chacha-merged.c"
|
|
|
|
|
|
|
|
copy_crypto cmac "cmac.c cm_ameth.c cm_pmeth.c"
|
|
|
|
|
|
|
|
#copy_crypto cms "cms_lib.c cms_asn1.c cms_att.c cms_io.c cms_smime.c cms_err.c
|
|
|
|
# cms_sd.c cms_dd.c cms_cd.c cms_env.c cms_enc.c cms_ess.c cms_pwri.c cms.h cms_lcl.h"
|
|
|
|
|
|
|
|
copy_crypto comp "comp_lib.c comp_err.c c_rle.c c_zlib.c"
|
|
|
|
|
|
|
|
copy_crypto conf "conf_err.c conf_lib.c conf_api.c conf_def.c conf_mod.c
|
|
|
|
conf_mall.c conf_sap.c conf_def.h"
|
|
|
|
|
|
|
|
copy_crypto des "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 fcrypt_b.c ofb64enc.c ofb_enc.c
|
|
|
|
pcbc_enc.c qud_cksm.c rand_key.c set_key.c xcbc_enc.c str2key.c
|
|
|
|
cfb64ede.c ofb64ede.c ede_cbcm_enc.c des_enc.c des_locl.h ncbc_enc.c
|
|
|
|
spr.h"
|
|
|
|
|
|
|
|
copy_crypto dh "dh_asn1.c dh_gen.c dh_key.c dh_lib.c dh_check.c dh_err.c
|
|
|
|
dh_depr.c dh_ameth.c dh_pmeth.c dh_prn.c"
|
|
|
|
|
|
|
|
copy_crypto dsa "dsa_gen.c dsa_key.c dsa_lib.c dsa_asn1.c dsa_vrf.c
|
|
|
|
dsa_sign.c dsa_err.c dsa_ossl.c dsa_depr.c dsa_ameth.c dsa_pmeth.c
|
|
|
|
dsa_prn.c dsa_locl.h"
|
|
|
|
|
|
|
|
copy_crypto dso "dso_dlfcn.c dso_err.c dso_lib.c dso_null.c dso_openssl.c"
|
|
|
|
|
|
|
|
copy_crypto ec "ec_lib.c ecp_smpl.c ecp_mont.c ecp_nist.c ec_cvt.c ec_mult.c
|
|
|
|
ec_err.c ec_curve.c ec_check.c ec_print.c ec_asn1.c ec_key.c ec2_smpl.c
|
|
|
|
ec2_mult.c ec_ameth.c ec_pmeth.c eck_prn.c ecp_oct.c ec2_oct.c ec_oct.c
|
|
|
|
ec_lcl.h"
|
|
|
|
|
|
|
|
copy_crypto ecdh "ech_lib.c ech_ossl.c ech_key.c ech_err.c ech_locl.h"
|
|
|
|
|
|
|
|
copy_crypto ecdsa "ecs_lib.c ecs_asn1.c ecs_ossl.c ecs_sign.c ecs_vrf.c
|
|
|
|
ecs_err.c ecs_locl.h"
|
|
|
|
|
|
|
|
# Engine interface is disabled
|
|
|
|
copy_crypto engine "eng_err.c eng_lib.c eng_list.c eng_init.c eng_ctrl.c
|
|
|
|
eng_table.c eng_pkey.c eng_fat.c eng_all.c tb_rsa.c tb_dsa.c tb_ecdsa.c
|
|
|
|
tb_dh.c tb_ecdh.c tb_rand.c tb_store.c tb_cipher.c tb_digest.c tb_pkmeth.c
|
|
|
|
tb_asnmth.c eng_openssl.c eng_cnf.c eng_dyn.c eng_rsax.c eng_int.h"
|
|
|
|
|
|
|
|
copy_crypto err "err.c err_all.c err_prn.c"
|
|
|
|
|
|
|
|
copy_crypto evp "encode.c digest.c evp_enc.c evp_key.c e_des.c e_bf.c
|
|
|
|
e_idea.c e_des3.c e_rc4.c e_aes.c names.c e_xcbc_d.c e_rc2.c e_cast.c
|
|
|
|
m_null.c m_md4.c m_md5.c m_sha.c m_sha1.c m_wp.c m_dss.c m_dss1.c m_mdc2.c
|
|
|
|
m_ripemd.c m_ecdsa.c p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c
|
|
|
|
p_dec.c bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c c_all.c c_allc.c
|
|
|
|
c_alld.c evp_lib.c evp_pkey.c evp_pbe.c p5_crpt.c p5_crpt2.c
|
|
|
|
e_old.c pmeth_lib.c pmeth_fn.c pmeth_gn.c m_sigver.c e_aes_cbc_hmac_sha1.c
|
2014-11-18 00:48:46 +01:00
|
|
|
e_rc4_hmac_md5.c evp_locl.h e_chacha.c evp_aead.c e_chacha20poly1305.c
|
2014-11-18 15:02:32 +01:00
|
|
|
e_camellia.c e_gost2814789.c m_gost2814789.c m_gostr341194.c m_streebog.c"
|
|
|
|
|
|
|
|
copy_crypto gost "gost2814789.c gost89_keywrap.c gost89_params.c
|
|
|
|
gost89imit_ameth.c gost89imit_pmeth.c gost_asn1.c gost_err.c gostr341001.c
|
|
|
|
gostr341001_ameth.c gostr341001_key.c gostr341001_params.c
|
|
|
|
gostr341001_pmeth.c gostr341194.c streebog.c gost.h gost_asn1.h
|
|
|
|
gost_locl.h"
|
2014-07-10 13:07:09 +02:00
|
|
|
|
|
|
|
copy_crypto hmac "hmac.c hm_ameth.c hm_pmeth.c"
|
|
|
|
|
|
|
|
copy_crypto idea "i_cbc.c i_cfb64.c i_ofb64.c i_ecb.c i_skey.c idea_lcl.h"
|
|
|
|
|
|
|
|
copy_crypto krb5 "krb5_asn.c"
|
|
|
|
|
|
|
|
copy_crypto lhash "lhash.c lh_stats.c"
|
|
|
|
|
|
|
|
copy_crypto md4 "md4_dgst.c md4_one.c md4_locl.h"
|
|
|
|
|
|
|
|
copy_crypto md5 "md5_dgst.c md5_one.c md5_locl.h"
|
|
|
|
|
|
|
|
copy_crypto mdc2 "mdc2dgst.c mdc2_one.c"
|
|
|
|
|
|
|
|
copy_crypto modes "cbc128.c ctr128.c cts128.c cfb128.c ofb128.c gcm128.c
|
|
|
|
ccm128.c xts128.c modes_lcl.h"
|
|
|
|
|
|
|
|
copy_crypto objects "o_names.c obj_dat.c obj_lib.c obj_err.c obj_xref.c obj_xref.h"
|
|
|
|
|
|
|
|
copy_crypto ocsp "ocsp_asn.c ocsp_ext.c ocsp_ht.c ocsp_lib.c ocsp_cl.c
|
|
|
|
ocsp_srv.c ocsp_prn.c ocsp_vfy.c ocsp_err.c"
|
|
|
|
|
|
|
|
copy_crypto pem "pem_sign.c pem_seal.c pem_info.c pem_lib.c pem_all.c pem_err.c
|
|
|
|
pem_x509.c pem_xaux.c pem_oth.c pem_pk8.c pem_pkey.c pvkfmt.c"
|
|
|
|
|
|
|
|
copy_crypto pkcs12 "p12_add.c p12_asn.c p12_attr.c p12_crpt.c p12_crt.c
|
|
|
|
p12_decr.c p12_init.c p12_key.c p12_kiss.c p12_mutl.c p12_utl.c p12_npas.c
|
|
|
|
pk12err.c p12_p8d.c p12_p8e.c"
|
|
|
|
|
|
|
|
copy_crypto pkcs7 "pk7_asn1.c pk7_lib.c pkcs7err.c pk7_doit.c pk7_smime.c
|
|
|
|
pk7_attr.c pk7_mime.c bio_pk7.c"
|
|
|
|
|
|
|
|
copy_crypto poly1305 "poly1305-donna.c poly1305.c"
|
|
|
|
|
|
|
|
copy_crypto rand "randfile.c rand_err.c rand_lib.c"
|
|
|
|
|
|
|
|
copy_crypto rc2 "rc2_ecb.c rc2_skey.c rc2_cbc.c rc2cfb64.c rc2ofb64.c rc2_locl.h"
|
|
|
|
|
2014-07-13 11:02:25 +02:00
|
|
|
copy_crypto rc4 "rc4_enc.c rc4_skey.c rc4_locl.h"
|
2014-07-10 13:07:09 +02:00
|
|
|
|
|
|
|
copy_crypto ripemd "rmd_dgst.c rmd_one.c rmd_locl.h rmdconst.h"
|
|
|
|
|
|
|
|
copy_crypto rsa "rsa_eay.c rsa_gen.c rsa_lib.c rsa_sign.c rsa_saos.c rsa_err.c
|
|
|
|
rsa_pk1.c rsa_ssl.c rsa_none.c rsa_oaep.c rsa_chk.c rsa_pss.c
|
|
|
|
rsa_x931.c rsa_asn1.c rsa_depr.c rsa_ameth.c rsa_prn.c rsa_pmeth.c
|
|
|
|
rsa_crpt.c rsa_locl.h"
|
|
|
|
|
|
|
|
copy_crypto sha "sha_dgst.c sha1dgst.c sha_one.c sha1_one.c sha256.c sha512.c sha_locl.h"
|
|
|
|
|
|
|
|
copy_crypto stack "stack.c"
|
|
|
|
|
|
|
|
copy_crypto ts "ts_err.c ts_req_utils.c ts_req_print.c ts_rsp_utils.c
|
|
|
|
ts_rsp_print.c ts_rsp_sign.c ts_rsp_verify.c ts_verify_ctx.c ts_lib.c
|
|
|
|
ts_conf.c ts_asn1.c"
|
|
|
|
|
|
|
|
copy_crypto txt_db "txt_db.c"
|
|
|
|
|
2014-11-20 07:26:55 +01:00
|
|
|
copy_crypto ui "ui_err.c ui_lib.c ui_openssl.c ui_openssl_win.c ui_util.c ui_locl.h"
|
2014-07-10 13:07:09 +02:00
|
|
|
|
|
|
|
copy_crypto whrlpool "wp_block.c wp_dgst.c wp_locl.h"
|
|
|
|
|
|
|
|
copy_crypto x509 "x509_def.c x509_d2.c x509_r2x.c x509_cmp.c x509_obj.c
|
|
|
|
x509_req.c x509spki.c x509_vfy.c x509_set.c x509cset.c x509rset.c
|
|
|
|
x509_err.c x509name.c x509_v3.c x509_ext.c x509_att.c x509type.c x509_lu.c
|
2014-07-11 18:08:57 +02:00
|
|
|
x_all.c x509_txt.c x509_trs.c by_file.c by_dir.c x509_vpm.c x509_lcl.h"
|
2014-07-10 13:07:09 +02:00
|
|
|
|
|
|
|
copy_crypto x509v3 "v3_bcons.c v3_bitst.c v3_conf.c v3_extku.c v3_ia5.c v3_lib.c
|
|
|
|
v3_prn.c v3_utl.c v3err.c v3_genn.c v3_alt.c v3_skey.c v3_akey.c v3_pku.c
|
|
|
|
v3_int.c v3_enum.c v3_sxnet.c v3_cpols.c v3_crld.c v3_purp.c v3_info.c
|
|
|
|
v3_ocsp.c v3_akeya.c v3_pmaps.c v3_pcons.c v3_ncons.c v3_pcia.c v3_pci.c
|
|
|
|
pcy_cache.c pcy_node.c pcy_data.c pcy_map.c pcy_tree.c pcy_lib.c
|
|
|
|
pcy_int.h ext_dat.h"
|
|
|
|
|
2014-08-28 04:46:43 +02:00
|
|
|
for i in $openssl_cmd_src/*; do
|
|
|
|
cp $i apps
|
|
|
|
done
|
2014-07-10 13:07:09 +02:00
|
|
|
|
|
|
|
for i in aead/aeadtest.c aeswrap/aes_wrap.c base64/base64test.c bf/bftest.c \
|
2014-11-20 15:46:02 +01:00
|
|
|
bn/general/bntest.c bn/mont/mont.c \
|
2014-07-10 13:07:09 +02:00
|
|
|
cast/casttest.c chacha/chachatest.c cts128/cts128test.c \
|
|
|
|
des/destest.c dh/dhtest.c dsa/dsatest.c ec/ectest.c ecdh/ecdhtest.c \
|
|
|
|
ecdsa/ecdsatest.c engine/enginetest.c evp/evptest.c exp/exptest.c \
|
|
|
|
gcm128/gcm128test.c hmac/hmactest.c idea/ideatest.c ige/igetest.c \
|
|
|
|
md4/md4test.c md5/md5test.c mdc2/mdc2test.c poly1305/poly1305test.c \
|
|
|
|
pkcs7/pkcs7test.c pqueue/pq_test.c rand/randtest.c rc2/rc2test.c \
|
|
|
|
rc4/rc4test.c rmd/rmdtest.c sha/shatest.c sha1/sha1test.c \
|
|
|
|
sha256/sha256test.c sha512/sha512test.c utf8/utf8test.c; do
|
2014-07-21 11:21:59 +02:00
|
|
|
$CP $libcrypto_regress/$i tests
|
2014-07-10 13:07:09 +02:00
|
|
|
done
|
2014-07-21 11:21:59 +02:00
|
|
|
$CP $libc_regress/arc4random-fork/arc4random-fork.c tests/arc4randomforktest.c
|
|
|
|
$CP $libc_regress/explicit_bzero/explicit_bzero.c tests
|
|
|
|
$CP $libc_regress/timingsafe/timingsafe.c tests
|
2014-07-10 13:07:09 +02:00
|
|
|
|
2014-07-15 21:49:34 +02:00
|
|
|
for i in asn1/asn1test.c ssl/ssltest.c ssl/testssl certs/ca.pem certs/server.pem; do
|
2014-07-21 11:21:59 +02:00
|
|
|
$CP $libssl_regress/$i tests
|
2014-07-10 13:07:09 +02:00
|
|
|
done
|
|
|
|
|
|
|
|
# do not directly run all test programs
|
2014-07-22 01:30:31 +02:00
|
|
|
test_drivers=(
|
|
|
|
aeadtest
|
|
|
|
evptest
|
|
|
|
pq_test
|
|
|
|
ssltest
|
|
|
|
arc4randomforktest
|
|
|
|
pidwraptest
|
|
|
|
)
|
|
|
|
# disabled by-default tests
|
|
|
|
tests_disabled=(
|
|
|
|
biotest
|
|
|
|
)
|
2014-11-20 15:46:02 +01:00
|
|
|
tests_posix_only=(
|
|
|
|
arc4randomforktest
|
|
|
|
explicit_bzero
|
|
|
|
pidwraptest
|
|
|
|
)
|
2014-07-22 01:57:06 +02:00
|
|
|
$CP $libc_src/string/memmem.c tests/
|
2014-07-10 13:07:09 +02:00
|
|
|
(cd tests
|
2014-07-21 11:21:59 +02:00
|
|
|
$CP Makefile.am.tpl Makefile.am
|
2014-07-10 13:07:09 +02:00
|
|
|
|
2014-07-22 01:57:06 +02:00
|
|
|
for i in `ls -1 *.c|sort|grep -v memmem.c`; do
|
2014-07-10 13:07:09 +02:00
|
|
|
TEST=`echo $i|sed -e "s/\.c//"`
|
2014-11-20 15:46:02 +01:00
|
|
|
if [[ ${tests_posix_only[*]} =~ "$TEST" ]]; then
|
|
|
|
echo "if !HOST_WIN" >> Makefile.am
|
|
|
|
fi
|
2014-07-22 01:30:31 +02:00
|
|
|
if ! [[ ${test_drivers[*]} =~ "$TEST" ]]; then
|
2014-07-10 13:07:09 +02:00
|
|
|
echo "TESTS += $TEST" >> Makefile.am
|
|
|
|
fi
|
|
|
|
echo "check_PROGRAMS += $TEST" >> Makefile.am
|
|
|
|
echo "${TEST}_SOURCES = $i" >> Makefile.am
|
2014-11-20 15:46:02 +01:00
|
|
|
if [[ ${TEST} = "explicit_bzero" ]]; then
|
|
|
|
echo "if !HAVE_MEMMEM" >> Makefile.am
|
|
|
|
echo "explicit_bzero_SOURCES += memmem.c" >> Makefile.am
|
|
|
|
echo "endif" >> Makefile.am
|
|
|
|
fi
|
|
|
|
if [[ ${tests_posix_only[*]} =~ "$TEST" ]]; then
|
|
|
|
echo "endif" >> Makefile.am
|
|
|
|
fi
|
2014-07-10 13:07:09 +02:00
|
|
|
done
|
|
|
|
)
|
2014-07-21 11:21:59 +02:00
|
|
|
$CP $libcrypto_regress/evp/evptests.txt tests
|
|
|
|
$CP $libcrypto_regress/aead/aeadtests.txt tests
|
|
|
|
$CP $libcrypto_regress/pqueue/expected.txt tests/pq_expected.txt
|
2014-07-10 13:07:09 +02:00
|
|
|
chmod 755 tests/testssl
|
2014-07-22 01:30:31 +02:00
|
|
|
for i in "${test_drivers[@]}"; do
|
2014-07-11 02:41:42 +02:00
|
|
|
if [ -e tests/${i}.sh ]; then
|
2014-11-20 15:46:02 +01:00
|
|
|
if [[ ${tests_posix_only[*]} =~ "$i" ]]; then
|
|
|
|
echo "if !HOST_WIN" >> tests/Makefile.am
|
|
|
|
fi
|
2014-07-22 01:30:31 +02:00
|
|
|
if ! [[ ${tests_disabled[*]} =~ "$i" ]]; then
|
|
|
|
echo "TESTS += ${i}.sh" >> tests/Makefile.am
|
2014-11-20 15:46:02 +01:00
|
|
|
else
|
|
|
|
rm -f tests/$i*
|
|
|
|
fi
|
|
|
|
if [[ ${tests_posix_only[*]} =~ "$i" ]]; then
|
|
|
|
echo "endif" >> tests/Makefile.am
|
2014-07-22 01:30:31 +02:00
|
|
|
fi
|
2014-07-11 02:41:42 +02:00
|
|
|
echo "EXTRA_DIST += ${i}.sh" >> tests/Makefile.am
|
|
|
|
fi
|
2014-07-10 13:07:09 +02:00
|
|
|
done
|
|
|
|
echo "EXTRA_DIST += aeadtests.txt" >> tests/Makefile.am
|
|
|
|
echo "EXTRA_DIST += evptests.txt" >> tests/Makefile.am
|
|
|
|
echo "EXTRA_DIST += pq_expected.txt" >> tests/Makefile.am
|
|
|
|
echo "EXTRA_DIST += testssl ca.pem server.pem" >> tests/Makefile.am
|
|
|
|
|
|
|
|
(cd include/openssl
|
2014-07-21 11:21:59 +02:00
|
|
|
$CP Makefile.am.tpl Makefile.am
|
2014-07-10 13:07:09 +02:00
|
|
|
for i in `ls -1 *.h|sort`; do
|
|
|
|
echo "opensslinclude_HEADERS += $i" >> Makefile.am
|
|
|
|
done
|
|
|
|
)
|
|
|
|
|
|
|
|
(cd ssl
|
|
|
|
sed -e "s/libssl-version/${libssl_version}/" Makefile.am.tpl > Makefile.am
|
|
|
|
for i in `ls -1 *.c|sort`; do
|
|
|
|
echo "libssl_la_SOURCES += $i" >> Makefile.am
|
|
|
|
done
|
|
|
|
for i in `ls -1 *.h|sort`; do
|
|
|
|
echo "noinst_HEADERS += $i" >> Makefile.am
|
|
|
|
done
|
|
|
|
)
|
|
|
|
|
|
|
|
# do not directly compile C files that are included in other C files
|
|
|
|
crypto_excludes=(
|
|
|
|
des/ncbc_enc.c
|
|
|
|
chacha/chacha-merged.c
|
|
|
|
poly1305/poly1305-donna.c
|
|
|
|
)
|
2014-11-20 07:26:55 +01:00
|
|
|
crypto_posix_only=(
|
|
|
|
bio/b_posix.c
|
|
|
|
ui/ui_openssl.c
|
|
|
|
)
|
|
|
|
crypto_win32_only=(
|
|
|
|
bio/b_win.c
|
|
|
|
ui/ui_openssl_win.c
|
|
|
|
)
|
2014-07-10 13:07:09 +02:00
|
|
|
(cd crypto
|
|
|
|
sed -e "s/libcrypto-version/${libcrypto_version}/" Makefile.am.tpl > Makefile.am
|
|
|
|
for i in `ls -1 *.c|sort`; do
|
|
|
|
echo "libcrypto_la_SOURCES += $i" >> Makefile.am
|
|
|
|
done
|
|
|
|
for i in `ls -1 *.h|sort`; do
|
|
|
|
echo "noinst_HEADERS += $i" >> Makefile.am
|
|
|
|
done
|
|
|
|
for subdir in $crypto_subdirs; do
|
2014-11-20 05:02:17 +01:00
|
|
|
echo >> Makefile.am
|
|
|
|
echo "# ${subdir}" >> Makefile.am
|
2014-07-10 13:07:09 +02:00
|
|
|
for i in `ls -1 $subdir/*.c|sort`; do
|
2014-11-20 07:26:55 +01:00
|
|
|
if [[ ${crypto_excludes[*]} =~ $i ]]; then
|
2014-11-20 05:02:17 +01:00
|
|
|
echo "EXTRA_libcrypto_la_SOURCES += $i" >> Makefile.am
|
2014-11-20 07:26:55 +01:00
|
|
|
elif [[ ${crypto_posix_only[*]} =~ $i ]]; then
|
|
|
|
echo "if !HOST_WIN" >> Makefile.am
|
|
|
|
echo "libcrypto_la_SOURCES += ${i}" >> Makefile.am
|
|
|
|
echo "endif" >> Makefile.am
|
|
|
|
elif [[ ${crypto_win32_only[*]} =~ $i ]]; then
|
|
|
|
echo "if HOST_WIN" >> Makefile.am
|
|
|
|
echo "libcrypto_la_SOURCES += ${i}" >> Makefile.am
|
|
|
|
echo "endif" >> Makefile.am
|
|
|
|
else
|
|
|
|
echo "libcrypto_la_SOURCES += $i" >> Makefile.am
|
2014-07-10 13:07:09 +02:00
|
|
|
fi
|
|
|
|
done
|
|
|
|
headers=`ls -1 $subdir/*.h 2>/dev/null |sort`
|
|
|
|
if [ "$headers" != "" ]; then
|
|
|
|
for i in $headers; do
|
|
|
|
echo "noinst_HEADERS += $i" >> Makefile.am
|
|
|
|
done
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
)
|
|
|
|
|
2014-07-11 11:47:03 +02:00
|
|
|
# conditional compiles
|
2014-07-21 11:21:59 +02:00
|
|
|
$CP $libc_src/stdlib/strtonum.c apps/
|
2014-07-11 11:47:03 +02:00
|
|
|
apps_excludes=(
|
add minimal poll(2) implementation for Windows
This provides sufficient functionality to run openssl(1) from a Windows
console. This is based on the original select-based version from from
songdongsheng@live.cn. Changes:
* use nfds_t directly for iterating the fds.
* add WSAGetLastError -> errno mappings
* handle POLLHUP and the OOB data cases for revents
* handle sparse arrays of fds correctly
* KNF style updates
* teach poll how to handle file handles as well as sockets
This handles the socket/non-socket issue by alternating a loop between
WaitForMultipleObjects for non-sockets and and select for sockets. One
would think this would be terrible for performance, but as of this
writing, poll consumes about 6% of the time doing a bulk transfer
between a Linux box and 'openssl.exe s_server'.
I tried to implement this all in terms of WaitForMultipleObjects with a
select 'poll' at the end to get extra specific socket status. However,
the cost of setting up an event handle for each socket, setting the
WSAEventSelect attributes, and cleaning them up reliably was pretty
high. Since the event handle associated with a socket is also global,
creating a new one cancels the previous one or can be disabled
externally.
In addition, the 'FD_WRITE' status of a socket event handle does not
behave in an expected fashion, being triggered by an edge on a write
event rather than being level triggered.
Another fun horror story is how stdin in windows might be a console, it
might be a pipe, it might be something else. If these all worked in the
same way, it would be great. But, since a console-stdin can also signal
on a mouse or window event, it means we can easily get stuck in a
blocking read (you can't make stdin non-blocking) if the non-character
events are not filtered out. So, poll does that too.
See here for various additional horror stories:
http://www.postgresql.org/message-id/4351.1336927207@sss.pgh.pa.us
2014-11-20 07:24:20 +01:00
|
|
|
poll.c
|
2014-07-11 11:47:03 +02:00
|
|
|
strtonum.c
|
|
|
|
)
|
2014-11-20 07:26:55 +01:00
|
|
|
apps_posix_only=(
|
|
|
|
apps_posix.c
|
|
|
|
)
|
|
|
|
apps_win32_only=(
|
|
|
|
apps_win.c
|
|
|
|
)
|
2014-07-10 13:07:09 +02:00
|
|
|
(cd apps
|
2014-07-21 11:21:59 +02:00
|
|
|
$CP Makefile.am.tpl Makefile.am
|
2014-07-10 13:07:09 +02:00
|
|
|
for i in `ls -1 *.c|sort`; do
|
2014-11-20 07:26:55 +01:00
|
|
|
if [[ ${apps_posix_only[*]} =~ $i ]]; then
|
|
|
|
echo "if !HOST_WIN" >> Makefile.am
|
|
|
|
echo "openssl_SOURCES += ${i}" >> Makefile.am
|
|
|
|
echo "endif" >> Makefile.am
|
|
|
|
elif [[ ${apps_win32_only[*]} =~ $i ]]; then
|
|
|
|
echo "if HOST_WIN" >> Makefile.am
|
|
|
|
echo "openssl_SOURCES += ${i}" >> Makefile.am
|
|
|
|
echo "endif" >> Makefile.am
|
|
|
|
elif ! [[ ${apps_excludes[*]} =~ $i ]]; then
|
2014-07-11 11:47:03 +02:00
|
|
|
echo "openssl_SOURCES += $i" >> Makefile.am
|
|
|
|
fi
|
2014-07-10 13:07:09 +02:00
|
|
|
done
|
|
|
|
for i in `ls -1 *.h|sort`; do
|
|
|
|
echo "noinst_HEADERS += $i" >> Makefile.am
|
|
|
|
done
|
|
|
|
)
|
2014-07-11 12:14:48 +02:00
|
|
|
|
|
|
|
(cd man
|
2014-07-21 11:21:59 +02:00
|
|
|
$CP Makefile.am.tpl Makefile.am
|
2014-10-13 13:12:07 +02:00
|
|
|
|
|
|
|
# update new-style manpages
|
|
|
|
for i in `ls -1 $libssl_src/src/doc/ssl/*.3 | sort`; do
|
|
|
|
NAME=`basename "$i"`
|
|
|
|
cp $i .
|
|
|
|
echo "dist_man_MANS += $NAME" >> Makefile.am
|
|
|
|
done
|
2014-10-26 15:23:03 +01:00
|
|
|
$CP $openssl_cmd_src/openssl.1 .
|
|
|
|
echo "dist_man_MANS += openssl.1" >> Makefile.am
|
2014-10-13 13:12:07 +02:00
|
|
|
|
|
|
|
# convert remaining POD manpages
|
2014-10-26 15:23:03 +01:00
|
|
|
for i in `ls -1 $libssl_src/src/doc/crypto/*.pod | sort`; do
|
|
|
|
BASE=`echo $i|sed -e "s/\.pod//"`
|
|
|
|
NAME=`basename "$BASE"`
|
|
|
|
# reformat file if new
|
|
|
|
if [ ! -f $NAME.3 -o $BASE.pod -nt $NAME.3 -o ../VERSION -nt $NAME.3 ]; then
|
|
|
|
echo processing $NAME
|
|
|
|
pod2man --official --release="LibreSSL $VERSION" --center=LibreSSL \
|
|
|
|
--section=3 $POD2MAN --name=$NAME < $BASE.pod > $NAME.3
|
|
|
|
fi
|
|
|
|
echo "dist_man_MANS += $NAME.3" >> Makefile.am
|
2014-07-11 18:08:57 +02:00
|
|
|
done
|
2014-07-12 11:36:32 +02:00
|
|
|
|
2014-07-11 07:51:33 +02:00
|
|
|
echo "install-data-hook:" >> Makefile.am
|
2014-07-11 17:51:28 +02:00
|
|
|
source ./links
|
2014-07-11 08:26:35 +02:00
|
|
|
for i in $MLINKS; do
|
2014-07-11 07:51:33 +02:00
|
|
|
IFS=","; set $i; unset IFS
|
2014-07-11 10:55:48 +02:00
|
|
|
echo " ln -f \$(DESTDIR)\$(mandir)/man3/$1 \$(DESTDIR)\$(mandir)/man3/$2" >> Makefile.am
|
2014-07-11 07:15:13 +02:00
|
|
|
done
|
2014-07-11 12:14:48 +02:00
|
|
|
)
|