aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLev Walkin <vlm@lionet.info>2004-09-23 22:02:52 +0000
committerLev Walkin <vlm@lionet.info>2004-09-23 22:02:52 +0000
commit60a1403aa733f2a86c4837708bc8fd53be5870e4 (patch)
tree230013fe49b20cc4e33c3d4da7d9cdc4e1e7475d
parentfb360bfbe16967832126c9a63ac7a0febc132298 (diff)
sample x.509 certificate dumper program
-rw-r--r--examples/Makefile.am6
-rw-r--r--examples/Makefile.in8
-rw-r--r--examples/sample.source.PKIX1/Makefile355
-rw-r--r--examples/sample.source.PKIX1/config.h8
4 files changed, 375 insertions, 2 deletions
diff --git a/examples/Makefile.am b/examples/Makefile.am
index ca3f9d61..d3e73d6d 100644
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
@@ -21,5 +21,9 @@ $(ASN1_FILES_0): crfc2asn1.pl $(ASN1_SOURCE_0)
$(ASN1_FILES_1): crfc2asn1.pl $(ASN1_SOURCE_1)
./crfc2asn1.pl $(ASN1_SOURCE_1)
-EXTRA_DIST = rfc*.txt
+EXTRA_DIST = rfc*.txt \
+ sample.source.PKIX1/x509dump.c \
+ sample.source.PKIX1/config.h \
+ sample.source.PKIX1/Makefile \
+ sample.source.PKIX1/regenerate.Makefile
CLEANFILES = *.asn1
diff --git a/examples/Makefile.in b/examples/Makefile.in
index aea3168b..c2a3b941 100644
--- a/examples/Makefile.in
+++ b/examples/Makefile.in
@@ -173,7 +173,12 @@ ASN1_FILES_1 = \
rfc3280-PKIX1Explicit88.asn1 \
rfc3280-PKIX1Implicit88.asn1
-EXTRA_DIST = rfc*.txt
+EXTRA_DIST = rfc*.txt \
+ sample.source.PKIX1/x509dump.c \
+ sample.source.PKIX1/config.h \
+ sample.source.PKIX1/Makefile \
+ sample.source.PKIX1/regenerate.Makefile
+
CLEANFILES = *.asn1
all: all-am
@@ -244,6 +249,7 @@ CTAGS:
distdir: $(DISTFILES)
+ $(mkdir_p) $(distdir)/sample.source.PKIX1
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
diff --git a/examples/sample.source.PKIX1/Makefile b/examples/sample.source.PKIX1/Makefile
new file mode 100644
index 00000000..41638ee5
--- /dev/null
+++ b/examples/sample.source.PKIX1/Makefile
@@ -0,0 +1,355 @@
+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+=BIT_STRING.h
+ASN_MODULE_SOURCES+=BIT_STRING.c
+ASN_MODULE_HEADERS+=BMPString.h
+ASN_MODULE_SOURCES+=BMPString.c
+ASN_MODULE_HEADERS+=BOOLEAN.h
+ASN_MODULE_SOURCES+=BOOLEAN.c
+ASN_MODULE_HEADERS+=ENUMERATED.h
+ASN_MODULE_SOURCES+=ENUMERATED.c
+ASN_MODULE_HEADERS+=INTEGER.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_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_HEADERS+=UTF8String.h
+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.h
+ASN_MODULE_SOURCES+=constr_SET.c
+ASN_MODULE_HEADERS+=constr_SET_OF.h
+ASN_MODULE_SOURCES+=constr_SET_OF.c
+ASN_MODULE_HEADERS+=asn_types.h
+ASN_MODULE_HEADERS+=asn_internal.h
+ASN_MODULE_HEADERS+=OCTET_STRING.h
+ASN_MODULE_SOURCES+=OCTET_STRING.c
+ASN_MODULE_HEADERS+=ber_decoder.h
+ASN_MODULE_SOURCES+=ber_decoder.c
+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+=constr_TYPE.h
+ASN_MODULE_SOURCES+=constr_TYPE.c
+ASN_MODULE_HEADERS+=constraints.h
+ASN_MODULE_SOURCES+=constraints.c
+ASN_MODULE_HEADERS+=der_encoder.h
+ASN_MODULE_SOURCES+=der_encoder.c
+ASN_MODULE_HEADERS+=xer_encoder.h
+ASN_MODULE_SOURCES+=xer_encoder.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 += -I. -g -DHAVE_CONFIG_H
+OBJS=${ASN_MODULE_SOURCES:.c=.o} $(TARGET).o
+
+all: $(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)
+
+
+Attribute.c: regenerate.Makefile
+ ./regenerate.Makefile
+ make
+ exit
+
+distclean: clean
+ rm -f $(ASN_MODULE_SOURCES) $(ASN_MODULE_HEADERS)
+ rm -f Makefile.am.sample
diff --git a/examples/sample.source.PKIX1/config.h b/examples/sample.source.PKIX1/config.h
new file mode 100644
index 00000000..e9a97e66
--- /dev/null
+++ b/examples/sample.source.PKIX1/config.h
@@ -0,0 +1,8 @@
+
+extern int opt_debug;
+
+#define ASN_DEBUG(fmt, args...) do { \
+ if(opt_debug < 2) break; \
+ fprintf(stderr, fmt, ##args); \
+ fprintf(stderr, "\n"); \
+ } while(0)