Files
heimdal/lib/hx509/Makefile.am
Nicolas Williams 490337f4f9 Make OpenSSL an hcrypto backend proper
This adds a new backend for libhcrypto: the OpenSSL backend.

Now libhcrypto has these backends:

 - hcrypto itself (i.e., the algorithms coded in lib/hcrypto)
 - Common Crypto (OS X)
 - PKCS#11 (specifically for Solaris, but not Solaris-specific)
 - Windows CNG (Windows)
 - OpenSSL (generic)

The ./configure --with-openssl=... option no longer disables the use of
hcrypto.  Instead it enables the use of OpenSSL as a (and the default)
backend in libhcrypto.  The libhcrypto framework is now always used.

OpenSSL should no longer be used directly within Heimdal, except in the
OpenSSL hcrypto backend itself, and files where elliptic curve (EC)
crypto is needed.

Because libhcrypto's EC support is incomplete, we can only use OpenSSL
for EC.  Currently that means separating all EC-using code so that it
does not use hcrypto, thus the libhx509/hxtool and PKINIT EC code has
been moved out of the files it used to be in.
2016-04-15 00:16:17 -05:00

444 lines
11 KiB
Makefile

include $(top_srcdir)/Makefile.am.common
lib_LTLIBRARIES = libhx509.la
libhx509_la_LDFLAGS = -version-info 5:0:0
BUILT_SOURCES = \
sel-gram.h \
$(gen_files_ocsp:.x=.c) \
$(gen_files_pkcs10:.x=.c) \
hx509_err.c \
hx509_err.h
gen_files_ocsp = \
asn1_OCSPBasicOCSPResponse.x \
asn1_OCSPCertID.x \
asn1_OCSPCertStatus.x \
asn1_OCSPInnerRequest.x \
asn1_OCSPKeyHash.x \
asn1_OCSPRequest.x \
asn1_OCSPResponderID.x \
asn1_OCSPResponse.x \
asn1_OCSPResponseBytes.x \
asn1_OCSPResponseData.x \
asn1_OCSPResponseStatus.x \
asn1_OCSPSignature.x \
asn1_OCSPSingleResponse.x \
asn1_OCSPTBSRequest.x \
asn1_OCSPVersion.x \
asn1_id_pkix_ocsp.x \
asn1_id_pkix_ocsp_basic.x \
asn1_id_pkix_ocsp_nonce.x
gen_files_pkcs10 = \
asn1_CertificationRequestInfo.x \
asn1_CertificationRequest.x
gen_files_crmf = \
asn1_CRMFRDNSequence.x \
asn1_CertReqMessages.x \
asn1_CertReqMsg.x \
asn1_CertRequest.x \
asn1_CertTemplate.x \
asn1_Controls.x \
asn1_PBMParameter.x \
asn1_PKMACValue.x \
asn1_POPOPrivKey.x \
asn1_POPOSigningKey.x \
asn1_POPOSigningKeyInput.x \
asn1_ProofOfPossession.x \
asn1_SubsequentMessage.x
AM_YFLAGS = -d
dist_libhx509_la_SOURCES = \
ca.c \
cert.c \
char_map.h \
cms.c \
collector.c \
crypto.c \
crypto-ec.c \
doxygen.c \
error.c \
env.c \
file.c \
hx509.h \
hx_locl.h \
sel.c \
sel.h \
sel-gram.y \
sel-lex.l \
keyset.c \
ks_dir.c \
ks_file.c \
ks_mem.c \
ks_null.c \
ks_p11.c \
ks_p12.c \
ks_keychain.c \
lock.c \
name.c \
peer.c \
print.c \
softp11.c \
ref/pkcs11.h \
req.c \
revoke.c
sel-lex.c: sel-gram.h
libhx509_la_DEPENDENCIES = version-script.map
libhx509_la_LIBADD = \
$(LIB_com_err) \
$(LIB_hcrypto) \
$(LIB_openssl_crypto) \
$(top_builddir)/lib/asn1/libasn1.la \
$(top_builddir)/lib/wind/libwind.la \
$(top_builddir)/lib/base/libheimbase.la \
$(LIBADD_roken) \
$(LIB_dlopen)
if FRAMEWORK_SECURITY
libhx509_la_LDFLAGS += -framework Security -framework CoreFoundation
endif
if versionscript
libhx509_la_LDFLAGS += $(LDFLAGS_VERSION_SCRIPT)$(srcdir)/version-script.map
endif
$(libhx509_la_OBJECTS): $(srcdir)/version-script.map $(nodist_include_HEADERS) $(priv_headers)
nodist_libhx509_la_SOURCES = $(BUILT_SOURCES)
$(gen_files_ocsp) ocsp_asn1.hx ocsp_asn1-priv.hx: ocsp_asn1_files
$(gen_files_pkcs10) pkcs10_asn1.hx pkcs10_asn1-priv.hx: pkcs10_asn1_files
$(gen_files_crmf) crmf_asn1.hx crmf_asn1-priv.hx: crmf_asn1_files
dist_include_HEADERS = hx509.h $(srcdir)/hx509-protos.h
noinst_HEADERS = $(srcdir)/hx509-private.h
nodist_include_HEADERS = hx509_err.h
nodist_include_HEADERS += ocsp_asn1.h
nodist_include_HEADERS += pkcs10_asn1.h
nodist_include_HEADERS += crmf_asn1.h
priv_headers = ocsp_asn1-priv.h
priv_headers += pkcs10_asn1-priv.h
priv_headers += crmf_asn1-priv.h
ocsp_asn1_files: $(ASN1_COMPILE_DEP) $(srcdir)/ocsp.asn1 $(srcdir)/ocsp.opt
$(heim_verbose)$(ASN1_COMPILE) --option-file=$(srcdir)/ocsp.opt $(srcdir)/ocsp.asn1 ocsp_asn1 || (rm -f ocsp_asn1_files ; exit 1)
pkcs10_asn1_files: $(ASN1_COMPILE_DEP) $(srcdir)/pkcs10.asn1 $(srcdir)/pkcs10.opt
$(heim_verbose)$(ASN1_COMPILE) --option-file=$(srcdir)/pkcs10.opt $(srcdir)/pkcs10.asn1 pkcs10_asn1 || (rm -f pkcs10_asn1_files ; exit 1)
crmf_asn1_files: $(ASN1_COMPILE_DEP) $(srcdir)/crmf.asn1
$(heim_verbose)$(ASN1_COMPILE) $(srcdir)/crmf.asn1 crmf_asn1 || (rm -f crmf_asn1_files ; exit 1)
ALL_OBJECTS = $(libhx509_la_OBJECTS)
ALL_OBJECTS += $(hxtool_OBJECTS)
HX509_PROTOS = $(srcdir)/hx509-protos.h $(srcdir)/hx509-private.h
$(ALL_OBJECTS): $(HX509_PROTOS)
$(libhx509_la_OBJECTS): $(srcdir)/hx_locl.h
$(libhx509_la_OBJECTS): ocsp_asn1.h pkcs10_asn1.h
$(srcdir)/hx509-protos.h: $(dist_libhx509_la_SOURCES)
$(heim_verbose)cd $(srcdir) && perl ../../cf/make-proto.pl -R '^(_|^C)' -E HX509_LIB -q -P comment -o hx509-protos.h $(dist_libhx509_la_SOURCES) || rm -f hx509-protos.h
$(srcdir)/hx509-private.h: $(dist_libhx509_la_SOURCES)
$(heim_verbose)cd $(srcdir) && perl ../../cf/make-proto.pl -q -P comment -p hx509-private.h $(dist_libhx509_la_SOURCES) || rm -f hx509-private.h
bin_PROGRAMS = hxtool
hxtool-commands.c hxtool-commands.h: hxtool-commands.in $(SLC)
$(heim_verbose)$(SLC) $(srcdir)/hxtool-commands.in
dist_hxtool_SOURCES = hxtool.c
nodist_hxtool_SOURCES = hxtool-commands.c hxtool-commands.h
$(hxtool_OBJECTS): hxtool-commands.h hx509_err.h
hxtool_LDADD = \
libhx509.la \
$(top_builddir)/lib/asn1/libasn1.la \
$(LIB_hcrypto) \
$(LIB_roken) \
$(top_builddir)/lib/sl/libsl.la
CLEANFILES = $(BUILT_SOURCES) sel-gram.c sel-lex.c \
$(gen_files_ocsp) ocsp_asn1_files ocsp_asn1{,-priv}.h* \
ocsp_asn1-template.[chx]* \
$(gen_files_pkcs10) pkcs10_asn1_files pkcs10_asn1{,-priv}.h* \
pkcs10_asn1-template.[chx]* \
$(gen_files_crmf) crmf_asn1_files crmf_asn1{,-priv}.h* \
crmf_asn1-template.[chx]* \
$(TESTS) \
hxtool-commands.c hxtool-commands.h *.tmp \
request.out \
out.pem out2.pem \
sd sd.pem \
sd.data sd.data.out \
ev.data ev.data.out \
cert-null.pem cert-sub-ca2.pem \
cert-ee.pem cert-ca.pem \
cert-sub-ee.pem cert-sub-ca.pem \
cert-proxy.der cert-ca.der cert-ee.der pkcs10-request.der \
wca.pem wuser.pem wdc.pem wcrl.crl \
random-data statfile crl.crl \
test p11dbg.log pkcs11.cfg \
test-rc-file.rc
clean-local:
@echo "cleaning PKITS" ; rm -rf PKITS_data
#
# regression tests
#
check_SCRIPTS = $(SCRIPT_TESTS)
check_PROGRAMS = $(PROGRAM_TESTS) test_soft_pkcs11
LDADD = libhx509.la
test_soft_pkcs11_LDADD = libhx509.la
test_name_LDADD = libhx509.la $(LIB_roken)
test_expr_LDADD = libhx509.la $(LIB_roken)
TESTS = $(SCRIPT_TESTS) $(PROGRAM_TESTS)
PROGRAM_TESTS = \
test_name \
test_expr
SCRIPT_TESTS = \
test_ca \
test_cert \
test_chain \
test_cms \
test_crypto \
test_nist \
test_nist2 \
test_pkcs11 \
test_java_pkcs11 \
test_nist_cert \
test_nist_pkcs12 \
test_req \
test_windows \
test_query
do_subst = $(heim_verbose)sed -e 's,[@]srcdir[@],$(srcdir),g' \
-e 's,[@]objdir[@],$(top_builddir)/lib/hx509,g' \
-e 's,[@]egrep[@],$(EGREP),g'
test_ca: test_ca.in Makefile
$(do_subst) < $(srcdir)/test_ca.in > test_ca.tmp
$(heim_verbose)chmod +x test_ca.tmp
mv test_ca.tmp test_ca
test_cert: test_cert.in Makefile
$(do_subst) < $(srcdir)/test_cert.in > test_cert.tmp
$(heim_verbose)chmod +x test_cert.tmp
mv test_cert.tmp test_cert
test_chain: test_chain.in Makefile
$(do_subst) < $(srcdir)/test_chain.in > test_chain.tmp
$(heim_verbose)chmod +x test_chain.tmp
mv test_chain.tmp test_chain
test_cms: test_cms.in Makefile
$(do_subst) < $(srcdir)/test_cms.in > test_cms.tmp
$(heim_verbose)chmod +x test_cms.tmp
mv test_cms.tmp test_cms
test_crypto: test_crypto.in Makefile
$(do_subst) < $(srcdir)/test_crypto.in > test_crypto.tmp
$(heim_verbose)chmod +x test_crypto.tmp
mv test_crypto.tmp test_crypto
test_nist: test_nist.in Makefile
$(do_subst) < $(srcdir)/test_nist.in > test_nist.tmp
$(heim_verbose)chmod +x test_nist.tmp
mv test_nist.tmp test_nist
test_nist2: test_nist2.in Makefile
$(do_subst) < $(srcdir)/test_nist2.in > test_nist2.tmp
$(heim_verbose)chmod +x test_nist2.tmp
mv test_nist2.tmp test_nist2
test_pkcs11: test_pkcs11.in Makefile
$(do_subst) < $(srcdir)/test_pkcs11.in > test_pkcs11.tmp
$(heim_verbose)chmod +x test_pkcs11.tmp
mv test_pkcs11.tmp test_pkcs11
test_java_pkcs11: test_java_pkcs11.in Makefile
$(do_subst) < $(srcdir)/test_java_pkcs11.in > test_java_pkcs11.tmp
$(heim_verbose)chmod +x test_java_pkcs11.tmp
mv test_java_pkcs11.tmp test_java_pkcs11
test_nist_cert: test_nist_cert.in Makefile
$(do_subst) < $(srcdir)/test_nist_cert.in > test_nist_cert.tmp
$(heim_verbose)chmod +x test_nist_cert.tmp
mv test_nist_cert.tmp test_nist_cert
test_nist_pkcs12: test_nist_pkcs12.in Makefile
$(do_subst) < $(srcdir)/test_nist_pkcs12.in > test_nist_pkcs12.tmp
$(heim_verbose)chmod +x test_nist_pkcs12.tmp
mv test_nist_pkcs12.tmp test_nist_pkcs12
test_req: test_req.in Makefile
$(do_subst) < $(srcdir)/test_req.in > test_req.tmp
$(heim_verbose)chmod +x test_req.tmp
mv test_req.tmp test_req
test_windows: test_windows.in Makefile
$(do_subst) < $(srcdir)/test_windows.in > test_windows.tmp
$(heim_verbose)chmod +x test_windows.tmp
mv test_windows.tmp test_windows
test_query: test_query.in Makefile
$(do_subst) < $(srcdir)/test_query.in > test_query.tmp
$(heim_verbose)chmod +x test_query.tmp
mv test_query.tmp test_query
EXTRA_DIST = \
NTMakefile \
hxtool-version.rc \
libhx509-exports.def \
version-script.map \
crmf.asn1 \
hx509_err.et \
hxtool-commands.in \
quote.py \
ocsp.asn1 \
ocsp.opt \
pkcs10.asn1 \
pkcs10.opt \
test_ca.in \
test_chain.in \
test_cert.in \
test_cms.in \
test_crypto.in \
test_nist.in \
test_nist2.in \
test_nist_cert.in \
test_nist_pkcs12.in \
test_pkcs11.in \
test_java_pkcs11.in \
test_query.in \
test_req.in \
test_windows.in \
tst-crypto-available1 \
tst-crypto-available2 \
tst-crypto-available3 \
tst-crypto-select \
tst-crypto-select1 \
tst-crypto-select2 \
tst-crypto-select3 \
tst-crypto-select4 \
tst-crypto-select5 \
tst-crypto-select6 \
tst-crypto-select7 \
data/n0ll.pem \
data/secp256r1TestCA.cert.pem \
data/secp256r1TestCA.key.pem \
data/secp256r1TestCA.pem \
data/secp256r2TestClient.cert.pem \
data/secp256r2TestClient.key.pem \
data/secp256r2TestClient.pem \
data/secp256r2TestServer.cert.pem \
data/secp256r2TestServer.key.pem \
data/secp256r2TestServer.pem \
data/bleichenbacher-bad.pem \
data/bleichenbacher-good.pem \
data/bleichenbacher-sf-pad-correct.pem \
data/ca.crt \
data/ca.key \
data/crl1.crl \
data/crl1.der \
data/gen-req.sh \
data/j.pem \
data/kdc.crt \
data/kdc.key \
data/key.der \
data/key2.der \
data/nist-data \
data/nist-data2 \
data/no-proxy-test.crt \
data/no-proxy-test.key \
data/ocsp-req1.der \
data/ocsp-req2.der \
data/ocsp-resp1-2.der \
data/ocsp-resp1-3.der \
data/ocsp-resp1-ca.der \
data/ocsp-resp1-keyhash.der \
data/ocsp-resp1-ocsp-no-cert.der \
data/ocsp-resp1-ocsp.der \
data/ocsp-resp1.der \
data/ocsp-resp2.der \
data/ocsp-responder.crt \
data/ocsp-responder.key \
data/openssl.cnf \
data/pkinit-proxy-chain.crt \
data/pkinit-proxy.crt \
data/pkinit-proxy.key \
data/pkinit-pw.key \
data/pkinit.crt \
data/pkinit.key \
data/pkinit-ec.crt \
data/pkinit-ec.key \
data/proxy-level-test.crt \
data/proxy-level-test.key \
data/proxy-test.crt \
data/proxy-test.key \
data/proxy10-child-test.crt \
data/proxy10-child-test.key \
data/proxy10-child-child-test.crt \
data/proxy10-child-child-test.key \
data/proxy10-test.crt \
data/proxy10-test.key \
data/revoke.crt \
data/revoke.key \
data/sf-class2-root.pem \
data/static-file \
data/sub-ca.crt \
data/sub-ca.key \
data/sub-cert.crt \
data/sub-cert.key \
data/sub-cert.p12 \
data/test-ds-only.crt \
data/test-ds-only.key \
data/test-enveloped-aes-128 \
data/test-enveloped-aes-256 \
data/test-enveloped-des \
data/test-enveloped-des-ede3 \
data/test-enveloped-rc2-128 \
data/test-enveloped-rc2-40 \
data/test-enveloped-rc2-64 \
data/test-ke-only.crt \
data/test-ke-only.key \
data/test-nopw.p12 \
data/test-pw.key \
data/test-signed-data \
data/test-signed-data-noattr \
data/test-signed-data-noattr-nocerts \
data/test-signed-sha-1 \
data/test-signed-sha-256 \
data/test-signed-sha-512 \
data/test.combined.crt \
data/test.crt \
data/test.key \
data/test.p12 \
data/win-u16-in-printablestring.der \
data/yutaka-pad-broken-ca.pem \
data/yutaka-pad-broken-cert.pem \
data/yutaka-pad-ok-ca.pem \
data/yutaka-pad-ok-cert.pem \
data/yutaka-pad.key