ASN_MODULE_SOURCES= \ Attribute.c \ AttributeType.c \ AttributeValue.c \ AttributeTypeAndValue.c \ X520name.c \ X520CommonName.c \ X520LocalityName.c \ X520StateOrProvinceName.c \ X520OrganizationName.c \ X520OrganizationalUnitName.c \ X520Title.c \ X520dnQualifier.c \ X520countryName.c \ X520SerialNumber.c \ X520Pseudonym.c \ DomainComponent.c \ EmailAddress.c \ Name.c \ RDNSequence.c \ DistinguishedName.c \ RelativeDistinguishedName.c \ DirectoryString.c \ Certificate.c \ TBSCertificate.c \ Version.c \ CertificateSerialNumber.c \ Validity.c \ Time.c \ UniqueIdentifier.c \ SubjectPublicKeyInfo.c \ Extensions.c \ Extension.c \ CertificateList.c \ TBSCertList.c \ AlgorithmIdentifier.c \ ORAddress.c \ BuiltInStandardAttributes.c \ CountryName.c \ AdministrationDomainName.c \ NetworkAddress.c \ X121Address.c \ TerminalIdentifier.c \ PrivateDomainName.c \ OrganizationName.c \ NumericUserIdentifier.c \ PersonalName.c \ OrganizationalUnitNames.c \ OrganizationalUnitName.c \ BuiltInDomainDefinedAttributes.c \ BuiltInDomainDefinedAttribute.c \ ExtensionAttributes.c \ ExtensionAttribute.c \ CommonName.c \ TeletexCommonName.c \ TeletexOrganizationName.c \ TeletexPersonalName.c \ TeletexOrganizationalUnitNames.c \ TeletexOrganizationalUnitName.c \ PDSName.c \ PhysicalDeliveryCountryName.c \ PostalCode.c \ PhysicalDeliveryOfficeName.c \ PhysicalDeliveryOfficeNumber.c \ ExtensionORAddressComponents.c \ PhysicalDeliveryPersonalName.c \ PhysicalDeliveryOrganizationName.c \ ExtensionPhysicalDeliveryAddressComponents.c \ UnformattedPostalAddress.c \ StreetAddress.c \ PostOfficeBoxAddress.c \ PosteRestanteAddress.c \ UniquePostalName.c \ LocalPostalAttributes.c \ PDSParameter.c \ ExtendedNetworkAddress.c \ PresentationAddress.c \ TerminalType.c \ TeletexDomainDefinedAttributes.c \ TeletexDomainDefinedAttribute.c \ AuthorityKeyIdentifier.c \ KeyIdentifier.c \ SubjectKeyIdentifier.c \ KeyUsage.c \ PrivateKeyUsagePeriod.c \ CertificatePolicies.c \ PolicyInformation.c \ CertPolicyId.c \ PolicyQualifierInfo.c \ PolicyQualifierId.c \ CPSuri.c \ UserNotice.c \ NoticeReference.c \ DisplayText.c \ PolicyMappings.c \ SubjectAltName.c \ GeneralNames.c \ GeneralName.c \ AnotherName.c \ EDIPartyName.c \ IssuerAltName.c \ SubjectDirectoryAttributes.c \ BasicConstraints.c \ NameConstraints.c \ GeneralSubtrees.c \ GeneralSubtree.c \ BaseDistance.c \ PolicyConstraints.c \ SkipCerts.c \ CRLDistributionPoints.c \ DistributionPoint.c \ DistributionPointName.c \ ReasonFlags.c \ ExtKeyUsageSyntax.c \ KeyPurposeId.c \ InhibitAnyPolicy.c \ FreshestCRL.c \ AuthorityInfoAccessSyntax.c \ AccessDescription.c \ SubjectInfoAccessSyntax.c \ CRLNumber.c \ IssuingDistributionPoint.c \ BaseCRLNumber.c \ CRLReason.c \ CertificateIssuer.c \ HoldInstructionCode.c \ InvalidityDate.c ASN_MODULE_HEADERS= \ Attribute.h \ AttributeType.h \ AttributeValue.h \ AttributeTypeAndValue.h \ X520name.h \ X520CommonName.h \ X520LocalityName.h \ X520StateOrProvinceName.h \ X520OrganizationName.h \ X520OrganizationalUnitName.h \ X520Title.h \ X520dnQualifier.h \ X520countryName.h \ X520SerialNumber.h \ X520Pseudonym.h \ DomainComponent.h \ EmailAddress.h \ Name.h \ RDNSequence.h \ DistinguishedName.h \ RelativeDistinguishedName.h \ DirectoryString.h \ Certificate.h \ TBSCertificate.h \ Version.h \ CertificateSerialNumber.h \ Validity.h \ Time.h \ UniqueIdentifier.h \ SubjectPublicKeyInfo.h \ Extensions.h \ Extension.h \ CertificateList.h \ TBSCertList.h \ AlgorithmIdentifier.h \ ORAddress.h \ BuiltInStandardAttributes.h \ CountryName.h \ AdministrationDomainName.h \ NetworkAddress.h \ X121Address.h \ TerminalIdentifier.h \ PrivateDomainName.h \ OrganizationName.h \ NumericUserIdentifier.h \ PersonalName.h \ OrganizationalUnitNames.h \ OrganizationalUnitName.h \ BuiltInDomainDefinedAttributes.h \ BuiltInDomainDefinedAttribute.h \ ExtensionAttributes.h \ ExtensionAttribute.h \ CommonName.h \ TeletexCommonName.h \ TeletexOrganizationName.h \ TeletexPersonalName.h \ TeletexOrganizationalUnitNames.h \ TeletexOrganizationalUnitName.h \ PDSName.h \ PhysicalDeliveryCountryName.h \ PostalCode.h \ PhysicalDeliveryOfficeName.h \ PhysicalDeliveryOfficeNumber.h \ ExtensionORAddressComponents.h \ PhysicalDeliveryPersonalName.h \ PhysicalDeliveryOrganizationName.h \ ExtensionPhysicalDeliveryAddressComponents.h \ UnformattedPostalAddress.h \ StreetAddress.h \ PostOfficeBoxAddress.h \ PosteRestanteAddress.h \ UniquePostalName.h \ LocalPostalAttributes.h \ PDSParameter.h \ ExtendedNetworkAddress.h \ PresentationAddress.h \ TerminalType.h \ TeletexDomainDefinedAttributes.h \ TeletexDomainDefinedAttribute.h \ AuthorityKeyIdentifier.h \ KeyIdentifier.h \ SubjectKeyIdentifier.h \ KeyUsage.h \ PrivateKeyUsagePeriod.h \ CertificatePolicies.h \ PolicyInformation.h \ CertPolicyId.h \ PolicyQualifierInfo.h \ PolicyQualifierId.h \ CPSuri.h \ UserNotice.h \ NoticeReference.h \ DisplayText.h \ PolicyMappings.h \ SubjectAltName.h \ GeneralNames.h \ GeneralName.h \ AnotherName.h \ EDIPartyName.h \ IssuerAltName.h \ SubjectDirectoryAttributes.h \ BasicConstraints.h \ NameConstraints.h \ GeneralSubtrees.h \ GeneralSubtree.h \ BaseDistance.h \ PolicyConstraints.h \ SkipCerts.h \ CRLDistributionPoints.h \ DistributionPoint.h \ DistributionPointName.h \ ReasonFlags.h \ ExtKeyUsageSyntax.h \ KeyPurposeId.h \ InhibitAnyPolicy.h \ FreshestCRL.h \ AuthorityInfoAccessSyntax.h \ AccessDescription.h \ SubjectInfoAccessSyntax.h \ CRLNumber.h \ IssuingDistributionPoint.h \ BaseCRLNumber.h \ CRLReason.h \ CertificateIssuer.h \ HoldInstructionCode.h \ InvalidityDate.h ASN_MODULE_HEADERS+=ANY.h ASN_MODULE_SOURCES+=ANY.c ASN_MODULE_HEADERS+=BMPString.h ASN_MODULE_SOURCES+=BMPString.c ASN_MODULE_HEADERS+=UTF8String.h ASN_MODULE_HEADERS+=BOOLEAN.h ASN_MODULE_SOURCES+=BOOLEAN.c ASN_MODULE_HEADERS+=INTEGER.h ASN_MODULE_HEADERS+=NativeEnumerated.h ASN_MODULE_HEADERS+=GeneralizedTime.h ASN_MODULE_SOURCES+=GeneralizedTime.c ASN_MODULE_HEADERS+=IA5String.h ASN_MODULE_SOURCES+=IA5String.c ASN_MODULE_SOURCES+=INTEGER.c ASN_MODULE_SOURCES+=NativeEnumerated.c ASN_MODULE_HEADERS+=NativeInteger.h ASN_MODULE_SOURCES+=NativeInteger.c ASN_MODULE_HEADERS+=NumericString.h ASN_MODULE_SOURCES+=NumericString.c ASN_MODULE_HEADERS+=OBJECT_IDENTIFIER.h ASN_MODULE_SOURCES+=OBJECT_IDENTIFIER.c ASN_MODULE_HEADERS+=PrintableString.h ASN_MODULE_SOURCES+=PrintableString.c ASN_MODULE_HEADERS+=TeletexString.h ASN_MODULE_SOURCES+=TeletexString.c ASN_MODULE_HEADERS+=UTCTime.h ASN_MODULE_SOURCES+=UTCTime.c ASN_MODULE_SOURCES+=UTF8String.c ASN_MODULE_HEADERS+=UniversalString.h ASN_MODULE_SOURCES+=UniversalString.c ASN_MODULE_HEADERS+=VisibleString.h ASN_MODULE_SOURCES+=VisibleString.c ASN_MODULE_HEADERS+=asn_SEQUENCE_OF.h ASN_MODULE_SOURCES+=asn_SEQUENCE_OF.c ASN_MODULE_HEADERS+=asn_SET_OF.h ASN_MODULE_SOURCES+=asn_SET_OF.c ASN_MODULE_HEADERS+=constr_CHOICE.h ASN_MODULE_SOURCES+=constr_CHOICE.c ASN_MODULE_HEADERS+=constr_SEQUENCE.h ASN_MODULE_SOURCES+=constr_SEQUENCE.c ASN_MODULE_HEADERS+=constr_SEQUENCE_OF.h ASN_MODULE_SOURCES+=constr_SEQUENCE_OF.c ASN_MODULE_HEADERS+=constr_SET_OF.h ASN_MODULE_HEADERS+=constr_SET.h ASN_MODULE_SOURCES+=constr_SET.c ASN_MODULE_SOURCES+=constr_SET_OF.c ASN_MODULE_HEADERS+=asn_application.h ASN_MODULE_HEADERS+=asn_system.h ASN_MODULE_HEADERS+=asn_codecs.h ASN_MODULE_HEADERS+=asn_internal.h ASN_MODULE_HEADERS+=OCTET_STRING.h ASN_MODULE_SOURCES+=OCTET_STRING.c ASN_MODULE_HEADERS+=BIT_STRING.h ASN_MODULE_SOURCES+=BIT_STRING.c ASN_MODULE_SOURCES+=asn_codecs_prim.c ASN_MODULE_HEADERS+=asn_codecs_prim.h ASN_MODULE_HEADERS+=ber_tlv_length.h ASN_MODULE_SOURCES+=ber_tlv_length.c ASN_MODULE_HEADERS+=ber_tlv_tag.h ASN_MODULE_SOURCES+=ber_tlv_tag.c ASN_MODULE_HEADERS+=ber_decoder.h ASN_MODULE_SOURCES+=ber_decoder.c ASN_MODULE_HEADERS+=der_encoder.h ASN_MODULE_SOURCES+=der_encoder.c ASN_MODULE_HEADERS+=constr_TYPE.h ASN_MODULE_SOURCES+=constr_TYPE.c ASN_MODULE_HEADERS+=constraints.h ASN_MODULE_SOURCES+=constraints.c ASN_MODULE_HEADERS+=xer_support.h ASN_MODULE_SOURCES+=xer_support.c ASN_MODULE_HEADERS+=xer_decoder.h ASN_MODULE_SOURCES+=xer_decoder.c ASN_MODULE_HEADERS+=xer_encoder.h ASN_MODULE_SOURCES+=xer_encoder.c ASN_MODULE_HEADERS+=per_support.h ASN_MODULE_SOURCES+=per_support.c ASN_MODULE_HEADERS+=per_decoder.h ASN_MODULE_SOURCES+=per_decoder.c ASN_MODULE_HEADERS+=per_encoder.h ASN_MODULE_SOURCES+=per_encoder.c ASN_MODULE_HEADERS+=per_opentype.h ASN_MODULE_SOURCES+=per_opentype.c ASN_CONVERTER_SOURCES+=converter-sample.c lib_LTLIBRARIES=libsomething.la libsomething_la_SOURCES=$(ASN_MODULE_SOURCES) $(ASN_MODULE_HEADERS) # This file may be used as an input for make(3) # Remove the lines below to convert it into a pure .am file TARGET = x509dump CFLAGS += -DHAVE_CONFIG_H -DJUNKTEST -DPDU=Certificate -I. OBJS=${ASN_MODULE_SOURCES:.c=.o} ${ASN_CONVERTER_SOURCES:.c=.o} all: Certificate.c $(TARGET) $(TARGET): ${OBJS} $(CC) $(CFLAGS) -o $(TARGET) ${OBJS} $(LDFLAGS) $(LIBS) .SUFFIXES: .SUFFIXES: .c .o .c.o: $(CC) $(CFLAGS) -o $@ -c $< clean: rm -f $(TARGET) rm -f $(OBJS) regen: regenerate-from-asn1-source regenerate-from-asn1-source: ../../asn1c/asn1c -S ../../skeletons -pdu=Certificate ../rfc3280-PKIX1Explicit88.asn1 ../rfc3280-PKIX1Implicit88.asn1 Certificate.c: ../sample.makefile.regen ../rfc3280-*.asn1 make regen-makefile @touch Certificate.c make regen-makefile: ASN1CMDOPTS="" \ ASN1MODULES="../rfc3280-*.asn1" \ ASN1PDU=Certificate \ PROGNAME=x509dump \ ../sample.makefile.regen check: ${TARGET} check-ber check-xer check-per @echo ================ @echo All tests passed @echo ================ check-ber: @if test -f sample-Certificate-1.[db]er ; then \ for f in sample-Certificate-*.[db]er; do \ for b in 1 17 33 980 8192; do \ echo "Recoding $$f into XER and back ($$b)..."; \ ./${TARGET} -b $$b -iber -oxer $$f > ./.tmp.1.$$$$ || exit 2; \ ./${TARGET} -b $$b -ixer -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \ diff ./.tmp.1.$$$$ ./.tmp.2.$$$$ || exit 4; \ rm -f ./.tmp.[12].$$$$; \ echo "Test junking $$f (please wait)..."; \ ./${TARGET} -J0.0001 -n 1000 -b $$b -iber -onull $$f || exit 5; \ ./${TARGET} -J0.001 -n 1000 -b $$b -iber -onull $$f || exit 6; \ done; done; fi check-xer: @if test -f sample-Certificate-1.xer ; then \ for f in sample-Certificate-*.xer; do \ for b in 1 17 33 980 8192; do \ echo "Recoding $$f into DER and back ($$b)..."; \ ./${TARGET} -b $$b -ixer -oder $$f > ./.tmp.1.$$$$ || exit 2; \ ./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \ diff $$f ./.tmp.2.$$$$ || exit 4; \ rm -f ./.tmp.[12].$$$$; \ echo "Test junking $$f (please wait)..."; \ ./${TARGET} -J0.0001 -n 1000 -b $$b -ixer -onull $$f || exit 5; \ ./${TARGET} -J0.001 -n 1000 -b $$b -ixer -onull $$f || exit 6; \ done; done; fi check-per: @if test -f sample-Certificate-1-nopad.per ; then \ for f in sample-Certificate-[1-9]-nopad.per; do \ for b in 1 17 33 980 8192; do \ echo "Recoding non-padded $$f into DER into XER and back ($$b)..."; \ ./${TARGET} -b $$b -per-nopad -iper -oder $$f > ./.tmp.1.$$$$ || exit 2; \ ./${TARGET} -b $$b -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 3; \ ./${TARGET} -b $$b -ixer -oder ./.tmp.2.$$$$ > ./.tmp.3.$$$$ || exit 4; \ diff ./.tmp.1.$$$$ ./.tmp.3.$$$$ || exit 5; \ rm -f ./.tmp.[123].$$$$; \ echo "Test junking $$f (please wait)..."; \ ./${TARGET} -J0.0001 -n 1000 -b $$b -per-nopad -iper -onull $$f || exit 6; \ ./${TARGET} -J0.001 -n 1000 -b $$b -per-nopad -iper -onull $$f || exit 7; \ done; done; fi @if test -f sample-Certificate-1.per ; then \ for f in sample-*-[1-9].per; do \ pdu=`echo $$f | sed -E -e "s/sample-([A-Za-z-]+)-[0-9].*/\1/"`; \ for b in 1 17 33 980 8192; do \ echo "Recoding $$f into DER into XER and back ($$b)..."; \ ./${TARGET} -b $$b -p $$pdu -iper -oder $$f > ./.tmp.1.$$$$ || exit 3; \ ./${TARGET} -b $$b -p $$pdu -iber -oxer ./.tmp.1.$$$$ > ./.tmp.2.$$$$ || exit 4; \ ./${TARGET} -b $$b -p $$pdu -ixer -oper ./.tmp.2.$$$$ > ./.tmp.1.$$$$ || exit 5; \ diff $$f ./.tmp.1.$$$$ || exit 6; \ rm -f ./.tmp.[12].$$$$; \ echo "Test junking $$f (please wait)..."; \ ./${TARGET} -J0.0001 -n 1000 -b $$b -iper -onull $$f || exit 7; \ ./${TARGET} -J0.001 -n 1000 -b $$b -iper -onull $$f || exit 8; \ done; done; fi distclean: clean rm -f $(ASN_MODULE_SOURCES) rm -f $(ASN_MODULE_HEADERS) rm -f $(ASN_CONVERTER_SOURCES) $(ASN_CONVERTER_HEADERS) rm -f Makefile.am.sample