
JSON-like printing of ASN.1 parsed values. Status: - Not X.697 (JER) compliant, not even close. - String escaping isn't JSON-compliant. - It's not printing the names of CHOICE types. - It's not printing the names of open type choices (i.e., IOS object names) And yet it's quite useful already. It prints all the weird things in EK certs for example. Here's what it outputs for the EK cert we use in check-gen.c: { "_type": "Certificate", "tbsCertificate": { "_type": "TBSCertificate", "_save": "30820376A00302010202146A0597BA71D7E6D3AC0EDC9EDC95A15B998DE40A300D06092A864886F70D01010B05003055310B3009060355040613024348311E301C060355040A131553544D6963726F656C656374726F6E696373204E56312630240603550403131D53544D2054504D20454B20496E7465726D656469617465204341203035301E170D3138313231343030303030305A170D3238313231343030303030305A300030820122300D06092A864886F70D01010105000382010F003082010A0282010100CC14EB27A78CEB0EA486FA2DF7835F5FA8E905B097012B5BDE50380C355B1A2A721BBC3D08DD21796CDB239FA95310651B1B56FD2CFE53C87352EBD996E33256160404CE9302A08066801E786A2F86E181F949966F492A85B58EAA4A6A8CB3697551BB236E87CC7BF8EC1347871C91E15437E8F266BF1EA5EB271FDCF374D8B47DF8BCE89E1FAD61C2A088CB4036B359CB72A294973FEDCCF0C340AFFD14B64F041165581ACA34147C1C75617047058F7ED7D603E032508094FA73E8B9153DA3BF255D2CBBC5DF301BA8F74D198BEBCE86040FC1D2927C7657414490D802F482F3EBF2DE35EE149A1A6DE8D16891FBFBA02A18AFE59F9D6F149744E5F0D559B10203010001A38201A9308201A5301F0603551D230418301680141ADB994AB58BE57A0CC9B900E7851E1A43C0866030420603551D20043B303930370604551D2000302F302D06082B060105050702011621687474703A2F2F7777772E73742E636F6D2F54504D2F7265706F7369746F72792F30590603551D110101FF044F304DA44B304931163014060567810502010C0B69643A353335343444323031173015060567810502020C0C53543333485450484148433031163014060567810502030C0B69643A303034393030303830670603551D090460305E301706056781050210310E300C0C03322E300201000202008A304306056781050212313A30380201000101FFA0030A0101A1030A0100A2030A0100A310300E1603332E310A01040A01020101FFA40F300D16053134302D320A0102010100300E0603551D0F0101FF040403020520300C0603551D130101FF0402300030100603551D250409300706056781050801304A06082B06010505070101043E303C303A06082B06010505073002862E687474703A2F2F7365637572652E676C6F62616C7369676E2E636F6D2F73746D74706D656B696E7430352E637274", "version": "2", "serialNumber": "6A0597BA71D7E6D3AC0EDC9EDC95A15B998DE40A", "signature": { "_type": "AlgorithmIdentifier", "algorithm": "1.2.840.113549.1.1.11", "parameters": "0500" }, "issuer": { "_choice": "rdnSequence", "value": [ [ { "_type": "AttributeTypeAndValue", "type": "2.5.4.6", "value": { "_choice": "printableString", "value": "CH" } } ], [ { "_type": "AttributeTypeAndValue", "type": "2.5.4.10", "value": { "_choice": "printableString", "value": "STMicroelectronics NV" } } ], [ { "_type": "AttributeTypeAndValue", "type": "2.5.4.3", "value": { "_choice": "printableString", "value": "STM TPM EK Intermediate CA 05" } } ] ] }, "validity": { "_type": "Validity", "notBefore": { "_choice": "utcTime", "value": "2018-12-14T00:00:00Z" }, "notAfter": { "_choice": "utcTime", "value": "2028-12-14T00:00:00Z" } }, "subject": { "_choice": "rdnSequence", "value": [] }, "subjectPublicKeyInfo": { "_type": "SubjectPublicKeyInfo", "algorithm": { "_type": "AlgorithmIdentifier", "algorithm": "1.2.840.113549.1.1.1", "parameters": "0500" }, "subjectPublicKey": "2160:3082010A0282010100CC14EB27A78CEB0EA486FA2DF7835F5FA8E905B097012B5BDE50380C355B1A2A721BBC3D08DD21796CDB239FA95310651B1B56FD2CFE53C87352EBD996E33256160404CE9302A08066801E786A2F86E181F949966F492A85B58EAA4A6A8CB3697551BB236E87CC7BF8EC1347871C91E15437E8F266BF1EA5EB271FDCF374D8B47DF8BCE89E1FAD61C2A088CB4036B359CB72A294973FEDCCF0C340AFFD14B64F041165581ACA34147C1C75617047058F7ED7D603E032508094FA73E8B9153DA3BF255D2CBBC5DF301BA8F74D198BEBCE86040FC1D2927C7657414490D802F482F3EBF2DE35EE149A1A6DE8D16891FBFBA02A18AFE59F9D6F149744E5F0D559B10203010001" }, "issuerUniqueID": null, "subjectUniqueID": null, "extensions": [ { "_type": "Extension", "extnID": "2.5.29.35", "critical": false, "extnValue": "301680141ADB994AB58BE57A0CC9B900E7851E1A43C08660", "_extnValue": { "_type": "AuthorityKeyIdentifier", "keyIdentifier": "1ADB994AB58BE57A0CC9B900E7851E1A43C08660", "authorityCertIssuer": null, "authorityCertSerialNumber": null } }, { "_type": "Extension", "extnID": "2.5.29.32", "critical": false, "extnValue": "303930370604551D2000302F302D06082B060105050702011621687474703A2F2F7777772E73742E636F6D2F54504D2F7265706F7369746F72792F", "_extnValue": [ { "_type": "PolicyInformation", "policyIdentifier": "2.5.29.32.0", "policyQualifiers": [ { "_type": "PolicyQualifierInfo", "policyQualifierId": "1.3.6.1.5.5.7.2.1", "qualifier": "1621687474703A2F2F7777772E73742E636F6D2F54504D2F7265706F7369746F72792F" } ] } ] }, { "_type": "Extension", "extnID": "2.5.29.17", "critical": true, "extnValue": "304DA44B304931163014060567810502010C0B69643A353335343444323031173015060567810502020C0C53543333485450484148433031163014060567810502030C0B69643A3030343930303038", "_extnValue": [ { "_choice": "directoryName", "value": { "_choice": "rdnSequence", "value": [ [ { "_type": "AttributeTypeAndValue", "type": "2.23.133.2.1", "value": { "_choice": "utf8String", "value": "id:53544D20" } } ], [ { "_type": "AttributeTypeAndValue", "type": "2.23.133.2.2", "value": { "_choice": "utf8String", "value": "ST33HTPHAHC0" } } ], [ { "_type": "AttributeTypeAndValue", "type": "2.23.133.2.3", "value": { "_choice": "utf8String", "value": "id:00490008" } } ] ] } } ] }, { "_type": "Extension", "extnID": "2.5.29.9", "critical": false, "extnValue": "305E301706056781050210310E300C0C03322E300201000202008A304306056781050212313A30380201000101FFA0030A0101A1030A0100A2030A0100A310300E1603332E310A01040A01020101FFA40F300D16053134302D320A0102010100", "_extnValue": [ { "_type": "AttributeSet", "type": "2.23.133.2.16", "values": [ "300C0C03322E300201000202008A" ], "_values": [ { "_type": "TPMSpecification", "family": "2.0", "level": "0", "revision": "138" } ] }, { "_type": "AttributeSet", "type": "2.23.133.2.18", "values": [ "30380201000101FFA0030A0101A1030A0100A2030A0100A310300E1603332E310A01040A01020101FFA40F300D16053134302D320A0102010100" ], "_values": [ { "_type": "TPMSecurityAssertions", "version": "0", "fieldUpgradable": true, "ekGenerationType": "655617", "ekGenerationLocation": "655616", "ekCertificateGenerationLocation": "655616", "ccInfo": { "_type": "CommonCriteriaMeasures", "version": "3.1", "assurancelevel": "4", "evaluationStatus": "2", "plus": true, "strengthOfFunction": null, "profileOid": null, "profileUri": null, "targetOid": null, "targetUri": null }, "fipsLevel": { "_type": "FIPSLevel", "version": "140-2", "level": "2", "plus": false }, "iso9000Certified": false, "iso9000Uri": null } ] } ] }, { "_type": "Extension", "extnID": "2.5.29.15", "critical": true, "extnValue": "03020520", "_extnValue": [ "keyEncipherment" ] }, { "_type": "Extension", "extnID": "2.5.29.19", "critical": true, "extnValue": "3000", "_extnValue": { "_type": "BasicConstraints", "cA": false, "pathLenConstraint": null } }, { "_type": "Extension", "extnID": "2.5.29.37", "critical": false, "extnValue": "300706056781050801", "_extnValue": [ "2.23.133.8.1" ] }, { "_type": "Extension", "extnID": "1.3.6.1.5.5.7.1.1", "critical": false, "extnValue": "303C303A06082B06010505073002862E687474703A2F2F7365637572652E676C6F62616C7369676E2E636F6D2F73746D74706D656B696E7430352E637274", "_extnValue": [ { "_type": "AccessDescription", "accessMethod": "1.3.6.1.5.5.7.48.2", "accessLocation": { "_choice": "uniformResourceIdentifier", "value": "http://secure.globalsign.com/stmtpmekint05.crt" } } ] } ] }, "signatureAlgorithm": { "_type": "AlgorithmIdentifier", "algorithm": "1.2.840.113549.1.1.11", "parameters": "0500" }, "signatureValue": "2048:3D4C381E5B4F1BCBE09C63D52F1F04570CAEA142FD9CD942043B11F8E3BDCF50007AE16CF8869013041E92CDD3280BA4B51FBBD40582ED750219E261A695095674855AACEB520ADAFF9E7E908480A39CDCF900462D9171960FFE55D3AC49E8C981341BBD2EFBCC252A4C18A4F3B7C84CCE42CE70A208C84D2630A7ABFBE72D6271E75B9FF1C971D20EB3DBD763F1E04D834EAA692D2E4001BBF4730A3E3FDA9711AE386524D91C63BE0E516D00D5C6141FCCF6C539F3518E180049865BE16B69CAE1F8CB7FDC474B38F7EE56CBE7D8A89D9BA99B65D5265AEF32AA62426B10E6D75BB8677EC44F755BBC2806FD2B4E04BDF5D44259DBEAA42B6F563DF7AA7506" }
466 lines
13 KiB
Plaintext
466 lines
13 KiB
Plaintext
########################################################################
|
|
#
|
|
# Copyright (c) 2009, Secure Endpoints Inc.
|
|
# All rights reserved.
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions
|
|
# are met:
|
|
#
|
|
# - Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
#
|
|
# - Redistributions in binary form must reproduce the above copyright
|
|
# notice, this list of conditions and the following disclaimer in
|
|
# the documentation and/or other materials provided with the
|
|
# distribution.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
# POSSIBILITY OF SUCH DAMAGE.
|
|
#
|
|
|
|
RELDIR=lib\asn1
|
|
|
|
intcflags=-I$(SRCDIR) -I$(OBJ) -DROKEN_RENAME -DASN1_IOS_SUPPORTED
|
|
|
|
!include ../../windows/NTMakefile.w32
|
|
|
|
gen_files_krb5 = $(OBJ)\asn1_krb5_asn1.x
|
|
|
|
gen_files_cms = $(OBJ)\asn1_cms_asn1.x
|
|
|
|
gen_files_crmf = $(OBJ)\asn1_crmf_asn1.x
|
|
|
|
gen_files_rfc2459 = $(OBJ)\asn1_rfc2459_asn1.x
|
|
|
|
gen_files_rfc4108 = $(OBJ)\asn1_rfc4108_asn1.x
|
|
|
|
gen_files_ocsp = $(OBJ)\asn1_ocsp_asn1.x
|
|
|
|
gen_files_pkinit = $(OBJ)\asn1_pkinit_asn1.x
|
|
|
|
gen_files_pkcs12 = $(OBJ)\asn1_pkcs12_asn1.x
|
|
|
|
gen_files_pkcs8 = $(OBJ)\asn1_pkcs8_asn1.x
|
|
|
|
gen_files_pkcs9 = $(OBJ)\asn1_pkcs9_asn1.x
|
|
|
|
gen_files_pkcs10 = $(OBJ)\asn1_pkcs10_asn1.x
|
|
|
|
gen_files_test = $(OBJ)\asn1_test_asn1.x
|
|
|
|
gen_files_test_template = $(OBJ)\asn1_test_template_asn1.x
|
|
|
|
gen_files_digest = $(OBJ)\asn1_digest_asn1.x
|
|
|
|
gen_files_kx509 = $(OBJ)\asn1_kx509_asn1.x
|
|
|
|
gen_files_x690sample = $(OBJ)\asn1_x690sample_asn1.x
|
|
|
|
ASN1_BINARIES = \
|
|
$(LIBEXECDIR)\asn1_compile.exe
|
|
|
|
$(BINDIR)\asn1_compile.exe: \
|
|
$(OBJ)\asn1parse.obj \
|
|
$(OBJ)\gen.obj \
|
|
$(OBJ)\gen_copy.obj \
|
|
$(OBJ)\gen_decode.obj \
|
|
$(OBJ)\gen_encode.obj \
|
|
$(OBJ)\gen_free.obj \
|
|
$(OBJ)\gen_glue.obj \
|
|
$(OBJ)\gen_length.obj \
|
|
$(OBJ)\gen_seq.obj \
|
|
$(OBJ)\gen_template.obj \
|
|
$(OBJ)\hash.obj \
|
|
$(OBJ)\lex.obj \
|
|
$(OBJ)\main.obj \
|
|
$(OBJ)\symbol.obj \
|
|
$(OBJ)\asn1_compile-version.res
|
|
$(EXECONLINK) $(LIBROKEN) $(LIBVERS)
|
|
$(EXEPREP_NOHEIM)
|
|
|
|
$(OBJ)\lex.c: lex.l $(OBJ)\asn1parse.h
|
|
$(LEX) -o$@ lex.l
|
|
|
|
$(OBJ)\lex.obj: $(OBJ)\lex.c
|
|
$(C2OBJ) -DYY_NO_UNISTD_H
|
|
|
|
$(OBJ)\asn1parse.c $(OBJ)\asn1parse.h: asn1parse.y
|
|
$(YACC) -o $(OBJ)\asn1parse.c --defines=$(OBJ)\asn1parse.h $**
|
|
|
|
$(OBJ)\asn1_err.c $(OBJ)\asn1_err.h: asn1_err.et
|
|
cd $(OBJ)
|
|
$(BINDIR)\compile_et.exe $(SRCDIR)\asn1_err.et
|
|
cd $(SRCDIR)
|
|
|
|
$(BINDIR)\asn1_print.exe: $(OBJ)\asn1_print.obj $(LIBHEIMDAL)
|
|
$(EXECONLINK) $(LIBVERS) $(LIBROKEN) $(LIBCOMERR)
|
|
$(EXEPREP)
|
|
|
|
$(BINDIR)\asn1_gen.exe: $(OBJ)\asn1_gen.obj $(LIBHEIMDAL)
|
|
$(EXECONLINK) $(LIBVERS) $(LIBROKEN)
|
|
$(EXEPREP)
|
|
|
|
LIBASN1_OBJS= \
|
|
$(OBJ)\der.obj \
|
|
$(OBJ)\der_get.obj \
|
|
$(OBJ)\der_put.obj \
|
|
$(OBJ)\der_free.obj \
|
|
$(OBJ)\der_print.obj \
|
|
$(OBJ)\der_length.obj \
|
|
$(OBJ)\der_copy.obj \
|
|
$(OBJ)\der_cmp.obj \
|
|
$(OBJ)\der_format.obj \
|
|
$(OBJ)\template.obj \
|
|
$(OBJ)\extra.obj \
|
|
$(OBJ)\timegm.obj \
|
|
$(gen_files_rfc2459:.x=.obj) \
|
|
$(gen_files_rfc4108:.x=.obj) \
|
|
$(gen_files_cms:.x=.obj) \
|
|
$(gen_files_krb5:.x=.obj) \
|
|
$(gen_files_ocsp:.x=.obj) \
|
|
$(gen_files_pkinit:.x=.obj) \
|
|
$(gen_files_pkcs8:.x=.obj) \
|
|
$(gen_files_pkcs9:.x=.obj) \
|
|
$(gen_files_pkcs10:.x=.obj) \
|
|
$(gen_files_pkcs12:.x=.obj) \
|
|
$(gen_files_digest:.x=.obj) \
|
|
$(gen_files_kx509:.x=.obj) \
|
|
$(gen_files_x690sample:.x=.obj) \
|
|
$(OBJ)\asn1_err.obj
|
|
|
|
$(OBJ)\oid_resolution.obj: $(LIBASN1_OBJS)
|
|
|
|
LIBASN1_OBJS2= $(LIBASN1_OBJS) $(OBJ)\oid_resolution.obj
|
|
|
|
$(LIBASN1): $(LIBASN1_OBJS2)
|
|
$(LIBCON_C) -out:$@ @<<
|
|
$(**: =
|
|
)
|
|
<<
|
|
|
|
clean::
|
|
-$(RM) $(LIBASN1)
|
|
|
|
#
|
|
# Generate list of exports
|
|
#
|
|
# This target is only used during development to generate a list of
|
|
# symbols that are exported from all the object files in LIBASN1_OBJS.
|
|
#
|
|
exports-list.txt: $(LIBASN1_OBJS)
|
|
$(PERL) ..\..\cf\w32-list-externs-from-objs.pl -q -u @<< > $@
|
|
$(**: =
|
|
)
|
|
<<
|
|
|
|
$(gen_files_krb5:.x=.c) : $$(@R).x
|
|
|
|
$(gen_files_ocsp:.x=.c) : $$(@R).x
|
|
|
|
$(gen_files_pkinit:.x=.c) : $$(@R).x
|
|
|
|
$(gen_files_pkcs8:.x=.c) : $$(@R).x
|
|
|
|
$(gen_files_pkcs9:.x=.c) : $$(@R).x
|
|
|
|
$(gen_files_pkcs10:.x=.c) : $$(@R).x
|
|
|
|
$(gen_files_pkcs12:.x=.c) : $$(@R).x
|
|
|
|
$(gen_files_digest:.x=.c) : $$(@R).x
|
|
|
|
$(gen_files_kx509:.x=.c) : $$(@R).x
|
|
|
|
$(gen_files_rfc2459:.x=.c) : $$(@R).x
|
|
|
|
$(gen_files_rfc4108:.x=.c) : $$(@R).x
|
|
|
|
$(gen_files_cms:.x=.c) : $$(@R).x
|
|
|
|
$(gen_files_crmf:.x=.c) : $$(@R).x
|
|
|
|
$(gen_files_x690sample:.x=.c) : $$(@R).x
|
|
|
|
$(gen_files_test:.x=.c) : $$(@R).x
|
|
|
|
$(gen_files_test_template:.x=.c) : $$(@R).x
|
|
|
|
$(gen_files_krb5) $(OBJ)\krb5_asn1.hx: $(BINDIR)\asn1_compile.exe krb5.asn1 krb5.opt
|
|
cd $(OBJ)
|
|
$(BINDIR)\asn1_compile.exe \
|
|
--template \
|
|
--one-code-file \
|
|
--option-file=$(SRCDIR)\krb5.opt \
|
|
$(SRCDIR)\krb5.asn1 krb5_asn1 \
|
|
|| ($(RM) $(OBJ)\krb5_asn1.h ; exit /b 1)
|
|
cd $(SRCDIR)
|
|
|
|
$(gen_files_ocsp) $(OBJ)\ocsp_asn1.hx: $(BINDIR)\asn1_compile.exe ocsp.asn1
|
|
cd $(OBJ)
|
|
$(BINDIR)\asn1_compile.exe \
|
|
--template \
|
|
--one-code-file \
|
|
--option-file=$(SRCDIR)\ocsp.opt \
|
|
$(SRCDIR)\ocsp.asn1 \
|
|
ocsp_asn1 \
|
|
|| ($(RM) $(OBJ)\ocsp_asn1.h ; exit /b 1)
|
|
cd $(SRCDIR)
|
|
|
|
$(gen_files_pkinit) $(OBJ)\pkinit_asn1.hx: $(BINDIR)\asn1_compile.exe pkinit.asn1
|
|
cd $(OBJ)
|
|
$(BINDIR)\asn1_compile.exe --template --one-code-file $(SRCDIR)\pkinit.asn1 pkinit_asn1 \
|
|
|| ($(RM) $(OBJ)\pkinit_asn1.h ; exit /b 1)
|
|
cd $(SRCDIR)
|
|
|
|
$(gen_files_pkcs8) $(OBJ)\pkcs8_asn1.hx: $(BINDIR)\asn1_compile.exe pkcs8.asn1
|
|
cd $(OBJ)
|
|
$(BINDIR)\asn1_compile.exe --template --one-code-file $(SRCDIR)\pkcs8.asn1 pkcs8_asn1 \
|
|
|| ($(RM) $(OBJ)\pkcs8_asn1.h ; exit /b 1)
|
|
cd $(SRCDIR)
|
|
|
|
$(gen_files_pkcs9) $(OBJ)\pkcs9_asn1.hx: $(BINDIR)\asn1_compile.exe pkcs9.asn1
|
|
cd $(OBJ)
|
|
$(BINDIR)\asn1_compile.exe --template --one-code-file $(SRCDIR)\pkcs9.asn1 pkcs9_asn1 \
|
|
|| ($(RM) $(OBJ)\pkcs9_asn1.h ; exit /b 1)
|
|
cd $(SRCDIR)
|
|
|
|
$(gen_files_pkcs10) $(OBJ)\pkcs10_asn1.hx: $(BINDIR)\asn1_compile.exe pkcs10.asn1
|
|
cd $(OBJ)
|
|
$(BINDIR)\asn1_compile.exe \
|
|
--template \
|
|
--one-code-file \
|
|
--option-file=$(SRCDIR)\pkcs10.opt \
|
|
$(SRCDIR)\pkcs10.asn1 \
|
|
pkcs10_asn1 \
|
|
|| ($(RM) $(OBJ)\pkcs10_asn1.h ; exit /b 1)
|
|
cd $(SRCDIR)
|
|
|
|
$(gen_files_pkcs12) $(OBJ)\pkcs12_asn1.hx: $(BINDIR)\asn1_compile.exe pkcs12.asn1
|
|
cd $(OBJ)
|
|
$(BINDIR)\asn1_compile.exe --template --one-code-file $(SRCDIR)\pkcs12.asn1 pkcs12_asn1 \
|
|
|| ($(RM) $(OBJ)\pkcs12_asn1.h ; exit /b 1)
|
|
cd $(SRCDIR)
|
|
|
|
$(gen_files_digest) $(OBJ)\digest_asn1.hx: $(BINDIR)\asn1_compile.exe digest.asn1
|
|
cd $(OBJ)
|
|
$(BINDIR)\asn1_compile.exe --template --one-code-file $(SRCDIR)\digest.asn1 digest_asn1 \
|
|
|| ($(RM) $(OBJ)\digest_asn1.h ; exit /b 1)
|
|
cd $(SRCDIR)
|
|
|
|
$(gen_files_kx509) $(OBJ)\kx509_asn1.hx: $(BINDIR)\asn1_compile.exe kx509.asn1
|
|
cd $(OBJ)
|
|
$(BINDIR)\asn1_compile.exe --template --one-code-file $(SRCDIR)\kx509.asn1 kx509_asn1 \
|
|
|| ($(RM) $(OBJ)\kx509_asn1.h ; exit /b 1)
|
|
cd $(SRCDIR)
|
|
|
|
$(gen_files_rfc2459) $(OBJ)\rfc2459_asn1.hx: $(BINDIR)\asn1_compile.exe rfc2459.asn1
|
|
cd $(OBJ)
|
|
$(BINDIR)\asn1_compile.exe \
|
|
--template \
|
|
--one-code-file \
|
|
--option-file=$(SRCDIR)\rfc2459.opt \
|
|
$(SRCDIR)\rfc2459.asn1 rfc2459_asn1 \
|
|
|| ($(RM) $(OBJ)\rfc2459_asn1.h ; exit /b 1)
|
|
cd $(SRCDIR)
|
|
|
|
$(gen_files_rfc4108) $(OBJ)\rfc4108_asn1.hx: $(BINDIR)\asn1_compile.exe rfc4108.asn1
|
|
cd $(OBJ)
|
|
$(BINDIR)\asn1_compile.exe \
|
|
--template \
|
|
--one-code-file \
|
|
$(SRCDIR)\rfc4108.asn1 rfc4108_asn1 \
|
|
|| ($(RM) $(OBJ)\rfc4108_asn1.h ; exit /b 1)
|
|
cd $(SRCDIR)
|
|
|
|
$(gen_files_cms) $(OBJ)\cms_asn1.hx: $(BINDIR)\asn1_compile.exe cms.asn1 cms.opt
|
|
cd $(OBJ)
|
|
$(BINDIR)\asn1_compile.exe \
|
|
--template \
|
|
--one-code-file --option-file=$(SRCDIR)\cms.opt \
|
|
$(SRCDIR)\cms.asn1 cms_asn1 \
|
|
|| ($(RM) $(OBJ)\cms_asn1.h ; exit /b 1)
|
|
cd $(SRCDIR)
|
|
|
|
$(gen_files_crmf) $(OBJ)\crmf_asn1.hx: $(BINDIR)\asn1_compile.exe crmf.asn1 crmf.opt
|
|
cd $(OBJ)
|
|
$(BINDIR)\asn1_compile.exe \
|
|
--template \
|
|
--one-code-file --option-file=$(SRCDIR)\crmf.opt \
|
|
$(SRCDIR)\crmf.asn1 crmf_asn1 \
|
|
|| ($(RM) $(OBJ)\crmf_asn1.h ; exit /b 1)
|
|
cd $(SRCDIR)
|
|
|
|
$(gen_files_x690sample) $(OBJ)\x690sample_asn1.hx: $(BINDIR)\asn1_compile.exe x690sample.asn1
|
|
cd $(OBJ)
|
|
$(BINDIR)\asn1_compile.exe \
|
|
--template \
|
|
--one-code-file \
|
|
$(SRCDIR)\x690sample.asn1 x690sample_asn1 \
|
|
|| ($(RM) $(OBJ)\x690sample_asn1.h ; exit /b 1)
|
|
cd $(SRCDIR)
|
|
|
|
$(gen_files_test) $(OBJ)\test_asn1.hx: $(BINDIR)\asn1_compile.exe test.asn1
|
|
cd $(OBJ)
|
|
$(BINDIR)\asn1_compile.exe \
|
|
--template \
|
|
--one-code-file --sequence=TESTSeqOf \
|
|
$(SRCDIR)\test.asn1 test_asn1 \
|
|
|| ($(RM) $(OBJ)\test_asn1.h ; exit /b 1)
|
|
cd $(SRCDIR)
|
|
|
|
$(gen_files_test_template) $(OBJ)\test_template_asn1.hx: $(BINDIR)\asn1_compile.exe test.asn1
|
|
cd $(OBJ)
|
|
$(BINDIR)\asn1_compile.exe \
|
|
--template \
|
|
--one-code-file --template \
|
|
--sequence=TESTSeqOf \
|
|
$(SRCDIR)\test.asn1 test_template_asn1 \
|
|
|| ($(RM) $(OBJ)\test_template_asn1.h ; exit /b 1)
|
|
cd $(SRCDIR)
|
|
|
|
INCFILES= \
|
|
$(INCDIR)\der.h \
|
|
$(INCDIR)\heim_asn1.h \
|
|
$(INCDIR)\der-protos.h \
|
|
$(INCDIR)\der-private.h \
|
|
$(INCDIR)\asn1-common.h \
|
|
$(INCDIR)\asn1-template.h \
|
|
$(OBJ)\asn1_err.h
|
|
|
|
$(INCDIR)\der-protos.h: $(OBJ)\der-protos.h
|
|
|
|
GENINCFILES= \
|
|
$(INCDIR)\asn1_err.h \
|
|
$(INCDIR)\cms_asn1.h \
|
|
$(INCDIR)\crmf_asn1.h \
|
|
$(INCDIR)\digest_asn1.h \
|
|
$(INCDIR)\krb5_asn1.h \
|
|
$(INCDIR)\kx509_asn1.h \
|
|
$(INCDIR)\ocsp_asn1.h \
|
|
$(INCDIR)\pkcs12_asn1.h \
|
|
$(INCDIR)\pkcs8_asn1.h \
|
|
$(INCDIR)\pkcs9_asn1.h \
|
|
$(INCDIR)\pkcs10_asn1.h \
|
|
$(INCDIR)\pkinit_asn1.h \
|
|
$(INCDIR)\rfc2459_asn1.h \
|
|
$(INCDIR)\rfc4108_asn1.h \
|
|
$(INCDIR)\x690sample_asn1.h \
|
|
$(OBJ)\krb5_asn1-priv.h \
|
|
$(OBJ)\ocsp_asn1-priv.h \
|
|
$(OBJ)\pkinit_asn1-priv.h \
|
|
$(OBJ)\cms_asn1-priv.h \
|
|
$(OBJ)\crmf_asn1-priv.h \
|
|
$(OBJ)\rfc2459_asn1-priv.h \
|
|
$(OBJ)\rfc4108_asn1-priv.h \
|
|
$(OBJ)\x690sample_asn1-priv.h \
|
|
$(OBJ)\pkcs8_asn1-priv.h \
|
|
$(OBJ)\pkcs9_asn1-priv.h \
|
|
$(OBJ)\pkcs10_asn1-priv.h \
|
|
$(OBJ)\pkcs12_asn1-priv.h \
|
|
$(OBJ)\digest_asn1-priv.h \
|
|
$(OBJ)\kx509_asn1-priv.h \
|
|
$(OBJ)\test_template_asn1.h \
|
|
$(OBJ)\test_template_asn1-priv.h \
|
|
$(OBJ)\test_asn1.h \
|
|
$(OBJ)\test_asn1-priv.h
|
|
|
|
libasn1_base_SOURCES= \
|
|
der_locl.h \
|
|
der.c \
|
|
der.h \
|
|
der_get.c \
|
|
der_put.c \
|
|
der_free.c \
|
|
der_print.c \
|
|
der_length.c \
|
|
der_copy.c \
|
|
der_cmp.c \
|
|
der_format.c \
|
|
template.c \
|
|
heim_asn1.h \
|
|
extra.c \
|
|
timegm.c
|
|
|
|
libasn1_SOURCES= \
|
|
oid_resolution.c
|
|
|
|
$(OBJ)\der-protos.h: $(libasn1_SOURCES)
|
|
$(PERL) ..\..\cf\make-proto.pl -q -P remove -o $(OBJ)\der-protos.h $(libasn1_base_SOURCES) $(libasn1_SOURCES) || $(RM) $(OBJ)\der-protos.h
|
|
|
|
$(OBJ)\der-private.h: $(libasn1_SOURCES)
|
|
$(PERL) ..\..\cf\make-proto.pl -q -P remove -p $(OBJ)\der-private.h $(libasn1_base_SOURCES) $(libasn1_SOURCES) || $(RM) $(OBJ)\der-private.h
|
|
|
|
clean::
|
|
-$(RM) $(INCDIR)\der-protos.h
|
|
|
|
all:: $(INCFILES) $(GENINCFILES) $(ASN1_BINARIES) $(LIBASN1)
|
|
|
|
all-tools:: $(LIBEXECDIR)\asn1_print.exe $(BINDIR)\asn1_gen.exe
|
|
|
|
clean::
|
|
-$(RM) $(INCFILES)
|
|
-$(RM) $(GENINCFILES)
|
|
-$(RM) $(ASN1_BINARIES:.exe=.*)
|
|
-$(RM) $(LIBASN1)
|
|
-$(RM) $(LIBEXECDIR)\asn1_print.*
|
|
-$(RM) $(LIBEXECDIR)\asn1_gen.*
|
|
|
|
TEST_BINARIES=\
|
|
$(OBJ)\check-der.exe \
|
|
$(OBJ)\check-gen-template.exe \
|
|
$(OBJ)\check-timegm.exe \
|
|
$(OBJ)\check-ber.exe \
|
|
$(OBJ)\check-template.exe
|
|
|
|
test-binaries: $(TEST_BINARIES)
|
|
|
|
test-run:
|
|
cd $(OBJ)
|
|
-check-der.exe
|
|
-check-gen-template.exe
|
|
-check-timegm.exe
|
|
-check-ber.exe
|
|
-check-template.exe
|
|
cd $(SRC)
|
|
|
|
test:: test-binaries test-run
|
|
|
|
clean::
|
|
-$(RM) $(TEST_BINARIES:.exe=*)
|
|
|
|
$(OBJ)\check-ber.exe: $(OBJ)\check-ber.obj \
|
|
$(LIBHEIMDAL) $(LIBROKEN)
|
|
$(EXECONLINK)
|
|
$(EXEPREP_NODIST)
|
|
|
|
$(OBJ)\check-der.exe: $(OBJ)\check-der.obj $(OBJ)\check-common.obj \
|
|
$(LIBHEIMDAL) $(LIBROKEN)
|
|
$(EXECONLINK)
|
|
$(EXEPREP_NODIST)
|
|
|
|
$(OBJ)\check-gen-template.exe: $(OBJ)\check-gen.obj $(OBJ)\check-common.obj \
|
|
$(LIBHEIMDAL) $(LIBROKEN) $(gen_files_test_template:.x=.obj)
|
|
$(EXECONLINK)
|
|
$(EXEPREP_NODIST)
|
|
|
|
$(OBJ)\check-timegm.exe: $(OBJ)\check-timegm.obj \
|
|
$(LIBHEIMDAL) $(LIBROKEN)
|
|
$(EXECONLINK)
|
|
$(EXEPREP_NODIST)
|
|
|
|
$(OBJ)\check-template.exe: $(OBJ)\check-template.obj $(OBJ)\check-common.obj \
|
|
$(LIBHEIMDAL) $(LIBROKEN) $(gen_files_test:.x=.obj)
|
|
$(EXECONLINK)
|
|
$(EXEPREP_NODIST)
|