summaryrefslogtreecommitdiffstats
path: root/crypto/heimdal/lib/asn1
diff options
context:
space:
mode:
authorstas <stas@FreeBSD.org>2011-09-29 05:23:57 +0000
committerstas <stas@FreeBSD.org>2011-09-29 05:23:57 +0000
commitf6e720bf7e3d09d00d73f389a5dac8efdce0eb8c (patch)
treecf5b65423910d126fddaaf04b885d0de3507d692 /crypto/heimdal/lib/asn1
parent51b6601db456e699ea5d4843cbc7239ee92d9c13 (diff)
downloadFreeBSD-src-f6e720bf7e3d09d00d73f389a5dac8efdce0eb8c.zip
FreeBSD-src-f6e720bf7e3d09d00d73f389a5dac8efdce0eb8c.tar.gz
- Flatten the vendor heimdal tree.
Diffstat (limited to 'crypto/heimdal/lib/asn1')
-rw-r--r--crypto/heimdal/lib/asn1/CMS.asn1157
-rw-r--r--crypto/heimdal/lib/asn1/ChangeLog1649
-rw-r--r--crypto/heimdal/lib/asn1/Makefile.am610
-rw-r--r--crypto/heimdal/lib/asn1/Makefile.in1801
-rw-r--r--crypto/heimdal/lib/asn1/asn1-common.h66
-rw-r--r--crypto/heimdal/lib/asn1/asn1_err.et25
-rw-r--r--crypto/heimdal/lib/asn1/asn1_gen.c187
-rw-r--r--crypto/heimdal/lib/asn1/asn1_print.c304
-rw-r--r--crypto/heimdal/lib/asn1/asn1_queue.h167
-rw-r--r--crypto/heimdal/lib/asn1/canthandle.asn134
-rw-r--r--crypto/heimdal/lib/asn1/check-common.c376
-rw-r--r--crypto/heimdal/lib/asn1/check-common.h70
-rw-r--r--crypto/heimdal/lib/asn1/check-der.c1089
-rw-r--r--crypto/heimdal/lib/asn1/check-gen.c955
-rw-r--r--crypto/heimdal/lib/asn1/check-timegm.c72
-rw-r--r--crypto/heimdal/lib/asn1/der-protos.h567
-rw-r--r--crypto/heimdal/lib/asn1/der.c142
-rw-r--r--crypto/heimdal/lib/asn1/der.h103
-rw-r--r--crypto/heimdal/lib/asn1/der_cmp.c102
-rw-r--r--crypto/heimdal/lib/asn1/der_copy.c145
-rw-r--r--crypto/heimdal/lib/asn1/der_format.c170
-rw-r--r--crypto/heimdal/lib/asn1/der_free.c119
-rw-r--r--crypto/heimdal/lib/asn1/der_get.c546
-rw-r--r--crypto/heimdal/lib/asn1/der_length.c232
-rw-r--r--crypto/heimdal/lib/asn1/der_locl.h60
-rw-r--r--crypto/heimdal/lib/asn1/der_put.c483
-rw-r--r--crypto/heimdal/lib/asn1/digest.asn1164
-rw-r--r--crypto/heimdal/lib/asn1/extra.c155
-rw-r--r--crypto/heimdal/lib/asn1/gen.c797
-rw-r--r--crypto/heimdal/lib/asn1/gen.h38
-rw-r--r--crypto/heimdal/lib/asn1/gen_copy.c249
-rw-r--r--crypto/heimdal/lib/asn1/gen_decode.c720
-rw-r--r--crypto/heimdal/lib/asn1/gen_encode.c557
-rw-r--r--crypto/heimdal/lib/asn1/gen_free.c194
-rw-r--r--crypto/heimdal/lib/asn1/gen_glue.c140
-rw-r--r--crypto/heimdal/lib/asn1/gen_length.c283
-rw-r--r--crypto/heimdal/lib/asn1/gen_locl.h89
-rw-r--r--crypto/heimdal/lib/asn1/gen_seq.c119
-rw-r--r--crypto/heimdal/lib/asn1/hash.c206
-rw-r--r--crypto/heimdal/lib/asn1/hash.h87
-rw-r--r--crypto/heimdal/lib/asn1/heim_asn1.h52
-rw-r--r--crypto/heimdal/lib/asn1/k5.asn1659
-rw-r--r--crypto/heimdal/lib/asn1/kx509.asn120
-rw-r--r--crypto/heimdal/lib/asn1/lex.c2693
-rw-r--r--crypto/heimdal/lib/asn1/lex.h42
-rw-r--r--crypto/heimdal/lib/asn1/lex.l300
-rw-r--r--crypto/heimdal/lib/asn1/main.c133
-rw-r--r--crypto/heimdal/lib/asn1/parse.c2831
-rw-r--r--crypto/heimdal/lib/asn1/parse.h249
-rw-r--r--crypto/heimdal/lib/asn1/parse.y1015
-rw-r--r--crypto/heimdal/lib/asn1/pkcs12.asn181
-rw-r--r--crypto/heimdal/lib/asn1/pkcs8.asn130
-rw-r--r--crypto/heimdal/lib/asn1/pkcs9.asn128
-rw-r--r--crypto/heimdal/lib/asn1/pkinit.asn1182
-rw-r--r--crypto/heimdal/lib/asn1/rfc2459.asn1506
-rw-r--r--crypto/heimdal/lib/asn1/setchgpw2.asn1193
-rw-r--r--crypto/heimdal/lib/asn1/symbol.c110
-rw-r--r--crypto/heimdal/lib/asn1/symbol.h161
-rw-r--r--crypto/heimdal/lib/asn1/test.asn195
-rw-r--r--crypto/heimdal/lib/asn1/test.gen14
-rw-r--r--crypto/heimdal/lib/asn1/timegm.c86
-rw-r--r--crypto/heimdal/lib/asn1/x509.asn123
62 files changed, 0 insertions, 23532 deletions
diff --git a/crypto/heimdal/lib/asn1/CMS.asn1 b/crypto/heimdal/lib/asn1/CMS.asn1
deleted file mode 100644
index 685f0b1..0000000
--- a/crypto/heimdal/lib/asn1/CMS.asn1
+++ /dev/null
@@ -1,157 +0,0 @@
--- From RFC 3369 --
--- $Id: CMS.asn1 18054 2006-09-07 12:20:42Z lha $ --
-
-CMS DEFINITIONS ::= BEGIN
-
-IMPORTS CertificateSerialNumber, AlgorithmIdentifier, Name,
- Attribute, Certificate, Name, SubjectKeyIdentifier FROM rfc2459
- heim_any, heim_any_set FROM heim;
-
-id-pkcs7 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
- us(840) rsadsi(113549) pkcs(1) pkcs7(7) }
-
-id-pkcs7-data OBJECT IDENTIFIER ::= { id-pkcs7 1 }
-id-pkcs7-signedData OBJECT IDENTIFIER ::= { id-pkcs7 2 }
-id-pkcs7-envelopedData OBJECT IDENTIFIER ::= { id-pkcs7 3 }
-id-pkcs7-signedAndEnvelopedData OBJECT IDENTIFIER ::= { id-pkcs7 4 }
-id-pkcs7-digestedData OBJECT IDENTIFIER ::= { id-pkcs7 5 }
-id-pkcs7-encryptedData OBJECT IDENTIFIER ::= { id-pkcs7 6 }
-
-CMSVersion ::= INTEGER {
- CMSVersion_v0(0),
- CMSVersion_v1(1),
- CMSVersion_v2(2),
- CMSVersion_v3(3),
- CMSVersion_v4(4)
-}
-
-DigestAlgorithmIdentifier ::= AlgorithmIdentifier
-DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier
-SignatureAlgorithmIdentifier ::= AlgorithmIdentifier
-
-ContentType ::= OBJECT IDENTIFIER
-MessageDigest ::= OCTET STRING
-
-ContentInfo ::= SEQUENCE {
- contentType ContentType,
- content [0] EXPLICIT heim_any OPTIONAL -- DEFINED BY contentType
-}
-
-EncapsulatedContentInfo ::= SEQUENCE {
- eContentType ContentType,
- eContent [0] EXPLICIT OCTET STRING OPTIONAL
-}
-
-CertificateSet ::= SET OF heim_any
-
-CertificateList ::= Certificate
-
-CertificateRevocationLists ::= SET OF CertificateList
-
-IssuerAndSerialNumber ::= SEQUENCE {
- issuer Name,
- serialNumber CertificateSerialNumber
-}
-
--- RecipientIdentifier is same as SignerIdentifier,
--- lets glue them togheter and save some bytes and share code for them
-
-CMSIdentifier ::= CHOICE {
- issuerAndSerialNumber IssuerAndSerialNumber,
- subjectKeyIdentifier [0] SubjectKeyIdentifier
-}
-
-SignerIdentifier ::= CMSIdentifier
-RecipientIdentifier ::= CMSIdentifier
-
---- CMSAttributes are the combined UnsignedAttributes and SignedAttributes
---- to store space and share code
-
-CMSAttributes ::= SET OF Attribute -- SIZE (1..MAX)
-
-SignatureValue ::= OCTET STRING
-
-SignerInfo ::= SEQUENCE {
- version CMSVersion,
- sid SignerIdentifier,
- digestAlgorithm DigestAlgorithmIdentifier,
- signedAttrs [0] IMPLICIT -- CMSAttributes --
- SET OF Attribute OPTIONAL,
- signatureAlgorithm SignatureAlgorithmIdentifier,
- signature SignatureValue,
- unsignedAttrs [1] IMPLICIT -- CMSAttributes --
- SET OF Attribute OPTIONAL
-}
-
-SignerInfos ::= SET OF SignerInfo
-
-SignedData ::= SEQUENCE {
- version CMSVersion,
- digestAlgorithms DigestAlgorithmIdentifiers,
- encapContentInfo EncapsulatedContentInfo,
- certificates [0] IMPLICIT -- CertificateSet --
- SET OF heim_any OPTIONAL,
- crls [1] IMPLICIT -- CertificateRevocationLists --
- heim_any OPTIONAL,
- signerInfos SignerInfos
-}
-
-OriginatorInfo ::= SEQUENCE {
- certs [0] IMPLICIT -- CertificateSet --
- SET OF heim_any OPTIONAL,
- crls [1] IMPLICIT --CertificateRevocationLists --
- heim_any OPTIONAL
-}
-
-KeyEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
-ContentEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
-
-EncryptedKey ::= OCTET STRING
-
-KeyTransRecipientInfo ::= SEQUENCE {
- version CMSVersion, -- always set to 0 or 2
- rid RecipientIdentifier,
- keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
- encryptedKey EncryptedKey
-}
-
-RecipientInfo ::= KeyTransRecipientInfo
-
-RecipientInfos ::= SET OF RecipientInfo
-
-EncryptedContent ::= OCTET STRING
-
-EncryptedContentInfo ::= SEQUENCE {
- contentType ContentType,
- contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
- encryptedContent [0] IMPLICIT OCTET STRING OPTIONAL
-}
-
-UnprotectedAttributes ::= SET OF Attribute -- SIZE (1..MAX)
-
-CMSEncryptedData ::= SEQUENCE {
- version CMSVersion,
- encryptedContentInfo EncryptedContentInfo,
- unprotectedAttrs [1] IMPLICIT -- UnprotectedAttributes --
- heim_any OPTIONAL
-}
-
-EnvelopedData ::= SEQUENCE {
- version CMSVersion,
- originatorInfo [0] IMPLICIT -- OriginatorInfo -- heim_any OPTIONAL,
- recipientInfos RecipientInfos,
- encryptedContentInfo EncryptedContentInfo,
- unprotectedAttrs [1] IMPLICIT -- UnprotectedAttributes --
- heim_any OPTIONAL
-}
-
--- Data ::= OCTET STRING
-
-CMSRC2CBCParameter ::= SEQUENCE {
- rc2ParameterVersion INTEGER (0..4294967295),
- iv OCTET STRING -- exactly 8 octets
-}
-
-CMSCBCParameter ::= OCTET STRING
-
-END
diff --git a/crypto/heimdal/lib/asn1/ChangeLog b/crypto/heimdal/lib/asn1/ChangeLog
deleted file mode 100644
index 9039e25..0000000
--- a/crypto/heimdal/lib/asn1/ChangeLog
+++ /dev/null
@@ -1,1649 +0,0 @@
-2008-01-13 Love Hörnquist Åstrand <lha@it.su.se>
-
- * asn1-common.h gen.c der.c gen_encode.c: add and use der_{malloc,free}
-
-2007-12-13 Love Hörnquist Åstrand <lha@it.su.se>
-
- * libasn1.h: remove, not used.
-
-2007-12-04 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Add DigestTypes, add --seq to antoher type.
-
- * digest.asn1: Add supportedMechs request.
-
-2007-10-18 Love Hörnquist Åstrand <lha@it.su.se>
-
- * k5.asn1: Some "old" windows enctypes. From Andy Polyakov.
-
-2007-07-23 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Fold in pk-init-alg-agilty.
-
- * pkinit.asn1: Fold in pk-init-alg-agilty.
-
-2007-07-16 Love Hörnquist Åstrand <lha@it.su.se>
-
- * parse.y: Passe object id is its part of the module defintion
- statement.
-
-2007-07-14 Love Hörnquist Åstrand <lha@it.su.se>
-
- * check-gen.c: test SEQ OF SIZE (...)
-
- * Makefile.am: Include more sizeof tests.
-
-2007-07-12 Love Hörnquist Åstrand <lha@it.su.se>
-
- * try to avoid aliasing of pointers enum {} vs int
-
-2007-07-10 Love Hörnquist Åstrand <lha@it.su.se>
-
- * test.asn1: Test SIZE attribute for SEQ and OCTET STRING
-
- * parse.y (OctetStringType): add SIZE to OCTET STRING.
-
- * Makefile.am: New library version.
-
-2007-07-02 Love Hörnquist Åstrand <lha@it.su.se>
-
- * rfc2459.asn1: Re-add size limits.
-
- * k5.asn1: Add size limits from RFC 4120.
-
- * gen_decode.c: Check range on SEQ OF and OCTET STRING.
-
- * asn1_err.et (min|max|exact) constraints.
-
- * parse.y: Parse size limitations to SEQ OF.
-
-2007-06-28 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Add AuthorityInfoAccessSyntax.
-
- * rfc2459.asn1: Add AuthorityInfoAccessSyntax.
-
- * rfc2459.asn1: Add authorityInfoAccess, rename proxyCertInfo.
-
- * Makefile.am: Add authorityInfoAccess, rename proxyCertInfo.
-
-2007-06-27 Love Hörnquist Åstrand <lha@it.su.se>
-
- * der_get.c (der_get_time): avoid using wrapping of octet_string
- and realloc.
-
- * der_get.c: No need to undef timetm, we don't use it any more.
-
- * timegm.c: Fix spelling caused by too much query-replace.
-
- * gen.c: Include <limits.h> for UINT_MAX.
-
- * gen_decode.c: Check for multipication overrun.
-
- * gen_encode.c: Paranoia check in buffer overun in output
- function.
-
- * check-der.c: Test boolean.
-
- * check-der.c: test universal strings.
-
- * check-der.c: Test failure cases for der_get_tag.
-
- * check-der.c: test dates from last century.
-
- * check-der.c: Move zero length integercheck to a better place.
-
- * check-der.c: Test zero length integer.
-
-2007-06-18 Love Hörnquist Åstrand <lha@it.su.se>
-
- * check-der.c: Init data to something.
-
-2007-06-15 Love Hörnquist Åstrand <lha@it.su.se>
-
- * k5.asn1: Add KRB5-AUTHDATA-INITIAL-VERIFIED-CAS.
-
-2007-06-13 Love Hörnquist Åstrand <lha@it.su.se>
-
- * pkinit.asn1: Make the pkinit nonce signed (like the kerberos
- nonce).
-
-2007-06-03 Love Hörnquist Åstrand <lha@it.su.se>
-
- * check-der.c: Free more memory.
-
- * der_format.c: Don't accect zero length hex numbers.
-
- * check-der.c: Also free right memory.
-
- * main.c: Close asn1 file when done.
-
- * check-der.c: more check for der_parse_hex_heim_integer
-
- * der_format.c (der_parse_hex_heim_integer): check length before
- reading data.
-
- * check-gen.c (test_authenticator): free memory
-
-2007-05-31 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: add MS-UPN-SAN
-
- * pkinit.asn1: add MS-UPN-SAN
-
- * rfc2459.asn1: Do evil things to handle IMPLICIT encoded
- structures. Add id-ms-client-authentication.
-
-2007-05-30 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Add asn1_id_ms_cert_enroll_domaincontroller.x
-
-2007-05-10 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen.c: Add struct units; as a forward declaration. Pointed out
- by Marcus Watts.
-
- * rfc2459.asn1: Netscape extentions
-
- * Makefile.am: add U.S. Federal PKI Common Policy Framework
-
- * rfc2459.asn1: add U.S. Federal PKI Common Policy Framework
-
-2007-04-24 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen_seq.c: Handle the case of resize to 0 and realloc that
- returns NULL.
-
- * check-gen.c (check_seq): free seq.
-
-2007-04-19 Love Hörnquist Åstrand <lha@it.su.se>
-
- * check-der.c (test_heim_oid_format_same): avoid leaking memory in
- the non failure case too
-
-2007-04-16 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: remove extra ^Q
-
-2007-04-11 Love Hörnquist Åstrand <lha@it.su.se>
-
- * der_get.c: Allow trailing NULs. We allow this since MIT Kerberos
- sends an strings in the NEED_PREAUTH case that includes a trailing
- NUL.
-
-2007-02-17 Love Hörnquist Åstrand <lha@it.su.se>
-
-
- * Makefile.am: Add PA-ClientCanonicalized and friends.
-
- * k5.asn1: Add PA-ClientCanonicalized and friends.
-
-2007-02-08 Love Hörnquist Åstrand <lha@it.su.se>
-
- * check-der.c: Drop one over INT_MAX test-case.
-
-2007-02-05 Love Hörnquist Åstrand <lha@it.su.se>
-
- * pkinit.asn1: add id-pkinit-ms-eku
-
- * pkinit.asn1: fill in more bits of id-pkinit-ms-san
-
-2007-02-02 Love Hörnquist Åstrand <lha@it.su.se>
-
- * digest.asn1: rename hash-a1 to session key
-
-2007-02-01 Love Hörnquist Åstrand <lha@it.su.se>
-
- * digest.asn1: Add elements to send in requestResponse to KDC and
- get status of the request.
-
-2007-01-31 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: seq rules for CRLDistributionPoints
-
-2007-01-30 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: add CRLDistributionPoints and friends
-
-2007-01-20 Love Hörnquist Åstrand <lha@it.su.se>
-
- * check-der.c: check BMPstring oddlength more
-
- * check-der.c: Test for NUL char in string in GENERAL STRING.
-
- * der_get.c: Check for NUL characters in string and return
- ASN1_BAD_CHARACTER error-code if we find them.
-
- * asn1_err.et: Add BAD_CHARACTER error.
-
-2007-01-16 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Add id-at-streetAddress.
-
- * rfc2459.asn1: Add id-at-streetAddress.
-
-2007-01-12 Love Hörnquist Åstrand <lha@it.su.se>
-
- * rfc2459.asn1: Add PKIXXmppAddr and id-pkix-on-xmppAddr.
-
-2006-12-30 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Add id-pkix-kp oids.
-
- * rfc2459.asn1: Add id-pkix-kp oids.
-
-2006-12-29 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen_encode.c: Named bit strings have this horrible, disgusting,
- compress bits until they are no longer really there but stuff in
- an initial octet anyway encoding scheme. Try to get it right and
- calculate the initial octet runtime instead of compiletime.
-
- * check-gen.c: Check all other silly bitstring combinations.
-
- * Makefile.am: Add --sequence=Extensions to rfc2459.
-
-2006-12-28 Love Hörnquist Åstrand <lha@it.su.se>
-
- * kx509.asn1: Add kx509.
-
- * Makefile.am: Add kx509.
-
- * Add VisibleString parsing
-
-2006-12-15 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Add ntlm files.
-
- * digest.asn1: Add bits for handling NTLM.
-
-2006-12-08 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: add pkix proxy cert policy lang oids
-
- * rfc2459.asn1: add pkix proxy cert policy lang oids
-
-2006-12-07 Love Hörnquist Åstrand <lha@it.su.se>
-
- * rfc2459.asn1: unbreak id-pe-proxyCertInfo
-
- * rfc2459.asn1: Add id-pkix-on-dnsSRV and related oids
-
-2006-11-28 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Add explicit depenency to LIB_roken for libasn1.la,
- make AIX happy.
-
-2006-11-27 Love Hörnquist Åstrand <lha@it.su.se>
-
- * der_format.c (der_print_heim_oid): oid with zero length is
- invalid, fail to print.
-
-2006-11-24 Love Hörnquist Åstrand <lha@it.su.se>
-
- * der_format.c (der_print_heim_oid): use delim when printing.
-
-2006-11-21 Love Hörnquist Åstrand <lha@it.su.se>
-
- * k5.asn1: Make KRB5-PADATA-S4U2SELF pa type 129.
-
-2006-10-24 Love Hörnquist Åstrand <lha@it.su.se>
-
- * asn1_err.et: add EXTRA_DATA
-
-2006-10-21 Love Hörnquist Åstrand <lha@it.su.se>
-
- * check-gen.c: avoid leaking memory
-
- * check-der.c: avoid leaking memory
-
- * der_format.c (der_parse_heim_oid): avoid leaking memory
-
- * check-common.c: Print size_t as (unsigned long) and cast.
-
- * check-common.c: Try to align data, IA64's gets upset if its
- unaligned.
-
- * lex.l: add missing */
-
- * lex.c: need %e for hpux lex
-
-2006-10-20 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: remove dups from gen_files_test, add check-timegm.
-
- * Makefile.am: include more test.asn1 built files
-
- * Makefile.am: More files, now for make check.
-
-2006-10-19 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Add missing files
-
- * Makefile.am (asn1_compile_SOURCES): add gen_locl.h
-
- * check-timegm.c: Add check for _der_timegm.
-
- * der_get.c (generalizedtime2time): always use _der_timegm.
-
- * timegm.c: make more strict
-
- * der_locl.h: Rename timegm to _der_timegm.
-
-2006-10-17 Love Hörnquist Åstrand <lha@it.su.se>
-
- * timegm.c: vJust fail if tm_mon is out of range for now XXXX this
- is wrong.
-
-2006-10-16 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: extra depencies on der-protos.h
-
-2006-10-14 Love Hörnquist Åstrand <lha@it.su.se>
-
- * check-der.c: Prefix primitive types with der_.
-
- * timegm.c: rename the buildin timegm to _der_timegm
-
- * heim_asn1.h: move prototype away from here.
-
- * der_format.c: Add der_parse_heim_oid
-
- * gen_free.c: prefix primitive types with der_
-
- * der_copy.c: prefix primitive types with der_
-
- * gen_length.c: prefix primitive types with der_
-
- * der_length.c: prefix primitive types with der_
-
- * der_cmp.c: prefix primitive types with der_
-
- * gen_free.c: prefix primitive types with der_
-
- * der_free.c: prefix primitive types with der_
-
- * gen_copy.c: prefix primitive types with der_
-
- * der_copy.c: rename copy_ to der_copy_
-
- * Makefile.am: Add der-protos.h to nodist_include_HEADERS.
-
- * der.h: use newly built <der-protos.h>
-
- * Makefile.am: Generate der prototypes.
-
- * gen.c: move any definitions here.
-
- * asn1-common.h: move any definitions here.
-
- * der.h: remove der_parse_oid prototype, it was never implemented.
-
- * der.h: New der_print_heim_oid signature. Test
- der_parse_heim_oid
-
- * check-der.c: New der_print_heim_oid signature. Test
- der_parse_heim_oid
-
-2006-10-07 Love Hörnquist Åstrand <lha@it.su.se>
-
- * lex.l: Grow an even larger output table size.
-
- * Makefile.am: split build files into dist_ and noinst_ SOURCES
-
-2006-10-04 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen_seq.c: In generation of remove_TYPE: if you just removed the
- last element, you must not memmove memory beyond the array. From
- Andrew Bartlett
-
-2006-10-01 Love Hörnquist Åstrand <lha@it.su.se>
-
- * lex.l: Grow (%p, %a, %n) tables for Solaris 10 lex. From Harald
- Barth.
-
-2006-09-24 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen_decode.c (decode_type): drop unused variable realtype.
-
-2006-09-11 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Add KRB5SignedPath and friends.
-
- * k5.asn1: Add KRB5SignedPath and friends.
-
- * Makefile.am: Add new sequence generation for GeneralNames.
-
-2006-09-07 Love Hörnquist Åstrand <lha@it.su.se>
-
- * CMS.asn1 (CMSVersion): rename versions from v0 to CMSVersion_v0,
- ...
-
-2006-09-05 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Add TESTSeqOf for testing sequence generation code.
-
- * check-gen.c: Add sequence tests.
-
- * test.asn1: Add TESTSeqOf for testing sequence generation code.
-
- * gen_seq.c: fix warning.
-
- * gen_seq.c: make generated data work
-
- * setchgpw2.asn1: enctype is part of the krb5 module now, use that
- instead of locally defining it.
-
- * Makefile.am: asn1_compile += gen_seq.c
-
- * gen_locl.h: add new prototypes, remove unused ones.
-
- * gen.c: Generate sequence function.
-
- * main.c: add --sequence
-
- * gen_seq.c: Add generated add_ and remove_ for "SEQUENCE OF
- TType". I'm tried of writing realloc(foo->data,
- sizeof(foo->data[0]) + (foo->len + 1)); Only generated for those
- type that is enabled by the command flag --sequence.
-
-2006-08-25 Love Hörnquist Åstrand <lha@it.su.se>
-
- * digest.asn1 (DigestRequest): add authid
-
- * digest.asn1: Comment describing on how to communicate the sasl
- int/conf mode.
-
-2006-08-23 Love Hörnquist Åstrand <lha@it.su.se>
-
- * digest.asn1: Add some missing fields needed for digest.
-
-2006-08-21 Love Hörnquist Åstrand <lha@it.su.se>
-
- * digest.asn1: Tweak to make consisten and more easier to use.
-
-2006-07-20 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Remove CMS symmetric encryption support. Add
- DigestProtocol.
-
- * digest.asn1: DigestProtocol
-
- * k5.asn1: Remove CMS symmetric encryption support.
-
-2006-06-22 Love Hörnquist Åstrand <lha@it.su.se>
-
- * check-der.c (check_fail_heim_integer): disable test
-
- * der_get.c (der_get_heim_integer): revert part of previous
-
- * der_get.c (der_get_heim_integer): Add more checks
-
- * asn1_print.c: Add printing of bignums and use der_print_heim_oid
-
- * check-der.c (test_heim_oid_format_same): add printing on failure
-
- * check-der.c: Add one check for heim_int, add checking for oid
- printing
-
-2006-06-06 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Impersonation support bits (and sort)
-
- * k5.asn1: Impersonation support bits.
-
-2006-05-13 Love Hörnquist Åstrand <lha@it.su.se>
-
- * der_format.c (der_parse_hex_heim_integer): avoid shadowing.
-
-2006-04-29 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Add ExternalPrincipalIdentifiers, shared between
- several elements.
-
- * pkinit.asn1: Add ExternalPrincipalIdentifiers, shared between
- several elements.
-
-2006-04-28 Love Hörnquist Åstrand <lha@it.su.se>
-
- * parse.y: Add missing ;'s, found by bison on a SuSE 8.2 machine.
-
-2006-04-26 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Add definitions from RFC 3820, Proxy Certificate
- Profile.
-
- * rfc2459.asn1: Add definitions from RFC 3820, Proxy Certificate
- Profile.
-
-2006-04-24 Love Hörnquist Åstrand <lha@it.su.se>
-
- * rfc2459.asn1: Add id-Userid
-
- * Makefile.am: Add UID and email
-
- * pkcs9.asn1: Add id-pkcs9-emailAddress
-
- * Makefile.am: Add attribute type oids from X520 and RFC 2247 DC
- oid
-
- * rfc2459.asn1: Add attribute type oids from X520 and RFC 2247 DC
- oid
-
-2006-04-21 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: add sha-1 and sha-2
-
- * rfc2459.asn1: add sha-1 and sha-2
-
-2006-04-15 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Add id-pkcs1-sha256WithRSAEncryption and friends
-
- * rfc2459.asn1: Add id-pkcs1-sha256WithRSAEncryption and friends
-
- * CMS.asn1: Turn CMSRC2CBCParameter.rc2ParameterVersion into a
- constrained integer
-
-2006-04-08 Love Hörnquist Åstrand <lha@it.su.se>
-
- * hash.c (hashtabnew): check for NULL before setting structure.
- Coverity, NetBSD CID#4
-
-2006-03-31 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: gen_files_rfc2459 += asn1_ExtKeyUsage.x
-
- * rfc2459.asn1: Add ExtKeyUsage.
-
- * gen.c (generate_header_of_codefile): remove unused variable.
-
-2006-03-30 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen.c: Put all the IMPORTed headers into the headerfile to avoid
- hidden depencies.
-
-2006-03-27 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Add id-pkinit-ms-san.
-
- * pkinit.asn1: Add id-pkinit-ms-san.
-
- * k5.asn1 (PADATA-TYPE): Add KRB5-PADATA-PA-PK-OCSP-RESPONSE
-
-2006-03-26 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Add pkinit-san.
-
- * pkinit.asn1: Rename id-pksan to id-pkinit-san
-
-2006-03-08 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen.c (init_generate): Nothing in the generated files needs
- timegm(), so no need to provide a prototype for it.
-
-2006-02-13 Love Hörnquist Åstrand <lha@it.su.se>
-
- * pkinit.asn1: paChecksum is now OPTIONAL so it can be upgraded to
- something better then SHA1
-
-2006-01-31 Love Hörnquist Åstrand <lha@it.su.se>
-
- * extra.c: Stub-generator now generates alloc statements for
- tagless ANY OPTIONAL, remove workaround.
-
- * check-gen.c: check for "tagless ANY OPTIONAL"
-
- * test.asn1: check for "tagless ANY OPTIONAL"
-
-2006-01-30 Love Hörnquist Åstrand <lha@it.su.se>
-
- * der.h: UniversalString and BMPString are both implemented.
-
- * der.h: Remove , after the last element of enum.
-
- * asn1_gen.c: Spelling.
-
-2006-01-20 Love Hörnquist Åstrand <lha@it.su.se>
-
- * der_length.c (length_heim_integer): Try handle negative length
- of integers better.
-
- * der_get.c (der_get_heim_integer): handle negative integers.
-
- * check-der.c: check heim_integer.
-
-2006-01-18 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Its cRLReason, not cRLReasons
-
- * canthandle.asn1: "Allocation is done on CONTEXT tags" works just
- fine.
-
- * rfc2459.asn1: Add CRL structures and OIDs.
-
- * Makefile.am: Add CRL and TESTAlloc structures and OIDs.
-
- * check-gen.c: Check OPTIONAL context-tagless elements.
-
- * test.asn1: Check OPTIONAL context-tagless elements.
-
- * der_cmp.c (heim_integer_cmp): make it work with negative
- numbers.
-
-2006-01-17 Love Hörnquist Åstrand <lha@it.su.se>
-
- * check-der.c: check that der_parse_hex_heim_integer() handles odd
- length numbers.
-
- * der_format.c (der_parse_hex_heim_integer): make more resiliant
- to errors, handle odd length numbers.
-
-2006-01-13 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Add RSAPrivateKey
-
- * rfc2459.asn1: Add RSAPrivateKey.
-
-2006-01-05 Love Hörnquist Åstrand <lha@it.su.se>
-
- * der_copy.c (copy_heim_integer): copy the negative flag
-
-2005-12-14 Love Hörnquist Åstrand <lha@it.su.se>
-
- * parse.y: Drop ExceptionSpec for now, its not used.
-
-2005-12-06 Love Hörnquist Åstrand <lha@it.su.se>
-
- * test.asn1: Add test string for constraints.
-
- * symbol.h: Add support for part of the Constraint-s
-
- * gen.c: Set new constraints pointer in Type to NULL for inline
- constructed types.
-
- * parse.y: Add support for parsing part of the Constraint-s
-
-2005-10-29 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Add some X9.57 (DSA) oids, sort lines
-
- * rfc2459.asn1: Add some X9.57 (DSA) oids.
-
-2005-10-07 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: Remove pk-init-19 support.
-
- * pkinit.asn1: Fix comment
-
- * check-der.c: Add tests for parse and print functions for
- heim_integer.
-
- * Makefile.am: Add parse and print functions for heim_integer.
-
- * der_format.c: Add parse and print functions for heim_integer.
-
- * der.h: Add parse and print functions for heim_integer.
-
-2005-09-22 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am (gen_files_rfc2459) += asn1_DHPublicKey.x
-
- * rfc2459.asn1: Add DHPublicKey, and INTEGER to for storing the DH
- public key in the SubjectPublicKeyInfo.subjectPublicKey BIT
- STRING.
-
-2005-09-20 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen_decode.c: TSequenceOf/TSetOf: Increase the length of the
- array after successful decoding the next element, so that the
- array don't contain heap-data.
-
-2005-09-13 Love Hörnquist Åstrand <lha@it.su.se>
-
- * check-der.c: Avoid empty array initiators.
-
- * pkcs8.asn1 (PKCS8PrivateKeyInfo): Inline SET OF to avoid
- compiler "feature"
-
- * check-common.c: Avoid signedness warnings.
-
- * check-common.h: Makes bytes native platform signed to avoid
- casting everywhere
-
- * check-der.c: Don't depend on malloc(very-very-larger-value) will
- fail. Cast to unsigned long before printing size_t.
-
- * check-gen.c: Don't depend on malloc(very-very-larger-value) will
- fail.
-
- * check-gen.c: Fix signedness warnings.
-
- * lex.l: unput() have to hanppen in actions for flex 2.5.31, can
- do them in user code sesction, so move up handle_comment and
- handle_string into action, not much sharing was done anyway.
-
-2005-09-09 Love Hörnquist Åstrand <lha@it.su.se>
-
- * check-der.c (test_one_int): len and len_len is size_t
-
-2005-08-23 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen_encode.c: Change name of oldret for each instance its used
- to avoid shadow warning. From: Stefan Metzmacher
- <metze@samba.org>.
-
- * gen_length.c: Change name of oldret for each instance its used
- to avoid shadow warning. From: Stefan Metzmacher
- <metze@samba.org>.
-
- * gen_decode.c: Change name of oldret for each instance its used
- to avoid shadow warning. From: Stefan Metzmacher
- <metze@samba.org>.
-
- * parse.y: Const poision yyerror.
-
- * gen.c: Const poision.
-
-2005-08-22 Love Hörnquist Åstrand <lha@it.su.se>
-
- * k5.asn1: Add KRB5-PADATA-PK-AS-09-BINDING, client send
- this (with an empty pa-data.padata-value) to tell the KDC that the
- client support the binding the PA-REP to the AS-REQ packet. This
- is to fix the problem lack of binding the AS-REQ to the PK-AS-REP
- in pre PK-INIT-27. The nonce is replaced with a asCheckSum.
-
-2005-08-11 Love Hörnquist Åstrand <lha@it.su.se>
-
- * canthandle.asn1: Allocation is done on CONTEXT tags.
-
- * asn1_gen.c: rename optind to optidx to avoid shadow warnings
-
-2005-07-28 Love Hörnquist Åstrand <lha@it.su.se>
-
- * rfc2459.asn1: add id-rsadsi-rc2-cbc
-
- * Makefile.am: add another oid for rc2
-
-2005-07-27 Love Hörnquist Åstrand <lha@it.su.se>
-
- * check-der.c: Make variable initiation constant by moving them to
- global context
-
- * check-gen.c: change to c89 comment
-
-2005-07-27 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: remove duplicate asn1_CMSAttributes.x
-
-2005-07-26 Love Hörnquist Åstrand <lha@it.su.se>
-
- * asn1_print.c: rename optind to optidx
-
- * Makefile.am: Update to pkinit-27
-
- * pkinit.asn1: Update to pkinit-27
-
-2005-07-25 Love Hörnquist Åstrand <lha@it.su.se>
-
- * check-der.c: make it work for non c99 compilers too
-
- * check-der.c: start testing BIT STRING
-
- * der_cmp.c (heim_bit_string_cmp): try handle corner cases better
-
- * gen_free.c (free_type): free bignum integers
-
-2005-07-23 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: add PKCS12-OctetString
-
- * pkcs12.asn1: add PKCS12-OctetString
-
- * Makefile.am: add new files
-
- * rfc2459.asn1: include SET OF in Attribute to make the type more
- useful
-
- * CMS.asn1: handle IMPLICIT and share some common structures
-
-2005-07-21 Love Hörnquist Åstrand <lha@it.su.se>
-
- * rfc2459.asn1: Include enough workarounds that this even might
- work.
-
- * check-gen.c: Two implicit tests, one with all structures inlined
-
- * test.asn1: fix workaround for IMPLICIT CONS case
-
- * canthandle.asn1: fix workaround for IMPLICIT CONS case
-
- * asn1_print.c: hint that there are IMPLICIT content when we find
- it
-
- * check-gen.c: Added #ifdef out test for IMPLICIT tagging.
-
- * Makefile.am: test several IMPLICIT tag level deep
-
- * test.asn1: test several IMPLICIT tag level deep
-
- * test.asn1: tests for IMPLICIT
-
- * Makefile.am: tests for IMPLICIT
-
- * canthandle.asn1: Expand on what is wrong with the IMPLICIT
- tagging
-
- * rfc2459.asn1: some of the structure are in the IMPLICIT TAGS
- module
-
-2005-07-19 Love Hörnquist Åstrand <lha@it.su.se>
-
- * asn1_print.c: print size_t by casting to unsigned long and use
- right printf format tags are unsigned integers
-
- * gen.c (generate_constant): oid elements are unsigned
-
- * gen_decode.c (decode_type): tagdatalen should be an size_t.
-
- * extra.c (decode_heim_any): tag is unsigned int.
-
- * der_get.c (der_match_tag): tag is unsigned int.
-
- * gen_length.c (length_type): cast size_t argument to unsigned
- long and use appropriate printf format
-
- * check-der.c (check_fail_bitstring): check for length overflow
-
- * der_get.c: rewrite integer overflow tests w/o SIZE_T_MAX
-
- * check-common.c (generic_decode_fail): only copy in if checklen
- its less then 0xffffff and larger than 0.
-
- * gen_decode.c (find_tag): find external references, we can't
- handle those, so tell user that instead of crashing
-
-2005-07-18 Dave Love <fx@gnu.org>
-
- * extra.c (free_heim_any_set): Fix return.
-
- * gen_decode.c (find_tag): Fix return in TType case.
-
-2005-07-13 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen_encode.c (TChoice): add () to make sure variable expression
- is evaluated correctly
-
- * gen_length.c (TChoice): add () to make sure variable expression
- is evaluated correctly
-
- * k5.asn1: reapply 1.43 that got lost in the merge: rename pvno to
- krb5-pvno
-
-2005-07-12 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen_decode.c (decode_type): TChoice: set the label
-
- * check-gen.c (cmp_Name): do at least some checking
-
- * gen_locl.h: rename function filename() to get_filename() to
- avoid shadowing
-
- * lex.l: rename function filename() to get_filename() to avoid
- shadowing
-
- * gen.c: rename function filename() to get_filename() to avoid
- shadowing
-
- * check-der.c: add failure checks for large oid elements
-
- * check-gen.c: add failure checks for tag (and large tags)
-
- * der_get.c: Check for integer overflows in tags and oid elements.
-
-2005-07-10 Assar Westerlund <assar@kth.se>
-
- * gen_decode.c: Fix decoding of choices to select which branch to
- try based on the tag and return an error if that branch fails.
-
- * check-gen.c: Fix short choice test cases.
-
-2005-07-09 Assar Westerlund <assar@kth.se>
-
- * symbol.c:
- * parse.y:
- * main.c:
- * lex.l:
- * gen_length.c:
- * gen_free.c:
- * gen_encode.c:
- * gen_decode.c:
- * gen_copy.c:
- * gen.c:
- * extra.c:
- * check-gen.c:
- * check-der.c:
- * check-common.c:
- * asn1_print.c:
- * asn1_gen.c:
- Use emalloc, ecalloc, and estrdup.
- Check return value from asprintf.
- Make sure that malloc(0) returning NULL is not treated as an
- error.
-
-2005-07-10 Love Hörnquist Åstrand <lha@it.su.se>
-
- * check-gen.c: test cases for CHOICE, its too liberal right now,
- it don't fail hard on failure on after it successfully decoded the
- first tag in a choice branch
-
- * asn1_gen.c: calculate the basename for the output file,
- pretty-print tag number
-
- * test.gen: sample for asn1_gen
-
- * check-gen.c: check errors in SEQUENCE
-
- * Makefile.am: build asn1_gen, TESTSeq and new, and class/type/tag
- string<->num converter.
-
- * test.asn1: TESTSeq, for testing SEQUENCE
-
- * asn1_gen.c: generator for asn1 data
-
- * asn1_print.c: use class/type/tag string<->num converter.
-
- * der.c: Add class/type/tag string<->num converter.
-
- * der.h: Add class/type/tag string<->num converter.
- Prototypes/structures for new time bits.
-
-2005-07-09 Love Hörnquist Åstrand <lha@it.su.se>
-
- * der_get.c (der_get_unsigned) check for length overflow
- (der_get_integer) ditto
- (der_get_general_string) ditto
-
- * der_get.c: check for overruns using SIZE_T_MAX
-
- * check-der.c: check BIT STRING and OBJECT IDENTIFIER error cases
-
- * check-common.c (generic_decode_fail): allocate 4K for the over
- sized memory test
-
- * der_get.c (der_get_oid): check for integer overruns and
- unterminated oid correctly
-
- * check-common.h (map_alloc, generic_decode_fail): prototypes
-
- * check-common.c (map_alloc): make input buffer const
- (generic_decode_fail): verify decoding failures
-
-2005-07-05 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen_encode.c: split up the printf for SET OF, also use the
- generate name for the symbol in the SET OF, if not, the name might
- contain non valid variable name characters (like -)
-
-2005-07-04 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: move pkcs12 defines into their own namespace
-
- * pkcs12.asn1: move pkcs12 defines into their own namespace
-
- * pkcs9.asn1: add PKCS9-friendlyName with workaround for SET OF
- bug
-
- * heim_asn1.h: reuse heim_octet_string for heim_any types
-
- * main.c: use optidx, handle the case where name is missing and
- use base of filename then
-
- * asn1-common.h: include ASN1_MALLOC_ENCODE
-
- * gen_decode.c: use less context so lower indentention level, add
- missing {} where needed
-
-2005-07-02 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen_copy.c: Use a global variable to keep track of if the 'goto
- fail' was used, and use that to only generate the label if needed.
-
- * asn1_print.c: do indefinite form loop detection and stop after
- 10000 recursive indefinite forms, stops crashing due to running
- out of stack
-
- * asn1_print.c: catch badly formated indefinite length data
- (missing EndOfContent tag) add (negative) indent flag to speed up
- testing
-
-2005-07-01 Love Hörnquist Åstrand <lha@it.su.se>
-
- * canthandle.asn1: Can't handle primitives in CHOICE
-
- * gen_decode.c: Check if malloc failes
-
- * gen_copy.c: Make sure to free memory on failure
-
- * gen_decode.c: Check if malloc failes, rename "reallen" to
- tagdatalen since that is what it is.
-
-2005-05-29 Love Hörnquist Åstrand <lha@it.su.se>
-
- * prefix Der_class with ASN1_C_ to avoid problems with system
- headerfiles that pollute the name space
-
-2005-05-20 Love Hörnquist Åstrand <lha@it.su.se>
-
- * pkcs12.asn1: add PKCS12CertBag
-
- * pkcs9.asn1: add pkcs9 certtype x509 certificate
-
- * Makefile.am: add pkcs12 certbag and pkcs9 certtype x509
- certificate
-
- * pkcs12.asn1: split off PKCS12Attributes from SafeBag so it can
- be reused
-
- * Makefile.am: add PKCS12Attributes
-
-2005-05-10 Love Hörnquist Åstrand <lha@it.su.se>
-
- * canthandle.asn1: fix tags in example
-
-2005-05-02 Love Hörnquist Åstrand <lha@it.su.se>
-
- * pkinit.asn1: Let the Windows nonce be an int32 (signed), if not
- it will fail when using Windows PK-INIT.
-
-2005-05-01 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: add pkcs12-PBEParams
-
- * pkcs12.asn1: add pkcs12-PBEParams
-
- * parse.y: objid_element: exit when the condition fails
-
-2005-04-26 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen_glue.c: 1.8: switch the units variable to a
- function. gcc-4.1 needs the size of the structure if its defined
- as extern struct units foo_units[] an we don't want to include
- <parse_units.h> in the generate headerfile
-
-2005-03-20 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: add the des-ede3-cbc oid that ansi x9.52 uses
-
- * rfc2459.asn1: add the des-ede3-cbc oid that ansi x9.52 uses
-
- * Makefile.am: add oids for x509
-
- * rfc2459.asn1: add oids now when the compiler can handle them
-
-2005-03-19 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: add pkcs9 files
-
- * pkcs9.asn1: add small number of oids from pkcs9
-
-2005-03-14 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: add a bunch of pkcs1/pkcs2/pkcs3/aes oids
-
- * rfc2459.asn1: add a bunch of pkcs1/pkcs2/pkcs3/aes oids
-
-2005-03-10 Love Hörnquist Åstrand <lha@it.su.se>
-
- * k5.asn1: merge pa-numbers
-
-2005-03-09 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: add oid's
-
- * rfc2459.asn1: add encryption oids
-
- * CMS.asn1: add signedAndEnvelopedData oid
-
- * pkcs12.asn1: add pkcs12 oids
-
- * CMS.asn1: add pkcs7 oids
-
-2005-03-08 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen.c (generate_header_of_codefile): break out the header
- section generation
- (generate_constant): generate a function that return the oid
- inside a heim_oid
-
- * parse.y: fix the ordering of the oid's
-
- * parse.y: handle OBJECT IDENTIFIER as value construct
-
-2005-02-24 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Preserve content of CHOICE element that is unknown if ellipsis
- was used when defining the structure
-
-2005-02-13 Love Hörnquist Åstrand <lha@it.su.se>
-
- * parse.y: use ANS1_TAILQ macros
-
- * *.[ch]: use ASN1_TAILQ macros
-
- * asn1_queue.h: inline bsd sys/queue.h and rename TAILQ to
- ASN1_TAILQ to avoid problems with name polluting headerfiles
-
-2005-01-19 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen.c: pull in <krb5-types.h>
-
-2005-01-10 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Add BMPString and UniversalString
-
- * k5.asn1 (EtypeList): make INTEGER constrained (use krb5int32)
-
-2005-01-07 Love Hörnquist Åstrand <lha@it.su.se>
-
- * rfc2459.asn1: add GeneralNames
-
-2004-11-21 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen.c: use unsigned integer for len of SequenceOf/SetOf and
- bitstring names
-
-2004-11-10 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: switch to krb5int32 and krb5uint32
-
- * Unify that three integer types TInteger TUInteger and TBigInteger.
- Start to use constrained integers where appropriate.
-
-2004-10-13 Love Hörnquist Åstrand <lha@it.su.se>
-
- * CMS.asn1: remove no longer used commented out elements
-
- * gen_glue.c: make units structures const
-
-2004-10-12 Love Hörnquist Åstrand <lha@it.su.se>
-
- * lex.l: handle hex number with [a-fA-F] in them
-
-2004-10-07 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen_free.c: free _save for CHOICE too
-
- * rfc2459.asn1: use Name and not heim_any
-
- * gen_decode.c: if malloc for _save failes, goto fail so we free
- the structure
-
- * gen_copy.c: copy _save for CHOICE too
-
- * gen.c: add _save for CHOICE too
-
- * CMS.asn1: RecipientIdentifier and SignerIdentifier is the same
- name is CMSIdentifier and add glue for that so we can share code
- use Name and not heim_any
-
-2004-10-03 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: drop AlgorithmIdentifierNonOpt add
- {RC2CBC,}CBCParameter here where they belong
-
- * CMS.asn1: add {RC2CBC,}CBCParameter here where they belong
-
- * rfc2459.asn1: drop AlgorithmIdentifierNonOpt
-
- * rfc2459.asn1: stop using AlgorithmIdentifierNonOpt hint that we
- really want to use Name and some MS stuff
-
-2004-09-05 Love Hörnquist Åstrand <lha@it.su.se>
-
- * asn1_print.c: handle end of content, this is part BER support,
- however, OCTET STRING need some tweeking too.
-
- * der.h: add UT_EndOfContent
-
- * test.asn1: test asn1 spec file
-
- * check-gen.c: check larget tags
-
- * Makefile.am: add test asn1 spec file that we can use for testing
- constructs that doesn't exists in already existing spec (like
- large tags)
-
- * der_put.c (der_put_tag): make sure there are space for the head
- tag when we are dealing with large tags (>30)
-
- * check-gen.c: add test for tag length
-
- * check-common.c: export the map_ functions for OVERRUN/UNDERRUN
- detection restore the SIGSEGV handler when test is done
-
- * check-common.h: export the map_ functions for OVERRUN/UNDERRUN
- detection
-
- * gen_decode.c: check that the tag-length is not longer the length
- use forwstr on some more places
-
- * parse.y: revert part of 1.14.2.21, multiple IMPORT isn't allowed
-
- * pkinit.asn1: correct usage of IMPORT
-
- * CMS.asn1: correct usage of IMPORT
-
- * pkcs8.asn1: pkcs8, encrypting private key
-
- * pkcs12.asn1: pkcs12, key/crl/certificate file transport PDU
-
- * Makefile.am: add pkcs8 and pkcs12
-
- * der_free.c: reset length when freing primitives
-
- * CMS.asn1: add EncryptedData
-
-2004-08-26 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen_decode.c (decode_type): if the entry is already optional
- when parsing a tag and we allocate the structure, not pass down
- optional since that will case the subtype's decode_type also to
- allocate an entry. and we'll leak an entry. Bug from Luke Howard
- <lukeh@padl.com>. While here, use calloc.
-
-2004-04-29 Love Hörnquist Åstrand <lha@it.su.se>
-
- * k5.asn1: shift the last added etypes one step so rc2 doesn't
- stomp on cram-md5
-
-2004-04-26 Love Hörnquist Åstrand <lha@it.su.se>
-
- * k5.asn1: add ETYPE_AESNNN_CBC_NONE
-
- * CMS.asn1: add CMS symmetrical parameters moved to k5.asn1
-
- * k5.asn1: add CMS symmetrical parameters here, more nametypes
- enctype rc2-cbc
-
-2004-04-25 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen_decode.c: free data on decode failure
-
-2004-04-24 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: add CBCParameter and RC2CBCParameter
-
- * CMS.asn1: add CBCParameter and RC2CBCParameter
-
-2004-04-20 Love Hörnquist Åstrand <lha@it.su.se>
-
- * check-der.c: add simple test for oid's, used to trigger malloc
- bugs in you have picky malloc (like valgrind/purify/third)
-
- * der_get.c (der_get_oid): handle all oid components being smaller
- then 127 and allocate one extra element since first byte is split
- to to elements.
-
-2004-04-16 Love Hörnquist Åstrand <lha@it.su.se>
-
- * canthandle.asn1: one thing handled
-
- * gen_decode.c: handle OPTIONAL CONS-tag-less elements
-
- * der_length.c (length_len): since length is no longer the same as
- an unsigned, do the length counting here. ("unsigned" is zero
- padded when most significate bit is set, length is not)
-
-2004-04-12 Love Hörnquist Åstrand <lha@it.su.se>
-
- * canthandle.asn1: document by example what the encoder can't
- handle right now
-
- * Makefile.am: add more stuff needed whem implementing x509
- preserve TBSCertificate
-
- * rfc2459.asn1: add more stuff needed whem implementing x509
-
- * CMS.asn1: move some type to rfc2459.asn1 where they belong (and
- import them)
-
- * gen.c: preserve the raw data when asked too
-
- * gen_decode.c: preserve the raw data when asked too
-
- * gen_copy.c: preserve the raw data when asked too
-
- * gen_free.c: preserve the raw data when asked too
-
- * gen_locl.h: add preserve_type
-
- * heim_asn1.h: add heim_any_cmp
-
- * main.c: add flag --preserve-binary=Symbol1,Symbol2,... that make
- the compiler generate stubs to save the raw data, its not used
- right now when generating the stat
-
- * k5.asn1: Windows uses PADATA 15 for the request too
-
- * extra.c: add heim_any_cmp
-
- * der_put.c: implement UTCtime correctly
-
- * der_locl.h: remove #ifdef HAVE_TIMEGM\ntimegm\n#endif here from
- der.h so one day der.h can get installed
-
- * der_length.c: implement UTCtime correctly
-
- * der_get.c: implement UTCtime correctly, prefix dce_fix with
- _heim_fix
-
- * der_copy.c: make copy_bit_string work again
-
- * der_cmp.c: add octet_string, integer, bit_string cmp functions
-
- * der.h: hide away more symbols, add more _cmp functions
-
-2004-03-06 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: add more pkix types make k5 use rfc150 bitstrings,
- everything else use der bitstrings
-
- * main.c: as a compile time option, handle no rfc1510 bitstrings
-
- * gen_locl.h: rfc1510 bitstrings flag
-
- * gen_length.c: as a compile time option, handle no rfc1510
- bitstrings
-
- * gen_encode.c: as a compile time option, handle no rfc1510
- bitstrings
-
- * gen_decode.c: handle no rfc1510 bitstrings
-
- * check-gen.c: test for bitstrings
-
- * rfc2459.asn1: add Certificates and KeyUsage
-
-2004-02-22 Love Hörnquist Åstrand <lha@it.su.se>
-
- * pkinit.asn1: use Name from PKIX
-
- * rfc2459.asn1: add more silly string types to DirectoryString
-
- * gen_encode.c: add checks for data overflow when encoding
- TBitString with members encode SET OF correctly by bytewise
- sorting the members
-
- * gen_decode.c: add checks for data overrun when encoding
- TBitString with members
-
- * der_put.c: add _heim_der_set_sort
-
- * der_cmp.c: rename oid_cmp to heim_oid_cmp
-
- * der.h: rename oid_cmp to heim_oid_cmp, add _heim_der_set_sort
-
- * check-gen.c: add check for Name and (commented out) heim_integer
-
- * check-der.c: test for "der_length.c: Fix len_unsigned for
- certain negative integers, it got the length wrong" , from
- Panasas, Inc.
-
- * der_length.c: Fix len_unsigned for certain negative integers, it
- got the length wrong, fix from Panasas, Inc.
-
- rename len_int and len_unsigned to _heim_\&
-
- * gen_length.c: 1.14: (length_type): TSequenceOf: add up the size
- of all the elements, don't use just the size of the last element.
-
-2004-02-20 Love Hörnquist Åstrand <lha@it.su.se>
-
- * rfc2459.asn1: include defintion of Name
-
- * pkinit.asn1: no need for ContentType, its cms internal
-
- * CMS.asn1: move ContentInfo to CMS
-
- * pkinit.asn1: update to pk-init-18, move ContentInfo to CMS
-
- * Makefile.am: align with pk-init-18, move contentinfo to cms
-
-2004-02-17 Love Hörnquist Åstrand <lha@it.su.se>
-
- * der_get.c: rewrite previous commit
-
- * der_get.c (der_get_heim_integer): handle positive integer
- starting with 0
-
- * der_length.c (der_put_heim_integer): try handle negative
- integers better (?)
-
- * der_put.c (der_put_heim_integer): try handle negative integers
- better
-
- * der_get.c (der_get_heim_integer): dont abort on negative integer just
- return ASN1_OVERRUN for now
-
- * parse.y: add ia5string, and printablestring
-
- * gen_length.c: add ia5string, and printablestring
-
- * gen_free.c: add ia5string, and printablestring
-
- * gen_decode.c: add ia5string, and printablestring
-
- * gen_copy.c: add ia5string, and printablestring
-
- * gen.c: add ia5string, printablestring, and utf8string change
- implemetation of heim_integer and store the data as bigendian byte
- array with a external flag for signedness
-
- * der_put.c: add ia5string, printablestring, and utf8string change
- implemetation of heim_integer and store the data as bigendian byte
- array with a external flag for signedness
-
- * der_length.c: add ia5string, printablestring, and utf8string
- change implemetation of heim_integer and store the data as
- bigendian byte array with a external flag for signedness
-
- * der_get.c: add ia5string, printablestring, and utf8string change
- implemetation of heim_integer and store the data as bigendian byte
- array with a external flag for signedness
-
- * der_free.c: add ia5string, printablestring, and utf8string
-
- * der_copy.c: add ia5string, printablestring, and utf8string
-
- * der.h: add ia5string, printablestring, and utf8string
-
- * asn1-common.h: add signedness flag to heim_integer, add
- ia5string and printablestring
-
-2004-02-13 Love Hörnquist Åstrand <lha@it.su.se>
-
- * rfc2459.asn1: use BIGINTEGER where appropriate
-
- * setchgpw2.asn1: spelling and add op-req again
-
-2004-02-12 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: clean up better
-
-2004-02-11 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen_decode.c (decode_type): TTag, don't overshare the reallen
- variable
-
- * Makefile.am: adapt to log file name change
-
- * gen.c: genereate log file name based on base name
-
-2003-11-26 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: += asn1_AlgorithmIdentifierNonOpt.x
-
- * rfc2459.asn1: add AlgorithmIdentifierNonOpt and use it where
- it's needed, make DomainParameters.validationParms heim_any as a
- hack. Both are workarounds for the problem with heimdal's asn1
- compiler have with decoing context tagless OPTIONALs.
-
- * pkinit.asn1: don't import AlgorithmIdentifier
-
-2003-11-25 Love Hörnquist Åstrand <lha@it.su.se>
-
- * der_put.c (der_put_bit_string): make it work somewhat better
- (should really prune off all trailing zeros)
-
- * gen_encode.c (encode_type): bit string is not a constructed type
-
- * der_length.c (length_bit_string): calculate right length for
- bitstrings
-
-2003-11-24 Love Hörnquist Åstrand <lha@it.su.se>
-
- * der_cmp.c (oid_cmp): compare the whole array, not just
- length/sizeof(component)
-
- * check-common.c: mmap the scratch areas, mprotect before and
- after, align data to the edge of the mprotect()ed area to provoke
- bugs
-
- * Makefile.am: add DomainParameters, ValidationParms
-
- * rfc2459.asn1: add DomainParameters, ValidationParms
-
- * check-der.c: add free function
-
- * check-common.h: add free function
-
- * check-common.c: add free function
-
- * check-gen.c: check KRB-ERROR
-
- * asn1_print.c: check end of tag_names loop into APPL class tags
-
-2003-11-23 Love Hörnquist Åstrand <lha@it.su.se>
-
- * der_put.c (der_put_generalized_time): check size, not *size
-
-2003-11-11 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen_decode.c (decode_type/TBitString): skip over
- skipped-bits-in-last-octet octet
-
- * gen_glue.c (generate_units): generate units in reverse order to
- keep unparse_units happy
-
-2003-11-08 Love Hörnquist Åstrand <lha@it.su.se>
-
- * Makefile.am: generate all silly pkinit files
-
- * pkinit.asn1: make it work again, add strange ms structures
-
- * k5.asn1: PROV-SRV-LOCATION, PacketCable provisioning server
- location, PKT-SP-SEC-I09-030728
-
- * asn1-common.h: add bit string
-
- * der_put.c: add bit string and utctime
-
- * gen.c: add bit string and utctime
-
- * gen_copy.c: add bit string and utctime
-
- * der_copy.c: add bit string
-
- * gen_decode.c: add utctime and bitstring
-
- * gen_encode.c: add utctime and bitstring
-
- * gen_free.c: add utctime and bitstring
-
- * gen_glue.c: don't generate glue for member-less bit strings
-
- * der_cmp.c: compare function for oids
-
- * gen_length.c: add utc time, make bit string work for bits
- strings w/o any members
-
- * der_cmp.c: compare function for oids
-
- * der.h: update boolean prototypes add utctime and bit_string
-
- * der_free.c: add free_bit_string
-
- * der_get.c: add bit string and utctime
-
- * der_length.c: add bit string and utctime, fix memory leak in
- length_generalized_time
-
- * CMS.asn1: make EncryptedContentInfo.encryptedContent a OCTET
- STRING to make the generator do the right thing with IMPLICIT
- mumble OPTIONAL, make CertificateSet a heim_any_set
-
- * extra.c, heim_asn1.h: add any_set, instead of just consuming one
- der object, its consumes the rest of the data avaible
-
- * extra.c, heim_asn1.h: extern implementation of ANY, decoder
- needs to have hack removed when generator handles tagless optional
- data
-
- * pkinit.asn1: add KdcDHKeyInfo-Win2k
-
-2003-11-07 Love Hörnquist Åstrand <lha@it.su.se>
-
- * der_copy.c (copy_oid): copy all components
-
- * parse.y: parse UTCTime, allow multiple IMPORT
-
- * symbol.h: add TUTCTime
-
- * rfc2459.asn1: update
-
- * x509.asn1: update
-
- * pkinit.asn1: update
-
- * CMS.asn1: new file
-
- * asn1_print.c: print some more lengths, check length before
- steping out in the void, parse SET, only go down CONTEXT of type
- CONS (not PRIM)
-
-2003-09-17 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen_encode.c (TChoice, TSequence): code element in reverse
- order...
-
-2003-09-16 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen.c: store NULL's as int's for now
-
- * parse.y: remove dup of type def of UsefulType
-
-2003-09-11 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen_decode.c (decode_type): if malloc failes, return ENOMEM
-
-2003-09-10 Love Hörnquist Åstrand <lha@it.su.se>
-
- * parse.y: kw_UTF8String is a token put tag around the OID
-
- * asn1_print.c (UT_Integer): when the integer is larger then int
- can handle, just print BIG INT and its size
-
-2003-09-10 Love Hörnquist Åstrand <lha@it.su.se>
-
- * gen_decode.c (decode_type): TTag, try to generate prettier code
- in the non optional case, also remember to update length
-
-2003-01-22 Johan Danielsson <joda@pdc.kth.se>
-
- * gen_decode.c: add flag to decode broken DCE BER encoding
-
- * gen_locl.h: add flag to decode broken DCE BER encoding
-
- * main.c: add flag to decode broken DCE BER encoding
-
diff --git a/crypto/heimdal/lib/asn1/Makefile.am b/crypto/heimdal/lib/asn1/Makefile.am
deleted file mode 100644
index af300f0..0000000
--- a/crypto/heimdal/lib/asn1/Makefile.am
+++ /dev/null
@@ -1,610 +0,0 @@
-# $Id: Makefile.am 22445 2008-01-14 21:23:36Z lha $
-
-include $(top_srcdir)/Makefile.am.common
-
-YFLAGS = -d -t
-
-lib_LTLIBRARIES = libasn1.la
-libasn1_la_LDFLAGS = -version-info 8:0:0
-
-libasn1_la_LIBADD = \
- @LIB_com_err@ \
- $(LIBADD_roken)
-
-BUILT_SOURCES = \
- $(gen_files_rfc2459:.x=.c) \
- $(gen_files_cms:.x=.c) \
- $(gen_files_k5:.x=.c) \
- $(gen_files_pkinit:.x=.c) \
- $(gen_files_pkcs8:.x=.c) \
- $(gen_files_pkcs9:.x=.c) \
- $(gen_files_pkcs12:.x=.c) \
- $(gen_files_digest:.x=.c) \
- $(gen_files_kx509:.x=.c) \
- asn1_err.h \
- asn1_err.c
-
-gen_files_k5 = \
- asn1_AD_AND_OR.x \
- asn1_AD_IF_RELEVANT.x \
- asn1_AD_KDCIssued.x \
- asn1_AD_MANDATORY_FOR_KDC.x \
- asn1_AD_LoginAlias.x \
- asn1_APOptions.x \
- asn1_AP_REP.x \
- asn1_AP_REQ.x \
- asn1_AS_REP.x \
- asn1_AS_REQ.x \
- asn1_AUTHDATA_TYPE.x \
- asn1_Authenticator.x \
- asn1_AuthorizationData.x \
- asn1_AuthorizationDataElement.x \
- asn1_CKSUMTYPE.x \
- asn1_ChangePasswdDataMS.x \
- asn1_Checksum.x \
- asn1_ENCTYPE.x \
- asn1_ETYPE_INFO.x \
- asn1_ETYPE_INFO2.x \
- asn1_ETYPE_INFO2_ENTRY.x \
- asn1_ETYPE_INFO_ENTRY.x \
- asn1_EncAPRepPart.x \
- asn1_EncASRepPart.x \
- asn1_EncKDCRepPart.x \
- asn1_EncKrbCredPart.x \
- asn1_EncKrbPrivPart.x \
- asn1_EncTGSRepPart.x \
- asn1_EncTicketPart.x \
- asn1_EncryptedData.x \
- asn1_EncryptionKey.x \
- asn1_EtypeList.x \
- asn1_HostAddress.x \
- asn1_HostAddresses.x \
- asn1_KDCOptions.x \
- asn1_KDC_REP.x \
- asn1_KDC_REQ.x \
- asn1_KDC_REQ_BODY.x \
- asn1_KRB_CRED.x \
- asn1_KRB_ERROR.x \
- asn1_KRB_PRIV.x \
- asn1_KRB_SAFE.x \
- asn1_KRB_SAFE_BODY.x \
- asn1_KerberosString.x \
- asn1_KerberosTime.x \
- asn1_KrbCredInfo.x \
- asn1_LR_TYPE.x \
- asn1_LastReq.x \
- asn1_MESSAGE_TYPE.x \
- asn1_METHOD_DATA.x \
- asn1_NAME_TYPE.x \
- asn1_PADATA_TYPE.x \
- asn1_PA_DATA.x \
- asn1_PA_ENC_SAM_RESPONSE_ENC.x \
- asn1_PA_ENC_TS_ENC.x \
- asn1_PA_PAC_REQUEST.x \
- asn1_PA_S4U2Self.x \
- asn1_PA_SAM_CHALLENGE_2.x \
- asn1_PA_SAM_CHALLENGE_2_BODY.x \
- asn1_PA_SAM_REDIRECT.x \
- asn1_PA_SAM_RESPONSE_2.x \
- asn1_PA_SAM_TYPE.x \
- asn1_PA_ClientCanonicalized.x \
- asn1_PA_ClientCanonicalizedNames.x \
- asn1_PA_SvrReferralData.x \
- asn1_PROV_SRV_LOCATION.x \
- asn1_Principal.x \
- asn1_PrincipalName.x \
- asn1_Realm.x \
- asn1_SAMFlags.x \
- asn1_TGS_REP.x \
- asn1_TGS_REQ.x \
- asn1_TYPED_DATA.x \
- asn1_Ticket.x \
- asn1_TicketFlags.x \
- asn1_TransitedEncoding.x \
- asn1_TypedData.x \
- asn1_krb5int32.x \
- asn1_krb5uint32.x \
- asn1_KRB5SignedPathData.x \
- asn1_KRB5SignedPathPrincipals.x \
- asn1_KRB5SignedPath.x
-
-gen_files_cms = \
- asn1_CMSAttributes.x \
- asn1_CMSCBCParameter.x \
- asn1_CMSEncryptedData.x \
- asn1_CMSIdentifier.x \
- asn1_CMSRC2CBCParameter.x \
- asn1_CMSVersion.x \
- asn1_CertificateList.x \
- asn1_CertificateRevocationLists.x \
- asn1_CertificateSet.x \
- asn1_ContentEncryptionAlgorithmIdentifier.x \
- asn1_ContentInfo.x \
- asn1_ContentType.x \
- asn1_DigestAlgorithmIdentifier.x \
- asn1_DigestAlgorithmIdentifiers.x \
- asn1_EncapsulatedContentInfo.x \
- asn1_EncryptedContent.x \
- asn1_EncryptedContentInfo.x \
- asn1_EncryptedKey.x \
- asn1_EnvelopedData.x \
- asn1_IssuerAndSerialNumber.x \
- asn1_KeyEncryptionAlgorithmIdentifier.x \
- asn1_KeyTransRecipientInfo.x \
- asn1_MessageDigest.x \
- asn1_OriginatorInfo.x \
- asn1_RecipientIdentifier.x \
- asn1_RecipientInfo.x \
- asn1_RecipientInfos.x \
- asn1_SignatureAlgorithmIdentifier.x \
- asn1_SignatureValue.x \
- asn1_SignedData.x \
- asn1_SignerIdentifier.x \
- asn1_SignerInfo.x \
- asn1_SignerInfos.x \
- asn1_id_pkcs7.x \
- asn1_id_pkcs7_data.x \
- asn1_id_pkcs7_digestedData.x \
- asn1_id_pkcs7_encryptedData.x \
- asn1_id_pkcs7_envelopedData.x \
- asn1_id_pkcs7_signedAndEnvelopedData.x \
- asn1_id_pkcs7_signedData.x \
- asn1_UnprotectedAttributes.x
-
-gen_files_rfc2459 = \
- asn1_Version.x \
- asn1_id_pkcs_1.x \
- asn1_id_pkcs1_rsaEncryption.x \
- asn1_id_pkcs1_md2WithRSAEncryption.x \
- asn1_id_pkcs1_md5WithRSAEncryption.x \
- asn1_id_pkcs1_sha1WithRSAEncryption.x \
- asn1_id_pkcs1_sha256WithRSAEncryption.x \
- asn1_id_pkcs1_sha384WithRSAEncryption.x \
- asn1_id_pkcs1_sha512WithRSAEncryption.x \
- asn1_id_heim_rsa_pkcs1_x509.x \
- asn1_id_pkcs_2.x \
- asn1_id_pkcs2_md2.x \
- asn1_id_pkcs2_md4.x \
- asn1_id_pkcs2_md5.x \
- asn1_id_rsa_digestAlgorithm.x \
- asn1_id_rsa_digest_md2.x \
- asn1_id_rsa_digest_md4.x \
- asn1_id_rsa_digest_md5.x \
- asn1_id_pkcs_3.x \
- asn1_id_pkcs3_rc2_cbc.x \
- asn1_id_pkcs3_rc4.x \
- asn1_id_pkcs3_des_ede3_cbc.x \
- asn1_id_rsadsi_encalg.x \
- asn1_id_rsadsi_rc2_cbc.x \
- asn1_id_rsadsi_des_ede3_cbc.x \
- asn1_id_secsig_sha_1.x \
- asn1_id_nistAlgorithm.x \
- asn1_id_nist_aes_algs.x \
- asn1_id_aes_128_cbc.x \
- asn1_id_aes_192_cbc.x \
- asn1_id_aes_256_cbc.x \
- asn1_id_nist_sha_algs.x \
- asn1_id_sha256.x \
- asn1_id_sha224.x \
- asn1_id_sha384.x \
- asn1_id_sha512.x \
- asn1_id_dhpublicnumber.x \
- asn1_id_x9_57.x \
- asn1_id_dsa.x \
- asn1_id_dsa_with_sha1.x \
- asn1_id_x520_at.x \
- asn1_id_at_commonName.x \
- asn1_id_at_surname.x \
- asn1_id_at_serialNumber.x \
- asn1_id_at_countryName.x \
- asn1_id_at_localityName.x \
- asn1_id_at_streetAddress.x \
- asn1_id_at_stateOrProvinceName.x \
- asn1_id_at_organizationName.x \
- asn1_id_at_organizationalUnitName.x \
- asn1_id_at_name.x \
- asn1_id_at_givenName.x \
- asn1_id_at_initials.x \
- asn1_id_at_generationQualifier.x \
- asn1_id_at_pseudonym.x \
- asn1_id_Userid.x \
- asn1_id_domainComponent.x \
- asn1_id_x509_ce.x \
- asn1_id_uspkicommon_card_id.x \
- asn1_id_uspkicommon_piv_interim.x \
- asn1_id_netscape.x \
- asn1_id_netscape_cert_comment.x \
- asn1_id_ms_cert_enroll_domaincontroller.x \
- asn1_id_ms_client_authentication.x \
- asn1_AlgorithmIdentifier.x \
- asn1_AttributeType.x \
- asn1_AttributeValue.x \
- asn1_TeletexStringx.x \
- asn1_DirectoryString.x \
- asn1_Attribute.x \
- asn1_AttributeTypeAndValue.x \
- asn1_AuthorityInfoAccessSyntax.x \
- asn1_AccessDescription.x \
- asn1_RelativeDistinguishedName.x \
- asn1_RDNSequence.x \
- asn1_Name.x \
- asn1_CertificateSerialNumber.x \
- asn1_Time.x \
- asn1_Validity.x \
- asn1_UniqueIdentifier.x \
- asn1_SubjectPublicKeyInfo.x \
- asn1_Extension.x \
- asn1_Extensions.x \
- asn1_TBSCertificate.x \
- asn1_Certificate.x \
- asn1_Certificates.x \
- asn1_ValidationParms.x \
- asn1_DomainParameters.x \
- asn1_DHPublicKey.x \
- asn1_OtherName.x \
- asn1_GeneralName.x \
- asn1_GeneralNames.x \
- asn1_id_x509_ce_keyUsage.x \
- asn1_KeyUsage.x \
- asn1_id_x509_ce_authorityKeyIdentifier.x \
- asn1_KeyIdentifier.x \
- asn1_AuthorityKeyIdentifier.x \
- asn1_id_x509_ce_subjectKeyIdentifier.x \
- asn1_SubjectKeyIdentifier.x \
- asn1_id_x509_ce_basicConstraints.x \
- asn1_BasicConstraints.x \
- asn1_id_x509_ce_nameConstraints.x \
- asn1_BaseDistance.x \
- asn1_GeneralSubtree.x \
- asn1_GeneralSubtrees.x \
- asn1_NameConstraints.x \
- asn1_id_x509_ce_privateKeyUsagePeriod.x \
- asn1_id_x509_ce_certificatePolicies.x \
- asn1_id_x509_ce_policyMappings.x \
- asn1_id_x509_ce_subjectAltName.x \
- asn1_id_x509_ce_issuerAltName.x \
- asn1_id_x509_ce_subjectDirectoryAttributes.x \
- asn1_id_x509_ce_policyConstraints.x \
- asn1_id_x509_ce_extKeyUsage.x \
- asn1_ExtKeyUsage.x \
- asn1_id_x509_ce_cRLDistributionPoints.x \
- asn1_id_x509_ce_deltaCRLIndicator.x \
- asn1_id_x509_ce_issuingDistributionPoint.x \
- asn1_id_x509_ce_holdInstructionCode.x \
- asn1_id_x509_ce_invalidityDate.x \
- asn1_id_x509_ce_certificateIssuer.x \
- asn1_id_x509_ce_inhibitAnyPolicy.x \
- asn1_DistributionPointReasonFlags.x \
- asn1_DistributionPointName.x \
- asn1_DistributionPoint.x \
- asn1_CRLDistributionPoints.x \
- asn1_DSASigValue.x \
- asn1_DSAPublicKey.x \
- asn1_DSAParams.x \
- asn1_RSAPublicKey.x \
- asn1_RSAPrivateKey.x \
- asn1_DigestInfo.x \
- asn1_TBSCRLCertList.x \
- asn1_CRLCertificateList.x \
- asn1_id_x509_ce_cRLNumber.x \
- asn1_id_x509_ce_freshestCRL.x \
- asn1_id_x509_ce_cRLReason.x \
- asn1_CRLReason.x \
- asn1_PKIXXmppAddr.x \
- asn1_id_pkix.x \
- asn1_id_pkix_on.x \
- asn1_id_pkix_on_dnsSRV.x \
- asn1_id_pkix_on_xmppAddr.x \
- asn1_id_pkix_kp.x \
- asn1_id_pkix_kp_serverAuth.x \
- asn1_id_pkix_kp_clientAuth.x \
- asn1_id_pkix_kp_emailProtection.x \
- asn1_id_pkix_kp_timeStamping.x \
- asn1_id_pkix_kp_OCSPSigning.x \
- asn1_id_pkix_pe.x \
- asn1_id_pkix_pe_authorityInfoAccess.x \
- asn1_id_pkix_pe_proxyCertInfo.x \
- asn1_id_pkix_ppl.x \
- asn1_id_pkix_ppl_anyLanguage.x \
- asn1_id_pkix_ppl_inheritAll.x \
- asn1_id_pkix_ppl_independent.x \
- asn1_ProxyPolicy.x \
- asn1_ProxyCertInfo.x
-
-gen_files_pkinit = \
- asn1_id_pkinit.x \
- asn1_id_pkauthdata.x \
- asn1_id_pkdhkeydata.x \
- asn1_id_pkrkeydata.x \
- asn1_id_pkekuoid.x \
- asn1_id_pkkdcekuoid.x \
- asn1_id_pkinit_san.x \
- asn1_id_pkinit_ms_eku.x \
- asn1_id_pkinit_ms_san.x \
- asn1_MS_UPN_SAN.x \
- asn1_DHNonce.x \
- asn1_KDFAlgorithmId.x \
- asn1_TrustedCA.x \
- asn1_ExternalPrincipalIdentifier.x \
- asn1_ExternalPrincipalIdentifiers.x \
- asn1_PA_PK_AS_REQ.x \
- asn1_PKAuthenticator.x \
- asn1_AuthPack.x \
- asn1_TD_TRUSTED_CERTIFIERS.x \
- asn1_TD_INVALID_CERTIFICATES.x \
- asn1_KRB5PrincipalName.x \
- asn1_AD_INITIAL_VERIFIED_CAS.x \
- asn1_DHRepInfo.x \
- asn1_PA_PK_AS_REP.x \
- asn1_KDCDHKeyInfo.x \
- asn1_ReplyKeyPack.x \
- asn1_TD_DH_PARAMETERS.x \
- asn1_PKAuthenticator_Win2k.x \
- asn1_AuthPack_Win2k.x \
- asn1_TrustedCA_Win2k.x \
- asn1_PA_PK_AS_REQ_Win2k.x \
- asn1_PA_PK_AS_REP_Win2k.x \
- asn1_KDCDHKeyInfo_Win2k.x \
- asn1_ReplyKeyPack_Win2k.x \
- asn1_PkinitSuppPubInfo.x
-
-gen_files_pkcs12 = \
- asn1_id_pkcs_12.x \
- asn1_id_pkcs_12PbeIds.x \
- asn1_id_pbeWithSHAAnd128BitRC4.x \
- asn1_id_pbeWithSHAAnd40BitRC4.x \
- asn1_id_pbeWithSHAAnd3_KeyTripleDES_CBC.x \
- asn1_id_pbeWithSHAAnd2_KeyTripleDES_CBC.x \
- asn1_id_pbeWithSHAAnd128BitRC2_CBC.x \
- asn1_id_pbewithSHAAnd40BitRC2_CBC.x \
- asn1_id_pkcs12_bagtypes.x \
- asn1_id_pkcs12_keyBag.x \
- asn1_id_pkcs12_pkcs8ShroudedKeyBag.x \
- asn1_id_pkcs12_certBag.x \
- asn1_id_pkcs12_crlBag.x \
- asn1_id_pkcs12_secretBag.x \
- asn1_id_pkcs12_safeContentsBag.x \
- asn1_PKCS12_MacData.x \
- asn1_PKCS12_PFX.x \
- asn1_PKCS12_AuthenticatedSafe.x \
- asn1_PKCS12_CertBag.x \
- asn1_PKCS12_Attribute.x \
- asn1_PKCS12_Attributes.x \
- asn1_PKCS12_SafeBag.x \
- asn1_PKCS12_SafeContents.x \
- asn1_PKCS12_OctetString.x \
- asn1_PKCS12_PBEParams.x
-
-gen_files_pkcs8 = \
- asn1_PKCS8PrivateKeyAlgorithmIdentifier.x \
- asn1_PKCS8PrivateKey.x \
- asn1_PKCS8PrivateKeyInfo.x \
- asn1_PKCS8Attributes.x \
- asn1_PKCS8EncryptedPrivateKeyInfo.x \
- asn1_PKCS8EncryptedData.x
-
-gen_files_pkcs9 = \
- asn1_id_pkcs_9.x \
- asn1_id_pkcs9_contentType.x \
- asn1_id_pkcs9_emailAddress.x \
- asn1_id_pkcs9_messageDigest.x \
- asn1_id_pkcs9_signingTime.x \
- asn1_id_pkcs9_countersignature.x \
- asn1_id_pkcs_9_at_friendlyName.x \
- asn1_id_pkcs_9_at_localKeyId.x \
- asn1_id_pkcs_9_at_certTypes.x \
- asn1_id_pkcs_9_at_certTypes_x509.x \
- asn1_PKCS9_BMPString.x \
- asn1_PKCS9_friendlyName.x
-
-gen_files_test = \
- asn1_TESTAlloc.x \
- asn1_TESTAllocInner.x \
- asn1_TESTCONTAINING.x \
- asn1_TESTCONTAININGENCODEDBY.x \
- asn1_TESTCONTAININGENCODEDBY2.x \
- asn1_TESTChoice1.x \
- asn1_TESTChoice2.x \
- asn1_TESTDer.x \
- asn1_TESTENCODEDBY.x \
- asn1_TESTImplicit.x \
- asn1_TESTImplicit2.x \
- asn1_TESTInteger.x \
- asn1_TESTInteger2.x \
- asn1_TESTInteger3.x \
- asn1_TESTLargeTag.x \
- asn1_TESTSeq.x \
- asn1_TESTUSERCONSTRAINED.x \
- asn1_TESTSeqOf.x \
- asn1_TESTOSSize1.x \
- asn1_TESTSeqSizeOf1.x \
- asn1_TESTSeqSizeOf2.x \
- asn1_TESTSeqSizeOf3.x \
- asn1_TESTSeqSizeOf4.x
-
-gen_files_digest = \
- asn1_DigestError.x \
- asn1_DigestInit.x \
- asn1_DigestInitReply.x \
- asn1_DigestREP.x \
- asn1_DigestREQ.x \
- asn1_DigestRepInner.x \
- asn1_DigestReqInner.x \
- asn1_DigestRequest.x \
- asn1_DigestResponse.x \
- asn1_DigestTypes.x \
- asn1_NTLMInit.x \
- asn1_NTLMInitReply.x \
- asn1_NTLMRequest.x \
- asn1_NTLMResponse.x
-
-gen_files_kx509 = \
- asn1_Kx509Response.x \
- asn1_Kx509Request.x
-
-noinst_PROGRAMS = asn1_compile asn1_print asn1_gen
-
-TESTS = check-der check-gen check-timegm
-check_PROGRAMS = $(TESTS)
-
-asn1_gen_SOURCES = asn1_gen.c
-asn1_print_SOURCES = asn1_print.c
-check_der_SOURCES = check-der.c check-common.c check-common.h
-
-dist_check_gen_SOURCES = check-gen.c check-common.c check-common.h
-nodist_check_gen_SOURCES = $(gen_files_test:.x=.c)
-
-asn1_compile_SOURCES = \
- asn1-common.h \
- asn1_queue.h \
- der.h \
- gen.c \
- gen_copy.c \
- gen_decode.c \
- gen_encode.c \
- gen_free.c \
- gen_glue.c \
- gen_length.c \
- gen_locl.h \
- gen_seq.c \
- hash.c \
- hash.h \
- lex.l \
- lex.h \
- main.c \
- parse.y \
- symbol.c \
- symbol.h
-
-dist_libasn1_la_SOURCES = \
- der-protos.h \
- der_locl.h \
- der.c \
- der.h \
- der_get.c \
- der_put.c \
- der_free.c \
- der_length.c \
- der_copy.c \
- der_cmp.c \
- der_format.c \
- heim_asn1.h \
- extra.c \
- timegm.c
-
-nodist_libasn1_la_SOURCES = $(BUILT_SOURCES)
-
-asn1_compile_LDADD = \
- $(LIB_roken) $(LEXLIB)
-
-check_der_LDADD = \
- libasn1.la \
- $(LIB_roken)
-
-check_gen_LDADD = $(check_der_LDADD)
-asn1_print_LDADD = $(check_der_LDADD)
-asn1_gen_LDADD = $(check_der_LDADD)
-check_timegm_LDADD = $(check_der_LDADD)
-
-CLEANFILES = \
- $(BUILT_SOURCES) \
- $(gen_files_rfc2459) \
- $(gen_files_cms) \
- $(gen_files_k5) \
- $(gen_files_pkinit) \
- $(gen_files_pkcs8) \
- $(gen_files_pkcs9) \
- $(gen_files_pkcs12) \
- $(gen_files_digest) \
- $(gen_files_kx509) \
- $(gen_files_test) $(nodist_check_gen_SOURCES) \
- rfc2459_asn1_files rfc2459_asn1.h \
- cms_asn1_files cms_asn1.h \
- krb5_asn1_files krb5_asn1.h \
- pkinit_asn1_files pkinit_asn1.h \
- pkcs8_asn1_files pkcs8_asn1.h \
- pkcs9_asn1_files pkcs9_asn1.h \
- pkcs12_asn1_files pkcs12_asn1.h \
- digest_asn1_files digest_asn1.h \
- kx509_asn1_files kx509_asn1.h \
- test_asn1_files test_asn1.h
-
-dist_include_HEADERS = der.h heim_asn1.h der-protos.h
-
-nodist_include_HEADERS = asn1_err.h
-nodist_include_HEADERS += krb5_asn1.h
-nodist_include_HEADERS += pkinit_asn1.h
-nodist_include_HEADERS += cms_asn1.h
-nodist_include_HEADERS += rfc2459_asn1.h
-nodist_include_HEADERS += pkcs8_asn1.h
-nodist_include_HEADERS += pkcs9_asn1.h
-nodist_include_HEADERS += pkcs12_asn1.h
-nodist_include_HEADERS += digest_asn1.h
-nodist_include_HEADERS += kx509_asn1.h
-
-$(asn1_compile_OBJECTS): parse.h parse.c $(srcdir)/der-protos.h
-$(libasn1_la_OBJECTS): krb5_asn1.h asn1_err.h $(srcdir)/der-protos.h
-$(check_gen_OBJECTS): test_asn1.h
-$(asn1_print_OBJECTS): krb5_asn1.h
-
-parse.h: parse.c
-
-$(gen_files_k5) krb5_asn1.h: krb5_asn1_files
-$(gen_files_pkinit) pkinit_asn1.h: pkinit_asn1_files
-$(gen_files_pkcs8) pkcs8_asn1.h: pkcs8_asn1_files
-$(gen_files_pkcs9) pkcs9_asn1.h: pkcs9_asn1_files
-$(gen_files_pkcs12) pkcs12_asn1.h: pkcs12_asn1_files
-$(gen_files_digest) digest_asn1.h: digest_asn1_files
-$(gen_files_kx509) kx509_asn1.h: kx509_asn1_files
-$(gen_files_rfc2459) rfc2459_asn1.h: rfc2459_asn1_files
-$(gen_files_cms) cms_asn1.h: cms_asn1_files
-$(gen_files_test) test_asn1.h: test_asn1_files
-
-rfc2459_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/rfc2459.asn1
- ./asn1_compile$(EXEEXT) --preserve-binary=TBSCertificate --preserve-binary=TBSCRLCertList --preserve-binary=Name --sequence=GeneralNames --sequence=Extensions --sequence=CRLDistributionPoints $(srcdir)/rfc2459.asn1 rfc2459_asn1 || (rm -f rfc2459_asn1_files ; exit 1)
-
-cms_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/CMS.asn1
- ./asn1_compile$(EXEEXT) $(srcdir)/CMS.asn1 cms_asn1 || (rm -f cms_asn1_files ; exit 1)
-
-krb5_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/k5.asn1
- ./asn1_compile$(EXEEXT) --encode-rfc1510-bit-string --sequence=KRB5SignedPathPrincipals --sequence=AuthorizationData --sequence=METHOD-DATA --sequence=ETYPE-INFO --sequence=ETYPE-INFO2 $(srcdir)/k5.asn1 krb5_asn1 || (rm -f krb5_asn1_files ; exit 1)
-
-pkinit_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/pkinit.asn1
- ./asn1_compile$(EXEEXT) $(srcdir)/pkinit.asn1 pkinit_asn1 || (rm -f pkinit_asn1_files ; exit 1)
-
-pkcs8_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/pkcs8.asn1
- ./asn1_compile$(EXEEXT) $(srcdir)/pkcs8.asn1 pkcs8_asn1 || (rm -f pkcs8_asn1_files ; exit 1)
-
-pkcs9_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/pkcs9.asn1
- ./asn1_compile$(EXEEXT) $(srcdir)/pkcs9.asn1 pkcs9_asn1 || (rm -f pkcs9_asn1_files ; exit 1)
-
-pkcs12_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/pkcs12.asn1
- ./asn1_compile$(EXEEXT) $(srcdir)/pkcs12.asn1 pkcs12_asn1 || (rm -f pkcs12_asn1_files ; exit 1)
-
-digest_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/digest.asn1
- ./asn1_compile$(EXEEXT) $(srcdir)/digest.asn1 digest_asn1 || (rm -f digest_asn1_files ; exit 1)
-
-kx509_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/kx509.asn1
- ./asn1_compile$(EXEEXT) $(srcdir)/kx509.asn1 kx509_asn1 || (rm -f kx509_asn1_files ; exit 1)
-
-test_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/test.asn1
- ./asn1_compile$(EXEEXT) --sequence=TESTSeqOf $(srcdir)/test.asn1 test_asn1 || (rm -f test_asn1_files ; exit 1)
-
-EXTRA_DIST = \
- asn1_err.et \
- canthandle.asn1 \
- CMS.asn1 \
- digest.asn1 \
- k5.asn1 \
- kx509.asn1 \
- test.asn1 \
- setchgpw2.asn1 \
- pkcs12.asn1 \
- pkcs8.asn1 \
- pkcs9.asn1 \
- pkinit.asn1 \
- rfc2459.asn1 \
- test.gen
-
-$(srcdir)/der-protos.h:
- cd $(srcdir) && perl ../../cf/make-proto.pl -q -P comment -o der-protos.h $(dist_libasn1_la_SOURCES) || rm -f der-protos.h
diff --git a/crypto/heimdal/lib/asn1/Makefile.in b/crypto/heimdal/lib/asn1/Makefile.in
deleted file mode 100644
index 0a3783a..0000000
--- a/crypto/heimdal/lib/asn1/Makefile.in
+++ /dev/null
@@ -1,1801 +0,0 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-# $Id: Makefile.am 22445 2008-01-14 21:23:36Z lha $
-
-# $Id: Makefile.am.common 10998 2002-05-19 18:35:37Z joda $
-
-# $Id: Makefile.am.common 22488 2008-01-21 11:47:22Z lha $
-
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-DIST_COMMON = $(dist_include_HEADERS) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in $(top_srcdir)/Makefile.am.common \
- $(top_srcdir)/cf/Makefile.am.common ChangeLog lex.c parse.c \
- parse.h
-noinst_PROGRAMS = asn1_compile$(EXEEXT) asn1_print$(EXEEXT) \
- asn1_gen$(EXEEXT)
-TESTS = check-der$(EXEEXT) check-gen$(EXEEXT) check-timegm$(EXEEXT)
-check_PROGRAMS = $(am__EXEEXT_1)
-subdir = lib/asn1
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
- $(top_srcdir)/cf/auth-modules.m4 $(top_srcdir)/cf/autobuild.m4 \
- $(top_srcdir)/cf/broken-getaddrinfo.m4 \
- $(top_srcdir)/cf/broken-glob.m4 \
- $(top_srcdir)/cf/broken-realloc.m4 \
- $(top_srcdir)/cf/broken-snprintf.m4 $(top_srcdir)/cf/broken.m4 \
- $(top_srcdir)/cf/broken2.m4 $(top_srcdir)/cf/c-attribute.m4 \
- $(top_srcdir)/cf/capabilities.m4 \
- $(top_srcdir)/cf/check-compile-et.m4 \
- $(top_srcdir)/cf/check-getpwnam_r-posix.m4 \
- $(top_srcdir)/cf/check-man.m4 \
- $(top_srcdir)/cf/check-netinet-ip-and-tcp.m4 \
- $(top_srcdir)/cf/check-type-extra.m4 \
- $(top_srcdir)/cf/check-var.m4 $(top_srcdir)/cf/check-x.m4 \
- $(top_srcdir)/cf/check-xau.m4 $(top_srcdir)/cf/crypto.m4 \
- $(top_srcdir)/cf/db.m4 $(top_srcdir)/cf/destdirs.m4 \
- $(top_srcdir)/cf/dlopen.m4 \
- $(top_srcdir)/cf/find-func-no-libs.m4 \
- $(top_srcdir)/cf/find-func-no-libs2.m4 \
- $(top_srcdir)/cf/find-func.m4 \
- $(top_srcdir)/cf/find-if-not-broken.m4 \
- $(top_srcdir)/cf/framework-security.m4 \
- $(top_srcdir)/cf/have-struct-field.m4 \
- $(top_srcdir)/cf/have-type.m4 $(top_srcdir)/cf/irix.m4 \
- $(top_srcdir)/cf/krb-bigendian.m4 \
- $(top_srcdir)/cf/krb-func-getlogin.m4 \
- $(top_srcdir)/cf/krb-ipv6.m4 $(top_srcdir)/cf/krb-prog-ln-s.m4 \
- $(top_srcdir)/cf/krb-readline.m4 \
- $(top_srcdir)/cf/krb-struct-spwd.m4 \
- $(top_srcdir)/cf/krb-struct-winsize.m4 \
- $(top_srcdir)/cf/largefile.m4 $(top_srcdir)/cf/mips-abi.m4 \
- $(top_srcdir)/cf/misc.m4 $(top_srcdir)/cf/need-proto.m4 \
- $(top_srcdir)/cf/osfc2.m4 $(top_srcdir)/cf/otp.m4 \
- $(top_srcdir)/cf/proto-compat.m4 $(top_srcdir)/cf/pthreads.m4 \
- $(top_srcdir)/cf/resolv.m4 $(top_srcdir)/cf/retsigtype.m4 \
- $(top_srcdir)/cf/roken-frag.m4 \
- $(top_srcdir)/cf/socket-wrapper.m4 $(top_srcdir)/cf/sunos.m4 \
- $(top_srcdir)/cf/telnet.m4 $(top_srcdir)/cf/test-package.m4 \
- $(top_srcdir)/cf/version-script.m4 $(top_srcdir)/cf/wflags.m4 \
- $(top_srcdir)/cf/win32.m4 $(top_srcdir)/cf/with-all.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/include/config.h
-CONFIG_CLEAN_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" \
- "$(DESTDIR)$(includedir)"
-libLTLIBRARIES_INSTALL = $(INSTALL)
-LTLIBRARIES = $(lib_LTLIBRARIES)
-am__DEPENDENCIES_1 =
-libasn1_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
-dist_libasn1_la_OBJECTS = der.lo der_get.lo der_put.lo der_free.lo \
- der_length.lo der_copy.lo der_cmp.lo der_format.lo extra.lo \
- timegm.lo
-am__objects_1 = asn1_Version.lo asn1_id_pkcs_1.lo \
- asn1_id_pkcs1_rsaEncryption.lo \
- asn1_id_pkcs1_md2WithRSAEncryption.lo \
- asn1_id_pkcs1_md5WithRSAEncryption.lo \
- asn1_id_pkcs1_sha1WithRSAEncryption.lo \
- asn1_id_pkcs1_sha256WithRSAEncryption.lo \
- asn1_id_pkcs1_sha384WithRSAEncryption.lo \
- asn1_id_pkcs1_sha512WithRSAEncryption.lo \
- asn1_id_heim_rsa_pkcs1_x509.lo asn1_id_pkcs_2.lo \
- asn1_id_pkcs2_md2.lo asn1_id_pkcs2_md4.lo asn1_id_pkcs2_md5.lo \
- asn1_id_rsa_digestAlgorithm.lo asn1_id_rsa_digest_md2.lo \
- asn1_id_rsa_digest_md4.lo asn1_id_rsa_digest_md5.lo \
- asn1_id_pkcs_3.lo asn1_id_pkcs3_rc2_cbc.lo \
- asn1_id_pkcs3_rc4.lo asn1_id_pkcs3_des_ede3_cbc.lo \
- asn1_id_rsadsi_encalg.lo asn1_id_rsadsi_rc2_cbc.lo \
- asn1_id_rsadsi_des_ede3_cbc.lo asn1_id_secsig_sha_1.lo \
- asn1_id_nistAlgorithm.lo asn1_id_nist_aes_algs.lo \
- asn1_id_aes_128_cbc.lo asn1_id_aes_192_cbc.lo \
- asn1_id_aes_256_cbc.lo asn1_id_nist_sha_algs.lo \
- asn1_id_sha256.lo asn1_id_sha224.lo asn1_id_sha384.lo \
- asn1_id_sha512.lo asn1_id_dhpublicnumber.lo asn1_id_x9_57.lo \
- asn1_id_dsa.lo asn1_id_dsa_with_sha1.lo asn1_id_x520_at.lo \
- asn1_id_at_commonName.lo asn1_id_at_surname.lo \
- asn1_id_at_serialNumber.lo asn1_id_at_countryName.lo \
- asn1_id_at_localityName.lo asn1_id_at_streetAddress.lo \
- asn1_id_at_stateOrProvinceName.lo \
- asn1_id_at_organizationName.lo \
- asn1_id_at_organizationalUnitName.lo asn1_id_at_name.lo \
- asn1_id_at_givenName.lo asn1_id_at_initials.lo \
- asn1_id_at_generationQualifier.lo asn1_id_at_pseudonym.lo \
- asn1_id_Userid.lo asn1_id_domainComponent.lo \
- asn1_id_x509_ce.lo asn1_id_uspkicommon_card_id.lo \
- asn1_id_uspkicommon_piv_interim.lo asn1_id_netscape.lo \
- asn1_id_netscape_cert_comment.lo \
- asn1_id_ms_cert_enroll_domaincontroller.lo \
- asn1_id_ms_client_authentication.lo \
- asn1_AlgorithmIdentifier.lo asn1_AttributeType.lo \
- asn1_AttributeValue.lo asn1_TeletexStringx.lo \
- asn1_DirectoryString.lo asn1_Attribute.lo \
- asn1_AttributeTypeAndValue.lo \
- asn1_AuthorityInfoAccessSyntax.lo asn1_AccessDescription.lo \
- asn1_RelativeDistinguishedName.lo asn1_RDNSequence.lo \
- asn1_Name.lo asn1_CertificateSerialNumber.lo asn1_Time.lo \
- asn1_Validity.lo asn1_UniqueIdentifier.lo \
- asn1_SubjectPublicKeyInfo.lo asn1_Extension.lo \
- asn1_Extensions.lo asn1_TBSCertificate.lo asn1_Certificate.lo \
- asn1_Certificates.lo asn1_ValidationParms.lo \
- asn1_DomainParameters.lo asn1_DHPublicKey.lo asn1_OtherName.lo \
- asn1_GeneralName.lo asn1_GeneralNames.lo \
- asn1_id_x509_ce_keyUsage.lo asn1_KeyUsage.lo \
- asn1_id_x509_ce_authorityKeyIdentifier.lo \
- asn1_KeyIdentifier.lo asn1_AuthorityKeyIdentifier.lo \
- asn1_id_x509_ce_subjectKeyIdentifier.lo \
- asn1_SubjectKeyIdentifier.lo \
- asn1_id_x509_ce_basicConstraints.lo asn1_BasicConstraints.lo \
- asn1_id_x509_ce_nameConstraints.lo asn1_BaseDistance.lo \
- asn1_GeneralSubtree.lo asn1_GeneralSubtrees.lo \
- asn1_NameConstraints.lo \
- asn1_id_x509_ce_privateKeyUsagePeriod.lo \
- asn1_id_x509_ce_certificatePolicies.lo \
- asn1_id_x509_ce_policyMappings.lo \
- asn1_id_x509_ce_subjectAltName.lo \
- asn1_id_x509_ce_issuerAltName.lo \
- asn1_id_x509_ce_subjectDirectoryAttributes.lo \
- asn1_id_x509_ce_policyConstraints.lo \
- asn1_id_x509_ce_extKeyUsage.lo asn1_ExtKeyUsage.lo \
- asn1_id_x509_ce_cRLDistributionPoints.lo \
- asn1_id_x509_ce_deltaCRLIndicator.lo \
- asn1_id_x509_ce_issuingDistributionPoint.lo \
- asn1_id_x509_ce_holdInstructionCode.lo \
- asn1_id_x509_ce_invalidityDate.lo \
- asn1_id_x509_ce_certificateIssuer.lo \
- asn1_id_x509_ce_inhibitAnyPolicy.lo \
- asn1_DistributionPointReasonFlags.lo \
- asn1_DistributionPointName.lo asn1_DistributionPoint.lo \
- asn1_CRLDistributionPoints.lo asn1_DSASigValue.lo \
- asn1_DSAPublicKey.lo asn1_DSAParams.lo asn1_RSAPublicKey.lo \
- asn1_RSAPrivateKey.lo asn1_DigestInfo.lo \
- asn1_TBSCRLCertList.lo asn1_CRLCertificateList.lo \
- asn1_id_x509_ce_cRLNumber.lo asn1_id_x509_ce_freshestCRL.lo \
- asn1_id_x509_ce_cRLReason.lo asn1_CRLReason.lo \
- asn1_PKIXXmppAddr.lo asn1_id_pkix.lo asn1_id_pkix_on.lo \
- asn1_id_pkix_on_dnsSRV.lo asn1_id_pkix_on_xmppAddr.lo \
- asn1_id_pkix_kp.lo asn1_id_pkix_kp_serverAuth.lo \
- asn1_id_pkix_kp_clientAuth.lo \
- asn1_id_pkix_kp_emailProtection.lo \
- asn1_id_pkix_kp_timeStamping.lo asn1_id_pkix_kp_OCSPSigning.lo \
- asn1_id_pkix_pe.lo asn1_id_pkix_pe_authorityInfoAccess.lo \
- asn1_id_pkix_pe_proxyCertInfo.lo asn1_id_pkix_ppl.lo \
- asn1_id_pkix_ppl_anyLanguage.lo asn1_id_pkix_ppl_inheritAll.lo \
- asn1_id_pkix_ppl_independent.lo asn1_ProxyPolicy.lo \
- asn1_ProxyCertInfo.lo
-am__objects_2 = asn1_CMSAttributes.lo asn1_CMSCBCParameter.lo \
- asn1_CMSEncryptedData.lo asn1_CMSIdentifier.lo \
- asn1_CMSRC2CBCParameter.lo asn1_CMSVersion.lo \
- asn1_CertificateList.lo asn1_CertificateRevocationLists.lo \
- asn1_CertificateSet.lo \
- asn1_ContentEncryptionAlgorithmIdentifier.lo \
- asn1_ContentInfo.lo asn1_ContentType.lo \
- asn1_DigestAlgorithmIdentifier.lo \
- asn1_DigestAlgorithmIdentifiers.lo \
- asn1_EncapsulatedContentInfo.lo asn1_EncryptedContent.lo \
- asn1_EncryptedContentInfo.lo asn1_EncryptedKey.lo \
- asn1_EnvelopedData.lo asn1_IssuerAndSerialNumber.lo \
- asn1_KeyEncryptionAlgorithmIdentifier.lo \
- asn1_KeyTransRecipientInfo.lo asn1_MessageDigest.lo \
- asn1_OriginatorInfo.lo asn1_RecipientIdentifier.lo \
- asn1_RecipientInfo.lo asn1_RecipientInfos.lo \
- asn1_SignatureAlgorithmIdentifier.lo asn1_SignatureValue.lo \
- asn1_SignedData.lo asn1_SignerIdentifier.lo asn1_SignerInfo.lo \
- asn1_SignerInfos.lo asn1_id_pkcs7.lo asn1_id_pkcs7_data.lo \
- asn1_id_pkcs7_digestedData.lo asn1_id_pkcs7_encryptedData.lo \
- asn1_id_pkcs7_envelopedData.lo \
- asn1_id_pkcs7_signedAndEnvelopedData.lo \
- asn1_id_pkcs7_signedData.lo asn1_UnprotectedAttributes.lo
-am__objects_3 = asn1_AD_AND_OR.lo asn1_AD_IF_RELEVANT.lo \
- asn1_AD_KDCIssued.lo asn1_AD_MANDATORY_FOR_KDC.lo \
- asn1_AD_LoginAlias.lo asn1_APOptions.lo asn1_AP_REP.lo \
- asn1_AP_REQ.lo asn1_AS_REP.lo asn1_AS_REQ.lo \
- asn1_AUTHDATA_TYPE.lo asn1_Authenticator.lo \
- asn1_AuthorizationData.lo asn1_AuthorizationDataElement.lo \
- asn1_CKSUMTYPE.lo asn1_ChangePasswdDataMS.lo asn1_Checksum.lo \
- asn1_ENCTYPE.lo asn1_ETYPE_INFO.lo asn1_ETYPE_INFO2.lo \
- asn1_ETYPE_INFO2_ENTRY.lo asn1_ETYPE_INFO_ENTRY.lo \
- asn1_EncAPRepPart.lo asn1_EncASRepPart.lo \
- asn1_EncKDCRepPart.lo asn1_EncKrbCredPart.lo \
- asn1_EncKrbPrivPart.lo asn1_EncTGSRepPart.lo \
- asn1_EncTicketPart.lo asn1_EncryptedData.lo \
- asn1_EncryptionKey.lo asn1_EtypeList.lo asn1_HostAddress.lo \
- asn1_HostAddresses.lo asn1_KDCOptions.lo asn1_KDC_REP.lo \
- asn1_KDC_REQ.lo asn1_KDC_REQ_BODY.lo asn1_KRB_CRED.lo \
- asn1_KRB_ERROR.lo asn1_KRB_PRIV.lo asn1_KRB_SAFE.lo \
- asn1_KRB_SAFE_BODY.lo asn1_KerberosString.lo \
- asn1_KerberosTime.lo asn1_KrbCredInfo.lo asn1_LR_TYPE.lo \
- asn1_LastReq.lo asn1_MESSAGE_TYPE.lo asn1_METHOD_DATA.lo \
- asn1_NAME_TYPE.lo asn1_PADATA_TYPE.lo asn1_PA_DATA.lo \
- asn1_PA_ENC_SAM_RESPONSE_ENC.lo asn1_PA_ENC_TS_ENC.lo \
- asn1_PA_PAC_REQUEST.lo asn1_PA_S4U2Self.lo \
- asn1_PA_SAM_CHALLENGE_2.lo asn1_PA_SAM_CHALLENGE_2_BODY.lo \
- asn1_PA_SAM_REDIRECT.lo asn1_PA_SAM_RESPONSE_2.lo \
- asn1_PA_SAM_TYPE.lo asn1_PA_ClientCanonicalized.lo \
- asn1_PA_ClientCanonicalizedNames.lo asn1_PA_SvrReferralData.lo \
- asn1_PROV_SRV_LOCATION.lo asn1_Principal.lo \
- asn1_PrincipalName.lo asn1_Realm.lo asn1_SAMFlags.lo \
- asn1_TGS_REP.lo asn1_TGS_REQ.lo asn1_TYPED_DATA.lo \
- asn1_Ticket.lo asn1_TicketFlags.lo asn1_TransitedEncoding.lo \
- asn1_TypedData.lo asn1_krb5int32.lo asn1_krb5uint32.lo \
- asn1_KRB5SignedPathData.lo asn1_KRB5SignedPathPrincipals.lo \
- asn1_KRB5SignedPath.lo
-am__objects_4 = asn1_id_pkinit.lo asn1_id_pkauthdata.lo \
- asn1_id_pkdhkeydata.lo asn1_id_pkrkeydata.lo \
- asn1_id_pkekuoid.lo asn1_id_pkkdcekuoid.lo \
- asn1_id_pkinit_san.lo asn1_id_pkinit_ms_eku.lo \
- asn1_id_pkinit_ms_san.lo asn1_MS_UPN_SAN.lo asn1_DHNonce.lo \
- asn1_KDFAlgorithmId.lo asn1_TrustedCA.lo \
- asn1_ExternalPrincipalIdentifier.lo \
- asn1_ExternalPrincipalIdentifiers.lo asn1_PA_PK_AS_REQ.lo \
- asn1_PKAuthenticator.lo asn1_AuthPack.lo \
- asn1_TD_TRUSTED_CERTIFIERS.lo asn1_TD_INVALID_CERTIFICATES.lo \
- asn1_KRB5PrincipalName.lo asn1_AD_INITIAL_VERIFIED_CAS.lo \
- asn1_DHRepInfo.lo asn1_PA_PK_AS_REP.lo asn1_KDCDHKeyInfo.lo \
- asn1_ReplyKeyPack.lo asn1_TD_DH_PARAMETERS.lo \
- asn1_PKAuthenticator_Win2k.lo asn1_AuthPack_Win2k.lo \
- asn1_TrustedCA_Win2k.lo asn1_PA_PK_AS_REQ_Win2k.lo \
- asn1_PA_PK_AS_REP_Win2k.lo asn1_KDCDHKeyInfo_Win2k.lo \
- asn1_ReplyKeyPack_Win2k.lo asn1_PkinitSuppPubInfo.lo
-am__objects_5 = asn1_PKCS8PrivateKeyAlgorithmIdentifier.lo \
- asn1_PKCS8PrivateKey.lo asn1_PKCS8PrivateKeyInfo.lo \
- asn1_PKCS8Attributes.lo asn1_PKCS8EncryptedPrivateKeyInfo.lo \
- asn1_PKCS8EncryptedData.lo
-am__objects_6 = asn1_id_pkcs_9.lo asn1_id_pkcs9_contentType.lo \
- asn1_id_pkcs9_emailAddress.lo asn1_id_pkcs9_messageDigest.lo \
- asn1_id_pkcs9_signingTime.lo asn1_id_pkcs9_countersignature.lo \
- asn1_id_pkcs_9_at_friendlyName.lo \
- asn1_id_pkcs_9_at_localKeyId.lo asn1_id_pkcs_9_at_certTypes.lo \
- asn1_id_pkcs_9_at_certTypes_x509.lo asn1_PKCS9_BMPString.lo \
- asn1_PKCS9_friendlyName.lo
-am__objects_7 = asn1_id_pkcs_12.lo asn1_id_pkcs_12PbeIds.lo \
- asn1_id_pbeWithSHAAnd128BitRC4.lo \
- asn1_id_pbeWithSHAAnd40BitRC4.lo \
- asn1_id_pbeWithSHAAnd3_KeyTripleDES_CBC.lo \
- asn1_id_pbeWithSHAAnd2_KeyTripleDES_CBC.lo \
- asn1_id_pbeWithSHAAnd128BitRC2_CBC.lo \
- asn1_id_pbewithSHAAnd40BitRC2_CBC.lo \
- asn1_id_pkcs12_bagtypes.lo asn1_id_pkcs12_keyBag.lo \
- asn1_id_pkcs12_pkcs8ShroudedKeyBag.lo \
- asn1_id_pkcs12_certBag.lo asn1_id_pkcs12_crlBag.lo \
- asn1_id_pkcs12_secretBag.lo asn1_id_pkcs12_safeContentsBag.lo \
- asn1_PKCS12_MacData.lo asn1_PKCS12_PFX.lo \
- asn1_PKCS12_AuthenticatedSafe.lo asn1_PKCS12_CertBag.lo \
- asn1_PKCS12_Attribute.lo asn1_PKCS12_Attributes.lo \
- asn1_PKCS12_SafeBag.lo asn1_PKCS12_SafeContents.lo \
- asn1_PKCS12_OctetString.lo asn1_PKCS12_PBEParams.lo
-am__objects_8 = asn1_DigestError.lo asn1_DigestInit.lo \
- asn1_DigestInitReply.lo asn1_DigestREP.lo asn1_DigestREQ.lo \
- asn1_DigestRepInner.lo asn1_DigestReqInner.lo \
- asn1_DigestRequest.lo asn1_DigestResponse.lo \
- asn1_DigestTypes.lo asn1_NTLMInit.lo asn1_NTLMInitReply.lo \
- asn1_NTLMRequest.lo asn1_NTLMResponse.lo
-am__objects_9 = asn1_Kx509Response.lo asn1_Kx509Request.lo
-am__objects_10 = $(am__objects_1) $(am__objects_2) $(am__objects_3) \
- $(am__objects_4) $(am__objects_5) $(am__objects_6) \
- $(am__objects_7) $(am__objects_8) $(am__objects_9) asn1_err.lo
-nodist_libasn1_la_OBJECTS = $(am__objects_10)
-libasn1_la_OBJECTS = $(dist_libasn1_la_OBJECTS) \
- $(nodist_libasn1_la_OBJECTS)
-libasn1_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(libasn1_la_LDFLAGS) $(LDFLAGS) -o $@
-am__EXEEXT_1 = check-der$(EXEEXT) check-gen$(EXEEXT) \
- check-timegm$(EXEEXT)
-PROGRAMS = $(noinst_PROGRAMS)
-am_asn1_compile_OBJECTS = gen.$(OBJEXT) gen_copy.$(OBJEXT) \
- gen_decode.$(OBJEXT) gen_encode.$(OBJEXT) gen_free.$(OBJEXT) \
- gen_glue.$(OBJEXT) gen_length.$(OBJEXT) gen_seq.$(OBJEXT) \
- hash.$(OBJEXT) lex.$(OBJEXT) main.$(OBJEXT) parse.$(OBJEXT) \
- symbol.$(OBJEXT)
-asn1_compile_OBJECTS = $(am_asn1_compile_OBJECTS)
-asn1_compile_DEPENDENCIES = $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1)
-am_asn1_gen_OBJECTS = asn1_gen.$(OBJEXT)
-asn1_gen_OBJECTS = $(am_asn1_gen_OBJECTS)
-am__DEPENDENCIES_2 = libasn1.la $(am__DEPENDENCIES_1)
-asn1_gen_DEPENDENCIES = $(am__DEPENDENCIES_2)
-am_asn1_print_OBJECTS = asn1_print.$(OBJEXT)
-asn1_print_OBJECTS = $(am_asn1_print_OBJECTS)
-asn1_print_DEPENDENCIES = $(am__DEPENDENCIES_2)
-am_check_der_OBJECTS = check-der.$(OBJEXT) check-common.$(OBJEXT)
-check_der_OBJECTS = $(am_check_der_OBJECTS)
-check_der_DEPENDENCIES = libasn1.la $(am__DEPENDENCIES_1)
-dist_check_gen_OBJECTS = check-gen.$(OBJEXT) check-common.$(OBJEXT)
-am__objects_11 = asn1_TESTAlloc.$(OBJEXT) \
- asn1_TESTAllocInner.$(OBJEXT) asn1_TESTCONTAINING.$(OBJEXT) \
- asn1_TESTCONTAININGENCODEDBY.$(OBJEXT) \
- asn1_TESTCONTAININGENCODEDBY2.$(OBJEXT) \
- asn1_TESTChoice1.$(OBJEXT) asn1_TESTChoice2.$(OBJEXT) \
- asn1_TESTDer.$(OBJEXT) asn1_TESTENCODEDBY.$(OBJEXT) \
- asn1_TESTImplicit.$(OBJEXT) asn1_TESTImplicit2.$(OBJEXT) \
- asn1_TESTInteger.$(OBJEXT) asn1_TESTInteger2.$(OBJEXT) \
- asn1_TESTInteger3.$(OBJEXT) asn1_TESTLargeTag.$(OBJEXT) \
- asn1_TESTSeq.$(OBJEXT) asn1_TESTUSERCONSTRAINED.$(OBJEXT) \
- asn1_TESTSeqOf.$(OBJEXT) asn1_TESTOSSize1.$(OBJEXT) \
- asn1_TESTSeqSizeOf1.$(OBJEXT) asn1_TESTSeqSizeOf2.$(OBJEXT) \
- asn1_TESTSeqSizeOf3.$(OBJEXT) asn1_TESTSeqSizeOf4.$(OBJEXT)
-nodist_check_gen_OBJECTS = $(am__objects_11)
-check_gen_OBJECTS = $(dist_check_gen_OBJECTS) \
- $(nodist_check_gen_OBJECTS)
-check_gen_DEPENDENCIES = $(am__DEPENDENCIES_2)
-check_timegm_SOURCES = check-timegm.c
-check_timegm_OBJECTS = check-timegm.$(OBJEXT)
-check_timegm_DEPENDENCIES = $(am__DEPENDENCIES_2)
-DEFAULT_INCLUDES = -I. -I$(top_builddir)/include@am__isrc@
-depcomp =
-am__depfiles_maybe =
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-@MAINTAINER_MODE_FALSE@am__skiplex = test -f $@ ||
-LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS)
-LTLEXCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(LEX) $(LFLAGS) $(AM_LFLAGS)
-YLWRAP = $(top_srcdir)/ylwrap
-@MAINTAINER_MODE_FALSE@am__skipyacc = test -f $@ ||
-YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
-LTYACCCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(YACC) $(YFLAGS) $(AM_YFLAGS)
-SOURCES = $(dist_libasn1_la_SOURCES) $(nodist_libasn1_la_SOURCES) \
- $(asn1_compile_SOURCES) $(asn1_gen_SOURCES) \
- $(asn1_print_SOURCES) $(check_der_SOURCES) \
- $(dist_check_gen_SOURCES) $(nodist_check_gen_SOURCES) \
- check-timegm.c
-DIST_SOURCES = $(dist_libasn1_la_SOURCES) $(asn1_compile_SOURCES) \
- $(asn1_gen_SOURCES) $(asn1_print_SOURCES) $(check_der_SOURCES) \
- $(dist_check_gen_SOURCES) check-timegm.c
-dist_includeHEADERS_INSTALL = $(INSTALL_HEADER)
-nodist_includeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(dist_include_HEADERS) $(nodist_include_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AIX_EXTRA_KAFS = @AIX_EXTRA_KAFS@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CANONICAL_HOST = @CANONICAL_HOST@
-CATMAN = @CATMAN@
-CATMANEXT = @CATMANEXT@
-CC = @CC@
-CFLAGS = @CFLAGS@
-COMPILE_ET = @COMPILE_ET@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DBLIB = @DBLIB@
-DEFS = @DEFS@
-DIR_com_err = @DIR_com_err@
-DIR_hcrypto = @DIR_hcrypto@
-DIR_hdbdir = @DIR_hdbdir@
-DIR_roken = @DIR_roken@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GREP = @GREP@
-GROFF = @GROFF@
-INCLUDES_roken = @INCLUDES_roken@
-INCLUDE_hcrypto = @INCLUDE_hcrypto@
-INCLUDE_hesiod = @INCLUDE_hesiod@
-INCLUDE_krb4 = @INCLUDE_krb4@
-INCLUDE_openldap = @INCLUDE_openldap@
-INCLUDE_readline = @INCLUDE_readline@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LDFLAGS_VERSION_SCRIPT = @LDFLAGS_VERSION_SCRIPT@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBADD_roken = @LIBADD_roken@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIB_AUTH_SUBDIRS = @LIB_AUTH_SUBDIRS@
-LIB_NDBM = @LIB_NDBM@
-LIB_XauFileName = @LIB_XauFileName@
-LIB_XauReadAuth = @LIB_XauReadAuth@
-LIB_XauWriteAuth = @LIB_XauWriteAuth@
-LIB_bswap16 = @LIB_bswap16@
-LIB_bswap32 = @LIB_bswap32@
-LIB_com_err = @LIB_com_err@
-LIB_com_err_a = @LIB_com_err_a@
-LIB_com_err_so = @LIB_com_err_so@
-LIB_crypt = @LIB_crypt@
-LIB_db_create = @LIB_db_create@
-LIB_dbm_firstkey = @LIB_dbm_firstkey@
-LIB_dbopen = @LIB_dbopen@
-LIB_dlopen = @LIB_dlopen@
-LIB_dn_expand = @LIB_dn_expand@
-LIB_door_create = @LIB_door_create@
-LIB_el_init = @LIB_el_init@
-LIB_freeaddrinfo = @LIB_freeaddrinfo@
-LIB_gai_strerror = @LIB_gai_strerror@
-LIB_getaddrinfo = @LIB_getaddrinfo@
-LIB_gethostbyname = @LIB_gethostbyname@
-LIB_gethostbyname2 = @LIB_gethostbyname2@
-LIB_getnameinfo = @LIB_getnameinfo@
-LIB_getpwnam_r = @LIB_getpwnam_r@
-LIB_getsockopt = @LIB_getsockopt@
-LIB_hcrypto = @LIB_hcrypto@
-LIB_hcrypto_a = @LIB_hcrypto_a@
-LIB_hcrypto_appl = @LIB_hcrypto_appl@
-LIB_hcrypto_so = @LIB_hcrypto_so@
-LIB_hesiod = @LIB_hesiod@
-LIB_hstrerror = @LIB_hstrerror@
-LIB_kdb = @LIB_kdb@
-LIB_krb4 = @LIB_krb4@
-LIB_loadquery = @LIB_loadquery@
-LIB_logout = @LIB_logout@
-LIB_logwtmp = @LIB_logwtmp@
-LIB_openldap = @LIB_openldap@
-LIB_openpty = @LIB_openpty@
-LIB_otp = @LIB_otp@
-LIB_pidfile = @LIB_pidfile@
-LIB_readline = @LIB_readline@
-LIB_res_ndestroy = @LIB_res_ndestroy@
-LIB_res_nsearch = @LIB_res_nsearch@
-LIB_res_search = @LIB_res_search@
-LIB_roken = @LIB_roken@
-LIB_security = @LIB_security@
-LIB_setsockopt = @LIB_setsockopt@
-LIB_socket = @LIB_socket@
-LIB_syslog = @LIB_syslog@
-LIB_tgetent = @LIB_tgetent@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NROFF = @NROFF@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PTHREADS_CFLAGS = @PTHREADS_CFLAGS@
-PTHREADS_LIBS = @PTHREADS_LIBS@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-VERSIONING = @VERSIONING@
-VOID_RETSIGTYPE = @VOID_RETSIGTYPE@
-WFLAGS = @WFLAGS@
-WFLAGS_NOIMPLICITINT = @WFLAGS_NOIMPLICITINT@
-WFLAGS_NOUNUSED = @WFLAGS_NOUNUSED@
-XMKMF = @XMKMF@
-X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
-X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
-YACC = @YACC@
-YFLAGS = -d -t
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-am__leading_dot = @am__leading_dot@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dpagaix_cflags = @dpagaix_cflags@
-dpagaix_ldadd = @dpagaix_ldadd@
-dpagaix_ldflags = @dpagaix_ldflags@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-SUFFIXES = .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8
-AM_CPPFLAGS = -I$(top_builddir)/include $(INCLUDES_roken)
-@do_roken_rename_TRUE@ROKEN_RENAME = -DROKEN_RENAME
-AM_CFLAGS = $(WFLAGS)
-CP = cp
-buildinclude = $(top_builddir)/include
-LIB_getattr = @LIB_getattr@
-LIB_getpwent_r = @LIB_getpwent_r@
-LIB_odm_initialize = @LIB_odm_initialize@
-LIB_setpcred = @LIB_setpcred@
-HESIODLIB = @HESIODLIB@
-HESIODINCLUDE = @HESIODINCLUDE@
-NROFF_MAN = groff -mandoc -Tascii
-LIB_kafs = $(top_builddir)/lib/kafs/libkafs.la $(AIX_EXTRA_KAFS)
-@KRB5_TRUE@LIB_krb5 = $(top_builddir)/lib/krb5/libkrb5.la \
-@KRB5_TRUE@ $(top_builddir)/lib/asn1/libasn1.la
-
-@KRB5_TRUE@LIB_gssapi = $(top_builddir)/lib/gssapi/libgssapi.la
-@KRB5_TRUE@LIB_tsasl = $(top_builddir)/lib/tsasl/libtsasl.la
-@DCE_TRUE@LIB_kdfs = $(top_builddir)/lib/kdfs/libkdfs.la
-lib_LTLIBRARIES = libasn1.la
-libasn1_la_LDFLAGS = -version-info 8:0:0
-libasn1_la_LIBADD = \
- @LIB_com_err@ \
- $(LIBADD_roken)
-
-BUILT_SOURCES = \
- $(gen_files_rfc2459:.x=.c) \
- $(gen_files_cms:.x=.c) \
- $(gen_files_k5:.x=.c) \
- $(gen_files_pkinit:.x=.c) \
- $(gen_files_pkcs8:.x=.c) \
- $(gen_files_pkcs9:.x=.c) \
- $(gen_files_pkcs12:.x=.c) \
- $(gen_files_digest:.x=.c) \
- $(gen_files_kx509:.x=.c) \
- asn1_err.h \
- asn1_err.c
-
-gen_files_k5 = \
- asn1_AD_AND_OR.x \
- asn1_AD_IF_RELEVANT.x \
- asn1_AD_KDCIssued.x \
- asn1_AD_MANDATORY_FOR_KDC.x \
- asn1_AD_LoginAlias.x \
- asn1_APOptions.x \
- asn1_AP_REP.x \
- asn1_AP_REQ.x \
- asn1_AS_REP.x \
- asn1_AS_REQ.x \
- asn1_AUTHDATA_TYPE.x \
- asn1_Authenticator.x \
- asn1_AuthorizationData.x \
- asn1_AuthorizationDataElement.x \
- asn1_CKSUMTYPE.x \
- asn1_ChangePasswdDataMS.x \
- asn1_Checksum.x \
- asn1_ENCTYPE.x \
- asn1_ETYPE_INFO.x \
- asn1_ETYPE_INFO2.x \
- asn1_ETYPE_INFO2_ENTRY.x \
- asn1_ETYPE_INFO_ENTRY.x \
- asn1_EncAPRepPart.x \
- asn1_EncASRepPart.x \
- asn1_EncKDCRepPart.x \
- asn1_EncKrbCredPart.x \
- asn1_EncKrbPrivPart.x \
- asn1_EncTGSRepPart.x \
- asn1_EncTicketPart.x \
- asn1_EncryptedData.x \
- asn1_EncryptionKey.x \
- asn1_EtypeList.x \
- asn1_HostAddress.x \
- asn1_HostAddresses.x \
- asn1_KDCOptions.x \
- asn1_KDC_REP.x \
- asn1_KDC_REQ.x \
- asn1_KDC_REQ_BODY.x \
- asn1_KRB_CRED.x \
- asn1_KRB_ERROR.x \
- asn1_KRB_PRIV.x \
- asn1_KRB_SAFE.x \
- asn1_KRB_SAFE_BODY.x \
- asn1_KerberosString.x \
- asn1_KerberosTime.x \
- asn1_KrbCredInfo.x \
- asn1_LR_TYPE.x \
- asn1_LastReq.x \
- asn1_MESSAGE_TYPE.x \
- asn1_METHOD_DATA.x \
- asn1_NAME_TYPE.x \
- asn1_PADATA_TYPE.x \
- asn1_PA_DATA.x \
- asn1_PA_ENC_SAM_RESPONSE_ENC.x \
- asn1_PA_ENC_TS_ENC.x \
- asn1_PA_PAC_REQUEST.x \
- asn1_PA_S4U2Self.x \
- asn1_PA_SAM_CHALLENGE_2.x \
- asn1_PA_SAM_CHALLENGE_2_BODY.x \
- asn1_PA_SAM_REDIRECT.x \
- asn1_PA_SAM_RESPONSE_2.x \
- asn1_PA_SAM_TYPE.x \
- asn1_PA_ClientCanonicalized.x \
- asn1_PA_ClientCanonicalizedNames.x \
- asn1_PA_SvrReferralData.x \
- asn1_PROV_SRV_LOCATION.x \
- asn1_Principal.x \
- asn1_PrincipalName.x \
- asn1_Realm.x \
- asn1_SAMFlags.x \
- asn1_TGS_REP.x \
- asn1_TGS_REQ.x \
- asn1_TYPED_DATA.x \
- asn1_Ticket.x \
- asn1_TicketFlags.x \
- asn1_TransitedEncoding.x \
- asn1_TypedData.x \
- asn1_krb5int32.x \
- asn1_krb5uint32.x \
- asn1_KRB5SignedPathData.x \
- asn1_KRB5SignedPathPrincipals.x \
- asn1_KRB5SignedPath.x
-
-gen_files_cms = \
- asn1_CMSAttributes.x \
- asn1_CMSCBCParameter.x \
- asn1_CMSEncryptedData.x \
- asn1_CMSIdentifier.x \
- asn1_CMSRC2CBCParameter.x \
- asn1_CMSVersion.x \
- asn1_CertificateList.x \
- asn1_CertificateRevocationLists.x \
- asn1_CertificateSet.x \
- asn1_ContentEncryptionAlgorithmIdentifier.x \
- asn1_ContentInfo.x \
- asn1_ContentType.x \
- asn1_DigestAlgorithmIdentifier.x \
- asn1_DigestAlgorithmIdentifiers.x \
- asn1_EncapsulatedContentInfo.x \
- asn1_EncryptedContent.x \
- asn1_EncryptedContentInfo.x \
- asn1_EncryptedKey.x \
- asn1_EnvelopedData.x \
- asn1_IssuerAndSerialNumber.x \
- asn1_KeyEncryptionAlgorithmIdentifier.x \
- asn1_KeyTransRecipientInfo.x \
- asn1_MessageDigest.x \
- asn1_OriginatorInfo.x \
- asn1_RecipientIdentifier.x \
- asn1_RecipientInfo.x \
- asn1_RecipientInfos.x \
- asn1_SignatureAlgorithmIdentifier.x \
- asn1_SignatureValue.x \
- asn1_SignedData.x \
- asn1_SignerIdentifier.x \
- asn1_SignerInfo.x \
- asn1_SignerInfos.x \
- asn1_id_pkcs7.x \
- asn1_id_pkcs7_data.x \
- asn1_id_pkcs7_digestedData.x \
- asn1_id_pkcs7_encryptedData.x \
- asn1_id_pkcs7_envelopedData.x \
- asn1_id_pkcs7_signedAndEnvelopedData.x \
- asn1_id_pkcs7_signedData.x \
- asn1_UnprotectedAttributes.x
-
-gen_files_rfc2459 = \
- asn1_Version.x \
- asn1_id_pkcs_1.x \
- asn1_id_pkcs1_rsaEncryption.x \
- asn1_id_pkcs1_md2WithRSAEncryption.x \
- asn1_id_pkcs1_md5WithRSAEncryption.x \
- asn1_id_pkcs1_sha1WithRSAEncryption.x \
- asn1_id_pkcs1_sha256WithRSAEncryption.x \
- asn1_id_pkcs1_sha384WithRSAEncryption.x \
- asn1_id_pkcs1_sha512WithRSAEncryption.x \
- asn1_id_heim_rsa_pkcs1_x509.x \
- asn1_id_pkcs_2.x \
- asn1_id_pkcs2_md2.x \
- asn1_id_pkcs2_md4.x \
- asn1_id_pkcs2_md5.x \
- asn1_id_rsa_digestAlgorithm.x \
- asn1_id_rsa_digest_md2.x \
- asn1_id_rsa_digest_md4.x \
- asn1_id_rsa_digest_md5.x \
- asn1_id_pkcs_3.x \
- asn1_id_pkcs3_rc2_cbc.x \
- asn1_id_pkcs3_rc4.x \
- asn1_id_pkcs3_des_ede3_cbc.x \
- asn1_id_rsadsi_encalg.x \
- asn1_id_rsadsi_rc2_cbc.x \
- asn1_id_rsadsi_des_ede3_cbc.x \
- asn1_id_secsig_sha_1.x \
- asn1_id_nistAlgorithm.x \
- asn1_id_nist_aes_algs.x \
- asn1_id_aes_128_cbc.x \
- asn1_id_aes_192_cbc.x \
- asn1_id_aes_256_cbc.x \
- asn1_id_nist_sha_algs.x \
- asn1_id_sha256.x \
- asn1_id_sha224.x \
- asn1_id_sha384.x \
- asn1_id_sha512.x \
- asn1_id_dhpublicnumber.x \
- asn1_id_x9_57.x \
- asn1_id_dsa.x \
- asn1_id_dsa_with_sha1.x \
- asn1_id_x520_at.x \
- asn1_id_at_commonName.x \
- asn1_id_at_surname.x \
- asn1_id_at_serialNumber.x \
- asn1_id_at_countryName.x \
- asn1_id_at_localityName.x \
- asn1_id_at_streetAddress.x \
- asn1_id_at_stateOrProvinceName.x \
- asn1_id_at_organizationName.x \
- asn1_id_at_organizationalUnitName.x \
- asn1_id_at_name.x \
- asn1_id_at_givenName.x \
- asn1_id_at_initials.x \
- asn1_id_at_generationQualifier.x \
- asn1_id_at_pseudonym.x \
- asn1_id_Userid.x \
- asn1_id_domainComponent.x \
- asn1_id_x509_ce.x \
- asn1_id_uspkicommon_card_id.x \
- asn1_id_uspkicommon_piv_interim.x \
- asn1_id_netscape.x \
- asn1_id_netscape_cert_comment.x \
- asn1_id_ms_cert_enroll_domaincontroller.x \
- asn1_id_ms_client_authentication.x \
- asn1_AlgorithmIdentifier.x \
- asn1_AttributeType.x \
- asn1_AttributeValue.x \
- asn1_TeletexStringx.x \
- asn1_DirectoryString.x \
- asn1_Attribute.x \
- asn1_AttributeTypeAndValue.x \
- asn1_AuthorityInfoAccessSyntax.x \
- asn1_AccessDescription.x \
- asn1_RelativeDistinguishedName.x \
- asn1_RDNSequence.x \
- asn1_Name.x \
- asn1_CertificateSerialNumber.x \
- asn1_Time.x \
- asn1_Validity.x \
- asn1_UniqueIdentifier.x \
- asn1_SubjectPublicKeyInfo.x \
- asn1_Extension.x \
- asn1_Extensions.x \
- asn1_TBSCertificate.x \
- asn1_Certificate.x \
- asn1_Certificates.x \
- asn1_ValidationParms.x \
- asn1_DomainParameters.x \
- asn1_DHPublicKey.x \
- asn1_OtherName.x \
- asn1_GeneralName.x \
- asn1_GeneralNames.x \
- asn1_id_x509_ce_keyUsage.x \
- asn1_KeyUsage.x \
- asn1_id_x509_ce_authorityKeyIdentifier.x \
- asn1_KeyIdentifier.x \
- asn1_AuthorityKeyIdentifier.x \
- asn1_id_x509_ce_subjectKeyIdentifier.x \
- asn1_SubjectKeyIdentifier.x \
- asn1_id_x509_ce_basicConstraints.x \
- asn1_BasicConstraints.x \
- asn1_id_x509_ce_nameConstraints.x \
- asn1_BaseDistance.x \
- asn1_GeneralSubtree.x \
- asn1_GeneralSubtrees.x \
- asn1_NameConstraints.x \
- asn1_id_x509_ce_privateKeyUsagePeriod.x \
- asn1_id_x509_ce_certificatePolicies.x \
- asn1_id_x509_ce_policyMappings.x \
- asn1_id_x509_ce_subjectAltName.x \
- asn1_id_x509_ce_issuerAltName.x \
- asn1_id_x509_ce_subjectDirectoryAttributes.x \
- asn1_id_x509_ce_policyConstraints.x \
- asn1_id_x509_ce_extKeyUsage.x \
- asn1_ExtKeyUsage.x \
- asn1_id_x509_ce_cRLDistributionPoints.x \
- asn1_id_x509_ce_deltaCRLIndicator.x \
- asn1_id_x509_ce_issuingDistributionPoint.x \
- asn1_id_x509_ce_holdInstructionCode.x \
- asn1_id_x509_ce_invalidityDate.x \
- asn1_id_x509_ce_certificateIssuer.x \
- asn1_id_x509_ce_inhibitAnyPolicy.x \
- asn1_DistributionPointReasonFlags.x \
- asn1_DistributionPointName.x \
- asn1_DistributionPoint.x \
- asn1_CRLDistributionPoints.x \
- asn1_DSASigValue.x \
- asn1_DSAPublicKey.x \
- asn1_DSAParams.x \
- asn1_RSAPublicKey.x \
- asn1_RSAPrivateKey.x \
- asn1_DigestInfo.x \
- asn1_TBSCRLCertList.x \
- asn1_CRLCertificateList.x \
- asn1_id_x509_ce_cRLNumber.x \
- asn1_id_x509_ce_freshestCRL.x \
- asn1_id_x509_ce_cRLReason.x \
- asn1_CRLReason.x \
- asn1_PKIXXmppAddr.x \
- asn1_id_pkix.x \
- asn1_id_pkix_on.x \
- asn1_id_pkix_on_dnsSRV.x \
- asn1_id_pkix_on_xmppAddr.x \
- asn1_id_pkix_kp.x \
- asn1_id_pkix_kp_serverAuth.x \
- asn1_id_pkix_kp_clientAuth.x \
- asn1_id_pkix_kp_emailProtection.x \
- asn1_id_pkix_kp_timeStamping.x \
- asn1_id_pkix_kp_OCSPSigning.x \
- asn1_id_pkix_pe.x \
- asn1_id_pkix_pe_authorityInfoAccess.x \
- asn1_id_pkix_pe_proxyCertInfo.x \
- asn1_id_pkix_ppl.x \
- asn1_id_pkix_ppl_anyLanguage.x \
- asn1_id_pkix_ppl_inheritAll.x \
- asn1_id_pkix_ppl_independent.x \
- asn1_ProxyPolicy.x \
- asn1_ProxyCertInfo.x
-
-gen_files_pkinit = \
- asn1_id_pkinit.x \
- asn1_id_pkauthdata.x \
- asn1_id_pkdhkeydata.x \
- asn1_id_pkrkeydata.x \
- asn1_id_pkekuoid.x \
- asn1_id_pkkdcekuoid.x \
- asn1_id_pkinit_san.x \
- asn1_id_pkinit_ms_eku.x \
- asn1_id_pkinit_ms_san.x \
- asn1_MS_UPN_SAN.x \
- asn1_DHNonce.x \
- asn1_KDFAlgorithmId.x \
- asn1_TrustedCA.x \
- asn1_ExternalPrincipalIdentifier.x \
- asn1_ExternalPrincipalIdentifiers.x \
- asn1_PA_PK_AS_REQ.x \
- asn1_PKAuthenticator.x \
- asn1_AuthPack.x \
- asn1_TD_TRUSTED_CERTIFIERS.x \
- asn1_TD_INVALID_CERTIFICATES.x \
- asn1_KRB5PrincipalName.x \
- asn1_AD_INITIAL_VERIFIED_CAS.x \
- asn1_DHRepInfo.x \
- asn1_PA_PK_AS_REP.x \
- asn1_KDCDHKeyInfo.x \
- asn1_ReplyKeyPack.x \
- asn1_TD_DH_PARAMETERS.x \
- asn1_PKAuthenticator_Win2k.x \
- asn1_AuthPack_Win2k.x \
- asn1_TrustedCA_Win2k.x \
- asn1_PA_PK_AS_REQ_Win2k.x \
- asn1_PA_PK_AS_REP_Win2k.x \
- asn1_KDCDHKeyInfo_Win2k.x \
- asn1_ReplyKeyPack_Win2k.x \
- asn1_PkinitSuppPubInfo.x
-
-gen_files_pkcs12 = \
- asn1_id_pkcs_12.x \
- asn1_id_pkcs_12PbeIds.x \
- asn1_id_pbeWithSHAAnd128BitRC4.x \
- asn1_id_pbeWithSHAAnd40BitRC4.x \
- asn1_id_pbeWithSHAAnd3_KeyTripleDES_CBC.x \
- asn1_id_pbeWithSHAAnd2_KeyTripleDES_CBC.x \
- asn1_id_pbeWithSHAAnd128BitRC2_CBC.x \
- asn1_id_pbewithSHAAnd40BitRC2_CBC.x \
- asn1_id_pkcs12_bagtypes.x \
- asn1_id_pkcs12_keyBag.x \
- asn1_id_pkcs12_pkcs8ShroudedKeyBag.x \
- asn1_id_pkcs12_certBag.x \
- asn1_id_pkcs12_crlBag.x \
- asn1_id_pkcs12_secretBag.x \
- asn1_id_pkcs12_safeContentsBag.x \
- asn1_PKCS12_MacData.x \
- asn1_PKCS12_PFX.x \
- asn1_PKCS12_AuthenticatedSafe.x \
- asn1_PKCS12_CertBag.x \
- asn1_PKCS12_Attribute.x \
- asn1_PKCS12_Attributes.x \
- asn1_PKCS12_SafeBag.x \
- asn1_PKCS12_SafeContents.x \
- asn1_PKCS12_OctetString.x \
- asn1_PKCS12_PBEParams.x
-
-gen_files_pkcs8 = \
- asn1_PKCS8PrivateKeyAlgorithmIdentifier.x \
- asn1_PKCS8PrivateKey.x \
- asn1_PKCS8PrivateKeyInfo.x \
- asn1_PKCS8Attributes.x \
- asn1_PKCS8EncryptedPrivateKeyInfo.x \
- asn1_PKCS8EncryptedData.x
-
-gen_files_pkcs9 = \
- asn1_id_pkcs_9.x \
- asn1_id_pkcs9_contentType.x \
- asn1_id_pkcs9_emailAddress.x \
- asn1_id_pkcs9_messageDigest.x \
- asn1_id_pkcs9_signingTime.x \
- asn1_id_pkcs9_countersignature.x \
- asn1_id_pkcs_9_at_friendlyName.x \
- asn1_id_pkcs_9_at_localKeyId.x \
- asn1_id_pkcs_9_at_certTypes.x \
- asn1_id_pkcs_9_at_certTypes_x509.x \
- asn1_PKCS9_BMPString.x \
- asn1_PKCS9_friendlyName.x
-
-gen_files_test = \
- asn1_TESTAlloc.x \
- asn1_TESTAllocInner.x \
- asn1_TESTCONTAINING.x \
- asn1_TESTCONTAININGENCODEDBY.x \
- asn1_TESTCONTAININGENCODEDBY2.x \
- asn1_TESTChoice1.x \
- asn1_TESTChoice2.x \
- asn1_TESTDer.x \
- asn1_TESTENCODEDBY.x \
- asn1_TESTImplicit.x \
- asn1_TESTImplicit2.x \
- asn1_TESTInteger.x \
- asn1_TESTInteger2.x \
- asn1_TESTInteger3.x \
- asn1_TESTLargeTag.x \
- asn1_TESTSeq.x \
- asn1_TESTUSERCONSTRAINED.x \
- asn1_TESTSeqOf.x \
- asn1_TESTOSSize1.x \
- asn1_TESTSeqSizeOf1.x \
- asn1_TESTSeqSizeOf2.x \
- asn1_TESTSeqSizeOf3.x \
- asn1_TESTSeqSizeOf4.x
-
-gen_files_digest = \
- asn1_DigestError.x \
- asn1_DigestInit.x \
- asn1_DigestInitReply.x \
- asn1_DigestREP.x \
- asn1_DigestREQ.x \
- asn1_DigestRepInner.x \
- asn1_DigestReqInner.x \
- asn1_DigestRequest.x \
- asn1_DigestResponse.x \
- asn1_DigestTypes.x \
- asn1_NTLMInit.x \
- asn1_NTLMInitReply.x \
- asn1_NTLMRequest.x \
- asn1_NTLMResponse.x
-
-gen_files_kx509 = \
- asn1_Kx509Response.x \
- asn1_Kx509Request.x
-
-asn1_gen_SOURCES = asn1_gen.c
-asn1_print_SOURCES = asn1_print.c
-check_der_SOURCES = check-der.c check-common.c check-common.h
-dist_check_gen_SOURCES = check-gen.c check-common.c check-common.h
-nodist_check_gen_SOURCES = $(gen_files_test:.x=.c)
-asn1_compile_SOURCES = \
- asn1-common.h \
- asn1_queue.h \
- der.h \
- gen.c \
- gen_copy.c \
- gen_decode.c \
- gen_encode.c \
- gen_free.c \
- gen_glue.c \
- gen_length.c \
- gen_locl.h \
- gen_seq.c \
- hash.c \
- hash.h \
- lex.l \
- lex.h \
- main.c \
- parse.y \
- symbol.c \
- symbol.h
-
-dist_libasn1_la_SOURCES = \
- der-protos.h \
- der_locl.h \
- der.c \
- der.h \
- der_get.c \
- der_put.c \
- der_free.c \
- der_length.c \
- der_copy.c \
- der_cmp.c \
- der_format.c \
- heim_asn1.h \
- extra.c \
- timegm.c
-
-nodist_libasn1_la_SOURCES = $(BUILT_SOURCES)
-asn1_compile_LDADD = \
- $(LIB_roken) $(LEXLIB)
-
-check_der_LDADD = \
- libasn1.la \
- $(LIB_roken)
-
-check_gen_LDADD = $(check_der_LDADD)
-asn1_print_LDADD = $(check_der_LDADD)
-asn1_gen_LDADD = $(check_der_LDADD)
-check_timegm_LDADD = $(check_der_LDADD)
-CLEANFILES = \
- $(BUILT_SOURCES) \
- $(gen_files_rfc2459) \
- $(gen_files_cms) \
- $(gen_files_k5) \
- $(gen_files_pkinit) \
- $(gen_files_pkcs8) \
- $(gen_files_pkcs9) \
- $(gen_files_pkcs12) \
- $(gen_files_digest) \
- $(gen_files_kx509) \
- $(gen_files_test) $(nodist_check_gen_SOURCES) \
- rfc2459_asn1_files rfc2459_asn1.h \
- cms_asn1_files cms_asn1.h \
- krb5_asn1_files krb5_asn1.h \
- pkinit_asn1_files pkinit_asn1.h \
- pkcs8_asn1_files pkcs8_asn1.h \
- pkcs9_asn1_files pkcs9_asn1.h \
- pkcs12_asn1_files pkcs12_asn1.h \
- digest_asn1_files digest_asn1.h \
- kx509_asn1_files kx509_asn1.h \
- test_asn1_files test_asn1.h
-
-dist_include_HEADERS = der.h heim_asn1.h der-protos.h
-nodist_include_HEADERS = asn1_err.h krb5_asn1.h pkinit_asn1.h \
- cms_asn1.h rfc2459_asn1.h pkcs8_asn1.h pkcs9_asn1.h \
- pkcs12_asn1.h digest_asn1.h kx509_asn1.h
-EXTRA_DIST = \
- asn1_err.et \
- canthandle.asn1 \
- CMS.asn1 \
- digest.asn1 \
- k5.asn1 \
- kx509.asn1 \
- test.asn1 \
- setchgpw2.asn1 \
- pkcs12.asn1 \
- pkcs8.asn1 \
- pkcs9.asn1 \
- pkinit.asn1 \
- rfc2459.asn1 \
- test.gen
-
-all: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) all-am
-
-.SUFFIXES:
-.SUFFIXES: .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c .l .lo .o .obj .y
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(top_srcdir)/cf/Makefile.am.common $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps lib/asn1/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign --ignore-deps lib/asn1/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
- @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- f=$(am__strip_dir) \
- echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
- $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
- else :; fi; \
- done
-
-uninstall-libLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
- p=$(am__strip_dir) \
- echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
- $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
- done
-
-clean-libLTLIBRARIES:
- -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
- @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-libasn1.la: $(libasn1_la_OBJECTS) $(libasn1_la_DEPENDENCIES)
- $(libasn1_la_LINK) -rpath $(libdir) $(libasn1_la_OBJECTS) $(libasn1_la_LIBADD) $(LIBS)
-
-clean-checkPROGRAMS:
- @list='$(check_PROGRAMS)'; for p in $$list; do \
- f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f $$p $$f"; \
- rm -f $$p $$f ; \
- done
-
-clean-noinstPROGRAMS:
- @list='$(noinst_PROGRAMS)'; for p in $$list; do \
- f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f $$p $$f"; \
- rm -f $$p $$f ; \
- done
-asn1_compile$(EXEEXT): $(asn1_compile_OBJECTS) $(asn1_compile_DEPENDENCIES)
- @rm -f asn1_compile$(EXEEXT)
- $(LINK) $(asn1_compile_OBJECTS) $(asn1_compile_LDADD) $(LIBS)
-asn1_gen$(EXEEXT): $(asn1_gen_OBJECTS) $(asn1_gen_DEPENDENCIES)
- @rm -f asn1_gen$(EXEEXT)
- $(LINK) $(asn1_gen_OBJECTS) $(asn1_gen_LDADD) $(LIBS)
-asn1_print$(EXEEXT): $(asn1_print_OBJECTS) $(asn1_print_DEPENDENCIES)
- @rm -f asn1_print$(EXEEXT)
- $(LINK) $(asn1_print_OBJECTS) $(asn1_print_LDADD) $(LIBS)
-check-der$(EXEEXT): $(check_der_OBJECTS) $(check_der_DEPENDENCIES)
- @rm -f check-der$(EXEEXT)
- $(LINK) $(check_der_OBJECTS) $(check_der_LDADD) $(LIBS)
-check-gen$(EXEEXT): $(check_gen_OBJECTS) $(check_gen_DEPENDENCIES)
- @rm -f check-gen$(EXEEXT)
- $(LINK) $(check_gen_OBJECTS) $(check_gen_LDADD) $(LIBS)
-check-timegm$(EXEEXT): $(check_timegm_OBJECTS) $(check_timegm_DEPENDENCIES)
- @rm -f check-timegm$(EXEEXT)
- $(LINK) $(check_timegm_OBJECTS) $(check_timegm_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-.c.o:
- $(COMPILE) -c $<
-
-.c.obj:
- $(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.c.lo:
- $(LTCOMPILE) -c -o $@ $<
-
-.l.c:
- $(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE)
-
-.y.c:
- $(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE)
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-dist_includeHEADERS: $(dist_include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
- @list='$(dist_include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(dist_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \
- $(dist_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \
- done
-
-uninstall-dist_includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(dist_include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(includedir)/$$f"; \
- done
-install-nodist_includeHEADERS: $(nodist_include_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
- @list='$(nodist_include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(nodist_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \
- $(nodist_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \
- done
-
-uninstall-nodist_includeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(nodist_include_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \
- rm -f "$(DESTDIR)$(includedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-check-TESTS: $(TESTS)
- @failed=0; all=0; xfail=0; xpass=0; skip=0; ws='[ ]'; \
- srcdir=$(srcdir); export srcdir; \
- list=' $(TESTS) '; \
- if test -n "$$list"; then \
- for tst in $$list; do \
- if test -f ./$$tst; then dir=./; \
- elif test -f $$tst; then dir=; \
- else dir="$(srcdir)/"; fi; \
- if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
- all=`expr $$all + 1`; \
- case " $(XFAIL_TESTS) " in \
- *$$ws$$tst$$ws*) \
- xpass=`expr $$xpass + 1`; \
- failed=`expr $$failed + 1`; \
- echo "XPASS: $$tst"; \
- ;; \
- *) \
- echo "PASS: $$tst"; \
- ;; \
- esac; \
- elif test $$? -ne 77; then \
- all=`expr $$all + 1`; \
- case " $(XFAIL_TESTS) " in \
- *$$ws$$tst$$ws*) \
- xfail=`expr $$xfail + 1`; \
- echo "XFAIL: $$tst"; \
- ;; \
- *) \
- failed=`expr $$failed + 1`; \
- echo "FAIL: $$tst"; \
- ;; \
- esac; \
- else \
- skip=`expr $$skip + 1`; \
- echo "SKIP: $$tst"; \
- fi; \
- done; \
- if test "$$failed" -eq 0; then \
- if test "$$xfail" -eq 0; then \
- banner="All $$all tests passed"; \
- else \
- banner="All $$all tests behaved as expected ($$xfail expected failures)"; \
- fi; \
- else \
- if test "$$xpass" -eq 0; then \
- banner="$$failed of $$all tests failed"; \
- else \
- banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \
- fi; \
- fi; \
- dashes="$$banner"; \
- skipped=""; \
- if test "$$skip" -ne 0; then \
- skipped="($$skip tests were not run)"; \
- test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
- dashes="$$skipped"; \
- fi; \
- report=""; \
- if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
- report="Please report to $(PACKAGE_BUGREPORT)"; \
- test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
- dashes="$$report"; \
- fi; \
- dashes=`echo "$$dashes" | sed s/./=/g`; \
- echo "$$dashes"; \
- echo "$$banner"; \
- test -z "$$skipped" || echo "$$skipped"; \
- test -z "$$report" || echo "$$report"; \
- echo "$$dashes"; \
- test "$$failed" -eq 0; \
- else :; fi
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$(top_distdir)" distdir="$(distdir)" \
- dist-hook
-check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
- $(MAKE) $(AM_MAKEFLAGS) check-TESTS check-local
-check: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) all-local
-installdirs:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(includedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
- -rm -f lex.c
- -rm -f parse.c
- -rm -f parse.h
- -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-clean: clean-am
-
-clean-am: clean-checkPROGRAMS clean-generic clean-libLTLIBRARIES \
- clean-libtool clean-noinstPROGRAMS mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-dist_includeHEADERS \
- install-nodist_includeHEADERS
- @$(NORMAL_INSTALL)
- $(MAKE) $(AM_MAKEFLAGS) install-data-hook
-
-install-dvi: install-dvi-am
-
-install-exec-am: install-libLTLIBRARIES
- @$(NORMAL_INSTALL)
- $(MAKE) $(AM_MAKEFLAGS) install-exec-hook
-
-install-html: install-html-am
-
-install-info: install-info-am
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-ps: install-ps-am
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-dist_includeHEADERS uninstall-libLTLIBRARIES \
- uninstall-nodist_includeHEADERS
- @$(NORMAL_INSTALL)
- $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
-
-.MAKE: install-am install-data-am install-exec-am install-strip \
- uninstall-am
-
-.PHONY: CTAGS GTAGS all all-am all-local check check-TESTS check-am \
- check-local clean clean-checkPROGRAMS clean-generic \
- clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS ctags \
- dist-hook distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-data-hook install-dist_includeHEADERS \
- install-dvi install-dvi-am install-exec install-exec-am \
- install-exec-hook install-html install-html-am install-info \
- install-info-am install-libLTLIBRARIES install-man \
- install-nodist_includeHEADERS install-pdf install-pdf-am \
- install-ps install-ps-am install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags uninstall uninstall-am uninstall-dist_includeHEADERS \
- uninstall-hook uninstall-libLTLIBRARIES \
- uninstall-nodist_includeHEADERS
-
-
-install-suid-programs:
- @foo='$(bin_SUIDS)'; \
- for file in $$foo; do \
- x=$(DESTDIR)$(bindir)/$$file; \
- if chown 0:0 $$x && chmod u+s $$x; then :; else \
- echo "*"; \
- echo "* Failed to install $$x setuid root"; \
- echo "*"; \
- fi; done
-
-install-exec-hook: install-suid-programs
-
-install-build-headers:: $(include_HEADERS) $(dist_include_HEADERS) $(nodist_include_HEADERS) $(build_HEADERZ) $(nobase_include_HEADERS)
- @foo='$(include_HEADERS) $(dist_include_HEADERS) $(nodist_include_HEADERS) $(build_HEADERZ)'; \
- for f in $$foo; do \
- f=`basename $$f`; \
- if test -f "$(srcdir)/$$f"; then file="$(srcdir)/$$f"; \
- else file="$$f"; fi; \
- if cmp -s $$file $(buildinclude)/$$f 2> /dev/null ; then \
- : ; else \
- echo " $(CP) $$file $(buildinclude)/$$f"; \
- $(CP) $$file $(buildinclude)/$$f; \
- fi ; \
- done ; \
- foo='$(nobase_include_HEADERS)'; \
- for f in $$foo; do \
- if test -f "$(srcdir)/$$f"; then file="$(srcdir)/$$f"; \
- else file="$$f"; fi; \
- $(mkdir_p) $(buildinclude)/`dirname $$f` ; \
- if cmp -s $$file $(buildinclude)/$$f 2> /dev/null ; then \
- : ; else \
- echo " $(CP) $$file $(buildinclude)/$$f"; \
- $(CP) $$file $(buildinclude)/$$f; \
- fi ; \
- done
-
-all-local: install-build-headers
-
-check-local::
- @if test '$(CHECK_LOCAL)' = "no-check-local"; then \
- foo=''; elif test '$(CHECK_LOCAL)'; then \
- foo='$(CHECK_LOCAL)'; else \
- foo='$(PROGRAMS)'; fi; \
- if test "$$foo"; then \
- failed=0; all=0; \
- for i in $$foo; do \
- all=`expr $$all + 1`; \
- if (./$$i --version && ./$$i --help) > /dev/null 2>&1; then \
- echo "PASS: $$i"; \
- else \
- echo "FAIL: $$i"; \
- failed=`expr $$failed + 1`; \
- fi; \
- done; \
- if test "$$failed" -eq 0; then \
- banner="All $$all tests passed"; \
- else \
- banner="$$failed of $$all tests failed"; \
- fi; \
- dashes=`echo "$$banner" | sed s/./=/g`; \
- echo "$$dashes"; \
- echo "$$banner"; \
- echo "$$dashes"; \
- test "$$failed" -eq 0 || exit 1; \
- fi
-
-.x.c:
- @cmp -s $< $@ 2> /dev/null || cp $< $@
-#NROFF_MAN = nroff -man
-.1.cat1:
- $(NROFF_MAN) $< > $@
-.3.cat3:
- $(NROFF_MAN) $< > $@
-.5.cat5:
- $(NROFF_MAN) $< > $@
-.8.cat8:
- $(NROFF_MAN) $< > $@
-
-dist-cat1-mans:
- @foo='$(man1_MANS)'; \
- bar='$(man_MANS)'; \
- for i in $$bar; do \
- case $$i in \
- *.1) foo="$$foo $$i";; \
- esac; done ;\
- for i in $$foo; do \
- x=`echo $$i | sed 's/\.[^.]*$$/.cat1/'`; \
- echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \
- $(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \
- done
-
-dist-cat3-mans:
- @foo='$(man3_MANS)'; \
- bar='$(man_MANS)'; \
- for i in $$bar; do \
- case $$i in \
- *.3) foo="$$foo $$i";; \
- esac; done ;\
- for i in $$foo; do \
- x=`echo $$i | sed 's/\.[^.]*$$/.cat3/'`; \
- echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \
- $(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \
- done
-
-dist-cat5-mans:
- @foo='$(man5_MANS)'; \
- bar='$(man_MANS)'; \
- for i in $$bar; do \
- case $$i in \
- *.5) foo="$$foo $$i";; \
- esac; done ;\
- for i in $$foo; do \
- x=`echo $$i | sed 's/\.[^.]*$$/.cat5/'`; \
- echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \
- $(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \
- done
-
-dist-cat8-mans:
- @foo='$(man8_MANS)'; \
- bar='$(man_MANS)'; \
- for i in $$bar; do \
- case $$i in \
- *.8) foo="$$foo $$i";; \
- esac; done ;\
- for i in $$foo; do \
- x=`echo $$i | sed 's/\.[^.]*$$/.cat8/'`; \
- echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \
- $(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \
- done
-
-dist-hook: dist-cat1-mans dist-cat3-mans dist-cat5-mans dist-cat8-mans
-
-install-cat-mans:
- $(SHELL) $(top_srcdir)/cf/install-catman.sh install "$(INSTALL_DATA)" "$(mkinstalldirs)" "$(srcdir)" "$(DESTDIR)$(mandir)" '$(CATMANEXT)' $(man_MANS) $(man1_MANS) $(man3_MANS) $(man5_MANS) $(man8_MANS)
-
-uninstall-cat-mans:
- $(SHELL) $(top_srcdir)/cf/install-catman.sh uninstall "$(INSTALL_DATA)" "$(mkinstalldirs)" "$(srcdir)" "$(DESTDIR)$(mandir)" '$(CATMANEXT)' $(man_MANS) $(man1_MANS) $(man3_MANS) $(man5_MANS) $(man8_MANS)
-
-install-data-hook: install-cat-mans
-uninstall-hook: uninstall-cat-mans
-
-.et.h:
- $(COMPILE_ET) $<
-.et.c:
- $(COMPILE_ET) $<
-
-#
-# Useful target for debugging
-#
-
-check-valgrind:
- tobjdir=`cd $(top_builddir) && pwd` ; \
- tsrcdir=`cd $(top_srcdir) && pwd` ; \
- env TESTS_ENVIRONMENT="$${tobjdir}/libtool --mode execute valgrind --leak-check=full --trace-children=yes --quiet -q --num-callers=30 --suppressions=$${tsrcdir}/cf/valgrind-suppressions" make check
-
-#
-# Target to please samba build farm, builds distfiles in-tree.
-# Will break when automake changes...
-#
-
-distdir-in-tree: $(DISTFILES) $(INFO_DEPS)
- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" != .; then \
- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) distdir-in-tree) ; \
- fi ; \
- done
-
-$(asn1_compile_OBJECTS): parse.h parse.c $(srcdir)/der-protos.h
-$(libasn1_la_OBJECTS): krb5_asn1.h asn1_err.h $(srcdir)/der-protos.h
-$(check_gen_OBJECTS): test_asn1.h
-$(asn1_print_OBJECTS): krb5_asn1.h
-
-parse.h: parse.c
-
-$(gen_files_k5) krb5_asn1.h: krb5_asn1_files
-$(gen_files_pkinit) pkinit_asn1.h: pkinit_asn1_files
-$(gen_files_pkcs8) pkcs8_asn1.h: pkcs8_asn1_files
-$(gen_files_pkcs9) pkcs9_asn1.h: pkcs9_asn1_files
-$(gen_files_pkcs12) pkcs12_asn1.h: pkcs12_asn1_files
-$(gen_files_digest) digest_asn1.h: digest_asn1_files
-$(gen_files_kx509) kx509_asn1.h: kx509_asn1_files
-$(gen_files_rfc2459) rfc2459_asn1.h: rfc2459_asn1_files
-$(gen_files_cms) cms_asn1.h: cms_asn1_files
-$(gen_files_test) test_asn1.h: test_asn1_files
-
-rfc2459_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/rfc2459.asn1
- ./asn1_compile$(EXEEXT) --preserve-binary=TBSCertificate --preserve-binary=TBSCRLCertList --preserve-binary=Name --sequence=GeneralNames --sequence=Extensions --sequence=CRLDistributionPoints $(srcdir)/rfc2459.asn1 rfc2459_asn1 || (rm -f rfc2459_asn1_files ; exit 1)
-
-cms_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/CMS.asn1
- ./asn1_compile$(EXEEXT) $(srcdir)/CMS.asn1 cms_asn1 || (rm -f cms_asn1_files ; exit 1)
-
-krb5_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/k5.asn1
- ./asn1_compile$(EXEEXT) --encode-rfc1510-bit-string --sequence=KRB5SignedPathPrincipals --sequence=AuthorizationData --sequence=METHOD-DATA --sequence=ETYPE-INFO --sequence=ETYPE-INFO2 $(srcdir)/k5.asn1 krb5_asn1 || (rm -f krb5_asn1_files ; exit 1)
-
-pkinit_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/pkinit.asn1
- ./asn1_compile$(EXEEXT) $(srcdir)/pkinit.asn1 pkinit_asn1 || (rm -f pkinit_asn1_files ; exit 1)
-
-pkcs8_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/pkcs8.asn1
- ./asn1_compile$(EXEEXT) $(srcdir)/pkcs8.asn1 pkcs8_asn1 || (rm -f pkcs8_asn1_files ; exit 1)
-
-pkcs9_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/pkcs9.asn1
- ./asn1_compile$(EXEEXT) $(srcdir)/pkcs9.asn1 pkcs9_asn1 || (rm -f pkcs9_asn1_files ; exit 1)
-
-pkcs12_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/pkcs12.asn1
- ./asn1_compile$(EXEEXT) $(srcdir)/pkcs12.asn1 pkcs12_asn1 || (rm -f pkcs12_asn1_files ; exit 1)
-
-digest_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/digest.asn1
- ./asn1_compile$(EXEEXT) $(srcdir)/digest.asn1 digest_asn1 || (rm -f digest_asn1_files ; exit 1)
-
-kx509_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/kx509.asn1
- ./asn1_compile$(EXEEXT) $(srcdir)/kx509.asn1 kx509_asn1 || (rm -f kx509_asn1_files ; exit 1)
-
-test_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/test.asn1
- ./asn1_compile$(EXEEXT) --sequence=TESTSeqOf $(srcdir)/test.asn1 test_asn1 || (rm -f test_asn1_files ; exit 1)
-
-$(srcdir)/der-protos.h:
- cd $(srcdir) && perl ../../cf/make-proto.pl -q -P comment -o der-protos.h $(dist_libasn1_la_SOURCES) || rm -f der-protos.h
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/crypto/heimdal/lib/asn1/asn1-common.h b/crypto/heimdal/lib/asn1/asn1-common.h
deleted file mode 100644
index 5789e0f..0000000
--- a/crypto/heimdal/lib/asn1/asn1-common.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* $Id: asn1-common.h 22429 2008-01-13 10:25:50Z lha $ */
-
-#include <stddef.h>
-#include <time.h>
-
-#ifndef __asn1_common_definitions__
-#define __asn1_common_definitions__
-
-typedef struct heim_integer {
- size_t length;
- void *data;
- int negative;
-} heim_integer;
-
-typedef struct heim_octet_string {
- size_t length;
- void *data;
-} heim_octet_string;
-
-typedef char *heim_general_string;
-typedef char *heim_utf8_string;
-typedef char *heim_printable_string;
-typedef char *heim_ia5_string;
-
-typedef struct heim_bmp_string {
- size_t length;
- uint16_t *data;
-} heim_bmp_string;
-
-typedef struct heim_universal_string {
- size_t length;
- uint32_t *data;
-} heim_universal_string;
-
-typedef char *heim_visible_string;
-
-typedef struct heim_oid {
- size_t length;
- unsigned *components;
-} heim_oid;
-
-typedef struct heim_bit_string {
- size_t length;
- void *data;
-} heim_bit_string;
-
-typedef struct heim_octet_string heim_any;
-typedef struct heim_octet_string heim_any_set;
-
-#define ASN1_MALLOC_ENCODE(T, B, BL, S, L, R) \
- do { \
- (BL) = length_##T((S)); \
- (B) = malloc((BL)); \
- if((B) == NULL) { \
- (R) = ENOMEM; \
- } else { \
- (R) = encode_##T(((unsigned char*)(B)) + (BL) - 1, (BL), \
- (S), (L)); \
- if((R) != 0) { \
- free((B)); \
- (B) = NULL; \
- } \
- } \
- } while (0)
-
-#endif
diff --git a/crypto/heimdal/lib/asn1/asn1_err.et b/crypto/heimdal/lib/asn1/asn1_err.et
deleted file mode 100644
index c624e21..0000000
--- a/crypto/heimdal/lib/asn1/asn1_err.et
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# Error messages for the asn.1 library
-#
-# This might look like a com_err file, but is not
-#
-id "$Id: asn1_err.et 21394 2007-07-02 10:14:43Z lha $"
-
-error_table asn1
-prefix ASN1
-error_code BAD_TIMEFORMAT, "ASN.1 failed call to system time library"
-error_code MISSING_FIELD, "ASN.1 structure is missing a required field"
-error_code MISPLACED_FIELD, "ASN.1 unexpected field number"
-error_code TYPE_MISMATCH, "ASN.1 type numbers are inconsistent"
-error_code OVERFLOW, "ASN.1 value too large"
-error_code OVERRUN, "ASN.1 encoding ended unexpectedly"
-error_code BAD_ID, "ASN.1 identifier doesn't match expected value"
-error_code BAD_LENGTH, "ASN.1 length doesn't match expected value"
-error_code BAD_FORMAT, "ASN.1 badly-formatted encoding"
-error_code PARSE_ERROR, "ASN.1 parse error"
-error_code EXTRA_DATA, "ASN.1 extra data past end of end structure"
-error_code BAD_CHARACTER, "ASN.1 invalid character in string"
-error_code MIN_CONSTRAINT, "ASN.1 too few elements"
-error_code MAX_CONSTRAINT, "ASN.1 too many elements"
-error_code EXACT_CONSTRAINT, "ASN.1 wrong number of elements"
-end
diff --git a/crypto/heimdal/lib/asn1/asn1_gen.c b/crypto/heimdal/lib/asn1/asn1_gen.c
deleted file mode 100644
index 65b382e..0000000
--- a/crypto/heimdal/lib/asn1/asn1_gen.c
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (c) 2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "der_locl.h"
-#include <com_err.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <ctype.h>
-#include <getarg.h>
-#include <hex.h>
-#include <err.h>
-
-RCSID("$Id: asn1_gen.c 16666 2006-01-30 15:06:03Z lha $");
-
-static int
-doit(const char *fn)
-{
- char buf[2048];
- char *fnout;
- const char *bname;
- unsigned long line = 0;
- FILE *f, *fout;
- size_t offset = 0;
-
- f = fopen(fn, "r");
- if (f == NULL)
- err(1, "fopen");
-
- bname = strrchr(fn, '/');
- if (bname)
- bname++;
- else
- bname = fn;
-
- asprintf(&fnout, "%s.out", bname);
- if (fnout == NULL)
- errx(1, "malloc");
-
- fout = fopen(fnout, "w");
- if (fout == NULL)
- err(1, "fopen: output file");
-
- while (fgets(buf, sizeof(buf), f) != NULL) {
- char *ptr, *class, *type, *tag, *length, *data, *foo;
- int ret, l, c, ty, ta;
- unsigned char p[6], *pdata;
- size_t sz;
-
- line++;
-
- buf[strcspn(buf, "\r\n")] = '\0';
- if (buf[0] == '#' || buf[0] == '\0')
- continue;
-
- ptr = buf;
- while (isspace((unsigned char)*ptr))
- ptr++;
-
- class = strtok_r(ptr, " \t\n", &foo);
- if (class == NULL) errx(1, "class missing on line %lu", line);
- type = strtok_r(NULL, " \t\n", &foo);
- if (type == NULL) errx(1, "type missing on line %lu", line);
- tag = strtok_r(NULL, " \t\n", &foo);
- if (tag == NULL) errx(1, "tag missing on line %lu", line);
- length = strtok_r(NULL, " \t\n", &foo);
- if (length == NULL) errx(1, "length missing on line %lu", line);
- data = strtok_r(NULL, " \t\n", &foo);
-
- c = der_get_class_num(class);
- if (c == -1) errx(1, "no valid class on line %lu", line);
- ty = der_get_type_num(type);
- if (ty == -1) errx(1, "no valid type on line %lu", line);
- ta = der_get_tag_num(tag);
- if (ta == -1)
- ta = atoi(tag);
-
- l = atoi(length);
-
- printf("line: %3lu offset: %3lu class: %d type: %d "
- "tag: %3d length: %3d %s\n",
- line, (unsigned long)offset, c, ty, ta, l,
- data ? "<have data>" : "<no data>");
-
- ret = der_put_length_and_tag(p + sizeof(p) - 1, sizeof(p),
- l,
- c,
- ty,
- ta,
- &sz);
- if (ret)
- errx(1, "der_put_length_and_tag: %d", ret);
-
- if (fwrite(p + sizeof(p) - sz , sz, 1, fout) != 1)
- err(1, "fwrite length/tag failed");
- offset += sz;
-
- if (data) {
- size_t datalen;
-
- datalen = strlen(data) / 2;
- pdata = emalloc(sz);
-
- if (hex_decode(data, pdata, datalen) != datalen)
- errx(1, "failed to decode data");
-
- if (fwrite(pdata, datalen, 1, fout) != 1)
- err(1, "fwrite data failed");
- offset += datalen;
-
- free(pdata);
- }
- }
- printf("line: eof offset: %lu\n", (unsigned long)offset);
-
- fclose(fout);
- fclose(f);
- return 0;
-}
-
-
-static int version_flag;
-static int help_flag;
-struct getargs args[] = {
- { "version", 0, arg_flag, &version_flag },
- { "help", 0, arg_flag, &help_flag }
-};
-int num_args = sizeof(args) / sizeof(args[0]);
-
-static void
-usage(int code)
-{
- arg_printusage(args, num_args, NULL, "parse-file");
- exit(code);
-}
-
-int
-main(int argc, char **argv)
-{
- int optidx = 0;
-
- setprogname (argv[0]);
-
- if(getarg(args, num_args, argc, argv, &optidx))
- usage(1);
- if(help_flag)
- usage(0);
- if(version_flag) {
- print_version(NULL);
- exit(0);
- }
- argv += optidx;
- argc -= optidx;
- if (argc != 1)
- usage (1);
-
- return doit (argv[0]);
-}
diff --git a/crypto/heimdal/lib/asn1/asn1_print.c b/crypto/heimdal/lib/asn1/asn1_print.c
deleted file mode 100644
index e00bf10..0000000
--- a/crypto/heimdal/lib/asn1/asn1_print.c
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- * Copyright (c) 1997 - 2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "der_locl.h"
-#include <com_err.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <getarg.h>
-#include <err.h>
-#include <der.h>
-
-RCSID("$Id: asn1_print.c 19539 2006-12-28 17:15:05Z lha $");
-
-static int indent_flag = 1;
-
-static unsigned long indefinite_form_loop;
-static unsigned long indefinite_form_loop_max = 10000;
-
-static size_t
-loop (unsigned char *buf, size_t len, int indent)
-{
- unsigned char *start_buf = buf;
-
- while (len > 0) {
- int ret;
- Der_class class;
- Der_type type;
- unsigned int tag;
- size_t sz;
- size_t length;
- size_t loop_length = 0;
- int end_tag = 0;
- const char *tagname;
-
- ret = der_get_tag (buf, len, &class, &type, &tag, &sz);
- if (ret)
- errx (1, "der_get_tag: %s", error_message (ret));
- if (sz > len)
- errx (1, "unreasonable length (%u) > %u",
- (unsigned)sz, (unsigned)len);
- buf += sz;
- len -= sz;
- if (indent_flag) {
- int i;
- for (i = 0; i < indent; ++i)
- printf (" ");
- }
- printf ("%s %s ", der_get_class_name(class), der_get_type_name(type));
- tagname = der_get_tag_name(tag);
- if (class == ASN1_C_UNIV && tagname != NULL)
- printf ("%s = ", tagname);
- else
- printf ("tag %d = ", tag);
- ret = der_get_length (buf, len, &length, &sz);
- if (ret)
- errx (1, "der_get_tag: %s", error_message (ret));
- if (sz > len)
- errx (1, "unreasonable tag length (%u) > %u",
- (unsigned)sz, (unsigned)len);
- buf += sz;
- len -= sz;
- if (length == ASN1_INDEFINITE) {
- if ((class == ASN1_C_UNIV && type == PRIM && tag == UT_OctetString) ||
- (class == ASN1_C_CONTEXT && type == CONS) ||
- (class == ASN1_C_UNIV && type == CONS && tag == UT_Sequence) ||
- (class == ASN1_C_UNIV && type == CONS && tag == UT_Set)) {
- printf("*INDEFINITE FORM*");
- } else {
- fflush(stdout);
- errx(1, "indef form used on unsupported object");
- }
- end_tag = 1;
- if (indefinite_form_loop > indefinite_form_loop_max)
- errx(1, "indefinite form used recursively more then %lu "
- "times, aborting", indefinite_form_loop_max);
- indefinite_form_loop++;
- length = len;
- } else if (length > len) {
- printf("\n");
- fflush(stdout);
- errx (1, "unreasonable inner length (%u) > %u",
- (unsigned)length, (unsigned)len);
- }
- if (class == ASN1_C_CONTEXT || class == ASN1_C_APPL) {
- printf ("%lu bytes [%u]", (unsigned long)length, tag);
- if (type == CONS) {
- printf("\n");
- loop_length = loop (buf, length, indent + 2);
- } else {
- printf(" IMPLICIT content\n");
- }
- } else if (class == ASN1_C_UNIV) {
- switch (tag) {
- case UT_EndOfContent:
- printf (" INDEFINITE length was %lu\n",
- (unsigned long)(buf - start_buf));
- break;
- case UT_Set :
- case UT_Sequence :
- printf ("%lu bytes {\n", (unsigned long)length);
- loop_length = loop (buf, length, indent + 2);
- if (indent_flag) {
- int i;
- for (i = 0; i < indent; ++i)
- printf (" ");
- printf ("}\n");
- } else
- printf ("} indent = %d\n", indent / 2);
- break;
- case UT_Integer : {
- int val;
-
- if (length <= sizeof(val)) {
- ret = der_get_integer (buf, length, &val, NULL);
- if (ret)
- errx (1, "der_get_integer: %s", error_message (ret));
- printf ("integer %d\n", val);
- } else {
- heim_integer vali;
- char *p;
-
- ret = der_get_heim_integer(buf, length, &vali, NULL);
- if (ret)
- errx (1, "der_get_heim_integer: %s",
- error_message (ret));
- ret = der_print_hex_heim_integer(&vali, &p);
- if (ret)
- errx (1, "der_print_hex_heim_integer: %s",
- error_message (ret));
- printf ("BIG NUM integer: length %lu %s\n",
- (unsigned long)length, p);
- free(p);
- }
- break;
- }
- case UT_OctetString : {
- heim_octet_string str;
- int i;
- unsigned char *uc;
-
- ret = der_get_octet_string (buf, length, &str, NULL);
- if (ret)
- errx (1, "der_get_octet_string: %s", error_message (ret));
- printf ("(length %lu), ", (unsigned long)length);
- uc = (unsigned char *)str.data;
- for (i = 0; i < min(16,length); ++i)
- printf ("%02x", uc[i]);
- printf ("\n");
- free (str.data);
- break;
- }
- case UT_GeneralizedTime :
- case UT_GeneralString :
- case UT_PrintableString :
- case UT_VisibleString : {
- heim_general_string str;
-
- ret = der_get_general_string (buf, length, &str, NULL);
- if (ret)
- errx (1, "der_get_general_string: %s",
- error_message (ret));
- printf ("\"%s\"\n", str);
- free (str);
- break;
- }
- case UT_OID: {
- heim_oid o;
- char *p;
-
- ret = der_get_oid(buf, length, &o, NULL);
- if (ret)
- errx (1, "der_get_oid: %s", error_message (ret));
- ret = der_print_heim_oid(&o, '.', &p);
- der_free_oid(&o);
- if (ret)
- errx (1, "der_print_heim_oid: %s", error_message (ret));
- printf("%s\n", p);
- free(p);
-
- break;
- }
- case UT_Enumerated: {
- int num;
-
- ret = der_get_integer (buf, length, &num, NULL);
- if (ret)
- errx (1, "der_get_enum: %s", error_message (ret));
-
- printf("%u\n", num);
- break;
- }
- default :
- printf ("%lu bytes\n", (unsigned long)length);
- break;
- }
- }
- if (end_tag) {
- if (loop_length == 0)
- errx(1, "zero length INDEFINITE data ? indent = %d\n",
- indent / 2);
- if (loop_length < length)
- length = loop_length;
- if (indefinite_form_loop == 0)
- errx(1, "internal error in indefinite form loop detection");
- indefinite_form_loop--;
- } else if (loop_length)
- errx(1, "internal error for INDEFINITE form");
- buf += length;
- len -= length;
- }
- return 0;
-}
-
-static int
-doit (const char *filename)
-{
- int fd = open (filename, O_RDONLY);
- struct stat sb;
- unsigned char *buf;
- size_t len;
- int ret;
-
- if(fd < 0)
- err (1, "opening %s for read", filename);
- if (fstat (fd, &sb) < 0)
- err (1, "stat %s", filename);
- len = sb.st_size;
- buf = emalloc (len);
- if (read (fd, buf, len) != len)
- errx (1, "read failed");
- close (fd);
- ret = loop (buf, len, 0);
- free (buf);
- return 0;
-}
-
-
-static int version_flag;
-static int help_flag;
-struct getargs args[] = {
- { "indent", 0, arg_negative_flag, &indent_flag },
- { "version", 0, arg_flag, &version_flag },
- { "help", 0, arg_flag, &help_flag }
-};
-int num_args = sizeof(args) / sizeof(args[0]);
-
-static void
-usage(int code)
-{
- arg_printusage(args, num_args, NULL, "dump-file");
- exit(code);
-}
-
-int
-main(int argc, char **argv)
-{
- int optidx = 0;
-
- setprogname (argv[0]);
- initialize_asn1_error_table ();
- if(getarg(args, num_args, argc, argv, &optidx))
- usage(1);
- if(help_flag)
- usage(0);
- if(version_flag) {
- print_version(NULL);
- exit(0);
- }
- argv += optidx;
- argc -= optidx;
- if (argc != 1)
- usage (1);
- return doit (argv[0]);
-}
diff --git a/crypto/heimdal/lib/asn1/asn1_queue.h b/crypto/heimdal/lib/asn1/asn1_queue.h
deleted file mode 100644
index 3659b38..0000000
--- a/crypto/heimdal/lib/asn1/asn1_queue.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/* $NetBSD: queue.h,v 1.38 2004/04/18 14:12:05 lukem Exp $ */
-/* $Id: asn1_queue.h 15617 2005-07-12 06:27:42Z lha $ */
-
-/*
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. 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.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
- *
- * @(#)queue.h 8.5 (Berkeley) 8/20/94
- */
-
-#ifndef _ASN1_QUEUE_H_
-#define _ASN1_QUEUE_H_
-
-/*
- * Tail queue definitions.
- */
-#define ASN1_TAILQ_HEAD(name, type) \
-struct name { \
- struct type *tqh_first; /* first element */ \
- struct type **tqh_last; /* addr of last next element */ \
-}
-
-#define ASN1_TAILQ_HEAD_INITIALIZER(head) \
- { NULL, &(head).tqh_first }
-#define ASN1_TAILQ_ENTRY(type) \
-struct { \
- struct type *tqe_next; /* next element */ \
- struct type **tqe_prev; /* address of previous next element */ \
-}
-
-/*
- * Tail queue functions.
- */
-#if defined(_KERNEL) && defined(QUEUEDEBUG)
-#define QUEUEDEBUG_ASN1_TAILQ_INSERT_HEAD(head, elm, field) \
- if ((head)->tqh_first && \
- (head)->tqh_first->field.tqe_prev != &(head)->tqh_first) \
- panic("ASN1_TAILQ_INSERT_HEAD %p %s:%d", (head), __FILE__, __LINE__);
-#define QUEUEDEBUG_ASN1_TAILQ_INSERT_TAIL(head, elm, field) \
- if (*(head)->tqh_last != NULL) \
- panic("ASN1_TAILQ_INSERT_TAIL %p %s:%d", (head), __FILE__, __LINE__);
-#define QUEUEDEBUG_ASN1_TAILQ_OP(elm, field) \
- if ((elm)->field.tqe_next && \
- (elm)->field.tqe_next->field.tqe_prev != \
- &(elm)->field.tqe_next) \
- panic("ASN1_TAILQ_* forw %p %s:%d", (elm), __FILE__, __LINE__);\
- if (*(elm)->field.tqe_prev != (elm)) \
- panic("ASN1_TAILQ_* back %p %s:%d", (elm), __FILE__, __LINE__);
-#define QUEUEDEBUG_ASN1_TAILQ_PREREMOVE(head, elm, field) \
- if ((elm)->field.tqe_next == NULL && \
- (head)->tqh_last != &(elm)->field.tqe_next) \
- panic("ASN1_TAILQ_PREREMOVE head %p elm %p %s:%d", \
- (head), (elm), __FILE__, __LINE__);
-#define QUEUEDEBUG_ASN1_TAILQ_POSTREMOVE(elm, field) \
- (elm)->field.tqe_next = (void *)1L; \
- (elm)->field.tqe_prev = (void *)1L;
-#else
-#define QUEUEDEBUG_ASN1_TAILQ_INSERT_HEAD(head, elm, field)
-#define QUEUEDEBUG_ASN1_TAILQ_INSERT_TAIL(head, elm, field)
-#define QUEUEDEBUG_ASN1_TAILQ_OP(elm, field)
-#define QUEUEDEBUG_ASN1_TAILQ_PREREMOVE(head, elm, field)
-#define QUEUEDEBUG_ASN1_TAILQ_POSTREMOVE(elm, field)
-#endif
-
-#define ASN1_TAILQ_INIT(head) do { \
- (head)->tqh_first = NULL; \
- (head)->tqh_last = &(head)->tqh_first; \
-} while (/*CONSTCOND*/0)
-
-#define ASN1_TAILQ_INSERT_HEAD(head, elm, field) do { \
- QUEUEDEBUG_ASN1_TAILQ_INSERT_HEAD((head), (elm), field) \
- if (((elm)->field.tqe_next = (head)->tqh_first) != NULL) \
- (head)->tqh_first->field.tqe_prev = \
- &(elm)->field.tqe_next; \
- else \
- (head)->tqh_last = &(elm)->field.tqe_next; \
- (head)->tqh_first = (elm); \
- (elm)->field.tqe_prev = &(head)->tqh_first; \
-} while (/*CONSTCOND*/0)
-
-#define ASN1_TAILQ_INSERT_TAIL(head, elm, field) do { \
- QUEUEDEBUG_ASN1_TAILQ_INSERT_TAIL((head), (elm), field) \
- (elm)->field.tqe_next = NULL; \
- (elm)->field.tqe_prev = (head)->tqh_last; \
- *(head)->tqh_last = (elm); \
- (head)->tqh_last = &(elm)->field.tqe_next; \
-} while (/*CONSTCOND*/0)
-
-#define ASN1_TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \
- QUEUEDEBUG_ASN1_TAILQ_OP((listelm), field) \
- if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\
- (elm)->field.tqe_next->field.tqe_prev = \
- &(elm)->field.tqe_next; \
- else \
- (head)->tqh_last = &(elm)->field.tqe_next; \
- (listelm)->field.tqe_next = (elm); \
- (elm)->field.tqe_prev = &(listelm)->field.tqe_next; \
-} while (/*CONSTCOND*/0)
-
-#define ASN1_TAILQ_INSERT_BEFORE(listelm, elm, field) do { \
- QUEUEDEBUG_ASN1_TAILQ_OP((listelm), field) \
- (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \
- (elm)->field.tqe_next = (listelm); \
- *(listelm)->field.tqe_prev = (elm); \
- (listelm)->field.tqe_prev = &(elm)->field.tqe_next; \
-} while (/*CONSTCOND*/0)
-
-#define ASN1_TAILQ_REMOVE(head, elm, field) do { \
- QUEUEDEBUG_ASN1_TAILQ_PREREMOVE((head), (elm), field) \
- QUEUEDEBUG_ASN1_TAILQ_OP((elm), field) \
- if (((elm)->field.tqe_next) != NULL) \
- (elm)->field.tqe_next->field.tqe_prev = \
- (elm)->field.tqe_prev; \
- else \
- (head)->tqh_last = (elm)->field.tqe_prev; \
- *(elm)->field.tqe_prev = (elm)->field.tqe_next; \
- QUEUEDEBUG_ASN1_TAILQ_POSTREMOVE((elm), field); \
-} while (/*CONSTCOND*/0)
-
-#define ASN1_TAILQ_FOREACH(var, head, field) \
- for ((var) = ((head)->tqh_first); \
- (var); \
- (var) = ((var)->field.tqe_next))
-
-#define ASN1_TAILQ_FOREACH_REVERSE(var, head, headname, field) \
- for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last)); \
- (var); \
- (var) = (*(((struct headname *)((var)->field.tqe_prev))->tqh_last)))
-
-/*
- * Tail queue access methods.
- */
-#define ASN1_TAILQ_EMPTY(head) ((head)->tqh_first == NULL)
-#define ASN1_TAILQ_FIRST(head) ((head)->tqh_first)
-#define ASN1_TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
-
-#define ASN1_TAILQ_LAST(head, headname) \
- (*(((struct headname *)((head)->tqh_last))->tqh_last))
-#define ASN1_TAILQ_PREV(elm, headname, field) \
- (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
-
-
-#endif /* !_ASN1_QUEUE_H_ */
diff --git a/crypto/heimdal/lib/asn1/canthandle.asn1 b/crypto/heimdal/lib/asn1/canthandle.asn1
deleted file mode 100644
index 5ba3e38..0000000
--- a/crypto/heimdal/lib/asn1/canthandle.asn1
+++ /dev/null
@@ -1,34 +0,0 @@
--- $Id: canthandle.asn1 22071 2007-11-14 20:04:50Z lha $ --
-
-CANTHANDLE DEFINITIONS ::= BEGIN
-
--- Code the tag [1] but not the [ CONTEXT CONS UT_Sequence ] for Kaka2
--- Workaround: use inline the structure directly
--- Code the tag [2] but it should be primitive since KAKA3 is
--- Workaround: use the INTEGER type directly
-
-Kaka2 ::= SEQUENCE {
- kaka2-1 [0] INTEGER
-}
-
-Kaka3 ::= INTEGER
-
-Foo ::= SEQUENCE {
- kaka1 [0] IMPLICIT INTEGER OPTIONAL,
- kaka2 [1] IMPLICIT Kaka2 OPTIONAL,
- kaka3 [2] IMPLICIT Kaka3 OPTIONAL
-}
-
--- Don't code kaka if it's 1
--- Workaround is to use OPTIONAL and check for in the encoder stubs
-
-Bar ::= SEQUENCE {
- kaka [0] INTEGER DEFAULT 1
-}
-
--- Can't handle primitives in SET OF
--- Workaround is to define a type that is only an integer and use that
-
-Baz ::= SET OF INTEGER
-
-END
diff --git a/crypto/heimdal/lib/asn1/check-common.c b/crypto/heimdal/lib/asn1/check-common.c
deleted file mode 100644
index adf95f6..0000000
--- a/crypto/heimdal/lib/asn1/check-common.c
+++ /dev/null
@@ -1,376 +0,0 @@
-/*
- * Copyright (c) 1999 - 2006 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#ifdef HAVE_SYS_MMAN_H
-#include <sys/mman.h>
-#endif
-#include <stdio.h>
-#include <string.h>
-#include <err.h>
-#include <roken.h>
-
-#include "check-common.h"
-
-RCSID("$Id: check-common.c 18751 2006-10-21 14:49:13Z lha $");
-
-struct map_page {
- void *start;
- size_t size;
- void *data_start;
- size_t data_size;
- enum map_type type;
-};
-
-/* #undef HAVE_MMAP */
-
-void *
-map_alloc(enum map_type type, const void *buf,
- size_t size, struct map_page **map)
-{
-#ifndef HAVE_MMAP
- unsigned char *p;
- size_t len = size + sizeof(long) * 2;
- int i;
-
- *map = ecalloc(1, sizeof(**map));
-
- p = emalloc(len);
- (*map)->type = type;
- (*map)->start = p;
- (*map)->size = len;
- (*map)->data_start = p + sizeof(long);
- for (i = sizeof(long); i > 0; i--)
- p[sizeof(long) - i] = 0xff - i;
- for (i = sizeof(long); i > 0; i--)
- p[len - i] = 0xff - i;
-#else
- unsigned char *p;
- int flags, ret, fd;
- size_t pagesize = getpagesize();
-
- *map = ecalloc(1, sizeof(**map));
-
- (*map)->type = type;
-
-#ifdef MAP_ANON
- flags = MAP_ANON;
- fd = -1;
-#else
- flags = 0;
- fd = open ("/dev/zero", O_RDONLY);
- if(fd < 0)
- err (1, "open /dev/zero");
-#endif
- flags |= MAP_PRIVATE;
-
- (*map)->size = size + pagesize - (size % pagesize) + pagesize * 2;
-
- p = (unsigned char *)mmap(0, (*map)->size, PROT_READ | PROT_WRITE,
- flags, fd, 0);
- if (p == (unsigned char *)MAP_FAILED)
- err (1, "mmap");
-
- (*map)->start = p;
-
- ret = mprotect (p, pagesize, 0);
- if (ret < 0)
- err (1, "mprotect");
-
- ret = mprotect (p + (*map)->size - pagesize, pagesize, 0);
- if (ret < 0)
- err (1, "mprotect");
-
- switch (type) {
- case OVERRUN:
- (*map)->data_start = p + (*map)->size - pagesize - size;
- break;
- case UNDERRUN:
- (*map)->data_start = p + pagesize;
- break;
- default:
- abort();
- }
-#endif
- (*map)->data_size = size;
- if (buf)
- memcpy((*map)->data_start, buf, size);
- return (*map)->data_start;
-}
-
-void
-map_free(struct map_page *map, const char *test_name, const char *map_name)
-{
-#ifndef HAVE_MMAP
- unsigned char *p = map->start;
- int i;
-
- for (i = sizeof(long); i > 0; i--)
- if (p[sizeof(long) - i] != 0xff - i)
- errx(1, "%s: %s underrun %d\n", test_name, map_name, i);
- for (i = sizeof(long); i > 0; i--)
- if (p[map->size - i] != 0xff - i)
- errx(1, "%s: %s overrun %lu\n", test_name, map_name,
- (unsigned long)map->size - i);
- free(map->start);
-#else
- int ret;
-
- ret = munmap (map->start, map->size);
- if (ret < 0)
- err (1, "munmap");
-#endif
- free(map);
-}
-
-static void
-print_bytes (unsigned const char *buf, size_t len)
-{
- int i;
-
- for (i = 0; i < len; ++i)
- printf ("%02x ", buf[i]);
-}
-
-#ifndef MAP_FAILED
-#define MAP_FAILED (-1)
-#endif
-
-static char *current_test = "<uninit>";
-static char *current_state = "<uninit>";
-
-static RETSIGTYPE
-segv_handler(int sig)
-{
- int fd;
- char msg[] = "SIGSEGV i current test: ";
-
- fd = open("/dev/stdout", O_WRONLY, 0600);
- if (fd >= 0) {
- write(fd, msg, sizeof(msg));
- write(fd, current_test, strlen(current_test));
- write(fd, " ", 1);
- write(fd, current_state, strlen(current_state));
- write(fd, "\n", 1);
- close(fd);
- }
- _exit(1);
-}
-
-int
-generic_test (const struct test_case *tests,
- unsigned ntests,
- size_t data_size,
- int (*encode)(unsigned char *, size_t, void *, size_t *),
- int (*length)(void *),
- int (*decode)(unsigned char *, size_t, void *, size_t *),
- int (*free_data)(void *),
- int (*cmp)(void *a, void *b))
-{
- unsigned char *buf, *buf2;
- int i;
- int failures = 0;
- void *data;
- struct map_page *data_map, *buf_map, *buf2_map;
-
- struct sigaction sa, osa;
-
- for (i = 0; i < ntests; ++i) {
- int ret;
- size_t sz, consumed_sz, length_sz, buf_sz;
-
- current_test = tests[i].name;
-
- current_state = "init";
-
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = 0;
-#ifdef SA_RESETHAND
- sa.sa_flags |= SA_RESETHAND;
-#endif
- sa.sa_handler = segv_handler;
- sigaction (SIGSEGV, &sa, &osa);
-
- data = map_alloc(OVERRUN, NULL, data_size, &data_map);
-
- buf_sz = tests[i].byte_len;
- buf = map_alloc(UNDERRUN, NULL, buf_sz, &buf_map);
-
- current_state = "encode";
- ret = (*encode) (buf + buf_sz - 1, buf_sz,
- tests[i].val, &sz);
- if (ret != 0) {
- printf ("encoding of %s failed %d\n", tests[i].name, ret);
- ++failures;
- continue;
- }
- if (sz != tests[i].byte_len) {
- printf ("encoding of %s has wrong len (%lu != %lu)\n",
- tests[i].name,
- (unsigned long)sz, (unsigned long)tests[i].byte_len);
- ++failures;
- continue;
- }
-
- current_state = "length";
- length_sz = (*length) (tests[i].val);
- if (sz != length_sz) {
- printf ("length for %s is bad (%lu != %lu)\n",
- tests[i].name, (unsigned long)length_sz, (unsigned long)sz);
- ++failures;
- continue;
- }
-
- current_state = "memcmp";
- if (memcmp (buf, tests[i].bytes, tests[i].byte_len) != 0) {
- printf ("encoding of %s has bad bytes:\n"
- "correct: ", tests[i].name);
- print_bytes ((unsigned char *)tests[i].bytes, tests[i].byte_len);
- printf ("\nactual: ");
- print_bytes (buf, sz);
- printf ("\n");
- ++failures;
- continue;
- }
-
- buf2 = map_alloc(OVERRUN, buf, sz, &buf2_map);
-
- current_state = "decode";
- ret = (*decode) (buf2, sz, data, &consumed_sz);
- if (ret != 0) {
- printf ("decoding of %s failed %d\n", tests[i].name, ret);
- ++failures;
- continue;
- }
- if (sz != consumed_sz) {
- printf ("different length decoding %s (%ld != %ld)\n",
- tests[i].name,
- (unsigned long)sz, (unsigned long)consumed_sz);
- ++failures;
- continue;
- }
- current_state = "cmp";
- if ((*cmp)(data, tests[i].val) != 0) {
- printf ("%s: comparison failed\n", tests[i].name);
- ++failures;
- continue;
- }
- current_state = "free";
- if (free_data)
- (*free_data)(data);
-
- current_state = "free";
- map_free(buf_map, tests[i].name, "encode");
- map_free(buf2_map, tests[i].name, "decode");
- map_free(data_map, tests[i].name, "data");
-
- sigaction (SIGSEGV, &osa, NULL);
- }
- current_state = "done";
- return failures;
-}
-
-/*
- * check for failures
- *
- * a test size (byte_len) of -1 means that the test tries to trigger a
- * integer overflow (and later a malloc of to little memory), just
- * allocate some memory and hope that is enough for that test.
- */
-
-int
-generic_decode_fail (const struct test_case *tests,
- unsigned ntests,
- size_t data_size,
- int (*decode)(unsigned char *, size_t, void *, size_t *))
-{
- unsigned char *buf;
- int i;
- int failures = 0;
- void *data;
- struct map_page *data_map, *buf_map;
-
- struct sigaction sa, osa;
-
- for (i = 0; i < ntests; ++i) {
- int ret;
- size_t sz;
- const void *bytes;
-
- current_test = tests[i].name;
-
- current_state = "init";
-
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = 0;
-#ifdef SA_RESETHAND
- sa.sa_flags |= SA_RESETHAND;
-#endif
- sa.sa_handler = segv_handler;
- sigaction (SIGSEGV, &sa, &osa);
-
- data = map_alloc(OVERRUN, NULL, data_size, &data_map);
-
- if (tests[i].byte_len < 0xffffff && tests[i].byte_len >= 0) {
- sz = tests[i].byte_len;
- bytes = tests[i].bytes;
- } else {
- sz = 4096;
- bytes = NULL;
- }
-
- buf = map_alloc(OVERRUN, bytes, sz, &buf_map);
-
- if (tests[i].byte_len == -1)
- memset(buf, 0, sz);
-
- current_state = "decode";
- ret = (*decode) (buf, tests[i].byte_len, data, &sz);
- if (ret == 0) {
- printf ("sucessfully decoded %s\n", tests[i].name);
- ++failures;
- continue;
- }
-
- current_state = "free";
- if (buf)
- map_free(buf_map, tests[i].name, "encode");
- map_free(data_map, tests[i].name, "data");
-
- sigaction (SIGSEGV, &osa, NULL);
- }
- current_state = "done";
- return failures;
-}
diff --git a/crypto/heimdal/lib/asn1/check-common.h b/crypto/heimdal/lib/asn1/check-common.h
deleted file mode 100644
index b1cb647..0000000
--- a/crypto/heimdal/lib/asn1/check-common.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 1999 - 2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-struct test_case {
- void *val;
- int byte_len;
- const char *bytes;
- char *name;
-};
-
-typedef int (*generic_encode)(unsigned char *, size_t, void *, size_t *);
-typedef int (*generic_length)(void *);
-typedef int (*generic_decode)(unsigned char *, size_t, void *, size_t *);
-typedef int (*generic_free)(void *);
-
-int
-generic_test (const struct test_case *tests,
- unsigned ntests,
- size_t data_size,
- int (*encode)(unsigned char *, size_t, void *, size_t *),
- int (*length)(void *),
- int (*decode)(unsigned char *, size_t, void *, size_t *),
- int (*free_data)(void *),
- int (*cmp)(void *a, void *b));
-
-int
-generic_decode_fail(const struct test_case *tests,
- unsigned ntests,
- size_t data_size,
- int (*decode)(unsigned char *, size_t, void *, size_t *));
-
-
-struct map_page;
-
-enum map_type { OVERRUN, UNDERRUN };
-
-struct map_page;
-
-void * map_alloc(enum map_type, const void *, size_t, struct map_page **);
-void map_free(struct map_page *, const char *, const char *);
diff --git a/crypto/heimdal/lib/asn1/check-der.c b/crypto/heimdal/lib/asn1/check-der.c
deleted file mode 100644
index 9ba2601..0000000
--- a/crypto/heimdal/lib/asn1/check-der.c
+++ /dev/null
@@ -1,1089 +0,0 @@
-/*
- * Copyright (c) 1999 - 2007 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "der_locl.h"
-#include <err.h>
-#include <roken.h>
-
-#include <asn1-common.h>
-#include <asn1_err.h>
-#include <der.h>
-
-#include "check-common.h"
-
-RCSID("$Id: check-der.c 21359 2007-06-27 08:15:41Z lha $");
-
-static int
-cmp_integer (void *a, void *b)
-{
- int *ia = (int *)a;
- int *ib = (int *)b;
-
- return *ib - *ia;
-}
-
-static int
-test_integer (void)
-{
- struct test_case tests[] = {
- {NULL, 1, "\x00"},
- {NULL, 1, "\x7f"},
- {NULL, 2, "\x00\x80"},
- {NULL, 2, "\x01\x00"},
- {NULL, 1, "\x80"},
- {NULL, 2, "\xff\x7f"},
- {NULL, 1, "\xff"},
- {NULL, 2, "\xff\x01"},
- {NULL, 2, "\x00\xff"},
- {NULL, 4, "\x7f\xff\xff\xff"}
- };
-
- int values[] = {0, 127, 128, 256, -128, -129, -1, -255, 255,
- 0x7fffffff};
- int i, ret;
- int ntests = sizeof(tests) / sizeof(*tests);
-
- for (i = 0; i < ntests; ++i) {
- tests[i].val = &values[i];
- asprintf (&tests[i].name, "integer %d", values[i]);
- if (tests[i].name == NULL)
- errx(1, "malloc");
- }
-
- ret = generic_test (tests, ntests, sizeof(int),
- (generic_encode)der_put_integer,
- (generic_length) der_length_integer,
- (generic_decode)der_get_integer,
- (generic_free)NULL,
- cmp_integer);
-
- for (i = 0; i < ntests; ++i)
- free (tests[i].name);
- return ret;
-}
-
-static int
-test_one_int(int val)
-{
- int ret, dval;
- unsigned char *buf;
- size_t len_len, len;
-
- len = _heim_len_int(val);
-
- buf = emalloc(len + 2);
-
- buf[0] = '\xff';
- buf[len + 1] = '\xff';
- memset(buf + 1, 0, len);
-
- ret = der_put_integer(buf + 1 + len - 1, len, &val, &len_len);
- if (ret) {
- printf("integer %d encode failed %d\n", val, ret);
- return 1;
- }
- if (len != len_len) {
- printf("integer %d encode fail with %d len %lu, result len %lu\n",
- val, ret, (unsigned long)len, (unsigned long)len_len);
- return 1;
- }
-
- ret = der_get_integer(buf + 1, len, &dval, &len_len);
- if (ret) {
- printf("integer %d decode failed %d\n", val, ret);
- return 1;
- }
- if (len != len_len) {
- printf("integer %d decoded diffrent len %lu != %lu",
- val, (unsigned long)len, (unsigned long)len_len);
- return 1;
- }
- if (val != dval) {
- printf("decode decoded to diffrent value %d != %d",
- val, dval);
- return 1;
- }
-
- if (buf[0] != (unsigned char)'\xff') {
- printf("precanary dead %d\n", val);
- return 1;
- }
- if (buf[len + 1] != (unsigned char)'\xff') {
- printf("postecanary dead %d\n", val);
- return 1;
- }
- free(buf);
- return 0;
-}
-
-static int
-test_integer_more (void)
-{
- int i, n1, n2, n3, n4, n5, n6;
-
- n2 = 0;
- for (i = 0; i < (sizeof(int) * 8); i++) {
- n1 = 0x01 << i;
- n2 = n2 | n1;
- n3 = ~n1;
- n4 = ~n2;
- n5 = (-1) & ~(0x3f << i);
- n6 = (-1) & ~(0x7f << i);
-
- test_one_int(n1);
- test_one_int(n2);
- test_one_int(n3);
- test_one_int(n4);
- test_one_int(n5);
- test_one_int(n6);
- }
- return 0;
-}
-
-static int
-cmp_unsigned (void *a, void *b)
-{
- return *(unsigned int*)b - *(unsigned int*)a;
-}
-
-static int
-test_unsigned (void)
-{
- struct test_case tests[] = {
- {NULL, 1, "\x00"},
- {NULL, 1, "\x7f"},
- {NULL, 2, "\x00\x80"},
- {NULL, 2, "\x01\x00"},
- {NULL, 2, "\x02\x00"},
- {NULL, 3, "\x00\x80\x00"},
- {NULL, 5, "\x00\x80\x00\x00\x00"},
- {NULL, 4, "\x7f\xff\xff\xff"}
- };
-
- unsigned int values[] = {0, 127, 128, 256, 512, 32768,
- 0x80000000, 0x7fffffff};
- int i, ret;
- int ntests = sizeof(tests) / sizeof(*tests);
-
- for (i = 0; i < ntests; ++i) {
- tests[i].val = &values[i];
- asprintf (&tests[i].name, "unsigned %u", values[i]);
- if (tests[i].name == NULL)
- errx(1, "malloc");
- }
-
- ret = generic_test (tests, ntests, sizeof(int),
- (generic_encode)der_put_unsigned,
- (generic_length)der_length_unsigned,
- (generic_decode)der_get_unsigned,
- (generic_free)NULL,
- cmp_unsigned);
- for (i = 0; i < ntests; ++i)
- free (tests[i].name);
- return ret;
-}
-
-static int
-cmp_octet_string (void *a, void *b)
-{
- heim_octet_string *oa = (heim_octet_string *)a;
- heim_octet_string *ob = (heim_octet_string *)b;
-
- if (oa->length != ob->length)
- return ob->length - oa->length;
-
- return (memcmp (oa->data, ob->data, oa->length));
-}
-
-static int
-test_octet_string (void)
-{
- heim_octet_string s1 = {8, "\x01\x23\x45\x67\x89\xab\xcd\xef"};
-
- struct test_case tests[] = {
- {NULL, 8, "\x01\x23\x45\x67\x89\xab\xcd\xef"}
- };
- int ntests = sizeof(tests) / sizeof(*tests);
- int ret;
-
- tests[0].val = &s1;
- asprintf (&tests[0].name, "a octet string");
- if (tests[0].name == NULL)
- errx(1, "malloc");
-
- ret = generic_test (tests, ntests, sizeof(heim_octet_string),
- (generic_encode)der_put_octet_string,
- (generic_length)der_length_octet_string,
- (generic_decode)der_get_octet_string,
- (generic_free)der_free_octet_string,
- cmp_octet_string);
- free(tests[0].name);
- return ret;
-}
-
-static int
-cmp_bmp_string (void *a, void *b)
-{
- heim_bmp_string *oa = (heim_bmp_string *)a;
- heim_bmp_string *ob = (heim_bmp_string *)b;
-
- return der_heim_bmp_string_cmp(oa, ob);
-}
-
-static uint16_t bmp_d1[] = { 32 };
-static uint16_t bmp_d2[] = { 32, 32 };
-
-static int
-test_bmp_string (void)
-{
- heim_bmp_string s1 = { 1, bmp_d1 };
- heim_bmp_string s2 = { 2, bmp_d2 };
-
- struct test_case tests[] = {
- {NULL, 2, "\x00\x20"},
- {NULL, 4, "\x00\x20\x00\x20"}
- };
- int ntests = sizeof(tests) / sizeof(*tests);
- int ret;
-
- tests[0].val = &s1;
- asprintf (&tests[0].name, "a bmp string");
- if (tests[0].name == NULL)
- errx(1, "malloc");
- tests[1].val = &s2;
- asprintf (&tests[1].name, "second bmp string");
- if (tests[1].name == NULL)
- errx(1, "malloc");
-
- ret = generic_test (tests, ntests, sizeof(heim_bmp_string),
- (generic_encode)der_put_bmp_string,
- (generic_length)der_length_bmp_string,
- (generic_decode)der_get_bmp_string,
- (generic_free)der_free_bmp_string,
- cmp_bmp_string);
- free(tests[0].name);
- free(tests[1].name);
- return ret;
-}
-
-static int
-cmp_universal_string (void *a, void *b)
-{
- heim_universal_string *oa = (heim_universal_string *)a;
- heim_universal_string *ob = (heim_universal_string *)b;
-
- return der_heim_universal_string_cmp(oa, ob);
-}
-
-static uint32_t universal_d1[] = { 32 };
-static uint32_t universal_d2[] = { 32, 32 };
-
-static int
-test_universal_string (void)
-{
- heim_universal_string s1 = { 1, universal_d1 };
- heim_universal_string s2 = { 2, universal_d2 };
-
- struct test_case tests[] = {
- {NULL, 4, "\x00\x00\x00\x20"},
- {NULL, 8, "\x00\x00\x00\x20\x00\x00\x00\x20"}
- };
- int ntests = sizeof(tests) / sizeof(*tests);
- int ret;
-
- tests[0].val = &s1;
- asprintf (&tests[0].name, "a universal string");
- if (tests[0].name == NULL)
- errx(1, "malloc");
- tests[1].val = &s2;
- asprintf (&tests[1].name, "second universal string");
- if (tests[1].name == NULL)
- errx(1, "malloc");
-
- ret = generic_test (tests, ntests, sizeof(heim_universal_string),
- (generic_encode)der_put_universal_string,
- (generic_length)der_length_universal_string,
- (generic_decode)der_get_universal_string,
- (generic_free)der_free_universal_string,
- cmp_universal_string);
- free(tests[0].name);
- free(tests[1].name);
- return ret;
-}
-
-static int
-cmp_general_string (void *a, void *b)
-{
- char **sa = (char **)a;
- char **sb = (char **)b;
-
- return strcmp (*sa, *sb);
-}
-
-static int
-test_general_string (void)
-{
- char *s1 = "Test User 1";
-
- struct test_case tests[] = {
- {NULL, 11, "\x54\x65\x73\x74\x20\x55\x73\x65\x72\x20\x31"}
- };
- int ret, ntests = sizeof(tests) / sizeof(*tests);
-
- tests[0].val = &s1;
- asprintf (&tests[0].name, "the string \"%s\"", s1);
- if (tests[0].name == NULL)
- errx(1, "malloc");
-
- ret = generic_test (tests, ntests, sizeof(unsigned char *),
- (generic_encode)der_put_general_string,
- (generic_length)der_length_general_string,
- (generic_decode)der_get_general_string,
- (generic_free)der_free_general_string,
- cmp_general_string);
- free(tests[0].name);
- return ret;
-}
-
-static int
-cmp_generalized_time (void *a, void *b)
-{
- time_t *ta = (time_t *)a;
- time_t *tb = (time_t *)b;
-
- return *tb - *ta;
-}
-
-static int
-test_generalized_time (void)
-{
- struct test_case tests[] = {
- {NULL, 15, "19700101000000Z"},
- {NULL, 15, "19851106210627Z"}
- };
- time_t values[] = {0, 500159187};
- int i, ret;
- int ntests = sizeof(tests) / sizeof(*tests);
-
- for (i = 0; i < ntests; ++i) {
- tests[i].val = &values[i];
- asprintf (&tests[i].name, "time %d", (int)values[i]);
- if (tests[i].name == NULL)
- errx(1, "malloc");
- }
-
- ret = generic_test (tests, ntests, sizeof(time_t),
- (generic_encode)der_put_generalized_time,
- (generic_length)der_length_generalized_time,
- (generic_decode)der_get_generalized_time,
- (generic_free)NULL,
- cmp_generalized_time);
- for (i = 0; i < ntests; ++i)
- free(tests[i].name);
- return ret;
-}
-
-static int
-test_cmp_oid (void *a, void *b)
-{
- return der_heim_oid_cmp((heim_oid *)a, (heim_oid *)b);
-}
-
-static unsigned oid_comp1[] = { 1, 1, 1 };
-static unsigned oid_comp2[] = { 1, 1 };
-static unsigned oid_comp3[] = { 6, 15, 1 };
-static unsigned oid_comp4[] = { 6, 15 };
-
-static int
-test_oid (void)
-{
- struct test_case tests[] = {
- {NULL, 2, "\x29\x01"},
- {NULL, 1, "\x29"},
- {NULL, 2, "\xff\x01"},
- {NULL, 1, "\xff"}
- };
- heim_oid values[] = {
- { 3, oid_comp1 },
- { 2, oid_comp2 },
- { 3, oid_comp3 },
- { 2, oid_comp4 }
- };
- int i, ret;
- int ntests = sizeof(tests) / sizeof(*tests);
-
- for (i = 0; i < ntests; ++i) {
- tests[i].val = &values[i];
- asprintf (&tests[i].name, "oid %d", i);
- if (tests[i].name == NULL)
- errx(1, "malloc");
- }
-
- ret = generic_test (tests, ntests, sizeof(heim_oid),
- (generic_encode)der_put_oid,
- (generic_length)der_length_oid,
- (generic_decode)der_get_oid,
- (generic_free)der_free_oid,
- test_cmp_oid);
- for (i = 0; i < ntests; ++i)
- free(tests[i].name);
- return ret;
-}
-
-static int
-test_cmp_bit_string (void *a, void *b)
-{
- return der_heim_bit_string_cmp((heim_bit_string *)a, (heim_bit_string *)b);
-}
-
-static int
-test_bit_string (void)
-{
- struct test_case tests[] = {
- {NULL, 1, "\x00"}
- };
- heim_bit_string values[] = {
- { 0, "" }
- };
- int i, ret;
- int ntests = sizeof(tests) / sizeof(*tests);
-
- for (i = 0; i < ntests; ++i) {
- tests[i].val = &values[i];
- asprintf (&tests[i].name, "bit_string %d", i);
- if (tests[i].name == NULL)
- errx(1, "malloc");
- }
-
- ret = generic_test (tests, ntests, sizeof(heim_bit_string),
- (generic_encode)der_put_bit_string,
- (generic_length)der_length_bit_string,
- (generic_decode)der_get_bit_string,
- (generic_free)der_free_bit_string,
- test_cmp_bit_string);
- for (i = 0; i < ntests; ++i)
- free(tests[i].name);
- return ret;
-}
-
-static int
-test_cmp_heim_integer (void *a, void *b)
-{
- return der_heim_integer_cmp((heim_integer *)a, (heim_integer *)b);
-}
-
-static int
-test_heim_integer (void)
-{
- struct test_case tests[] = {
- {NULL, 2, "\xfe\x01"},
- {NULL, 2, "\xef\x01"},
- {NULL, 3, "\xff\x00\xff"},
- {NULL, 3, "\xff\x01\x00"},
- {NULL, 1, "\x00"},
- {NULL, 1, "\x01"},
- {NULL, 2, "\x00\x80"}
- };
-
- heim_integer values[] = {
- { 2, "\x01\xff", 1 },
- { 2, "\x10\xff", 1 },
- { 2, "\xff\x01", 1 },
- { 2, "\xff\x00", 1 },
- { 0, "", 0 },
- { 1, "\x01", 0 },
- { 1, "\x80", 0 }
- };
- int i, ret;
- int ntests = sizeof(tests) / sizeof(tests[0]);
- size_t size;
- heim_integer i2;
-
- for (i = 0; i < ntests; ++i) {
- tests[i].val = &values[i];
- asprintf (&tests[i].name, "heim_integer %d", i);
- if (tests[i].name == NULL)
- errx(1, "malloc");
- }
-
- ret = generic_test (tests, ntests, sizeof(heim_integer),
- (generic_encode)der_put_heim_integer,
- (generic_length)der_length_heim_integer,
- (generic_decode)der_get_heim_integer,
- (generic_free)der_free_heim_integer,
- test_cmp_heim_integer);
- for (i = 0; i < ntests; ++i)
- free (tests[i].name);
- if (ret)
- return ret;
-
- /* test zero length integer (BER format) */
- ret = der_get_heim_integer(NULL, 0, &i2, &size);
- if (ret)
- errx(1, "der_get_heim_integer");
- if (i2.length != 0)
- errx(1, "der_get_heim_integer wrong length");
- der_free_heim_integer(&i2);
-
- return 0;
-}
-
-static int
-test_cmp_boolean (void *a, void *b)
-{
- return !!*(int *)a != !!*(int *)b;
-}
-
-static int
-test_boolean (void)
-{
- struct test_case tests[] = {
- {NULL, 1, "\xff"},
- {NULL, 1, "\x00"}
- };
-
- int values[] = { 1, 0 };
- int i, ret;
- int ntests = sizeof(tests) / sizeof(tests[0]);
- size_t size;
- heim_integer i2;
-
- for (i = 0; i < ntests; ++i) {
- tests[i].val = &values[i];
- asprintf (&tests[i].name, "heim_boolean %d", i);
- if (tests[i].name == NULL)
- errx(1, "malloc");
- }
-
- ret = generic_test (tests, ntests, sizeof(int),
- (generic_encode)der_put_boolean,
- (generic_length)der_length_boolean,
- (generic_decode)der_get_boolean,
- (generic_free)NULL,
- test_cmp_boolean);
- for (i = 0; i < ntests; ++i)
- free (tests[i].name);
- if (ret)
- return ret;
-
- /* test zero length integer (BER format) */
- ret = der_get_heim_integer(NULL, 0, &i2, &size);
- if (ret)
- errx(1, "der_get_heim_integer");
- if (i2.length != 0)
- errx(1, "der_get_heim_integer wrong length");
- der_free_heim_integer(&i2);
-
- return 0;
-}
-
-static int
-check_fail_unsigned(void)
-{
- struct test_case tests[] = {
- {NULL, sizeof(unsigned) + 1,
- "\x01\x01\x01\x01\x01\x01\x01\x01\x01", "data overrun" }
- };
- int ntests = sizeof(tests) / sizeof(*tests);
-
- return generic_decode_fail(tests, ntests, sizeof(unsigned),
- (generic_decode)der_get_unsigned);
-}
-
-static int
-check_fail_integer(void)
-{
- struct test_case tests[] = {
- {NULL, sizeof(int) + 1,
- "\x01\x01\x01\x01\x01\x01\x01\x01\x01", "data overrun" }
- };
- int ntests = sizeof(tests) / sizeof(*tests);
-
- return generic_decode_fail(tests, ntests, sizeof(int),
- (generic_decode)der_get_integer);
-}
-
-static int
-check_fail_length(void)
-{
- struct test_case tests[] = {
- {NULL, 0, "", "empty input data"},
- {NULL, 1, "\x82", "internal length overrun" }
- };
- int ntests = sizeof(tests) / sizeof(*tests);
-
- return generic_decode_fail(tests, ntests, sizeof(size_t),
- (generic_decode)der_get_length);
-}
-
-static int
-check_fail_boolean(void)
-{
- struct test_case tests[] = {
- {NULL, 0, "", "empty input data"}
- };
- int ntests = sizeof(tests) / sizeof(*tests);
-
- return generic_decode_fail(tests, ntests, sizeof(int),
- (generic_decode)der_get_boolean);
-}
-
-static int
-check_fail_general_string(void)
-{
- struct test_case tests[] = {
- { NULL, 3, "A\x00i", "NUL char in string"}
- };
- int ntests = sizeof(tests) / sizeof(*tests);
-
- return generic_decode_fail(tests, ntests, sizeof(heim_general_string),
- (generic_decode)der_get_general_string);
-}
-
-static int
-check_fail_bmp_string(void)
-{
- struct test_case tests[] = {
- {NULL, 1, "\x00", "odd (1) length bmpstring"},
- {NULL, 3, "\x00\x00\x00", "odd (3) length bmpstring"}
- };
- int ntests = sizeof(tests) / sizeof(*tests);
-
- return generic_decode_fail(tests, ntests, sizeof(heim_bmp_string),
- (generic_decode)der_get_bmp_string);
-}
-
-static int
-check_fail_universal_string(void)
-{
- struct test_case tests[] = {
- {NULL, 1, "\x00", "x & 3 == 1 universal string"},
- {NULL, 2, "\x00\x00", "x & 3 == 2 universal string"},
- {NULL, 3, "\x00\x00\x00", "x & 3 == 3 universal string"},
- {NULL, 5, "\x00\x00\x00\x00\x00", "x & 3 == 1 universal string"},
- {NULL, 6, "\x00\x00\x00\x00\x00\x00", "x & 3 == 2 universal string"},
- {NULL, 7, "\x00\x00\x00\x00\x00\x00\x00", "x & 3 == 3 universal string"}
- };
- int ntests = sizeof(tests) / sizeof(*tests);
-
- return generic_decode_fail(tests, ntests, sizeof(heim_universal_string),
- (generic_decode)der_get_universal_string);
-}
-
-static int
-check_fail_heim_integer(void)
-{
-#if 0
- struct test_case tests[] = {
- };
- int ntests = sizeof(tests) / sizeof(*tests);
-
- return generic_decode_fail(tests, ntests, sizeof(heim_integer),
- (generic_decode)der_get_heim_integer);
-#else
- return 0;
-#endif
-}
-
-static int
-check_fail_generalized_time(void)
-{
- struct test_case tests[] = {
- {NULL, 1, "\x00", "no time"}
- };
- int ntests = sizeof(tests) / sizeof(*tests);
-
- return generic_decode_fail(tests, ntests, sizeof(time_t),
- (generic_decode)der_get_generalized_time);
-}
-
-static int
-check_fail_oid(void)
-{
- struct test_case tests[] = {
- {NULL, 0, "", "empty input data"},
- {NULL, 2, "\x00\x80", "last byte continuation" },
- {NULL, 11, "\x00\x81\x80\x80\x80\x80\x80\x80\x80\x80\x00",
- "oid element overflow" }
- };
- int ntests = sizeof(tests) / sizeof(*tests);
-
- return generic_decode_fail(tests, ntests, sizeof(heim_oid),
- (generic_decode)der_get_oid);
-}
-
-static int
-check_fail_bitstring(void)
-{
- struct test_case tests[] = {
- {NULL, 0, "", "empty input data"},
- {NULL, 1, "\x08", "larger then 8 bits trailer"},
- {NULL, 1, "\x01", "to few bytes for bits"},
- {NULL, -2, "\x00", "length overrun"},
- {NULL, -1, "", "length to short"}
- };
- int ntests = sizeof(tests) / sizeof(*tests);
-
- return generic_decode_fail(tests, ntests, sizeof(heim_bit_string),
- (generic_decode)der_get_bit_string);
-}
-
-static int
-check_heim_integer_same(const char *p, const char *norm_p, heim_integer *i)
-{
- heim_integer i2;
- char *str;
- int ret;
-
- ret = der_print_hex_heim_integer(i, &str);
- if (ret)
- errx(1, "der_print_hex_heim_integer: %d", ret);
-
- if (strcmp(str, norm_p) != 0)
- errx(1, "der_print_hex_heim_integer: %s != %s", str, p);
-
- ret = der_parse_hex_heim_integer(str, &i2);
- if (ret)
- errx(1, "der_parse_hex_heim_integer: %d", ret);
-
- if (der_heim_integer_cmp(i, &i2) != 0)
- errx(1, "der_heim_integer_cmp: p %s", p);
-
- der_free_heim_integer(&i2);
- free(str);
-
- ret = der_parse_hex_heim_integer(p, &i2);
- if (ret)
- errx(1, "der_parse_hex_heim_integer: %d", ret);
-
- if (der_heim_integer_cmp(i, &i2) != 0)
- errx(1, "der_heim_integer_cmp: norm");
-
- der_free_heim_integer(&i2);
-
- return 0;
-}
-
-static int
-test_heim_int_format(void)
-{
- heim_integer i = { 1, "\x10", 0 };
- heim_integer i2 = { 1, "\x10", 1 };
- heim_integer i3 = { 1, "\01", 0 };
- char *p =
- "FFFFFFFF" "FFFFFFFF" "C90FDAA2" "2168C234" "C4C6628B" "80DC1CD1"
- "29024E08" "8A67CC74" "020BBEA6" "3B139B22" "514A0879" "8E3404DD"
- "EF9519B3" "CD3A431B" "302B0A6D" "F25F1437" "4FE1356D" "6D51C245"
- "E485B576" "625E7EC6" "F44C42E9" "A637ED6B" "0BFF5CB6" "F406B7ED"
- "EE386BFB" "5A899FA5" "AE9F2411" "7C4B1FE6" "49286651" "ECE65381"
- "FFFFFFFF" "FFFFFFFF";
- heim_integer bni = {
- 128,
- "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xC9\x0F\xDA\xA2"
- "\x21\x68\xC2\x34\xC4\xC6\x62\x8B\x80\xDC\x1C\xD1"
- "\x29\x02\x4E\x08\x8A\x67\xCC\x74\x02\x0B\xBE\xA6"
- "\x3B\x13\x9B\x22\x51\x4A\x08\x79\x8E\x34\x04\xDD"
- "\xEF\x95\x19\xB3\xCD\x3A\x43\x1B\x30\x2B\x0A\x6D"
- "\xF2\x5F\x14\x37\x4F\xE1\x35\x6D\x6D\x51\xC2\x45"
- "\xE4\x85\xB5\x76\x62\x5E\x7E\xC6\xF4\x4C\x42\xE9"
- "\xA6\x37\xED\x6B\x0B\xFF\x5C\xB6\xF4\x06\xB7\xED"
- "\xEE\x38\x6B\xFB\x5A\x89\x9F\xA5\xAE\x9F\x24\x11"
- "\x7C\x4B\x1F\xE6\x49\x28\x66\x51\xEC\xE6\x53\x81"
- "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF",
- 0
- };
- heim_integer f;
- int ret = 0;
-
- ret += check_heim_integer_same(p, p, &bni);
- ret += check_heim_integer_same("10", "10", &i);
- ret += check_heim_integer_same("00000010", "10", &i);
- ret += check_heim_integer_same("-10", "-10", &i2);
- ret += check_heim_integer_same("-00000010", "-10", &i2);
- ret += check_heim_integer_same("01", "01", &i3);
- ret += check_heim_integer_same("1", "01", &i3);
-
- {
- int r;
- r = der_parse_hex_heim_integer("-", &f);
- if (r == 0) {
- der_free_heim_integer(&f);
- ret++;
- }
- /* used to cause UMR */
- r = der_parse_hex_heim_integer("00", &f);
- if (r == 0)
- der_free_heim_integer(&f);
- else
- ret++;
- }
-
- return ret;
-}
-
-static int
-test_heim_oid_format_same(const char *str, const heim_oid *oid)
-{
- int ret;
- char *p;
- heim_oid o2;
-
- ret = der_print_heim_oid(oid, ' ', &p);
- if (ret) {
- printf("fail to print oid: %s\n", str);
- return 1;
- }
- ret = strcmp(p, str);
- if (ret) {
- printf("oid %s != formated oid %s\n", str, p);
- free(p);
- return ret;
- }
-
- ret = der_parse_heim_oid(p, " ", &o2);
- if (ret) {
- printf("failed to parse %s\n", p);
- free(p);
- return ret;
- }
- free(p);
- ret = der_heim_oid_cmp(&o2, oid);
- der_free_oid(&o2);
-
- return ret;
-}
-
-static unsigned sha1_oid_tree[] = { 1, 3, 14, 3, 2, 26 };
-
-static int
-test_heim_oid_format(void)
-{
- heim_oid sha1 = { 6, sha1_oid_tree };
- int ret = 0;
-
- ret += test_heim_oid_format_same("1 3 14 3 2 26", &sha1);
-
- return ret;
-}
-
-static int
-check_trailing_nul(void)
-{
- int i, ret;
- struct {
- int fail;
- const unsigned char *p;
- size_t len;
- const char *s;
- size_t size;
- } foo[] = {
- { 1, (const unsigned char *)"foo\x00o", 5, NULL, 0 },
- { 1, (const unsigned char *)"\x00o", 2, NULL, 0 },
- { 0, (const unsigned char *)"\x00\x00\x00\x00\x00", 5, "", 5 },
- { 0, (const unsigned char *)"\x00", 1, "", 1 },
- { 0, (const unsigned char *)"", 0, "", 0 },
- { 0, (const unsigned char *)"foo\x00\x00", 5, "foo", 5 },
- { 0, (const unsigned char *)"foo\0", 4, "foo", 4 },
- { 0, (const unsigned char *)"foo", 3, "foo", 3 }
- };
-
- for (i = 0; i < sizeof(foo)/sizeof(foo[0]); i++) {
- char *s;
- size_t size;
- ret = der_get_general_string(foo[i].p, foo[i].len, &s, &size);
- if (foo[i].fail) {
- if (ret == 0)
- errx(1, "check %d NULL didn't fail", i);
- continue;
- }
- if (ret)
- errx(1, "NULL check %d der_get_general_string failed", i);
- if (foo[i].size != size)
- errx(1, "NUL check i = %d size failed", i);
- if (strcmp(foo[i].s, s) != 0)
- errx(1, "NUL check i = %d content failed", i);
- free(s);
- }
- return 0;
-}
-
-static int
-test_misc_cmp(void)
-{
- int ret;
-
- /* diffrent lengths are diffrent */
- {
- const heim_octet_string os1 = { 1, "a" } , os2 = { 0, NULL };
- ret = der_heim_octet_string_cmp(&os1, &os2);
- if (ret == 0)
- return 1;
- }
- /* diffrent data are diffrent */
- {
- const heim_octet_string os1 = { 1, "a" } , os2 = { 1, "b" };
- ret = der_heim_octet_string_cmp(&os1, &os2);
- if (ret == 0)
- return 1;
- }
- /* diffrent lengths are diffrent */
- {
- const heim_bit_string bs1 = { 8, "a" } , bs2 = { 7, "a" };
- ret = der_heim_bit_string_cmp(&bs1, &bs2);
- if (ret == 0)
- return 1;
- }
- /* diffrent data are diffrent */
- {
- const heim_bit_string bs1 = { 7, "\x0f" } , bs2 = { 7, "\x02" };
- ret = der_heim_bit_string_cmp(&bs1, &bs2);
- if (ret == 0)
- return 1;
- }
- /* diffrent lengths are diffrent */
- {
- uint16_t data = 1;
- heim_bmp_string bs1 = { 1, NULL } , bs2 = { 0, NULL };
- bs1.data = &data;
- ret = der_heim_bmp_string_cmp(&bs1, &bs2);
- if (ret == 0)
- return 1;
- }
- /* diffrent lengths are diffrent */
- {
- uint32_t data;
- heim_universal_string us1 = { 1, NULL } , us2 = { 0, NULL };
- us1.data = &data;
- ret = der_heim_universal_string_cmp(&us1, &us2);
- if (ret == 0)
- return 1;
- }
- /* same */
- {
- uint32_t data = (uint32_t)'a';
- heim_universal_string us1 = { 1, NULL } , us2 = { 1, NULL };
- us1.data = &data;
- us2.data = &data;
- ret = der_heim_universal_string_cmp(&us1, &us2);
- if (ret != 0)
- return 1;
- }
-
- return 0;
-}
-
-static int
-corner_generalized_time(void)
-{
- const char *str = "760520140000Z";
- size_t size;
- time_t t;
- int ret;
-
- ret = der_get_generalized_time((const unsigned char*)str, strlen(str),
- &t, &size);
- if (ret)
- return 1;
- return 0;
-}
-
-static int
-corner_tag(void)
-{
- struct {
- int ok;
- const char *ptr;
- size_t len;
- } tests[] = {
- { 1, "\x00", 1 },
- { 0, "\xff", 1 },
- { 0, "\xff\xff\xff\xff\xff\xff\xff\xff", 8 }
- };
- int i, ret;
- Der_class cl;
- Der_type ty;
- unsigned int tag;
- size_t size;
-
- for (i = 0; i < sizeof(tests)/sizeof(tests[0]); i++) {
- ret = der_get_tag((const unsigned char*)tests[i].ptr,
- tests[i].len, &cl, &ty, &tag, &size);
- if (ret) {
- if (tests[i].ok)
- errx(1, "failed while shouldn't");
- } else {
- if (!tests[i].ok)
- errx(1, "passed while shouldn't");
- }
- }
- return 0;
-}
-
-int
-main(int argc, char **argv)
-{
- int ret = 0;
-
- ret += test_integer ();
- ret += test_integer_more();
- ret += test_unsigned ();
- ret += test_octet_string ();
- ret += test_bmp_string ();
- ret += test_universal_string ();
- ret += test_general_string ();
- ret += test_generalized_time ();
- ret += test_oid ();
- ret += test_bit_string();
- ret += test_heim_integer();
- ret += test_boolean();
-
- ret += check_fail_unsigned();
- ret += check_fail_integer();
- ret += check_fail_length();
- ret += check_fail_boolean();
- ret += check_fail_general_string();
- ret += check_fail_bmp_string();
- ret += check_fail_universal_string();
- ret += check_fail_heim_integer();
- ret += check_fail_generalized_time();
- ret += check_fail_oid();
- ret += check_fail_bitstring();
- ret += test_heim_int_format();
- ret += test_heim_oid_format();
- ret += check_trailing_nul();
- ret += test_misc_cmp();
- ret += corner_generalized_time();
- ret += corner_tag();
-
- return ret;
-}
diff --git a/crypto/heimdal/lib/asn1/check-gen.c b/crypto/heimdal/lib/asn1/check-gen.c
deleted file mode 100644
index a18a21d..0000000
--- a/crypto/heimdal/lib/asn1/check-gen.c
+++ /dev/null
@@ -1,955 +0,0 @@
-/*
- * Copyright (c) 1999 - 2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include <string.h>
-#include <err.h>
-#include <roken.h>
-
-#include <asn1-common.h>
-#include <asn1_err.h>
-#include <der.h>
-#include <krb5_asn1.h>
-#include <heim_asn1.h>
-#include <rfc2459_asn1.h>
-#include <test_asn1.h>
-
-#include "check-common.h"
-
-RCSID("$Id: check-gen.c 21539 2007-07-14 16:12:04Z lha $");
-
-static char *lha_principal[] = { "lha" };
-static char *lharoot_princ[] = { "lha", "root" };
-static char *datan_princ[] = { "host", "nutcracker.e.kth.se" };
-static char *nada_tgt_principal[] = { "krbtgt", "NADA.KTH.SE" };
-
-
-#define IF_OPT_COMPARE(ac,bc,e) \
- if (((ac)->e == NULL && (bc)->e != NULL) || (((ac)->e != NULL && (bc)->e == NULL))) return 1; if ((ab)->e)
-#define COMPARE_OPT_STRING(ac,bc,e) \
- do { if (strcmp(*(ac)->e, *(bc)->e) != 0) return 1; } while(0)
-#define COMPARE_OPT_OCTECT_STRING(ac,bc,e) \
- do { if ((ac)->e->length != (bc)->e->length || memcmp((ac)->e->data, (bc)->e->data, (ac)->e->length) != 0) return 1; } while(0)
-#define COMPARE_STRING(ac,bc,e) \
- do { if (strcmp((ac)->e, (bc)->e) != 0) return 1; } while(0)
-#define COMPARE_INTEGER(ac,bc,e) \
- do { if ((ac)->e != (bc)->e) return 1; } while(0)
-#define COMPARE_MEM(ac,bc,e,len) \
- do { if (memcmp((ac)->e, (bc)->e,len) != 0) return 1; } while(0)
-
-static int
-cmp_principal (void *a, void *b)
-{
- Principal *pa = a;
- Principal *pb = b;
- int i;
-
- COMPARE_STRING(pa,pb,realm);
- COMPARE_INTEGER(pa,pb,name.name_type);
- COMPARE_INTEGER(pa,pb,name.name_string.len);
-
- for (i = 0; i < pa->name.name_string.len; i++)
- COMPARE_STRING(pa,pb,name.name_string.val[i]);
-
- return 0;
-}
-
-static int
-test_principal (void)
-{
-
- struct test_case tests[] = {
- { NULL, 29,
- "\x30\x1b\xa0\x10\x30\x0e\xa0\x03\x02\x01\x01\xa1\x07\x30\x05\x1b"
- "\x03\x6c\x68\x61\xa1\x07\x1b\x05\x53\x55\x2e\x53\x45"
- },
- { NULL, 35,
- "\x30\x21\xa0\x16\x30\x14\xa0\x03\x02\x01\x01\xa1\x0d\x30\x0b\x1b"
- "\x03\x6c\x68\x61\x1b\x04\x72\x6f\x6f\x74\xa1\x07\x1b\x05\x53\x55"
- "\x2e\x53\x45"
- },
- { NULL, 54,
- "\x30\x34\xa0\x26\x30\x24\xa0\x03\x02\x01\x03\xa1\x1d\x30\x1b\x1b"
- "\x04\x68\x6f\x73\x74\x1b\x13\x6e\x75\x74\x63\x72\x61\x63\x6b\x65"
- "\x72\x2e\x65\x2e\x6b\x74\x68\x2e\x73\x65\xa1\x0a\x1b\x08\x45\x2e"
- "\x4b\x54\x48\x2e\x53\x45"
- }
- };
-
-
- Principal values[] = {
- { { KRB5_NT_PRINCIPAL, { 1, lha_principal } }, "SU.SE" },
- { { KRB5_NT_PRINCIPAL, { 2, lharoot_princ } }, "SU.SE" },
- { { KRB5_NT_SRV_HST, { 2, datan_princ } }, "E.KTH.SE" }
- };
- int i, ret;
- int ntests = sizeof(tests) / sizeof(*tests);
-
- for (i = 0; i < ntests; ++i) {
- tests[i].val = &values[i];
- asprintf (&tests[i].name, "Principal %d", i);
- }
-
- ret = generic_test (tests, ntests, sizeof(Principal),
- (generic_encode)encode_Principal,
- (generic_length)length_Principal,
- (generic_decode)decode_Principal,
- (generic_free)free_Principal,
- cmp_principal);
- for (i = 0; i < ntests; ++i)
- free (tests[i].name);
-
- return ret;
-}
-
-static int
-cmp_authenticator (void *a, void *b)
-{
- Authenticator *aa = a;
- Authenticator *ab = b;
- int i;
-
- COMPARE_INTEGER(aa,ab,authenticator_vno);
- COMPARE_STRING(aa,ab,crealm);
-
- COMPARE_INTEGER(aa,ab,cname.name_type);
- COMPARE_INTEGER(aa,ab,cname.name_string.len);
-
- for (i = 0; i < aa->cname.name_string.len; i++)
- COMPARE_STRING(aa,ab,cname.name_string.val[i]);
-
- return 0;
-}
-
-static int
-test_authenticator (void)
-{
- struct test_case tests[] = {
- { NULL, 63,
- "\x62\x3d\x30\x3b\xa0\x03\x02\x01\x05\xa1\x0a\x1b\x08"
- "\x45\x2e\x4b\x54\x48\x2e\x53\x45\xa2\x10\x30\x0e\xa0"
- "\x03\x02\x01\x01\xa1\x07\x30\x05\x1b\x03\x6c\x68\x61"
- "\xa4\x03\x02\x01\x0a\xa5\x11\x18\x0f\x31\x39\x37\x30"
- "\x30\x31\x30\x31\x30\x30\x30\x31\x33\x39\x5a"
- },
- { NULL, 67,
- "\x62\x41\x30\x3f\xa0\x03\x02\x01\x05\xa1\x07\x1b\x05"
- "\x53\x55\x2e\x53\x45\xa2\x16\x30\x14\xa0\x03\x02\x01"
- "\x01\xa1\x0d\x30\x0b\x1b\x03\x6c\x68\x61\x1b\x04\x72"
- "\x6f\x6f\x74\xa4\x04\x02\x02\x01\x24\xa5\x11\x18\x0f"
- "\x31\x39\x37\x30\x30\x31\x30\x31\x30\x30\x31\x36\x33"
- "\x39\x5a"
- }
- };
-
- Authenticator values[] = {
- { 5, "E.KTH.SE", { KRB5_NT_PRINCIPAL, { 1, lha_principal } },
- NULL, 10, 99, NULL, NULL, NULL },
- { 5, "SU.SE", { KRB5_NT_PRINCIPAL, { 2, lharoot_princ } },
- NULL, 292, 999, NULL, NULL, NULL }
- };
- int i, ret;
- int ntests = sizeof(tests) / sizeof(*tests);
-
- for (i = 0; i < ntests; ++i) {
- tests[i].val = &values[i];
- asprintf (&tests[i].name, "Authenticator %d", i);
- }
-
- ret = generic_test (tests, ntests, sizeof(Authenticator),
- (generic_encode)encode_Authenticator,
- (generic_length)length_Authenticator,
- (generic_decode)decode_Authenticator,
- (generic_free)free_Authenticator,
- cmp_authenticator);
- for (i = 0; i < ntests; ++i)
- free(tests[i].name);
-
- return ret;
-}
-
-static int
-cmp_KRB_ERROR (void *a, void *b)
-{
- KRB_ERROR *aa = a;
- KRB_ERROR *ab = b;
- int i;
-
- COMPARE_INTEGER(aa,ab,pvno);
- COMPARE_INTEGER(aa,ab,msg_type);
-
- IF_OPT_COMPARE(aa,ab,ctime) {
- COMPARE_INTEGER(aa,ab,ctime);
- }
- IF_OPT_COMPARE(aa,ab,cusec) {
- COMPARE_INTEGER(aa,ab,cusec);
- }
- COMPARE_INTEGER(aa,ab,stime);
- COMPARE_INTEGER(aa,ab,susec);
- COMPARE_INTEGER(aa,ab,error_code);
-
- IF_OPT_COMPARE(aa,ab,crealm) {
- COMPARE_OPT_STRING(aa,ab,crealm);
- }
-#if 0
- IF_OPT_COMPARE(aa,ab,cname) {
- COMPARE_OPT_STRING(aa,ab,cname);
- }
-#endif
- COMPARE_STRING(aa,ab,realm);
-
- COMPARE_INTEGER(aa,ab,sname.name_string.len);
- for (i = 0; i < aa->sname.name_string.len; i++)
- COMPARE_STRING(aa,ab,sname.name_string.val[i]);
-
- IF_OPT_COMPARE(aa,ab,e_text) {
- COMPARE_OPT_STRING(aa,ab,e_text);
- }
- IF_OPT_COMPARE(aa,ab,e_data) {
- /* COMPARE_OPT_OCTECT_STRING(aa,ab,e_data); */
- }
-
- return 0;
-}
-
-static int
-test_krb_error (void)
-{
- struct test_case tests[] = {
- { NULL, 127,
- "\x7e\x7d\x30\x7b\xa0\x03\x02\x01\x05\xa1\x03\x02\x01\x1e\xa4\x11"
- "\x18\x0f\x32\x30\x30\x33\x31\x31\x32\x34\x30\x30\x31\x31\x31\x39"
- "\x5a\xa5\x05\x02\x03\x04\xed\xa5\xa6\x03\x02\x01\x1f\xa7\x0d\x1b"
- "\x0b\x4e\x41\x44\x41\x2e\x4b\x54\x48\x2e\x53\x45\xa8\x10\x30\x0e"
- "\xa0\x03\x02\x01\x01\xa1\x07\x30\x05\x1b\x03\x6c\x68\x61\xa9\x0d"
- "\x1b\x0b\x4e\x41\x44\x41\x2e\x4b\x54\x48\x2e\x53\x45\xaa\x20\x30"
- "\x1e\xa0\x03\x02\x01\x01\xa1\x17\x30\x15\x1b\x06\x6b\x72\x62\x74"
- "\x67\x74\x1b\x0b\x4e\x41\x44\x41\x2e\x4b\x54\x48\x2e\x53\x45",
- "KRB-ERROR Test 1"
- }
- };
- int ntests = sizeof(tests) / sizeof(*tests);
- KRB_ERROR e1;
- PrincipalName lhaprincipalname = { 1, { 1, lha_principal } };
- PrincipalName tgtprincipalname = { 1, { 2, nada_tgt_principal } };
- char *realm = "NADA.KTH.SE";
-
- e1.pvno = 5;
- e1.msg_type = 30;
- e1.ctime = NULL;
- e1.cusec = NULL;
- e1.stime = 1069632679;
- e1.susec = 322981;
- e1.error_code = 31;
- e1.crealm = &realm;
- e1.cname = &lhaprincipalname;
- e1.realm = "NADA.KTH.SE";
- e1.sname = tgtprincipalname;
- e1.e_text = NULL;
- e1.e_data = NULL;
-
- tests[0].val = &e1;
-
- return generic_test (tests, ntests, sizeof(KRB_ERROR),
- (generic_encode)encode_KRB_ERROR,
- (generic_length)length_KRB_ERROR,
- (generic_decode)decode_KRB_ERROR,
- (generic_free)free_KRB_ERROR,
- cmp_KRB_ERROR);
-}
-
-static int
-cmp_Name (void *a, void *b)
-{
- Name *aa = a;
- Name *ab = b;
-
- COMPARE_INTEGER(aa,ab,element);
-
- return 0;
-}
-
-static int
-test_Name (void)
-{
- struct test_case tests[] = {
- { NULL, 35,
- "\x30\x21\x31\x1f\x30\x0b\x06\x03\x55\x04\x03\x13\x04\x4c\x6f\x76"
- "\x65\x30\x10\x06\x03\x55\x04\x07\x13\x09\x53\x54\x4f\x43\x4b\x48"
- "\x4f\x4c\x4d",
- "Name CN=Love+L=STOCKHOLM"
- },
- { NULL, 35,
- "\x30\x21\x31\x1f\x30\x0b\x06\x03\x55\x04\x03\x13\x04\x4c\x6f\x76"
- "\x65\x30\x10\x06\x03\x55\x04\x07\x13\x09\x53\x54\x4f\x43\x4b\x48"
- "\x4f\x4c\x4d",
- "Name L=STOCKHOLM+CN=Love"
- }
- };
-
- int ntests = sizeof(tests) / sizeof(*tests);
- Name n1, n2;
- RelativeDistinguishedName rdn1[1];
- RelativeDistinguishedName rdn2[1];
- AttributeTypeAndValue atv1[2];
- AttributeTypeAndValue atv2[2];
- unsigned cmp_CN[] = { 2, 5, 4, 3 };
- unsigned cmp_L[] = { 2, 5, 4, 7 };
-
- /* n1 */
- n1.element = choice_Name_rdnSequence;
- n1.u.rdnSequence.val = rdn1;
- n1.u.rdnSequence.len = sizeof(rdn1)/sizeof(rdn1[0]);
- rdn1[0].val = atv1;
- rdn1[0].len = sizeof(atv1)/sizeof(atv1[0]);
-
- atv1[0].type.length = sizeof(cmp_CN)/sizeof(cmp_CN[0]);
- atv1[0].type.components = cmp_CN;
- atv1[0].value.element = choice_DirectoryString_printableString;
- atv1[0].value.u.printableString = "Love";
-
- atv1[1].type.length = sizeof(cmp_L)/sizeof(cmp_L[0]);
- atv1[1].type.components = cmp_L;
- atv1[1].value.element = choice_DirectoryString_printableString;
- atv1[1].value.u.printableString = "STOCKHOLM";
-
- /* n2 */
- n2.element = choice_Name_rdnSequence;
- n2.u.rdnSequence.val = rdn2;
- n2.u.rdnSequence.len = sizeof(rdn2)/sizeof(rdn2[0]);
- rdn2[0].val = atv2;
- rdn2[0].len = sizeof(atv2)/sizeof(atv2[0]);
-
- atv2[0].type.length = sizeof(cmp_L)/sizeof(cmp_L[0]);
- atv2[0].type.components = cmp_L;
- atv2[0].value.element = choice_DirectoryString_printableString;
- atv2[0].value.u.printableString = "STOCKHOLM";
-
- atv2[1].type.length = sizeof(cmp_CN)/sizeof(cmp_CN[0]);
- atv2[1].type.components = cmp_CN;
- atv2[1].value.element = choice_DirectoryString_printableString;
- atv2[1].value.u.printableString = "Love";
-
- /* */
- tests[0].val = &n1;
- tests[1].val = &n2;
-
- return generic_test (tests, ntests, sizeof(Name),
- (generic_encode)encode_Name,
- (generic_length)length_Name,
- (generic_decode)decode_Name,
- (generic_free)free_Name,
- cmp_Name);
-}
-
-static int
-cmp_KeyUsage (void *a, void *b)
-{
- KeyUsage *aa = a;
- KeyUsage *ab = b;
-
- return KeyUsage2int(*aa) != KeyUsage2int(*ab);
-}
-
-static int
-test_bit_string (void)
-{
- struct test_case tests[] = {
- { NULL, 4,
- "\x03\x02\x07\x80",
- "bitstring 1"
- },
- { NULL, 4,
- "\x03\x02\x05\xa0",
- "bitstring 2"
- },
- { NULL, 5,
- "\x03\x03\x07\x00\x80",
- "bitstring 3"
- },
- { NULL, 3,
- "\x03\x01\x00",
- "bitstring 4"
- }
- };
-
- int ntests = sizeof(tests) / sizeof(*tests);
- KeyUsage ku1, ku2, ku3, ku4;
-
- memset(&ku1, 0, sizeof(ku1));
- ku1.digitalSignature = 1;
- tests[0].val = &ku1;
-
- memset(&ku2, 0, sizeof(ku2));
- ku2.digitalSignature = 1;
- ku2.keyEncipherment = 1;
- tests[1].val = &ku2;
-
- memset(&ku3, 0, sizeof(ku3));
- ku3.decipherOnly = 1;
- tests[2].val = &ku3;
-
- memset(&ku4, 0, sizeof(ku4));
- tests[3].val = &ku4;
-
-
- return generic_test (tests, ntests, sizeof(KeyUsage),
- (generic_encode)encode_KeyUsage,
- (generic_length)length_KeyUsage,
- (generic_decode)decode_KeyUsage,
- (generic_free)free_KeyUsage,
- cmp_KeyUsage);
-}
-
-static int
-cmp_TESTLargeTag (void *a, void *b)
-{
- TESTLargeTag *aa = a;
- TESTLargeTag *ab = b;
-
- COMPARE_INTEGER(aa,ab,foo);
- return 0;
-}
-
-static int
-test_large_tag (void)
-{
- struct test_case tests[] = {
- { NULL, 8, "\x30\x06\xbf\x7f\x03\x02\x01\x01", "large tag 1" }
- };
-
- int ntests = sizeof(tests) / sizeof(*tests);
- TESTLargeTag lt1;
-
- memset(&lt1, 0, sizeof(lt1));
- lt1.foo = 1;
-
- tests[0].val = &lt1;
-
- return generic_test (tests, ntests, sizeof(TESTLargeTag),
- (generic_encode)encode_TESTLargeTag,
- (generic_length)length_TESTLargeTag,
- (generic_decode)decode_TESTLargeTag,
- (generic_free)free_TESTLargeTag,
- cmp_TESTLargeTag);
-}
-
-struct test_data {
- int ok;
- size_t len;
- size_t expected_len;
- void *data;
-};
-
-static int
-check_tag_length(void)
-{
- struct test_data td[] = {
- { 1, 3, 3, "\x02\x01\x00"},
- { 1, 3, 3, "\x02\x01\x7f"},
- { 1, 4, 4, "\x02\x02\x00\x80"},
- { 1, 4, 4, "\x02\x02\x01\x00"},
- { 1, 4, 4, "\x02\x02\x02\x00"},
- { 0, 3, 0, "\x02\x02\x00"},
- { 0, 3, 0, "\x02\x7f\x7f"},
- { 0, 4, 0, "\x02\x03\x00\x80"},
- { 0, 4, 0, "\x02\x7f\x01\x00"},
- { 0, 5, 0, "\x02\xff\x7f\x02\x00"}
- };
- size_t sz;
- krb5uint32 values[] = {0, 127, 128, 256, 512,
- 0, 127, 128, 256, 512 };
- krb5uint32 u;
- int i, ret, failed = 0;
- void *buf;
-
- for (i = 0; i < sizeof(td)/sizeof(td[0]); i++) {
- struct map_page *page;
-
- buf = map_alloc(OVERRUN, td[i].data, td[i].len, &page);
-
- ret = decode_krb5uint32(buf, td[i].len, &u, &sz);
- if (ret) {
- if (td[i].ok) {
- printf("failed with tag len test %d\n", i);
- failed = 1;
- }
- } else {
- if (td[i].ok == 0) {
- printf("failed with success for tag len test %d\n", i);
- failed = 1;
- }
- if (td[i].expected_len != sz) {
- printf("wrong expected size for tag test %d\n", i);
- failed = 1;
- }
- if (values[i] != u) {
- printf("wrong value for tag test %d\n", i);
- failed = 1;
- }
- }
- map_free(page, "test", "decode");
- }
- return failed;
-}
-
-static int
-cmp_TESTChoice (void *a, void *b)
-{
- return 0;
-}
-
-static int
-test_choice (void)
-{
- struct test_case tests[] = {
- { NULL, 5, "\xa1\x03\x02\x01\x01", "large choice 1" },
- { NULL, 5, "\xa2\x03\x02\x01\x02", "large choice 2" }
- };
-
- int ret = 0, ntests = sizeof(tests) / sizeof(*tests);
- TESTChoice1 c1;
- TESTChoice1 c2_1;
- TESTChoice2 c2_2;
-
- memset(&c1, 0, sizeof(c1));
- c1.element = choice_TESTChoice1_i1;
- c1.u.i1 = 1;
- tests[0].val = &c1;
-
- memset(&c2_1, 0, sizeof(c2_1));
- c2_1.element = choice_TESTChoice1_i2;
- c2_1.u.i2 = 2;
- tests[1].val = &c2_1;
-
- ret += generic_test (tests, ntests, sizeof(TESTChoice1),
- (generic_encode)encode_TESTChoice1,
- (generic_length)length_TESTChoice1,
- (generic_decode)decode_TESTChoice1,
- (generic_free)free_TESTChoice1,
- cmp_TESTChoice);
-
- memset(&c2_2, 0, sizeof(c2_2));
- c2_2.element = choice_TESTChoice2_asn1_ellipsis;
- c2_2.u.asn1_ellipsis.data = "\xa2\x03\x02\x01\x02";
- c2_2.u.asn1_ellipsis.length = 5;
- tests[1].val = &c2_2;
-
- ret += generic_test (tests, ntests, sizeof(TESTChoice2),
- (generic_encode)encode_TESTChoice2,
- (generic_length)length_TESTChoice2,
- (generic_decode)decode_TESTChoice2,
- (generic_free)free_TESTChoice2,
- cmp_TESTChoice);
-
- return ret;
-}
-
-static int
-cmp_TESTImplicit (void *a, void *b)
-{
- TESTImplicit *aa = a;
- TESTImplicit *ab = b;
-
- COMPARE_INTEGER(aa,ab,ti1);
- COMPARE_INTEGER(aa,ab,ti2.foo);
- COMPARE_INTEGER(aa,ab,ti3);
- return 0;
-}
-
-/*
-UNIV CONS Sequence 14
- CONTEXT PRIM 0 1 00
- CONTEXT CONS 1 6
- CONTEXT CONS 127 3
- UNIV PRIM Integer 1 02
- CONTEXT PRIM 2 1 03
-*/
-
-static int
-test_implicit (void)
-{
- struct test_case tests[] = {
- { NULL, 16,
- "\x30\x0e\x80\x01\x00\xa1\x06\xbf"
- "\x7f\x03\x02\x01\x02\x82\x01\x03",
- "implicit 1" }
- };
-
- int ret = 0, ntests = sizeof(tests) / sizeof(*tests);
- TESTImplicit c0;
-
- memset(&c0, 0, sizeof(c0));
- c0.ti1 = 0;
- c0.ti2.foo = 2;
- c0.ti3 = 3;
- tests[0].val = &c0;
-
- ret += generic_test (tests, ntests, sizeof(TESTImplicit),
- (generic_encode)encode_TESTImplicit,
- (generic_length)length_TESTImplicit,
- (generic_decode)decode_TESTImplicit,
- (generic_free)free_TESTImplicit,
- cmp_TESTImplicit);
-
-#ifdef IMPLICIT_TAGGING_WORKS
- ret += generic_test (tests, ntests, sizeof(TESTImplicit2),
- (generic_encode)encode_TESTImplicit2,
- (generic_length)length_TESTImplicit2,
- (generic_decode)decode_TESTImplicit2,
- (generic_free)free_TESTImplicit2,
- cmp_TESTImplicit);
-
-#endif /* IMPLICIT_TAGGING_WORKS */
- return ret;
-}
-
-static int
-cmp_TESTAlloc (void *a, void *b)
-{
- TESTAlloc *aa = a;
- TESTAlloc *ab = b;
-
- IF_OPT_COMPARE(aa,ab,tagless) {
- COMPARE_INTEGER(aa,ab,tagless->ai);
- }
-
- COMPARE_INTEGER(aa,ab,three);
-
- IF_OPT_COMPARE(aa,ab,tagless2) {
- COMPARE_OPT_OCTECT_STRING(aa, ab, tagless2);
- }
-
- return 0;
-}
-
-/*
-UNIV CONS Sequence 12
- UNIV CONS Sequence 5
- CONTEXT CONS 0 3
- UNIV PRIM Integer 1 01
- CONTEXT CONS 1 3
- UNIV PRIM Integer 1 03
-
-UNIV CONS Sequence 5
- CONTEXT CONS 1 3
- UNIV PRIM Integer 1 03
-
-UNIV CONS Sequence 8
- CONTEXT CONS 1 3
- UNIV PRIM Integer 1 04
- UNIV PRIM Integer 1 05
-
-*/
-
-static int
-test_taglessalloc (void)
-{
- struct test_case tests[] = {
- { NULL, 14,
- "\x30\x0c\x30\x05\xa0\x03\x02\x01\x01\xa1\x03\x02\x01\x03",
- "alloc 1" },
- { NULL, 7,
- "\x30\x05\xa1\x03\x02\x01\x03",
- "alloc 2" },
- { NULL, 10,
- "\x30\x08\xa1\x03\x02\x01\x04\x02\x01\x05",
- "alloc 3" }
- };
-
- int ret = 0, ntests = sizeof(tests) / sizeof(*tests);
- TESTAlloc c1, c2, c3;
- heim_any any3;
-
- memset(&c1, 0, sizeof(c1));
- c1.tagless = ecalloc(1, sizeof(*c1.tagless));
- c1.tagless->ai = 1;
- c1.three = 3;
- tests[0].val = &c1;
-
- memset(&c2, 0, sizeof(c2));
- c2.tagless = NULL;
- c2.three = 3;
- tests[1].val = &c2;
-
- memset(&c3, 0, sizeof(c3));
- c3.tagless = NULL;
- c3.three = 4;
- c3.tagless2 = &any3;
- any3.data = "\x02\x01\x05";
- any3.length = 3;
- tests[2].val = &c3;
-
- ret += generic_test (tests, ntests, sizeof(TESTAlloc),
- (generic_encode)encode_TESTAlloc,
- (generic_length)length_TESTAlloc,
- (generic_decode)decode_TESTAlloc,
- (generic_free)free_TESTAlloc,
- cmp_TESTAlloc);
-
- free(c1.tagless);
-
- return ret;
-}
-
-
-static int
-check_fail_largetag(void)
-{
- struct test_case tests[] = {
- {NULL, 14, "\x30\x0c\xbf\x87\xff\xff\xff\xff\xff\x7f\x03\x02\x01\x01",
- "tag overflow"},
- {NULL, 0, "", "empty buffer"},
- {NULL, 7, "\x30\x05\xa1\x03\x02\x02\x01",
- "one too short" },
- {NULL, 7, "\x30\x04\xa1\x03\x02\x02\x01"
- "two too short" },
- {NULL, 7, "\x30\x03\xa1\x03\x02\x02\x01",
- "three too short" },
- {NULL, 7, "\x30\x02\xa1\x03\x02\x02\x01",
- "four too short" },
- {NULL, 7, "\x30\x01\xa1\x03\x02\x02\x01",
- "five too short" },
- {NULL, 7, "\x30\x00\xa1\x03\x02\x02\x01",
- "six too short" },
- {NULL, 7, "\x30\x05\xa1\x04\x02\x02\x01",
- "inner one too long" },
- {NULL, 7, "\x30\x00\xa1\x02\x02\x02\x01",
- "inner one too short" },
- {NULL, 8, "\x30\x05\xbf\x7f\x03\x02\x02\x01",
- "inner one too short"},
- {NULL, 8, "\x30\x06\xbf\x64\x03\x02\x01\x01",
- "wrong tag"},
- {NULL, 10, "\x30\x08\xbf\x9a\x9b\x38\x03\x02\x01\x01",
- "still wrong tag"}
- };
- int ntests = sizeof(tests) / sizeof(*tests);
-
- return generic_decode_fail(tests, ntests, sizeof(TESTLargeTag),
- (generic_decode)decode_TESTLargeTag);
-}
-
-
-static int
-check_fail_sequence(void)
-{
- struct test_case tests[] = {
- {NULL, 0, "", "empty buffer"},
- {NULL, 24,
- "\x30\x16\xa0\x03\x02\x01\x01\xa1\x08\x30\x06\xbf\x7f\x03\x02\x01\x01"
- "\x02\x01\x01\xa2\x03\x02\x01\x01"
- "missing one byte from the end, internal length ok"},
- {NULL, 25,
- "\x30\x18\xa0\x03\x02\x01\x01\xa1\x08\x30\x06\xbf\x7f\x03\x02\x01\x01"
- "\x02\x01\x01\xa2\x03\x02\x01\x01",
- "inner length one byte too long"},
- {NULL, 24,
- "\x30\x17\xa0\x03\x02\x01\x01\xa1\x08\x30\x06\xbf\x7f\x03\x02\x01"
- "\x01\x02\x01\x01\xa2\x03\x02\x01\x01",
- "correct buffer but missing one too short"}
- };
- int ntests = sizeof(tests) / sizeof(*tests);
-
- return generic_decode_fail(tests, ntests, sizeof(TESTSeq),
- (generic_decode)decode_TESTSeq);
-}
-
-static int
-check_fail_choice(void)
-{
- struct test_case tests[] = {
- {NULL, 6,
- "\xa1\x02\x02\x01\x01",
- "one too short"},
- {NULL, 6,
- "\xa1\x03\x02\x02\x01",
- "one too short inner"}
- };
- int ntests = sizeof(tests) / sizeof(*tests);
-
- return generic_decode_fail(tests, ntests, sizeof(TESTChoice1),
- (generic_decode)decode_TESTChoice1);
-}
-
-static int
-check_seq(void)
-{
- TESTSeqOf seq;
- TESTInteger i;
- int ret;
-
- seq.val = NULL;
- seq.len = 0;
-
- ret = add_TESTSeqOf(&seq, &i);
- if (ret) { printf("failed adding\n"); goto out; }
- ret = add_TESTSeqOf(&seq, &i);
- if (ret) { printf("failed adding\n"); goto out; }
- ret = add_TESTSeqOf(&seq, &i);
- if (ret) { printf("failed adding\n"); goto out; }
- ret = add_TESTSeqOf(&seq, &i);
- if (ret) { printf("failed adding\n"); goto out; }
-
- ret = remove_TESTSeqOf(&seq, seq.len - 1);
- if (ret) { printf("failed removing\n"); goto out; }
- ret = remove_TESTSeqOf(&seq, 2);
- if (ret) { printf("failed removing\n"); goto out; }
- ret = remove_TESTSeqOf(&seq, 0);
- if (ret) { printf("failed removing\n"); goto out; }
- ret = remove_TESTSeqOf(&seq, 0);
- if (ret) { printf("failed removing\n"); goto out; }
- ret = remove_TESTSeqOf(&seq, 0);
- if (ret == 0) {
- printf("can remove from empty list");
- return 1;
- }
-
- if (seq.len != 0) {
- printf("seq not empty!");
- return 1;
- }
- free_TESTSeqOf(&seq);
- ret = 0;
-
-out:
-
- return ret;
-}
-
-#define test_seq_of(type, ok, ptr) \
-{ \
- heim_octet_string os; \
- size_t size; \
- type decode; \
- ASN1_MALLOC_ENCODE(type, os.data, os.length, ptr, &size, ret); \
- if (ret) \
- return ret; \
- if (os.length != size) \
- abort(); \
- ret = decode_##type(os.data, os.length, &decode, &size); \
- free(os.data); \
- if (ret) { \
- if (ok) \
- return 1; \
- } else { \
- free_##type(&decode); \
- if (!ok) \
- return 1; \
- if (size != 0) \
- return 1; \
- } \
- return 0; \
-}
-
-static int
-check_seq_of_size(void)
-{
- TESTInteger integers[4] = { 1, 2, 3, 4 };
- int ret;
-
- {
- TESTSeqSizeOf1 ssof1f1 = { 1, integers };
- TESTSeqSizeOf1 ssof1ok1 = { 2, integers };
- TESTSeqSizeOf1 ssof1f2 = { 3, integers };
-
- test_seq_of(TESTSeqSizeOf1, 0, &ssof1f1);
- test_seq_of(TESTSeqSizeOf1, 1, &ssof1ok1);
- test_seq_of(TESTSeqSizeOf1, 0, &ssof1f2);
- }
- {
- TESTSeqSizeOf2 ssof2f1 = { 0, NULL };
- TESTSeqSizeOf2 ssof2ok1 = { 1, integers };
- TESTSeqSizeOf2 ssof2ok2 = { 2, integers };
- TESTSeqSizeOf2 ssof2f2 = { 3, integers };
-
- test_seq_of(TESTSeqSizeOf2, 0, &ssof2f1);
- test_seq_of(TESTSeqSizeOf2, 1, &ssof2ok1);
- test_seq_of(TESTSeqSizeOf2, 1, &ssof2ok2);
- test_seq_of(TESTSeqSizeOf2, 0, &ssof2f2);
- }
- {
- TESTSeqSizeOf3 ssof3f1 = { 0, NULL };
- TESTSeqSizeOf3 ssof3ok1 = { 1, integers };
- TESTSeqSizeOf3 ssof3ok2 = { 2, integers };
-
- test_seq_of(TESTSeqSizeOf3, 0, &ssof3f1);
- test_seq_of(TESTSeqSizeOf3, 1, &ssof3ok1);
- test_seq_of(TESTSeqSizeOf3, 1, &ssof3ok2);
- }
- {
- TESTSeqSizeOf4 ssof4ok1 = { 0, NULL };
- TESTSeqSizeOf4 ssof4ok2 = { 1, integers };
- TESTSeqSizeOf4 ssof4ok3 = { 2, integers };
- TESTSeqSizeOf4 ssof4f1 = { 3, integers };
-
- test_seq_of(TESTSeqSizeOf4, 1, &ssof4ok1);
- test_seq_of(TESTSeqSizeOf4, 1, &ssof4ok2);
- test_seq_of(TESTSeqSizeOf4, 1, &ssof4ok3);
- test_seq_of(TESTSeqSizeOf4, 0, &ssof4f1);
- }
-
- return 0;
-}
-
-
-
-int
-main(int argc, char **argv)
-{
- int ret = 0;
-
- ret += test_principal ();
- ret += test_authenticator();
- ret += test_krb_error();
- ret += test_Name();
- ret += test_bit_string();
-
- ret += check_tag_length();
- ret += test_large_tag();
- ret += test_choice();
-
- ret += test_implicit();
- ret += test_taglessalloc();
-
- ret += check_fail_largetag();
- ret += check_fail_sequence();
- ret += check_fail_choice();
-
- ret += check_seq();
- ret += check_seq_of_size();
-
- return ret;
-}
diff --git a/crypto/heimdal/lib/asn1/check-timegm.c b/crypto/heimdal/lib/asn1/check-timegm.c
deleted file mode 100644
index 7d33455..0000000
--- a/crypto/heimdal/lib/asn1/check-timegm.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2006 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include <der_locl.h>
-
-RCSID("$Id: check-timegm.c 18610 2006-10-19 16:33:24Z lha $");
-
-static int
-test_timegm(void)
-{
- int ret = 0;
- struct tm tm;
- time_t t;
-
- memset(&tm, 0, sizeof(tm));
- tm.tm_year = 106;
- tm.tm_mon = 9;
- tm.tm_mday = 1;
- tm.tm_hour = 10;
- tm.tm_min = 3;
-
- t = _der_timegm(&tm);
- if (t != 1159696980)
- ret += 1;
-
- tm.tm_mday = 0;
- t = _der_timegm(&tm);
- if (t != -1)
- ret += 1;
-
- return ret;
-}
-
-int
-main(int argc, char **argv)
-{
- int ret = 0;
-
- ret += test_timegm();
-
- return ret;
-}
diff --git a/crypto/heimdal/lib/asn1/der-protos.h b/crypto/heimdal/lib/asn1/der-protos.h
deleted file mode 100644
index 7bfe02e..0000000
--- a/crypto/heimdal/lib/asn1/der-protos.h
+++ /dev/null
@@ -1,567 +0,0 @@
-/* This is a generated file */
-#ifndef __der_protos_h__
-#define __der_protos_h__
-
-#include <stdarg.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int
-copy_heim_any (
- const heim_any */*from*/,
- heim_any */*to*/);
-
-int
-copy_heim_any_set (
- const heim_any_set */*from*/,
- heim_any_set */*to*/);
-
-int
-decode_heim_any (
- const unsigned char */*p*/,
- size_t /*len*/,
- heim_any */*data*/,
- size_t */*size*/);
-
-int
-decode_heim_any_set (
- const unsigned char */*p*/,
- size_t /*len*/,
- heim_any_set */*data*/,
- size_t */*size*/);
-
-int
-der_copy_bit_string (
- const heim_bit_string */*from*/,
- heim_bit_string */*to*/);
-
-int
-der_copy_bmp_string (
- const heim_bmp_string */*from*/,
- heim_bmp_string */*to*/);
-
-int
-der_copy_general_string (
- const heim_general_string */*from*/,
- heim_general_string */*to*/);
-
-int
-der_copy_heim_integer (
- const heim_integer */*from*/,
- heim_integer */*to*/);
-
-int
-der_copy_ia5_string (
- const heim_printable_string */*from*/,
- heim_printable_string */*to*/);
-
-int
-der_copy_octet_string (
- const heim_octet_string */*from*/,
- heim_octet_string */*to*/);
-
-int
-der_copy_oid (
- const heim_oid */*from*/,
- heim_oid */*to*/);
-
-int
-der_copy_printable_string (
- const heim_printable_string */*from*/,
- heim_printable_string */*to*/);
-
-int
-der_copy_universal_string (
- const heim_universal_string */*from*/,
- heim_universal_string */*to*/);
-
-int
-der_copy_utf8string (
- const heim_utf8_string */*from*/,
- heim_utf8_string */*to*/);
-
-int
-der_copy_visible_string (
- const heim_visible_string */*from*/,
- heim_visible_string */*to*/);
-
-void
-der_free_bit_string (heim_bit_string */*k*/);
-
-void
-der_free_bmp_string (heim_bmp_string */*k*/);
-
-void
-der_free_general_string (heim_general_string */*str*/);
-
-void
-der_free_heim_integer (heim_integer */*k*/);
-
-void
-der_free_ia5_string (heim_ia5_string */*str*/);
-
-void
-der_free_octet_string (heim_octet_string */*k*/);
-
-void
-der_free_oid (heim_oid */*k*/);
-
-void
-der_free_printable_string (heim_printable_string */*str*/);
-
-void
-der_free_universal_string (heim_universal_string */*k*/);
-
-void
-der_free_utf8string (heim_utf8_string */*str*/);
-
-void
-der_free_visible_string (heim_visible_string */*str*/);
-
-int
-der_get_bit_string (
- const unsigned char */*p*/,
- size_t /*len*/,
- heim_bit_string */*data*/,
- size_t */*size*/);
-
-int
-der_get_bmp_string (
- const unsigned char */*p*/,
- size_t /*len*/,
- heim_bmp_string */*data*/,
- size_t */*size*/);
-
-int
-der_get_boolean (
- const unsigned char */*p*/,
- size_t /*len*/,
- int */*data*/,
- size_t */*size*/);
-
-const char *
-der_get_class_name (unsigned /*num*/);
-
-int
-der_get_class_num (const char */*name*/);
-
-int
-der_get_general_string (
- const unsigned char */*p*/,
- size_t /*len*/,
- heim_general_string */*str*/,
- size_t */*size*/);
-
-int
-der_get_generalized_time (
- const unsigned char */*p*/,
- size_t /*len*/,
- time_t */*data*/,
- size_t */*size*/);
-
-int
-der_get_heim_integer (
- const unsigned char */*p*/,
- size_t /*len*/,
- heim_integer */*data*/,
- size_t */*size*/);
-
-int
-der_get_ia5_string (
- const unsigned char */*p*/,
- size_t /*len*/,
- heim_ia5_string */*str*/,
- size_t */*size*/);
-
-int
-der_get_integer (
- const unsigned char */*p*/,
- size_t /*len*/,
- int */*ret*/,
- size_t */*size*/);
-
-int
-der_get_length (
- const unsigned char */*p*/,
- size_t /*len*/,
- size_t */*val*/,
- size_t */*size*/);
-
-int
-der_get_octet_string (
- const unsigned char */*p*/,
- size_t /*len*/,
- heim_octet_string */*data*/,
- size_t */*size*/);
-
-int
-der_get_oid (
- const unsigned char */*p*/,
- size_t /*len*/,
- heim_oid */*data*/,
- size_t */*size*/);
-
-int
-der_get_printable_string (
- const unsigned char */*p*/,
- size_t /*len*/,
- heim_printable_string */*str*/,
- size_t */*size*/);
-
-int
-der_get_tag (
- const unsigned char */*p*/,
- size_t /*len*/,
- Der_class */*class*/,
- Der_type */*type*/,
- unsigned int */*tag*/,
- size_t */*size*/);
-
-const char *
-der_get_tag_name (unsigned /*num*/);
-
-int
-der_get_tag_num (const char */*name*/);
-
-const char *
-der_get_type_name (unsigned /*num*/);
-
-int
-der_get_type_num (const char */*name*/);
-
-int
-der_get_universal_string (
- const unsigned char */*p*/,
- size_t /*len*/,
- heim_universal_string */*data*/,
- size_t */*size*/);
-
-int
-der_get_unsigned (
- const unsigned char */*p*/,
- size_t /*len*/,
- unsigned */*ret*/,
- size_t */*size*/);
-
-int
-der_get_utctime (
- const unsigned char */*p*/,
- size_t /*len*/,
- time_t */*data*/,
- size_t */*size*/);
-
-int
-der_get_utf8string (
- const unsigned char */*p*/,
- size_t /*len*/,
- heim_utf8_string */*str*/,
- size_t */*size*/);
-
-int
-der_get_visible_string (
- const unsigned char */*p*/,
- size_t /*len*/,
- heim_visible_string */*str*/,
- size_t */*size*/);
-
-int
-der_heim_bit_string_cmp (
- const heim_bit_string */*p*/,
- const heim_bit_string */*q*/);
-
-int
-der_heim_bmp_string_cmp (
- const heim_bmp_string */*p*/,
- const heim_bmp_string */*q*/);
-
-int
-der_heim_integer_cmp (
- const heim_integer */*p*/,
- const heim_integer */*q*/);
-
-int
-der_heim_octet_string_cmp (
- const heim_octet_string */*p*/,
- const heim_octet_string */*q*/);
-
-int
-der_heim_oid_cmp (
- const heim_oid */*p*/,
- const heim_oid */*q*/);
-
-int
-der_heim_universal_string_cmp (
- const heim_universal_string */*p*/,
- const heim_universal_string */*q*/);
-
-size_t
-der_length_bit_string (const heim_bit_string */*k*/);
-
-size_t
-der_length_bmp_string (const heim_bmp_string */*data*/);
-
-size_t
-der_length_boolean (const int */*k*/);
-
-size_t
-der_length_enumerated (const unsigned */*data*/);
-
-size_t
-der_length_general_string (const heim_general_string */*data*/);
-
-size_t
-der_length_generalized_time (const time_t */*t*/);
-
-size_t
-der_length_heim_integer (const heim_integer */*k*/);
-
-size_t
-der_length_ia5_string (const heim_ia5_string */*data*/);
-
-size_t
-der_length_integer (const int */*data*/);
-
-size_t
-der_length_len (size_t /*len*/);
-
-size_t
-der_length_octet_string (const heim_octet_string */*k*/);
-
-size_t
-der_length_oid (const heim_oid */*k*/);
-
-size_t
-der_length_printable_string (const heim_printable_string */*data*/);
-
-size_t
-der_length_universal_string (const heim_universal_string */*data*/);
-
-size_t
-der_length_unsigned (const unsigned */*data*/);
-
-size_t
-der_length_utctime (const time_t */*t*/);
-
-size_t
-der_length_utf8string (const heim_utf8_string */*data*/);
-
-size_t
-der_length_visible_string (const heim_visible_string */*data*/);
-
-int
-der_match_tag (
- const unsigned char */*p*/,
- size_t /*len*/,
- Der_class /*class*/,
- Der_type /*type*/,
- unsigned int /*tag*/,
- size_t */*size*/);
-
-int
-der_match_tag_and_length (
- const unsigned char */*p*/,
- size_t /*len*/,
- Der_class /*class*/,
- Der_type /*type*/,
- unsigned int /*tag*/,
- size_t */*length_ret*/,
- size_t */*size*/);
-
-int
-der_parse_heim_oid (
- const char */*str*/,
- const char */*sep*/,
- heim_oid */*data*/);
-
-int
-der_parse_hex_heim_integer (
- const char */*p*/,
- heim_integer */*data*/);
-
-int
-der_print_heim_oid (
- const heim_oid */*oid*/,
- char /*delim*/,
- char **/*str*/);
-
-int
-der_print_hex_heim_integer (
- const heim_integer */*data*/,
- char **/*p*/);
-
-int
-der_put_bit_string (
- unsigned char */*p*/,
- size_t /*len*/,
- const heim_bit_string */*data*/,
- size_t */*size*/);
-
-int
-der_put_bmp_string (
- unsigned char */*p*/,
- size_t /*len*/,
- const heim_bmp_string */*data*/,
- size_t */*size*/);
-
-int
-der_put_boolean (
- unsigned char */*p*/,
- size_t /*len*/,
- const int */*data*/,
- size_t */*size*/);
-
-int
-der_put_general_string (
- unsigned char */*p*/,
- size_t /*len*/,
- const heim_general_string */*str*/,
- size_t */*size*/);
-
-int
-der_put_generalized_time (
- unsigned char */*p*/,
- size_t /*len*/,
- const time_t */*data*/,
- size_t */*size*/);
-
-int
-der_put_heim_integer (
- unsigned char */*p*/,
- size_t /*len*/,
- const heim_integer */*data*/,
- size_t */*size*/);
-
-int
-der_put_ia5_string (
- unsigned char */*p*/,
- size_t /*len*/,
- const heim_ia5_string */*str*/,
- size_t */*size*/);
-
-int
-der_put_integer (
- unsigned char */*p*/,
- size_t /*len*/,
- const int */*v*/,
- size_t */*size*/);
-
-int
-der_put_length (
- unsigned char */*p*/,
- size_t /*len*/,
- size_t /*val*/,
- size_t */*size*/);
-
-int
-der_put_length_and_tag (
- unsigned char */*p*/,
- size_t /*len*/,
- size_t /*len_val*/,
- Der_class /*class*/,
- Der_type /*type*/,
- unsigned int /*tag*/,
- size_t */*size*/);
-
-int
-der_put_octet_string (
- unsigned char */*p*/,
- size_t /*len*/,
- const heim_octet_string */*data*/,
- size_t */*size*/);
-
-int
-der_put_oid (
- unsigned char */*p*/,
- size_t /*len*/,
- const heim_oid */*data*/,
- size_t */*size*/);
-
-int
-der_put_printable_string (
- unsigned char */*p*/,
- size_t /*len*/,
- const heim_printable_string */*str*/,
- size_t */*size*/);
-
-int
-der_put_tag (
- unsigned char */*p*/,
- size_t /*len*/,
- Der_class /*class*/,
- Der_type /*type*/,
- unsigned int /*tag*/,
- size_t */*size*/);
-
-int
-der_put_universal_string (
- unsigned char */*p*/,
- size_t /*len*/,
- const heim_universal_string */*data*/,
- size_t */*size*/);
-
-int
-der_put_unsigned (
- unsigned char */*p*/,
- size_t /*len*/,
- const unsigned */*v*/,
- size_t */*size*/);
-
-int
-der_put_utctime (
- unsigned char */*p*/,
- size_t /*len*/,
- const time_t */*data*/,
- size_t */*size*/);
-
-int
-der_put_utf8string (
- unsigned char */*p*/,
- size_t /*len*/,
- const heim_utf8_string */*str*/,
- size_t */*size*/);
-
-int
-der_put_visible_string (
- unsigned char */*p*/,
- size_t /*len*/,
- const heim_visible_string */*str*/,
- size_t */*size*/);
-
-int
-encode_heim_any (
- unsigned char */*p*/,
- size_t /*len*/,
- const heim_any */*data*/,
- size_t */*size*/);
-
-int
-encode_heim_any_set (
- unsigned char */*p*/,
- size_t /*len*/,
- const heim_any_set */*data*/,
- size_t */*size*/);
-
-void
-free_heim_any (heim_any */*data*/);
-
-void
-free_heim_any_set (heim_any_set */*data*/);
-
-int
-heim_any_cmp (
- const heim_any_set */*p*/,
- const heim_any_set */*q*/);
-
-size_t
-length_heim_any (const heim_any */*data*/);
-
-size_t
-length_heim_any_set (const heim_any */*data*/);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __der_protos_h__ */
diff --git a/crypto/heimdal/lib/asn1/der.c b/crypto/heimdal/lib/asn1/der.c
deleted file mode 100644
index 120dc08..0000000
--- a/crypto/heimdal/lib/asn1/der.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (c) 1997 - 2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "der_locl.h"
-#include <com_err.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <getarg.h>
-#include <err.h>
-
-RCSID("$Id: der.c 22429 2008-01-13 10:25:50Z lha $");
-
-
-static const char *class_names[] = {
- "UNIV", /* 0 */
- "APPL", /* 1 */
- "CONTEXT", /* 2 */
- "PRIVATE" /* 3 */
-};
-
-static const char *type_names[] = {
- "PRIM", /* 0 */
- "CONS" /* 1 */
-};
-
-static const char *tag_names[] = {
- "EndOfContent", /* 0 */
- "Boolean", /* 1 */
- "Integer", /* 2 */
- "BitString", /* 3 */
- "OctetString", /* 4 */
- "Null", /* 5 */
- "ObjectID", /* 6 */
- NULL, /* 7 */
- NULL, /* 8 */
- NULL, /* 9 */
- "Enumerated", /* 10 */
- NULL, /* 11 */
- NULL, /* 12 */
- NULL, /* 13 */
- NULL, /* 14 */
- NULL, /* 15 */
- "Sequence", /* 16 */
- "Set", /* 17 */
- NULL, /* 18 */
- "PrintableString", /* 19 */
- NULL, /* 20 */
- NULL, /* 21 */
- "IA5String", /* 22 */
- "UTCTime", /* 23 */
- "GeneralizedTime", /* 24 */
- NULL, /* 25 */
- "VisibleString", /* 26 */
- "GeneralString", /* 27 */
- NULL, /* 28 */
- NULL, /* 29 */
- "BMPString" /* 30 */
-};
-
-static int
-get_type(const char *name, const char *list[], unsigned len)
-{
- unsigned i;
- for (i = 0; i < len; i++)
- if (list[i] && strcasecmp(list[i], name) == 0)
- return i;
- return -1;
-}
-
-#define SIZEOF_ARRAY(a) (sizeof((a))/sizeof((a)[0]))
-
-const char *
-der_get_class_name(unsigned num)
-{
- if (num >= SIZEOF_ARRAY(class_names))
- return NULL;
- return class_names[num];
-}
-
-int
-der_get_class_num(const char *name)
-{
- return get_type(name, class_names, SIZEOF_ARRAY(class_names));
-}
-
-const char *
-der_get_type_name(unsigned num)
-{
- if (num >= SIZEOF_ARRAY(type_names))
- return NULL;
- return type_names[num];
-}
-
-int
-der_get_type_num(const char *name)
-{
- return get_type(name, type_names, SIZEOF_ARRAY(type_names));
-}
-
-const char *
-der_get_tag_name(unsigned num)
-{
- if (num >= SIZEOF_ARRAY(tag_names))
- return NULL;
- return tag_names[num];
-}
-
-int
-der_get_tag_num(const char *name)
-{
- return get_type(name, tag_names, SIZEOF_ARRAY(tag_names));
-}
diff --git a/crypto/heimdal/lib/asn1/der.h b/crypto/heimdal/lib/asn1/der.h
deleted file mode 100644
index 13e3932..0000000
--- a/crypto/heimdal/lib/asn1/der.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (c) 1997 - 2006 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-/* $Id: der.h 18437 2006-10-14 05:16:08Z lha $ */
-
-#ifndef __DER_H__
-#define __DER_H__
-
-typedef enum {
- ASN1_C_UNIV = 0,
- ASN1_C_APPL = 1,
- ASN1_C_CONTEXT = 2,
- ASN1_C_PRIVATE = 3
-} Der_class;
-
-typedef enum {PRIM = 0, CONS = 1} Der_type;
-
-#define MAKE_TAG(CLASS, TYPE, TAG) (((CLASS) << 6) | ((TYPE) << 5) | (TAG))
-
-/* Universal tags */
-
-enum {
- UT_EndOfContent = 0,
- UT_Boolean = 1,
- UT_Integer = 2,
- UT_BitString = 3,
- UT_OctetString = 4,
- UT_Null = 5,
- UT_OID = 6,
- UT_Enumerated = 10,
- UT_UTF8String = 12,
- UT_Sequence = 16,
- UT_Set = 17,
- UT_PrintableString = 19,
- UT_IA5String = 22,
- UT_UTCTime = 23,
- UT_GeneralizedTime = 24,
- UT_UniversalString = 25,
- UT_VisibleString = 26,
- UT_GeneralString = 27,
- UT_BMPString = 30,
- /* unsupported types */
- UT_ObjectDescriptor = 7,
- UT_External = 8,
- UT_Real = 9,
- UT_EmbeddedPDV = 11,
- UT_RelativeOID = 13,
- UT_NumericString = 18,
- UT_TeletexString = 20,
- UT_VideotexString = 21,
- UT_GraphicString = 25
-};
-
-#define ASN1_INDEFINITE 0xdce0deed
-
-typedef struct heim_der_time_t {
- time_t dt_sec;
- unsigned long dt_nsec;
-} heim_der_time_t;
-
-typedef struct heim_ber_time_t {
- time_t bt_sec;
- unsigned bt_nsec;
- int bt_zone;
-} heim_ber_time_t;
-
-#include <der-protos.h>
-
-int _heim_fix_dce(size_t reallen, size_t *len);
-int _heim_der_set_sort(const void *, const void *);
-int _heim_time2generalizedtime (time_t, heim_octet_string *, int);
-
-#endif /* __DER_H__ */
diff --git a/crypto/heimdal/lib/asn1/der_cmp.c b/crypto/heimdal/lib/asn1/der_cmp.c
deleted file mode 100644
index f27f03c..0000000
--- a/crypto/heimdal/lib/asn1/der_cmp.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (c) 2003-2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "der_locl.h"
-
-int
-der_heim_oid_cmp(const heim_oid *p, const heim_oid *q)
-{
- if (p->length != q->length)
- return p->length - q->length;
- return memcmp(p->components,
- q->components,
- p->length * sizeof(*p->components));
-}
-
-int
-der_heim_octet_string_cmp(const heim_octet_string *p,
- const heim_octet_string *q)
-{
- if (p->length != q->length)
- return p->length - q->length;
- return memcmp(p->data, q->data, p->length);
-}
-
-int
-der_heim_bit_string_cmp(const heim_bit_string *p,
- const heim_bit_string *q)
-{
- int i, r1, r2;
- if (p->length != q->length)
- return p->length - q->length;
- i = memcmp(p->data, q->data, p->length / 8);
- if (i)
- return i;
- if ((p->length % 8) == 0)
- return 0;
- i = (p->length / 8);
- r1 = ((unsigned char *)p->data)[i];
- r2 = ((unsigned char *)q->data)[i];
- i = 8 - (p->length % 8);
- r1 = r1 >> i;
- r2 = r2 >> i;
- return r1 - r2;
-}
-
-int
-der_heim_integer_cmp(const heim_integer *p,
- const heim_integer *q)
-{
- if (p->negative != q->negative)
- return q->negative - p->negative;
- if (p->length != q->length)
- return p->length - q->length;
- return memcmp(p->data, q->data, p->length);
-}
-
-int
-der_heim_bmp_string_cmp(const heim_bmp_string *p, const heim_bmp_string *q)
-{
- if (p->length != q->length)
- return p->length - q->length;
- return memcmp(p->data, q->data, q->length * sizeof(q->data[0]));
-}
-
-int
-der_heim_universal_string_cmp(const heim_universal_string *p,
- const heim_universal_string *q)
-{
- if (p->length != q->length)
- return p->length - q->length;
- return memcmp(p->data, q->data, q->length * sizeof(q->data[0]));
-}
diff --git a/crypto/heimdal/lib/asn1/der_copy.c b/crypto/heimdal/lib/asn1/der_copy.c
deleted file mode 100644
index 04c4531..0000000
--- a/crypto/heimdal/lib/asn1/der_copy.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright (c) 1997 - 2006 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "der_locl.h"
-
-RCSID("$Id: der_copy.c 19539 2006-12-28 17:15:05Z lha $");
-
-int
-der_copy_general_string (const heim_general_string *from,
- heim_general_string *to)
-{
- *to = strdup(*from);
- if(*to == NULL)
- return ENOMEM;
- return 0;
-}
-
-int
-der_copy_utf8string (const heim_utf8_string *from, heim_utf8_string *to)
-{
- return der_copy_general_string(from, to);
-}
-
-int
-der_copy_printable_string (const heim_printable_string *from,
- heim_printable_string *to)
-{
- return der_copy_general_string(from, to);
-}
-
-int
-der_copy_ia5_string (const heim_printable_string *from,
- heim_printable_string *to)
-{
- return der_copy_general_string(from, to);
-}
-
-int
-der_copy_bmp_string (const heim_bmp_string *from, heim_bmp_string *to)
-{
- to->length = from->length;
- to->data = malloc(to->length * sizeof(to->data[0]));
- if(to->length != 0 && to->data == NULL)
- return ENOMEM;
- memcpy(to->data, from->data, to->length * sizeof(to->data[0]));
- return 0;
-}
-
-int
-der_copy_universal_string (const heim_universal_string *from,
- heim_universal_string *to)
-{
- to->length = from->length;
- to->data = malloc(to->length * sizeof(to->data[0]));
- if(to->length != 0 && to->data == NULL)
- return ENOMEM;
- memcpy(to->data, from->data, to->length * sizeof(to->data[0]));
- return 0;
-}
-
-int
-der_copy_visible_string (const heim_visible_string *from,
- heim_visible_string *to)
-{
- return der_copy_general_string(from, to);
-}
-
-int
-der_copy_octet_string (const heim_octet_string *from, heim_octet_string *to)
-{
- to->length = from->length;
- to->data = malloc(to->length);
- if(to->length != 0 && to->data == NULL)
- return ENOMEM;
- memcpy(to->data, from->data, to->length);
- return 0;
-}
-
-int
-der_copy_heim_integer (const heim_integer *from, heim_integer *to)
-{
- to->length = from->length;
- to->data = malloc(to->length);
- if(to->length != 0 && to->data == NULL)
- return ENOMEM;
- memcpy(to->data, from->data, to->length);
- to->negative = from->negative;
- return 0;
-}
-
-int
-der_copy_oid (const heim_oid *from, heim_oid *to)
-{
- to->length = from->length;
- to->components = malloc(to->length * sizeof(*to->components));
- if (to->length != 0 && to->components == NULL)
- return ENOMEM;
- memcpy(to->components, from->components,
- to->length * sizeof(*to->components));
- return 0;
-}
-
-int
-der_copy_bit_string (const heim_bit_string *from, heim_bit_string *to)
-{
- size_t len;
-
- len = (from->length + 7) / 8;
- to->length = from->length;
- to->data = malloc(len);
- if(len != 0 && to->data == NULL)
- return ENOMEM;
- memcpy(to->data, from->data, len);
- return 0;
-}
diff --git a/crypto/heimdal/lib/asn1/der_format.c b/crypto/heimdal/lib/asn1/der_format.c
deleted file mode 100644
index 6908bdd..0000000
--- a/crypto/heimdal/lib/asn1/der_format.c
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright (c) 2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "der_locl.h"
-#include <hex.h>
-
-RCSID("$Id: der_format.c 20861 2007-06-03 20:18:29Z lha $");
-
-int
-der_parse_hex_heim_integer (const char *p, heim_integer *data)
-{
- ssize_t len;
-
- data->length = 0;
- data->negative = 0;
- data->data = NULL;
-
- if (*p == '-') {
- p++;
- data->negative = 1;
- }
-
- len = strlen(p);
- if (len <= 0) {
- data->data = NULL;
- data->length = 0;
- return EINVAL;
- }
-
- data->length = (len / 2) + 1;
- data->data = malloc(data->length);
- if (data->data == NULL) {
- data->length = 0;
- return ENOMEM;
- }
-
- len = hex_decode(p, data->data, data->length);
- if (len < 0) {
- free(data->data);
- data->data = NULL;
- data->length = 0;
- return EINVAL;
- }
-
- {
- unsigned char *q = data->data;
- while(len > 0 && *q == 0) {
- q++;
- len--;
- }
- data->length = len;
- memmove(data->data, q, len);
- }
- return 0;
-}
-
-int
-der_print_hex_heim_integer (const heim_integer *data, char **p)
-{
- ssize_t len;
- char *q;
-
- len = hex_encode(data->data, data->length, p);
- if (len < 0)
- return ENOMEM;
-
- if (data->negative) {
- len = asprintf(&q, "-%s", *p);
- free(*p);
- if (len < 0)
- return ENOMEM;
- *p = q;
- }
- return 0;
-}
-
-int
-der_print_heim_oid (const heim_oid *oid, char delim, char **str)
-{
- struct rk_strpool *p = NULL;
- int i;
-
- if (oid->length == 0)
- return EINVAL;
-
- for (i = 0; i < oid->length ; i++) {
- p = rk_strpoolprintf(p, "%d", oid->components[i]);
- if (p && i < oid->length - 1)
- p = rk_strpoolprintf(p, "%c", delim);
- if (p == NULL) {
- *str = NULL;
- return ENOMEM;
- }
- }
-
- *str = rk_strpoolcollect(p);
- if (*str == NULL)
- return ENOMEM;
- return 0;
-}
-
-int
-der_parse_heim_oid (const char *str, const char *sep, heim_oid *data)
-{
- char *s, *w, *brkt, *endptr;
- unsigned int *c;
- long l;
-
- data->length = 0;
- data->components = NULL;
-
- if (sep == NULL)
- sep = ".";
-
- s = strdup(str);
-
- for (w = strtok_r(s, sep, &brkt);
- w != NULL;
- w = strtok_r(NULL, sep, &brkt)) {
-
- c = realloc(data->components,
- (data->length + 1) * sizeof(data->components[0]));
- if (c == NULL) {
- der_free_oid(data);
- free(s);
- return ENOMEM;
- }
- data->components = c;
-
- l = strtol(w, &endptr, 10);
- if (*endptr != '\0' || l < 0 || l > INT_MAX) {
- der_free_oid(data);
- free(s);
- return EINVAL;
- }
- data->components[data->length++] = l;
- }
- free(s);
- return 0;
-}
diff --git a/crypto/heimdal/lib/asn1/der_free.c b/crypto/heimdal/lib/asn1/der_free.c
deleted file mode 100644
index 851cb1d..0000000
--- a/crypto/heimdal/lib/asn1/der_free.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (c) 1997 - 2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "der_locl.h"
-
-RCSID("$Id: der_free.c 19539 2006-12-28 17:15:05Z lha $");
-
-void
-der_free_general_string (heim_general_string *str)
-{
- free(*str);
- *str = NULL;
-}
-
-void
-der_free_utf8string (heim_utf8_string *str)
-{
- free(*str);
- *str = NULL;
-}
-
-void
-der_free_printable_string (heim_printable_string *str)
-{
- free(*str);
- *str = NULL;
-}
-
-void
-der_free_ia5_string (heim_ia5_string *str)
-{
- free(*str);
- *str = NULL;
-}
-
-void
-der_free_bmp_string (heim_bmp_string *k)
-{
- free(k->data);
- k->data = NULL;
- k->length = 0;
-}
-
-void
-der_free_universal_string (heim_universal_string *k)
-{
- free(k->data);
- k->data = NULL;
- k->length = 0;
-}
-
-void
-der_free_visible_string (heim_visible_string *str)
-{
- free(*str);
- *str = NULL;
-}
-
-void
-der_free_octet_string (heim_octet_string *k)
-{
- free(k->data);
- k->data = NULL;
- k->length = 0;
-}
-
-void
-der_free_heim_integer (heim_integer *k)
-{
- free(k->data);
- k->data = NULL;
- k->length = 0;
-}
-
-void
-der_free_oid (heim_oid *k)
-{
- free(k->components);
- k->components = NULL;
- k->length = 0;
-}
-
-void
-der_free_bit_string (heim_bit_string *k)
-{
- free(k->data);
- k->data = NULL;
- k->length = 0;
-}
diff --git a/crypto/heimdal/lib/asn1/der_get.c b/crypto/heimdal/lib/asn1/der_get.c
deleted file mode 100644
index f232ce9..0000000
--- a/crypto/heimdal/lib/asn1/der_get.c
+++ /dev/null
@@ -1,546 +0,0 @@
-/*
- * Copyright (c) 1997 - 2007 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "der_locl.h"
-
-RCSID("$Id: der_get.c 21369 2007-06-27 10:14:39Z lha $");
-
-#include <version.h>
-
-/*
- * All decoding functions take a pointer `p' to first position in
- * which to read, from the left, `len' which means the maximum number
- * of characters we are able to read, `ret' were the value will be
- * returned and `size' where the number of used bytes is stored.
- * Either 0 or an error code is returned.
- */
-
-int
-der_get_unsigned (const unsigned char *p, size_t len,
- unsigned *ret, size_t *size)
-{
- unsigned val = 0;
- size_t oldlen = len;
-
- if (len == sizeof(unsigned) + 1 && p[0] == 0)
- ;
- else if (len > sizeof(unsigned))
- return ASN1_OVERRUN;
-
- while (len--)
- val = val * 256 + *p++;
- *ret = val;
- if(size) *size = oldlen;
- return 0;
-}
-
-int
-der_get_integer (const unsigned char *p, size_t len,
- int *ret, size_t *size)
-{
- int val = 0;
- size_t oldlen = len;
-
- if (len > sizeof(int))
- return ASN1_OVERRUN;
-
- if (len > 0) {
- val = (signed char)*p++;
- while (--len)
- val = val * 256 + *p++;
- }
- *ret = val;
- if(size) *size = oldlen;
- return 0;
-}
-
-int
-der_get_length (const unsigned char *p, size_t len,
- size_t *val, size_t *size)
-{
- size_t v;
-
- if (len <= 0)
- return ASN1_OVERRUN;
- --len;
- v = *p++;
- if (v < 128) {
- *val = v;
- if(size) *size = 1;
- } else {
- int e;
- size_t l;
- unsigned tmp;
-
- if(v == 0x80){
- *val = ASN1_INDEFINITE;
- if(size) *size = 1;
- return 0;
- }
- v &= 0x7F;
- if (len < v)
- return ASN1_OVERRUN;
- e = der_get_unsigned (p, v, &tmp, &l);
- if(e) return e;
- *val = tmp;
- if(size) *size = l + 1;
- }
- return 0;
-}
-
-int
-der_get_boolean(const unsigned char *p, size_t len, int *data, size_t *size)
-{
- if(len < 1)
- return ASN1_OVERRUN;
- if(*p != 0)
- *data = 1;
- else
- *data = 0;
- *size = 1;
- return 0;
-}
-
-int
-der_get_general_string (const unsigned char *p, size_t len,
- heim_general_string *str, size_t *size)
-{
- const unsigned char *p1;
- char *s;
-
- p1 = memchr(p, 0, len);
- if (p1 != NULL) {
- /*
- * Allow trailing NULs. We allow this since MIT Kerberos sends
- * an strings in the NEED_PREAUTH case that includes a
- * trailing NUL.
- */
- while (p1 - p < len && *p1 == '\0')
- p1++;
- if (p1 - p != len)
- return ASN1_BAD_CHARACTER;
- }
- if (len > len + 1)
- return ASN1_BAD_LENGTH;
-
- s = malloc (len + 1);
- if (s == NULL)
- return ENOMEM;
- memcpy (s, p, len);
- s[len] = '\0';
- *str = s;
- if(size) *size = len;
- return 0;
-}
-
-int
-der_get_utf8string (const unsigned char *p, size_t len,
- heim_utf8_string *str, size_t *size)
-{
- return der_get_general_string(p, len, str, size);
-}
-
-int
-der_get_printable_string (const unsigned char *p, size_t len,
- heim_printable_string *str, size_t *size)
-{
- return der_get_general_string(p, len, str, size);
-}
-
-int
-der_get_ia5_string (const unsigned char *p, size_t len,
- heim_ia5_string *str, size_t *size)
-{
- return der_get_general_string(p, len, str, size);
-}
-
-int
-der_get_bmp_string (const unsigned char *p, size_t len,
- heim_bmp_string *data, size_t *size)
-{
- size_t i;
-
- if (len & 1)
- return ASN1_BAD_FORMAT;
- data->length = len / 2;
- if (data->length > UINT_MAX/sizeof(data->data[0]))
- return ERANGE;
- data->data = malloc(data->length * sizeof(data->data[0]));
- if (data->data == NULL && data->length != 0)
- return ENOMEM;
-
- for (i = 0; i < data->length; i++) {
- data->data[i] = (p[0] << 8) | p[1];
- p += 2;
- }
- if (size) *size = len;
-
- return 0;
-}
-
-int
-der_get_universal_string (const unsigned char *p, size_t len,
- heim_universal_string *data, size_t *size)
-{
- size_t i;
-
- if (len & 3)
- return ASN1_BAD_FORMAT;
- data->length = len / 4;
- if (data->length > UINT_MAX/sizeof(data->data[0]))
- return ERANGE;
- data->data = malloc(data->length * sizeof(data->data[0]));
- if (data->data == NULL && data->length != 0)
- return ENOMEM;
-
- for (i = 0; i < data->length; i++) {
- data->data[i] = (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3];
- p += 4;
- }
- if (size) *size = len;
- return 0;
-}
-
-int
-der_get_visible_string (const unsigned char *p, size_t len,
- heim_visible_string *str, size_t *size)
-{
- return der_get_general_string(p, len, str, size);
-}
-
-int
-der_get_octet_string (const unsigned char *p, size_t len,
- heim_octet_string *data, size_t *size)
-{
- data->length = len;
- data->data = malloc(len);
- if (data->data == NULL && data->length != 0)
- return ENOMEM;
- memcpy (data->data, p, len);
- if(size) *size = len;
- return 0;
-}
-
-int
-der_get_heim_integer (const unsigned char *p, size_t len,
- heim_integer *data, size_t *size)
-{
- data->length = 0;
- data->negative = 0;
- data->data = NULL;
-
- if (len == 0) {
- if (size)
- *size = 0;
- return 0;
- }
- if (p[0] & 0x80) {
- unsigned char *q;
- int carry = 1;
- data->negative = 1;
-
- data->length = len;
-
- if (p[0] == 0xff) {
- p++;
- data->length--;
- }
- data->data = malloc(data->length);
- if (data->data == NULL) {
- data->length = 0;
- if (size)
- *size = 0;
- return ENOMEM;
- }
- q = &((unsigned char*)data->data)[data->length - 1];
- p += data->length - 1;
- while (q >= (unsigned char*)data->data) {
- *q = *p ^ 0xff;
- if (carry)
- carry = !++*q;
- p--;
- q--;
- }
- } else {
- data->negative = 0;
- data->length = len;
-
- if (p[0] == 0) {
- p++;
- data->length--;
- }
- data->data = malloc(data->length);
- if (data->data == NULL && data->length != 0) {
- data->length = 0;
- if (size)
- *size = 0;
- return ENOMEM;
- }
- memcpy(data->data, p, data->length);
- }
- if (size)
- *size = len;
- return 0;
-}
-
-static int
-generalizedtime2time (const char *s, time_t *t)
-{
- struct tm tm;
-
- memset(&tm, 0, sizeof(tm));
- if (sscanf (s, "%04d%02d%02d%02d%02d%02dZ",
- &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &tm.tm_hour,
- &tm.tm_min, &tm.tm_sec) != 6) {
- if (sscanf (s, "%02d%02d%02d%02d%02d%02dZ",
- &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &tm.tm_hour,
- &tm.tm_min, &tm.tm_sec) != 6)
- return ASN1_BAD_TIMEFORMAT;
- if (tm.tm_year < 50)
- tm.tm_year += 2000;
- else
- tm.tm_year += 1900;
- }
- tm.tm_year -= 1900;
- tm.tm_mon -= 1;
- *t = _der_timegm (&tm);
- return 0;
-}
-
-static int
-der_get_time (const unsigned char *p, size_t len,
- time_t *data, size_t *size)
-{
- char *times;
- int e;
-
- if (len > len + 1 || len == 0)
- return ASN1_BAD_LENGTH;
-
- times = malloc(len + 1);
- if (times == NULL)
- return ENOMEM;
- memcpy(times, p, len);
- times[len] = '\0';
- e = generalizedtime2time(times, data);
- free (times);
- if(size) *size = len;
- return e;
-}
-
-int
-der_get_generalized_time (const unsigned char *p, size_t len,
- time_t *data, size_t *size)
-{
- return der_get_time(p, len, data, size);
-}
-
-int
-der_get_utctime (const unsigned char *p, size_t len,
- time_t *data, size_t *size)
-{
- return der_get_time(p, len, data, size);
-}
-
-int
-der_get_oid (const unsigned char *p, size_t len,
- heim_oid *data, size_t *size)
-{
- size_t n;
- size_t oldlen = len;
-
- if (len < 1)
- return ASN1_OVERRUN;
-
- if (len > len + 1)
- return ASN1_BAD_LENGTH;
-
- if (len + 1 > UINT_MAX/sizeof(data->components[0]))
- return ERANGE;
-
- data->components = malloc((len + 1) * sizeof(data->components[0]));
- if (data->components == NULL)
- return ENOMEM;
- data->components[0] = (*p) / 40;
- data->components[1] = (*p) % 40;
- --len;
- ++p;
- for (n = 2; len > 0; ++n) {
- unsigned u = 0, u1;
-
- do {
- --len;
- u1 = u * 128 + (*p++ % 128);
- /* check that we don't overflow the element */
- if (u1 < u) {
- der_free_oid(data);
- return ASN1_OVERRUN;
- }
- u = u1;
- } while (len > 0 && p[-1] & 0x80);
- data->components[n] = u;
- }
- if (n > 2 && p[-1] & 0x80) {
- der_free_oid (data);
- return ASN1_OVERRUN;
- }
- data->length = n;
- if (size)
- *size = oldlen;
- return 0;
-}
-
-int
-der_get_tag (const unsigned char *p, size_t len,
- Der_class *class, Der_type *type,
- unsigned int *tag, size_t *size)
-{
- size_t ret = 0;
- if (len < 1)
- return ASN1_OVERRUN;
- *class = (Der_class)(((*p) >> 6) & 0x03);
- *type = (Der_type)(((*p) >> 5) & 0x01);
- *tag = (*p) & 0x1f;
- p++; len--; ret++;
- if(*tag == 0x1f) {
- unsigned int continuation;
- unsigned int tag1;
- *tag = 0;
- do {
- if(len < 1)
- return ASN1_OVERRUN;
- continuation = *p & 128;
- tag1 = *tag * 128 + (*p % 128);
- /* check that we don't overflow the tag */
- if (tag1 < *tag)
- return ASN1_OVERFLOW;
- *tag = tag1;
- p++; len--; ret++;
- } while(continuation);
- }
- if(size) *size = ret;
- return 0;
-}
-
-int
-der_match_tag (const unsigned char *p, size_t len,
- Der_class class, Der_type type,
- unsigned int tag, size_t *size)
-{
- size_t l;
- Der_class thisclass;
- Der_type thistype;
- unsigned int thistag;
- int e;
-
- e = der_get_tag (p, len, &thisclass, &thistype, &thistag, &l);
- if (e) return e;
- if (class != thisclass || type != thistype)
- return ASN1_BAD_ID;
- if(tag > thistag)
- return ASN1_MISPLACED_FIELD;
- if(tag < thistag)
- return ASN1_MISSING_FIELD;
- if(size) *size = l;
- return 0;
-}
-
-int
-der_match_tag_and_length (const unsigned char *p, size_t len,
- Der_class class, Der_type type, unsigned int tag,
- size_t *length_ret, size_t *size)
-{
- size_t l, ret = 0;
- int e;
-
- e = der_match_tag (p, len, class, type, tag, &l);
- if (e) return e;
- p += l;
- len -= l;
- ret += l;
- e = der_get_length (p, len, length_ret, &l);
- if (e) return e;
- p += l;
- len -= l;
- ret += l;
- if(size) *size = ret;
- return 0;
-}
-
-/*
- * Old versions of DCE was based on a very early beta of the MIT code,
- * which used MAVROS for ASN.1 encoding. MAVROS had the interesting
- * feature that it encoded data in the forward direction, which has
- * it's problems, since you have no idea how long the data will be
- * until after you're done. MAVROS solved this by reserving one byte
- * for length, and later, if the actual length was longer, it reverted
- * to indefinite, BER style, lengths. The version of MAVROS used by
- * the DCE people could apparently generate correct X.509 DER encodings, and
- * did this by making space for the length after encoding, but
- * unfortunately this feature wasn't used with Kerberos.
- */
-
-int
-_heim_fix_dce(size_t reallen, size_t *len)
-{
- if(reallen == ASN1_INDEFINITE)
- return 1;
- if(*len < reallen)
- return -1;
- *len = reallen;
- return 0;
-}
-
-int
-der_get_bit_string (const unsigned char *p, size_t len,
- heim_bit_string *data, size_t *size)
-{
- if (len < 1)
- return ASN1_OVERRUN;
- if (p[0] > 7)
- return ASN1_BAD_FORMAT;
- if (len - 1 == 0 && p[0] != 0)
- return ASN1_BAD_FORMAT;
- /* check if any of the three upper bits are set
- * any of them will cause a interger overrun */
- if ((len - 1) >> (sizeof(len) * 8 - 3))
- return ASN1_OVERRUN;
- data->length = (len - 1) * 8;
- data->data = malloc(len - 1);
- if (data->data == NULL && (len - 1) != 0)
- return ENOMEM;
- memcpy (data->data, p + 1, len - 1);
- data->length -= p[0];
- if(size) *size = len;
- return 0;
-}
diff --git a/crypto/heimdal/lib/asn1/der_length.c b/crypto/heimdal/lib/asn1/der_length.c
deleted file mode 100644
index a7f8f59..0000000
--- a/crypto/heimdal/lib/asn1/der_length.c
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * Copyright (c) 1997-2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "der_locl.h"
-
-RCSID("$Id: der_length.c 19539 2006-12-28 17:15:05Z lha $");
-
-size_t
-_heim_len_unsigned (unsigned val)
-{
- size_t ret = 0;
- int last_val_gt_128;
-
- do {
- ++ret;
- last_val_gt_128 = (val >= 128);
- val /= 256;
- } while (val);
-
- if(last_val_gt_128)
- ret++;
-
- return ret;
-}
-
-size_t
-_heim_len_int (int val)
-{
- unsigned char q;
- size_t ret = 0;
-
- if (val >= 0) {
- do {
- q = val % 256;
- ret++;
- val /= 256;
- } while(val);
- if(q >= 128)
- ret++;
- } else {
- val = ~val;
- do {
- q = ~(val % 256);
- ret++;
- val /= 256;
- } while(val);
- if(q < 128)
- ret++;
- }
- return ret;
-}
-
-static size_t
-len_oid (const heim_oid *oid)
-{
- size_t ret = 1;
- int n;
-
- for (n = 2; n < oid->length; ++n) {
- unsigned u = oid->components[n];
-
- do {
- ++ret;
- u /= 128;
- } while(u > 0);
- }
- return ret;
-}
-
-size_t
-der_length_len (size_t len)
-{
- if (len < 128)
- return 1;
- else {
- int ret = 0;
- do {
- ++ret;
- len /= 256;
- } while (len);
- return ret + 1;
- }
-}
-
-size_t
-der_length_integer (const int *data)
-{
- return _heim_len_int (*data);
-}
-
-size_t
-der_length_unsigned (const unsigned *data)
-{
- return _heim_len_unsigned(*data);
-}
-
-size_t
-der_length_enumerated (const unsigned *data)
-{
- return _heim_len_int (*data);
-}
-
-size_t
-der_length_general_string (const heim_general_string *data)
-{
- return strlen(*data);
-}
-
-size_t
-der_length_utf8string (const heim_utf8_string *data)
-{
- return strlen(*data);
-}
-
-size_t
-der_length_printable_string (const heim_printable_string *data)
-{
- return strlen(*data);
-}
-
-size_t
-der_length_ia5_string (const heim_ia5_string *data)
-{
- return strlen(*data);
-}
-
-size_t
-der_length_bmp_string (const heim_bmp_string *data)
-{
- return data->length * 2;
-}
-
-size_t
-der_length_universal_string (const heim_universal_string *data)
-{
- return data->length * 4;
-}
-
-size_t
-der_length_visible_string (const heim_visible_string *data)
-{
- return strlen(*data);
-}
-
-size_t
-der_length_octet_string (const heim_octet_string *k)
-{
- return k->length;
-}
-
-size_t
-der_length_heim_integer (const heim_integer *k)
-{
- if (k->length == 0)
- return 1;
- if (k->negative)
- return k->length + (((~(((unsigned char *)k->data)[0])) & 0x80) ? 0 : 1);
- else
- return k->length + ((((unsigned char *)k->data)[0] & 0x80) ? 1 : 0);
-}
-
-size_t
-der_length_oid (const heim_oid *k)
-{
- return len_oid (k);
-}
-
-size_t
-der_length_generalized_time (const time_t *t)
-{
- heim_octet_string k;
- size_t ret;
-
- _heim_time2generalizedtime (*t, &k, 1);
- ret = k.length;
- free(k.data);
- return ret;
-}
-
-size_t
-der_length_utctime (const time_t *t)
-{
- heim_octet_string k;
- size_t ret;
-
- _heim_time2generalizedtime (*t, &k, 0);
- ret = k.length;
- free(k.data);
- return ret;
-}
-
-size_t
-der_length_boolean (const int *k)
-{
- return 1;
-}
-
-size_t
-der_length_bit_string (const heim_bit_string *k)
-{
- return (k->length + 7) / 8 + 1;
-}
diff --git a/crypto/heimdal/lib/asn1/der_locl.h b/crypto/heimdal/lib/asn1/der_locl.h
deleted file mode 100644
index 5b97557..0000000
--- a/crypto/heimdal/lib/asn1/der_locl.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 1997 - 2002, 2004 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-/* $Id: der_locl.h 18608 2006-10-19 16:24:02Z lha $ */
-
-#ifndef __DER_LOCL_H__
-#define __DER_LOCL_H__
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <limits.h>
-#include <ctype.h>
-#include <time.h>
-#include <errno.h>
-#include <roken.h>
-
-#include <asn1-common.h>
-#include <asn1_err.h>
-#include <der.h>
-
-time_t _der_timegm (struct tm *);
-size_t _heim_len_unsigned (unsigned);
-size_t _heim_len_int (int);
-
-#endif /* __DER_LOCL_H__ */
diff --git a/crypto/heimdal/lib/asn1/der_put.c b/crypto/heimdal/lib/asn1/der_put.c
deleted file mode 100644
index 1fdbfe1..0000000
--- a/crypto/heimdal/lib/asn1/der_put.c
+++ /dev/null
@@ -1,483 +0,0 @@
-/*
- * Copyright (c) 1997-2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "der_locl.h"
-
-RCSID("$Id: der_put.c 19539 2006-12-28 17:15:05Z lha $");
-
-/*
- * All encoding functions take a pointer `p' to first position in
- * which to write, from the right, `len' which means the maximum
- * number of characters we are able to write. The function returns
- * the number of characters written in `size' (if non-NULL).
- * The return value is 0 or an error.
- */
-
-int
-der_put_unsigned (unsigned char *p, size_t len, const unsigned *v, size_t *size)
-{
- unsigned char *base = p;
- unsigned val = *v;
-
- if (val) {
- while (len > 0 && val) {
- *p-- = val % 256;
- val /= 256;
- --len;
- }
- if (val != 0)
- return ASN1_OVERFLOW;
- else {
- if(p[1] >= 128) {
- if(len < 1)
- return ASN1_OVERFLOW;
- *p-- = 0;
- }
- *size = base - p;
- return 0;
- }
- } else if (len < 1)
- return ASN1_OVERFLOW;
- else {
- *p = 0;
- *size = 1;
- return 0;
- }
-}
-
-int
-der_put_integer (unsigned char *p, size_t len, const int *v, size_t *size)
-{
- unsigned char *base = p;
- int val = *v;
-
- if(val >= 0) {
- do {
- if(len < 1)
- return ASN1_OVERFLOW;
- *p-- = val % 256;
- len--;
- val /= 256;
- } while(val);
- if(p[1] >= 128) {
- if(len < 1)
- return ASN1_OVERFLOW;
- *p-- = 0;
- len--;
- }
- } else {
- val = ~val;
- do {
- if(len < 1)
- return ASN1_OVERFLOW;
- *p-- = ~(val % 256);
- len--;
- val /= 256;
- } while(val);
- if(p[1] < 128) {
- if(len < 1)
- return ASN1_OVERFLOW;
- *p-- = 0xff;
- len--;
- }
- }
- *size = base - p;
- return 0;
-}
-
-
-int
-der_put_length (unsigned char *p, size_t len, size_t val, size_t *size)
-{
- if (len < 1)
- return ASN1_OVERFLOW;
-
- if (val < 128) {
- *p = val;
- *size = 1;
- } else {
- size_t l = 0;
-
- while(val > 0) {
- if(len < 2)
- return ASN1_OVERFLOW;
- *p-- = val % 256;
- val /= 256;
- len--;
- l++;
- }
- *p = 0x80 | l;
- if(size)
- *size = l + 1;
- }
- return 0;
-}
-
-int
-der_put_boolean(unsigned char *p, size_t len, const int *data, size_t *size)
-{
- if(len < 1)
- return ASN1_OVERFLOW;
- if(*data != 0)
- *p = 0xff;
- else
- *p = 0;
- *size = 1;
- return 0;
-}
-
-int
-der_put_general_string (unsigned char *p, size_t len,
- const heim_general_string *str, size_t *size)
-{
- size_t slen = strlen(*str);
-
- if (len < slen)
- return ASN1_OVERFLOW;
- p -= slen;
- len -= slen;
- memcpy (p+1, *str, slen);
- *size = slen;
- return 0;
-}
-
-int
-der_put_utf8string (unsigned char *p, size_t len,
- const heim_utf8_string *str, size_t *size)
-{
- return der_put_general_string(p, len, str, size);
-}
-
-int
-der_put_printable_string (unsigned char *p, size_t len,
- const heim_printable_string *str, size_t *size)
-{
- return der_put_general_string(p, len, str, size);
-}
-
-int
-der_put_ia5_string (unsigned char *p, size_t len,
- const heim_ia5_string *str, size_t *size)
-{
- return der_put_general_string(p, len, str, size);
-}
-
-int
-der_put_bmp_string (unsigned char *p, size_t len,
- const heim_bmp_string *data, size_t *size)
-{
- size_t i;
- if (len / 2 < data->length)
- return ASN1_OVERFLOW;
- p -= data->length * 2;
- len -= data->length * 2;
- for (i = 0; i < data->length; i++) {
- p[1] = (data->data[i] >> 8) & 0xff;
- p[2] = data->data[i] & 0xff;
- p += 2;
- }
- if (size) *size = data->length * 2;
- return 0;
-}
-
-int
-der_put_universal_string (unsigned char *p, size_t len,
- const heim_universal_string *data, size_t *size)
-{
- size_t i;
- if (len / 4 < data->length)
- return ASN1_OVERFLOW;
- p -= data->length * 4;
- len -= data->length * 4;
- for (i = 0; i < data->length; i++) {
- p[1] = (data->data[i] >> 24) & 0xff;
- p[2] = (data->data[i] >> 16) & 0xff;
- p[3] = (data->data[i] >> 8) & 0xff;
- p[4] = data->data[i] & 0xff;
- p += 4;
- }
- if (size) *size = data->length * 4;
- return 0;
-}
-
-int
-der_put_visible_string (unsigned char *p, size_t len,
- const heim_visible_string *str, size_t *size)
-{
- return der_put_general_string(p, len, str, size);
-}
-
-int
-der_put_octet_string (unsigned char *p, size_t len,
- const heim_octet_string *data, size_t *size)
-{
- if (len < data->length)
- return ASN1_OVERFLOW;
- p -= data->length;
- len -= data->length;
- memcpy (p+1, data->data, data->length);
- *size = data->length;
- return 0;
-}
-
-int
-der_put_heim_integer (unsigned char *p, size_t len,
- const heim_integer *data, size_t *size)
-{
- unsigned char *buf = data->data;
- int hibitset = 0;
-
- if (data->length == 0) {
- if (len < 1)
- return ASN1_OVERFLOW;
- *p-- = 0;
- if (size)
- *size = 1;
- return 0;
- }
- if (len < data->length)
- return ASN1_OVERFLOW;
-
- len -= data->length;
-
- if (data->negative) {
- int i, carry;
- for (i = data->length - 1, carry = 1; i >= 0; i--) {
- *p = buf[i] ^ 0xff;
- if (carry)
- carry = !++*p;
- p--;
- }
- if (p[1] < 128) {
- if (len < 1)
- return ASN1_OVERFLOW;
- *p-- = 0xff;
- len--;
- hibitset = 1;
- }
- } else {
- p -= data->length;
- memcpy(p + 1, buf, data->length);
-
- if (p[1] >= 128) {
- if (len < 1)
- return ASN1_OVERFLOW;
- p[0] = 0;
- len--;
- hibitset = 1;
- }
- }
- if (size)
- *size = data->length + hibitset;
- return 0;
-}
-
-int
-der_put_generalized_time (unsigned char *p, size_t len,
- const time_t *data, size_t *size)
-{
- heim_octet_string k;
- size_t l;
- int e;
-
- e = _heim_time2generalizedtime (*data, &k, 1);
- if (e)
- return e;
- e = der_put_octet_string(p, len, &k, &l);
- free(k.data);
- if(e)
- return e;
- if(size)
- *size = l;
- return 0;
-}
-
-int
-der_put_utctime (unsigned char *p, size_t len,
- const time_t *data, size_t *size)
-{
- heim_octet_string k;
- size_t l;
- int e;
-
- e = _heim_time2generalizedtime (*data, &k, 0);
- if (e)
- return e;
- e = der_put_octet_string(p, len, &k, &l);
- free(k.data);
- if(e)
- return e;
- if(size)
- *size = l;
- return 0;
-}
-
-int
-der_put_oid (unsigned char *p, size_t len,
- const heim_oid *data, size_t *size)
-{
- unsigned char *base = p;
- int n;
-
- for (n = data->length - 1; n >= 2; --n) {
- unsigned u = data->components[n];
-
- if (len < 1)
- return ASN1_OVERFLOW;
- *p-- = u % 128;
- u /= 128;
- --len;
- while (u > 0) {
- if (len < 1)
- return ASN1_OVERFLOW;
- *p-- = 128 + u % 128;
- u /= 128;
- --len;
- }
- }
- if (len < 1)
- return ASN1_OVERFLOW;
- *p-- = 40 * data->components[0] + data->components[1];
- *size = base - p;
- return 0;
-}
-
-int
-der_put_tag (unsigned char *p, size_t len, Der_class class, Der_type type,
- unsigned int tag, size_t *size)
-{
- if (tag <= 30) {
- if (len < 1)
- return ASN1_OVERFLOW;
- *p = MAKE_TAG(class, type, tag);
- *size = 1;
- } else {
- size_t ret = 0;
- unsigned int continuation = 0;
-
- do {
- if (len < 1)
- return ASN1_OVERFLOW;
- *p-- = tag % 128 | continuation;
- len--;
- ret++;
- tag /= 128;
- continuation = 0x80;
- } while(tag > 0);
- if (len < 1)
- return ASN1_OVERFLOW;
- *p-- = MAKE_TAG(class, type, 0x1f);
- ret++;
- *size = ret;
- }
- return 0;
-}
-
-int
-der_put_length_and_tag (unsigned char *p, size_t len, size_t len_val,
- Der_class class, Der_type type,
- unsigned int tag, size_t *size)
-{
- size_t ret = 0;
- size_t l;
- int e;
-
- e = der_put_length (p, len, len_val, &l);
- if(e)
- return e;
- p -= l;
- len -= l;
- ret += l;
- e = der_put_tag (p, len, class, type, tag, &l);
- if(e)
- return e;
- p -= l;
- len -= l;
- ret += l;
- *size = ret;
- return 0;
-}
-
-int
-_heim_time2generalizedtime (time_t t, heim_octet_string *s, int gtimep)
-{
- struct tm *tm;
- const size_t len = gtimep ? 15 : 13;
-
- s->data = malloc(len + 1);
- if (s->data == NULL)
- return ENOMEM;
- s->length = len;
- tm = gmtime (&t);
- if (gtimep)
- snprintf (s->data, len + 1, "%04d%02d%02d%02d%02d%02dZ",
- tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
- tm->tm_hour, tm->tm_min, tm->tm_sec);
- else
- snprintf (s->data, len + 1, "%02d%02d%02d%02d%02d%02dZ",
- tm->tm_year % 100, tm->tm_mon + 1, tm->tm_mday,
- tm->tm_hour, tm->tm_min, tm->tm_sec);
-
- return 0;
-}
-
-int
-der_put_bit_string (unsigned char *p, size_t len,
- const heim_bit_string *data, size_t *size)
-{
- size_t data_size = (data->length + 7) / 8;
- if (len < data_size + 1)
- return ASN1_OVERFLOW;
- p -= data_size + 1;
- len -= data_size + 1;
- memcpy (p+2, data->data, data_size);
- if (data->length && (data->length % 8) != 0)
- p[1] = 8 - (data->length % 8);
- else
- p[1] = 0;
- *size = data_size + 1;
- return 0;
-}
-
-int
-_heim_der_set_sort(const void *a1, const void *a2)
-{
- const struct heim_octet_string *s1 = a1, *s2 = a2;
- int ret;
-
- ret = memcmp(s1->data, s2->data,
- s1->length < s2->length ? s1->length : s2->length);
- if(ret)
- return ret;
- return s1->length - s2->length;
-}
diff --git a/crypto/heimdal/lib/asn1/digest.asn1 b/crypto/heimdal/lib/asn1/digest.asn1
deleted file mode 100644
index eafe48e..0000000
--- a/crypto/heimdal/lib/asn1/digest.asn1
+++ /dev/null
@@ -1,164 +0,0 @@
--- $Id: digest.asn1 22152 2007-12-04 19:59:18Z lha $
-
-DIGEST DEFINITIONS ::=
-BEGIN
-
-IMPORTS EncryptedData, Principal FROM krb5;
-
-DigestTypes ::= BIT STRING {
- ntlm-v1(0),
- ntlm-v1-session(1),
- ntlm-v2(2),
- digest-md5(3),
- chap-md5(4),
- ms-chap-v2(5)
-}
-
-DigestInit ::= SEQUENCE {
- type UTF8String, -- http, sasl, chap, cram-md5 --
- channel [0] SEQUENCE {
- cb-type UTF8String,
- cb-binding UTF8String
- } OPTIONAL,
- hostname [1] UTF8String OPTIONAL -- for chap/cram-md5
-}
-
-DigestInitReply ::= SEQUENCE {
- nonce UTF8String, -- service nonce/challange
- opaque UTF8String, -- server state
- identifier [0] UTF8String OPTIONAL
-}
-
-
-DigestRequest ::= SEQUENCE {
- type UTF8String, -- http, sasl-md5, chap, cram-md5 --
- digest UTF8String, -- http:md5/md5-sess sasl:clear/int/conf --
- username UTF8String, -- username user used
- responseData UTF8String, -- client response
- authid [0] UTF8String OPTIONAL,
- authentication-user [1] Principal OPTIONAL, -- principal to get key from
- realm [2] UTF8String OPTIONAL,
- method [3] UTF8String OPTIONAL,
- uri [4] UTF8String OPTIONAL,
- serverNonce UTF8String, -- same as "DigestInitReply.nonce"
- clientNonce [5] UTF8String OPTIONAL,
- nonceCount [6] UTF8String OPTIONAL,
- qop [7] UTF8String OPTIONAL,
- identifier [8] UTF8String OPTIONAL,
- hostname [9] UTF8String OPTIONAL,
- opaque UTF8String -- same as "DigestInitReply.opaque"
-}
--- opaque = hex(cksum(type|serverNonce|identifier|hostname,digest-key))
--- serverNonce = hex(time[4bytes]random[12bytes])(-cbType:cbBinding)
-
-
-DigestError ::= SEQUENCE {
- reason UTF8String,
- code INTEGER (-2147483648..2147483647)
-}
-
-DigestResponse ::= SEQUENCE {
- success BOOLEAN,
- rsp [0] UTF8String OPTIONAL,
- tickets [1] SEQUENCE OF OCTET STRING OPTIONAL,
- channel [2] SEQUENCE {
- cb-type UTF8String,
- cb-binding UTF8String
- } OPTIONAL,
- session-key [3] OCTET STRING OPTIONAL
-}
-
-NTLMInit ::= SEQUENCE {
- flags [0] INTEGER (0..4294967295),
- hostname [1] UTF8String OPTIONAL,
- domain [1] UTF8String OPTIONAL
-}
-
-NTLMInitReply ::= SEQUENCE {
- flags [0] INTEGER (0..4294967295),
- opaque [1] OCTET STRING,
- targetname [2] UTF8String,
- challange [3] OCTET STRING,
- targetinfo [4] OCTET STRING OPTIONAL
-}
-
-NTLMRequest ::= SEQUENCE {
- flags [0] INTEGER (0..4294967295),
- opaque [1] OCTET STRING,
- username [2] UTF8String,
- targetname [3] UTF8String,
- targetinfo [4] OCTET STRING OPTIONAL,
- lm [5] OCTET STRING,
- ntlm [6] OCTET STRING,
- sessionkey [7] OCTET STRING OPTIONAL
-}
-
-NTLMResponse ::= SEQUENCE {
- success [0] BOOLEAN,
- flags [1] INTEGER (0..4294967295),
- sessionkey [2] OCTET STRING OPTIONAL,
- tickets [3] SEQUENCE OF OCTET STRING OPTIONAL
-}
-
-DigestReqInner ::= CHOICE {
- init [0] DigestInit,
- digestRequest [1] DigestRequest,
- ntlmInit [2] NTLMInit,
- ntlmRequest [3] NTLMRequest,
- supportedMechs [4] NULL
-}
-
-DigestREQ ::= [APPLICATION 128] SEQUENCE {
- apReq [0] OCTET STRING,
- innerReq [1] EncryptedData
-}
-
-DigestRepInner ::= CHOICE {
- error [0] DigestError,
- initReply [1] DigestInitReply,
- response [2] DigestResponse,
- ntlmInitReply [3] NTLMInitReply,
- ntlmResponse [4] NTLMResponse,
- supportedMechs [5] DigestTypes,
- ...
-}
-
-DigestREP ::= [APPLICATION 129] SEQUENCE {
- apRep [0] OCTET STRING,
- innerRep [1] EncryptedData
-}
-
-
--- HTTP
-
--- md5
--- A1 = unq(username-value) ":" unq(realm-value) ":" passwd
--- md5-sess
--- A1 = HEX(H(unq(username-value) ":" unq(realm-value) ":" passwd ) ":" unq(nonce-value) ":" unq(cnonce-value))
-
--- qop == auth
--- A2 = Method ":" digest-uri-value
--- qop == auth-int
--- A2 = Method ":" digest-uri-value ":" H(entity-body)
-
--- request-digest = HEX(KD(HEX(H(A1)),
--- unq(nonce-value) ":" nc-value ":" unq(cnonce-value) ":" unq(qop-value) ":" HEX(H(A2))))
--- no "qop"
--- request-digest = HEX(KD(HEX(H(A1)), unq(nonce-value) ":" HEX(H(A2))))
-
-
--- SASL:
--- SS = H( { unq(username-value), ":", unq(realm-value), ":", password } )
--- A1 = { SS, ":", unq(nonce-value), ":", unq(cnonce-value) }
--- A1 = { SS, ":", unq(nonce-value), ":", unq(cnonce-value), ":", unq(authzid-value) }
-
--- A2 = "AUTHENTICATE:", ":", digest-uri-value
--- qop == auth-int,auth-conf
--- A2 = "AUTHENTICATE:", ":", digest-uri-value, ":00000000000000000000000000000000"
-
--- response-value = HEX( KD ( HEX(H(A1)),
--- { unq(nonce-value), ":" nc-value, ":",
--- unq(cnonce-value), ":", qop-value, ":",
--- HEX(H(A2)) }))
-
-END
diff --git a/crypto/heimdal/lib/asn1/extra.c b/crypto/heimdal/lib/asn1/extra.c
deleted file mode 100644
index e29a437..0000000
--- a/crypto/heimdal/lib/asn1/extra.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (c) 2003 - 2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "der_locl.h"
-#include "heim_asn1.h"
-
-RCSID("$Id: extra.c 16672 2006-01-31 09:44:54Z lha $");
-
-int
-encode_heim_any(unsigned char *p, size_t len,
- const heim_any *data, size_t *size)
-{
- if (data->length > len)
- return ASN1_OVERFLOW;
- p -= data->length;
- len -= data->length;
- memcpy (p+1, data->data, data->length);
- *size = data->length;
- return 0;
-}
-
-int
-decode_heim_any(const unsigned char *p, size_t len,
- heim_any *data, size_t *size)
-{
- size_t len_len, length, l;
- Der_class thisclass;
- Der_type thistype;
- unsigned int thistag;
- int e;
-
- memset(data, 0, sizeof(*data));
-
- e = der_get_tag (p, len, &thisclass, &thistype, &thistag, &l);
- if (e) return e;
- if (l > len)
- return ASN1_OVERFLOW;
- e = der_get_length(p + l, len - l, &length, &len_len);
- if (e) return e;
- if (length + len_len + l > len)
- return ASN1_OVERFLOW;
-
- data->data = malloc(length + len_len + l);
- if (data->data == NULL)
- return ENOMEM;
- data->length = length + len_len + l;
- memcpy(data->data, p, length + len_len + l);
-
- if (size)
- *size = length + len_len + l;
-
- return 0;
-}
-
-void
-free_heim_any(heim_any *data)
-{
- free(data->data);
- data->data = NULL;
-}
-
-size_t
-length_heim_any(const heim_any *data)
-{
- return data->length;
-}
-
-int
-copy_heim_any(const heim_any *from, heim_any *to)
-{
- to->data = malloc(from->length);
- if (to->data == NULL && from->length != 0)
- return ENOMEM;
- memcpy(to->data, from->data, from->length);
- to->length = from->length;
- return 0;
-}
-
-int
-encode_heim_any_set(unsigned char *p, size_t len,
- const heim_any_set *data, size_t *size)
-{
- return encode_heim_any(p, len, data, size);
-}
-
-
-int
-decode_heim_any_set(const unsigned char *p, size_t len,
- heim_any_set *data, size_t *size)
-{
- memset(data, 0, sizeof(*data));
- data->data = malloc(len);
- if (data->data == NULL && len != 0)
- return ENOMEM;
- data->length = len;
- memcpy(data->data, p, len);
- if (size) *size = len;
- return 0;
-}
-
-void
-free_heim_any_set(heim_any_set *data)
-{
- free_heim_any(data);
-}
-
-size_t
-length_heim_any_set(const heim_any *data)
-{
- return length_heim_any(data);
-}
-
-int
-copy_heim_any_set(const heim_any_set *from, heim_any_set *to)
-{
- return copy_heim_any(from, to);
-}
-
-int
-heim_any_cmp(const heim_any_set *p, const heim_any_set *q)
-{
- if (p->length != q->length)
- return p->length - q->length;
- return memcmp(p->data, q->data, p->length);
-}
diff --git a/crypto/heimdal/lib/asn1/gen.c b/crypto/heimdal/lib/asn1/gen.c
deleted file mode 100644
index 499f8ea..0000000
--- a/crypto/heimdal/lib/asn1/gen.c
+++ /dev/null
@@ -1,797 +0,0 @@
-/*
- * Copyright (c) 1997 - 2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "gen_locl.h"
-
-RCSID("$Id: gen.c 22429 2008-01-13 10:25:50Z lha $");
-
-FILE *headerfile, *codefile, *logfile;
-
-#define STEM "asn1"
-
-static const char *orig_filename;
-static char *header;
-static const char *headerbase = STEM;
-
-/*
- * list of all IMPORTs
- */
-
-struct import {
- const char *module;
- struct import *next;
-};
-
-static struct import *imports = NULL;
-
-void
-add_import (const char *module)
-{
- struct import *tmp = emalloc (sizeof(*tmp));
-
- tmp->module = module;
- tmp->next = imports;
- imports = tmp;
-
- fprintf (headerfile, "#include <%s_asn1.h>\n", module);
-}
-
-const char *
-get_filename (void)
-{
- return orig_filename;
-}
-
-void
-init_generate (const char *filename, const char *base)
-{
- char *fn;
-
- orig_filename = filename;
- if (base != NULL) {
- headerbase = strdup(base);
- if (headerbase == NULL)
- errx(1, "strdup");
- }
- asprintf(&header, "%s.h", headerbase);
- if (header == NULL)
- errx(1, "malloc");
- headerfile = fopen (header, "w");
- if (headerfile == NULL)
- err (1, "open %s", header);
- fprintf (headerfile,
- "/* Generated from %s */\n"
- "/* Do not edit */\n\n",
- filename);
- fprintf (headerfile,
- "#ifndef __%s_h__\n"
- "#define __%s_h__\n\n", headerbase, headerbase);
- fprintf (headerfile,
- "#include <stddef.h>\n"
- "#include <time.h>\n\n");
- fprintf (headerfile,
- "#ifndef __asn1_common_definitions__\n"
- "#define __asn1_common_definitions__\n\n");
- fprintf (headerfile,
- "typedef struct heim_integer {\n"
- " size_t length;\n"
- " void *data;\n"
- " int negative;\n"
- "} heim_integer;\n\n");
- fprintf (headerfile,
- "typedef struct heim_octet_string {\n"
- " size_t length;\n"
- " void *data;\n"
- "} heim_octet_string;\n\n");
- fprintf (headerfile,
- "typedef char *heim_general_string;\n\n"
- );
- fprintf (headerfile,
- "typedef char *heim_utf8_string;\n\n"
- );
- fprintf (headerfile,
- "typedef char *heim_printable_string;\n\n"
- );
- fprintf (headerfile,
- "typedef char *heim_ia5_string;\n\n"
- );
- fprintf (headerfile,
- "typedef struct heim_bmp_string {\n"
- " size_t length;\n"
- " uint16_t *data;\n"
- "} heim_bmp_string;\n\n");
- fprintf (headerfile,
- "typedef struct heim_universal_string {\n"
- " size_t length;\n"
- " uint32_t *data;\n"
- "} heim_universal_string;\n\n");
- fprintf (headerfile,
- "typedef char *heim_visible_string;\n\n"
- );
- fprintf (headerfile,
- "typedef struct heim_oid {\n"
- " size_t length;\n"
- " unsigned *components;\n"
- "} heim_oid;\n\n");
- fprintf (headerfile,
- "typedef struct heim_bit_string {\n"
- " size_t length;\n"
- " void *data;\n"
- "} heim_bit_string;\n\n");
- fprintf (headerfile,
- "typedef struct heim_octet_string heim_any;\n"
- "typedef struct heim_octet_string heim_any_set;\n\n");
- fputs("#define ASN1_MALLOC_ENCODE(T, B, BL, S, L, R) \\\n"
- " do { \\\n"
- " (BL) = length_##T((S)); \\\n"
- " (B) = malloc((BL)); \\\n"
- " if((B) == NULL) { \\\n"
- " (R) = ENOMEM; \\\n"
- " } else { \\\n"
- " (R) = encode_##T(((unsigned char*)(B)) + (BL) - 1, (BL), \\\n"
- " (S), (L)); \\\n"
- " if((R) != 0) { \\\n"
- " free((B)); \\\n"
- " (B) = NULL; \\\n"
- " } \\\n"
- " } \\\n"
- " } while (0)\n\n",
- headerfile);
- fprintf (headerfile, "struct units;\n\n");
- fprintf (headerfile, "#endif\n\n");
- asprintf(&fn, "%s_files", base);
- if (fn == NULL)
- errx(1, "malloc");
- logfile = fopen(fn, "w");
- if (logfile == NULL)
- err (1, "open %s", fn);
-}
-
-void
-close_generate (void)
-{
- fprintf (headerfile, "#endif /* __%s_h__ */\n", headerbase);
-
- fclose (headerfile);
- fprintf (logfile, "\n");
- fclose (logfile);
-}
-
-void
-gen_assign_defval(const char *var, struct value *val)
-{
- switch(val->type) {
- case stringvalue:
- fprintf(codefile, "if((%s = strdup(\"%s\")) == NULL)\nreturn ENOMEM;\n", var, val->u.stringvalue);
- break;
- case integervalue:
- fprintf(codefile, "%s = %d;\n", var, val->u.integervalue);
- break;
- case booleanvalue:
- if(val->u.booleanvalue)
- fprintf(codefile, "%s = TRUE;\n", var);
- else
- fprintf(codefile, "%s = FALSE;\n", var);
- break;
- default:
- abort();
- }
-}
-
-void
-gen_compare_defval(const char *var, struct value *val)
-{
- switch(val->type) {
- case stringvalue:
- fprintf(codefile, "if(strcmp(%s, \"%s\") != 0)\n", var, val->u.stringvalue);
- break;
- case integervalue:
- fprintf(codefile, "if(%s != %d)\n", var, val->u.integervalue);
- break;
- case booleanvalue:
- if(val->u.booleanvalue)
- fprintf(codefile, "if(!%s)\n", var);
- else
- fprintf(codefile, "if(%s)\n", var);
- break;
- default:
- abort();
- }
-}
-
-static void
-generate_header_of_codefile(const char *name)
-{
- char *filename;
-
- if (codefile != NULL)
- abort();
-
- asprintf (&filename, "%s_%s.x", STEM, name);
- if (filename == NULL)
- errx(1, "malloc");
- codefile = fopen (filename, "w");
- if (codefile == NULL)
- err (1, "fopen %s", filename);
- fprintf(logfile, "%s ", filename);
- free(filename);
- fprintf (codefile,
- "/* Generated from %s */\n"
- "/* Do not edit */\n\n"
- "#include <stdio.h>\n"
- "#include <stdlib.h>\n"
- "#include <time.h>\n"
- "#include <string.h>\n"
- "#include <errno.h>\n"
- "#include <limits.h>\n"
- "#include <krb5-types.h>\n",
- orig_filename);
-
- fprintf (codefile,
- "#include <%s.h>\n",
- headerbase);
- fprintf (codefile,
- "#include <asn1_err.h>\n"
- "#include <der.h>\n"
- "#include <parse_units.h>\n\n");
-
-}
-
-static void
-close_codefile(void)
-{
- if (codefile == NULL)
- abort();
-
- fclose(codefile);
- codefile = NULL;
-}
-
-
-void
-generate_constant (const Symbol *s)
-{
- switch(s->value->type) {
- case booleanvalue:
- break;
- case integervalue:
- fprintf (headerfile, "enum { %s = %d };\n\n",
- s->gen_name, s->value->u.integervalue);
- break;
- case nullvalue:
- break;
- case stringvalue:
- break;
- case objectidentifiervalue: {
- struct objid *o, **list;
- int i, len;
-
- generate_header_of_codefile(s->gen_name);
-
- len = 0;
- for (o = s->value->u.objectidentifiervalue; o != NULL; o = o->next)
- len++;
- list = emalloc(sizeof(*list) * len);
-
- i = 0;
- for (o = s->value->u.objectidentifiervalue; o != NULL; o = o->next)
- list[i++] = o;
-
- fprintf (headerfile, "/* OBJECT IDENTIFIER %s ::= { ", s->name);
- for (i = len - 1 ; i >= 0; i--) {
- o = list[i];
- fprintf(headerfile, "%s(%d) ",
- o->label ? o->label : "label-less", o->value);
- }
-
- fprintf (headerfile, "} */\n");
- fprintf (headerfile, "const heim_oid *oid_%s(void);\n\n",
- s->gen_name);
-
- fprintf (codefile, "static unsigned oid_%s_variable_num[%d] = {",
- s->gen_name, len);
- for (i = len - 1 ; i >= 0; i--) {
- fprintf(codefile, "%d%s ", list[i]->value, i > 0 ? "," : "");
- }
- fprintf(codefile, "};\n");
-
- fprintf (codefile, "static const heim_oid oid_%s_variable = "
- "{ %d, oid_%s_variable_num };\n\n",
- s->gen_name, len, s->gen_name);
-
- fprintf (codefile, "const heim_oid *oid_%s(void)\n"
- "{\n"
- "return &oid_%s_variable;\n"
- "}\n\n",
- s->gen_name, s->gen_name);
-
- close_codefile();
-
- break;
- }
- default:
- abort();
- }
-}
-
-static void
-space(int level)
-{
- while(level-- > 0)
- fprintf(headerfile, " ");
-}
-
-static const char *
-last_member_p(struct member *m)
-{
- struct member *n = ASN1_TAILQ_NEXT(m, members);
- if (n == NULL)
- return "";
- if (n->ellipsis && ASN1_TAILQ_NEXT(n, members) == NULL)
- return "";
- return ",";
-}
-
-static struct member *
-have_ellipsis(Type *t)
-{
- struct member *m;
- ASN1_TAILQ_FOREACH(m, t->members, members) {
- if (m->ellipsis)
- return m;
- }
- return NULL;
-}
-
-static void
-define_asn1 (int level, Type *t)
-{
- switch (t->type) {
- case TType:
- fprintf (headerfile, "%s", t->symbol->name);
- break;
- case TInteger:
- if(t->members == NULL) {
- fprintf (headerfile, "INTEGER");
- if (t->range)
- fprintf (headerfile, " (%d..%d)",
- t->range->min, t->range->max);
- } else {
- Member *m;
- fprintf (headerfile, "INTEGER {\n");
- ASN1_TAILQ_FOREACH(m, t->members, members) {
- space (level + 1);
- fprintf(headerfile, "%s(%d)%s\n", m->gen_name, m->val,
- last_member_p(m));
- }
- space(level);
- fprintf (headerfile, "}");
- }
- break;
- case TBoolean:
- fprintf (headerfile, "BOOLEAN");
- break;
- case TOctetString:
- fprintf (headerfile, "OCTET STRING");
- break;
- case TEnumerated :
- case TBitString: {
- Member *m;
-
- space(level);
- if(t->type == TBitString)
- fprintf (headerfile, "BIT STRING {\n");
- else
- fprintf (headerfile, "ENUMERATED {\n");
- ASN1_TAILQ_FOREACH(m, t->members, members) {
- space(level + 1);
- fprintf (headerfile, "%s(%d)%s\n", m->name, m->val,
- last_member_p(m));
- }
- space(level);
- fprintf (headerfile, "}");
- break;
- }
- case TChoice:
- case TSet:
- case TSequence: {
- Member *m;
- int max_width = 0;
-
- if(t->type == TChoice)
- fprintf(headerfile, "CHOICE {\n");
- else if(t->type == TSet)
- fprintf(headerfile, "SET {\n");
- else
- fprintf(headerfile, "SEQUENCE {\n");
- ASN1_TAILQ_FOREACH(m, t->members, members) {
- if(strlen(m->name) > max_width)
- max_width = strlen(m->name);
- }
- max_width += 3;
- if(max_width < 16) max_width = 16;
- ASN1_TAILQ_FOREACH(m, t->members, members) {
- int width = max_width;
- space(level + 1);
- if (m->ellipsis) {
- fprintf (headerfile, "...");
- } else {
- width -= fprintf(headerfile, "%s", m->name);
- fprintf(headerfile, "%*s", width, "");
- define_asn1(level + 1, m->type);
- if(m->optional)
- fprintf(headerfile, " OPTIONAL");
- }
- if(last_member_p(m))
- fprintf (headerfile, ",");
- fprintf (headerfile, "\n");
- }
- space(level);
- fprintf (headerfile, "}");
- break;
- }
- case TSequenceOf:
- fprintf (headerfile, "SEQUENCE OF ");
- define_asn1 (0, t->subtype);
- break;
- case TSetOf:
- fprintf (headerfile, "SET OF ");
- define_asn1 (0, t->subtype);
- break;
- case TGeneralizedTime:
- fprintf (headerfile, "GeneralizedTime");
- break;
- case TGeneralString:
- fprintf (headerfile, "GeneralString");
- break;
- case TTag: {
- const char *classnames[] = { "UNIVERSAL ", "APPLICATION ",
- "" /* CONTEXT */, "PRIVATE " };
- if(t->tag.tagclass != ASN1_C_UNIV)
- fprintf (headerfile, "[%s%d] ",
- classnames[t->tag.tagclass],
- t->tag.tagvalue);
- if(t->tag.tagenv == TE_IMPLICIT)
- fprintf (headerfile, "IMPLICIT ");
- define_asn1 (level, t->subtype);
- break;
- }
- case TUTCTime:
- fprintf (headerfile, "UTCTime");
- break;
- case TUTF8String:
- space(level);
- fprintf (headerfile, "UTF8String");
- break;
- case TPrintableString:
- space(level);
- fprintf (headerfile, "PrintableString");
- break;
- case TIA5String:
- space(level);
- fprintf (headerfile, "IA5String");
- break;
- case TBMPString:
- space(level);
- fprintf (headerfile, "BMPString");
- break;
- case TUniversalString:
- space(level);
- fprintf (headerfile, "UniversalString");
- break;
- case TVisibleString:
- space(level);
- fprintf (headerfile, "VisibleString");
- break;
- case TOID :
- space(level);
- fprintf(headerfile, "OBJECT IDENTIFIER");
- break;
- case TNull:
- space(level);
- fprintf (headerfile, "NULL");
- break;
- default:
- abort ();
- }
-}
-
-static void
-define_type (int level, const char *name, Type *t, int typedefp, int preservep)
-{
- switch (t->type) {
- case TType:
- space(level);
- fprintf (headerfile, "%s %s;\n", t->symbol->gen_name, name);
- break;
- case TInteger:
- space(level);
- if(t->members) {
- Member *m;
- fprintf (headerfile, "enum %s {\n", typedefp ? name : "");
- ASN1_TAILQ_FOREACH(m, t->members, members) {
- space (level + 1);
- fprintf(headerfile, "%s = %d%s\n", m->gen_name, m->val,
- last_member_p(m));
- }
- fprintf (headerfile, "} %s;\n", name);
- } else if (t->range == NULL) {
- fprintf (headerfile, "heim_integer %s;\n", name);
- } else if (t->range->min == INT_MIN && t->range->max == INT_MAX) {
- fprintf (headerfile, "int %s;\n", name);
- } else if (t->range->min == 0 && t->range->max == UINT_MAX) {
- fprintf (headerfile, "unsigned int %s;\n", name);
- } else if (t->range->min == 0 && t->range->max == INT_MAX) {
- fprintf (headerfile, "unsigned int %s;\n", name);
- } else
- errx(1, "%s: unsupported range %d -> %d",
- name, t->range->min, t->range->max);
- break;
- case TBoolean:
- space(level);
- fprintf (headerfile, "int %s;\n", name);
- break;
- case TOctetString:
- space(level);
- fprintf (headerfile, "heim_octet_string %s;\n", name);
- break;
- case TBitString: {
- Member *m;
- Type i;
- struct range range = { 0, INT_MAX };
-
- i.type = TInteger;
- i.range = &range;
- i.members = NULL;
- i.constraint = NULL;
-
- space(level);
- if(ASN1_TAILQ_EMPTY(t->members))
- fprintf (headerfile, "heim_bit_string %s;\n", name);
- else {
- fprintf (headerfile, "struct %s {\n", typedefp ? name : "");
- ASN1_TAILQ_FOREACH(m, t->members, members) {
- char *n;
-
- asprintf (&n, "%s:1", m->gen_name);
- if (n == NULL)
- errx(1, "malloc");
- define_type (level + 1, n, &i, FALSE, FALSE);
- free (n);
- }
- space(level);
- fprintf (headerfile, "} %s;\n\n", name);
- }
- break;
- }
- case TEnumerated: {
- Member *m;
-
- space(level);
- fprintf (headerfile, "enum %s {\n", typedefp ? name : "");
- ASN1_TAILQ_FOREACH(m, t->members, members) {
- space(level + 1);
- if (m->ellipsis)
- fprintf (headerfile, "/* ... */\n");
- else
- fprintf (headerfile, "%s = %d%s\n", m->gen_name, m->val,
- last_member_p(m));
- }
- space(level);
- fprintf (headerfile, "} %s;\n\n", name);
- break;
- }
- case TSet:
- case TSequence: {
- Member *m;
-
- space(level);
- fprintf (headerfile, "struct %s {\n", typedefp ? name : "");
- if (t->type == TSequence && preservep) {
- space(level + 1);
- fprintf(headerfile, "heim_octet_string _save;\n");
- }
- ASN1_TAILQ_FOREACH(m, t->members, members) {
- if (m->ellipsis) {
- ;
- } else if (m->optional) {
- char *n;
-
- asprintf (&n, "*%s", m->gen_name);
- if (n == NULL)
- errx(1, "malloc");
- define_type (level + 1, n, m->type, FALSE, FALSE);
- free (n);
- } else
- define_type (level + 1, m->gen_name, m->type, FALSE, FALSE);
- }
- space(level);
- fprintf (headerfile, "} %s;\n", name);
- break;
- }
- case TSetOf:
- case TSequenceOf: {
- Type i;
- struct range range = { 0, INT_MAX };
-
- i.type = TInteger;
- i.range = &range;
- i.members = NULL;
- i.constraint = NULL;
-
- space(level);
- fprintf (headerfile, "struct %s {\n", typedefp ? name : "");
- define_type (level + 1, "len", &i, FALSE, FALSE);
- define_type (level + 1, "*val", t->subtype, FALSE, FALSE);
- space(level);
- fprintf (headerfile, "} %s;\n", name);
- break;
- }
- case TGeneralizedTime:
- space(level);
- fprintf (headerfile, "time_t %s;\n", name);
- break;
- case TGeneralString:
- space(level);
- fprintf (headerfile, "heim_general_string %s;\n", name);
- break;
- case TTag:
- define_type (level, name, t->subtype, typedefp, preservep);
- break;
- case TChoice: {
- int first = 1;
- Member *m;
-
- space(level);
- fprintf (headerfile, "struct %s {\n", typedefp ? name : "");
- if (preservep) {
- space(level + 1);
- fprintf(headerfile, "heim_octet_string _save;\n");
- }
- space(level + 1);
- fprintf (headerfile, "enum {\n");
- m = have_ellipsis(t);
- if (m) {
- space(level + 2);
- fprintf (headerfile, "%s = 0,\n", m->label);
- first = 0;
- }
- ASN1_TAILQ_FOREACH(m, t->members, members) {
- space(level + 2);
- if (m->ellipsis)
- fprintf (headerfile, "/* ... */\n");
- else
- fprintf (headerfile, "%s%s%s\n", m->label,
- first ? " = 1" : "",
- last_member_p(m));
- first = 0;
- }
- space(level + 1);
- fprintf (headerfile, "} element;\n");
- space(level + 1);
- fprintf (headerfile, "union {\n");
- ASN1_TAILQ_FOREACH(m, t->members, members) {
- if (m->ellipsis) {
- space(level + 2);
- fprintf(headerfile, "heim_octet_string asn1_ellipsis;\n");
- } else if (m->optional) {
- char *n;
-
- asprintf (&n, "*%s", m->gen_name);
- if (n == NULL)
- errx(1, "malloc");
- define_type (level + 2, n, m->type, FALSE, FALSE);
- free (n);
- } else
- define_type (level + 2, m->gen_name, m->type, FALSE, FALSE);
- }
- space(level + 1);
- fprintf (headerfile, "} u;\n");
- space(level);
- fprintf (headerfile, "} %s;\n", name);
- break;
- }
- case TUTCTime:
- space(level);
- fprintf (headerfile, "time_t %s;\n", name);
- break;
- case TUTF8String:
- space(level);
- fprintf (headerfile, "heim_utf8_string %s;\n", name);
- break;
- case TPrintableString:
- space(level);
- fprintf (headerfile, "heim_printable_string %s;\n", name);
- break;
- case TIA5String:
- space(level);
- fprintf (headerfile, "heim_ia5_string %s;\n", name);
- break;
- case TBMPString:
- space(level);
- fprintf (headerfile, "heim_bmp_string %s;\n", name);
- break;
- case TUniversalString:
- space(level);
- fprintf (headerfile, "heim_universal_string %s;\n", name);
- break;
- case TVisibleString:
- space(level);
- fprintf (headerfile, "heim_visible_string %s;\n", name);
- break;
- case TOID :
- space(level);
- fprintf (headerfile, "heim_oid %s;\n", name);
- break;
- case TNull:
- space(level);
- fprintf (headerfile, "int %s;\n", name);
- break;
- default:
- abort ();
- }
-}
-
-static void
-generate_type_header (const Symbol *s)
-{
- int preservep = preserve_type(s->name) ? TRUE : FALSE;
-
- fprintf (headerfile, "/*\n");
- fprintf (headerfile, "%s ::= ", s->name);
- define_asn1 (0, s->type);
- fprintf (headerfile, "\n*/\n\n");
-
- fprintf (headerfile, "typedef ");
- define_type (0, s->gen_name, s->type, TRUE, preservep);
-
- fprintf (headerfile, "\n");
-}
-
-
-void
-generate_type (const Symbol *s)
-{
- generate_header_of_codefile(s->gen_name);
-
- generate_type_header (s);
- generate_type_encode (s);
- generate_type_decode (s);
- generate_type_free (s);
- generate_type_length (s);
- generate_type_copy (s);
- generate_type_seq (s);
- generate_glue (s->type, s->gen_name);
- fprintf(headerfile, "\n\n");
- close_codefile();
-}
diff --git a/crypto/heimdal/lib/asn1/gen.h b/crypto/heimdal/lib/asn1/gen.h
deleted file mode 100644
index 369b6e3..0000000
--- a/crypto/heimdal/lib/asn1/gen.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 1997 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-/* $Id: gen.h,v 1.4 1999/12/02 17:05:02 joda Exp $ */
-
-#include <stdio.h>
-#include "symbol.h"
-
diff --git a/crypto/heimdal/lib/asn1/gen_copy.c b/crypto/heimdal/lib/asn1/gen_copy.c
deleted file mode 100644
index abf1185..0000000
--- a/crypto/heimdal/lib/asn1/gen_copy.c
+++ /dev/null
@@ -1,249 +0,0 @@
-/*
- * Copyright (c) 1997 - 2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "gen_locl.h"
-
-RCSID("$Id: gen_copy.c 19539 2006-12-28 17:15:05Z lha $");
-
-static int used_fail;
-
-static void
-copy_primitive (const char *typename, const char *from, const char *to)
-{
- fprintf (codefile, "if(der_copy_%s(%s, %s)) goto fail;\n",
- typename, from, to);
- used_fail++;
-}
-
-static void
-copy_type (const char *from, const char *to, const Type *t, int preserve)
-{
- switch (t->type) {
- case TType:
-#if 0
- copy_type (from, to, t->symbol->type, preserve);
-#endif
- fprintf (codefile, "if(copy_%s(%s, %s)) goto fail;\n",
- t->symbol->gen_name, from, to);
- used_fail++;
- break;
- case TInteger:
- if (t->range == NULL && t->members == NULL) {
- copy_primitive ("heim_integer", from, to);
- break;
- }
- case TBoolean:
- case TEnumerated :
- fprintf(codefile, "*(%s) = *(%s);\n", to, from);
- break;
- case TOctetString:
- copy_primitive ("octet_string", from, to);
- break;
- case TBitString:
- if (ASN1_TAILQ_EMPTY(t->members))
- copy_primitive ("bit_string", from, to);
- else
- fprintf(codefile, "*(%s) = *(%s);\n", to, from);
- break;
- case TSet:
- case TSequence:
- case TChoice: {
- Member *m, *have_ellipsis = NULL;
-
- if(t->members == NULL)
- break;
-
- if ((t->type == TSequence || t->type == TChoice) && preserve) {
- fprintf(codefile,
- "{ int ret;\n"
- "ret = der_copy_octet_string(&(%s)->_save, &(%s)->_save);\n"
- "if (ret) goto fail;\n"
- "}\n",
- from, to);
- used_fail++;
- }
-
- if(t->type == TChoice) {
- fprintf(codefile, "(%s)->element = (%s)->element;\n", to, from);
- fprintf(codefile, "switch((%s)->element) {\n", from);
- }
-
- ASN1_TAILQ_FOREACH(m, t->members, members) {
- char *fs;
- char *ts;
-
- if (m->ellipsis) {
- have_ellipsis = m;
- continue;
- }
-
- if(t->type == TChoice)
- fprintf(codefile, "case %s:\n", m->label);
-
- asprintf (&fs, "%s(%s)->%s%s",
- m->optional ? "" : "&", from,
- t->type == TChoice ? "u." : "", m->gen_name);
- if (fs == NULL)
- errx(1, "malloc");
- asprintf (&ts, "%s(%s)->%s%s",
- m->optional ? "" : "&", to,
- t->type == TChoice ? "u." : "", m->gen_name);
- if (ts == NULL)
- errx(1, "malloc");
- if(m->optional){
- fprintf(codefile, "if(%s) {\n", fs);
- fprintf(codefile, "%s = malloc(sizeof(*%s));\n", ts, ts);
- fprintf(codefile, "if(%s == NULL) goto fail;\n", ts);
- used_fail++;
- }
- copy_type (fs, ts, m->type, FALSE);
- if(m->optional){
- fprintf(codefile, "}else\n");
- fprintf(codefile, "%s = NULL;\n", ts);
- }
- free (fs);
- free (ts);
- if(t->type == TChoice)
- fprintf(codefile, "break;\n");
- }
- if(t->type == TChoice) {
- if (have_ellipsis) {
- fprintf(codefile, "case %s: {\n"
- "int ret;\n"
- "ret=der_copy_octet_string(&(%s)->u.%s, &(%s)->u.%s);\n"
- "if (ret) goto fail;\n"
- "break;\n"
- "}\n",
- have_ellipsis->label,
- from, have_ellipsis->gen_name,
- to, have_ellipsis->gen_name);
- used_fail++;
- }
- fprintf(codefile, "}\n");
- }
- break;
- }
- case TSetOf:
- case TSequenceOf: {
- char *f;
- char *T;
-
- fprintf (codefile, "if(((%s)->val = "
- "malloc((%s)->len * sizeof(*(%s)->val))) == NULL && (%s)->len != 0)\n",
- to, from, to, from);
- fprintf (codefile, "goto fail;\n");
- used_fail++;
- fprintf(codefile,
- "for((%s)->len = 0; (%s)->len < (%s)->len; (%s)->len++){\n",
- to, to, from, to);
- asprintf(&f, "&(%s)->val[(%s)->len]", from, to);
- if (f == NULL)
- errx(1, "malloc");
- asprintf(&T, "&(%s)->val[(%s)->len]", to, to);
- if (T == NULL)
- errx(1, "malloc");
- copy_type(f, T, t->subtype, FALSE);
- fprintf(codefile, "}\n");
- free(f);
- free(T);
- break;
- }
- case TGeneralizedTime:
- fprintf(codefile, "*(%s) = *(%s);\n", to, from);
- break;
- case TGeneralString:
- copy_primitive ("general_string", from, to);
- break;
- case TUTCTime:
- fprintf(codefile, "*(%s) = *(%s);\n", to, from);
- break;
- case TUTF8String:
- copy_primitive ("utf8string", from, to);
- break;
- case TPrintableString:
- copy_primitive ("printable_string", from, to);
- break;
- case TIA5String:
- copy_primitive ("ia5_string", from, to);
- break;
- case TBMPString:
- copy_primitive ("bmp_string", from, to);
- break;
- case TUniversalString:
- copy_primitive ("universal_string", from, to);
- break;
- case TVisibleString:
- copy_primitive ("visible_string", from, to);
- break;
- case TTag:
- copy_type (from, to, t->subtype, preserve);
- break;
- case TOID:
- copy_primitive ("oid", from, to);
- break;
- case TNull:
- break;
- default :
- abort ();
- }
-}
-
-void
-generate_type_copy (const Symbol *s)
-{
- int preserve = preserve_type(s->name) ? TRUE : FALSE;
-
- used_fail = 0;
-
- fprintf (headerfile,
- "int copy_%s (const %s *, %s *);\n",
- s->gen_name, s->gen_name, s->gen_name);
-
- fprintf (codefile, "int\n"
- "copy_%s(const %s *from, %s *to)\n"
- "{\n"
- "memset(to, 0, sizeof(*to));\n",
- s->gen_name, s->gen_name, s->gen_name);
- copy_type ("from", "to", s->type, preserve);
- fprintf (codefile, "return 0;\n");
-
- if (used_fail)
- fprintf (codefile, "fail:\n"
- "free_%s(to);\n"
- "return ENOMEM;\n",
- s->gen_name);
-
- fprintf(codefile,
- "}\n\n");
-}
-
diff --git a/crypto/heimdal/lib/asn1/gen_decode.c b/crypto/heimdal/lib/asn1/gen_decode.c
deleted file mode 100644
index face9ba..0000000
--- a/crypto/heimdal/lib/asn1/gen_decode.c
+++ /dev/null
@@ -1,720 +0,0 @@
-/*
- * Copyright (c) 1997 - 2006 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "gen_locl.h"
-#include "lex.h"
-
-RCSID("$Id: gen_decode.c 21503 2007-07-12 11:57:19Z lha $");
-
-static void
-decode_primitive (const char *typename, const char *name, const char *forwstr)
-{
-#if 0
- fprintf (codefile,
- "e = decode_%s(p, len, %s, &l);\n"
- "%s;\n",
- typename,
- name,
- forwstr);
-#else
- fprintf (codefile,
- "e = der_get_%s(p, len, %s, &l);\n"
- "if(e) %s;\np += l; len -= l; ret += l;\n",
- typename,
- name,
- forwstr);
-#endif
-}
-
-static int
-is_primitive_type(int type)
-{
- switch(type) {
- case TInteger:
- case TBoolean:
- case TOctetString:
- case TBitString:
- case TEnumerated:
- case TGeneralizedTime:
- case TGeneralString:
- case TOID:
- case TUTCTime:
- case TUTF8String:
- case TPrintableString:
- case TIA5String:
- case TBMPString:
- case TUniversalString:
- case TVisibleString:
- case TNull:
- return 1;
- default:
- return 0;
- }
-}
-
-static void
-find_tag (const Type *t,
- Der_class *cl, Der_type *ty, unsigned *tag)
-{
- switch (t->type) {
- case TBitString:
- *cl = ASN1_C_UNIV;
- *ty = PRIM;
- *tag = UT_BitString;
- break;
- case TBoolean:
- *cl = ASN1_C_UNIV;
- *ty = PRIM;
- *tag = UT_Boolean;
- break;
- case TChoice:
- errx(1, "Cannot have recursive CHOICE");
- case TEnumerated:
- *cl = ASN1_C_UNIV;
- *ty = PRIM;
- *tag = UT_Enumerated;
- break;
- case TGeneralString:
- *cl = ASN1_C_UNIV;
- *ty = PRIM;
- *tag = UT_GeneralString;
- break;
- case TGeneralizedTime:
- *cl = ASN1_C_UNIV;
- *ty = PRIM;
- *tag = UT_GeneralizedTime;
- break;
- case TIA5String:
- *cl = ASN1_C_UNIV;
- *ty = PRIM;
- *tag = UT_IA5String;
- break;
- case TInteger:
- *cl = ASN1_C_UNIV;
- *ty = PRIM;
- *tag = UT_Integer;
- break;
- case TNull:
- *cl = ASN1_C_UNIV;
- *ty = PRIM;
- *tag = UT_Null;
- break;
- case TOID:
- *cl = ASN1_C_UNIV;
- *ty = PRIM;
- *tag = UT_OID;
- break;
- case TOctetString:
- *cl = ASN1_C_UNIV;
- *ty = PRIM;
- *tag = UT_OctetString;
- break;
- case TPrintableString:
- *cl = ASN1_C_UNIV;
- *ty = PRIM;
- *tag = UT_PrintableString;
- break;
- case TSequence:
- case TSequenceOf:
- *cl = ASN1_C_UNIV;
- *ty = CONS;
- *tag = UT_Sequence;
- break;
- case TSet:
- case TSetOf:
- *cl = ASN1_C_UNIV;
- *ty = CONS;
- *tag = UT_Set;
- break;
- case TTag:
- *cl = t->tag.tagclass;
- *ty = is_primitive_type(t->subtype->type) ? PRIM : CONS;
- *tag = t->tag.tagvalue;
- break;
- case TType:
- if ((t->symbol->stype == Stype && t->symbol->type == NULL)
- || t->symbol->stype == SUndefined) {
- error_message("%s is imported or still undefined, "
- " can't generate tag checking data in CHOICE "
- "without this information",
- t->symbol->name);
- exit(1);
- }
- find_tag(t->symbol->type, cl, ty, tag);
- return;
- case TUTCTime:
- *cl = ASN1_C_UNIV;
- *ty = PRIM;
- *tag = UT_UTCTime;
- break;
- case TUTF8String:
- *cl = ASN1_C_UNIV;
- *ty = PRIM;
- *tag = UT_UTF8String;
- break;
- case TBMPString:
- *cl = ASN1_C_UNIV;
- *ty = PRIM;
- *tag = UT_BMPString;
- break;
- case TUniversalString:
- *cl = ASN1_C_UNIV;
- *ty = PRIM;
- *tag = UT_UniversalString;
- break;
- case TVisibleString:
- *cl = ASN1_C_UNIV;
- *ty = PRIM;
- *tag = UT_VisibleString;
- break;
- default:
- abort();
- }
-}
-
-static void
-range_check(const char *name,
- const char *length,
- const char *forwstr,
- struct range *r)
-{
- if (r->min == r->max + 2 || r->min < r->max)
- fprintf (codefile,
- "if ((%s)->%s > %d) {\n"
- "e = ASN1_MAX_CONSTRAINT; %s;\n"
- "}\n",
- name, length, r->max, forwstr);
- if (r->min - 1 == r->max || r->min < r->max)
- fprintf (codefile,
- "if ((%s)->%s < %d) {\n"
- "e = ASN1_MIN_CONSTRAINT; %s;\n"
- "}\n",
- name, length, r->min, forwstr);
- if (r->max == r->min)
- fprintf (codefile,
- "if ((%s)->%s != %d) {\n"
- "e = ASN1_EXACT_CONSTRAINT; %s;\n"
- "}\n",
- name, length, r->min, forwstr);
-}
-
-static int
-decode_type (const char *name, const Type *t, int optional,
- const char *forwstr, const char *tmpstr)
-{
- switch (t->type) {
- case TType: {
- if (optional)
- fprintf(codefile,
- "%s = calloc(1, sizeof(*%s));\n"
- "if (%s == NULL) %s;\n",
- name, name, name, forwstr);
- fprintf (codefile,
- "e = decode_%s(p, len, %s, &l);\n",
- t->symbol->gen_name, name);
- if (optional) {
- fprintf (codefile,
- "if(e) {\n"
- "free(%s);\n"
- "%s = NULL;\n"
- "} else {\n"
- "p += l; len -= l; ret += l;\n"
- "}\n",
- name, name);
- } else {
- fprintf (codefile,
- "if(e) %s;\n",
- forwstr);
- fprintf (codefile,
- "p += l; len -= l; ret += l;\n");
- }
- break;
- }
- case TInteger:
- if(t->members) {
- fprintf(codefile,
- "{\n"
- "int enumint;\n");
- decode_primitive ("integer", "&enumint", forwstr);
- fprintf(codefile,
- "*%s = enumint;\n"
- "}\n",
- name);
- } else if (t->range == NULL) {
- decode_primitive ("heim_integer", name, forwstr);
- } else if (t->range->min == INT_MIN && t->range->max == INT_MAX) {
- decode_primitive ("integer", name, forwstr);
- } else if (t->range->min == 0 && t->range->max == UINT_MAX) {
- decode_primitive ("unsigned", name, forwstr);
- } else if (t->range->min == 0 && t->range->max == INT_MAX) {
- decode_primitive ("unsigned", name, forwstr);
- } else
- errx(1, "%s: unsupported range %d -> %d",
- name, t->range->min, t->range->max);
- break;
- case TBoolean:
- decode_primitive ("boolean", name, forwstr);
- break;
- case TEnumerated:
- decode_primitive ("enumerated", name, forwstr);
- break;
- case TOctetString:
- decode_primitive ("octet_string", name, forwstr);
- if (t->range)
- range_check(name, "length", forwstr, t->range);
- break;
- case TBitString: {
- Member *m;
- int pos = 0;
-
- if (ASN1_TAILQ_EMPTY(t->members)) {
- decode_primitive ("bit_string", name, forwstr);
- break;
- }
- fprintf(codefile,
- "if (len < 1) return ASN1_OVERRUN;\n"
- "p++; len--; ret++;\n");
- fprintf(codefile,
- "do {\n"
- "if (len < 1) break;\n");
- ASN1_TAILQ_FOREACH(m, t->members, members) {
- while (m->val / 8 > pos / 8) {
- fprintf (codefile,
- "p++; len--; ret++;\n"
- "if (len < 1) break;\n");
- pos += 8;
- }
- fprintf (codefile,
- "(%s)->%s = (*p >> %d) & 1;\n",
- name, m->gen_name, 7 - m->val % 8);
- }
- fprintf(codefile,
- "} while(0);\n");
- fprintf (codefile,
- "p += len; ret += len;\n");
- break;
- }
- case TSequence: {
- Member *m;
-
- if (t->members == NULL)
- break;
-
- ASN1_TAILQ_FOREACH(m, t->members, members) {
- char *s;
-
- if (m->ellipsis)
- continue;
-
- asprintf (&s, "%s(%s)->%s", m->optional ? "" : "&",
- name, m->gen_name);
- if (s == NULL)
- errx(1, "malloc");
- decode_type (s, m->type, m->optional, forwstr, m->gen_name);
- free (s);
- }
-
- break;
- }
- case TSet: {
- Member *m;
- unsigned int memno;
-
- if(t->members == NULL)
- break;
-
- fprintf(codefile, "{\n");
- fprintf(codefile, "unsigned int members = 0;\n");
- fprintf(codefile, "while(len > 0) {\n");
- fprintf(codefile,
- "Der_class class;\n"
- "Der_type type;\n"
- "int tag;\n"
- "e = der_get_tag (p, len, &class, &type, &tag, NULL);\n"
- "if(e) %s;\n", forwstr);
- fprintf(codefile, "switch (MAKE_TAG(class, type, tag)) {\n");
- memno = 0;
- ASN1_TAILQ_FOREACH(m, t->members, members) {
- char *s;
-
- assert(m->type->type == TTag);
-
- fprintf(codefile, "case MAKE_TAG(%s, %s, %s):\n",
- classname(m->type->tag.tagclass),
- is_primitive_type(m->type->subtype->type) ? "PRIM" : "CONS",
- valuename(m->type->tag.tagclass, m->type->tag.tagvalue));
-
- asprintf (&s, "%s(%s)->%s", m->optional ? "" : "&", name, m->gen_name);
- if (s == NULL)
- errx(1, "malloc");
- if(m->optional)
- fprintf(codefile,
- "%s = calloc(1, sizeof(*%s));\n"
- "if (%s == NULL) { e = ENOMEM; %s; }\n",
- s, s, s, forwstr);
- decode_type (s, m->type, 0, forwstr, m->gen_name);
- free (s);
-
- fprintf(codefile, "members |= (1 << %d);\n", memno);
- memno++;
- fprintf(codefile, "break;\n");
- }
- fprintf(codefile,
- "default:\n"
- "return ASN1_MISPLACED_FIELD;\n"
- "break;\n");
- fprintf(codefile, "}\n");
- fprintf(codefile, "}\n");
- memno = 0;
- ASN1_TAILQ_FOREACH(m, t->members, members) {
- char *s;
-
- asprintf (&s, "%s->%s", name, m->gen_name);
- if (s == NULL)
- errx(1, "malloc");
- fprintf(codefile, "if((members & (1 << %d)) == 0)\n", memno);
- if(m->optional)
- fprintf(codefile, "%s = NULL;\n", s);
- else if(m->defval)
- gen_assign_defval(s, m->defval);
- else
- fprintf(codefile, "return ASN1_MISSING_FIELD;\n");
- free(s);
- memno++;
- }
- fprintf(codefile, "}\n");
- break;
- }
- case TSetOf:
- case TSequenceOf: {
- char *n;
- char *sname;
-
- fprintf (codefile,
- "{\n"
- "size_t %s_origlen = len;\n"
- "size_t %s_oldret = ret;\n"
- "size_t %s_olen = 0;\n"
- "void *%s_tmp;\n"
- "ret = 0;\n"
- "(%s)->len = 0;\n"
- "(%s)->val = NULL;\n",
- tmpstr,
- tmpstr,
- tmpstr,
- tmpstr,
- name,
- name);
-
- fprintf (codefile,
- "while(ret < %s_origlen) {\n"
- "size_t %s_nlen = %s_olen + sizeof(*((%s)->val));\n"
- "if (%s_olen > %s_nlen) { e = ASN1_OVERFLOW; %s; }\n"
- "%s_olen = %s_nlen;\n"
- "%s_tmp = realloc((%s)->val, %s_olen);\n"
- "if (%s_tmp == NULL) { e = ENOMEM; %s; }\n"
- "(%s)->val = %s_tmp;\n",
- tmpstr,
- tmpstr, tmpstr, name,
- tmpstr, tmpstr, forwstr,
- tmpstr, tmpstr,
- tmpstr, name, tmpstr,
- tmpstr, forwstr,
- name, tmpstr);
-
- asprintf (&n, "&(%s)->val[(%s)->len]", name, name);
- if (n == NULL)
- errx(1, "malloc");
- asprintf (&sname, "%s_s_of", tmpstr);
- if (sname == NULL)
- errx(1, "malloc");
- decode_type (n, t->subtype, 0, forwstr, sname);
- fprintf (codefile,
- "(%s)->len++;\n"
- "len = %s_origlen - ret;\n"
- "}\n"
- "ret += %s_oldret;\n"
- "}\n",
- name,
- tmpstr, tmpstr);
- if (t->range)
- range_check(name, "len", forwstr, t->range);
- free (n);
- free (sname);
- break;
- }
- case TGeneralizedTime:
- decode_primitive ("generalized_time", name, forwstr);
- break;
- case TGeneralString:
- decode_primitive ("general_string", name, forwstr);
- break;
- case TTag:{
- char *tname;
-
- fprintf(codefile,
- "{\n"
- "size_t %s_datalen, %s_oldlen;\n",
- tmpstr, tmpstr);
- if(dce_fix)
- fprintf(codefile,
- "int dce_fix;\n");
- fprintf(codefile, "e = der_match_tag_and_length(p, len, %s, %s, %s, "
- "&%s_datalen, &l);\n",
- classname(t->tag.tagclass),
- is_primitive_type(t->subtype->type) ? "PRIM" : "CONS",
- valuename(t->tag.tagclass, t->tag.tagvalue),
- tmpstr);
- if(optional) {
- fprintf(codefile,
- "if(e) {\n"
- "%s = NULL;\n"
- "} else {\n"
- "%s = calloc(1, sizeof(*%s));\n"
- "if (%s == NULL) { e = ENOMEM; %s; }\n",
- name, name, name, name, forwstr);
- } else {
- fprintf(codefile, "if(e) %s;\n", forwstr);
- }
- fprintf (codefile,
- "p += l; len -= l; ret += l;\n"
- "%s_oldlen = len;\n",
- tmpstr);
- if(dce_fix)
- fprintf (codefile,
- "if((dce_fix = _heim_fix_dce(%s_datalen, &len)) < 0)\n"
- "{ e = ASN1_BAD_FORMAT; %s; }\n",
- tmpstr, forwstr);
- else
- fprintf(codefile,
- "if (%s_datalen > len) { e = ASN1_OVERRUN; %s; }\n"
- "len = %s_datalen;\n", tmpstr, forwstr, tmpstr);
- asprintf (&tname, "%s_Tag", tmpstr);
- if (tname == NULL)
- errx(1, "malloc");
- decode_type (name, t->subtype, 0, forwstr, tname);
- if(dce_fix)
- fprintf(codefile,
- "if(dce_fix){\n"
- "e = der_match_tag_and_length (p, len, "
- "(Der_class)0,(Der_type)0, UT_EndOfContent, "
- "&%s_datalen, &l);\n"
- "if(e) %s;\np += l; len -= l; ret += l;\n"
- "} else \n", tmpstr, forwstr);
- fprintf(codefile,
- "len = %s_oldlen - %s_datalen;\n",
- tmpstr, tmpstr);
- if(optional)
- fprintf(codefile,
- "}\n");
- fprintf(codefile,
- "}\n");
- free(tname);
- break;
- }
- case TChoice: {
- Member *m, *have_ellipsis = NULL;
- const char *els = "";
-
- if (t->members == NULL)
- break;
-
- ASN1_TAILQ_FOREACH(m, t->members, members) {
- const Type *tt = m->type;
- char *s;
- Der_class cl;
- Der_type ty;
- unsigned tag;
-
- if (m->ellipsis) {
- have_ellipsis = m;
- continue;
- }
-
- find_tag(tt, &cl, &ty, &tag);
-
- fprintf(codefile,
- "%sif (der_match_tag(p, len, %s, %s, %s, NULL) == 0) {\n",
- els,
- classname(cl),
- ty ? "CONS" : "PRIM",
- valuename(cl, tag));
- asprintf (&s, "%s(%s)->u.%s", m->optional ? "" : "&",
- name, m->gen_name);
- if (s == NULL)
- errx(1, "malloc");
- decode_type (s, m->type, m->optional, forwstr, m->gen_name);
- fprintf(codefile,
- "(%s)->element = %s;\n",
- name, m->label);
- free(s);
- fprintf(codefile,
- "}\n");
- els = "else ";
- }
- if (have_ellipsis) {
- fprintf(codefile,
- "else {\n"
- "(%s)->u.%s.data = calloc(1, len);\n"
- "if ((%s)->u.%s.data == NULL) {\n"
- "e = ENOMEM; %s;\n"
- "}\n"
- "(%s)->u.%s.length = len;\n"
- "memcpy((%s)->u.%s.data, p, len);\n"
- "(%s)->element = %s;\n"
- "p += len;\n"
- "ret += len;\n"
- "len -= len;\n"
- "}\n",
- name, have_ellipsis->gen_name,
- name, have_ellipsis->gen_name,
- forwstr,
- name, have_ellipsis->gen_name,
- name, have_ellipsis->gen_name,
- name, have_ellipsis->label);
- } else {
- fprintf(codefile,
- "else {\n"
- "e = ASN1_PARSE_ERROR;\n"
- "%s;\n"
- "}\n",
- forwstr);
- }
- break;
- }
- case TUTCTime:
- decode_primitive ("utctime", name, forwstr);
- break;
- case TUTF8String:
- decode_primitive ("utf8string", name, forwstr);
- break;
- case TPrintableString:
- decode_primitive ("printable_string", name, forwstr);
- break;
- case TIA5String:
- decode_primitive ("ia5_string", name, forwstr);
- break;
- case TBMPString:
- decode_primitive ("bmp_string", name, forwstr);
- break;
- case TUniversalString:
- decode_primitive ("universal_string", name, forwstr);
- break;
- case TVisibleString:
- decode_primitive ("visible_string", name, forwstr);
- break;
- case TNull:
- fprintf (codefile, "/* NULL */\n");
- break;
- case TOID:
- decode_primitive ("oid", name, forwstr);
- break;
- default :
- abort ();
- }
- return 0;
-}
-
-void
-generate_type_decode (const Symbol *s)
-{
- int preserve = preserve_type(s->name) ? TRUE : FALSE;
-
- fprintf (headerfile,
- "int "
- "decode_%s(const unsigned char *, size_t, %s *, size_t *);\n",
- s->gen_name, s->gen_name);
-
- fprintf (codefile, "int\n"
- "decode_%s(const unsigned char *p,"
- " size_t len, %s *data, size_t *size)\n"
- "{\n",
- s->gen_name, s->gen_name);
-
- switch (s->type->type) {
- case TInteger:
- case TBoolean:
- case TOctetString:
- case TOID:
- case TGeneralizedTime:
- case TGeneralString:
- case TUTF8String:
- case TPrintableString:
- case TIA5String:
- case TBMPString:
- case TUniversalString:
- case TVisibleString:
- case TUTCTime:
- case TNull:
- case TEnumerated:
- case TBitString:
- case TSequence:
- case TSequenceOf:
- case TSet:
- case TSetOf:
- case TTag:
- case TType:
- case TChoice:
- fprintf (codefile,
- "size_t ret = 0;\n"
- "size_t l;\n"
- "int e;\n");
- if (preserve)
- fprintf (codefile, "const unsigned char *begin = p;\n");
-
- fprintf (codefile, "\n");
- fprintf (codefile, "memset(data, 0, sizeof(*data));\n"); /* hack to avoid `unused variable' */
-
- decode_type ("data", s->type, 0, "goto fail", "Top");
- if (preserve)
- fprintf (codefile,
- "data->_save.data = calloc(1, ret);\n"
- "if (data->_save.data == NULL) { \n"
- "e = ENOMEM; goto fail; \n"
- "}\n"
- "data->_save.length = ret;\n"
- "memcpy(data->_save.data, begin, ret);\n");
- fprintf (codefile,
- "if(size) *size = ret;\n"
- "return 0;\n");
- fprintf (codefile,
- "fail:\n"
- "free_%s(data);\n"
- "return e;\n",
- s->gen_name);
- break;
- default:
- abort ();
- }
- fprintf (codefile, "}\n\n");
-}
diff --git a/crypto/heimdal/lib/asn1/gen_encode.c b/crypto/heimdal/lib/asn1/gen_encode.c
deleted file mode 100644
index 08f1a94..0000000
--- a/crypto/heimdal/lib/asn1/gen_encode.c
+++ /dev/null
@@ -1,557 +0,0 @@
-/*
- * Copyright (c) 1997 - 2006 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "gen_locl.h"
-
-RCSID("$Id: gen_encode.c 22429 2008-01-13 10:25:50Z lha $");
-
-static void
-encode_primitive (const char *typename, const char *name)
-{
- fprintf (codefile,
- "e = der_put_%s(p, len, %s, &l);\n"
- "if (e) return e;\np -= l; len -= l; ret += l;\n\n",
- typename,
- name);
-}
-
-const char *
-classname(Der_class class)
-{
- const char *cn[] = { "ASN1_C_UNIV", "ASN1_C_APPL",
- "ASN1_C_CONTEXT", "ASN1_C_PRIV" };
- if(class < ASN1_C_UNIV || class > ASN1_C_PRIVATE)
- return "???";
- return cn[class];
-}
-
-
-const char *
-valuename(Der_class class, int value)
-{
- static char s[32];
- struct {
- int value;
- const char *s;
- } *p, values[] = {
-#define X(Y) { Y, #Y }
- X(UT_BMPString),
- X(UT_BitString),
- X(UT_Boolean),
- X(UT_EmbeddedPDV),
- X(UT_Enumerated),
- X(UT_External),
- X(UT_GeneralString),
- X(UT_GeneralizedTime),
- X(UT_GraphicString),
- X(UT_IA5String),
- X(UT_Integer),
- X(UT_Null),
- X(UT_NumericString),
- X(UT_OID),
- X(UT_ObjectDescriptor),
- X(UT_OctetString),
- X(UT_PrintableString),
- X(UT_Real),
- X(UT_RelativeOID),
- X(UT_Sequence),
- X(UT_Set),
- X(UT_TeletexString),
- X(UT_UTCTime),
- X(UT_UTF8String),
- X(UT_UniversalString),
- X(UT_VideotexString),
- X(UT_VisibleString),
-#undef X
- { -1, NULL }
- };
- if(class == ASN1_C_UNIV) {
- for(p = values; p->value != -1; p++)
- if(p->value == value)
- return p->s;
- }
- snprintf(s, sizeof(s), "%d", value);
- return s;
-}
-
-static int
-encode_type (const char *name, const Type *t, const char *tmpstr)
-{
- int constructed = 1;
-
- switch (t->type) {
- case TType:
-#if 0
- encode_type (name, t->symbol->type);
-#endif
- fprintf (codefile,
- "e = encode_%s(p, len, %s, &l);\n"
- "if (e) return e;\np -= l; len -= l; ret += l;\n\n",
- t->symbol->gen_name, name);
- break;
- case TInteger:
- if(t->members) {
- fprintf(codefile,
- "{\n"
- "int enumint = (int)*%s;\n",
- name);
- encode_primitive ("integer", "&enumint");
- fprintf(codefile, "}\n;");
- } else if (t->range == NULL) {
- encode_primitive ("heim_integer", name);
- } else if (t->range->min == INT_MIN && t->range->max == INT_MAX) {
- encode_primitive ("integer", name);
- } else if (t->range->min == 0 && t->range->max == UINT_MAX) {
- encode_primitive ("unsigned", name);
- } else if (t->range->min == 0 && t->range->max == INT_MAX) {
- encode_primitive ("unsigned", name);
- } else
- errx(1, "%s: unsupported range %d -> %d",
- name, t->range->min, t->range->max);
- constructed = 0;
- break;
- case TBoolean:
- encode_primitive ("boolean", name);
- constructed = 0;
- break;
- case TOctetString:
- encode_primitive ("octet_string", name);
- constructed = 0;
- break;
- case TBitString: {
- Member *m;
- int pos;
-
- if (ASN1_TAILQ_EMPTY(t->members)) {
- encode_primitive("bit_string", name);
- constructed = 0;
- break;
- }
-
- fprintf (codefile, "{\n"
- "unsigned char c = 0;\n");
- if (!rfc1510_bitstring)
- fprintf (codefile,
- "int rest = 0;\n"
- "int bit_set = 0;\n");
-#if 0
- pos = t->members->prev->val;
- /* fix for buggy MIT (and OSF?) code */
- if (pos > 31)
- abort ();
-#endif
- /*
- * It seems that if we do not always set pos to 31 here, the MIT
- * code will do the wrong thing.
- *
- * I hate ASN.1 (and DER), but I hate it even more when everybody
- * has to screw it up differently.
- */
- pos = ASN1_TAILQ_LAST(t->members, memhead)->val;
- if (rfc1510_bitstring) {
- if (pos < 31)
- pos = 31;
- }
-
- ASN1_TAILQ_FOREACH_REVERSE(m, t->members, memhead, members) {
- while (m->val / 8 < pos / 8) {
- if (!rfc1510_bitstring)
- fprintf (codefile,
- "if (c != 0 || bit_set) {\n");
- fprintf (codefile,
- "if (len < 1) return ASN1_OVERFLOW;\n"
- "*p-- = c; len--; ret++;\n");
- if (!rfc1510_bitstring)
- fprintf (codefile,
- "if (!bit_set) {\n"
- "rest = 0;\n"
- "while(c) { \n"
- "if (c & 1) break;\n"
- "c = c >> 1;\n"
- "rest++;\n"
- "}\n"
- "bit_set = 1;\n"
- "}\n"
- "}\n");
- fprintf (codefile,
- "c = 0;\n");
- pos -= 8;
- }
- fprintf (codefile,
- "if((%s)->%s) {\n"
- "c |= 1<<%d;\n",
- name, m->gen_name, 7 - m->val % 8);
- fprintf (codefile,
- "}\n");
- }
-
- if (!rfc1510_bitstring)
- fprintf (codefile,
- "if (c != 0 || bit_set) {\n");
- fprintf (codefile,
- "if (len < 1) return ASN1_OVERFLOW;\n"
- "*p-- = c; len--; ret++;\n");
- if (!rfc1510_bitstring)
- fprintf (codefile,
- "if (!bit_set) {\n"
- "rest = 0;\n"
- "if(c) { \n"
- "while(c) { \n"
- "if (c & 1) break;\n"
- "c = c >> 1;\n"
- "rest++;\n"
- "}\n"
- "}\n"
- "}\n"
- "}\n");
-
- fprintf (codefile,
- "if (len < 1) return ASN1_OVERFLOW;\n"
- "*p-- = %s;\n"
- "len -= 1;\n"
- "ret += 1;\n"
- "}\n\n",
- rfc1510_bitstring ? "0" : "rest");
- constructed = 0;
- break;
- }
- case TEnumerated : {
- encode_primitive ("enumerated", name);
- constructed = 0;
- break;
- }
-
- case TSet:
- case TSequence: {
- Member *m;
-
- if (t->members == NULL)
- break;
-
- ASN1_TAILQ_FOREACH_REVERSE(m, t->members, memhead, members) {
- char *s;
-
- if (m->ellipsis)
- continue;
-
- asprintf (&s, "%s(%s)->%s", m->optional ? "" : "&", name, m->gen_name);
- if (s == NULL)
- errx(1, "malloc");
- fprintf(codefile, "/* %s */\n", m->name);
- if (m->optional)
- fprintf (codefile,
- "if(%s) ",
- s);
- else if(m->defval)
- gen_compare_defval(s + 1, m->defval);
- fprintf (codefile, "{\n");
- fprintf (codefile, "size_t %s_oldret = ret;\n", tmpstr);
- fprintf (codefile, "ret = 0;\n");
- encode_type (s, m->type, m->gen_name);
- fprintf (codefile, "ret += %s_oldret;\n", tmpstr);
- fprintf (codefile, "}\n");
- free (s);
- }
- break;
- }
- case TSetOf: {
-
- fprintf(codefile,
- "{\n"
- "struct heim_octet_string *val;\n"
- "size_t elen, totallen = 0;\n"
- "int eret;\n");
-
- fprintf(codefile,
- "if ((%s)->len > UINT_MAX/sizeof(val[0]))\n"
- "return ERANGE;\n",
- name);
-
- fprintf(codefile,
- "val = malloc(sizeof(val[0]) * (%s)->len);\n"
- "if (val == NULL && (%s)->len != 0) return ENOMEM;\n",
- name, name);
-
- fprintf(codefile,
- "for(i = 0; i < (%s)->len; i++) {\n",
- name);
-
- fprintf(codefile,
- "ASN1_MALLOC_ENCODE(%s, val[i].data, "
- "val[i].length, &(%s)->val[i], &elen, eret);\n",
- t->subtype->symbol->gen_name,
- name);
-
- fprintf(codefile,
- "if(eret) {\n"
- "i--;\n"
- "while (i >= 0) {\n"
- "free(val[i].data);\n"
- "i--;\n"
- "}\n"
- "free(val);\n"
- "return eret;\n"
- "}\n"
- "totallen += elen;\n"
- "}\n");
-
- fprintf(codefile,
- "if (totallen > len) {\n"
- "for (i = 0; i < (%s)->len; i++) {\n"
- "free(val[i].data);\n"
- "}\n"
- "free(val);\n"
- "return ASN1_OVERFLOW;\n"
- "}\n",
- name);
-
- fprintf(codefile,
- "qsort(val, (%s)->len, sizeof(val[0]), _heim_der_set_sort);\n",
- name);
-
- fprintf (codefile,
- "for(i = (%s)->len - 1; i >= 0; --i) {\n"
- "p -= val[i].length;\n"
- "ret += val[i].length;\n"
- "memcpy(p + 1, val[i].data, val[i].length);\n"
- "free(val[i].data);\n"
- "}\n"
- "free(val);\n"
- "}\n",
- name);
- break;
- }
- case TSequenceOf: {
- char *n;
- char *sname;
-
- fprintf (codefile,
- "for(i = (%s)->len - 1; i >= 0; --i) {\n"
- "size_t %s_for_oldret = ret;\n"
- "ret = 0;\n",
- name, tmpstr);
- asprintf (&n, "&(%s)->val[i]", name);
- if (n == NULL)
- errx(1, "malloc");
- asprintf (&sname, "%s_S_Of", tmpstr);
- if (sname == NULL)
- errx(1, "malloc");
- encode_type (n, t->subtype, sname);
- fprintf (codefile,
- "ret += %s_for_oldret;\n"
- "}\n",
- tmpstr);
- free (n);
- free (sname);
- break;
- }
- case TGeneralizedTime:
- encode_primitive ("generalized_time", name);
- constructed = 0;
- break;
- case TGeneralString:
- encode_primitive ("general_string", name);
- constructed = 0;
- break;
- case TTag: {
- char *tname;
- int c;
- asprintf (&tname, "%s_tag", tmpstr);
- if (tname == NULL)
- errx(1, "malloc");
- c = encode_type (name, t->subtype, tname);
- fprintf (codefile,
- "e = der_put_length_and_tag (p, len, ret, %s, %s, %s, &l);\n"
- "if (e) return e;\np -= l; len -= l; ret += l;\n\n",
- classname(t->tag.tagclass),
- c ? "CONS" : "PRIM",
- valuename(t->tag.tagclass, t->tag.tagvalue));
- free (tname);
- break;
- }
- case TChoice:{
- Member *m, *have_ellipsis = NULL;
- char *s;
-
- if (t->members == NULL)
- break;
-
- fprintf(codefile, "\n");
-
- asprintf (&s, "(%s)", name);
- if (s == NULL)
- errx(1, "malloc");
- fprintf(codefile, "switch(%s->element) {\n", s);
-
- ASN1_TAILQ_FOREACH_REVERSE(m, t->members, memhead, members) {
- char *s2;
-
- if (m->ellipsis) {
- have_ellipsis = m;
- continue;
- }
-
- fprintf (codefile, "case %s: {", m->label);
- asprintf(&s2, "%s(%s)->u.%s", m->optional ? "" : "&",
- s, m->gen_name);
- if (s2 == NULL)
- errx(1, "malloc");
- if (m->optional)
- fprintf (codefile, "if(%s) {\n", s2);
- fprintf (codefile, "size_t %s_oldret = ret;\n", tmpstr);
- fprintf (codefile, "ret = 0;\n");
- constructed = encode_type (s2, m->type, m->gen_name);
- fprintf (codefile, "ret += %s_oldret;\n", tmpstr);
- if(m->optional)
- fprintf (codefile, "}\n");
- fprintf(codefile, "break;\n");
- fprintf(codefile, "}\n");
- free (s2);
- }
- free (s);
- if (have_ellipsis) {
- fprintf(codefile,
- "case %s: {\n"
- "if (len < (%s)->u.%s.length)\n"
- "return ASN1_OVERFLOW;\n"
- "p -= (%s)->u.%s.length;\n"
- "ret += (%s)->u.%s.length;\n"
- "memcpy(p + 1, (%s)->u.%s.data, (%s)->u.%s.length);\n"
- "break;\n"
- "}\n",
- have_ellipsis->label,
- name, have_ellipsis->gen_name,
- name, have_ellipsis->gen_name,
- name, have_ellipsis->gen_name,
- name, have_ellipsis->gen_name,
- name, have_ellipsis->gen_name);
- }
- fprintf(codefile, "};\n");
- break;
- }
- case TOID:
- encode_primitive ("oid", name);
- constructed = 0;
- break;
- case TUTCTime:
- encode_primitive ("utctime", name);
- constructed = 0;
- break;
- case TUTF8String:
- encode_primitive ("utf8string", name);
- constructed = 0;
- break;
- case TPrintableString:
- encode_primitive ("printable_string", name);
- constructed = 0;
- break;
- case TIA5String:
- encode_primitive ("ia5_string", name);
- constructed = 0;
- break;
- case TBMPString:
- encode_primitive ("bmp_string", name);
- constructed = 0;
- break;
- case TUniversalString:
- encode_primitive ("universal_string", name);
- constructed = 0;
- break;
- case TVisibleString:
- encode_primitive ("visible_string", name);
- constructed = 0;
- break;
- case TNull:
- fprintf (codefile, "/* NULL */\n");
- constructed = 0;
- break;
- default:
- abort ();
- }
- return constructed;
-}
-
-void
-generate_type_encode (const Symbol *s)
-{
- fprintf (headerfile,
- "int "
- "encode_%s(unsigned char *, size_t, const %s *, size_t *);\n",
- s->gen_name, s->gen_name);
-
- fprintf (codefile, "int\n"
- "encode_%s(unsigned char *p, size_t len,"
- " const %s *data, size_t *size)\n"
- "{\n",
- s->gen_name, s->gen_name);
-
- switch (s->type->type) {
- case TInteger:
- case TBoolean:
- case TOctetString:
- case TGeneralizedTime:
- case TGeneralString:
- case TUTCTime:
- case TUTF8String:
- case TPrintableString:
- case TIA5String:
- case TBMPString:
- case TUniversalString:
- case TVisibleString:
- case TNull:
- case TBitString:
- case TEnumerated:
- case TOID:
- case TSequence:
- case TSequenceOf:
- case TSet:
- case TSetOf:
- case TTag:
- case TType:
- case TChoice:
- fprintf (codefile,
- "size_t ret = 0;\n"
- "size_t l;\n"
- "int i, e;\n\n");
- fprintf(codefile, "i = 0;\n"); /* hack to avoid `unused variable' */
-
- encode_type("data", s->type, "Top");
-
- fprintf (codefile, "*size = ret;\n"
- "return 0;\n");
- break;
- default:
- abort ();
- }
- fprintf (codefile, "}\n\n");
-}
diff --git a/crypto/heimdal/lib/asn1/gen_free.c b/crypto/heimdal/lib/asn1/gen_free.c
deleted file mode 100644
index d667c5d..0000000
--- a/crypto/heimdal/lib/asn1/gen_free.c
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Copyright (c) 1997 - 2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "gen_locl.h"
-
-RCSID("$Id: gen_free.c 19539 2006-12-28 17:15:05Z lha $");
-
-static void
-free_primitive (const char *typename, const char *name)
-{
- fprintf (codefile, "der_free_%s(%s);\n", typename, name);
-}
-
-static void
-free_type (const char *name, const Type *t, int preserve)
-{
- switch (t->type) {
- case TType:
-#if 0
- free_type (name, t->symbol->type, preserve);
-#endif
- fprintf (codefile, "free_%s(%s);\n", t->symbol->gen_name, name);
- break;
- case TInteger:
- if (t->range == NULL && t->members == NULL) {
- free_primitive ("heim_integer", name);
- break;
- }
- case TBoolean:
- case TEnumerated :
- case TNull:
- case TGeneralizedTime:
- case TUTCTime:
- break;
- case TBitString:
- if (ASN1_TAILQ_EMPTY(t->members))
- free_primitive("bit_string", name);
- break;
- case TOctetString:
- free_primitive ("octet_string", name);
- break;
- case TChoice:
- case TSet:
- case TSequence: {
- Member *m, *have_ellipsis = NULL;
-
- if (t->members == NULL)
- break;
-
- if ((t->type == TSequence || t->type == TChoice) && preserve)
- fprintf(codefile, "der_free_octet_string(&data->_save);\n");
-
- if(t->type == TChoice)
- fprintf(codefile, "switch((%s)->element) {\n", name);
-
- ASN1_TAILQ_FOREACH(m, t->members, members) {
- char *s;
-
- if (m->ellipsis){
- have_ellipsis = m;
- continue;
- }
-
- if(t->type == TChoice)
- fprintf(codefile, "case %s:\n", m->label);
- asprintf (&s, "%s(%s)->%s%s",
- m->optional ? "" : "&", name,
- t->type == TChoice ? "u." : "", m->gen_name);
- if (s == NULL)
- errx(1, "malloc");
- if(m->optional)
- fprintf(codefile, "if(%s) {\n", s);
- free_type (s, m->type, FALSE);
- if(m->optional)
- fprintf(codefile,
- "free(%s);\n"
- "%s = NULL;\n"
- "}\n",s, s);
- free (s);
- if(t->type == TChoice)
- fprintf(codefile, "break;\n");
- }
-
- if(t->type == TChoice) {
- if (have_ellipsis)
- fprintf(codefile,
- "case %s:\n"
- "der_free_octet_string(&(%s)->u.%s);\n"
- "break;",
- have_ellipsis->label,
- name, have_ellipsis->gen_name);
- fprintf(codefile, "}\n");
- }
- break;
- }
- case TSetOf:
- case TSequenceOf: {
- char *n;
-
- fprintf (codefile, "while((%s)->len){\n", name);
- asprintf (&n, "&(%s)->val[(%s)->len-1]", name, name);
- if (n == NULL)
- errx(1, "malloc");
- free_type(n, t->subtype, FALSE);
- fprintf(codefile,
- "(%s)->len--;\n"
- "}\n",
- name);
- fprintf(codefile,
- "free((%s)->val);\n"
- "(%s)->val = NULL;\n", name, name);
- free(n);
- break;
- }
- case TGeneralString:
- free_primitive ("general_string", name);
- break;
- case TUTF8String:
- free_primitive ("utf8string", name);
- break;
- case TPrintableString:
- free_primitive ("printable_string", name);
- break;
- case TIA5String:
- free_primitive ("ia5_string", name);
- break;
- case TBMPString:
- free_primitive ("bmp_string", name);
- break;
- case TUniversalString:
- free_primitive ("universal_string", name);
- break;
- case TVisibleString:
- free_primitive ("visible_string", name);
- break;
- case TTag:
- free_type (name, t->subtype, preserve);
- break;
- case TOID :
- free_primitive ("oid", name);
- break;
- default :
- abort ();
- }
-}
-
-void
-generate_type_free (const Symbol *s)
-{
- int preserve = preserve_type(s->name) ? TRUE : FALSE;
-
- fprintf (headerfile,
- "void free_%s (%s *);\n",
- s->gen_name, s->gen_name);
-
- fprintf (codefile, "void\n"
- "free_%s(%s *data)\n"
- "{\n",
- s->gen_name, s->gen_name);
-
- free_type ("data", s->type, preserve);
- fprintf (codefile, "}\n\n");
-}
-
diff --git a/crypto/heimdal/lib/asn1/gen_glue.c b/crypto/heimdal/lib/asn1/gen_glue.c
deleted file mode 100644
index 8d8bd15..0000000
--- a/crypto/heimdal/lib/asn1/gen_glue.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (c) 1997, 1999, 2000, 2003 - 2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "gen_locl.h"
-
-RCSID("$Id: gen_glue.c 15617 2005-07-12 06:27:42Z lha $");
-
-static void
-generate_2int (const Type *t, const char *gen_name)
-{
- Member *m;
-
- fprintf (headerfile,
- "unsigned %s2int(%s);\n",
- gen_name, gen_name);
-
- fprintf (codefile,
- "unsigned %s2int(%s f)\n"
- "{\n"
- "unsigned r = 0;\n",
- gen_name, gen_name);
-
- ASN1_TAILQ_FOREACH(m, t->members, members) {
- fprintf (codefile, "if(f.%s) r |= (1U << %d);\n",
- m->gen_name, m->val);
- }
- fprintf (codefile, "return r;\n"
- "}\n\n");
-}
-
-static void
-generate_int2 (const Type *t, const char *gen_name)
-{
- Member *m;
-
- fprintf (headerfile,
- "%s int2%s(unsigned);\n",
- gen_name, gen_name);
-
- fprintf (codefile,
- "%s int2%s(unsigned n)\n"
- "{\n"
- "\t%s flags;\n\n",
- gen_name, gen_name, gen_name);
-
- if(t->members) {
- ASN1_TAILQ_FOREACH(m, t->members, members) {
- fprintf (codefile, "\tflags.%s = (n >> %d) & 1;\n",
- m->gen_name, m->val);
- }
- }
- fprintf (codefile, "\treturn flags;\n"
- "}\n\n");
-}
-
-/*
- * This depends on the bit string being declared in increasing order
- */
-
-static void
-generate_units (const Type *t, const char *gen_name)
-{
- Member *m;
-
- fprintf (headerfile,
- "const struct units * asn1_%s_units(void);",
- gen_name);
-
- fprintf (codefile,
- "static struct units %s_units[] = {\n",
- gen_name);
-
- if(t->members) {
- ASN1_TAILQ_FOREACH_REVERSE(m, t->members, memhead, members) {
- fprintf (codefile,
- "\t{\"%s\",\t1U << %d},\n", m->gen_name, m->val);
- }
- }
-
- fprintf (codefile,
- "\t{NULL,\t0}\n"
- "};\n\n");
-
- fprintf (codefile,
- "const struct units * asn1_%s_units(void){\n"
- "return %s_units;\n"
- "}\n\n",
- gen_name, gen_name);
-
-
-}
-
-void
-generate_glue (const Type *t, const char *gen_name)
-{
- switch(t->type) {
- case TTag:
- generate_glue(t->subtype, gen_name);
- break;
- case TBitString :
- if (!ASN1_TAILQ_EMPTY(t->members)) {
- generate_2int (t, gen_name);
- generate_int2 (t, gen_name);
- generate_units (t, gen_name);
- }
- break;
- default :
- break;
- }
-}
diff --git a/crypto/heimdal/lib/asn1/gen_length.c b/crypto/heimdal/lib/asn1/gen_length.c
deleted file mode 100644
index 4cb5d45..0000000
--- a/crypto/heimdal/lib/asn1/gen_length.c
+++ /dev/null
@@ -1,283 +0,0 @@
-/*
- * Copyright (c) 1997 - 2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "gen_locl.h"
-
-RCSID("$Id: gen_length.c 21503 2007-07-12 11:57:19Z lha $");
-
-static void
-length_primitive (const char *typename,
- const char *name,
- const char *variable)
-{
- fprintf (codefile, "%s += der_length_%s(%s);\n", variable, typename, name);
-}
-
-static size_t
-length_tag(unsigned int tag)
-{
- size_t len = 0;
-
- if(tag <= 30)
- return 1;
- while(tag) {
- tag /= 128;
- len++;
- }
- return len + 1;
-}
-
-
-static int
-length_type (const char *name, const Type *t,
- const char *variable, const char *tmpstr)
-{
- switch (t->type) {
- case TType:
-#if 0
- length_type (name, t->symbol->type);
-#endif
- fprintf (codefile, "%s += length_%s(%s);\n",
- variable, t->symbol->gen_name, name);
- break;
- case TInteger:
- if(t->members) {
- fprintf(codefile,
- "{\n"
- "int enumint = *%s;\n", name);
- length_primitive ("integer", "&enumint", variable);
- fprintf(codefile, "}\n");
- } else if (t->range == NULL) {
- length_primitive ("heim_integer", name, variable);
- } else if (t->range->min == INT_MIN && t->range->max == INT_MAX) {
- length_primitive ("integer", name, variable);
- } else if (t->range->min == 0 && t->range->max == UINT_MAX) {
- length_primitive ("unsigned", name, variable);
- } else if (t->range->min == 0 && t->range->max == INT_MAX) {
- length_primitive ("unsigned", name, variable);
- } else
- errx(1, "%s: unsupported range %d -> %d",
- name, t->range->min, t->range->max);
-
- break;
- case TBoolean:
- fprintf (codefile, "%s += 1;\n", variable);
- break;
- case TEnumerated :
- length_primitive ("enumerated", name, variable);
- break;
- case TOctetString:
- length_primitive ("octet_string", name, variable);
- break;
- case TBitString: {
- if (ASN1_TAILQ_EMPTY(t->members))
- length_primitive("bit_string", name, variable);
- else {
- if (!rfc1510_bitstring) {
- Member *m;
- int pos = ASN1_TAILQ_LAST(t->members, memhead)->val;
-
- fprintf(codefile,
- "do {\n");
- ASN1_TAILQ_FOREACH_REVERSE(m, t->members, memhead, members) {
- while (m->val / 8 < pos / 8) {
- pos -= 8;
- }
- fprintf (codefile,
- "if((%s)->%s) { %s += %d; break; }\n",
- name, m->gen_name, variable, (pos + 8) / 8);
- }
- fprintf(codefile,
- "} while(0);\n");
- fprintf (codefile, "%s += 1;\n", variable);
- } else {
- fprintf (codefile, "%s += 5;\n", variable);
- }
- }
- break;
- }
- case TSet:
- case TSequence:
- case TChoice: {
- Member *m, *have_ellipsis = NULL;
-
- if (t->members == NULL)
- break;
-
- if(t->type == TChoice)
- fprintf (codefile, "switch((%s)->element) {\n", name);
-
- ASN1_TAILQ_FOREACH(m, t->members, members) {
- char *s;
-
- if (m->ellipsis) {
- have_ellipsis = m;
- continue;
- }
-
- if(t->type == TChoice)
- fprintf(codefile, "case %s:\n", m->label);
-
- asprintf (&s, "%s(%s)->%s%s",
- m->optional ? "" : "&", name,
- t->type == TChoice ? "u." : "", m->gen_name);
- if (s == NULL)
- errx(1, "malloc");
- if (m->optional)
- fprintf (codefile, "if(%s)", s);
- else if(m->defval)
- gen_compare_defval(s + 1, m->defval);
- fprintf (codefile, "{\n"
- "size_t %s_oldret = %s;\n"
- "%s = 0;\n", tmpstr, variable, variable);
- length_type (s, m->type, "ret", m->gen_name);
- fprintf (codefile, "ret += %s_oldret;\n", tmpstr);
- fprintf (codefile, "}\n");
- free (s);
- if(t->type == TChoice)
- fprintf(codefile, "break;\n");
- }
- if(t->type == TChoice) {
- if (have_ellipsis)
- fprintf(codefile,
- "case %s:\n"
- "ret += (%s)->u.%s.length;\n"
- "break;\n",
- have_ellipsis->label,
- name,
- have_ellipsis->gen_name);
- fprintf (codefile, "}\n"); /* switch */
- }
- break;
- }
- case TSetOf:
- case TSequenceOf: {
- char *n;
- char *sname;
-
- fprintf (codefile,
- "{\n"
- "int %s_oldret = %s;\n"
- "int i;\n"
- "%s = 0;\n",
- tmpstr, variable, variable);
-
- fprintf (codefile, "for(i = (%s)->len - 1; i >= 0; --i){\n", name);
- fprintf (codefile, "int %s_for_oldret = %s;\n"
- "%s = 0;\n", tmpstr, variable, variable);
- asprintf (&n, "&(%s)->val[i]", name);
- if (n == NULL)
- errx(1, "malloc");
- asprintf (&sname, "%s_S_Of", tmpstr);
- if (sname == NULL)
- errx(1, "malloc");
- length_type(n, t->subtype, variable, sname);
- fprintf (codefile, "%s += %s_for_oldret;\n",
- variable, tmpstr);
- fprintf (codefile, "}\n");
-
- fprintf (codefile,
- "%s += %s_oldret;\n"
- "}\n", variable, tmpstr);
- free(n);
- free(sname);
- break;
- }
- case TGeneralizedTime:
- length_primitive ("generalized_time", name, variable);
- break;
- case TGeneralString:
- length_primitive ("general_string", name, variable);
- break;
- case TUTCTime:
- length_primitive ("utctime", name, variable);
- break;
- case TUTF8String:
- length_primitive ("utf8string", name, variable);
- break;
- case TPrintableString:
- length_primitive ("printable_string", name, variable);
- break;
- case TIA5String:
- length_primitive ("ia5_string", name, variable);
- break;
- case TBMPString:
- length_primitive ("bmp_string", name, variable);
- break;
- case TUniversalString:
- length_primitive ("universal_string", name, variable);
- break;
- case TVisibleString:
- length_primitive ("visible_string", name, variable);
- break;
- case TNull:
- fprintf (codefile, "/* NULL */\n");
- break;
- case TTag:{
- char *tname;
- asprintf(&tname, "%s_tag", tmpstr);
- if (tname == NULL)
- errx(1, "malloc");
- length_type (name, t->subtype, variable, tname);
- fprintf (codefile, "ret += %lu + der_length_len (ret);\n",
- (unsigned long)length_tag(t->tag.tagvalue));
- free(tname);
- break;
- }
- case TOID:
- length_primitive ("oid", name, variable);
- break;
- default :
- abort ();
- }
- return 0;
-}
-
-void
-generate_type_length (const Symbol *s)
-{
- fprintf (headerfile,
- "size_t length_%s(const %s *);\n",
- s->gen_name, s->gen_name);
-
- fprintf (codefile,
- "size_t\n"
- "length_%s(const %s *data)\n"
- "{\n"
- "size_t ret = 0;\n",
- s->gen_name, s->gen_name);
-
- length_type ("data", s->type, "ret", "Top");
- fprintf (codefile, "return ret;\n}\n\n");
-}
-
diff --git a/crypto/heimdal/lib/asn1/gen_locl.h b/crypto/heimdal/lib/asn1/gen_locl.h
deleted file mode 100644
index 8cd4dba..0000000
--- a/crypto/heimdal/lib/asn1/gen_locl.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (c) 1997-2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-/* $Id: gen_locl.h 18008 2006-09-05 12:29:18Z lha $ */
-
-#ifndef __GEN_LOCL_H__
-#define __GEN_LOCL_H__
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <limits.h>
-#include <ctype.h>
-#include <time.h>
-#include <errno.h>
-#include <err.h>
-#include <roken.h>
-#include "hash.h"
-#include "symbol.h"
-#include "asn1-common.h"
-#include "der.h"
-
-void generate_type (const Symbol *);
-void generate_constant (const Symbol *);
-void generate_type_encode (const Symbol *);
-void generate_type_decode (const Symbol *);
-void generate_type_free (const Symbol *);
-void generate_type_length (const Symbol *);
-void generate_type_copy (const Symbol *);
-void generate_type_seq (const Symbol *);
-void generate_glue (const Type *, const char*);
-
-const char *classname(Der_class);
-const char *valuename(Der_class, int);
-
-void gen_compare_defval(const char *, struct value *);
-void gen_assign_defval(const char *, struct value *);
-
-
-void init_generate (const char *, const char *);
-const char *get_filename (void);
-void close_generate(void);
-void add_import(const char *);
-int yyparse(void);
-
-int preserve_type(const char *);
-int seq_type(const char *);
-
-extern FILE *headerfile, *codefile, *logfile;
-extern int dce_fix;
-extern int rfc1510_bitstring;
-
-extern int error_flag;
-
-#endif /* __GEN_LOCL_H__ */
diff --git a/crypto/heimdal/lib/asn1/gen_seq.c b/crypto/heimdal/lib/asn1/gen_seq.c
deleted file mode 100644
index 5477675..0000000
--- a/crypto/heimdal/lib/asn1/gen_seq.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (c) 1997 - 2006 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "gen_locl.h"
-
-RCSID("$Id: gen_seq.c 20561 2007-04-24 16:14:30Z lha $");
-
-void
-generate_type_seq (const Symbol *s)
-{
- char *subname;
- Type *type;
-
- if (!seq_type(s->name))
- return;
- type = s->type;
- while(type->type == TTag)
- type = type->subtype;
-
- if (type->type != TSequenceOf) {
- printf("%s not seq of %d\n", s->name, (int)type->type);
- return;
- }
-
- /*
- * Require the subtype to be a type so we can name it and use
- * copy_/free_
- */
-
- if (type->subtype->type != TType) {
- fprintf(stderr, "%s subtype is not a type, can't generate "
- "sequence code for this case: %d\n",
- s->name, (int)type->subtype->type);
- exit(1);
- }
-
- subname = type->subtype->symbol->gen_name;
-
- fprintf (headerfile,
- "int add_%s (%s *, const %s *);\n"
- "int remove_%s (%s *, unsigned int);\n",
- s->gen_name, s->gen_name, subname,
- s->gen_name, s->gen_name);
-
- fprintf (codefile, "int\n"
- "add_%s(%s *data, const %s *element)\n"
- "{\n",
- s->gen_name, s->gen_name, subname);
-
- fprintf (codefile,
- "int ret;\n"
- "void *ptr;\n"
- "\n"
- "ptr = realloc(data->val, \n"
- "\t(data->len + 1) * sizeof(data->val[0]));\n"
- "if (ptr == NULL) return ENOMEM;\n"
- "data->val = ptr;\n\n"
- "ret = copy_%s(element, &data->val[data->len]);\n"
- "if (ret) return ret;\n"
- "data->len++;\n"
- "return 0;\n",
- subname);
-
- fprintf (codefile, "}\n\n");
-
- fprintf (codefile, "int\n"
- "remove_%s(%s *data, unsigned int element)\n"
- "{\n",
- s->gen_name, s->gen_name);
-
- fprintf (codefile,
- "void *ptr;\n"
- "\n"
- "if (data->len == 0 || element >= data->len)\n"
- "\treturn ASN1_OVERRUN;\n"
- "free_%s(&data->val[element]);\n"
- "data->len--;\n"
- /* don't move if its the last element */
- "if (element < data->len)\n"
- "\tmemmove(&data->val[element], &data->val[element + 1], \n"
- "\t\tsizeof(data->val[0]) * data->len);\n"
- /* resize but don't care about failures since it doesn't matter */
- "ptr = realloc(data->val, data->len * sizeof(data->val[0]));\n"
- "if (ptr != NULL || data->len == 0) data->val = ptr;\n"
- "return 0;\n",
- subname);
-
- fprintf (codefile, "}\n\n");
-}
diff --git a/crypto/heimdal/lib/asn1/hash.c b/crypto/heimdal/lib/asn1/hash.c
deleted file mode 100644
index eeb6b6d..0000000
--- a/crypto/heimdal/lib/asn1/hash.c
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- * Copyright (c) 1997 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-/*
- * Hash table functions
- */
-
-#include "gen_locl.h"
-
-RCSID("$Id: hash.c 17016 2006-04-07 22:16:00Z lha $");
-
-static Hashentry *_search(Hashtab * htab, /* The hash table */
- void *ptr); /* And key */
-
-Hashtab *
-hashtabnew(int sz,
- int (*cmp) (void *, void *),
- unsigned (*hash) (void *))
-{
- Hashtab *htab;
- int i;
-
- assert(sz > 0);
-
- htab = (Hashtab *) malloc(sizeof(Hashtab) + (sz - 1) * sizeof(Hashentry *));
- if (htab == NULL)
- return NULL;
-
- for (i = 0; i < sz; ++i)
- htab->tab[i] = NULL;
-
- htab->cmp = cmp;
- htab->hash = hash;
- htab->sz = sz;
- return htab;
-}
-
-/* Intern search function */
-
-static Hashentry *
-_search(Hashtab * htab, void *ptr)
-{
- Hashentry *hptr;
-
- assert(htab && ptr);
-
- for (hptr = htab->tab[(*htab->hash) (ptr) % htab->sz];
- hptr;
- hptr = hptr->next)
- if ((*htab->cmp) (ptr, hptr->ptr) == 0)
- break;
- return hptr;
-}
-
-/* Search for element in hash table */
-
-void *
-hashtabsearch(Hashtab * htab, void *ptr)
-{
- Hashentry *tmp;
-
- tmp = _search(htab, ptr);
- return tmp ? tmp->ptr : tmp;
-}
-
-/* add element to hash table */
-/* if already there, set new value */
-/* !NULL if succesful */
-
-void *
-hashtabadd(Hashtab * htab, void *ptr)
-{
- Hashentry *h = _search(htab, ptr);
- Hashentry **tabptr;
-
- assert(htab && ptr);
-
- if (h)
- free((void *) h->ptr);
- else {
- h = (Hashentry *) malloc(sizeof(Hashentry));
- if (h == NULL) {
- return NULL;
- }
- tabptr = &htab->tab[(*htab->hash) (ptr) % htab->sz];
- h->next = *tabptr;
- *tabptr = h;
- h->prev = tabptr;
- if (h->next)
- h->next->prev = &h->next;
- }
- h->ptr = ptr;
- return h;
-}
-
-/* delete element with key key. Iff freep, free Hashentry->ptr */
-
-int
-_hashtabdel(Hashtab * htab, void *ptr, int freep)
-{
- Hashentry *h;
-
- assert(htab && ptr);
-
- h = _search(htab, ptr);
- if (h) {
- if (freep)
- free(h->ptr);
- if ((*(h->prev) = h->next))
- h->next->prev = h->prev;
- free(h);
- return 0;
- } else
- return -1;
-}
-
-/* Do something for each element */
-
-void
-hashtabforeach(Hashtab * htab, int (*func) (void *ptr, void *arg),
- void *arg)
-{
- Hashentry **h, *g;
-
- assert(htab);
-
- for (h = htab->tab; h < &htab->tab[htab->sz]; ++h)
- for (g = *h; g; g = g->next)
- if ((*func) (g->ptr, arg))
- return;
-}
-
-/* standard hash-functions for strings */
-
-unsigned
-hashadd(const char *s)
-{ /* Standard hash function */
- unsigned i;
-
- assert(s);
-
- for (i = 0; *s; ++s)
- i += *s;
- return i;
-}
-
-unsigned
-hashcaseadd(const char *s)
-{ /* Standard hash function */
- unsigned i;
-
- assert(s);
-
- for (i = 0; *s; ++s)
- i += toupper((unsigned char)*s);
- return i;
-}
-
-#define TWELVE (sizeof(unsigned))
-#define SEVENTYFIVE (6*sizeof(unsigned))
-#define HIGH_BITS (~((unsigned)(~0) >> TWELVE))
-
-unsigned
-hashjpw(const char *ss)
-{ /* another hash function */
- unsigned h = 0;
- unsigned g;
- const unsigned char *s = (const unsigned char *)ss;
-
- for (; *s; ++s) {
- h = (h << TWELVE) + *s;
- if ((g = h & HIGH_BITS))
- h = (h ^ (g >> SEVENTYFIVE)) & ~HIGH_BITS;
- }
- return h;
-}
diff --git a/crypto/heimdal/lib/asn1/hash.h b/crypto/heimdal/lib/asn1/hash.h
deleted file mode 100644
index 10d8ce9..0000000
--- a/crypto/heimdal/lib/asn1/hash.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (c) 1997 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-/*
- * hash.h. Header file for hash table functions
- */
-
-/* $Id: hash.h 7464 1999-12-02 17:05:13Z joda $ */
-
-struct hashentry { /* Entry in bucket */
- struct hashentry **prev;
- struct hashentry *next;
- void *ptr;
-};
-
-typedef struct hashentry Hashentry;
-
-struct hashtab { /* Hash table */
- int (*cmp)(void *, void *); /* Compare function */
- unsigned (*hash)(void *); /* hash function */
- int sz; /* Size */
- Hashentry *tab[1]; /* The table */
-};
-
-typedef struct hashtab Hashtab;
-
-/* prototypes */
-
-Hashtab *hashtabnew(int sz,
- int (*cmp)(void *, void *),
- unsigned (*hash)(void *)); /* Make new hash table */
-
-void *hashtabsearch(Hashtab *htab, /* The hash table */
- void *ptr); /* The key */
-
-
-void *hashtabadd(Hashtab *htab, /* The hash table */
- void *ptr); /* The element */
-
-int _hashtabdel(Hashtab *htab, /* The table */
- void *ptr, /* Key */
- int freep); /* Free data part? */
-
-void hashtabforeach(Hashtab *htab,
- int (*func)(void *ptr, void *arg),
- void *arg);
-
-unsigned hashadd(const char *s); /* Standard hash function */
-unsigned hashcaseadd(const char *s); /* Standard hash function */
-unsigned hashjpw(const char *s); /* another hash function */
-
-/* macros */
-
- /* Don't free space */
-#define hashtabdel(htab,key) _hashtabdel(htab,key,FALSE)
-
-#define hashtabfree(htab,key) _hashtabdel(htab,key,TRUE) /* Do! */
diff --git a/crypto/heimdal/lib/asn1/heim_asn1.h b/crypto/heimdal/lib/asn1/heim_asn1.h
deleted file mode 100644
index afee6f4..0000000
--- a/crypto/heimdal/lib/asn1/heim_asn1.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2003-2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#ifndef __HEIM_ANY_H__
-#define __HEIM_ANY_H__ 1
-
-int encode_heim_any(unsigned char *, size_t, const heim_any *, size_t *);
-int decode_heim_any(const unsigned char *, size_t, heim_any *, size_t *);
-void free_heim_any(heim_any *);
-size_t length_heim_any(const heim_any *);
-int copy_heim_any(const heim_any *, heim_any *);
-
-int encode_heim_any_set(unsigned char *, size_t,
- const heim_any_set *, size_t *);
-int decode_heim_any_set(const unsigned char *, size_t,
- heim_any_set *,size_t *);
-void free_heim_any_set(heim_any_set *);
-size_t length_heim_any_set(const heim_any_set *);
-int copy_heim_any_set(const heim_any_set *, heim_any_set *);
-int heim_any_cmp(const heim_any_set *, const heim_any_set *);
-
-#endif /* __HEIM_ANY_H__ */
diff --git a/crypto/heimdal/lib/asn1/k5.asn1 b/crypto/heimdal/lib/asn1/k5.asn1
deleted file mode 100644
index 18f1e15..0000000
--- a/crypto/heimdal/lib/asn1/k5.asn1
+++ /dev/null
@@ -1,659 +0,0 @@
--- $Id: k5.asn1 21965 2007-10-18 18:24:36Z lha $
-
-KERBEROS5 DEFINITIONS ::=
-BEGIN
-
-NAME-TYPE ::= INTEGER {
- KRB5_NT_UNKNOWN(0), -- Name type not known
- KRB5_NT_PRINCIPAL(1), -- Just the name of the principal as in
- KRB5_NT_SRV_INST(2), -- Service and other unique instance (krbtgt)
- KRB5_NT_SRV_HST(3), -- Service with host name as instance
- KRB5_NT_SRV_XHST(4), -- Service with host as remaining components
- KRB5_NT_UID(5), -- Unique ID
- KRB5_NT_X500_PRINCIPAL(6), -- PKINIT
- KRB5_NT_SMTP_NAME(7), -- Name in form of SMTP email name
- KRB5_NT_ENTERPRISE_PRINCIPAL(10), -- Windows 2000 UPN
- KRB5_NT_ENT_PRINCIPAL_AND_ID(-130), -- Windows 2000 UPN and SID
- KRB5_NT_MS_PRINCIPAL(-128), -- NT 4 style name
- KRB5_NT_MS_PRINCIPAL_AND_ID(-129) -- NT style name and SID
-}
-
--- message types
-
-MESSAGE-TYPE ::= INTEGER {
- krb-as-req(10), -- Request for initial authentication
- krb-as-rep(11), -- Response to KRB_AS_REQ request
- krb-tgs-req(12), -- Request for authentication based on TGT
- krb-tgs-rep(13), -- Response to KRB_TGS_REQ request
- krb-ap-req(14), -- application request to server
- krb-ap-rep(15), -- Response to KRB_AP_REQ_MUTUAL
- krb-safe(20), -- Safe (checksummed) application message
- krb-priv(21), -- Private (encrypted) application message
- krb-cred(22), -- Private (encrypted) message to forward credentials
- krb-error(30) -- Error response
-}
-
-
--- pa-data types
-
-PADATA-TYPE ::= INTEGER {
- KRB5-PADATA-NONE(0),
- KRB5-PADATA-TGS-REQ(1),
- KRB5-PADATA-AP-REQ(1),
- KRB5-PADATA-ENC-TIMESTAMP(2),
- KRB5-PADATA-PW-SALT(3),
- KRB5-PADATA-ENC-UNIX-TIME(5),
- KRB5-PADATA-SANDIA-SECUREID(6),
- KRB5-PADATA-SESAME(7),
- KRB5-PADATA-OSF-DCE(8),
- KRB5-PADATA-CYBERSAFE-SECUREID(9),
- KRB5-PADATA-AFS3-SALT(10),
- KRB5-PADATA-ETYPE-INFO(11),
- KRB5-PADATA-SAM-CHALLENGE(12), -- (sam/otp)
- KRB5-PADATA-SAM-RESPONSE(13), -- (sam/otp)
- KRB5-PADATA-PK-AS-REQ-19(14), -- (PKINIT-19)
- KRB5-PADATA-PK-AS-REP-19(15), -- (PKINIT-19)
- KRB5-PADATA-PK-AS-REQ-WIN(15), -- (PKINIT - old number)
- KRB5-PADATA-PK-AS-REQ(16), -- (PKINIT-25)
- KRB5-PADATA-PK-AS-REP(17), -- (PKINIT-25)
- KRB5-PADATA-PA-PK-OCSP-RESPONSE(18),
- KRB5-PADATA-ETYPE-INFO2(19),
- KRB5-PADATA-USE-SPECIFIED-KVNO(20),
- KRB5-PADATA-SVR-REFERRAL-INFO(20), --- old ms referral number
- KRB5-PADATA-SAM-REDIRECT(21), -- (sam/otp)
- KRB5-PADATA-GET-FROM-TYPED-DATA(22),
- KRB5-PADATA-SAM-ETYPE-INFO(23),
- KRB5-PADATA-SERVER-REFERRAL(25),
- KRB5-PADATA-TD-KRB-PRINCIPAL(102), -- PrincipalName
- KRB5-PADATA-PK-TD-TRUSTED-CERTIFIERS(104), -- PKINIT
- KRB5-PADATA-PK-TD-CERTIFICATE-INDEX(105), -- PKINIT
- KRB5-PADATA-TD-APP-DEFINED-ERROR(106), -- application specific
- KRB5-PADATA-TD-REQ-NONCE(107), -- INTEGER
- KRB5-PADATA-TD-REQ-SEQ(108), -- INTEGER
- KRB5-PADATA-PA-PAC-REQUEST(128), -- jbrezak@exchange.microsoft.com
- KRB5-PADATA-S4U2SELF(129),
- KRB5-PADATA-PK-AS-09-BINDING(132), -- client send this to
- -- tell KDC that is supports
- -- the asCheckSum in the
- -- PK-AS-REP
- KRB5-PADATA-CLIENT-CANONICALIZED(133) --
-}
-
-AUTHDATA-TYPE ::= INTEGER {
- KRB5-AUTHDATA-IF-RELEVANT(1),
- KRB5-AUTHDATA-INTENDED-FOR_SERVER(2),
- KRB5-AUTHDATA-INTENDED-FOR-APPLICATION-CLASS(3),
- KRB5-AUTHDATA-KDC-ISSUED(4),
- KRB5-AUTHDATA-AND-OR(5),
- KRB5-AUTHDATA-MANDATORY-TICKET-EXTENSIONS(6),
- KRB5-AUTHDATA-IN-TICKET-EXTENSIONS(7),
- KRB5-AUTHDATA-MANDATORY-FOR-KDC(8),
- KRB5-AUTHDATA-INITIAL-VERIFIED-CAS(9),
- KRB5-AUTHDATA-OSF-DCE(64),
- KRB5-AUTHDATA-SESAME(65),
- KRB5-AUTHDATA-OSF-DCE-PKI-CERTID(66),
- KRB5-AUTHDATA-WIN2K-PAC(128),
- KRB5-AUTHDATA-GSS-API-ETYPE-NEGOTIATION(129), -- Authenticator only
- KRB5-AUTHDATA-SIGNTICKET(-17)
-}
-
--- checksumtypes
-
-CKSUMTYPE ::= INTEGER {
- CKSUMTYPE_NONE(0),
- CKSUMTYPE_CRC32(1),
- CKSUMTYPE_RSA_MD4(2),
- CKSUMTYPE_RSA_MD4_DES(3),
- CKSUMTYPE_DES_MAC(4),
- CKSUMTYPE_DES_MAC_K(5),
- CKSUMTYPE_RSA_MD4_DES_K(6),
- CKSUMTYPE_RSA_MD5(7),
- CKSUMTYPE_RSA_MD5_DES(8),
- CKSUMTYPE_RSA_MD5_DES3(9),
- CKSUMTYPE_SHA1_OTHER(10),
- CKSUMTYPE_HMAC_SHA1_DES3(12),
- CKSUMTYPE_SHA1(14),
- CKSUMTYPE_HMAC_SHA1_96_AES_128(15),
- CKSUMTYPE_HMAC_SHA1_96_AES_256(16),
- CKSUMTYPE_GSSAPI(0x8003),
- CKSUMTYPE_HMAC_MD5(-138), -- unofficial microsoft number
- CKSUMTYPE_HMAC_MD5_ENC(-1138) -- even more unofficial
-}
-
---enctypes
-ENCTYPE ::= INTEGER {
- ETYPE_NULL(0),
- ETYPE_DES_CBC_CRC(1),
- ETYPE_DES_CBC_MD4(2),
- ETYPE_DES_CBC_MD5(3),
- ETYPE_DES3_CBC_MD5(5),
- ETYPE_OLD_DES3_CBC_SHA1(7),
- ETYPE_SIGN_DSA_GENERATE(8),
- ETYPE_ENCRYPT_RSA_PRIV(9),
- ETYPE_ENCRYPT_RSA_PUB(10),
- ETYPE_DES3_CBC_SHA1(16), -- with key derivation
- ETYPE_AES128_CTS_HMAC_SHA1_96(17),
- ETYPE_AES256_CTS_HMAC_SHA1_96(18),
- ETYPE_ARCFOUR_HMAC_MD5(23),
- ETYPE_ARCFOUR_HMAC_MD5_56(24),
- ETYPE_ENCTYPE_PK_CROSS(48),
--- some "old" windows types
- ETYPE_ARCFOUR_MD4(-128),
- ETYPE_ARCFOUR_HMAC_OLD(-133),
- ETYPE_ARCFOUR_HMAC_OLD_EXP(-135),
--- these are for Heimdal internal use
- ETYPE_DES_CBC_NONE(-0x1000),
- ETYPE_DES3_CBC_NONE(-0x1001),
- ETYPE_DES_CFB64_NONE(-0x1002),
- ETYPE_DES_PCBC_NONE(-0x1003),
- ETYPE_DIGEST_MD5_NONE(-0x1004), -- private use, lukeh@padl.com
- ETYPE_CRAM_MD5_NONE(-0x1005) -- private use, lukeh@padl.com
-}
-
-
-
-
--- this is sugar to make something ASN1 does not have: unsigned
-
-krb5uint32 ::= INTEGER (0..4294967295)
-krb5int32 ::= INTEGER (-2147483648..2147483647)
-
-KerberosString ::= GeneralString
-
-Realm ::= GeneralString
-PrincipalName ::= SEQUENCE {
- name-type[0] NAME-TYPE,
- name-string[1] SEQUENCE OF GeneralString
-}
-
--- this is not part of RFC1510
-Principal ::= SEQUENCE {
- name[0] PrincipalName,
- realm[1] Realm
-}
-
-HostAddress ::= SEQUENCE {
- addr-type[0] krb5int32,
- address[1] OCTET STRING
-}
-
--- This is from RFC1510.
---
--- HostAddresses ::= SEQUENCE OF SEQUENCE {
--- addr-type[0] krb5int32,
--- address[1] OCTET STRING
--- }
-
--- This seems much better.
-HostAddresses ::= SEQUENCE OF HostAddress
-
-
-KerberosTime ::= GeneralizedTime -- Specifying UTC time zone (Z)
-
-AuthorizationDataElement ::= SEQUENCE {
- ad-type[0] krb5int32,
- ad-data[1] OCTET STRING
-}
-
-AuthorizationData ::= SEQUENCE OF AuthorizationDataElement
-
-APOptions ::= BIT STRING {
- reserved(0),
- use-session-key(1),
- mutual-required(2)
-}
-
-TicketFlags ::= BIT STRING {
- reserved(0),
- forwardable(1),
- forwarded(2),
- proxiable(3),
- proxy(4),
- may-postdate(5),
- postdated(6),
- invalid(7),
- renewable(8),
- initial(9),
- pre-authent(10),
- hw-authent(11),
- transited-policy-checked(12),
- ok-as-delegate(13),
- anonymous(14)
-}
-
-KDCOptions ::= BIT STRING {
- reserved(0),
- forwardable(1),
- forwarded(2),
- proxiable(3),
- proxy(4),
- allow-postdate(5),
- postdated(6),
- unused7(7),
- renewable(8),
- unused9(9),
- unused10(10),
- unused11(11),
- request-anonymous(14),
- canonicalize(15),
- constrained-delegation(16), -- ms extension
- disable-transited-check(26),
- renewable-ok(27),
- enc-tkt-in-skey(28),
- renew(30),
- validate(31)
-}
-
-LR-TYPE ::= INTEGER {
- LR_NONE(0), -- no information
- LR_INITIAL_TGT(1), -- last initial TGT request
- LR_INITIAL(2), -- last initial request
- LR_ISSUE_USE_TGT(3), -- time of newest TGT used
- LR_RENEWAL(4), -- time of last renewal
- LR_REQUEST(5), -- time of last request (of any type)
- LR_PW_EXPTIME(6), -- expiration time of password
- LR_ACCT_EXPTIME(7) -- expiration time of account
-}
-
-LastReq ::= SEQUENCE OF SEQUENCE {
- lr-type[0] LR-TYPE,
- lr-value[1] KerberosTime
-}
-
-
-EncryptedData ::= SEQUENCE {
- etype[0] ENCTYPE, -- EncryptionType
- kvno[1] krb5int32 OPTIONAL,
- cipher[2] OCTET STRING -- ciphertext
-}
-
-EncryptionKey ::= SEQUENCE {
- keytype[0] krb5int32,
- keyvalue[1] OCTET STRING
-}
-
--- encoded Transited field
-TransitedEncoding ::= SEQUENCE {
- tr-type[0] krb5int32, -- must be registered
- contents[1] OCTET STRING
-}
-
-Ticket ::= [APPLICATION 1] SEQUENCE {
- tkt-vno[0] krb5int32,
- realm[1] Realm,
- sname[2] PrincipalName,
- enc-part[3] EncryptedData
-}
--- Encrypted part of ticket
-EncTicketPart ::= [APPLICATION 3] SEQUENCE {
- flags[0] TicketFlags,
- key[1] EncryptionKey,
- crealm[2] Realm,
- cname[3] PrincipalName,
- transited[4] TransitedEncoding,
- authtime[5] KerberosTime,
- starttime[6] KerberosTime OPTIONAL,
- endtime[7] KerberosTime,
- renew-till[8] KerberosTime OPTIONAL,
- caddr[9] HostAddresses OPTIONAL,
- authorization-data[10] AuthorizationData OPTIONAL
-}
-
-Checksum ::= SEQUENCE {
- cksumtype[0] CKSUMTYPE,
- checksum[1] OCTET STRING
-}
-
-Authenticator ::= [APPLICATION 2] SEQUENCE {
- authenticator-vno[0] krb5int32,
- crealm[1] Realm,
- cname[2] PrincipalName,
- cksum[3] Checksum OPTIONAL,
- cusec[4] krb5int32,
- ctime[5] KerberosTime,
- subkey[6] EncryptionKey OPTIONAL,
- seq-number[7] krb5uint32 OPTIONAL,
- authorization-data[8] AuthorizationData OPTIONAL
-}
-
-PA-DATA ::= SEQUENCE {
- -- might be encoded AP-REQ
- padata-type[1] PADATA-TYPE,
- padata-value[2] OCTET STRING
-}
-
-ETYPE-INFO-ENTRY ::= SEQUENCE {
- etype[0] ENCTYPE,
- salt[1] OCTET STRING OPTIONAL,
- salttype[2] krb5int32 OPTIONAL
-}
-
-ETYPE-INFO ::= SEQUENCE OF ETYPE-INFO-ENTRY
-
-ETYPE-INFO2-ENTRY ::= SEQUENCE {
- etype[0] ENCTYPE,
- salt[1] KerberosString OPTIONAL,
- s2kparams[2] OCTET STRING OPTIONAL
-}
-
-ETYPE-INFO2 ::= SEQUENCE SIZE (1..MAX) OF ETYPE-INFO2-ENTRY
-
-METHOD-DATA ::= SEQUENCE OF PA-DATA
-
-TypedData ::= SEQUENCE {
- data-type[0] krb5int32,
- data-value[1] OCTET STRING OPTIONAL
-}
-
-TYPED-DATA ::= SEQUENCE SIZE (1..MAX) OF TypedData
-
-KDC-REQ-BODY ::= SEQUENCE {
- kdc-options[0] KDCOptions,
- cname[1] PrincipalName OPTIONAL, -- Used only in AS-REQ
- realm[2] Realm, -- Server's realm
- -- Also client's in AS-REQ
- sname[3] PrincipalName OPTIONAL,
- from[4] KerberosTime OPTIONAL,
- till[5] KerberosTime OPTIONAL,
- rtime[6] KerberosTime OPTIONAL,
- nonce[7] krb5int32,
- etype[8] SEQUENCE OF ENCTYPE, -- EncryptionType,
- -- in preference order
- addresses[9] HostAddresses OPTIONAL,
- enc-authorization-data[10] EncryptedData OPTIONAL,
- -- Encrypted AuthorizationData encoding
- additional-tickets[11] SEQUENCE OF Ticket OPTIONAL
-}
-
-KDC-REQ ::= SEQUENCE {
- pvno[1] krb5int32,
- msg-type[2] MESSAGE-TYPE,
- padata[3] METHOD-DATA OPTIONAL,
- req-body[4] KDC-REQ-BODY
-}
-
-AS-REQ ::= [APPLICATION 10] KDC-REQ
-TGS-REQ ::= [APPLICATION 12] KDC-REQ
-
--- padata-type ::= PA-ENC-TIMESTAMP
--- padata-value ::= EncryptedData - PA-ENC-TS-ENC
-
-PA-ENC-TS-ENC ::= SEQUENCE {
- patimestamp[0] KerberosTime, -- client's time
- pausec[1] krb5int32 OPTIONAL
-}
-
--- draft-brezak-win2k-krb-authz-01
-PA-PAC-REQUEST ::= SEQUENCE {
- include-pac[0] BOOLEAN -- Indicates whether a PAC
- -- should be included or not
-}
-
--- PacketCable provisioning server location, PKT-SP-SEC-I09-030728.pdf
-PROV-SRV-LOCATION ::= GeneralString
-
-KDC-REP ::= SEQUENCE {
- pvno[0] krb5int32,
- msg-type[1] MESSAGE-TYPE,
- padata[2] METHOD-DATA OPTIONAL,
- crealm[3] Realm,
- cname[4] PrincipalName,
- ticket[5] Ticket,
- enc-part[6] EncryptedData
-}
-
-AS-REP ::= [APPLICATION 11] KDC-REP
-TGS-REP ::= [APPLICATION 13] KDC-REP
-
-EncKDCRepPart ::= SEQUENCE {
- key[0] EncryptionKey,
- last-req[1] LastReq,
- nonce[2] krb5int32,
- key-expiration[3] KerberosTime OPTIONAL,
- flags[4] TicketFlags,
- authtime[5] KerberosTime,
- starttime[6] KerberosTime OPTIONAL,
- endtime[7] KerberosTime,
- renew-till[8] KerberosTime OPTIONAL,
- srealm[9] Realm,
- sname[10] PrincipalName,
- caddr[11] HostAddresses OPTIONAL,
- encrypted-pa-data[12] METHOD-DATA OPTIONAL
-}
-
-EncASRepPart ::= [APPLICATION 25] EncKDCRepPart
-EncTGSRepPart ::= [APPLICATION 26] EncKDCRepPart
-
-AP-REQ ::= [APPLICATION 14] SEQUENCE {
- pvno[0] krb5int32,
- msg-type[1] MESSAGE-TYPE,
- ap-options[2] APOptions,
- ticket[3] Ticket,
- authenticator[4] EncryptedData
-}
-
-AP-REP ::= [APPLICATION 15] SEQUENCE {
- pvno[0] krb5int32,
- msg-type[1] MESSAGE-TYPE,
- enc-part[2] EncryptedData
-}
-
-EncAPRepPart ::= [APPLICATION 27] SEQUENCE {
- ctime[0] KerberosTime,
- cusec[1] krb5int32,
- subkey[2] EncryptionKey OPTIONAL,
- seq-number[3] krb5uint32 OPTIONAL
-}
-
-KRB-SAFE-BODY ::= SEQUENCE {
- user-data[0] OCTET STRING,
- timestamp[1] KerberosTime OPTIONAL,
- usec[2] krb5int32 OPTIONAL,
- seq-number[3] krb5uint32 OPTIONAL,
- s-address[4] HostAddress OPTIONAL,
- r-address[5] HostAddress OPTIONAL
-}
-
-KRB-SAFE ::= [APPLICATION 20] SEQUENCE {
- pvno[0] krb5int32,
- msg-type[1] MESSAGE-TYPE,
- safe-body[2] KRB-SAFE-BODY,
- cksum[3] Checksum
-}
-
-KRB-PRIV ::= [APPLICATION 21] SEQUENCE {
- pvno[0] krb5int32,
- msg-type[1] MESSAGE-TYPE,
- enc-part[3] EncryptedData
-}
-EncKrbPrivPart ::= [APPLICATION 28] SEQUENCE {
- user-data[0] OCTET STRING,
- timestamp[1] KerberosTime OPTIONAL,
- usec[2] krb5int32 OPTIONAL,
- seq-number[3] krb5uint32 OPTIONAL,
- s-address[4] HostAddress OPTIONAL, -- sender's addr
- r-address[5] HostAddress OPTIONAL -- recip's addr
-}
-
-KRB-CRED ::= [APPLICATION 22] SEQUENCE {
- pvno[0] krb5int32,
- msg-type[1] MESSAGE-TYPE, -- KRB_CRED
- tickets[2] SEQUENCE OF Ticket,
- enc-part[3] EncryptedData
-}
-
-KrbCredInfo ::= SEQUENCE {
- key[0] EncryptionKey,
- prealm[1] Realm OPTIONAL,
- pname[2] PrincipalName OPTIONAL,
- flags[3] TicketFlags OPTIONAL,
- authtime[4] KerberosTime OPTIONAL,
- starttime[5] KerberosTime OPTIONAL,
- endtime[6] KerberosTime OPTIONAL,
- renew-till[7] KerberosTime OPTIONAL,
- srealm[8] Realm OPTIONAL,
- sname[9] PrincipalName OPTIONAL,
- caddr[10] HostAddresses OPTIONAL
-}
-
-EncKrbCredPart ::= [APPLICATION 29] SEQUENCE {
- ticket-info[0] SEQUENCE OF KrbCredInfo,
- nonce[1] krb5int32 OPTIONAL,
- timestamp[2] KerberosTime OPTIONAL,
- usec[3] krb5int32 OPTIONAL,
- s-address[4] HostAddress OPTIONAL,
- r-address[5] HostAddress OPTIONAL
-}
-
-KRB-ERROR ::= [APPLICATION 30] SEQUENCE {
- pvno[0] krb5int32,
- msg-type[1] MESSAGE-TYPE,
- ctime[2] KerberosTime OPTIONAL,
- cusec[3] krb5int32 OPTIONAL,
- stime[4] KerberosTime,
- susec[5] krb5int32,
- error-code[6] krb5int32,
- crealm[7] Realm OPTIONAL,
- cname[8] PrincipalName OPTIONAL,
- realm[9] Realm, -- Correct realm
- sname[10] PrincipalName, -- Correct name
- e-text[11] GeneralString OPTIONAL,
- e-data[12] OCTET STRING OPTIONAL
-}
-
-ChangePasswdDataMS ::= SEQUENCE {
- newpasswd[0] OCTET STRING,
- targname[1] PrincipalName OPTIONAL,
- targrealm[2] Realm OPTIONAL
-}
-
-EtypeList ::= SEQUENCE OF krb5int32
- -- the client's proposed enctype list in
- -- decreasing preference order, favorite choice first
-
-krb5-pvno krb5int32 ::= 5 -- current Kerberos protocol version number
-
--- transited encodings
-
-DOMAIN-X500-COMPRESS krb5int32 ::= 1
-
--- authorization data primitives
-
-AD-IF-RELEVANT ::= AuthorizationData
-
-AD-KDCIssued ::= SEQUENCE {
- ad-checksum[0] Checksum,
- i-realm[1] Realm OPTIONAL,
- i-sname[2] PrincipalName OPTIONAL,
- elements[3] AuthorizationData
-}
-
-AD-AND-OR ::= SEQUENCE {
- condition-count[0] INTEGER,
- elements[1] AuthorizationData
-}
-
-AD-MANDATORY-FOR-KDC ::= AuthorizationData
-
--- PA-SAM-RESPONSE-2/PA-SAM-RESPONSE-2
-
-PA-SAM-TYPE ::= INTEGER {
- PA_SAM_TYPE_ENIGMA(1), -- Enigma Logic
- PA_SAM_TYPE_DIGI_PATH(2), -- Digital Pathways
- PA_SAM_TYPE_SKEY_K0(3), -- S/key where KDC has key 0
- PA_SAM_TYPE_SKEY(4), -- Traditional S/Key
- PA_SAM_TYPE_SECURID(5), -- Security Dynamics
- PA_SAM_TYPE_CRYPTOCARD(6) -- CRYPTOCard
-}
-
-PA-SAM-REDIRECT ::= HostAddresses
-
-SAMFlags ::= BIT STRING {
- use-sad-as-key(0),
- send-encrypted-sad(1),
- must-pk-encrypt-sad(2)
-}
-
-PA-SAM-CHALLENGE-2-BODY ::= SEQUENCE {
- sam-type[0] krb5int32,
- sam-flags[1] SAMFlags,
- sam-type-name[2] GeneralString OPTIONAL,
- sam-track-id[3] GeneralString OPTIONAL,
- sam-challenge-label[4] GeneralString OPTIONAL,
- sam-challenge[5] GeneralString OPTIONAL,
- sam-response-prompt[6] GeneralString OPTIONAL,
- sam-pk-for-sad[7] EncryptionKey OPTIONAL,
- sam-nonce[8] krb5int32,
- sam-etype[9] krb5int32,
- ...
-}
-
-PA-SAM-CHALLENGE-2 ::= SEQUENCE {
- sam-body[0] PA-SAM-CHALLENGE-2-BODY,
- sam-cksum[1] SEQUENCE OF Checksum, -- (1..MAX)
- ...
-}
-
-PA-SAM-RESPONSE-2 ::= SEQUENCE {
- sam-type[0] krb5int32,
- sam-flags[1] SAMFlags,
- sam-track-id[2] GeneralString OPTIONAL,
- sam-enc-nonce-or-sad[3] EncryptedData, -- PA-ENC-SAM-RESPONSE-ENC
- sam-nonce[4] krb5int32,
- ...
-}
-
-PA-ENC-SAM-RESPONSE-ENC ::= SEQUENCE {
- sam-nonce[0] krb5int32,
- sam-sad[1] GeneralString OPTIONAL,
- ...
-}
-
-PA-S4U2Self ::= SEQUENCE {
- name[0] PrincipalName,
- realm[1] Realm,
- cksum[2] Checksum,
- auth[3] GeneralString
-}
-
-KRB5SignedPathPrincipals ::= SEQUENCE OF Principal
-
--- never encoded on the wire, just used to checksum over
-KRB5SignedPathData ::= SEQUENCE {
- encticket[0] EncTicketPart,
- delegated[1] KRB5SignedPathPrincipals OPTIONAL
-}
-
-KRB5SignedPath ::= SEQUENCE {
- -- DERcoded KRB5SignedPathData
- -- krbtgt key (etype), KeyUsage = XXX
- etype[0] ENCTYPE,
- cksum[1] Checksum,
- -- srvs delegated though
- delegated[2] KRB5SignedPathPrincipals OPTIONAL
-}
-
-PA-ClientCanonicalizedNames ::= SEQUENCE{
- requested-name [0] PrincipalName,
- real-name [1] PrincipalName
-}
-
-PA-ClientCanonicalized ::= SEQUENCE {
- names [0] PA-ClientCanonicalizedNames,
- canon-checksum [1] Checksum
-}
-
-AD-LoginAlias ::= SEQUENCE { -- ad-type number TBD --
- login-alias [0] PrincipalName,
- checksum [1] Checksum
-}
-
--- old ms referral
-PA-SvrReferralData ::= SEQUENCE {
- referred-name [1] PrincipalName OPTIONAL,
- referred-realm [0] Realm
-}
-
-END
-
--- etags -r '/\([A-Za-z][-A-Za-z0-9]*\).*::=/\1/' k5.asn1
diff --git a/crypto/heimdal/lib/asn1/kx509.asn1 b/crypto/heimdal/lib/asn1/kx509.asn1
deleted file mode 100644
index fc6a696..0000000
--- a/crypto/heimdal/lib/asn1/kx509.asn1
+++ /dev/null
@@ -1,20 +0,0 @@
--- $Id: kx509.asn1 19546 2006-12-28 21:05:23Z lha $
-
-KX509 DEFINITIONS ::=
-BEGIN
-
-Kx509Request ::= SEQUENCE {
- authenticator OCTET STRING,
- pk-hash OCTET STRING,
- pk-key OCTET STRING
-}
-
-Kx509Response ::= SEQUENCE {
- error-code[0] INTEGER (-2147483648..2147483647)
- OPTIONAL -- DEFAULT 0 --,
- hash[1] OCTET STRING OPTIONAL,
- certificate[2] OCTET STRING OPTIONAL,
- e-text[3] VisibleString OPTIONAL
-}
-
-END
diff --git a/crypto/heimdal/lib/asn1/lex.c b/crypto/heimdal/lib/asn1/lex.c
deleted file mode 100644
index 812bce1..0000000
--- a/crypto/heimdal/lib/asn1/lex.c
+++ /dev/null
@@ -1,2693 +0,0 @@
-
-#line 3 "lex.c"
-
-#define YY_INT_ALIGNED short int
-
-/* A lexical scanner generated by flex */
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 33
-#if YY_FLEX_SUBMINOR_VERSION > 0
-#define FLEX_BETA
-#endif
-
-/* First, we deal with platform-specific or compiler-specific issues. */
-
-/* begin standard C headers. */
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/* end standard C headers. */
-
-/* flex integer type definitions */
-
-#ifndef FLEXINT_H
-#define FLEXINT_H
-
-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-
-#if __STDC_VERSION__ >= 199901L
-
-/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types.
- */
-#ifndef __STDC_LIMIT_MACROS
-#define __STDC_LIMIT_MACROS 1
-#endif
-
-#include <inttypes.h>
-typedef int8_t flex_int8_t;
-typedef uint8_t flex_uint8_t;
-typedef int16_t flex_int16_t;
-typedef uint16_t flex_uint16_t;
-typedef int32_t flex_int32_t;
-typedef uint32_t flex_uint32_t;
-#else
-typedef signed char flex_int8_t;
-typedef short int flex_int16_t;
-typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t;
-typedef unsigned short int flex_uint16_t;
-typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
-
-/* Limits of integral types. */
-#ifndef INT8_MIN
-#define INT8_MIN (-128)
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN (-32767-1)
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN (-2147483647-1)
-#endif
-#ifndef INT8_MAX
-#define INT8_MAX (127)
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX (32767)
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX (2147483647)
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX (255U)
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX (65535U)
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX (4294967295U)
-#endif
-
-#endif /* ! FLEXINT_H */
-
-#ifdef __cplusplus
-
-/* The "const" storage-class-modifier is valid. */
-#define YY_USE_CONST
-
-#else /* ! __cplusplus */
-
-#if __STDC__
-
-#define YY_USE_CONST
-
-#endif /* __STDC__ */
-#endif /* ! __cplusplus */
-
-#ifdef YY_USE_CONST
-#define yyconst const
-#else
-#define yyconst
-#endif
-
-/* Returned upon end-of-file. */
-#define YY_NULL 0
-
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index. If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
- */
-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
-
-/* Enter a start condition. This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
-#define BEGIN (yy_start) = 1 + 2 *
-
-/* Translate the current start state into a value that can be later handed
- * to BEGIN to return to the state. The YYSTATE alias is for lex
- * compatibility.
- */
-#define YY_START (((yy_start) - 1) / 2)
-#define YYSTATE YY_START
-
-/* Action number for EOF rule of a given start state. */
-#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-
-/* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE yyrestart(yyin )
-
-#define YY_END_OF_BUFFER_CHAR 0
-
-/* Size of default input buffer. */
-#ifndef YY_BUF_SIZE
-#define YY_BUF_SIZE 16384
-#endif
-
-/* The state buf must be large enough to hold one state per character in the main buffer.
- */
-#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
-
-#ifndef YY_TYPEDEF_YY_BUFFER_STATE
-#define YY_TYPEDEF_YY_BUFFER_STATE
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-#endif
-
-extern int yyleng;
-
-extern FILE *yyin, *yyout;
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
- #define YY_LESS_LINENO(n)
-
-/* Return all but the first "n" matched characters back to the input stream. */
-#define yyless(n) \
- do \
- { \
- /* Undo effects of setting up yytext. */ \
- int yyless_macro_arg = (n); \
- YY_LESS_LINENO(yyless_macro_arg);\
- *yy_cp = (yy_hold_char); \
- YY_RESTORE_YY_MORE_OFFSET \
- (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
- YY_DO_BEFORE_ACTION; /* set up yytext again */ \
- } \
- while ( 0 )
-
-#define unput(c) yyunput( c, (yytext_ptr) )
-
-/* The following is because we cannot portably get our hands on size_t
- * (without autoconf's help, which isn't available because we want
- * flex-generated scanners to compile on their own).
- */
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef unsigned int yy_size_t;
-#endif
-
-#ifndef YY_STRUCT_YY_BUFFER_STATE
-#define YY_STRUCT_YY_BUFFER_STATE
-struct yy_buffer_state
- {
- FILE *yy_input_file;
-
- char *yy_ch_buf; /* input buffer */
- char *yy_buf_pos; /* current position in input buffer */
-
- /* Size of input buffer in bytes, not including room for EOB
- * characters.
- */
- yy_size_t yy_buf_size;
-
- /* Number of characters read into yy_ch_buf, not including EOB
- * characters.
- */
- int yy_n_chars;
-
- /* Whether we "own" the buffer - i.e., we know we created it,
- * and can realloc() it to grow it, and should free() it to
- * delete it.
- */
- int yy_is_our_buffer;
-
- /* Whether this is an "interactive" input source; if so, and
- * if we're using stdio for input, then we want to use getc()
- * instead of fread(), to make sure we stop fetching input after
- * each newline.
- */
- int yy_is_interactive;
-
- /* Whether we're considered to be at the beginning of a line.
- * If so, '^' rules will be active on the next match, otherwise
- * not.
- */
- int yy_at_bol;
-
- int yy_bs_lineno; /**< The line count. */
- int yy_bs_column; /**< The column count. */
-
- /* Whether to try to fill the input buffer when we reach the
- * end of it.
- */
- int yy_fill_buffer;
-
- int yy_buffer_status;
-
-#define YY_BUFFER_NEW 0
-#define YY_BUFFER_NORMAL 1
- /* When an EOF's been seen but there's still some text to process
- * then we mark the buffer as YY_EOF_PENDING, to indicate that we
- * shouldn't try reading from the input source any more. We might
- * still have a bunch of tokens to match, though, because of
- * possible backing-up.
- *
- * When we actually see the EOF, we change the status to "new"
- * (via yyrestart()), so that the user can continue scanning by
- * just pointing yyin at a new input file.
- */
-#define YY_BUFFER_EOF_PENDING 2
-
- };
-#endif /* !YY_STRUCT_YY_BUFFER_STATE */
-
-/* Stack of input buffers. */
-static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
-static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
-static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
-
-/* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
- *
- * Returns the top of the stack, or NULL.
- */
-#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
- ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
- : NULL)
-
-/* Same as previous macro, but useful when we know that the buffer stack is not
- * NULL or when we need an lvalue. For internal use only.
- */
-#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
-
-/* yy_hold_char holds the character lost when yytext is formed. */
-static char yy_hold_char;
-static int yy_n_chars; /* number of characters read into yy_ch_buf */
-int yyleng;
-
-/* Points to current character in buffer. */
-static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 0; /* whether we need to initialize */
-static int yy_start = 0; /* start state number */
-
-/* Flag which is used to allow yywrap()'s to do buffer switches
- * instead of setting up a fresh yyin. A bit of a hack ...
- */
-static int yy_did_buffer_switch_on_eof;
-
-void yyrestart (FILE *input_file );
-void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
-YY_BUFFER_STATE yy_create_buffer (FILE *file,int size );
-void yy_delete_buffer (YY_BUFFER_STATE b );
-void yy_flush_buffer (YY_BUFFER_STATE b );
-void yypush_buffer_state (YY_BUFFER_STATE new_buffer );
-void yypop_buffer_state (void );
-
-static void yyensure_buffer_stack (void );
-static void yy_load_buffer_state (void );
-static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
-
-#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
-
-YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
-YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );
-YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len );
-
-void *yyalloc (yy_size_t );
-void *yyrealloc (void *,yy_size_t );
-void yyfree (void * );
-
-#define yy_new_buffer yy_create_buffer
-
-#define yy_set_interactive(is_interactive) \
- { \
- if ( ! YY_CURRENT_BUFFER ){ \
- yyensure_buffer_stack (); \
- YY_CURRENT_BUFFER_LVALUE = \
- yy_create_buffer(yyin,YY_BUF_SIZE ); \
- } \
- YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
- }
-
-#define yy_set_bol(at_bol) \
- { \
- if ( ! YY_CURRENT_BUFFER ){\
- yyensure_buffer_stack (); \
- YY_CURRENT_BUFFER_LVALUE = \
- yy_create_buffer(yyin,YY_BUF_SIZE ); \
- } \
- YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
- }
-
-#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
-
-/* Begin user sect3 */
-
-typedef unsigned char YY_CHAR;
-
-FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
-
-typedef int yy_state_type;
-
-extern int yylineno;
-
-int yylineno = 1;
-
-extern char *yytext;
-#define yytext_ptr yytext
-
-static yy_state_type yy_get_previous_state (void );
-static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
-static int yy_get_next_buffer (void );
-static void yy_fatal_error (yyconst char msg[] );
-
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up yytext.
- */
-#define YY_DO_BEFORE_ACTION \
- (yytext_ptr) = yy_bp; \
- yyleng = (size_t) (yy_cp - yy_bp); \
- (yy_hold_char) = *yy_cp; \
- *yy_cp = '\0'; \
- (yy_c_buf_p) = yy_cp;
-
-#define YY_NUM_RULES 95
-#define YY_END_OF_BUFFER 96
-/* This struct is not used in this scanner,
- but its presence is necessary. */
-struct yy_trans_info
- {
- flex_int32_t yy_verify;
- flex_int32_t yy_nxt;
- };
-static yyconst flex_int16_t yy_accept[568] =
- { 0,
- 0, 0, 96, 94, 90, 91, 87, 81, 81, 94,
- 94, 88, 88, 94, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 82, 83, 85, 88, 88, 93, 86,
- 0, 0, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 10, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 51, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 92, 88, 84,
-
- 89, 3, 89, 89, 89, 7, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 22, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 44, 45, 89, 89, 89, 89, 89, 89,
- 89, 55, 89, 89, 89, 89, 89, 89, 89, 63,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 30, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
-
- 47, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 60, 89, 89, 64, 89, 89, 89, 68, 69,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 80, 89, 89, 89, 89, 6, 89, 89, 89, 89,
- 13, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 29, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 50,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 72, 89, 89, 89, 89, 89,
- 89, 89, 1, 89, 89, 89, 89, 89, 89, 12,
-
- 89, 89, 89, 89, 89, 89, 89, 89, 24, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 49, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 65, 66, 89,
- 89, 89, 73, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 9, 89, 89, 89, 89, 18, 89,
- 89, 21, 89, 89, 26, 89, 89, 89, 89, 89,
- 89, 89, 37, 38, 89, 89, 41, 89, 89, 89,
- 89, 89, 89, 54, 89, 57, 58, 89, 89, 89,
- 89, 89, 89, 89, 75, 89, 89, 89, 89, 89,
-
- 89, 89, 89, 89, 89, 89, 89, 89, 20, 89,
- 25, 89, 28, 89, 89, 89, 89, 89, 36, 39,
- 40, 89, 89, 89, 89, 52, 89, 89, 89, 89,
- 62, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 5, 8, 11, 14, 89, 89, 89, 89, 89,
- 89, 89, 89, 34, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 67, 89, 89, 74, 89, 89, 89,
- 89, 89, 89, 15, 89, 17, 89, 23, 89, 89,
- 89, 89, 35, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 76, 89, 89, 89, 89, 4, 16,
-
- 19, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 42, 43, 89, 89, 89, 89, 89,
- 61, 89, 89, 89, 89, 89, 89, 27, 31, 89,
- 33, 89, 48, 89, 56, 89, 89, 71, 89, 89,
- 79, 89, 89, 46, 89, 89, 89, 89, 78, 2,
- 32, 89, 59, 70, 77, 53, 0
- } ;
-
-static yyconst flex_int32_t yy_ec[256] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 1, 4, 1, 1, 1, 1, 1, 5,
- 5, 6, 1, 5, 7, 8, 9, 10, 11, 12,
- 12, 13, 14, 15, 12, 16, 12, 17, 5, 1,
- 18, 1, 1, 1, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 1, 46, 1, 47, 1, 48, 49, 50, 51,
-
- 52, 53, 54, 55, 56, 57, 29, 58, 59, 60,
- 61, 62, 29, 63, 64, 65, 66, 67, 29, 68,
- 29, 69, 5, 5, 5, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1
- } ;
-
-static yyconst flex_int32_t yy_meta[70] =
- { 0,
- 1, 1, 1, 1, 1, 1, 2, 1, 1, 3,
- 3, 3, 3, 3, 3, 3, 1, 1, 3, 3,
- 3, 3, 3, 3, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 1, 1, 2, 3, 3, 3,
- 3, 3, 3, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2
- } ;
-
-static yyconst flex_int16_t yy_base[570] =
- { 0,
- 0, 0, 636, 637, 637, 637, 637, 637, 63, 627,
- 628, 70, 77, 616, 74, 72, 76, 609, 65, 81,
- 49, 0, 92, 91, 32, 101, 97, 608, 103, 113,
- 99, 574, 602, 637, 637, 637, 156, 163, 620, 637,
- 0, 609, 0, 589, 595, 590, 585, 597, 583, 586,
- 586, 0, 101, 599, 108, 593, 596, 122, 124, 585,
- 581, 553, 564, 597, 587, 575, 115, 575, 565, 574,
- 575, 545, 575, 564, 0, 563, 543, 561, 558, 558,
- 124, 540, 161, 119, 551, 558, 561, 581, 566, 551,
- 555, 530, 560, 160, 530, 91, 547, 637, 0, 637,
-
- 125, 0, 554, 550, 555, 0, 544, 550, 543, 551,
- 540, 542, 145, 166, 552, 541, 0, 542, 549, 156,
- 548, 533, 538, 516, 505, 529, 533, 157, 534, 525,
- 539, 546, 0, 521, 529, 506, 534, 533, 528, 502,
- 515, 0, 515, 514, 510, 489, 518, 528, 507, 0,
- 522, 517, 505, 505, 504, 517, 516, 486, 159, 499,
- 520, 468, 482, 477, 506, 499, 494, 502, 497, 495,
- 461, 502, 505, 502, 485, 488, 482, 500, 479, 485,
- 494, 493, 491, 479, 485, 475, 164, 487, 0, 446,
- 453, 442, 468, 478, 468, 464, 483, 170, 488, 463,
-
- 0, 436, 477, 459, 463, 445, 471, 486, 469, 472,
- 425, 0, 451, 465, 0, 455, 467, 420, 0, 0,
- 477, 418, 450, 442, 457, 423, 441, 425, 415, 426,
- 0, 436, 454, 451, 452, 0, 407, 450, 447, 444,
- 0, 434, 429, 437, 433, 435, 439, 437, 423, 420,
- 436, 418, 418, 422, 0, 405, 396, 388, 423, 180,
- 411, 426, 415, 423, 408, 429, 436, 386, 403, 0,
- 408, 374, 402, 410, 404, 397, 386, 406, 400, 406,
- 388, 366, 401, 375, 0, 403, 389, 365, 358, 359,
- 356, 362, 0, 398, 399, 379, 360, 383, 376, 0,
-
- 390, 393, 379, 372, 371, 385, 385, 387, 0, 378,
- 367, 376, 383, 343, 350, 343, 374, 370, 374, 358,
- 371, 372, 356, 368, 353, 362, 338, 0, 368, 364,
- 353, 352, 345, 359, 332, 340, 358, 0, 0, 322,
- 355, 308, 0, 338, 322, 310, 308, 319, 318, 331,
- 330, 340, 306, 0, 342, 332, 336, 335, 0, 334,
- 338, 0, 321, 320, 0, 337, 326, 151, 318, 294,
- 326, 314, 0, 0, 314, 327, 0, 328, 283, 315,
- 309, 315, 292, 0, 319, 0, 0, 284, 318, 317,
- 279, 315, 300, 317, 0, 279, 286, 265, 295, 324,
-
- 303, 308, 274, 291, 288, 293, 292, 290, 0, 299,
- 0, 294, 0, 255, 250, 253, 263, 293, 0, 0,
- 0, 277, 251, 289, 247, 0, 247, 283, 257, 261,
- 0, 253, 274, 240, 274, 243, 244, 264, 235, 262,
- 265, 0, 0, 0, 260, 273, 270, 262, 271, 262,
- 228, 238, 226, 0, 252, 260, 230, 258, 221, 233,
- 250, 244, 247, 0, 241, 215, 0, 223, 239, 210,
- 211, 230, 240, 0, 249, 0, 233, 0, 242, 212,
- 216, 210, 0, 232, 204, 231, 206, 198, 233, 194,
- 231, 230, 200, 0, 190, 191, 197, 220, 0, 0,
-
- 0, 213, 190, 211, 188, 215, 192, 218, 184, 187,
- 204, 178, 218, 215, 178, 174, 180, 175, 196, 190,
- 178, 175, 176, 0, 0, 191, 174, 165, 180, 166,
- 0, 194, 166, 163, 158, 163, 197, 0, 0, 156,
- 0, 171, 0, 148, 0, 152, 188, 0, 150, 155,
- 0, 166, 153, 0, 143, 148, 162, 143, 0, 0,
- 0, 101, 0, 0, 0, 0, 637, 223, 69
- } ;
-
-static yyconst flex_int16_t yy_def[570] =
- { 0,
- 567, 1, 567, 567, 567, 567, 567, 567, 567, 567,
- 567, 567, 567, 567, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 567, 567, 567, 567, 567, 567, 567,
- 569, 567, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 567, 569, 567,
-
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
-
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
-
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
-
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
-
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
- 568, 568, 568, 568, 568, 568, 0, 567, 567
- } ;
-
-static yyconst flex_int16_t yy_nxt[707] =
- { 0,
- 4, 5, 6, 7, 8, 4, 9, 10, 11, 12,
- 13, 13, 13, 13, 13, 13, 14, 4, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 22, 22, 22,
- 24, 25, 26, 27, 22, 28, 29, 30, 31, 32,
- 33, 22, 22, 22, 34, 35, 4, 22, 22, 22,
- 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
- 22, 22, 22, 22, 22, 22, 22, 22, 22, 36,
- 71, 99, 37, 38, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 38, 38, 44, 48, 57, 58, 72, 49, 60,
-
- 62, 53, 50, 45, 51, 54, 59, 46, 55, 69,
- 64, 63, 47, 65, 52, 78, 61, 70, 79, 109,
- 73, 74, 66, 67, 75, 84, 80, 88, 68, 85,
- 93, 89, 81, 110, 76, 129, 94, 41, 112, 113,
- 86, 163, 116, 117, 119, 87, 144, 166, 90, 77,
- 145, 130, 131, 149, 164, 91, 150, 120, 95, 82,
- 118, 121, 167, 566, 92, 38, 38, 38, 38, 38,
- 38, 38, 38, 38, 38, 38, 38, 38, 38, 147,
- 160, 177, 178, 161, 179, 185, 194, 414, 186, 195,
- 148, 223, 180, 224, 264, 253, 565, 564, 225, 254,
-
- 318, 563, 319, 562, 561, 265, 415, 560, 559, 558,
- 557, 556, 555, 554, 553, 552, 551, 550, 549, 548,
- 547, 546, 545, 41, 43, 43, 544, 543, 542, 541,
- 540, 539, 538, 537, 536, 535, 534, 533, 532, 531,
- 530, 529, 528, 527, 526, 525, 524, 523, 522, 521,
- 520, 519, 518, 517, 516, 515, 514, 513, 512, 511,
- 510, 509, 508, 507, 506, 505, 504, 503, 502, 501,
- 500, 499, 498, 497, 496, 495, 494, 493, 492, 491,
- 490, 489, 488, 487, 486, 485, 484, 483, 482, 481,
- 480, 479, 478, 477, 476, 475, 474, 473, 472, 471,
-
- 470, 469, 468, 467, 466, 465, 464, 463, 462, 461,
- 460, 459, 458, 457, 456, 455, 454, 453, 452, 451,
- 450, 449, 448, 447, 446, 445, 444, 443, 442, 441,
- 440, 439, 438, 437, 436, 435, 434, 433, 432, 431,
- 430, 429, 428, 427, 426, 425, 424, 423, 422, 421,
- 420, 419, 418, 417, 416, 413, 412, 411, 410, 409,
- 408, 407, 406, 405, 404, 403, 402, 401, 400, 399,
- 398, 397, 396, 395, 394, 393, 392, 391, 390, 389,
- 388, 387, 386, 385, 384, 383, 382, 381, 380, 379,
- 378, 377, 376, 375, 374, 373, 372, 371, 370, 369,
-
- 368, 367, 366, 365, 364, 363, 362, 361, 360, 359,
- 358, 357, 356, 355, 354, 353, 352, 351, 350, 349,
- 348, 347, 346, 345, 344, 343, 342, 341, 340, 339,
- 338, 337, 336, 335, 334, 333, 332, 331, 330, 329,
- 328, 327, 326, 325, 324, 323, 322, 321, 320, 317,
- 316, 315, 314, 313, 312, 311, 310, 309, 308, 307,
- 306, 305, 304, 303, 302, 301, 300, 299, 298, 297,
- 296, 295, 294, 293, 292, 291, 290, 289, 288, 287,
- 286, 285, 284, 283, 282, 281, 280, 279, 278, 277,
- 276, 275, 274, 273, 272, 271, 270, 269, 268, 267,
-
- 266, 263, 262, 261, 260, 259, 258, 257, 256, 255,
- 252, 251, 250, 249, 248, 247, 246, 245, 244, 243,
- 242, 241, 240, 239, 238, 237, 236, 235, 234, 233,
- 232, 231, 230, 229, 228, 227, 226, 222, 221, 220,
- 219, 218, 217, 216, 215, 214, 213, 212, 211, 210,
- 209, 208, 207, 206, 205, 204, 203, 202, 201, 200,
- 199, 198, 197, 196, 193, 192, 191, 190, 189, 188,
- 187, 184, 183, 182, 181, 176, 175, 174, 173, 172,
- 171, 170, 169, 168, 165, 162, 159, 158, 157, 156,
- 155, 154, 153, 152, 151, 146, 143, 142, 141, 140,
-
- 139, 138, 137, 136, 135, 134, 133, 132, 128, 127,
- 126, 125, 124, 123, 122, 115, 114, 111, 108, 107,
- 106, 105, 104, 103, 102, 101, 100, 98, 97, 96,
- 83, 56, 42, 40, 39, 567, 3, 567, 567, 567,
- 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
- 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
- 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
- 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
- 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
- 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
-
- 567, 567, 567, 567, 567, 567
- } ;
-
-static yyconst flex_int16_t yy_chk[707] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 9,
- 25, 569, 9, 9, 9, 9, 9, 9, 9, 12,
- 12, 12, 12, 12, 12, 12, 13, 13, 13, 13,
- 13, 13, 13, 15, 16, 19, 19, 25, 16, 20,
-
- 21, 17, 16, 15, 16, 17, 19, 15, 17, 24,
- 23, 21, 15, 23, 16, 27, 20, 24, 27, 53,
- 26, 26, 23, 23, 26, 29, 27, 30, 23, 29,
- 31, 30, 27, 53, 26, 67, 31, 12, 55, 55,
- 29, 96, 58, 58, 59, 29, 81, 101, 30, 26,
- 81, 67, 67, 84, 96, 30, 84, 59, 31, 27,
- 58, 59, 101, 562, 30, 37, 37, 37, 37, 37,
- 37, 37, 38, 38, 38, 38, 38, 38, 38, 83,
- 94, 113, 113, 94, 114, 120, 128, 368, 120, 128,
- 83, 159, 114, 159, 198, 187, 558, 557, 159, 187,
-
- 260, 556, 260, 555, 553, 198, 368, 552, 550, 549,
- 547, 546, 544, 542, 540, 537, 536, 535, 534, 533,
- 532, 530, 529, 37, 568, 568, 528, 527, 526, 523,
- 522, 521, 520, 519, 518, 517, 516, 515, 514, 513,
- 512, 511, 510, 509, 508, 507, 506, 505, 504, 503,
- 502, 498, 497, 496, 495, 493, 492, 491, 490, 489,
- 488, 487, 486, 485, 484, 482, 481, 480, 479, 477,
- 475, 473, 472, 471, 470, 469, 468, 466, 465, 463,
- 462, 461, 460, 459, 458, 457, 456, 455, 453, 452,
- 451, 450, 449, 448, 447, 446, 445, 441, 440, 439,
-
- 438, 437, 436, 435, 434, 433, 432, 430, 429, 428,
- 427, 425, 424, 423, 422, 418, 417, 416, 415, 414,
- 412, 410, 408, 407, 406, 405, 404, 403, 402, 401,
- 400, 399, 398, 397, 396, 394, 393, 392, 391, 390,
- 389, 388, 385, 383, 382, 381, 380, 379, 378, 376,
- 375, 372, 371, 370, 369, 367, 366, 364, 363, 361,
- 360, 358, 357, 356, 355, 353, 352, 351, 350, 349,
- 348, 347, 346, 345, 344, 342, 341, 340, 337, 336,
- 335, 334, 333, 332, 331, 330, 329, 327, 326, 325,
- 324, 323, 322, 321, 320, 319, 318, 317, 316, 315,
-
- 314, 313, 312, 311, 310, 308, 307, 306, 305, 304,
- 303, 302, 301, 299, 298, 297, 296, 295, 294, 292,
- 291, 290, 289, 288, 287, 286, 284, 283, 282, 281,
- 280, 279, 278, 277, 276, 275, 274, 273, 272, 271,
- 269, 268, 267, 266, 265, 264, 263, 262, 261, 259,
- 258, 257, 256, 254, 253, 252, 251, 250, 249, 248,
- 247, 246, 245, 244, 243, 242, 240, 239, 238, 237,
- 235, 234, 233, 232, 230, 229, 228, 227, 226, 225,
- 224, 223, 222, 221, 218, 217, 216, 214, 213, 211,
- 210, 209, 208, 207, 206, 205, 204, 203, 202, 200,
-
- 199, 197, 196, 195, 194, 193, 192, 191, 190, 188,
- 186, 185, 184, 183, 182, 181, 180, 179, 178, 177,
- 176, 175, 174, 173, 172, 171, 170, 169, 168, 167,
- 166, 165, 164, 163, 162, 161, 160, 158, 157, 156,
- 155, 154, 153, 152, 151, 149, 148, 147, 146, 145,
- 144, 143, 141, 140, 139, 138, 137, 136, 135, 134,
- 132, 131, 130, 129, 127, 126, 125, 124, 123, 122,
- 121, 119, 118, 116, 115, 112, 111, 110, 109, 108,
- 107, 105, 104, 103, 97, 95, 93, 92, 91, 90,
- 89, 88, 87, 86, 85, 82, 80, 79, 78, 77,
-
- 76, 74, 73, 72, 71, 70, 69, 68, 66, 65,
- 64, 63, 62, 61, 60, 57, 56, 54, 51, 50,
- 49, 48, 47, 46, 45, 44, 42, 39, 33, 32,
- 28, 18, 14, 11, 10, 3, 567, 567, 567, 567,
- 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
- 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
- 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
- 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
- 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
- 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
-
- 567, 567, 567, 567, 567, 567
- } ;
-
-static yy_state_type yy_last_accepting_state;
-static char *yy_last_accepting_cpos;
-
-extern int yy_flex_debug;
-int yy_flex_debug = 0;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
-#define YY_RESTORE_YY_MORE_OFFSET
-char *yytext;
-#line 1 "lex.l"
-#line 2 "lex.l"
-/*
- * Copyright (c) 1997 - 2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-/* $Id: lex.l 18738 2006-10-21 11:57:22Z lha $ */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#undef ECHO
-#include "symbol.h"
-#include "parse.h"
-#include "lex.h"
-#include "gen_locl.h"
-
-static unsigned lineno = 1;
-
-#undef ECHO
-
-static void unterminated(const char *, unsigned);
-
-/* This is for broken old lexes (solaris 10 and hpux) */
-#line 855 "lex.c"
-
-#define INITIAL 0
-
-#ifndef YY_NO_UNISTD_H
-/* Special case for "unistd.h", since it is non-ANSI. We include it way
- * down here because we want the user's section 1 to have been scanned first.
- * The user has a chance to override it with an option.
- */
-#include <unistd.h>
-#endif
-
-#ifndef YY_EXTRA_TYPE
-#define YY_EXTRA_TYPE void *
-#endif
-
-static int yy_init_globals (void );
-
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int yywrap (void );
-#else
-extern int yywrap (void );
-#endif
-#endif
-
- static void yyunput (int c,char *buf_ptr );
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char *,yyconst char *,int );
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * );
-#endif
-
-#ifndef YY_NO_INPUT
-
-#ifdef __cplusplus
-static int yyinput (void );
-#else
-static int input (void );
-#endif
-
-#endif
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#define YY_READ_BUF_SIZE 8192
-#endif
-
-/* Copy whatever the last rule matched to the standard output. */
-#ifndef ECHO
-/* This used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite().
- */
-#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
-#endif
-
-/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
- * is returned in "result".
- */
-#ifndef YY_INPUT
-#define YY_INPUT(buf,result,max_size) \
- if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
- { \
- int c = '*'; \
- size_t n; \
- for ( n = 0; n < max_size && \
- (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
- buf[n] = (char) c; \
- if ( c == '\n' ) \
- buf[n++] = (char) c; \
- if ( c == EOF && ferror( yyin ) ) \
- YY_FATAL_ERROR( "input in flex scanner failed" ); \
- result = n; \
- } \
- else \
- { \
- errno=0; \
- while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
- { \
- if( errno != EINTR) \
- { \
- YY_FATAL_ERROR( "input in flex scanner failed" ); \
- break; \
- } \
- errno=0; \
- clearerr(yyin); \
- } \
- }\
-\
-
-#endif
-
-/* No semi-colon after return; correct usage is to write "yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
-#ifndef yyterminate
-#define yyterminate() return YY_NULL
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef YY_START_STACK_INCR
-#define YY_START_STACK_INCR 25
-#endif
-
-/* Report a fatal error. */
-#ifndef YY_FATAL_ERROR
-#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
-#endif
-
-/* end tables serialization structures and prototypes */
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef YY_DECL
-#define YY_DECL_IS_OURS 1
-
-extern int yylex (void);
-
-#define YY_DECL int yylex (void)
-#endif /* !YY_DECL */
-
-/* Code executed at the beginning of each rule, after yytext and yyleng
- * have been set up.
- */
-#ifndef YY_USER_ACTION
-#define YY_USER_ACTION
-#endif
-
-/* Code executed at the end of each rule. */
-#ifndef YY_BREAK
-#define YY_BREAK break;
-#endif
-
-#define YY_RULE_SETUP \
- YY_USER_ACTION
-
-/** The main scanner function which does all the work.
- */
-YY_DECL
-{
- register yy_state_type yy_current_state;
- register char *yy_cp, *yy_bp;
- register int yy_act;
-
-#line 68 "lex.l"
-
-#line 1010 "lex.c"
-
- if ( !(yy_init) )
- {
- (yy_init) = 1;
-
-#ifdef YY_USER_INIT
- YY_USER_INIT;
-#endif
-
- if ( ! (yy_start) )
- (yy_start) = 1; /* first start state */
-
- if ( ! yyin )
- yyin = stdin;
-
- if ( ! yyout )
- yyout = stdout;
-
- if ( ! YY_CURRENT_BUFFER ) {
- yyensure_buffer_stack ();
- YY_CURRENT_BUFFER_LVALUE =
- yy_create_buffer(yyin,YY_BUF_SIZE );
- }
-
- yy_load_buffer_state( );
- }
-
- while ( 1 ) /* loops until end-of-file is reached */
- {
- yy_cp = (yy_c_buf_p);
-
- /* Support of yytext. */
- *yy_cp = (yy_hold_char);
-
- /* yy_bp points to the position in yy_ch_buf of the start of
- * the current run.
- */
- yy_bp = yy_cp;
-
- yy_current_state = (yy_start);
-yy_match:
- do
- {
- register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
- if ( yy_accept[yy_current_state] )
- {
- (yy_last_accepting_state) = yy_current_state;
- (yy_last_accepting_cpos) = yy_cp;
- }
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 568 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- ++yy_cp;
- }
- while ( yy_base[yy_current_state] != 637 );
-
-yy_find_action:
- yy_act = yy_accept[yy_current_state];
- if ( yy_act == 0 )
- { /* have to back up */
- yy_cp = (yy_last_accepting_cpos);
- yy_current_state = (yy_last_accepting_state);
- yy_act = yy_accept[yy_current_state];
- }
-
- YY_DO_BEFORE_ACTION;
-
-do_action: /* This label is used only to access EOF actions. */
-
- switch ( yy_act )
- { /* beginning of action switch */
- case 0: /* must back up */
- /* undo the effects of YY_DO_BEFORE_ACTION */
- *yy_cp = (yy_hold_char);
- yy_cp = (yy_last_accepting_cpos);
- yy_current_state = (yy_last_accepting_state);
- goto yy_find_action;
-
-case 1:
-YY_RULE_SETUP
-#line 69 "lex.l"
-{ return kw_ABSENT; }
- YY_BREAK
-case 2:
-YY_RULE_SETUP
-#line 70 "lex.l"
-{ return kw_ABSTRACT_SYNTAX; }
- YY_BREAK
-case 3:
-YY_RULE_SETUP
-#line 71 "lex.l"
-{ return kw_ALL; }
- YY_BREAK
-case 4:
-YY_RULE_SETUP
-#line 72 "lex.l"
-{ return kw_APPLICATION; }
- YY_BREAK
-case 5:
-YY_RULE_SETUP
-#line 73 "lex.l"
-{ return kw_AUTOMATIC; }
- YY_BREAK
-case 6:
-YY_RULE_SETUP
-#line 74 "lex.l"
-{ return kw_BEGIN; }
- YY_BREAK
-case 7:
-YY_RULE_SETUP
-#line 75 "lex.l"
-{ return kw_BIT; }
- YY_BREAK
-case 8:
-YY_RULE_SETUP
-#line 76 "lex.l"
-{ return kw_BMPString; }
- YY_BREAK
-case 9:
-YY_RULE_SETUP
-#line 77 "lex.l"
-{ return kw_BOOLEAN; }
- YY_BREAK
-case 10:
-YY_RULE_SETUP
-#line 78 "lex.l"
-{ return kw_BY; }
- YY_BREAK
-case 11:
-YY_RULE_SETUP
-#line 79 "lex.l"
-{ return kw_CHARACTER; }
- YY_BREAK
-case 12:
-YY_RULE_SETUP
-#line 80 "lex.l"
-{ return kw_CHOICE; }
- YY_BREAK
-case 13:
-YY_RULE_SETUP
-#line 81 "lex.l"
-{ return kw_CLASS; }
- YY_BREAK
-case 14:
-YY_RULE_SETUP
-#line 82 "lex.l"
-{ return kw_COMPONENT; }
- YY_BREAK
-case 15:
-YY_RULE_SETUP
-#line 83 "lex.l"
-{ return kw_COMPONENTS; }
- YY_BREAK
-case 16:
-YY_RULE_SETUP
-#line 84 "lex.l"
-{ return kw_CONSTRAINED; }
- YY_BREAK
-case 17:
-YY_RULE_SETUP
-#line 85 "lex.l"
-{ return kw_CONTAINING; }
- YY_BREAK
-case 18:
-YY_RULE_SETUP
-#line 86 "lex.l"
-{ return kw_DEFAULT; }
- YY_BREAK
-case 19:
-YY_RULE_SETUP
-#line 87 "lex.l"
-{ return kw_DEFINITIONS; }
- YY_BREAK
-case 20:
-YY_RULE_SETUP
-#line 88 "lex.l"
-{ return kw_EMBEDDED; }
- YY_BREAK
-case 21:
-YY_RULE_SETUP
-#line 89 "lex.l"
-{ return kw_ENCODED; }
- YY_BREAK
-case 22:
-YY_RULE_SETUP
-#line 90 "lex.l"
-{ return kw_END; }
- YY_BREAK
-case 23:
-YY_RULE_SETUP
-#line 91 "lex.l"
-{ return kw_ENUMERATED; }
- YY_BREAK
-case 24:
-YY_RULE_SETUP
-#line 92 "lex.l"
-{ return kw_EXCEPT; }
- YY_BREAK
-case 25:
-YY_RULE_SETUP
-#line 93 "lex.l"
-{ return kw_EXPLICIT; }
- YY_BREAK
-case 26:
-YY_RULE_SETUP
-#line 94 "lex.l"
-{ return kw_EXPORTS; }
- YY_BREAK
-case 27:
-YY_RULE_SETUP
-#line 95 "lex.l"
-{ return kw_EXTENSIBILITY; }
- YY_BREAK
-case 28:
-YY_RULE_SETUP
-#line 96 "lex.l"
-{ return kw_EXTERNAL; }
- YY_BREAK
-case 29:
-YY_RULE_SETUP
-#line 97 "lex.l"
-{ return kw_FALSE; }
- YY_BREAK
-case 30:
-YY_RULE_SETUP
-#line 98 "lex.l"
-{ return kw_FROM; }
- YY_BREAK
-case 31:
-YY_RULE_SETUP
-#line 99 "lex.l"
-{ return kw_GeneralString; }
- YY_BREAK
-case 32:
-YY_RULE_SETUP
-#line 100 "lex.l"
-{ return kw_GeneralizedTime; }
- YY_BREAK
-case 33:
-YY_RULE_SETUP
-#line 101 "lex.l"
-{ return kw_GraphicString; }
- YY_BREAK
-case 34:
-YY_RULE_SETUP
-#line 102 "lex.l"
-{ return kw_IA5String; }
- YY_BREAK
-case 35:
-YY_RULE_SETUP
-#line 103 "lex.l"
-{ return kw_IDENTIFIER; }
- YY_BREAK
-case 36:
-YY_RULE_SETUP
-#line 104 "lex.l"
-{ return kw_IMPLICIT; }
- YY_BREAK
-case 37:
-YY_RULE_SETUP
-#line 105 "lex.l"
-{ return kw_IMPLIED; }
- YY_BREAK
-case 38:
-YY_RULE_SETUP
-#line 106 "lex.l"
-{ return kw_IMPORTS; }
- YY_BREAK
-case 39:
-YY_RULE_SETUP
-#line 107 "lex.l"
-{ return kw_INCLUDES; }
- YY_BREAK
-case 40:
-YY_RULE_SETUP
-#line 108 "lex.l"
-{ return kw_INSTANCE; }
- YY_BREAK
-case 41:
-YY_RULE_SETUP
-#line 109 "lex.l"
-{ return kw_INTEGER; }
- YY_BREAK
-case 42:
-YY_RULE_SETUP
-#line 110 "lex.l"
-{ return kw_INTERSECTION; }
- YY_BREAK
-case 43:
-YY_RULE_SETUP
-#line 111 "lex.l"
-{ return kw_ISO646String; }
- YY_BREAK
-case 44:
-YY_RULE_SETUP
-#line 112 "lex.l"
-{ return kw_MAX; }
- YY_BREAK
-case 45:
-YY_RULE_SETUP
-#line 113 "lex.l"
-{ return kw_MIN; }
- YY_BREAK
-case 46:
-YY_RULE_SETUP
-#line 114 "lex.l"
-{ return kw_MINUS_INFINITY; }
- YY_BREAK
-case 47:
-YY_RULE_SETUP
-#line 115 "lex.l"
-{ return kw_NULL; }
- YY_BREAK
-case 48:
-YY_RULE_SETUP
-#line 116 "lex.l"
-{ return kw_NumericString; }
- YY_BREAK
-case 49:
-YY_RULE_SETUP
-#line 117 "lex.l"
-{ return kw_OBJECT; }
- YY_BREAK
-case 50:
-YY_RULE_SETUP
-#line 118 "lex.l"
-{ return kw_OCTET; }
- YY_BREAK
-case 51:
-YY_RULE_SETUP
-#line 119 "lex.l"
-{ return kw_OF; }
- YY_BREAK
-case 52:
-YY_RULE_SETUP
-#line 120 "lex.l"
-{ return kw_OPTIONAL; }
- YY_BREAK
-case 53:
-YY_RULE_SETUP
-#line 121 "lex.l"
-{ return kw_ObjectDescriptor; }
- YY_BREAK
-case 54:
-YY_RULE_SETUP
-#line 122 "lex.l"
-{ return kw_PATTERN; }
- YY_BREAK
-case 55:
-YY_RULE_SETUP
-#line 123 "lex.l"
-{ return kw_PDV; }
- YY_BREAK
-case 56:
-YY_RULE_SETUP
-#line 124 "lex.l"
-{ return kw_PLUS_INFINITY; }
- YY_BREAK
-case 57:
-YY_RULE_SETUP
-#line 125 "lex.l"
-{ return kw_PRESENT; }
- YY_BREAK
-case 58:
-YY_RULE_SETUP
-#line 126 "lex.l"
-{ return kw_PRIVATE; }
- YY_BREAK
-case 59:
-YY_RULE_SETUP
-#line 127 "lex.l"
-{ return kw_PrintableString; }
- YY_BREAK
-case 60:
-YY_RULE_SETUP
-#line 128 "lex.l"
-{ return kw_REAL; }
- YY_BREAK
-case 61:
-YY_RULE_SETUP
-#line 129 "lex.l"
-{ return kw_RELATIVE_OID; }
- YY_BREAK
-case 62:
-YY_RULE_SETUP
-#line 130 "lex.l"
-{ return kw_SEQUENCE; }
- YY_BREAK
-case 63:
-YY_RULE_SETUP
-#line 131 "lex.l"
-{ return kw_SET; }
- YY_BREAK
-case 64:
-YY_RULE_SETUP
-#line 132 "lex.l"
-{ return kw_SIZE; }
- YY_BREAK
-case 65:
-YY_RULE_SETUP
-#line 133 "lex.l"
-{ return kw_STRING; }
- YY_BREAK
-case 66:
-YY_RULE_SETUP
-#line 134 "lex.l"
-{ return kw_SYNTAX; }
- YY_BREAK
-case 67:
-YY_RULE_SETUP
-#line 135 "lex.l"
-{ return kw_T61String; }
- YY_BREAK
-case 68:
-YY_RULE_SETUP
-#line 136 "lex.l"
-{ return kw_TAGS; }
- YY_BREAK
-case 69:
-YY_RULE_SETUP
-#line 137 "lex.l"
-{ return kw_TRUE; }
- YY_BREAK
-case 70:
-YY_RULE_SETUP
-#line 138 "lex.l"
-{ return kw_TYPE_IDENTIFIER; }
- YY_BREAK
-case 71:
-YY_RULE_SETUP
-#line 139 "lex.l"
-{ return kw_TeletexString; }
- YY_BREAK
-case 72:
-YY_RULE_SETUP
-#line 140 "lex.l"
-{ return kw_UNION; }
- YY_BREAK
-case 73:
-YY_RULE_SETUP
-#line 141 "lex.l"
-{ return kw_UNIQUE; }
- YY_BREAK
-case 74:
-YY_RULE_SETUP
-#line 142 "lex.l"
-{ return kw_UNIVERSAL; }
- YY_BREAK
-case 75:
-YY_RULE_SETUP
-#line 143 "lex.l"
-{ return kw_UTCTime; }
- YY_BREAK
-case 76:
-YY_RULE_SETUP
-#line 144 "lex.l"
-{ return kw_UTF8String; }
- YY_BREAK
-case 77:
-YY_RULE_SETUP
-#line 145 "lex.l"
-{ return kw_UniversalString; }
- YY_BREAK
-case 78:
-YY_RULE_SETUP
-#line 146 "lex.l"
-{ return kw_VideotexString; }
- YY_BREAK
-case 79:
-YY_RULE_SETUP
-#line 147 "lex.l"
-{ return kw_VisibleString; }
- YY_BREAK
-case 80:
-YY_RULE_SETUP
-#line 148 "lex.l"
-{ return kw_WITH; }
- YY_BREAK
-case 81:
-YY_RULE_SETUP
-#line 149 "lex.l"
-{ return *yytext; }
- YY_BREAK
-case 82:
-YY_RULE_SETUP
-#line 150 "lex.l"
-{ return *yytext; }
- YY_BREAK
-case 83:
-YY_RULE_SETUP
-#line 151 "lex.l"
-{ return *yytext; }
- YY_BREAK
-case 84:
-YY_RULE_SETUP
-#line 152 "lex.l"
-{ return EEQUAL; }
- YY_BREAK
-case 85:
-YY_RULE_SETUP
-#line 153 "lex.l"
-{
- int c, start_lineno = lineno;
- int f = 0;
- while((c = input()) != EOF) {
- if(f && c == '-')
- break;
- if(c == '-') {
- f = 1;
- continue;
- }
- if(c == '\n') {
- lineno++;
- break;
- }
- f = 0;
- }
- if(c == EOF)
- unterminated("comment", start_lineno);
- }
- YY_BREAK
-case 86:
-YY_RULE_SETUP
-#line 172 "lex.l"
-{
- int c, start_lineno = lineno;
- int level = 1;
- int seen_star = 0;
- int seen_slash = 0;
- while((c = input()) != EOF) {
- if(c == '/') {
- if(seen_star) {
- if(--level == 0)
- break;
- seen_star = 0;
- continue;
- }
- seen_slash = 1;
- continue;
- }
- if(seen_star && c == '/') {
- if(--level == 0)
- break;
- seen_star = 0;
- continue;
- }
- if(c == '*') {
- if(seen_slash) {
- level++;
- seen_star = seen_slash = 0;
- continue;
- }
- seen_star = 1;
- continue;
- }
- seen_star = seen_slash = 0;
- if(c == '\n') {
- lineno++;
- continue;
- }
- }
- if(c == EOF)
- unterminated("comment", start_lineno);
- }
- YY_BREAK
-case 87:
-YY_RULE_SETUP
-#line 212 "lex.l"
-{
- int start_lineno = lineno;
- int c;
- char buf[1024];
- char *p = buf;
- int f = 0;
- int skip_ws = 0;
-
- while((c = input()) != EOF) {
- if(isspace(c) && skip_ws) {
- if(c == '\n')
- lineno++;
- continue;
- }
- skip_ws = 0;
-
- if(c == '"') {
- if(f) {
- *p++ = '"';
- f = 0;
- } else
- f = 1;
- continue;
- }
- if(f == 1) {
- unput(c);
- break;
- }
- if(c == '\n') {
- lineno++;
- while(p > buf && isspace((unsigned char)p[-1]))
- p--;
- skip_ws = 1;
- continue;
- }
- *p++ = c;
- }
- if(c == EOF)
- unterminated("string", start_lineno);
- *p++ = '\0';
- fprintf(stderr, "string -- %s\n", buf);
- yylval.name = estrdup(buf);
- return STRING;
- }
- YY_BREAK
-case 88:
-YY_RULE_SETUP
-#line 257 "lex.l"
-{ char *e, *y = yytext;
- yylval.constant = strtol((const char *)yytext,
- &e, 0);
- if(e == y)
- error_message("malformed constant (%s)", yytext);
- else
- return NUMBER;
- }
- YY_BREAK
-case 89:
-YY_RULE_SETUP
-#line 265 "lex.l"
-{
- yylval.name = estrdup ((const char *)yytext);
- return IDENTIFIER;
- }
- YY_BREAK
-case 90:
-YY_RULE_SETUP
-#line 269 "lex.l"
-;
- YY_BREAK
-case 91:
-/* rule 91 can match eol */
-YY_RULE_SETUP
-#line 270 "lex.l"
-{ ++lineno; }
- YY_BREAK
-case 92:
-YY_RULE_SETUP
-#line 271 "lex.l"
-{ return ELLIPSIS; }
- YY_BREAK
-case 93:
-YY_RULE_SETUP
-#line 272 "lex.l"
-{ return RANGE; }
- YY_BREAK
-case 94:
-YY_RULE_SETUP
-#line 273 "lex.l"
-{ error_message("Ignoring char(%c)\n", *yytext); }
- YY_BREAK
-case 95:
-YY_RULE_SETUP
-#line 274 "lex.l"
-ECHO;
- YY_BREAK
-#line 1679 "lex.c"
-case YY_STATE_EOF(INITIAL):
- yyterminate();
-
- case YY_END_OF_BUFFER:
- {
- /* Amount of text matched not including the EOB char. */
- int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
-
- /* Undo the effects of YY_DO_BEFORE_ACTION. */
- *yy_cp = (yy_hold_char);
- YY_RESTORE_YY_MORE_OFFSET
-
- if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
- {
- /* We're scanning a new file or input source. It's
- * possible that this happened because the user
- * just pointed yyin at a new source and called
- * yylex(). If so, then we have to assure
- * consistency between YY_CURRENT_BUFFER and our
- * globals. Here is the right place to do so, because
- * this is the first action (other than possibly a
- * back-up) that will match for the new input source.
- */
- (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
- YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
- YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
- }
-
- /* Note that here we test for yy_c_buf_p "<=" to the position
- * of the first EOB in the buffer, since yy_c_buf_p will
- * already have been incremented past the NUL character
- * (since all states make transitions on EOB to the
- * end-of-buffer state). Contrast this with the test
- * in input().
- */
- if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
- { /* This was really a NUL. */
- yy_state_type yy_next_state;
-
- (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
-
- yy_current_state = yy_get_previous_state( );
-
- /* Okay, we're now positioned to make the NUL
- * transition. We couldn't have
- * yy_get_previous_state() go ahead and do it
- * for us because it doesn't know how to deal
- * with the possibility of jamming (and we don't
- * want to build jamming into it because then it
- * will run more slowly).
- */
-
- yy_next_state = yy_try_NUL_trans( yy_current_state );
-
- yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-
- if ( yy_next_state )
- {
- /* Consume the NUL. */
- yy_cp = ++(yy_c_buf_p);
- yy_current_state = yy_next_state;
- goto yy_match;
- }
-
- else
- {
- yy_cp = (yy_c_buf_p);
- goto yy_find_action;
- }
- }
-
- else switch ( yy_get_next_buffer( ) )
- {
- case EOB_ACT_END_OF_FILE:
- {
- (yy_did_buffer_switch_on_eof) = 0;
-
- if ( yywrap( ) )
- {
- /* Note: because we've taken care in
- * yy_get_next_buffer() to have set up
- * yytext, we can now set up
- * yy_c_buf_p so that if some total
- * hoser (like flex itself) wants to
- * call the scanner after we return the
- * YY_NULL, it'll still work - another
- * YY_NULL will get returned.
- */
- (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
-
- yy_act = YY_STATE_EOF(YY_START);
- goto do_action;
- }
-
- else
- {
- if ( ! (yy_did_buffer_switch_on_eof) )
- YY_NEW_FILE;
- }
- break;
- }
-
- case EOB_ACT_CONTINUE_SCAN:
- (yy_c_buf_p) =
- (yytext_ptr) + yy_amount_of_matched_text;
-
- yy_current_state = yy_get_previous_state( );
-
- yy_cp = (yy_c_buf_p);
- yy_bp = (yytext_ptr) + YY_MORE_ADJ;
- goto yy_match;
-
- case EOB_ACT_LAST_MATCH:
- (yy_c_buf_p) =
- &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
-
- yy_current_state = yy_get_previous_state( );
-
- yy_cp = (yy_c_buf_p);
- yy_bp = (yytext_ptr) + YY_MORE_ADJ;
- goto yy_find_action;
- }
- break;
- }
-
- default:
- YY_FATAL_ERROR(
- "fatal flex scanner internal error--no action found" );
- } /* end of action switch */
- } /* end of scanning one token */
-} /* end of yylex */
-
-/* yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
- * EOB_ACT_LAST_MATCH -
- * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- * EOB_ACT_END_OF_FILE - end of file
- */
-static int yy_get_next_buffer (void)
-{
- register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
- register char *source = (yytext_ptr);
- register int number_to_move, i;
- int ret_val;
-
- if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
- YY_FATAL_ERROR(
- "fatal flex scanner internal error--end of buffer missed" );
-
- if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
- { /* Don't try to fill the buffer, so this is an EOF. */
- if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
- {
- /* We matched a single character, the EOB, so
- * treat this as a final EOF.
- */
- return EOB_ACT_END_OF_FILE;
- }
-
- else
- {
- /* We matched some text prior to the EOB, first
- * process it.
- */
- return EOB_ACT_LAST_MATCH;
- }
- }
-
- /* Try to read more data. */
-
- /* First move last chars to start of buffer. */
- number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
-
- for ( i = 0; i < number_to_move; ++i )
- *(dest++) = *(source++);
-
- if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
- /* don't do the read, it's not guaranteed to return an EOF,
- * just force an EOF
- */
- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
-
- else
- {
- int num_to_read =
- YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
-
- while ( num_to_read <= 0 )
- { /* Not enough room in the buffer - grow it. */
-
- /* just a shorter name for the current buffer */
- YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
-
- int yy_c_buf_p_offset =
- (int) ((yy_c_buf_p) - b->yy_ch_buf);
-
- if ( b->yy_is_our_buffer )
- {
- int new_size = b->yy_buf_size * 2;
-
- if ( new_size <= 0 )
- b->yy_buf_size += b->yy_buf_size / 8;
- else
- b->yy_buf_size *= 2;
-
- b->yy_ch_buf = (char *)
- /* Include room in for 2 EOB chars. */
- yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
- }
- else
- /* Can't grow it, we don't own it. */
- b->yy_ch_buf = 0;
-
- if ( ! b->yy_ch_buf )
- YY_FATAL_ERROR(
- "fatal error - scanner input buffer overflow" );
-
- (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
-
- num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
- number_to_move - 1;
-
- }
-
- if ( num_to_read > YY_READ_BUF_SIZE )
- num_to_read = YY_READ_BUF_SIZE;
-
- /* Read in more data. */
- YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
- (yy_n_chars), num_to_read );
-
- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
- }
-
- if ( (yy_n_chars) == 0 )
- {
- if ( number_to_move == YY_MORE_ADJ )
- {
- ret_val = EOB_ACT_END_OF_FILE;
- yyrestart(yyin );
- }
-
- else
- {
- ret_val = EOB_ACT_LAST_MATCH;
- YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
- YY_BUFFER_EOF_PENDING;
- }
- }
-
- else
- ret_val = EOB_ACT_CONTINUE_SCAN;
-
- (yy_n_chars) += number_to_move;
- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
-
- (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
-
- return ret_val;
-}
-
-/* yy_get_previous_state - get the state just before the EOB char was reached */
-
- static yy_state_type yy_get_previous_state (void)
-{
- register yy_state_type yy_current_state;
- register char *yy_cp;
-
- yy_current_state = (yy_start);
-
- for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
- {
- register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
- if ( yy_accept[yy_current_state] )
- {
- (yy_last_accepting_state) = yy_current_state;
- (yy_last_accepting_cpos) = yy_cp;
- }
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 568 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- }
-
- return yy_current_state;
-}
-
-/* yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- * next_state = yy_try_NUL_trans( current_state );
- */
- static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
-{
- register int yy_is_jam;
- register char *yy_cp = (yy_c_buf_p);
-
- register YY_CHAR yy_c = 1;
- if ( yy_accept[yy_current_state] )
- {
- (yy_last_accepting_state) = yy_current_state;
- (yy_last_accepting_cpos) = yy_cp;
- }
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 568 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 567);
-
- return yy_is_jam ? 0 : yy_current_state;
-}
-
- static void yyunput (int c, register char * yy_bp )
-{
- register char *yy_cp;
-
- yy_cp = (yy_c_buf_p);
-
- /* undo effects of setting up yytext */
- *yy_cp = (yy_hold_char);
-
- if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
- { /* need to shift things up to make room */
- /* +2 for EOB chars. */
- register int number_to_move = (yy_n_chars) + 2;
- register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
- YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
- register char *source =
- &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
-
- while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
- *--dest = *--source;
-
- yy_cp += (int) (dest - source);
- yy_bp += (int) (dest - source);
- YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
- (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
-
- if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
- YY_FATAL_ERROR( "flex scanner push-back overflow" );
- }
-
- *--yy_cp = (char) c;
-
- (yytext_ptr) = yy_bp;
- (yy_hold_char) = *yy_cp;
- (yy_c_buf_p) = yy_cp;
-}
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
- static int yyinput (void)
-#else
- static int input (void)
-#endif
-
-{
- int c;
-
- *(yy_c_buf_p) = (yy_hold_char);
-
- if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
- {
- /* yy_c_buf_p now points to the character we want to return.
- * If this occurs *before* the EOB characters, then it's a
- * valid NUL; if not, then we've hit the end of the buffer.
- */
- if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
- /* This was really a NUL. */
- *(yy_c_buf_p) = '\0';
-
- else
- { /* need more input */
- int offset = (yy_c_buf_p) - (yytext_ptr);
- ++(yy_c_buf_p);
-
- switch ( yy_get_next_buffer( ) )
- {
- case EOB_ACT_LAST_MATCH:
- /* This happens because yy_g_n_b()
- * sees that we've accumulated a
- * token and flags that we need to
- * try matching the token before
- * proceeding. But for input(),
- * there's no matching to consider.
- * So convert the EOB_ACT_LAST_MATCH
- * to EOB_ACT_END_OF_FILE.
- */
-
- /* Reset buffer status. */
- yyrestart(yyin );
-
- /*FALLTHROUGH*/
-
- case EOB_ACT_END_OF_FILE:
- {
- if ( yywrap( ) )
- return 0;
-
- if ( ! (yy_did_buffer_switch_on_eof) )
- YY_NEW_FILE;
-#ifdef __cplusplus
- return yyinput();
-#else
- return input();
-#endif
- }
-
- case EOB_ACT_CONTINUE_SCAN:
- (yy_c_buf_p) = (yytext_ptr) + offset;
- break;
- }
- }
- }
-
- c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
- *(yy_c_buf_p) = '\0'; /* preserve yytext */
- (yy_hold_char) = *++(yy_c_buf_p);
-
- return c;
-}
-#endif /* ifndef YY_NO_INPUT */
-
-/** Immediately switch to a different input stream.
- * @param input_file A readable stream.
- *
- * @note This function does not reset the start condition to @c INITIAL .
- */
- void yyrestart (FILE * input_file )
-{
-
- if ( ! YY_CURRENT_BUFFER ){
- yyensure_buffer_stack ();
- YY_CURRENT_BUFFER_LVALUE =
- yy_create_buffer(yyin,YY_BUF_SIZE );
- }
-
- yy_init_buffer(YY_CURRENT_BUFFER,input_file );
- yy_load_buffer_state( );
-}
-
-/** Switch to a different input buffer.
- * @param new_buffer The new input buffer.
- *
- */
- void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
-{
-
- /* TODO. We should be able to replace this entire function body
- * with
- * yypop_buffer_state();
- * yypush_buffer_state(new_buffer);
- */
- yyensure_buffer_stack ();
- if ( YY_CURRENT_BUFFER == new_buffer )
- return;
-
- if ( YY_CURRENT_BUFFER )
- {
- /* Flush out information for old buffer. */
- *(yy_c_buf_p) = (yy_hold_char);
- YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
- }
-
- YY_CURRENT_BUFFER_LVALUE = new_buffer;
- yy_load_buffer_state( );
-
- /* We don't actually know whether we did this switch during
- * EOF (yywrap()) processing, but the only time this flag
- * is looked at is after yywrap() is called, so it's safe
- * to go ahead and always set it.
- */
- (yy_did_buffer_switch_on_eof) = 1;
-}
-
-static void yy_load_buffer_state (void)
-{
- (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
- (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
- yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
- (yy_hold_char) = *(yy_c_buf_p);
-}
-
-/** Allocate and initialize an input buffer state.
- * @param file A readable stream.
- * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- *
- * @return the allocated buffer state.
- */
- YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
-{
- YY_BUFFER_STATE b;
-
- b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
- if ( ! b )
- YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
- b->yy_buf_size = size;
-
- /* yy_ch_buf has to be 2 characters longer than the size given because
- * we need to put in 2 end-of-buffer characters.
- */
- b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 );
- if ( ! b->yy_ch_buf )
- YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
- b->yy_is_our_buffer = 1;
-
- yy_init_buffer(b,file );
-
- return b;
-}
-
-/** Destroy the buffer.
- * @param b a buffer created with yy_create_buffer()
- *
- */
- void yy_delete_buffer (YY_BUFFER_STATE b )
-{
-
- if ( ! b )
- return;
-
- if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
- YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
-
- if ( b->yy_is_our_buffer )
- yyfree((void *) b->yy_ch_buf );
-
- yyfree((void *) b );
-}
-
-#ifndef __cplusplus
-extern int isatty (int );
-#endif /* __cplusplus */
-
-/* Initializes or reinitializes a buffer.
- * This function is sometimes called more than once on the same buffer,
- * such as during a yyrestart() or at EOF.
- */
- static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
-
-{
- int oerrno = errno;
-
- yy_flush_buffer(b );
-
- b->yy_input_file = file;
- b->yy_fill_buffer = 1;
-
- /* If b is the current buffer, then yy_init_buffer was _probably_
- * called from yyrestart() or through yy_get_next_buffer.
- * In that case, we don't want to reset the lineno or column.
- */
- if (b != YY_CURRENT_BUFFER){
- b->yy_bs_lineno = 1;
- b->yy_bs_column = 0;
- }
-
- b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-
- errno = oerrno;
-}
-
-/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- *
- */
- void yy_flush_buffer (YY_BUFFER_STATE b )
-{
- if ( ! b )
- return;
-
- b->yy_n_chars = 0;
-
- /* We always need two end-of-buffer characters. The first causes
- * a transition to the end-of-buffer state. The second causes
- * a jam in that state.
- */
- b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
- b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
-
- b->yy_buf_pos = &b->yy_ch_buf[0];
-
- b->yy_at_bol = 1;
- b->yy_buffer_status = YY_BUFFER_NEW;
-
- if ( b == YY_CURRENT_BUFFER )
- yy_load_buffer_state( );
-}
-
-/** Pushes the new state onto the stack. The new state becomes
- * the current state. This function will allocate the stack
- * if necessary.
- * @param new_buffer The new state.
- *
- */
-void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
-{
- if (new_buffer == NULL)
- return;
-
- yyensure_buffer_stack();
-
- /* This block is copied from yy_switch_to_buffer. */
- if ( YY_CURRENT_BUFFER )
- {
- /* Flush out information for old buffer. */
- *(yy_c_buf_p) = (yy_hold_char);
- YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
- }
-
- /* Only push if top exists. Otherwise, replace top. */
- if (YY_CURRENT_BUFFER)
- (yy_buffer_stack_top)++;
- YY_CURRENT_BUFFER_LVALUE = new_buffer;
-
- /* copied from yy_switch_to_buffer. */
- yy_load_buffer_state( );
- (yy_did_buffer_switch_on_eof) = 1;
-}
-
-/** Removes and deletes the top of the stack, if present.
- * The next element becomes the new top.
- *
- */
-void yypop_buffer_state (void)
-{
- if (!YY_CURRENT_BUFFER)
- return;
-
- yy_delete_buffer(YY_CURRENT_BUFFER );
- YY_CURRENT_BUFFER_LVALUE = NULL;
- if ((yy_buffer_stack_top) > 0)
- --(yy_buffer_stack_top);
-
- if (YY_CURRENT_BUFFER) {
- yy_load_buffer_state( );
- (yy_did_buffer_switch_on_eof) = 1;
- }
-}
-
-/* Allocates the stack if it does not exist.
- * Guarantees space for at least one push.
- */
-static void yyensure_buffer_stack (void)
-{
- int num_to_alloc;
-
- if (!(yy_buffer_stack)) {
-
- /* First allocation is just for 2 elements, since we don't know if this
- * scanner will even need a stack. We use 2 instead of 1 to avoid an
- * immediate realloc on the next call.
- */
- num_to_alloc = 1;
- (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
- (num_to_alloc * sizeof(struct yy_buffer_state*)
- );
-
- memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-
- (yy_buffer_stack_max) = num_to_alloc;
- (yy_buffer_stack_top) = 0;
- return;
- }
-
- if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
-
- /* Increase the buffer to prepare for a possible push. */
- int grow_size = 8 /* arbitrary grow size */;
-
- num_to_alloc = (yy_buffer_stack_max) + grow_size;
- (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
- ((yy_buffer_stack),
- num_to_alloc * sizeof(struct yy_buffer_state*)
- );
-
- /* zero only the new slots.*/
- memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
- (yy_buffer_stack_max) = num_to_alloc;
- }
-}
-
-/** Setup the input buffer state to scan directly from a user-specified character buffer.
- * @param base the character buffer
- * @param size the size in bytes of the character buffer
- *
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
-{
- YY_BUFFER_STATE b;
-
- if ( size < 2 ||
- base[size-2] != YY_END_OF_BUFFER_CHAR ||
- base[size-1] != YY_END_OF_BUFFER_CHAR )
- /* They forgot to leave room for the EOB's. */
- return 0;
-
- b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
- if ( ! b )
- YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
-
- b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
- b->yy_buf_pos = b->yy_ch_buf = base;
- b->yy_is_our_buffer = 0;
- b->yy_input_file = 0;
- b->yy_n_chars = b->yy_buf_size;
- b->yy_is_interactive = 0;
- b->yy_at_bol = 1;
- b->yy_fill_buffer = 0;
- b->yy_buffer_status = YY_BUFFER_NEW;
-
- yy_switch_to_buffer(b );
-
- return b;
-}
-
-/** Setup the input buffer state to scan a string. The next call to yylex() will
- * scan from a @e copy of @a str.
- * @param str a NUL-terminated string to scan
- *
- * @return the newly allocated buffer state object.
- * @note If you want to scan bytes that may contain NUL values, then use
- * yy_scan_bytes() instead.
- */
-YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
-{
-
- return yy_scan_bytes(yystr,strlen(yystr) );
-}
-
-/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
- * scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
- *
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
-{
- YY_BUFFER_STATE b;
- char *buf;
- yy_size_t n;
- int i;
-
- /* Get memory for full buffer, including space for trailing EOB's. */
- n = _yybytes_len + 2;
- buf = (char *) yyalloc(n );
- if ( ! buf )
- YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
-
- for ( i = 0; i < _yybytes_len; ++i )
- buf[i] = yybytes[i];
-
- buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
-
- b = yy_scan_buffer(buf,n );
- if ( ! b )
- YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
-
- /* It's okay to grow etc. this buffer, and we should throw it
- * away when we're done.
- */
- b->yy_is_our_buffer = 1;
-
- return b;
-}
-
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
-#endif
-
-static void yy_fatal_error (yyconst char* msg )
-{
- (void) fprintf( stderr, "%s\n", msg );
- exit( YY_EXIT_FAILURE );
-}
-
-/* Redefine yyless() so it works in section 3 code. */
-
-#undef yyless
-#define yyless(n) \
- do \
- { \
- /* Undo effects of setting up yytext. */ \
- int yyless_macro_arg = (n); \
- YY_LESS_LINENO(yyless_macro_arg);\
- yytext[yyleng] = (yy_hold_char); \
- (yy_c_buf_p) = yytext + yyless_macro_arg; \
- (yy_hold_char) = *(yy_c_buf_p); \
- *(yy_c_buf_p) = '\0'; \
- yyleng = yyless_macro_arg; \
- } \
- while ( 0 )
-
-/* Accessor methods (get/set functions) to struct members. */
-
-/** Get the current line number.
- *
- */
-int yyget_lineno (void)
-{
-
- return yylineno;
-}
-
-/** Get the input stream.
- *
- */
-FILE *yyget_in (void)
-{
- return yyin;
-}
-
-/** Get the output stream.
- *
- */
-FILE *yyget_out (void)
-{
- return yyout;
-}
-
-/** Get the length of the current token.
- *
- */
-int yyget_leng (void)
-{
- return yyleng;
-}
-
-/** Get the current token.
- *
- */
-
-char *yyget_text (void)
-{
- return yytext;
-}
-
-/** Set the current line number.
- * @param line_number
- *
- */
-void yyset_lineno (int line_number )
-{
-
- yylineno = line_number;
-}
-
-/** Set the input stream. This does not discard the current
- * input buffer.
- * @param in_str A readable stream.
- *
- * @see yy_switch_to_buffer
- */
-void yyset_in (FILE * in_str )
-{
- yyin = in_str ;
-}
-
-void yyset_out (FILE * out_str )
-{
- yyout = out_str ;
-}
-
-int yyget_debug (void)
-{
- return yy_flex_debug;
-}
-
-void yyset_debug (int bdebug )
-{
- yy_flex_debug = bdebug ;
-}
-
-static int yy_init_globals (void)
-{
- /* Initialization is the same as for the non-reentrant scanner.
- * This function is called from yylex_destroy(), so don't allocate here.
- */
-
- (yy_buffer_stack) = 0;
- (yy_buffer_stack_top) = 0;
- (yy_buffer_stack_max) = 0;
- (yy_c_buf_p) = (char *) 0;
- (yy_init) = 0;
- (yy_start) = 0;
-
-/* Defined in main.c */
-#ifdef YY_STDINIT
- yyin = stdin;
- yyout = stdout;
-#else
- yyin = (FILE *) 0;
- yyout = (FILE *) 0;
-#endif
-
- /* For future reference: Set errno on error, since we are called by
- * yylex_init()
- */
- return 0;
-}
-
-/* yylex_destroy is for both reentrant and non-reentrant scanners. */
-int yylex_destroy (void)
-{
-
- /* Pop the buffer stack, destroying each element. */
- while(YY_CURRENT_BUFFER){
- yy_delete_buffer(YY_CURRENT_BUFFER );
- YY_CURRENT_BUFFER_LVALUE = NULL;
- yypop_buffer_state();
- }
-
- /* Destroy the stack itself. */
- yyfree((yy_buffer_stack) );
- (yy_buffer_stack) = NULL;
-
- /* Reset the globals. This is important in a non-reentrant scanner so the next time
- * yylex() is called, initialization will occur. */
- yy_init_globals( );
-
- return 0;
-}
-
-/*
- * Internal utility routines.
- */
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
-{
- register int i;
- for ( i = 0; i < n; ++i )
- s1[i] = s2[i];
-}
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * s )
-{
- register int n;
- for ( n = 0; s[n]; ++n )
- ;
-
- return n;
-}
-#endif
-
-void *yyalloc (yy_size_t size )
-{
- return (void *) malloc( size );
-}
-
-void *yyrealloc (void * ptr, yy_size_t size )
-{
- /* The cast to (char *) in the following accommodates both
- * implementations that use char* generic pointers, and those
- * that use void* generic pointers. It works with the latter
- * because both ANSI C and C++ allow castless assignment from
- * any pointer type to void*, and deal with argument conversions
- * as though doing an assignment.
- */
- return (void *) realloc( (char *) ptr, size );
-}
-
-void yyfree (void * ptr )
-{
- free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
-}
-
-#define YYTABLES_NAME "yytables"
-
-#line 274 "lex.l"
-
-
-
-#ifndef yywrap /* XXX */
-int
-yywrap ()
-{
- return 1;
-}
-#endif
-
-void
-error_message (const char *format, ...)
-{
- va_list args;
-
- va_start (args, format);
- fprintf (stderr, "%s:%d: ", get_filename(), lineno);
- vfprintf (stderr, format, args);
- va_end (args);
- error_flag++;
-}
-
-static void
-unterminated(const char *type, unsigned start_lineno)
-{
- error_message("unterminated %s, possibly started on line %d\n", type, start_lineno);
-}
-
diff --git a/crypto/heimdal/lib/asn1/lex.h b/crypto/heimdal/lib/asn1/lex.h
deleted file mode 100644
index 7aececf..0000000
--- a/crypto/heimdal/lib/asn1/lex.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 1997 - 2000 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-/* $Id: lex.h 15617 2005-07-12 06:27:42Z lha $ */
-
-#include <roken.h>
-
-void error_message (const char *, ...)
-__attribute__ ((format (printf, 1, 2)));
-extern int error_flag;
-
-int yylex(void);
diff --git a/crypto/heimdal/lib/asn1/lex.l b/crypto/heimdal/lib/asn1/lex.l
deleted file mode 100644
index ec74422..0000000
--- a/crypto/heimdal/lib/asn1/lex.l
+++ /dev/null
@@ -1,300 +0,0 @@
-%{
-/*
- * Copyright (c) 1997 - 2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-/* $Id: lex.l 18738 2006-10-21 11:57:22Z lha $ */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#undef ECHO
-#include "symbol.h"
-#include "parse.h"
-#include "lex.h"
-#include "gen_locl.h"
-
-static unsigned lineno = 1;
-
-#undef ECHO
-
-static void unterminated(const char *, unsigned);
-
-%}
-
-/* This is for broken old lexes (solaris 10 and hpux) */
-%e 2000
-%p 5000
-%a 5000
-%n 1000
-%o 10000
-
-%%
-ABSENT { return kw_ABSENT; }
-ABSTRACT-SYNTAX { return kw_ABSTRACT_SYNTAX; }
-ALL { return kw_ALL; }
-APPLICATION { return kw_APPLICATION; }
-AUTOMATIC { return kw_AUTOMATIC; }
-BEGIN { return kw_BEGIN; }
-BIT { return kw_BIT; }
-BMPString { return kw_BMPString; }
-BOOLEAN { return kw_BOOLEAN; }
-BY { return kw_BY; }
-CHARACTER { return kw_CHARACTER; }
-CHOICE { return kw_CHOICE; }
-CLASS { return kw_CLASS; }
-COMPONENT { return kw_COMPONENT; }
-COMPONENTS { return kw_COMPONENTS; }
-CONSTRAINED { return kw_CONSTRAINED; }
-CONTAINING { return kw_CONTAINING; }
-DEFAULT { return kw_DEFAULT; }
-DEFINITIONS { return kw_DEFINITIONS; }
-EMBEDDED { return kw_EMBEDDED; }
-ENCODED { return kw_ENCODED; }
-END { return kw_END; }
-ENUMERATED { return kw_ENUMERATED; }
-EXCEPT { return kw_EXCEPT; }
-EXPLICIT { return kw_EXPLICIT; }
-EXPORTS { return kw_EXPORTS; }
-EXTENSIBILITY { return kw_EXTENSIBILITY; }
-EXTERNAL { return kw_EXTERNAL; }
-FALSE { return kw_FALSE; }
-FROM { return kw_FROM; }
-GeneralString { return kw_GeneralString; }
-GeneralizedTime { return kw_GeneralizedTime; }
-GraphicString { return kw_GraphicString; }
-IA5String { return kw_IA5String; }
-IDENTIFIER { return kw_IDENTIFIER; }
-IMPLICIT { return kw_IMPLICIT; }
-IMPLIED { return kw_IMPLIED; }
-IMPORTS { return kw_IMPORTS; }
-INCLUDES { return kw_INCLUDES; }
-INSTANCE { return kw_INSTANCE; }
-INTEGER { return kw_INTEGER; }
-INTERSECTION { return kw_INTERSECTION; }
-ISO646String { return kw_ISO646String; }
-MAX { return kw_MAX; }
-MIN { return kw_MIN; }
-MINUS-INFINITY { return kw_MINUS_INFINITY; }
-NULL { return kw_NULL; }
-NumericString { return kw_NumericString; }
-OBJECT { return kw_OBJECT; }
-OCTET { return kw_OCTET; }
-OF { return kw_OF; }
-OPTIONAL { return kw_OPTIONAL; }
-ObjectDescriptor { return kw_ObjectDescriptor; }
-PATTERN { return kw_PATTERN; }
-PDV { return kw_PDV; }
-PLUS-INFINITY { return kw_PLUS_INFINITY; }
-PRESENT { return kw_PRESENT; }
-PRIVATE { return kw_PRIVATE; }
-PrintableString { return kw_PrintableString; }
-REAL { return kw_REAL; }
-RELATIVE_OID { return kw_RELATIVE_OID; }
-SEQUENCE { return kw_SEQUENCE; }
-SET { return kw_SET; }
-SIZE { return kw_SIZE; }
-STRING { return kw_STRING; }
-SYNTAX { return kw_SYNTAX; }
-T61String { return kw_T61String; }
-TAGS { return kw_TAGS; }
-TRUE { return kw_TRUE; }
-TYPE-IDENTIFIER { return kw_TYPE_IDENTIFIER; }
-TeletexString { return kw_TeletexString; }
-UNION { return kw_UNION; }
-UNIQUE { return kw_UNIQUE; }
-UNIVERSAL { return kw_UNIVERSAL; }
-UTCTime { return kw_UTCTime; }
-UTF8String { return kw_UTF8String; }
-UniversalString { return kw_UniversalString; }
-VideotexString { return kw_VideotexString; }
-VisibleString { return kw_VisibleString; }
-WITH { return kw_WITH; }
-[-,;{}()|] { return *yytext; }
-"[" { return *yytext; }
-"]" { return *yytext; }
-::= { return EEQUAL; }
--- {
- int c, start_lineno = lineno;
- int f = 0;
- while((c = input()) != EOF) {
- if(f && c == '-')
- break;
- if(c == '-') {
- f = 1;
- continue;
- }
- if(c == '\n') {
- lineno++;
- break;
- }
- f = 0;
- }
- if(c == EOF)
- unterminated("comment", start_lineno);
- }
-\/\* {
- int c, start_lineno = lineno;
- int level = 1;
- int seen_star = 0;
- int seen_slash = 0;
- while((c = input()) != EOF) {
- if(c == '/') {
- if(seen_star) {
- if(--level == 0)
- break;
- seen_star = 0;
- continue;
- }
- seen_slash = 1;
- continue;
- }
- if(seen_star && c == '/') {
- if(--level == 0)
- break;
- seen_star = 0;
- continue;
- }
- if(c == '*') {
- if(seen_slash) {
- level++;
- seen_star = seen_slash = 0;
- continue;
- }
- seen_star = 1;
- continue;
- }
- seen_star = seen_slash = 0;
- if(c == '\n') {
- lineno++;
- continue;
- }
- }
- if(c == EOF)
- unterminated("comment", start_lineno);
- }
-"\"" {
- int start_lineno = lineno;
- int c;
- char buf[1024];
- char *p = buf;
- int f = 0;
- int skip_ws = 0;
-
- while((c = input()) != EOF) {
- if(isspace(c) && skip_ws) {
- if(c == '\n')
- lineno++;
- continue;
- }
- skip_ws = 0;
-
- if(c == '"') {
- if(f) {
- *p++ = '"';
- f = 0;
- } else
- f = 1;
- continue;
- }
- if(f == 1) {
- unput(c);
- break;
- }
- if(c == '\n') {
- lineno++;
- while(p > buf && isspace((unsigned char)p[-1]))
- p--;
- skip_ws = 1;
- continue;
- }
- *p++ = c;
- }
- if(c == EOF)
- unterminated("string", start_lineno);
- *p++ = '\0';
- fprintf(stderr, "string -- %s\n", buf);
- yylval.name = estrdup(buf);
- return STRING;
- }
-
--?0x[0-9A-Fa-f]+|-?[0-9]+ { char *e, *y = yytext;
- yylval.constant = strtol((const char *)yytext,
- &e, 0);
- if(e == y)
- error_message("malformed constant (%s)", yytext);
- else
- return NUMBER;
- }
-[A-Za-z][-A-Za-z0-9_]* {
- yylval.name = estrdup ((const char *)yytext);
- return IDENTIFIER;
- }
-[ \t] ;
-\n { ++lineno; }
-\.\.\. { return ELLIPSIS; }
-\.\. { return RANGE; }
-. { error_message("Ignoring char(%c)\n", *yytext); }
-%%
-
-#ifndef yywrap /* XXX */
-int
-yywrap ()
-{
- return 1;
-}
-#endif
-
-void
-error_message (const char *format, ...)
-{
- va_list args;
-
- va_start (args, format);
- fprintf (stderr, "%s:%d: ", get_filename(), lineno);
- vfprintf (stderr, format, args);
- va_end (args);
- error_flag++;
-}
-
-static void
-unterminated(const char *type, unsigned start_lineno)
-{
- error_message("unterminated %s, possibly started on line %d\n", type, start_lineno);
-}
diff --git a/crypto/heimdal/lib/asn1/main.c b/crypto/heimdal/lib/asn1/main.c
deleted file mode 100644
index 3b4a812..0000000
--- a/crypto/heimdal/lib/asn1/main.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright (c) 1997-2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "gen_locl.h"
-#include <getarg.h>
-#include "lex.h"
-
-RCSID("$Id: main.c 20858 2007-06-03 18:56:41Z lha $");
-
-extern FILE *yyin;
-
-static getarg_strings preserve;
-static getarg_strings seq;
-
-int
-preserve_type(const char *p)
-{
- int i;
- for (i = 0; i < preserve.num_strings; i++)
- if (strcmp(preserve.strings[i], p) == 0)
- return 1;
- return 0;
-}
-
-int
-seq_type(const char *p)
-{
- int i;
- for (i = 0; i < seq.num_strings; i++)
- if (strcmp(seq.strings[i], p) == 0)
- return 1;
- return 0;
-}
-
-int dce_fix;
-int rfc1510_bitstring;
-int version_flag;
-int help_flag;
-struct getargs args[] = {
- { "encode-rfc1510-bit-string", 0, arg_flag, &rfc1510_bitstring },
- { "decode-dce-ber", 0, arg_flag, &dce_fix },
- { "preserve-binary", 0, arg_strings, &preserve },
- { "sequence", 0, arg_strings, &seq },
- { "version", 0, arg_flag, &version_flag },
- { "help", 0, arg_flag, &help_flag }
-};
-int num_args = sizeof(args) / sizeof(args[0]);
-
-static void
-usage(int code)
-{
- arg_printusage(args, num_args, NULL, "[asn1-file [name]]");
- exit(code);
-}
-
-int error_flag;
-
-int
-main(int argc, char **argv)
-{
- int ret;
- const char *file;
- const char *name = NULL;
- int optidx = 0;
-
- setprogname(argv[0]);
- if(getarg(args, num_args, argc, argv, &optidx))
- usage(1);
- if(help_flag)
- usage(0);
- if(version_flag) {
- print_version(NULL);
- exit(0);
- }
- if (argc == optidx) {
- file = "stdin";
- name = "stdin";
- yyin = stdin;
- } else {
- file = argv[optidx];
- yyin = fopen (file, "r");
- if (yyin == NULL)
- err (1, "open %s", file);
- if (argc == optidx + 1) {
- char *p;
- name = estrdup(file);
- p = strrchr(name, '.');
- if (p)
- *p = '\0';
- } else
- name = argv[optidx + 1];
- }
-
- init_generate (file, name);
- initsym ();
- ret = yyparse ();
- if(ret != 0 || error_flag != 0)
- exit(1);
- close_generate ();
- if (argc != optidx)
- fclose(yyin);
- return 0;
-}
diff --git a/crypto/heimdal/lib/asn1/parse.c b/crypto/heimdal/lib/asn1/parse.c
deleted file mode 100644
index 9800d54..0000000
--- a/crypto/heimdal/lib/asn1/parse.c
+++ /dev/null
@@ -1,2831 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.3. */
-
-/* Skeleton implementation for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-/* As a special exception, you may create a larger work that contains
- part or all of the Bison parser skeleton and distribute that work
- under terms of your choice, so long as that work isn't itself a
- parser generator using the skeleton or a modified version thereof
- as a parser skeleton. Alternatively, if you modify or redistribute
- the parser skeleton itself, you may (at your option) remove this
- special exception, which will cause the skeleton and the resulting
- Bison output files to be licensed under the GNU General Public
- License without this special exception.
-
- This special exception was added by the Free Software Foundation in
- version 2.2 of Bison. */
-
-/* C LALR(1) parser skeleton written by Richard Stallman, by
- simplifying the original so-called "semantic" parser. */
-
-/* All symbols defined below should begin with yy or YY, to avoid
- infringing on user name space. This should be done even for local
- variables, as they might otherwise be expanded by user macros.
- There are some unavoidable exceptions within include files to
- define necessary library symbols; they are noted "INFRINGES ON
- USER NAME SPACE" below. */
-
-/* Identify Bison output. */
-#define YYBISON 1
-
-/* Bison version. */
-#define YYBISON_VERSION "2.3"
-
-/* Skeleton name. */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers. */
-#define YYPURE 0
-
-/* Using locations. */
-#define YYLSP_NEEDED 0
-
-
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- kw_ABSENT = 258,
- kw_ABSTRACT_SYNTAX = 259,
- kw_ALL = 260,
- kw_APPLICATION = 261,
- kw_AUTOMATIC = 262,
- kw_BEGIN = 263,
- kw_BIT = 264,
- kw_BMPString = 265,
- kw_BOOLEAN = 266,
- kw_BY = 267,
- kw_CHARACTER = 268,
- kw_CHOICE = 269,
- kw_CLASS = 270,
- kw_COMPONENT = 271,
- kw_COMPONENTS = 272,
- kw_CONSTRAINED = 273,
- kw_CONTAINING = 274,
- kw_DEFAULT = 275,
- kw_DEFINITIONS = 276,
- kw_EMBEDDED = 277,
- kw_ENCODED = 278,
- kw_END = 279,
- kw_ENUMERATED = 280,
- kw_EXCEPT = 281,
- kw_EXPLICIT = 282,
- kw_EXPORTS = 283,
- kw_EXTENSIBILITY = 284,
- kw_EXTERNAL = 285,
- kw_FALSE = 286,
- kw_FROM = 287,
- kw_GeneralString = 288,
- kw_GeneralizedTime = 289,
- kw_GraphicString = 290,
- kw_IA5String = 291,
- kw_IDENTIFIER = 292,
- kw_IMPLICIT = 293,
- kw_IMPLIED = 294,
- kw_IMPORTS = 295,
- kw_INCLUDES = 296,
- kw_INSTANCE = 297,
- kw_INTEGER = 298,
- kw_INTERSECTION = 299,
- kw_ISO646String = 300,
- kw_MAX = 301,
- kw_MIN = 302,
- kw_MINUS_INFINITY = 303,
- kw_NULL = 304,
- kw_NumericString = 305,
- kw_OBJECT = 306,
- kw_OCTET = 307,
- kw_OF = 308,
- kw_OPTIONAL = 309,
- kw_ObjectDescriptor = 310,
- kw_PATTERN = 311,
- kw_PDV = 312,
- kw_PLUS_INFINITY = 313,
- kw_PRESENT = 314,
- kw_PRIVATE = 315,
- kw_PrintableString = 316,
- kw_REAL = 317,
- kw_RELATIVE_OID = 318,
- kw_SEQUENCE = 319,
- kw_SET = 320,
- kw_SIZE = 321,
- kw_STRING = 322,
- kw_SYNTAX = 323,
- kw_T61String = 324,
- kw_TAGS = 325,
- kw_TRUE = 326,
- kw_TYPE_IDENTIFIER = 327,
- kw_TeletexString = 328,
- kw_UNION = 329,
- kw_UNIQUE = 330,
- kw_UNIVERSAL = 331,
- kw_UTCTime = 332,
- kw_UTF8String = 333,
- kw_UniversalString = 334,
- kw_VideotexString = 335,
- kw_VisibleString = 336,
- kw_WITH = 337,
- RANGE = 338,
- EEQUAL = 339,
- ELLIPSIS = 340,
- IDENTIFIER = 341,
- referencename = 342,
- STRING = 343,
- NUMBER = 344
- };
-#endif
-/* Tokens. */
-#define kw_ABSENT 258
-#define kw_ABSTRACT_SYNTAX 259
-#define kw_ALL 260
-#define kw_APPLICATION 261
-#define kw_AUTOMATIC 262
-#define kw_BEGIN 263
-#define kw_BIT 264
-#define kw_BMPString 265
-#define kw_BOOLEAN 266
-#define kw_BY 267
-#define kw_CHARACTER 268
-#define kw_CHOICE 269
-#define kw_CLASS 270
-#define kw_COMPONENT 271
-#define kw_COMPONENTS 272
-#define kw_CONSTRAINED 273
-#define kw_CONTAINING 274
-#define kw_DEFAULT 275
-#define kw_DEFINITIONS 276
-#define kw_EMBEDDED 277
-#define kw_ENCODED 278
-#define kw_END 279
-#define kw_ENUMERATED 280
-#define kw_EXCEPT 281
-#define kw_EXPLICIT 282
-#define kw_EXPORTS 283
-#define kw_EXTENSIBILITY 284
-#define kw_EXTERNAL 285
-#define kw_FALSE 286
-#define kw_FROM 287
-#define kw_GeneralString 288
-#define kw_GeneralizedTime 289
-#define kw_GraphicString 290
-#define kw_IA5String 291
-#define kw_IDENTIFIER 292
-#define kw_IMPLICIT 293
-#define kw_IMPLIED 294
-#define kw_IMPORTS 295
-#define kw_INCLUDES 296
-#define kw_INSTANCE 297
-#define kw_INTEGER 298
-#define kw_INTERSECTION 299
-#define kw_ISO646String 300
-#define kw_MAX 301
-#define kw_MIN 302
-#define kw_MINUS_INFINITY 303
-#define kw_NULL 304
-#define kw_NumericString 305
-#define kw_OBJECT 306
-#define kw_OCTET 307
-#define kw_OF 308
-#define kw_OPTIONAL 309
-#define kw_ObjectDescriptor 310
-#define kw_PATTERN 311
-#define kw_PDV 312
-#define kw_PLUS_INFINITY 313
-#define kw_PRESENT 314
-#define kw_PRIVATE 315
-#define kw_PrintableString 316
-#define kw_REAL 317
-#define kw_RELATIVE_OID 318
-#define kw_SEQUENCE 319
-#define kw_SET 320
-#define kw_SIZE 321
-#define kw_STRING 322
-#define kw_SYNTAX 323
-#define kw_T61String 324
-#define kw_TAGS 325
-#define kw_TRUE 326
-#define kw_TYPE_IDENTIFIER 327
-#define kw_TeletexString 328
-#define kw_UNION 329
-#define kw_UNIQUE 330
-#define kw_UNIVERSAL 331
-#define kw_UTCTime 332
-#define kw_UTF8String 333
-#define kw_UniversalString 334
-#define kw_VideotexString 335
-#define kw_VisibleString 336
-#define kw_WITH 337
-#define RANGE 338
-#define EEQUAL 339
-#define ELLIPSIS 340
-#define IDENTIFIER 341
-#define referencename 342
-#define STRING 343
-#define NUMBER 344
-
-
-
-
-/* Copy the first part of user declarations. */
-#line 36 "parse.y"
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "symbol.h"
-#include "lex.h"
-#include "gen_locl.h"
-#include "der.h"
-
-RCSID("$Id: parse.y 21597 2007-07-16 18:48:58Z lha $");
-
-static Type *new_type (Typetype t);
-static struct constraint_spec *new_constraint_spec(enum ctype);
-static Type *new_tag(int tagclass, int tagvalue, int tagenv, Type *oldtype);
-void yyerror (const char *);
-static struct objid *new_objid(const char *label, int value);
-static void add_oid_to_tail(struct objid *, struct objid *);
-static void fix_labels(Symbol *s);
-
-struct string_list {
- char *string;
- struct string_list *next;
-};
-
-
-
-/* Enabling traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
-
-/* Enabling verbose error messages. */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-/* Enabling the token table. */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
-#endif
-
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
-#line 65 "parse.y"
-{
- int constant;
- struct value *value;
- struct range *range;
- char *name;
- Type *type;
- Member *member;
- struct objid *objid;
- char *defval;
- struct string_list *sl;
- struct tagtype tag;
- struct memhead *members;
- struct constraint_spec *constraint_spec;
-}
-/* Line 193 of yacc.c. */
-#line 318 "parse.c"
- YYSTYPE;
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-
-
-/* Copy the second part of user declarations. */
-
-
-/* Line 216 of yacc.c. */
-#line 331 "parse.c"
-
-#ifdef short
-# undef short
-#endif
-
-#ifdef YYTYPE_UINT8
-typedef YYTYPE_UINT8 yytype_uint8;
-#else
-typedef unsigned char yytype_uint8;
-#endif
-
-#ifdef YYTYPE_INT8
-typedef YYTYPE_INT8 yytype_int8;
-#elif (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-typedef signed char yytype_int8;
-#else
-typedef short int yytype_int8;
-#endif
-
-#ifdef YYTYPE_UINT16
-typedef YYTYPE_UINT16 yytype_uint16;
-#else
-typedef unsigned short int yytype_uint16;
-#endif
-
-#ifdef YYTYPE_INT16
-typedef YYTYPE_INT16 yytype_int16;
-#else
-typedef short int yytype_int16;
-#endif
-
-#ifndef YYSIZE_T
-# ifdef __SIZE_TYPE__
-# define YYSIZE_T __SIZE_TYPE__
-# elif defined size_t
-# define YYSIZE_T size_t
-# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-# else
-# define YYSIZE_T unsigned int
-# endif
-#endif
-
-#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-
-#ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
-# if ENABLE_NLS
-# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-# define YY_(msgid) dgettext ("bison-runtime", msgid)
-# endif
-# endif
-# ifndef YY_
-# define YY_(msgid) msgid
-# endif
-#endif
-
-/* Suppress unused-variable warnings by "using" E. */
-#if ! defined lint || defined __GNUC__
-# define YYUSE(e) ((void) (e))
-#else
-# define YYUSE(e) /* empty */
-#endif
-
-/* Identity function, used to suppress warnings about constant conditions. */
-#ifndef lint
-# define YYID(n) (n)
-#else
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static int
-YYID (int i)
-#else
-static int
-YYID (i)
- int i;
-#endif
-{
- return i;
-}
-#endif
-
-#if ! defined yyoverflow || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols. */
-
-# ifdef YYSTACK_USE_ALLOCA
-# if YYSTACK_USE_ALLOCA
-# ifdef __GNUC__
-# define YYSTACK_ALLOC __builtin_alloca
-# elif defined __BUILTIN_VA_ARG_INCR
-# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-# elif defined _AIX
-# define YYSTACK_ALLOC __alloca
-# elif defined _MSC_VER
-# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-# define alloca _alloca
-# else
-# define YYSTACK_ALLOC alloca
-# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
-# endif
-# endif
-# endif
-# endif
-# endif
-
-# ifdef YYSTACK_ALLOC
- /* Pacify GCC's `empty if-body' warning. */
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
-# ifndef YYSTACK_ALLOC_MAXIMUM
- /* The OS might guarantee only one guard page at the bottom of the stack,
- and a page size can be as small as 4096 bytes. So we cannot safely
- invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
- to allow for a few compiler-allocated temporary stack slots. */
-# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
-# endif
-# else
-# define YYSTACK_ALLOC YYMALLOC
-# define YYSTACK_FREE YYFREE
-# ifndef YYSTACK_ALLOC_MAXIMUM
-# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-# endif
-# if (defined __cplusplus && ! defined _STDLIB_H \
- && ! ((defined YYMALLOC || defined malloc) \
- && (defined YYFREE || defined free)))
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
-# endif
-# endif
-# ifndef YYMALLOC
-# define YYMALLOC malloc
-# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# ifndef YYFREE
-# define YYFREE free
-# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# endif
-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
-#if (! defined yyoverflow \
- && (! defined __cplusplus \
- || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member. */
-union yyalloc
-{
- yytype_int16 yyss;
- YYSTYPE yyvs;
- };
-
-/* The size of the maximum gap between one aligned stack and the next. */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
- N elements. */
-# define YYSTACK_BYTES(N) \
- ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
- + YYSTACK_GAP_MAXIMUM)
-
-/* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
-# ifndef YYCOPY
-# if defined __GNUC__ && 1 < __GNUC__
-# define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-# else
-# define YYCOPY(To, From, Count) \
- do \
- { \
- YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
- while (YYID (0))
-# endif
-# endif
-
-/* Relocate STACK from its old location to the new one. The
- local variables YYSIZE and YYSTACKSIZE give the old and new number of
- elements in the stack, and YYPTR gives the new location of the
- stack. Advance YYPTR to a properly aligned location for the next
- stack. */
-# define YYSTACK_RELOCATE(Stack) \
- do \
- { \
- YYSIZE_T yynewbytes; \
- YYCOPY (&yyptr->Stack, Stack, yysize); \
- Stack = &yyptr->Stack; \
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
- while (YYID (0))
-
-#endif
-
-/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 6
-/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 195
-
-/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 98
-/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 68
-/* YYNRULES -- Number of rules. */
-#define YYNRULES 136
-/* YYNRULES -- Number of states. */
-#define YYNSTATES 214
-
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
-#define YYUNDEFTOK 2
-#define YYMAXUTOK 344
-
-#define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
-static const yytype_uint8 yytranslate[] =
-{
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 92, 93, 2, 2, 91, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 90,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 96, 2, 97, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 94, 2, 95, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89
-};
-
-#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
-static const yytype_uint16 yyprhs[] =
-{
- 0, 0, 3, 13, 16, 19, 22, 23, 26, 27,
- 30, 31, 35, 36, 38, 39, 41, 44, 49, 51,
- 54, 56, 58, 62, 64, 68, 70, 72, 74, 76,
- 78, 80, 82, 84, 86, 88, 90, 92, 94, 96,
- 98, 100, 102, 104, 110, 116, 122, 126, 128, 131,
- 136, 138, 142, 146, 151, 156, 158, 161, 167, 170,
- 174, 176, 177, 180, 185, 189, 194, 199, 203, 207,
- 212, 214, 216, 218, 220, 222, 225, 229, 231, 233,
- 235, 238, 242, 248, 253, 257, 262, 263, 265, 267,
- 269, 270, 272, 274, 279, 281, 283, 285, 287, 289,
- 291, 293, 295, 297, 301, 305, 308, 310, 313, 317,
- 319, 323, 328, 330, 331, 335, 336, 339, 344, 346,
- 348, 350, 352, 354, 356, 358, 360, 362, 364, 366,
- 368, 370, 372, 374, 376, 378, 380
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const yytype_int16 yyrhs[] =
-{
- 99, 0, -1, 86, 151, 21, 100, 101, 84, 8,
- 102, 24, -1, 27, 70, -1, 38, 70, -1, 7,
- 70, -1, -1, 29, 39, -1, -1, 103, 107, -1,
- -1, 40, 104, 90, -1, -1, 105, -1, -1, 106,
- -1, 105, 106, -1, 109, 32, 86, 151, -1, 108,
- -1, 108, 107, -1, 110, -1, 143, -1, 86, 91,
- 109, -1, 86, -1, 86, 84, 111, -1, 112, -1,
- 130, -1, 133, -1, 120, -1, 113, -1, 144, -1,
- 129, -1, 118, -1, 115, -1, 123, -1, 121, -1,
- 122, -1, 125, -1, 126, -1, 127, -1, 128, -1,
- 139, -1, 11, -1, 92, 155, 83, 155, 93, -1,
- 92, 155, 83, 46, 93, -1, 92, 47, 83, 155,
- 93, -1, 92, 155, 93, -1, 43, -1, 43, 114,
- -1, 43, 94, 116, 95, -1, 117, -1, 116, 91,
- 117, -1, 116, 91, 85, -1, 86, 92, 163, 93,
- -1, 25, 94, 119, 95, -1, 116, -1, 9, 67,
- -1, 9, 67, 94, 149, 95, -1, 51, 37, -1,
- 52, 67, 124, -1, 49, -1, -1, 66, 114, -1,
- 64, 94, 146, 95, -1, 64, 94, 95, -1, 64,
- 124, 53, 111, -1, 65, 94, 146, 95, -1, 65,
- 94, 95, -1, 65, 53, 111, -1, 14, 94, 146,
- 95, -1, 131, -1, 132, -1, 86, -1, 34, -1,
- 77, -1, 111, 134, -1, 92, 135, 93, -1, 136,
- -1, 137, -1, 138, -1, 19, 111, -1, 23, 12,
- 155, -1, 19, 111, 23, 12, 155, -1, 18, 12,
- 94, 95, -1, 140, 142, 111, -1, 96, 141, 89,
- 97, -1, -1, 76, -1, 6, -1, 60, -1, -1,
- 27, -1, 38, -1, 86, 111, 84, 155, -1, 145,
- -1, 33, -1, 78, -1, 61, -1, 81, -1, 36,
- -1, 10, -1, 79, -1, 148, -1, 146, 91, 148,
- -1, 146, 91, 85, -1, 86, 111, -1, 147, -1,
- 147, 54, -1, 147, 20, 155, -1, 150, -1, 149,
- 91, 150, -1, 86, 92, 89, 93, -1, 152, -1,
- -1, 94, 153, 95, -1, -1, 154, 153, -1, 86,
- 92, 89, 93, -1, 86, -1, 89, -1, 156, -1,
- 157, -1, 161, -1, 160, -1, 162, -1, 165, -1,
- 164, -1, 158, -1, 159, -1, 86, -1, 88, -1,
- 71, -1, 31, -1, 163, -1, 89, -1, 49, -1,
- 152, -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const yytype_uint16 yyrline[] =
-{
- 0, 233, 233, 240, 241, 243, 245, 248, 250, 253,
- 254, 257, 258, 261, 262, 265, 266, 269, 280, 281,
- 284, 285, 288, 294, 302, 312, 313, 314, 317, 318,
- 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
- 329, 330, 333, 340, 350, 358, 366, 377, 382, 388,
- 396, 402, 407, 411, 424, 432, 435, 442, 450, 456,
- 465, 473, 474, 479, 485, 493, 502, 508, 516, 524,
- 531, 532, 535, 546, 551, 558, 574, 580, 583, 584,
- 587, 593, 601, 611, 617, 630, 639, 642, 646, 650,
- 657, 660, 664, 671, 682, 685, 690, 695, 700, 705,
- 710, 715, 723, 729, 734, 745, 756, 762, 768, 776,
- 782, 789, 802, 803, 806, 813, 816, 827, 831, 842,
- 848, 849, 852, 853, 854, 855, 856, 859, 862, 865,
- 876, 884, 890, 898, 906, 909, 914
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
-static const char *const yytname[] =
-{
- "$end", "error", "$undefined", "kw_ABSENT", "kw_ABSTRACT_SYNTAX",
- "kw_ALL", "kw_APPLICATION", "kw_AUTOMATIC", "kw_BEGIN", "kw_BIT",
- "kw_BMPString", "kw_BOOLEAN", "kw_BY", "kw_CHARACTER", "kw_CHOICE",
- "kw_CLASS", "kw_COMPONENT", "kw_COMPONENTS", "kw_CONSTRAINED",
- "kw_CONTAINING", "kw_DEFAULT", "kw_DEFINITIONS", "kw_EMBEDDED",
- "kw_ENCODED", "kw_END", "kw_ENUMERATED", "kw_EXCEPT", "kw_EXPLICIT",
- "kw_EXPORTS", "kw_EXTENSIBILITY", "kw_EXTERNAL", "kw_FALSE", "kw_FROM",
- "kw_GeneralString", "kw_GeneralizedTime", "kw_GraphicString",
- "kw_IA5String", "kw_IDENTIFIER", "kw_IMPLICIT", "kw_IMPLIED",
- "kw_IMPORTS", "kw_INCLUDES", "kw_INSTANCE", "kw_INTEGER",
- "kw_INTERSECTION", "kw_ISO646String", "kw_MAX", "kw_MIN",
- "kw_MINUS_INFINITY", "kw_NULL", "kw_NumericString", "kw_OBJECT",
- "kw_OCTET", "kw_OF", "kw_OPTIONAL", "kw_ObjectDescriptor", "kw_PATTERN",
- "kw_PDV", "kw_PLUS_INFINITY", "kw_PRESENT", "kw_PRIVATE",
- "kw_PrintableString", "kw_REAL", "kw_RELATIVE_OID", "kw_SEQUENCE",
- "kw_SET", "kw_SIZE", "kw_STRING", "kw_SYNTAX", "kw_T61String", "kw_TAGS",
- "kw_TRUE", "kw_TYPE_IDENTIFIER", "kw_TeletexString", "kw_UNION",
- "kw_UNIQUE", "kw_UNIVERSAL", "kw_UTCTime", "kw_UTF8String",
- "kw_UniversalString", "kw_VideotexString", "kw_VisibleString", "kw_WITH",
- "RANGE", "EEQUAL", "ELLIPSIS", "IDENTIFIER", "referencename", "STRING",
- "NUMBER", "';'", "','", "'('", "')'", "'{'", "'}'", "'['", "']'",
- "$accept", "ModuleDefinition", "TagDefault", "ExtensionDefault",
- "ModuleBody", "Imports", "SymbolsImported", "SymbolsFromModuleList",
- "SymbolsFromModule", "AssignmentList", "Assignment", "referencenames",
- "TypeAssignment", "Type", "BuiltinType", "BooleanType", "range",
- "IntegerType", "NamedNumberList", "NamedNumber", "EnumeratedType",
- "Enumerations", "BitStringType", "ObjectIdentifierType",
- "OctetStringType", "NullType", "size", "SequenceType", "SequenceOfType",
- "SetType", "SetOfType", "ChoiceType", "ReferencedType", "DefinedType",
- "UsefulType", "ConstrainedType", "Constraint", "ConstraintSpec",
- "GeneralConstraint", "ContentsConstraint", "UserDefinedConstraint",
- "TaggedType", "Tag", "Class", "tagenv", "ValueAssignment",
- "CharacterStringType", "RestrictedCharactedStringType",
- "ComponentTypeList", "NamedType", "ComponentType", "NamedBitList",
- "NamedBit", "objid_opt", "objid", "objid_list", "objid_element", "Value",
- "BuiltinValue", "ReferencedValue", "DefinedValue", "Valuereference",
- "CharacterStringValue", "BooleanValue", "IntegerValue", "SignedNumber",
- "NullValue", "ObjectIdentifierValue", 0
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
-static const yytype_uint16 yytoknum[] =
-{
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
- 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
- 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
- 59, 44, 40, 41, 123, 125, 91, 93
-};
-# endif
-
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const yytype_uint8 yyr1[] =
-{
- 0, 98, 99, 100, 100, 100, 100, 101, 101, 102,
- 102, 103, 103, 104, 104, 105, 105, 106, 107, 107,
- 108, 108, 109, 109, 110, 111, 111, 111, 112, 112,
- 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
- 112, 112, 113, 114, 114, 114, 114, 115, 115, 115,
- 116, 116, 116, 117, 118, 119, 120, 120, 121, 122,
- 123, 124, 124, 125, 125, 126, 127, 127, 128, 129,
- 130, 130, 131, 132, 132, 133, 134, 135, 136, 136,
- 137, 137, 137, 138, 139, 140, 141, 141, 141, 141,
- 142, 142, 142, 143, 144, 145, 145, 145, 145, 145,
- 145, 145, 146, 146, 146, 147, 148, 148, 148, 149,
- 149, 150, 151, 151, 152, 153, 153, 154, 154, 154,
- 155, 155, 156, 156, 156, 156, 156, 157, 158, 159,
- 160, 161, 161, 162, 163, 164, 165
-};
-
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-static const yytype_uint8 yyr2[] =
-{
- 0, 2, 9, 2, 2, 2, 0, 2, 0, 2,
- 0, 3, 0, 1, 0, 1, 2, 4, 1, 2,
- 1, 1, 3, 1, 3, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 5, 5, 5, 3, 1, 2, 4,
- 1, 3, 3, 4, 4, 1, 2, 5, 2, 3,
- 1, 0, 2, 4, 3, 4, 4, 3, 3, 4,
- 1, 1, 1, 1, 1, 2, 3, 1, 1, 1,
- 2, 3, 5, 4, 3, 4, 0, 1, 1, 1,
- 0, 1, 1, 4, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 3, 3, 2, 1, 2, 3, 1,
- 3, 4, 1, 0, 3, 0, 2, 4, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1
-};
-
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
- means the default is an error. */
-static const yytype_uint8 yydefact[] =
-{
- 0, 113, 0, 115, 0, 112, 1, 118, 119, 0,
- 115, 6, 0, 114, 116, 0, 0, 0, 8, 0,
- 5, 3, 4, 0, 0, 117, 7, 0, 10, 14,
- 0, 0, 23, 0, 13, 15, 0, 2, 0, 9,
- 18, 20, 21, 0, 11, 16, 0, 0, 100, 42,
- 0, 0, 95, 73, 99, 47, 60, 0, 0, 97,
- 61, 0, 74, 96, 101, 98, 0, 72, 86, 0,
- 25, 29, 33, 32, 28, 35, 36, 34, 37, 38,
- 39, 40, 31, 26, 70, 71, 27, 41, 90, 30,
- 94, 19, 22, 113, 56, 0, 0, 0, 0, 48,
- 58, 61, 0, 0, 0, 0, 0, 24, 88, 89,
- 87, 0, 0, 0, 75, 91, 92, 0, 17, 0,
- 0, 0, 106, 102, 0, 55, 50, 0, 132, 0,
- 135, 131, 129, 130, 134, 136, 0, 120, 121, 127,
- 128, 123, 122, 124, 133, 126, 125, 0, 59, 62,
- 64, 0, 0, 68, 67, 0, 0, 93, 0, 0,
- 0, 0, 77, 78, 79, 84, 0, 0, 109, 105,
- 0, 69, 0, 107, 0, 0, 54, 0, 0, 46,
- 49, 63, 65, 66, 85, 0, 80, 0, 76, 0,
- 0, 57, 104, 103, 108, 0, 52, 51, 0, 0,
- 0, 0, 0, 81, 0, 110, 53, 45, 44, 43,
- 83, 0, 111, 82
-};
-
-/* YYDEFGOTO[NTERM-NUM]. */
-static const yytype_int16 yydefgoto[] =
-{
- -1, 2, 18, 24, 30, 31, 33, 34, 35, 39,
- 40, 36, 41, 69, 70, 71, 99, 72, 125, 126,
- 73, 127, 74, 75, 76, 77, 104, 78, 79, 80,
- 81, 82, 83, 84, 85, 86, 114, 161, 162, 163,
- 164, 87, 88, 111, 117, 42, 89, 90, 121, 122,
- 123, 167, 168, 4, 135, 9, 10, 136, 137, 138,
- 139, 140, 141, 142, 143, 144, 145, 146
-};
-
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
-#define YYPACT_NINF -113
-static const yytype_int16 yypact[] =
-{
- -74, -67, 38, -69, 23, -113, -113, -44, -113, -41,
- -69, 4, -26, -113, -113, -3, 1, 10, 52, -10,
- -113, -113, -113, 45, 13, -113, -113, 77, -35, 15,
- 64, 19, 17, 20, 15, -113, 85, -113, 25, -113,
- 19, -113, -113, 15, -113, -113, 27, 47, -113, -113,
- 26, 29, -113, -113, -113, -30, -113, 89, 61, -113,
- -57, -47, -113, -113, -113, -113, 82, -113, -4, -68,
- -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
- -113, -113, -113, -113, -113, -113, -113, -113, -17, -113,
- -113, -113, -113, -67, 35, 33, 46, 51, 46, -113,
- -113, 69, 44, -73, 88, 82, -72, 56, -113, -113,
- -113, 49, 93, 7, -113, -113, -113, 82, -113, 58,
- 82, -76, -13, -113, 57, 59, -113, 60, -113, 68,
- -113, -113, -113, -113, -113, -113, -75, -113, -113, -113,
- -113, -113, -113, -113, -113, -113, -113, -63, -113, -113,
- -113, -62, 82, 56, -113, -46, 65, -113, 141, 82,
- 142, 63, -113, -113, -113, 56, 66, -38, -113, 56,
- -16, -113, 93, -113, 76, -7, -113, 93, 81, -113,
- -113, -113, 56, -113, -113, 72, -19, 93, -113, 83,
- 58, -113, -113, -113, -113, 78, -113, -113, 80, 84,
- 87, 62, 162, -113, 90, -113, -113, -113, -113, -113,
- -113, 93, -113, -113
-};
-
-/* YYPGOTO[NTERM-NUM]. */
-static const yytype_int16 yypgoto[] =
-{
- -113, -113, -113, -113, -113, -113, -113, -113, 150, 136,
- -113, 143, -113, -65, -113, -113, 86, -113, 91, 16,
- -113, -113, -113, -113, -113, -113, 92, -113, -113, -113,
- -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
- -113, -113, -113, -113, -113, -113, -113, -113, -60, -113,
- 22, -113, -5, 97, 2, 184, -113, -112, -113, -113,
- -113, -113, -113, -113, -113, 21, -113, -113
-};
-
-/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
- positive, shift that token. If negative, reduce the rule which
- number is the opposite. If zero, do what YYDEFACT says.
- If YYTABLE_NINF, syntax error. */
-#define YYTABLE_NINF -13
-static const yytype_int16 yytable[] =
-{
- 157, 107, 108, 5, 202, 29, 105, 172, 178, 102,
- 115, 15, 1, 120, 120, 170, 112, 7, 179, 171,
- 8, 116, 150, 154, 113, 158, 159, 3, 175, 170,
- 160, 16, 180, 181, 47, 48, 49, 103, 6, 50,
- 153, 173, 17, 151, 11, 170, 155, 106, 12, 183,
- 51, -12, 165, 190, 13, 169, 109, 191, 52, 53,
- 194, 54, 97, 19, 98, 198, 200, 20, 55, 192,
- 120, 21, 110, 113, 56, 203, 57, 58, 196, 124,
- 22, 23, 128, 25, 26, 28, 59, 182, 37, 60,
- 61, 47, 48, 49, 186, 5, 50, 27, 129, 213,
- 130, 32, 62, 63, 64, 38, 65, 51, 43, 66,
- 44, 67, 128, 93, 94, 52, 53, 46, 54, 120,
- 95, 68, 131, 96, 128, 55, 100, 199, 101, 119,
- 130, 56, 124, 57, 58, 102, 97, 132, 156, 133,
- 134, 152, 130, 59, 166, 3, 60, 61, 113, 174,
- 175, 177, 131, 185, 187, 176, 188, 210, 189, 62,
- 63, 64, 184, 65, 131, 134, 201, 132, 67, 133,
- 134, 206, 204, 207, 211, 3, 91, 208, 68, 132,
- 209, 133, 134, 212, 45, 205, 92, 3, 149, 147,
- 118, 197, 193, 148, 14, 195
-};
-
-static const yytype_uint8 yycheck[] =
-{
- 112, 66, 6, 1, 23, 40, 53, 20, 83, 66,
- 27, 7, 86, 86, 86, 91, 84, 86, 93, 95,
- 89, 38, 95, 95, 92, 18, 19, 94, 91, 91,
- 23, 27, 95, 95, 9, 10, 11, 94, 0, 14,
- 105, 54, 38, 103, 21, 91, 106, 94, 92, 95,
- 25, 86, 117, 91, 95, 120, 60, 95, 33, 34,
- 172, 36, 92, 89, 94, 177, 178, 70, 43, 85,
- 86, 70, 76, 92, 49, 187, 51, 52, 85, 86,
- 70, 29, 31, 93, 39, 8, 61, 152, 24, 64,
- 65, 9, 10, 11, 159, 93, 14, 84, 47, 211,
- 49, 86, 77, 78, 79, 86, 81, 25, 91, 84,
- 90, 86, 31, 86, 67, 33, 34, 32, 36, 86,
- 94, 96, 71, 94, 31, 43, 37, 46, 67, 94,
- 49, 49, 86, 51, 52, 66, 92, 86, 89, 88,
- 89, 53, 49, 61, 86, 94, 64, 65, 92, 92,
- 91, 83, 71, 12, 12, 95, 93, 95, 92, 77,
- 78, 79, 97, 81, 71, 89, 94, 86, 86, 88,
- 89, 93, 89, 93, 12, 94, 40, 93, 96, 86,
- 93, 88, 89, 93, 34, 190, 43, 94, 102, 98,
- 93, 175, 170, 101, 10, 174
-};
-
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
-static const yytype_uint8 yystos[] =
-{
- 0, 86, 99, 94, 151, 152, 0, 86, 89, 153,
- 154, 21, 92, 95, 153, 7, 27, 38, 100, 89,
- 70, 70, 70, 29, 101, 93, 39, 84, 8, 40,
- 102, 103, 86, 104, 105, 106, 109, 24, 86, 107,
- 108, 110, 143, 91, 90, 106, 32, 9, 10, 11,
- 14, 25, 33, 34, 36, 43, 49, 51, 52, 61,
- 64, 65, 77, 78, 79, 81, 84, 86, 96, 111,
- 112, 113, 115, 118, 120, 121, 122, 123, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, 139, 140, 144,
- 145, 107, 109, 86, 67, 94, 94, 92, 94, 114,
- 37, 67, 66, 94, 124, 53, 94, 111, 6, 60,
- 76, 141, 84, 92, 134, 27, 38, 142, 151, 94,
- 86, 146, 147, 148, 86, 116, 117, 119, 31, 47,
- 49, 71, 86, 88, 89, 152, 155, 156, 157, 158,
- 159, 160, 161, 162, 163, 164, 165, 116, 124, 114,
- 95, 146, 53, 111, 95, 146, 89, 155, 18, 19,
- 23, 135, 136, 137, 138, 111, 86, 149, 150, 111,
- 91, 95, 20, 54, 92, 91, 95, 83, 83, 93,
- 95, 95, 111, 95, 97, 12, 111, 12, 93, 92,
- 91, 95, 85, 148, 155, 163, 85, 117, 155, 46,
- 155, 94, 23, 155, 89, 150, 93, 93, 93, 93,
- 95, 12, 93, 155
-};
-
-#define yyerrok (yyerrstatus = 0)
-#define yyclearin (yychar = YYEMPTY)
-#define YYEMPTY (-2)
-#define YYEOF 0
-
-#define YYACCEPT goto yyacceptlab
-#define YYABORT goto yyabortlab
-#define YYERROR goto yyerrorlab
-
-
-/* Like YYERROR except do call yyerror. This remains here temporarily
- to ease the transition to the new meaning of YYERROR, for GCC.
- Once GCC version 2 has supplanted version 1, this can go. */
-
-#define YYFAIL goto yyerrlab
-
-#define YYRECOVERING() (!!yyerrstatus)
-
-#define YYBACKUP(Token, Value) \
-do \
- if (yychar == YYEMPTY && yylen == 1) \
- { \
- yychar = (Token); \
- yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
- YYPOPSTACK (1); \
- goto yybackup; \
- } \
- else \
- { \
- yyerror (YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
-while (YYID (0))
-
-
-#define YYTERROR 1
-#define YYERRCODE 256
-
-
-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
- If N is 0, then set CURRENT to the empty location which ends
- the previous symbol: RHS[0] (always defined). */
-
-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N) \
- do \
- if (YYID (N)) \
- { \
- (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
- (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
- (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
- (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
- } \
- else \
- { \
- (Current).first_line = (Current).last_line = \
- YYRHSLOC (Rhs, 0).last_line; \
- (Current).first_column = (Current).last_column = \
- YYRHSLOC (Rhs, 0).last_column; \
- } \
- while (YYID (0))
-#endif
-
-
-/* YY_LOCATION_PRINT -- Print the location on the stream.
- This macro was not mandated originally: define only if we know
- we won't break user code: when these are the locations we know. */
-
-#ifndef YY_LOCATION_PRINT
-# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
-# define YY_LOCATION_PRINT(File, Loc) \
- fprintf (File, "%d.%d-%d.%d", \
- (Loc).first_line, (Loc).first_column, \
- (Loc).last_line, (Loc).last_column)
-# else
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
-#endif
-
-
-/* YYLEX -- calling `yylex' with the right arguments. */
-
-#ifdef YYLEX_PARAM
-# define YYLEX yylex (YYLEX_PARAM)
-#else
-# define YYLEX yylex ()
-#endif
-
-/* Enable debugging if requested. */
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-# define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args) \
-do { \
- if (yydebug) \
- YYFPRINTF Args; \
-} while (YYID (0))
-
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-do { \
- if (yydebug) \
- { \
- YYFPRINTF (stderr, "%s ", Title); \
- yy_symbol_print (stderr, \
- Type, Value); \
- YYFPRINTF (stderr, "\n"); \
- } \
-} while (YYID (0))
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT. |
-`--------------------------------*/
-
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static void
-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-#else
-static void
-yy_symbol_value_print (yyoutput, yytype, yyvaluep)
- FILE *yyoutput;
- int yytype;
- YYSTYPE const * const yyvaluep;
-#endif
-{
- if (!yyvaluep)
- return;
-# ifdef YYPRINT
- if (yytype < YYNTOKENS)
- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# else
- YYUSE (yyoutput);
-# endif
- switch (yytype)
- {
- default:
- break;
- }
-}
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT. |
-`--------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static void
-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-#else
-static void
-yy_symbol_print (yyoutput, yytype, yyvaluep)
- FILE *yyoutput;
- int yytype;
- YYSTYPE const * const yyvaluep;
-#endif
-{
- if (yytype < YYNTOKENS)
- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
- else
- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-
- yy_symbol_value_print (yyoutput, yytype, yyvaluep);
- YYFPRINTF (yyoutput, ")");
-}
-
-/*------------------------------------------------------------------.
-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (included). |
-`------------------------------------------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static void
-yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
-#else
-static void
-yy_stack_print (bottom, top)
- yytype_int16 *bottom;
- yytype_int16 *top;
-#endif
-{
- YYFPRINTF (stderr, "Stack now");
- for (; bottom <= top; ++bottom)
- YYFPRINTF (stderr, " %d", *bottom);
- YYFPRINTF (stderr, "\n");
-}
-
-# define YY_STACK_PRINT(Bottom, Top) \
-do { \
- if (yydebug) \
- yy_stack_print ((Bottom), (Top)); \
-} while (YYID (0))
-
-
-/*------------------------------------------------.
-| Report that the YYRULE is going to be reduced. |
-`------------------------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static void
-yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
-#else
-static void
-yy_reduce_print (yyvsp, yyrule)
- YYSTYPE *yyvsp;
- int yyrule;
-#endif
-{
- int yynrhs = yyr2[yyrule];
- int yyi;
- unsigned long int yylno = yyrline[yyrule];
- YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
- yyrule - 1, yylno);
- /* The symbols being reduced. */
- for (yyi = 0; yyi < yynrhs; yyi++)
- {
- fprintf (stderr, " $%d = ", yyi + 1);
- yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
- &(yyvsp[(yyi + 1) - (yynrhs)])
- );
- fprintf (stderr, "\n");
- }
-}
-
-# define YY_REDUCE_PRINT(Rule) \
-do { \
- if (yydebug) \
- yy_reduce_print (yyvsp, Rule); \
-} while (YYID (0))
-
-/* Nonzero means print parse trace. It is left uninitialized so that
- multiple parsers can coexist. */
-int yydebug;
-#else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
-# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Rule)
-#endif /* !YYDEBUG */
-
-
-/* YYINITDEPTH -- initial size of the parser's stacks. */
-#ifndef YYINITDEPTH
-# define YYINITDEPTH 200
-#endif
-
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
- if the built-in stack extension method is used).
-
- Do not make this value too large; the results are undefined if
- YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
-
-#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
-#endif
-
-
-
-#if YYERROR_VERBOSE
-
-# ifndef yystrlen
-# if defined __GLIBC__ && defined _STRING_H
-# define yystrlen strlen
-# else
-/* Return the length of YYSTR. */
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static YYSIZE_T
-yystrlen (const char *yystr)
-#else
-static YYSIZE_T
-yystrlen (yystr)
- const char *yystr;
-#endif
-{
- YYSIZE_T yylen;
- for (yylen = 0; yystr[yylen]; yylen++)
- continue;
- return yylen;
-}
-# endif
-# endif
-
-# ifndef yystpcpy
-# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-# define yystpcpy stpcpy
-# else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
- YYDEST. */
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static char *
-yystpcpy (char *yydest, const char *yysrc)
-#else
-static char *
-yystpcpy (yydest, yysrc)
- char *yydest;
- const char *yysrc;
-#endif
-{
- char *yyd = yydest;
- const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-
- return yyd - 1;
-}
-# endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
- quotes and backslashes, so that it's suitable for yyerror. The
- heuristic is that double-quoting is unnecessary unless the string
- contains an apostrophe, a comma, or backslash (other than
- backslash-backslash). YYSTR is taken from yytname. If YYRES is
- null, do not copy; instead, return the length of what the result
- would have been. */
-static YYSIZE_T
-yytnamerr (char *yyres, const char *yystr)
-{
- if (*yystr == '"')
- {
- YYSIZE_T yyn = 0;
- char const *yyp = yystr;
-
- for (;;)
- switch (*++yyp)
- {
- case '\'':
- case ',':
- goto do_not_strip_quotes;
-
- case '\\':
- if (*++yyp != '\\')
- goto do_not_strip_quotes;
- /* Fall through. */
- default:
- if (yyres)
- yyres[yyn] = *yyp;
- yyn++;
- break;
-
- case '"':
- if (yyres)
- yyres[yyn] = '\0';
- return yyn;
- }
- do_not_strip_quotes: ;
- }
-
- if (! yyres)
- return yystrlen (yystr);
-
- return yystpcpy (yyres, yystr) - yyres;
-}
-# endif
-
-/* Copy into YYRESULT an error message about the unexpected token
- YYCHAR while in state YYSTATE. Return the number of bytes copied,
- including the terminating null byte. If YYRESULT is null, do not
- copy anything; just return the number of bytes that would be
- copied. As a special case, return 0 if an ordinary "syntax error"
- message will do. Return YYSIZE_MAXIMUM if overflow occurs during
- size calculation. */
-static YYSIZE_T
-yysyntax_error (char *yyresult, int yystate, int yychar)
-{
- int yyn = yypact[yystate];
-
- if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
- return 0;
- else
- {
- int yytype = YYTRANSLATE (yychar);
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
- YYSIZE_T yysize = yysize0;
- YYSIZE_T yysize1;
- int yysize_overflow = 0;
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- int yyx;
-
-# if 0
- /* This is so xgettext sees the translatable formats that are
- constructed on the fly. */
- YY_("syntax error, unexpected %s");
- YY_("syntax error, unexpected %s, expecting %s");
- YY_("syntax error, unexpected %s, expecting %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-# endif
- char *yyfmt;
- char const *yyf;
- static char const yyunexpected[] = "syntax error, unexpected %s";
- static char const yyexpecting[] = ", expecting %s";
- static char const yyor[] = " or %s";
- char yyformat[sizeof yyunexpected
- + sizeof yyexpecting - 1
- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
- * (sizeof yyor - 1))];
- char const *yyprefix = yyexpecting;
-
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
-
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn + 1;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yycount = 1;
-
- yyarg[0] = yytname[yytype];
- yyfmt = yystpcpy (yyformat, yyunexpected);
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- yyformat[sizeof yyunexpected - 1] = '\0';
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
- yyfmt = yystpcpy (yyfmt, yyprefix);
- yyprefix = yyor;
- }
-
- yyf = YY_(yyformat);
- yysize1 = yysize + yystrlen (yyf);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
-
- if (yysize_overflow)
- return YYSIZE_MAXIMUM;
-
- if (yyresult)
- {
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- char *yyp = yyresult;
- int yyi = 0;
- while ((*yyp = *yyf) != '\0')
- {
- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyf += 2;
- }
- else
- {
- yyp++;
- yyf++;
- }
- }
- }
- return yysize;
- }
-}
-#endif /* YYERROR_VERBOSE */
-
-
-/*-----------------------------------------------.
-| Release the memory associated to this symbol. |
-`-----------------------------------------------*/
-
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yydestruct (yymsg, yytype, yyvaluep)
- const char *yymsg;
- int yytype;
- YYSTYPE *yyvaluep;
-#endif
-{
- YYUSE (yyvaluep);
-
- if (!yymsg)
- yymsg = "Deleting";
- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
- switch (yytype)
- {
-
- default:
- break;
- }
-}
-
-
-/* Prevent warnings from -Wmissing-prototypes. */
-
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
-
-
-
-/* The look-ahead symbol. */
-int yychar;
-
-/* The semantic value of the look-ahead symbol. */
-YYSTYPE yylval;
-
-/* Number of syntax errors so far. */
-int yynerrs;
-
-
-
-/*----------.
-| yyparse. |
-`----------*/
-
-#ifdef YYPARSE_PARAM
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (void *YYPARSE_PARAM)
-#else
-int
-yyparse (YYPARSE_PARAM)
- void *YYPARSE_PARAM;
-#endif
-#else /* ! YYPARSE_PARAM */
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (void)
-#else
-int
-yyparse ()
-
-#endif
-#endif
-{
-
- int yystate;
- int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
- /* Look-ahead token as an internal (translated) token number. */
- int yytoken = 0;
-#if YYERROR_VERBOSE
- /* Buffer for error messages, and its allocated size. */
- char yymsgbuf[128];
- char *yymsg = yymsgbuf;
- YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
-
- /* Three stacks and their tools:
- `yyss': related to states,
- `yyvs': related to semantic values,
- `yyls': related to locations.
-
- Refer to the stacks thru separate pointers, to allow yyoverflow
- to reallocate them elsewhere. */
-
- /* The state stack. */
- yytype_int16 yyssa[YYINITDEPTH];
- yytype_int16 *yyss = yyssa;
- yytype_int16 *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
- YYSTYPE *yyvsp;
-
-
-
-#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
-
- YYSIZE_T yystacksize = YYINITDEPTH;
-
- /* The variables used to return semantic value and location from the
- action routines. */
- YYSTYPE yyval;
-
-
- /* The number of symbols on the RHS of the reduced rule.
- Keep to zero when no symbol should be popped. */
- int yylen = 0;
-
- YYDPRINTF ((stderr, "Starting parse\n"));
-
- yystate = 0;
- yyerrstatus = 0;
- yynerrs = 0;
- yychar = YYEMPTY; /* Cause a token to be read. */
-
- /* Initialize stack pointers.
- Waste one element of value and location stack
- so that they stay on the same level as the state stack.
- The wasted elements are never initialized. */
-
- yyssp = yyss;
- yyvsp = yyvs;
-
- goto yysetstate;
-
-/*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate. |
-`------------------------------------------------------------*/
- yynewstate:
- /* In all cases, when you get here, the value and location stacks
- have just been pushed. So pushing a state here evens the stacks. */
- yyssp++;
-
- yysetstate:
- *yyssp = yystate;
-
- if (yyss + yystacksize - 1 <= yyssp)
- {
- /* Get the current used size of the three stacks, in elements. */
- YYSIZE_T yysize = yyssp - yyss + 1;
-
-#ifdef yyoverflow
- {
- /* Give user a chance to reallocate the stack. Use copies of
- these so that the &'s don't force the real ones into
- memory. */
- YYSTYPE *yyvs1 = yyvs;
- yytype_int16 *yyss1 = yyss;
-
-
- /* Each stack pointer address is followed by the size of the
- data in use in that stack, in bytes. This used to be a
- conditional around just the two extra args, but that might
- be undefined if yyoverflow is a macro. */
- yyoverflow (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
-
- &yystacksize);
-
- yyss = yyss1;
- yyvs = yyvs1;
- }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
- goto yyexhaustedlab;
-# else
- /* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
- goto yyexhaustedlab;
- yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
-
- {
- yytype_int16 *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
- goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss);
- YYSTACK_RELOCATE (yyvs);
-
-# undef YYSTACK_RELOCATE
- if (yyss1 != yyssa)
- YYSTACK_FREE (yyss1);
- }
-# endif
-#endif /* no yyoverflow */
-
- yyssp = yyss + yysize - 1;
- yyvsp = yyvs + yysize - 1;
-
-
- YYDPRINTF ((stderr, "Stack size increased to %lu\n",
- (unsigned long int) yystacksize));
-
- if (yyss + yystacksize - 1 <= yyssp)
- YYABORT;
- }
-
- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-
- goto yybackup;
-
-/*-----------.
-| yybackup. |
-`-----------*/
-yybackup:
-
- /* Do appropriate processing given the current state. Read a
- look-ahead token if we need one and don't already have one. */
-
- /* First try to decide what to do without reference to look-ahead token. */
- yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
- goto yydefault;
-
- /* Not known => get a look-ahead token if don't already have one. */
-
- /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
- if (yychar == YYEMPTY)
- {
- YYDPRINTF ((stderr, "Reading a token: "));
- yychar = YYLEX;
- }
-
- if (yychar <= YYEOF)
- {
- yychar = yytoken = YYEOF;
- YYDPRINTF ((stderr, "Now at end of input.\n"));
- }
- else
- {
- yytoken = YYTRANSLATE (yychar);
- YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
- }
-
- /* If the proper action on seeing token YYTOKEN is to reduce or to
- detect an error, take that action. */
- yyn += yytoken;
- if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
- goto yydefault;
- yyn = yytable[yyn];
- if (yyn <= 0)
- {
- if (yyn == 0 || yyn == YYTABLE_NINF)
- goto yyerrlab;
- yyn = -yyn;
- goto yyreduce;
- }
-
- if (yyn == YYFINAL)
- YYACCEPT;
-
- /* Count tokens shifted since error; after three, turn off error
- status. */
- if (yyerrstatus)
- yyerrstatus--;
-
- /* Shift the look-ahead token. */
- YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
- /* Discard the shifted token unless it is eof. */
- if (yychar != YYEOF)
- yychar = YYEMPTY;
-
- yystate = yyn;
- *++yyvsp = yylval;
-
- goto yynewstate;
-
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state. |
-`-----------------------------------------------------------*/
-yydefault:
- yyn = yydefact[yystate];
- if (yyn == 0)
- goto yyerrlab;
- goto yyreduce;
-
-
-/*-----------------------------.
-| yyreduce -- Do a reduction. |
-`-----------------------------*/
-yyreduce:
- /* yyn is the number of a rule to reduce with. */
- yylen = yyr2[yyn];
-
- /* If YYLEN is nonzero, implement the default value of the action:
- `$$ = $1'.
-
- Otherwise, the following line sets YYVAL to garbage.
- This behavior is undocumented and Bison
- users should not rely upon it. Assigning to YYVAL
- unconditionally makes the parser a bit smaller, and it avoids a
- GCC warning that YYVAL may be used uninitialized. */
- yyval = yyvsp[1-yylen];
-
-
- YY_REDUCE_PRINT (yyn);
- switch (yyn)
- {
- case 2:
-#line 235 "parse.y"
- {
- checkundefined();
- }
- break;
-
- case 4:
-#line 242 "parse.y"
- { error_message("implicit tagging is not supported"); }
- break;
-
- case 5:
-#line 244 "parse.y"
- { error_message("automatic tagging is not supported"); }
- break;
-
- case 7:
-#line 249 "parse.y"
- { error_message("no extensibility options supported"); }
- break;
-
- case 17:
-#line 270 "parse.y"
- {
- struct string_list *sl;
- for(sl = (yyvsp[(1) - (4)].sl); sl != NULL; sl = sl->next) {
- Symbol *s = addsym(sl->string);
- s->stype = Stype;
- }
- add_import((yyvsp[(3) - (4)].name));
- }
- break;
-
- case 22:
-#line 289 "parse.y"
- {
- (yyval.sl) = emalloc(sizeof(*(yyval.sl)));
- (yyval.sl)->string = (yyvsp[(1) - (3)].name);
- (yyval.sl)->next = (yyvsp[(3) - (3)].sl);
- }
- break;
-
- case 23:
-#line 295 "parse.y"
- {
- (yyval.sl) = emalloc(sizeof(*(yyval.sl)));
- (yyval.sl)->string = (yyvsp[(1) - (1)].name);
- (yyval.sl)->next = NULL;
- }
- break;
-
- case 24:
-#line 303 "parse.y"
- {
- Symbol *s = addsym ((yyvsp[(1) - (3)].name));
- s->stype = Stype;
- s->type = (yyvsp[(3) - (3)].type);
- fix_labels(s);
- generate_type (s);
- }
- break;
-
- case 42:
-#line 334 "parse.y"
- {
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_Boolean,
- TE_EXPLICIT, new_type(TBoolean));
- }
- break;
-
- case 43:
-#line 341 "parse.y"
- {
- if((yyvsp[(2) - (5)].value)->type != integervalue)
- error_message("Non-integer used in first part of range");
- if((yyvsp[(2) - (5)].value)->type != integervalue)
- error_message("Non-integer in second part of range");
- (yyval.range) = ecalloc(1, sizeof(*(yyval.range)));
- (yyval.range)->min = (yyvsp[(2) - (5)].value)->u.integervalue;
- (yyval.range)->max = (yyvsp[(4) - (5)].value)->u.integervalue;
- }
- break;
-
- case 44:
-#line 351 "parse.y"
- {
- if((yyvsp[(2) - (5)].value)->type != integervalue)
- error_message("Non-integer in first part of range");
- (yyval.range) = ecalloc(1, sizeof(*(yyval.range)));
- (yyval.range)->min = (yyvsp[(2) - (5)].value)->u.integervalue;
- (yyval.range)->max = (yyvsp[(2) - (5)].value)->u.integervalue - 1;
- }
- break;
-
- case 45:
-#line 359 "parse.y"
- {
- if((yyvsp[(4) - (5)].value)->type != integervalue)
- error_message("Non-integer in second part of range");
- (yyval.range) = ecalloc(1, sizeof(*(yyval.range)));
- (yyval.range)->min = (yyvsp[(4) - (5)].value)->u.integervalue + 2;
- (yyval.range)->max = (yyvsp[(4) - (5)].value)->u.integervalue;
- }
- break;
-
- case 46:
-#line 367 "parse.y"
- {
- if((yyvsp[(2) - (3)].value)->type != integervalue)
- error_message("Non-integer used in limit");
- (yyval.range) = ecalloc(1, sizeof(*(yyval.range)));
- (yyval.range)->min = (yyvsp[(2) - (3)].value)->u.integervalue;
- (yyval.range)->max = (yyvsp[(2) - (3)].value)->u.integervalue;
- }
- break;
-
- case 47:
-#line 378 "parse.y"
- {
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_Integer,
- TE_EXPLICIT, new_type(TInteger));
- }
- break;
-
- case 48:
-#line 383 "parse.y"
- {
- (yyval.type) = new_type(TInteger);
- (yyval.type)->range = (yyvsp[(2) - (2)].range);
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_Integer, TE_EXPLICIT, (yyval.type));
- }
- break;
-
- case 49:
-#line 389 "parse.y"
- {
- (yyval.type) = new_type(TInteger);
- (yyval.type)->members = (yyvsp[(3) - (4)].members);
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_Integer, TE_EXPLICIT, (yyval.type));
- }
- break;
-
- case 50:
-#line 397 "parse.y"
- {
- (yyval.members) = emalloc(sizeof(*(yyval.members)));
- ASN1_TAILQ_INIT((yyval.members));
- ASN1_TAILQ_INSERT_HEAD((yyval.members), (yyvsp[(1) - (1)].member), members);
- }
- break;
-
- case 51:
-#line 403 "parse.y"
- {
- ASN1_TAILQ_INSERT_TAIL((yyvsp[(1) - (3)].members), (yyvsp[(3) - (3)].member), members);
- (yyval.members) = (yyvsp[(1) - (3)].members);
- }
- break;
-
- case 52:
-#line 408 "parse.y"
- { (yyval.members) = (yyvsp[(1) - (3)].members); }
- break;
-
- case 53:
-#line 412 "parse.y"
- {
- (yyval.member) = emalloc(sizeof(*(yyval.member)));
- (yyval.member)->name = (yyvsp[(1) - (4)].name);
- (yyval.member)->gen_name = estrdup((yyvsp[(1) - (4)].name));
- output_name ((yyval.member)->gen_name);
- (yyval.member)->val = (yyvsp[(3) - (4)].constant);
- (yyval.member)->optional = 0;
- (yyval.member)->ellipsis = 0;
- (yyval.member)->type = NULL;
- }
- break;
-
- case 54:
-#line 425 "parse.y"
- {
- (yyval.type) = new_type(TInteger);
- (yyval.type)->members = (yyvsp[(3) - (4)].members);
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_Enumerated, TE_EXPLICIT, (yyval.type));
- }
- break;
-
- case 56:
-#line 436 "parse.y"
- {
- (yyval.type) = new_type(TBitString);
- (yyval.type)->members = emalloc(sizeof(*(yyval.type)->members));
- ASN1_TAILQ_INIT((yyval.type)->members);
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_BitString, TE_EXPLICIT, (yyval.type));
- }
- break;
-
- case 57:
-#line 443 "parse.y"
- {
- (yyval.type) = new_type(TBitString);
- (yyval.type)->members = (yyvsp[(4) - (5)].members);
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_BitString, TE_EXPLICIT, (yyval.type));
- }
- break;
-
- case 58:
-#line 451 "parse.y"
- {
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_OID,
- TE_EXPLICIT, new_type(TOID));
- }
- break;
-
- case 59:
-#line 457 "parse.y"
- {
- Type *t = new_type(TOctetString);
- t->range = (yyvsp[(3) - (3)].range);
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_OctetString,
- TE_EXPLICIT, t);
- }
- break;
-
- case 60:
-#line 466 "parse.y"
- {
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_Null,
- TE_EXPLICIT, new_type(TNull));
- }
- break;
-
- case 61:
-#line 473 "parse.y"
- { (yyval.range) = NULL; }
- break;
-
- case 62:
-#line 475 "parse.y"
- { (yyval.range) = (yyvsp[(2) - (2)].range); }
- break;
-
- case 63:
-#line 480 "parse.y"
- {
- (yyval.type) = new_type(TSequence);
- (yyval.type)->members = (yyvsp[(3) - (4)].members);
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_Sequence, TE_EXPLICIT, (yyval.type));
- }
- break;
-
- case 64:
-#line 486 "parse.y"
- {
- (yyval.type) = new_type(TSequence);
- (yyval.type)->members = NULL;
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_Sequence, TE_EXPLICIT, (yyval.type));
- }
- break;
-
- case 65:
-#line 494 "parse.y"
- {
- (yyval.type) = new_type(TSequenceOf);
- (yyval.type)->range = (yyvsp[(2) - (4)].range);
- (yyval.type)->subtype = (yyvsp[(4) - (4)].type);
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_Sequence, TE_EXPLICIT, (yyval.type));
- }
- break;
-
- case 66:
-#line 503 "parse.y"
- {
- (yyval.type) = new_type(TSet);
- (yyval.type)->members = (yyvsp[(3) - (4)].members);
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_Set, TE_EXPLICIT, (yyval.type));
- }
- break;
-
- case 67:
-#line 509 "parse.y"
- {
- (yyval.type) = new_type(TSet);
- (yyval.type)->members = NULL;
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_Set, TE_EXPLICIT, (yyval.type));
- }
- break;
-
- case 68:
-#line 517 "parse.y"
- {
- (yyval.type) = new_type(TSetOf);
- (yyval.type)->subtype = (yyvsp[(3) - (3)].type);
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_Set, TE_EXPLICIT, (yyval.type));
- }
- break;
-
- case 69:
-#line 525 "parse.y"
- {
- (yyval.type) = new_type(TChoice);
- (yyval.type)->members = (yyvsp[(3) - (4)].members);
- }
- break;
-
- case 72:
-#line 536 "parse.y"
- {
- Symbol *s = addsym((yyvsp[(1) - (1)].name));
- (yyval.type) = new_type(TType);
- if(s->stype != Stype && s->stype != SUndefined)
- error_message ("%s is not a type\n", (yyvsp[(1) - (1)].name));
- else
- (yyval.type)->symbol = s;
- }
- break;
-
- case 73:
-#line 547 "parse.y"
- {
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_GeneralizedTime,
- TE_EXPLICIT, new_type(TGeneralizedTime));
- }
- break;
-
- case 74:
-#line 552 "parse.y"
- {
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_UTCTime,
- TE_EXPLICIT, new_type(TUTCTime));
- }
- break;
-
- case 75:
-#line 559 "parse.y"
- {
- /* if (Constraint.type == contentConstrant) {
- assert(Constraint.u.constraint.type == octetstring|bitstring-w/o-NamedBitList); // remember to check type reference too
- if (Constraint.u.constraint.type) {
- assert((Constraint.u.constraint.type.length % 8) == 0);
- }
- }
- if (Constraint.u.constraint.encoding) {
- type == der-oid|ber-oid
- }
- */
- }
- break;
-
- case 76:
-#line 575 "parse.y"
- {
- (yyval.constraint_spec) = (yyvsp[(2) - (3)].constraint_spec);
- }
- break;
-
- case 80:
-#line 588 "parse.y"
- {
- (yyval.constraint_spec) = new_constraint_spec(CT_CONTENTS);
- (yyval.constraint_spec)->u.content.type = (yyvsp[(2) - (2)].type);
- (yyval.constraint_spec)->u.content.encoding = NULL;
- }
- break;
-
- case 81:
-#line 594 "parse.y"
- {
- if ((yyvsp[(3) - (3)].value)->type != objectidentifiervalue)
- error_message("Non-OID used in ENCODED BY constraint");
- (yyval.constraint_spec) = new_constraint_spec(CT_CONTENTS);
- (yyval.constraint_spec)->u.content.type = NULL;
- (yyval.constraint_spec)->u.content.encoding = (yyvsp[(3) - (3)].value);
- }
- break;
-
- case 82:
-#line 602 "parse.y"
- {
- if ((yyvsp[(5) - (5)].value)->type != objectidentifiervalue)
- error_message("Non-OID used in ENCODED BY constraint");
- (yyval.constraint_spec) = new_constraint_spec(CT_CONTENTS);
- (yyval.constraint_spec)->u.content.type = (yyvsp[(2) - (5)].type);
- (yyval.constraint_spec)->u.content.encoding = (yyvsp[(5) - (5)].value);
- }
- break;
-
- case 83:
-#line 612 "parse.y"
- {
- (yyval.constraint_spec) = new_constraint_spec(CT_USER);
- }
- break;
-
- case 84:
-#line 618 "parse.y"
- {
- (yyval.type) = new_type(TTag);
- (yyval.type)->tag = (yyvsp[(1) - (3)].tag);
- (yyval.type)->tag.tagenv = (yyvsp[(2) - (3)].constant);
- if((yyvsp[(3) - (3)].type)->type == TTag && (yyvsp[(2) - (3)].constant) == TE_IMPLICIT) {
- (yyval.type)->subtype = (yyvsp[(3) - (3)].type)->subtype;
- free((yyvsp[(3) - (3)].type));
- } else
- (yyval.type)->subtype = (yyvsp[(3) - (3)].type);
- }
- break;
-
- case 85:
-#line 631 "parse.y"
- {
- (yyval.tag).tagclass = (yyvsp[(2) - (4)].constant);
- (yyval.tag).tagvalue = (yyvsp[(3) - (4)].constant);
- (yyval.tag).tagenv = TE_EXPLICIT;
- }
- break;
-
- case 86:
-#line 639 "parse.y"
- {
- (yyval.constant) = ASN1_C_CONTEXT;
- }
- break;
-
- case 87:
-#line 643 "parse.y"
- {
- (yyval.constant) = ASN1_C_UNIV;
- }
- break;
-
- case 88:
-#line 647 "parse.y"
- {
- (yyval.constant) = ASN1_C_APPL;
- }
- break;
-
- case 89:
-#line 651 "parse.y"
- {
- (yyval.constant) = ASN1_C_PRIVATE;
- }
- break;
-
- case 90:
-#line 657 "parse.y"
- {
- (yyval.constant) = TE_EXPLICIT;
- }
- break;
-
- case 91:
-#line 661 "parse.y"
- {
- (yyval.constant) = TE_EXPLICIT;
- }
- break;
-
- case 92:
-#line 665 "parse.y"
- {
- (yyval.constant) = TE_IMPLICIT;
- }
- break;
-
- case 93:
-#line 672 "parse.y"
- {
- Symbol *s;
- s = addsym ((yyvsp[(1) - (4)].name));
-
- s->stype = SValue;
- s->value = (yyvsp[(4) - (4)].value);
- generate_constant (s);
- }
- break;
-
- case 95:
-#line 686 "parse.y"
- {
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_GeneralString,
- TE_EXPLICIT, new_type(TGeneralString));
- }
- break;
-
- case 96:
-#line 691 "parse.y"
- {
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_UTF8String,
- TE_EXPLICIT, new_type(TUTF8String));
- }
- break;
-
- case 97:
-#line 696 "parse.y"
- {
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_PrintableString,
- TE_EXPLICIT, new_type(TPrintableString));
- }
- break;
-
- case 98:
-#line 701 "parse.y"
- {
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_VisibleString,
- TE_EXPLICIT, new_type(TVisibleString));
- }
- break;
-
- case 99:
-#line 706 "parse.y"
- {
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_IA5String,
- TE_EXPLICIT, new_type(TIA5String));
- }
- break;
-
- case 100:
-#line 711 "parse.y"
- {
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_BMPString,
- TE_EXPLICIT, new_type(TBMPString));
- }
- break;
-
- case 101:
-#line 716 "parse.y"
- {
- (yyval.type) = new_tag(ASN1_C_UNIV, UT_UniversalString,
- TE_EXPLICIT, new_type(TUniversalString));
- }
- break;
-
- case 102:
-#line 724 "parse.y"
- {
- (yyval.members) = emalloc(sizeof(*(yyval.members)));
- ASN1_TAILQ_INIT((yyval.members));
- ASN1_TAILQ_INSERT_HEAD((yyval.members), (yyvsp[(1) - (1)].member), members);
- }
- break;
-
- case 103:
-#line 730 "parse.y"
- {
- ASN1_TAILQ_INSERT_TAIL((yyvsp[(1) - (3)].members), (yyvsp[(3) - (3)].member), members);
- (yyval.members) = (yyvsp[(1) - (3)].members);
- }
- break;
-
- case 104:
-#line 735 "parse.y"
- {
- struct member *m = ecalloc(1, sizeof(*m));
- m->name = estrdup("...");
- m->gen_name = estrdup("asn1_ellipsis");
- m->ellipsis = 1;
- ASN1_TAILQ_INSERT_TAIL((yyvsp[(1) - (3)].members), m, members);
- (yyval.members) = (yyvsp[(1) - (3)].members);
- }
- break;
-
- case 105:
-#line 746 "parse.y"
- {
- (yyval.member) = emalloc(sizeof(*(yyval.member)));
- (yyval.member)->name = (yyvsp[(1) - (2)].name);
- (yyval.member)->gen_name = estrdup((yyvsp[(1) - (2)].name));
- output_name ((yyval.member)->gen_name);
- (yyval.member)->type = (yyvsp[(2) - (2)].type);
- (yyval.member)->ellipsis = 0;
- }
- break;
-
- case 106:
-#line 757 "parse.y"
- {
- (yyval.member) = (yyvsp[(1) - (1)].member);
- (yyval.member)->optional = 0;
- (yyval.member)->defval = NULL;
- }
- break;
-
- case 107:
-#line 763 "parse.y"
- {
- (yyval.member) = (yyvsp[(1) - (2)].member);
- (yyval.member)->optional = 1;
- (yyval.member)->defval = NULL;
- }
- break;
-
- case 108:
-#line 769 "parse.y"
- {
- (yyval.member) = (yyvsp[(1) - (3)].member);
- (yyval.member)->optional = 0;
- (yyval.member)->defval = (yyvsp[(3) - (3)].value);
- }
- break;
-
- case 109:
-#line 777 "parse.y"
- {
- (yyval.members) = emalloc(sizeof(*(yyval.members)));
- ASN1_TAILQ_INIT((yyval.members));
- ASN1_TAILQ_INSERT_HEAD((yyval.members), (yyvsp[(1) - (1)].member), members);
- }
- break;
-
- case 110:
-#line 783 "parse.y"
- {
- ASN1_TAILQ_INSERT_TAIL((yyvsp[(1) - (3)].members), (yyvsp[(3) - (3)].member), members);
- (yyval.members) = (yyvsp[(1) - (3)].members);
- }
- break;
-
- case 111:
-#line 790 "parse.y"
- {
- (yyval.member) = emalloc(sizeof(*(yyval.member)));
- (yyval.member)->name = (yyvsp[(1) - (4)].name);
- (yyval.member)->gen_name = estrdup((yyvsp[(1) - (4)].name));
- output_name ((yyval.member)->gen_name);
- (yyval.member)->val = (yyvsp[(3) - (4)].constant);
- (yyval.member)->optional = 0;
- (yyval.member)->ellipsis = 0;
- (yyval.member)->type = NULL;
- }
- break;
-
- case 113:
-#line 803 "parse.y"
- { (yyval.objid) = NULL; }
- break;
-
- case 114:
-#line 807 "parse.y"
- {
- (yyval.objid) = (yyvsp[(2) - (3)].objid);
- }
- break;
-
- case 115:
-#line 813 "parse.y"
- {
- (yyval.objid) = NULL;
- }
- break;
-
- case 116:
-#line 817 "parse.y"
- {
- if ((yyvsp[(2) - (2)].objid)) {
- (yyval.objid) = (yyvsp[(2) - (2)].objid);
- add_oid_to_tail((yyvsp[(2) - (2)].objid), (yyvsp[(1) - (2)].objid));
- } else {
- (yyval.objid) = (yyvsp[(1) - (2)].objid);
- }
- }
- break;
-
- case 117:
-#line 828 "parse.y"
- {
- (yyval.objid) = new_objid((yyvsp[(1) - (4)].name), (yyvsp[(3) - (4)].constant));
- }
- break;
-
- case 118:
-#line 832 "parse.y"
- {
- Symbol *s = addsym((yyvsp[(1) - (1)].name));
- if(s->stype != SValue ||
- s->value->type != objectidentifiervalue) {
- error_message("%s is not an object identifier\n",
- s->name);
- exit(1);
- }
- (yyval.objid) = s->value->u.objectidentifiervalue;
- }
- break;
-
- case 119:
-#line 843 "parse.y"
- {
- (yyval.objid) = new_objid(NULL, (yyvsp[(1) - (1)].constant));
- }
- break;
-
- case 129:
-#line 866 "parse.y"
- {
- Symbol *s = addsym((yyvsp[(1) - (1)].name));
- if(s->stype != SValue)
- error_message ("%s is not a value\n",
- s->name);
- else
- (yyval.value) = s->value;
- }
- break;
-
- case 130:
-#line 877 "parse.y"
- {
- (yyval.value) = emalloc(sizeof(*(yyval.value)));
- (yyval.value)->type = stringvalue;
- (yyval.value)->u.stringvalue = (yyvsp[(1) - (1)].name);
- }
- break;
-
- case 131:
-#line 885 "parse.y"
- {
- (yyval.value) = emalloc(sizeof(*(yyval.value)));
- (yyval.value)->type = booleanvalue;
- (yyval.value)->u.booleanvalue = 0;
- }
- break;
-
- case 132:
-#line 891 "parse.y"
- {
- (yyval.value) = emalloc(sizeof(*(yyval.value)));
- (yyval.value)->type = booleanvalue;
- (yyval.value)->u.booleanvalue = 0;
- }
- break;
-
- case 133:
-#line 899 "parse.y"
- {
- (yyval.value) = emalloc(sizeof(*(yyval.value)));
- (yyval.value)->type = integervalue;
- (yyval.value)->u.integervalue = (yyvsp[(1) - (1)].constant);
- }
- break;
-
- case 135:
-#line 910 "parse.y"
- {
- }
- break;
-
- case 136:
-#line 915 "parse.y"
- {
- (yyval.value) = emalloc(sizeof(*(yyval.value)));
- (yyval.value)->type = objectidentifiervalue;
- (yyval.value)->u.objectidentifiervalue = (yyvsp[(1) - (1)].objid);
- }
- break;
-
-
-/* Line 1267 of yacc.c. */
-#line 2523 "parse.c"
- default: break;
- }
- YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
- YYPOPSTACK (yylen);
- yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
-
- *++yyvsp = yyval;
-
-
- /* Now `shift' the result of the reduction. Determine what state
- that goes to, based on the state we popped back to and the rule
- number reduced by. */
-
- yyn = yyr1[yyn];
-
- yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
- if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
- yystate = yytable[yystate];
- else
- yystate = yydefgoto[yyn - YYNTOKENS];
-
- goto yynewstate;
-
-
-/*------------------------------------.
-| yyerrlab -- here on detecting error |
-`------------------------------------*/
-yyerrlab:
- /* If not already recovering from an error, report this error. */
- if (!yyerrstatus)
- {
- ++yynerrs;
-#if ! YYERROR_VERBOSE
- yyerror (YY_("syntax error"));
-#else
- {
- YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
- if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
- {
- YYSIZE_T yyalloc = 2 * yysize;
- if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
- yyalloc = YYSTACK_ALLOC_MAXIMUM;
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
- yymsg = (char *) YYSTACK_ALLOC (yyalloc);
- if (yymsg)
- yymsg_alloc = yyalloc;
- else
- {
- yymsg = yymsgbuf;
- yymsg_alloc = sizeof yymsgbuf;
- }
- }
-
- if (0 < yysize && yysize <= yymsg_alloc)
- {
- (void) yysyntax_error (yymsg, yystate, yychar);
- yyerror (yymsg);
- }
- else
- {
- yyerror (YY_("syntax error"));
- if (yysize != 0)
- goto yyexhaustedlab;
- }
- }
-#endif
- }
-
-
-
- if (yyerrstatus == 3)
- {
- /* If just tried and failed to reuse look-ahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
- {
- /* Return failure if at end of input. */
- if (yychar == YYEOF)
- YYABORT;
- }
- else
- {
- yydestruct ("Error: discarding",
- yytoken, &yylval);
- yychar = YYEMPTY;
- }
- }
-
- /* Else will try to reuse look-ahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR. |
-`---------------------------------------------------*/
-yyerrorlab:
-
- /* Pacify compilers like GCC when the user code never invokes
- YYERROR and the label yyerrorlab therefore never appears in user
- code. */
- if (/*CONSTCOND*/ 0)
- goto yyerrorlab;
-
- /* Do not reclaim the symbols of the rule which action triggered
- this YYERROR. */
- YYPOPSTACK (yylen);
- yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
- yystate = *yyssp;
- goto yyerrlab1;
-
-
-/*-------------------------------------------------------------.
-| yyerrlab1 -- common code for both syntax error and YYERROR. |
-`-------------------------------------------------------------*/
-yyerrlab1:
- yyerrstatus = 3; /* Each real token shifted decrements this. */
-
- for (;;)
- {
- yyn = yypact[yystate];
- if (yyn != YYPACT_NINF)
- {
- yyn += YYTERROR;
- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
- {
- yyn = yytable[yyn];
- if (0 < yyn)
- break;
- }
- }
-
- /* Pop the current state because it cannot handle the error token. */
- if (yyssp == yyss)
- YYABORT;
-
-
- yydestruct ("Error: popping",
- yystos[yystate], yyvsp);
- YYPOPSTACK (1);
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
- }
-
- if (yyn == YYFINAL)
- YYACCEPT;
-
- *++yyvsp = yylval;
-
-
- /* Shift the error token. */
- YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-
- yystate = yyn;
- goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here. |
-`-------------------------------------*/
-yyacceptlab:
- yyresult = 0;
- goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here. |
-`-----------------------------------*/
-yyabortlab:
- yyresult = 1;
- goto yyreturn;
-
-#ifndef yyoverflow
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here. |
-`-------------------------------------------------*/
-yyexhaustedlab:
- yyerror (YY_("memory exhausted"));
- yyresult = 2;
- /* Fall through. */
-#endif
-
-yyreturn:
- if (yychar != YYEOF && yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval);
- /* Do not reclaim the symbols of the rule which action triggered
- this YYABORT or YYACCEPT. */
- YYPOPSTACK (yylen);
- YY_STACK_PRINT (yyss, yyssp);
- while (yyssp != yyss)
- {
- yydestruct ("Cleanup: popping",
- yystos[*yyssp], yyvsp);
- YYPOPSTACK (1);
- }
-#ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
-#endif
-#if YYERROR_VERBOSE
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
-#endif
- /* Make sure YYID is used. */
- return YYID (yyresult);
-}
-
-
-#line 922 "parse.y"
-
-
-void
-yyerror (const char *s)
-{
- error_message ("%s\n", s);
-}
-
-static Type *
-new_tag(int tagclass, int tagvalue, int tagenv, Type *oldtype)
-{
- Type *t;
- if(oldtype->type == TTag && oldtype->tag.tagenv == TE_IMPLICIT) {
- t = oldtype;
- oldtype = oldtype->subtype; /* XXX */
- } else
- t = new_type (TTag);
-
- t->tag.tagclass = tagclass;
- t->tag.tagvalue = tagvalue;
- t->tag.tagenv = tagenv;
- t->subtype = oldtype;
- return t;
-}
-
-static struct objid *
-new_objid(const char *label, int value)
-{
- struct objid *s;
- s = emalloc(sizeof(*s));
- s->label = label;
- s->value = value;
- s->next = NULL;
- return s;
-}
-
-static void
-add_oid_to_tail(struct objid *head, struct objid *tail)
-{
- struct objid *o;
- o = head;
- while (o->next)
- o = o->next;
- o->next = tail;
-}
-
-static Type *
-new_type (Typetype tt)
-{
- Type *t = ecalloc(1, sizeof(*t));
- t->type = tt;
- return t;
-}
-
-static struct constraint_spec *
-new_constraint_spec(enum ctype ct)
-{
- struct constraint_spec *c = ecalloc(1, sizeof(*c));
- c->ctype = ct;
- return c;
-}
-
-static void fix_labels2(Type *t, const char *prefix);
-static void fix_labels1(struct memhead *members, const char *prefix)
-{
- Member *m;
-
- if(members == NULL)
- return;
- ASN1_TAILQ_FOREACH(m, members, members) {
- asprintf(&m->label, "%s_%s", prefix, m->gen_name);
- if (m->label == NULL)
- errx(1, "malloc");
- if(m->type != NULL)
- fix_labels2(m->type, m->label);
- }
-}
-
-static void fix_labels2(Type *t, const char *prefix)
-{
- for(; t; t = t->subtype)
- fix_labels1(t->members, prefix);
-}
-
-static void
-fix_labels(Symbol *s)
-{
- char *p;
- asprintf(&p, "choice_%s", s->gen_name);
- if (p == NULL)
- errx(1, "malloc");
- fix_labels2(s->type, p);
- free(p);
-}
-
diff --git a/crypto/heimdal/lib/asn1/parse.h b/crypto/heimdal/lib/asn1/parse.h
deleted file mode 100644
index 45b06c5..0000000
--- a/crypto/heimdal/lib/asn1/parse.h
+++ /dev/null
@@ -1,249 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.3. */
-
-/* Skeleton interface for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-/* As a special exception, you may create a larger work that contains
- part or all of the Bison parser skeleton and distribute that work
- under terms of your choice, so long as that work isn't itself a
- parser generator using the skeleton or a modified version thereof
- as a parser skeleton. Alternatively, if you modify or redistribute
- the parser skeleton itself, you may (at your option) remove this
- special exception, which will cause the skeleton and the resulting
- Bison output files to be licensed under the GNU General Public
- License without this special exception.
-
- This special exception was added by the Free Software Foundation in
- version 2.2 of Bison. */
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- kw_ABSENT = 258,
- kw_ABSTRACT_SYNTAX = 259,
- kw_ALL = 260,
- kw_APPLICATION = 261,
- kw_AUTOMATIC = 262,
- kw_BEGIN = 263,
- kw_BIT = 264,
- kw_BMPString = 265,
- kw_BOOLEAN = 266,
- kw_BY = 267,
- kw_CHARACTER = 268,
- kw_CHOICE = 269,
- kw_CLASS = 270,
- kw_COMPONENT = 271,
- kw_COMPONENTS = 272,
- kw_CONSTRAINED = 273,
- kw_CONTAINING = 274,
- kw_DEFAULT = 275,
- kw_DEFINITIONS = 276,
- kw_EMBEDDED = 277,
- kw_ENCODED = 278,
- kw_END = 279,
- kw_ENUMERATED = 280,
- kw_EXCEPT = 281,
- kw_EXPLICIT = 282,
- kw_EXPORTS = 283,
- kw_EXTENSIBILITY = 284,
- kw_EXTERNAL = 285,
- kw_FALSE = 286,
- kw_FROM = 287,
- kw_GeneralString = 288,
- kw_GeneralizedTime = 289,
- kw_GraphicString = 290,
- kw_IA5String = 291,
- kw_IDENTIFIER = 292,
- kw_IMPLICIT = 293,
- kw_IMPLIED = 294,
- kw_IMPORTS = 295,
- kw_INCLUDES = 296,
- kw_INSTANCE = 297,
- kw_INTEGER = 298,
- kw_INTERSECTION = 299,
- kw_ISO646String = 300,
- kw_MAX = 301,
- kw_MIN = 302,
- kw_MINUS_INFINITY = 303,
- kw_NULL = 304,
- kw_NumericString = 305,
- kw_OBJECT = 306,
- kw_OCTET = 307,
- kw_OF = 308,
- kw_OPTIONAL = 309,
- kw_ObjectDescriptor = 310,
- kw_PATTERN = 311,
- kw_PDV = 312,
- kw_PLUS_INFINITY = 313,
- kw_PRESENT = 314,
- kw_PRIVATE = 315,
- kw_PrintableString = 316,
- kw_REAL = 317,
- kw_RELATIVE_OID = 318,
- kw_SEQUENCE = 319,
- kw_SET = 320,
- kw_SIZE = 321,
- kw_STRING = 322,
- kw_SYNTAX = 323,
- kw_T61String = 324,
- kw_TAGS = 325,
- kw_TRUE = 326,
- kw_TYPE_IDENTIFIER = 327,
- kw_TeletexString = 328,
- kw_UNION = 329,
- kw_UNIQUE = 330,
- kw_UNIVERSAL = 331,
- kw_UTCTime = 332,
- kw_UTF8String = 333,
- kw_UniversalString = 334,
- kw_VideotexString = 335,
- kw_VisibleString = 336,
- kw_WITH = 337,
- RANGE = 338,
- EEQUAL = 339,
- ELLIPSIS = 340,
- IDENTIFIER = 341,
- referencename = 342,
- STRING = 343,
- NUMBER = 344
- };
-#endif
-/* Tokens. */
-#define kw_ABSENT 258
-#define kw_ABSTRACT_SYNTAX 259
-#define kw_ALL 260
-#define kw_APPLICATION 261
-#define kw_AUTOMATIC 262
-#define kw_BEGIN 263
-#define kw_BIT 264
-#define kw_BMPString 265
-#define kw_BOOLEAN 266
-#define kw_BY 267
-#define kw_CHARACTER 268
-#define kw_CHOICE 269
-#define kw_CLASS 270
-#define kw_COMPONENT 271
-#define kw_COMPONENTS 272
-#define kw_CONSTRAINED 273
-#define kw_CONTAINING 274
-#define kw_DEFAULT 275
-#define kw_DEFINITIONS 276
-#define kw_EMBEDDED 277
-#define kw_ENCODED 278
-#define kw_END 279
-#define kw_ENUMERATED 280
-#define kw_EXCEPT 281
-#define kw_EXPLICIT 282
-#define kw_EXPORTS 283
-#define kw_EXTENSIBILITY 284
-#define kw_EXTERNAL 285
-#define kw_FALSE 286
-#define kw_FROM 287
-#define kw_GeneralString 288
-#define kw_GeneralizedTime 289
-#define kw_GraphicString 290
-#define kw_IA5String 291
-#define kw_IDENTIFIER 292
-#define kw_IMPLICIT 293
-#define kw_IMPLIED 294
-#define kw_IMPORTS 295
-#define kw_INCLUDES 296
-#define kw_INSTANCE 297
-#define kw_INTEGER 298
-#define kw_INTERSECTION 299
-#define kw_ISO646String 300
-#define kw_MAX 301
-#define kw_MIN 302
-#define kw_MINUS_INFINITY 303
-#define kw_NULL 304
-#define kw_NumericString 305
-#define kw_OBJECT 306
-#define kw_OCTET 307
-#define kw_OF 308
-#define kw_OPTIONAL 309
-#define kw_ObjectDescriptor 310
-#define kw_PATTERN 311
-#define kw_PDV 312
-#define kw_PLUS_INFINITY 313
-#define kw_PRESENT 314
-#define kw_PRIVATE 315
-#define kw_PrintableString 316
-#define kw_REAL 317
-#define kw_RELATIVE_OID 318
-#define kw_SEQUENCE 319
-#define kw_SET 320
-#define kw_SIZE 321
-#define kw_STRING 322
-#define kw_SYNTAX 323
-#define kw_T61String 324
-#define kw_TAGS 325
-#define kw_TRUE 326
-#define kw_TYPE_IDENTIFIER 327
-#define kw_TeletexString 328
-#define kw_UNION 329
-#define kw_UNIQUE 330
-#define kw_UNIVERSAL 331
-#define kw_UTCTime 332
-#define kw_UTF8String 333
-#define kw_UniversalString 334
-#define kw_VideotexString 335
-#define kw_VisibleString 336
-#define kw_WITH 337
-#define RANGE 338
-#define EEQUAL 339
-#define ELLIPSIS 340
-#define IDENTIFIER 341
-#define referencename 342
-#define STRING 343
-#define NUMBER 344
-
-
-
-
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
-#line 65 "parse.y"
-{
- int constant;
- struct value *value;
- struct range *range;
- char *name;
- Type *type;
- Member *member;
- struct objid *objid;
- char *defval;
- struct string_list *sl;
- struct tagtype tag;
- struct memhead *members;
- struct constraint_spec *constraint_spec;
-}
-/* Line 1529 of yacc.c. */
-#line 242 "parse.h"
- YYSTYPE;
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-extern YYSTYPE yylval;
-
diff --git a/crypto/heimdal/lib/asn1/parse.y b/crypto/heimdal/lib/asn1/parse.y
deleted file mode 100644
index 772f2b1..0000000
--- a/crypto/heimdal/lib/asn1/parse.y
+++ /dev/null
@@ -1,1015 +0,0 @@
-/*
- * Copyright (c) 1997 - 2007 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-/* $Id: parse.y 21597 2007-07-16 18:48:58Z lha $ */
-
-%{
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "symbol.h"
-#include "lex.h"
-#include "gen_locl.h"
-#include "der.h"
-
-RCSID("$Id: parse.y 21597 2007-07-16 18:48:58Z lha $");
-
-static Type *new_type (Typetype t);
-static struct constraint_spec *new_constraint_spec(enum ctype);
-static Type *new_tag(int tagclass, int tagvalue, int tagenv, Type *oldtype);
-void yyerror (const char *);
-static struct objid *new_objid(const char *label, int value);
-static void add_oid_to_tail(struct objid *, struct objid *);
-static void fix_labels(Symbol *s);
-
-struct string_list {
- char *string;
- struct string_list *next;
-};
-
-%}
-
-%union {
- int constant;
- struct value *value;
- struct range *range;
- char *name;
- Type *type;
- Member *member;
- struct objid *objid;
- char *defval;
- struct string_list *sl;
- struct tagtype tag;
- struct memhead *members;
- struct constraint_spec *constraint_spec;
-}
-
-%token kw_ABSENT
-%token kw_ABSTRACT_SYNTAX
-%token kw_ALL
-%token kw_APPLICATION
-%token kw_AUTOMATIC
-%token kw_BEGIN
-%token kw_BIT
-%token kw_BMPString
-%token kw_BOOLEAN
-%token kw_BY
-%token kw_CHARACTER
-%token kw_CHOICE
-%token kw_CLASS
-%token kw_COMPONENT
-%token kw_COMPONENTS
-%token kw_CONSTRAINED
-%token kw_CONTAINING
-%token kw_DEFAULT
-%token kw_DEFINITIONS
-%token kw_EMBEDDED
-%token kw_ENCODED
-%token kw_END
-%token kw_ENUMERATED
-%token kw_EXCEPT
-%token kw_EXPLICIT
-%token kw_EXPORTS
-%token kw_EXTENSIBILITY
-%token kw_EXTERNAL
-%token kw_FALSE
-%token kw_FROM
-%token kw_GeneralString
-%token kw_GeneralizedTime
-%token kw_GraphicString
-%token kw_IA5String
-%token kw_IDENTIFIER
-%token kw_IMPLICIT
-%token kw_IMPLIED
-%token kw_IMPORTS
-%token kw_INCLUDES
-%token kw_INSTANCE
-%token kw_INTEGER
-%token kw_INTERSECTION
-%token kw_ISO646String
-%token kw_MAX
-%token kw_MIN
-%token kw_MINUS_INFINITY
-%token kw_NULL
-%token kw_NumericString
-%token kw_OBJECT
-%token kw_OCTET
-%token kw_OF
-%token kw_OPTIONAL
-%token kw_ObjectDescriptor
-%token kw_PATTERN
-%token kw_PDV
-%token kw_PLUS_INFINITY
-%token kw_PRESENT
-%token kw_PRIVATE
-%token kw_PrintableString
-%token kw_REAL
-%token kw_RELATIVE_OID
-%token kw_SEQUENCE
-%token kw_SET
-%token kw_SIZE
-%token kw_STRING
-%token kw_SYNTAX
-%token kw_T61String
-%token kw_TAGS
-%token kw_TRUE
-%token kw_TYPE_IDENTIFIER
-%token kw_TeletexString
-%token kw_UNION
-%token kw_UNIQUE
-%token kw_UNIVERSAL
-%token kw_UTCTime
-%token kw_UTF8String
-%token kw_UniversalString
-%token kw_VideotexString
-%token kw_VisibleString
-%token kw_WITH
-
-%token RANGE
-%token EEQUAL
-%token ELLIPSIS
-
-%token <name> IDENTIFIER referencename
-%token <name> STRING
-
-%token <constant> NUMBER
-%type <constant> SignedNumber
-%type <constant> Class tagenv
-
-%type <value> Value
-%type <value> BuiltinValue
-%type <value> IntegerValue
-%type <value> BooleanValue
-%type <value> ObjectIdentifierValue
-%type <value> CharacterStringValue
-%type <value> NullValue
-%type <value> DefinedValue
-%type <value> ReferencedValue
-%type <value> Valuereference
-
-%type <type> Type
-%type <type> BuiltinType
-%type <type> BitStringType
-%type <type> BooleanType
-%type <type> ChoiceType
-%type <type> ConstrainedType
-%type <type> EnumeratedType
-%type <type> IntegerType
-%type <type> NullType
-%type <type> OctetStringType
-%type <type> SequenceType
-%type <type> SequenceOfType
-%type <type> SetType
-%type <type> SetOfType
-%type <type> TaggedType
-%type <type> ReferencedType
-%type <type> DefinedType
-%type <type> UsefulType
-%type <type> ObjectIdentifierType
-%type <type> CharacterStringType
-%type <type> RestrictedCharactedStringType
-
-%type <tag> Tag
-
-%type <member> ComponentType
-%type <member> NamedBit
-%type <member> NamedNumber
-%type <member> NamedType
-%type <members> ComponentTypeList
-%type <members> Enumerations
-%type <members> NamedBitList
-%type <members> NamedNumberList
-
-%type <objid> objid objid_list objid_element objid_opt
-%type <range> range size
-
-%type <sl> referencenames
-
-%type <constraint_spec> Constraint
-%type <constraint_spec> ConstraintSpec
-%type <constraint_spec> GeneralConstraint
-%type <constraint_spec> ContentsConstraint
-%type <constraint_spec> UserDefinedConstraint
-
-
-
-%start ModuleDefinition
-
-%%
-
-ModuleDefinition: IDENTIFIER objid_opt kw_DEFINITIONS TagDefault ExtensionDefault
- EEQUAL kw_BEGIN ModuleBody kw_END
- {
- checkundefined();
- }
- ;
-
-TagDefault : kw_EXPLICIT kw_TAGS
- | kw_IMPLICIT kw_TAGS
- { error_message("implicit tagging is not supported"); }
- | kw_AUTOMATIC kw_TAGS
- { error_message("automatic tagging is not supported"); }
- | /* empty */
- ;
-
-ExtensionDefault: kw_EXTENSIBILITY kw_IMPLIED
- { error_message("no extensibility options supported"); }
- | /* empty */
- ;
-
-ModuleBody : /* Exports */ Imports AssignmentList
- | /* empty */
- ;
-
-Imports : kw_IMPORTS SymbolsImported ';'
- | /* empty */
- ;
-
-SymbolsImported : SymbolsFromModuleList
- | /* empty */
- ;
-
-SymbolsFromModuleList: SymbolsFromModule
- | SymbolsFromModuleList SymbolsFromModule
- ;
-
-SymbolsFromModule: referencenames kw_FROM IDENTIFIER objid_opt
- {
- struct string_list *sl;
- for(sl = $1; sl != NULL; sl = sl->next) {
- Symbol *s = addsym(sl->string);
- s->stype = Stype;
- }
- add_import($3);
- }
- ;
-
-AssignmentList : Assignment
- | Assignment AssignmentList
- ;
-
-Assignment : TypeAssignment
- | ValueAssignment
- ;
-
-referencenames : IDENTIFIER ',' referencenames
- {
- $$ = emalloc(sizeof(*$$));
- $$->string = $1;
- $$->next = $3;
- }
- | IDENTIFIER
- {
- $$ = emalloc(sizeof(*$$));
- $$->string = $1;
- $$->next = NULL;
- }
- ;
-
-TypeAssignment : IDENTIFIER EEQUAL Type
- {
- Symbol *s = addsym ($1);
- s->stype = Stype;
- s->type = $3;
- fix_labels(s);
- generate_type (s);
- }
- ;
-
-Type : BuiltinType
- | ReferencedType
- | ConstrainedType
- ;
-
-BuiltinType : BitStringType
- | BooleanType
- | CharacterStringType
- | ChoiceType
- | EnumeratedType
- | IntegerType
- | NullType
- | ObjectIdentifierType
- | OctetStringType
- | SequenceType
- | SequenceOfType
- | SetType
- | SetOfType
- | TaggedType
- ;
-
-BooleanType : kw_BOOLEAN
- {
- $$ = new_tag(ASN1_C_UNIV, UT_Boolean,
- TE_EXPLICIT, new_type(TBoolean));
- }
- ;
-
-range : '(' Value RANGE Value ')'
- {
- if($2->type != integervalue)
- error_message("Non-integer used in first part of range");
- if($2->type != integervalue)
- error_message("Non-integer in second part of range");
- $$ = ecalloc(1, sizeof(*$$));
- $$->min = $2->u.integervalue;
- $$->max = $4->u.integervalue;
- }
- | '(' Value RANGE kw_MAX ')'
- {
- if($2->type != integervalue)
- error_message("Non-integer in first part of range");
- $$ = ecalloc(1, sizeof(*$$));
- $$->min = $2->u.integervalue;
- $$->max = $2->u.integervalue - 1;
- }
- | '(' kw_MIN RANGE Value ')'
- {
- if($4->type != integervalue)
- error_message("Non-integer in second part of range");
- $$ = ecalloc(1, sizeof(*$$));
- $$->min = $4->u.integervalue + 2;
- $$->max = $4->u.integervalue;
- }
- | '(' Value ')'
- {
- if($2->type != integervalue)
- error_message("Non-integer used in limit");
- $$ = ecalloc(1, sizeof(*$$));
- $$->min = $2->u.integervalue;
- $$->max = $2->u.integervalue;
- }
- ;
-
-
-IntegerType : kw_INTEGER
- {
- $$ = new_tag(ASN1_C_UNIV, UT_Integer,
- TE_EXPLICIT, new_type(TInteger));
- }
- | kw_INTEGER range
- {
- $$ = new_type(TInteger);
- $$->range = $2;
- $$ = new_tag(ASN1_C_UNIV, UT_Integer, TE_EXPLICIT, $$);
- }
- | kw_INTEGER '{' NamedNumberList '}'
- {
- $$ = new_type(TInteger);
- $$->members = $3;
- $$ = new_tag(ASN1_C_UNIV, UT_Integer, TE_EXPLICIT, $$);
- }
- ;
-
-NamedNumberList : NamedNumber
- {
- $$ = emalloc(sizeof(*$$));
- ASN1_TAILQ_INIT($$);
- ASN1_TAILQ_INSERT_HEAD($$, $1, members);
- }
- | NamedNumberList ',' NamedNumber
- {
- ASN1_TAILQ_INSERT_TAIL($1, $3, members);
- $$ = $1;
- }
- | NamedNumberList ',' ELLIPSIS
- { $$ = $1; } /* XXX used for Enumerations */
- ;
-
-NamedNumber : IDENTIFIER '(' SignedNumber ')'
- {
- $$ = emalloc(sizeof(*$$));
- $$->name = $1;
- $$->gen_name = estrdup($1);
- output_name ($$->gen_name);
- $$->val = $3;
- $$->optional = 0;
- $$->ellipsis = 0;
- $$->type = NULL;
- }
- ;
-
-EnumeratedType : kw_ENUMERATED '{' Enumerations '}'
- {
- $$ = new_type(TInteger);
- $$->members = $3;
- $$ = new_tag(ASN1_C_UNIV, UT_Enumerated, TE_EXPLICIT, $$);
- }
- ;
-
-Enumerations : NamedNumberList /* XXX */
- ;
-
-BitStringType : kw_BIT kw_STRING
- {
- $$ = new_type(TBitString);
- $$->members = emalloc(sizeof(*$$->members));
- ASN1_TAILQ_INIT($$->members);
- $$ = new_tag(ASN1_C_UNIV, UT_BitString, TE_EXPLICIT, $$);
- }
- | kw_BIT kw_STRING '{' NamedBitList '}'
- {
- $$ = new_type(TBitString);
- $$->members = $4;
- $$ = new_tag(ASN1_C_UNIV, UT_BitString, TE_EXPLICIT, $$);
- }
- ;
-
-ObjectIdentifierType: kw_OBJECT kw_IDENTIFIER
- {
- $$ = new_tag(ASN1_C_UNIV, UT_OID,
- TE_EXPLICIT, new_type(TOID));
- }
- ;
-OctetStringType : kw_OCTET kw_STRING size
- {
- Type *t = new_type(TOctetString);
- t->range = $3;
- $$ = new_tag(ASN1_C_UNIV, UT_OctetString,
- TE_EXPLICIT, t);
- }
- ;
-
-NullType : kw_NULL
- {
- $$ = new_tag(ASN1_C_UNIV, UT_Null,
- TE_EXPLICIT, new_type(TNull));
- }
- ;
-
-size :
- { $$ = NULL; }
- | kw_SIZE range
- { $$ = $2; }
- ;
-
-
-SequenceType : kw_SEQUENCE '{' /* ComponentTypeLists */ ComponentTypeList '}'
- {
- $$ = new_type(TSequence);
- $$->members = $3;
- $$ = new_tag(ASN1_C_UNIV, UT_Sequence, TE_EXPLICIT, $$);
- }
- | kw_SEQUENCE '{' '}'
- {
- $$ = new_type(TSequence);
- $$->members = NULL;
- $$ = new_tag(ASN1_C_UNIV, UT_Sequence, TE_EXPLICIT, $$);
- }
- ;
-
-SequenceOfType : kw_SEQUENCE size kw_OF Type
- {
- $$ = new_type(TSequenceOf);
- $$->range = $2;
- $$->subtype = $4;
- $$ = new_tag(ASN1_C_UNIV, UT_Sequence, TE_EXPLICIT, $$);
- }
- ;
-
-SetType : kw_SET '{' /* ComponentTypeLists */ ComponentTypeList '}'
- {
- $$ = new_type(TSet);
- $$->members = $3;
- $$ = new_tag(ASN1_C_UNIV, UT_Set, TE_EXPLICIT, $$);
- }
- | kw_SET '{' '}'
- {
- $$ = new_type(TSet);
- $$->members = NULL;
- $$ = new_tag(ASN1_C_UNIV, UT_Set, TE_EXPLICIT, $$);
- }
- ;
-
-SetOfType : kw_SET kw_OF Type
- {
- $$ = new_type(TSetOf);
- $$->subtype = $3;
- $$ = new_tag(ASN1_C_UNIV, UT_Set, TE_EXPLICIT, $$);
- }
- ;
-
-ChoiceType : kw_CHOICE '{' /* AlternativeTypeLists */ ComponentTypeList '}'
- {
- $$ = new_type(TChoice);
- $$->members = $3;
- }
- ;
-
-ReferencedType : DefinedType
- | UsefulType
- ;
-
-DefinedType : IDENTIFIER
- {
- Symbol *s = addsym($1);
- $$ = new_type(TType);
- if(s->stype != Stype && s->stype != SUndefined)
- error_message ("%s is not a type\n", $1);
- else
- $$->symbol = s;
- }
- ;
-
-UsefulType : kw_GeneralizedTime
- {
- $$ = new_tag(ASN1_C_UNIV, UT_GeneralizedTime,
- TE_EXPLICIT, new_type(TGeneralizedTime));
- }
- | kw_UTCTime
- {
- $$ = new_tag(ASN1_C_UNIV, UT_UTCTime,
- TE_EXPLICIT, new_type(TUTCTime));
- }
- ;
-
-ConstrainedType : Type Constraint
- {
- /* if (Constraint.type == contentConstrant) {
- assert(Constraint.u.constraint.type == octetstring|bitstring-w/o-NamedBitList); // remember to check type reference too
- if (Constraint.u.constraint.type) {
- assert((Constraint.u.constraint.type.length % 8) == 0);
- }
- }
- if (Constraint.u.constraint.encoding) {
- type == der-oid|ber-oid
- }
- */
- }
- ;
-
-
-Constraint : '(' ConstraintSpec ')'
- {
- $$ = $2;
- }
- ;
-
-ConstraintSpec : GeneralConstraint
- ;
-
-GeneralConstraint: ContentsConstraint
- | UserDefinedConstraint
- ;
-
-ContentsConstraint: kw_CONTAINING Type
- {
- $$ = new_constraint_spec(CT_CONTENTS);
- $$->u.content.type = $2;
- $$->u.content.encoding = NULL;
- }
- | kw_ENCODED kw_BY Value
- {
- if ($3->type != objectidentifiervalue)
- error_message("Non-OID used in ENCODED BY constraint");
- $$ = new_constraint_spec(CT_CONTENTS);
- $$->u.content.type = NULL;
- $$->u.content.encoding = $3;
- }
- | kw_CONTAINING Type kw_ENCODED kw_BY Value
- {
- if ($5->type != objectidentifiervalue)
- error_message("Non-OID used in ENCODED BY constraint");
- $$ = new_constraint_spec(CT_CONTENTS);
- $$->u.content.type = $2;
- $$->u.content.encoding = $5;
- }
- ;
-
-UserDefinedConstraint: kw_CONSTRAINED kw_BY '{' '}'
- {
- $$ = new_constraint_spec(CT_USER);
- }
- ;
-
-TaggedType : Tag tagenv Type
- {
- $$ = new_type(TTag);
- $$->tag = $1;
- $$->tag.tagenv = $2;
- if($3->type == TTag && $2 == TE_IMPLICIT) {
- $$->subtype = $3->subtype;
- free($3);
- } else
- $$->subtype = $3;
- }
- ;
-
-Tag : '[' Class NUMBER ']'
- {
- $$.tagclass = $2;
- $$.tagvalue = $3;
- $$.tagenv = TE_EXPLICIT;
- }
- ;
-
-Class : /* */
- {
- $$ = ASN1_C_CONTEXT;
- }
- | kw_UNIVERSAL
- {
- $$ = ASN1_C_UNIV;
- }
- | kw_APPLICATION
- {
- $$ = ASN1_C_APPL;
- }
- | kw_PRIVATE
- {
- $$ = ASN1_C_PRIVATE;
- }
- ;
-
-tagenv : /* */
- {
- $$ = TE_EXPLICIT;
- }
- | kw_EXPLICIT
- {
- $$ = TE_EXPLICIT;
- }
- | kw_IMPLICIT
- {
- $$ = TE_IMPLICIT;
- }
- ;
-
-
-ValueAssignment : IDENTIFIER Type EEQUAL Value
- {
- Symbol *s;
- s = addsym ($1);
-
- s->stype = SValue;
- s->value = $4;
- generate_constant (s);
- }
- ;
-
-CharacterStringType: RestrictedCharactedStringType
- ;
-
-RestrictedCharactedStringType: kw_GeneralString
- {
- $$ = new_tag(ASN1_C_UNIV, UT_GeneralString,
- TE_EXPLICIT, new_type(TGeneralString));
- }
- | kw_UTF8String
- {
- $$ = new_tag(ASN1_C_UNIV, UT_UTF8String,
- TE_EXPLICIT, new_type(TUTF8String));
- }
- | kw_PrintableString
- {
- $$ = new_tag(ASN1_C_UNIV, UT_PrintableString,
- TE_EXPLICIT, new_type(TPrintableString));
- }
- | kw_VisibleString
- {
- $$ = new_tag(ASN1_C_UNIV, UT_VisibleString,
- TE_EXPLICIT, new_type(TVisibleString));
- }
- | kw_IA5String
- {
- $$ = new_tag(ASN1_C_UNIV, UT_IA5String,
- TE_EXPLICIT, new_type(TIA5String));
- }
- | kw_BMPString
- {
- $$ = new_tag(ASN1_C_UNIV, UT_BMPString,
- TE_EXPLICIT, new_type(TBMPString));
- }
- | kw_UniversalString
- {
- $$ = new_tag(ASN1_C_UNIV, UT_UniversalString,
- TE_EXPLICIT, new_type(TUniversalString));
- }
-
- ;
-
-ComponentTypeList: ComponentType
- {
- $$ = emalloc(sizeof(*$$));
- ASN1_TAILQ_INIT($$);
- ASN1_TAILQ_INSERT_HEAD($$, $1, members);
- }
- | ComponentTypeList ',' ComponentType
- {
- ASN1_TAILQ_INSERT_TAIL($1, $3, members);
- $$ = $1;
- }
- | ComponentTypeList ',' ELLIPSIS
- {
- struct member *m = ecalloc(1, sizeof(*m));
- m->name = estrdup("...");
- m->gen_name = estrdup("asn1_ellipsis");
- m->ellipsis = 1;
- ASN1_TAILQ_INSERT_TAIL($1, m, members);
- $$ = $1;
- }
- ;
-
-NamedType : IDENTIFIER Type
- {
- $$ = emalloc(sizeof(*$$));
- $$->name = $1;
- $$->gen_name = estrdup($1);
- output_name ($$->gen_name);
- $$->type = $2;
- $$->ellipsis = 0;
- }
- ;
-
-ComponentType : NamedType
- {
- $$ = $1;
- $$->optional = 0;
- $$->defval = NULL;
- }
- | NamedType kw_OPTIONAL
- {
- $$ = $1;
- $$->optional = 1;
- $$->defval = NULL;
- }
- | NamedType kw_DEFAULT Value
- {
- $$ = $1;
- $$->optional = 0;
- $$->defval = $3;
- }
- ;
-
-NamedBitList : NamedBit
- {
- $$ = emalloc(sizeof(*$$));
- ASN1_TAILQ_INIT($$);
- ASN1_TAILQ_INSERT_HEAD($$, $1, members);
- }
- | NamedBitList ',' NamedBit
- {
- ASN1_TAILQ_INSERT_TAIL($1, $3, members);
- $$ = $1;
- }
- ;
-
-NamedBit : IDENTIFIER '(' NUMBER ')'
- {
- $$ = emalloc(sizeof(*$$));
- $$->name = $1;
- $$->gen_name = estrdup($1);
- output_name ($$->gen_name);
- $$->val = $3;
- $$->optional = 0;
- $$->ellipsis = 0;
- $$->type = NULL;
- }
- ;
-
-objid_opt : objid
- | /* empty */ { $$ = NULL; }
- ;
-
-objid : '{' objid_list '}'
- {
- $$ = $2;
- }
- ;
-
-objid_list : /* empty */
- {
- $$ = NULL;
- }
- | objid_element objid_list
- {
- if ($2) {
- $$ = $2;
- add_oid_to_tail($2, $1);
- } else {
- $$ = $1;
- }
- }
- ;
-
-objid_element : IDENTIFIER '(' NUMBER ')'
- {
- $$ = new_objid($1, $3);
- }
- | IDENTIFIER
- {
- Symbol *s = addsym($1);
- if(s->stype != SValue ||
- s->value->type != objectidentifiervalue) {
- error_message("%s is not an object identifier\n",
- s->name);
- exit(1);
- }
- $$ = s->value->u.objectidentifiervalue;
- }
- | NUMBER
- {
- $$ = new_objid(NULL, $1);
- }
- ;
-
-Value : BuiltinValue
- | ReferencedValue
- ;
-
-BuiltinValue : BooleanValue
- | CharacterStringValue
- | IntegerValue
- | ObjectIdentifierValue
- | NullValue
- ;
-
-ReferencedValue : DefinedValue
- ;
-
-DefinedValue : Valuereference
- ;
-
-Valuereference : IDENTIFIER
- {
- Symbol *s = addsym($1);
- if(s->stype != SValue)
- error_message ("%s is not a value\n",
- s->name);
- else
- $$ = s->value;
- }
- ;
-
-CharacterStringValue: STRING
- {
- $$ = emalloc(sizeof(*$$));
- $$->type = stringvalue;
- $$->u.stringvalue = $1;
- }
- ;
-
-BooleanValue : kw_TRUE
- {
- $$ = emalloc(sizeof(*$$));
- $$->type = booleanvalue;
- $$->u.booleanvalue = 0;
- }
- | kw_FALSE
- {
- $$ = emalloc(sizeof(*$$));
- $$->type = booleanvalue;
- $$->u.booleanvalue = 0;
- }
- ;
-
-IntegerValue : SignedNumber
- {
- $$ = emalloc(sizeof(*$$));
- $$->type = integervalue;
- $$->u.integervalue = $1;
- }
- ;
-
-SignedNumber : NUMBER
- ;
-
-NullValue : kw_NULL
- {
- }
- ;
-
-ObjectIdentifierValue: objid
- {
- $$ = emalloc(sizeof(*$$));
- $$->type = objectidentifiervalue;
- $$->u.objectidentifiervalue = $1;
- }
- ;
-
-%%
-
-void
-yyerror (const char *s)
-{
- error_message ("%s\n", s);
-}
-
-static Type *
-new_tag(int tagclass, int tagvalue, int tagenv, Type *oldtype)
-{
- Type *t;
- if(oldtype->type == TTag && oldtype->tag.tagenv == TE_IMPLICIT) {
- t = oldtype;
- oldtype = oldtype->subtype; /* XXX */
- } else
- t = new_type (TTag);
-
- t->tag.tagclass = tagclass;
- t->tag.tagvalue = tagvalue;
- t->tag.tagenv = tagenv;
- t->subtype = oldtype;
- return t;
-}
-
-static struct objid *
-new_objid(const char *label, int value)
-{
- struct objid *s;
- s = emalloc(sizeof(*s));
- s->label = label;
- s->value = value;
- s->next = NULL;
- return s;
-}
-
-static void
-add_oid_to_tail(struct objid *head, struct objid *tail)
-{
- struct objid *o;
- o = head;
- while (o->next)
- o = o->next;
- o->next = tail;
-}
-
-static Type *
-new_type (Typetype tt)
-{
- Type *t = ecalloc(1, sizeof(*t));
- t->type = tt;
- return t;
-}
-
-static struct constraint_spec *
-new_constraint_spec(enum ctype ct)
-{
- struct constraint_spec *c = ecalloc(1, sizeof(*c));
- c->ctype = ct;
- return c;
-}
-
-static void fix_labels2(Type *t, const char *prefix);
-static void fix_labels1(struct memhead *members, const char *prefix)
-{
- Member *m;
-
- if(members == NULL)
- return;
- ASN1_TAILQ_FOREACH(m, members, members) {
- asprintf(&m->label, "%s_%s", prefix, m->gen_name);
- if (m->label == NULL)
- errx(1, "malloc");
- if(m->type != NULL)
- fix_labels2(m->type, m->label);
- }
-}
-
-static void fix_labels2(Type *t, const char *prefix)
-{
- for(; t; t = t->subtype)
- fix_labels1(t->members, prefix);
-}
-
-static void
-fix_labels(Symbol *s)
-{
- char *p;
- asprintf(&p, "choice_%s", s->gen_name);
- if (p == NULL)
- errx(1, "malloc");
- fix_labels2(s->type, p);
- free(p);
-}
diff --git a/crypto/heimdal/lib/asn1/pkcs12.asn1 b/crypto/heimdal/lib/asn1/pkcs12.asn1
deleted file mode 100644
index 37fe03e..0000000
--- a/crypto/heimdal/lib/asn1/pkcs12.asn1
+++ /dev/null
@@ -1,81 +0,0 @@
--- $Id: pkcs12.asn1 15715 2005-07-23 11:08:47Z lha $ --
-
-PKCS12 DEFINITIONS ::=
-
-BEGIN
-
-IMPORTS ContentInfo FROM cms
- DigestInfo FROM rfc2459
- heim_any, heim_any_set FROM heim;
-
--- The PFX PDU
-
-id-pkcs-12 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840)
- rsadsi(113549) pkcs(1) pkcs-12(12) }
-
-id-pkcs-12PbeIds OBJECT IDENTIFIER ::= { id-pkcs-12 1}
-id-pbeWithSHAAnd128BitRC4 OBJECT IDENTIFIER ::= { id-pkcs-12PbeIds 1}
-id-pbeWithSHAAnd40BitRC4 OBJECT IDENTIFIER ::= { id-pkcs-12PbeIds 2}
-id-pbeWithSHAAnd3-KeyTripleDES-CBC OBJECT IDENTIFIER ::= { id-pkcs-12PbeIds 3}
-id-pbeWithSHAAnd2-KeyTripleDES-CBC OBJECT IDENTIFIER ::= { id-pkcs-12PbeIds 4}
-id-pbeWithSHAAnd128BitRC2-CBC OBJECT IDENTIFIER ::= { id-pkcs-12PbeIds 5}
-id-pbewithSHAAnd40BitRC2-CBC OBJECT IDENTIFIER ::= { id-pkcs-12PbeIds 6}
-
-id-pkcs12-bagtypes OBJECT IDENTIFIER ::= { id-pkcs-12 10 1}
-
-id-pkcs12-keyBag OBJECT IDENTIFIER ::= { id-pkcs12-bagtypes 1 }
-id-pkcs12-pkcs8ShroudedKeyBag OBJECT IDENTIFIER ::= { id-pkcs12-bagtypes 2 }
-id-pkcs12-certBag OBJECT IDENTIFIER ::= { id-pkcs12-bagtypes 3 }
-id-pkcs12-crlBag OBJECT IDENTIFIER ::= { id-pkcs12-bagtypes 4 }
-id-pkcs12-secretBag OBJECT IDENTIFIER ::= { id-pkcs12-bagtypes 5 }
-id-pkcs12-safeContentsBag OBJECT IDENTIFIER ::= { id-pkcs12-bagtypes 6 }
-
-
-PKCS12-MacData ::= SEQUENCE {
- mac DigestInfo,
- macSalt OCTET STRING,
- iterations INTEGER OPTIONAL
-}
-
-PKCS12-PFX ::= SEQUENCE {
- version INTEGER,
- authSafe ContentInfo,
- macData PKCS12-MacData OPTIONAL
-}
-
-PKCS12-AuthenticatedSafe ::= SEQUENCE OF ContentInfo
- -- Data if unencrypted
- -- EncryptedData if password-encrypted
- -- EnvelopedData if public key-encrypted
-
-PKCS12-Attribute ::= SEQUENCE {
- attrId OBJECT IDENTIFIER,
- attrValues -- SET OF -- heim_any_set
-}
-
-PKCS12-Attributes ::= SET OF PKCS12-Attribute
-
-PKCS12-SafeBag ::= SEQUENCE {
- bagId OBJECT IDENTIFIER,
- bagValue [0] heim_any,
- bagAttributes PKCS12-Attributes OPTIONAL
-}
-
-PKCS12-SafeContents ::= SEQUENCE OF PKCS12-SafeBag
-
-PKCS12-CertBag ::= SEQUENCE {
- certType OBJECT IDENTIFIER,
- certValue [0] heim_any
-}
-
-PKCS12-PBEParams ::= SEQUENCE {
- salt OCTET STRING,
- iterations INTEGER (0..4294967295) OPTIONAL
-}
-
-PKCS12-OctetString ::= OCTET STRING
-
--- KeyBag ::= PrivateKeyInfo
--- PKCS8ShroudedKeyBag ::= EncryptedPrivateKeyInfo
-
-END
diff --git a/crypto/heimdal/lib/asn1/pkcs8.asn1 b/crypto/heimdal/lib/asn1/pkcs8.asn1
deleted file mode 100644
index 911e727..0000000
--- a/crypto/heimdal/lib/asn1/pkcs8.asn1
+++ /dev/null
@@ -1,30 +0,0 @@
--- $Id: pkcs8.asn1 16060 2005-09-13 19:41:29Z lha $ --
-
-PKCS8 DEFINITIONS ::=
-
-BEGIN
-
-IMPORTS Attribute, AlgorithmIdentifier FROM rfc2459
- heim_any, heim_any_set FROM heim;
-
-PKCS8PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier
-
-PKCS8PrivateKey ::= OCTET STRING
-
-PKCS8Attributes ::= SET OF Attribute
-
-PKCS8PrivateKeyInfo ::= SEQUENCE {
- version INTEGER,
- privateKeyAlgorithm PKCS8PrivateKeyAlgorithmIdentifier,
- privateKey PKCS8PrivateKey,
- attributes [0] IMPLICIT SET OF Attribute OPTIONAL
-}
-
-PKCS8EncryptedData ::= OCTET STRING
-
-PKCS8EncryptedPrivateKeyInfo ::= SEQUENCE {
- encryptionAlgorithm AlgorithmIdentifier,
- encryptedData PKCS8EncryptedData
-}
-
-END
diff --git a/crypto/heimdal/lib/asn1/pkcs9.asn1 b/crypto/heimdal/lib/asn1/pkcs9.asn1
deleted file mode 100644
index d985e91..0000000
--- a/crypto/heimdal/lib/asn1/pkcs9.asn1
+++ /dev/null
@@ -1,28 +0,0 @@
--- $Id: pkcs9.asn1 17202 2006-04-24 08:59:10Z lha $ --
-
-PKCS9 DEFINITIONS ::=
-
-BEGIN
-
--- The PFX PDU
-
-id-pkcs-9 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840)
- rsadsi(113549) pkcs(1) pkcs-9(9) }
-
-id-pkcs9-emailAddress OBJECT IDENTIFIER ::= {id-pkcs-9 1 }
-id-pkcs9-contentType OBJECT IDENTIFIER ::= {id-pkcs-9 3 }
-id-pkcs9-messageDigest OBJECT IDENTIFIER ::= {id-pkcs-9 4 }
-id-pkcs9-signingTime OBJECT IDENTIFIER ::= {id-pkcs-9 5 }
-id-pkcs9-countersignature OBJECT IDENTIFIER ::= {id-pkcs-9 6 }
-
-id-pkcs-9-at-friendlyName OBJECT IDENTIFIER ::= {id-pkcs-9 20}
-id-pkcs-9-at-localKeyId OBJECT IDENTIFIER ::= {id-pkcs-9 21}
-id-pkcs-9-at-certTypes OBJECT IDENTIFIER ::= {id-pkcs-9 22}
-id-pkcs-9-at-certTypes-x509 OBJECT IDENTIFIER ::= {id-pkcs-9-at-certTypes 1}
-
-PKCS9-BMPString ::= BMPString
-
-PKCS9-friendlyName ::= SET OF PKCS9-BMPString
-
-END
-
diff --git a/crypto/heimdal/lib/asn1/pkinit.asn1 b/crypto/heimdal/lib/asn1/pkinit.asn1
deleted file mode 100644
index 989b265..0000000
--- a/crypto/heimdal/lib/asn1/pkinit.asn1
+++ /dev/null
@@ -1,182 +0,0 @@
--- $Id$ --
-
-PKINIT DEFINITIONS ::= BEGIN
-
-IMPORTS EncryptionKey, PrincipalName, Realm, KerberosTime, Checksum, Ticket FROM krb5
- IssuerAndSerialNumber, ContentInfo FROM cms
- SubjectPublicKeyInfo, AlgorithmIdentifier FROM rfc2459
- heim_any FROM heim;
-
-id-pkinit OBJECT IDENTIFIER ::=
- { iso (1) org (3) dod (6) internet (1) security (5)
- kerberosv5 (2) pkinit (3) }
-
-id-pkauthdata OBJECT IDENTIFIER ::= { id-pkinit 1 }
-id-pkdhkeydata OBJECT IDENTIFIER ::= { id-pkinit 2 }
-id-pkrkeydata OBJECT IDENTIFIER ::= { id-pkinit 3 }
-id-pkekuoid OBJECT IDENTIFIER ::= { id-pkinit 4 }
-id-pkkdcekuoid OBJECT IDENTIFIER ::= { id-pkinit 5 }
-
-id-pkinit-san OBJECT IDENTIFIER ::=
- { iso(1) org(3) dod(6) internet(1) security(5) kerberosv5(2)
- x509-sanan(2) }
-
-id-pkinit-ms-eku OBJECT IDENTIFIER ::=
- { iso(1) org(3) dod(6) internet(1) private(4)
- enterprise(1) microsoft(311) 20 2 2 }
-
-id-pkinit-ms-san OBJECT IDENTIFIER ::=
- { iso(1) org(3) dod(6) internet(1) private(4)
- enterprise(1) microsoft(311) 20 2 3 }
-
-MS-UPN-SAN ::= UTF8String
-
-pa-pk-as-req INTEGER ::= 16
-pa-pk-as-rep INTEGER ::= 17
-
-td-trusted-certifiers INTEGER ::= 104
-td-invalid-certificates INTEGER ::= 105
-td-dh-parameters INTEGER ::= 109
-
-DHNonce ::= OCTET STRING
-
-KDFAlgorithmId ::= SEQUENCE {
- kdf-id [0] OBJECT IDENTIFIER,
- ...
-}
-
-TrustedCA ::= SEQUENCE {
- caName [0] IMPLICIT OCTET STRING,
- certificateSerialNumber [1] INTEGER OPTIONAL,
- subjectKeyIdentifier [2] OCTET STRING OPTIONAL,
- ...
-}
-
-ExternalPrincipalIdentifier ::= SEQUENCE {
- subjectName [0] IMPLICIT OCTET STRING OPTIONAL,
- issuerAndSerialNumber [1] IMPLICIT OCTET STRING OPTIONAL,
- subjectKeyIdentifier [2] IMPLICIT OCTET STRING OPTIONAL,
- ...
-}
-
-ExternalPrincipalIdentifiers ::= SEQUENCE OF ExternalPrincipalIdentifier
-
-PA-PK-AS-REQ ::= SEQUENCE {
- signedAuthPack [0] IMPLICIT OCTET STRING,
- trustedCertifiers [1] ExternalPrincipalIdentifiers OPTIONAL,
- kdcPkId [2] IMPLICIT OCTET STRING OPTIONAL,
- ...
-}
-
-PKAuthenticator ::= SEQUENCE {
- cusec [0] INTEGER -- (0..999999) --,
- ctime [1] KerberosTime,
- nonce [2] INTEGER (0..4294967295),
- paChecksum [3] OCTET STRING OPTIONAL,
- ...
-}
-
-AuthPack ::= SEQUENCE {
- pkAuthenticator [0] PKAuthenticator,
- clientPublicValue [1] SubjectPublicKeyInfo OPTIONAL,
- supportedCMSTypes [2] SEQUENCE OF AlgorithmIdentifier OPTIONAL,
- clientDHNonce [3] DHNonce OPTIONAL,
- ...,
- supportedKDFs [4] SEQUENCE OF KDFAlgorithmId OPTIONAL,
- ...
-}
-
-TD-TRUSTED-CERTIFIERS ::= ExternalPrincipalIdentifiers
-TD-INVALID-CERTIFICATES ::= ExternalPrincipalIdentifiers
-
-KRB5PrincipalName ::= SEQUENCE {
- realm [0] Realm,
- principalName [1] PrincipalName
-}
-
-AD-INITIAL-VERIFIED-CAS ::= SEQUENCE OF ExternalPrincipalIdentifier
-
-DHRepInfo ::= SEQUENCE {
- dhSignedData [0] IMPLICIT OCTET STRING,
- serverDHNonce [1] DHNonce OPTIONAL,
- ...,
- kdf [2] KDFAlgorithmId OPTIONAL,
- ...
-}
-
-PA-PK-AS-REP ::= CHOICE {
- dhInfo [0] DHRepInfo,
- encKeyPack [1] IMPLICIT OCTET STRING,
- ...
-}
-
-KDCDHKeyInfo ::= SEQUENCE {
- subjectPublicKey [0] BIT STRING,
- nonce [1] INTEGER (0..4294967295),
- dhKeyExpiration [2] KerberosTime OPTIONAL,
- ...
-}
-
-ReplyKeyPack ::= SEQUENCE {
- replyKey [0] EncryptionKey,
- asChecksum [1] Checksum,
- ...
-}
-
-TD-DH-PARAMETERS ::= SEQUENCE OF AlgorithmIdentifier
-
-
--- Windows compat glue --
-
-PKAuthenticator-Win2k ::= SEQUENCE {
- kdcName [0] PrincipalName,
- kdcRealm [1] Realm,
- cusec [2] INTEGER (0..4294967295),
- ctime [3] KerberosTime,
- nonce [4] INTEGER (-2147483648..2147483647)
-}
-
-AuthPack-Win2k ::= SEQUENCE {
- pkAuthenticator [0] PKAuthenticator-Win2k,
- clientPublicValue [1] SubjectPublicKeyInfo OPTIONAL
-}
-
-
-TrustedCA-Win2k ::= CHOICE {
- caName [1] heim_any,
- issuerAndSerial [2] IssuerAndSerialNumber
-}
-
-PA-PK-AS-REQ-Win2k ::= SEQUENCE {
- signed-auth-pack [0] IMPLICIT OCTET STRING,
- trusted-certifiers [2] SEQUENCE OF TrustedCA-Win2k OPTIONAL,
- kdc-cert [3] IMPLICIT OCTET STRING OPTIONAL,
- encryption-cert [4] IMPLICIT OCTET STRING OPTIONAL
-}
-
-PA-PK-AS-REP-Win2k ::= CHOICE {
- dhSignedData [0] IMPLICIT OCTET STRING,
- encKeyPack [1] IMPLICIT OCTET STRING
-}
-
-
-KDCDHKeyInfo-Win2k ::= SEQUENCE {
- nonce [0] INTEGER (-2147483648..2147483647),
- subjectPublicKey [2] BIT STRING
-}
-
-ReplyKeyPack-Win2k ::= SEQUENCE {
- replyKey [0] EncryptionKey,
- nonce [1] INTEGER (-2147483648..2147483647),
- ...
-}
-
-PkinitSuppPubInfo ::= SEQUENCE {
- enctype [0] INTEGER (-2147483648..2147483647),
- as-REQ [1] OCTET STRING,
- pk-as-rep [2] OCTET STRING,
- ticket [3] Ticket,
- ...
-}
-
-END
diff --git a/crypto/heimdal/lib/asn1/rfc2459.asn1 b/crypto/heimdal/lib/asn1/rfc2459.asn1
deleted file mode 100644
index 8e24f07..0000000
--- a/crypto/heimdal/lib/asn1/rfc2459.asn1
+++ /dev/null
@@ -1,506 +0,0 @@
--- $Id$ --
--- Definitions from rfc2459/rfc3280
-
-RFC2459 DEFINITIONS ::= BEGIN
-
-IMPORTS heim_any FROM heim;
-
-Version ::= INTEGER {
- rfc3280_version_1(0),
- rfc3280_version_2(1),
- rfc3280_version_3(2)
-}
-
-id-pkcs-1 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840)
- rsadsi(113549) pkcs(1) 1 }
-id-pkcs1-rsaEncryption OBJECT IDENTIFIER ::= { id-pkcs-1 1 }
-id-pkcs1-md2WithRSAEncryption OBJECT IDENTIFIER ::= { id-pkcs-1 2 }
-id-pkcs1-md5WithRSAEncryption OBJECT IDENTIFIER ::= { id-pkcs-1 4 }
-id-pkcs1-sha1WithRSAEncryption OBJECT IDENTIFIER ::= { id-pkcs-1 5 }
-id-pkcs1-sha256WithRSAEncryption OBJECT IDENTIFIER ::= { id-pkcs-1 11 }
-id-pkcs1-sha384WithRSAEncryption OBJECT IDENTIFIER ::= { id-pkcs-1 12 }
-id-pkcs1-sha512WithRSAEncryption OBJECT IDENTIFIER ::= { id-pkcs-1 13 }
-
-id-heim-rsa-pkcs1-x509 OBJECT IDENTIFIER ::= { 1 2 752 43 16 1 }
-
-id-pkcs-2 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840)
- rsadsi(113549) pkcs(1) 2 }
-id-pkcs2-md2 OBJECT IDENTIFIER ::= { id-pkcs-2 2 }
-id-pkcs2-md4 OBJECT IDENTIFIER ::= { id-pkcs-2 4 }
-id-pkcs2-md5 OBJECT IDENTIFIER ::= { id-pkcs-2 5 }
-
-id-rsa-digestAlgorithm OBJECT IDENTIFIER ::=
-{ iso(1) member-body(2) us(840) rsadsi(113549) 2 }
-
-id-rsa-digest-md2 OBJECT IDENTIFIER ::= { id-rsa-digestAlgorithm 2 }
-id-rsa-digest-md4 OBJECT IDENTIFIER ::= { id-rsa-digestAlgorithm 4 }
-id-rsa-digest-md5 OBJECT IDENTIFIER ::= { id-rsa-digestAlgorithm 5 }
-
-id-pkcs-3 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840)
- rsadsi(113549) pkcs(1) 3 }
-
-id-pkcs3-rc2-cbc OBJECT IDENTIFIER ::= { id-pkcs-3 2 }
-id-pkcs3-rc4 OBJECT IDENTIFIER ::= { id-pkcs-3 4 }
-id-pkcs3-des-ede3-cbc OBJECT IDENTIFIER ::= { id-pkcs-3 7 }
-
-id-rsadsi-encalg OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840)
- rsadsi(113549) 3 }
-
-id-rsadsi-rc2-cbc OBJECT IDENTIFIER ::= { id-rsadsi-encalg 2 }
-id-rsadsi-des-ede3-cbc OBJECT IDENTIFIER ::= { id-rsadsi-encalg 7 }
-
-id-secsig-sha-1 OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
- oiw(14) secsig(3) algorithm(2) 26 }
-
-id-nistAlgorithm OBJECT IDENTIFIER ::= {
- joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) 4 }
-
-id-nist-aes-algs OBJECT IDENTIFIER ::= { id-nistAlgorithm 1 }
-
-id-aes-128-cbc OBJECT IDENTIFIER ::= { id-nist-aes-algs 2 }
-id-aes-192-cbc OBJECT IDENTIFIER ::= { id-nist-aes-algs 22 }
-id-aes-256-cbc OBJECT IDENTIFIER ::= { id-nist-aes-algs 42 }
-
-id-nist-sha-algs OBJECT IDENTIFIER ::= { id-nistAlgorithm 2 }
-
-id-sha256 OBJECT IDENTIFIER ::= { id-nist-sha-algs 1 }
-id-sha224 OBJECT IDENTIFIER ::= { id-nist-sha-algs 4 }
-id-sha384 OBJECT IDENTIFIER ::= { id-nist-sha-algs 2 }
-id-sha512 OBJECT IDENTIFIER ::= { id-nist-sha-algs 3 }
-
-id-dhpublicnumber OBJECT IDENTIFIER ::= {
- iso(1) member-body(2) us(840) ansi-x942(10046)
- number-type(2) 1 }
-
-id-x9-57 OBJECT IDENTIFIER ::= {
- iso(1) member-body(2) us(840) ansi-x942(10046)
- 4 }
-
-id-dsa OBJECT IDENTIFIER ::= { id-x9-57 1 }
-id-dsa-with-sha1 OBJECT IDENTIFIER ::= { id-x9-57 3 }
-
--- x.520 names types
-
-id-x520-at OBJECT IDENTIFIER ::= { joint-iso-ccitt(2) ds(5) 4 }
-
-id-at-commonName OBJECT IDENTIFIER ::= { id-x520-at 3 }
-id-at-surname OBJECT IDENTIFIER ::= { id-x520-at 4 }
-id-at-serialNumber OBJECT IDENTIFIER ::= { id-x520-at 5 }
-id-at-countryName OBJECT IDENTIFIER ::= { id-x520-at 6 }
-id-at-localityName OBJECT IDENTIFIER ::= { id-x520-at 7 }
-id-at-stateOrProvinceName OBJECT IDENTIFIER ::= { id-x520-at 8 }
-id-at-streetAddress OBJECT IDENTIFIER ::= { id-x520-at 9 }
-id-at-organizationName OBJECT IDENTIFIER ::= { id-x520-at 10 }
-id-at-organizationalUnitName OBJECT IDENTIFIER ::= { id-x520-at 11 }
-id-at-name OBJECT IDENTIFIER ::= { id-x520-at 41 }
-id-at-givenName OBJECT IDENTIFIER ::= { id-x520-at 42 }
-id-at-initials OBJECT IDENTIFIER ::= { id-x520-at 43 }
-id-at-generationQualifier OBJECT IDENTIFIER ::= { id-x520-at 44 }
-id-at-pseudonym OBJECT IDENTIFIER ::= { id-x520-at 65 }
--- RFC 2247
-id-Userid OBJECT IDENTIFIER ::=
- { 0 9 2342 19200300 100 1 1 }
-id-domainComponent OBJECT IDENTIFIER ::=
- { 0 9 2342 19200300 100 1 25 }
-
-
--- rfc3280
-
-id-x509-ce OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) ds(5) 29}
-
-AlgorithmIdentifier ::= SEQUENCE {
- algorithm OBJECT IDENTIFIER,
- parameters heim_any OPTIONAL
-}
-
-AttributeType ::= OBJECT IDENTIFIER
-
-AttributeValue ::= heim_any
-
-TeletexStringx ::= [UNIVERSAL 20] IMPLICIT OCTET STRING
-
-DirectoryString ::= CHOICE {
- ia5String IA5String,
- teletexString TeletexStringx,
- printableString PrintableString,
- universalString UniversalString,
- utf8String UTF8String,
- bmpString BMPString
-}
-
-Attribute ::= SEQUENCE {
- type AttributeType,
- value SET OF -- AttributeValue -- heim_any
-}
-
-AttributeTypeAndValue ::= SEQUENCE {
- type AttributeType,
- value DirectoryString
-}
-
-RelativeDistinguishedName ::= SET OF AttributeTypeAndValue
-
-RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
-
-Name ::= CHOICE {
- rdnSequence RDNSequence
-}
-
-CertificateSerialNumber ::= INTEGER
-
-Time ::= CHOICE {
- utcTime UTCTime,
- generalTime GeneralizedTime
-}
-
-Validity ::= SEQUENCE {
- notBefore Time,
- notAfter Time
-}
-
-UniqueIdentifier ::= BIT STRING
-
-SubjectPublicKeyInfo ::= SEQUENCE {
- algorithm AlgorithmIdentifier,
- subjectPublicKey BIT STRING
-}
-
-Extension ::= SEQUENCE {
- extnID OBJECT IDENTIFIER,
- critical BOOLEAN OPTIONAL, -- DEFAULT FALSE XXX
- extnValue OCTET STRING
-}
-
-Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
-
-TBSCertificate ::= SEQUENCE {
- version [0] Version OPTIONAL, -- EXPLICIT nnn DEFAULT 1,
- serialNumber CertificateSerialNumber,
- signature AlgorithmIdentifier,
- issuer Name,
- validity Validity,
- subject Name,
- subjectPublicKeyInfo SubjectPublicKeyInfo,
- issuerUniqueID [1] IMPLICIT BIT STRING -- UniqueIdentifier -- OPTIONAL,
- -- If present, version shall be v2 or v3
- subjectUniqueID [2] IMPLICIT BIT STRING -- UniqueIdentifier -- OPTIONAL,
- -- If present, version shall be v2 or v3
- extensions [3] EXPLICIT Extensions OPTIONAL
- -- If present, version shall be v3
-}
-
-Certificate ::= SEQUENCE {
- tbsCertificate TBSCertificate,
- signatureAlgorithm AlgorithmIdentifier,
- signatureValue BIT STRING
-}
-
-Certificates ::= SEQUENCE OF Certificate
-
-ValidationParms ::= SEQUENCE {
- seed BIT STRING,
- pgenCounter INTEGER
-}
-
-DomainParameters ::= SEQUENCE {
- p INTEGER, -- odd prime, p=jq +1
- g INTEGER, -- generator, g
- q INTEGER, -- factor of p-1
- j INTEGER OPTIONAL, -- subgroup factor
- validationParms ValidationParms OPTIONAL -- ValidationParms
-}
-
-DHPublicKey ::= INTEGER
-
-OtherName ::= SEQUENCE {
- type-id OBJECT IDENTIFIER,
- value [0] EXPLICIT heim_any
-}
-
-GeneralName ::= CHOICE {
- otherName [0] IMPLICIT -- OtherName -- SEQUENCE {
- type-id OBJECT IDENTIFIER,
- value [0] EXPLICIT heim_any
- },
- rfc822Name [1] IMPLICIT IA5String,
- dNSName [2] IMPLICIT IA5String,
--- x400Address [3] IMPLICIT ORAddress,--
- directoryName [4] IMPLICIT -- Name -- CHOICE {
- rdnSequence RDNSequence
- },
--- ediPartyName [5] IMPLICIT EDIPartyName, --
- uniformResourceIdentifier [6] IMPLICIT IA5String,
- iPAddress [7] IMPLICIT OCTET STRING,
- registeredID [8] IMPLICIT OBJECT IDENTIFIER
-}
-
-GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
-
-id-x509-ce-keyUsage OBJECT IDENTIFIER ::= { id-x509-ce 15 }
-
-KeyUsage ::= BIT STRING {
- digitalSignature (0),
- nonRepudiation (1),
- keyEncipherment (2),
- dataEncipherment (3),
- keyAgreement (4),
- keyCertSign (5),
- cRLSign (6),
- encipherOnly (7),
- decipherOnly (8)
-}
-
-id-x509-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-x509-ce 35 }
-
-KeyIdentifier ::= OCTET STRING
-
-AuthorityKeyIdentifier ::= SEQUENCE {
- keyIdentifier [0] IMPLICIT OCTET STRING OPTIONAL,
- authorityCertIssuer [1] IMPLICIT -- GeneralName --
- SEQUENCE -- SIZE (1..MAX) -- OF GeneralName OPTIONAL,
- authorityCertSerialNumber [2] IMPLICIT INTEGER OPTIONAL
-}
-
-id-x509-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= { id-x509-ce 14 }
-
-SubjectKeyIdentifier ::= KeyIdentifier
-
-id-x509-ce-basicConstraints OBJECT IDENTIFIER ::= { id-x509-ce 19 }
-
-BasicConstraints ::= SEQUENCE {
- cA BOOLEAN OPTIONAL -- DEFAULT FALSE --,
- pathLenConstraint INTEGER (0..4294967295) OPTIONAL
-}
-
-id-x509-ce-nameConstraints OBJECT IDENTIFIER ::= { id-x509-ce 30 }
-
-BaseDistance ::= INTEGER -- (0..MAX) --
-
-GeneralSubtree ::= SEQUENCE {
- base GeneralName,
- minimum [0] IMPLICIT -- BaseDistance -- INTEGER OPTIONAL -- DEFAULT 0 --,
- maximum [1] IMPLICIT -- BaseDistance -- INTEGER OPTIONAL
-}
-
-GeneralSubtrees ::= SEQUENCE -- SIZE (1..MAX) -- OF GeneralSubtree
-
-NameConstraints ::= SEQUENCE {
- permittedSubtrees [0] IMPLICIT -- GeneralSubtrees -- SEQUENCE OF GeneralSubtree OPTIONAL,
- excludedSubtrees [1] IMPLICIT -- GeneralSubtrees -- SEQUENCE OF GeneralSubtree OPTIONAL
-}
-
-id-x509-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::= { id-x509-ce 16 }
-id-x509-ce-certificatePolicies OBJECT IDENTIFIER ::= { id-x509-ce 32 }
-id-x509-ce-policyMappings OBJECT IDENTIFIER ::= { id-x509-ce 33 }
-id-x509-ce-subjectAltName OBJECT IDENTIFIER ::= { id-x509-ce 17 }
-id-x509-ce-issuerAltName OBJECT IDENTIFIER ::= { id-x509-ce 18 }
-id-x509-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::= { id-x509-ce 9 }
-id-x509-ce-policyConstraints OBJECT IDENTIFIER ::= { id-x509-ce 36 }
-
-id-x509-ce-extKeyUsage OBJECT IDENTIFIER ::= { id-x509-ce 37}
-
-ExtKeyUsage ::= SEQUENCE OF OBJECT IDENTIFIER
-
-id-x509-ce-cRLDistributionPoints OBJECT IDENTIFIER ::= { id-x509-ce 31 }
-id-x509-ce-deltaCRLIndicator OBJECT IDENTIFIER ::= { id-x509-ce 27 }
-id-x509-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= { id-x509-ce 28 }
-id-x509-ce-holdInstructionCode OBJECT IDENTIFIER ::= { id-x509-ce 23 }
-id-x509-ce-invalidityDate OBJECT IDENTIFIER ::= { id-x509-ce 24 }
-id-x509-ce-certificateIssuer OBJECT IDENTIFIER ::= { id-x509-ce 29 }
-id-x509-ce-inhibitAnyPolicy OBJECT IDENTIFIER ::= { id-x509-ce 54 }
-
-DistributionPointReasonFlags ::= BIT STRING {
- unused (0),
- keyCompromise (1),
- cACompromise (2),
- affiliationChanged (3),
- superseded (4),
- cessationOfOperation (5),
- certificateHold (6),
- privilegeWithdrawn (7),
- aACompromise (8)
-}
-
-DistributionPointName ::= CHOICE {
- fullName [0] IMPLICIT -- GeneralNames -- SEQUENCE SIZE (1..MAX) OF GeneralName,
- nameRelativeToCRLIssuer [1] RelativeDistinguishedName
-}
-
-DistributionPoint ::= SEQUENCE {
- distributionPoint [0] IMPLICIT heim_any -- DistributionPointName -- OPTIONAL,
- reasons [1] IMPLICIT heim_any -- DistributionPointReasonFlags -- OPTIONAL,
- cRLIssuer [2] IMPLICIT heim_any -- GeneralNames -- OPTIONAL
-}
-
-CRLDistributionPoints ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint
-
-
--- rfc3279
-
-DSASigValue ::= SEQUENCE {
- r INTEGER,
- s INTEGER
-}
-
-DSAPublicKey ::= INTEGER
-
-DSAParams ::= SEQUENCE {
- p INTEGER,
- q INTEGER,
- g INTEGER
-}
-
--- really pkcs1
-
-RSAPublicKey ::= SEQUENCE {
- modulus INTEGER, -- n
- publicExponent INTEGER -- e
-}
-
-RSAPrivateKey ::= SEQUENCE {
- version INTEGER (0..4294967295),
- modulus INTEGER, -- n
- publicExponent INTEGER, -- e
- privateExponent INTEGER, -- d
- prime1 INTEGER, -- p
- prime2 INTEGER, -- q
- exponent1 INTEGER, -- d mod (p-1)
- exponent2 INTEGER, -- d mod (q-1)
- coefficient INTEGER -- (inverse of q) mod p
-}
-
-DigestInfo ::= SEQUENCE {
- digestAlgorithm AlgorithmIdentifier,
- digest OCTET STRING
-}
-
--- some ms ext
-
--- szOID_ENROLL_CERTTYPE_EXTENSION "1.3.6.1.4.1.311.20.2" is Encoded as a
-
--- UNICODESTRING (0x1E tag)
-
--- szOID_CERTIFICATE_TEMPLATE "1.3.6.1.4.1.311.21.7" is Encoded as:
-
--- TemplateVersion ::= INTEGER (0..4294967295)
-
--- CertificateTemplate ::= SEQUENCE {
--- templateID OBJECT IDENTIFIER,
--- templateMajorVersion TemplateVersion,
--- templateMinorVersion TemplateVersion OPTIONAL
--- }
-
-
---
--- CRL
---
-
-TBSCRLCertList ::= SEQUENCE {
- version Version OPTIONAL, -- if present, MUST be v2
- signature AlgorithmIdentifier,
- issuer Name,
- thisUpdate Time,
- nextUpdate Time OPTIONAL,
- revokedCertificates SEQUENCE OF SEQUENCE {
- userCertificate CertificateSerialNumber,
- revocationDate Time,
- crlEntryExtensions Extensions OPTIONAL
- -- if present, MUST be v2
- } OPTIONAL,
- crlExtensions [0] EXPLICIT Extensions OPTIONAL
- -- if present, MUST be v2
-}
-
-
-CRLCertificateList ::= SEQUENCE {
- tbsCertList TBSCRLCertList,
- signatureAlgorithm AlgorithmIdentifier,
- signatureValue BIT STRING
-}
-
-id-x509-ce-cRLNumber OBJECT IDENTIFIER ::= { id-x509-ce 20 }
-id-x509-ce-freshestCRL OBJECT IDENTIFIER ::= { id-x509-ce 46 }
-id-x509-ce-cRLReason OBJECT IDENTIFIER ::= { id-x509-ce 21 }
-
-CRLReason ::= ENUMERATED {
- unspecified (0),
- keyCompromise (1),
- cACompromise (2),
- affiliationChanged (3),
- superseded (4),
- cessationOfOperation (5),
- certificateHold (6),
- removeFromCRL (8),
- privilegeWithdrawn (9),
- aACompromise (10)
-}
-
-PKIXXmppAddr ::= UTF8String
-
-id-pkix OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
- dod(6) internet(1) security(5) mechanisms(5) pkix(7) }
-
-id-pkix-on OBJECT IDENTIFIER ::= { id-pkix 8 }
-id-pkix-on-xmppAddr OBJECT IDENTIFIER ::= { id-pkix-on 5 }
-id-pkix-on-dnsSRV OBJECT IDENTIFIER ::= { id-pkix-on 7 }
-
-id-pkix-kp OBJECT IDENTIFIER ::= { id-pkix 3 }
-id-pkix-kp-serverAuth OBJECT IDENTIFIER ::= { id-pkix-kp 1 }
-id-pkix-kp-clientAuth OBJECT IDENTIFIER ::= { id-pkix-kp 2 }
-id-pkix-kp-emailProtection OBJECT IDENTIFIER ::= { id-pkix-kp 4 }
-id-pkix-kp-timeStamping OBJECT IDENTIFIER ::= { id-pkix-kp 8 }
-id-pkix-kp-OCSPSigning OBJECT IDENTIFIER ::= { id-pkix-kp 9 }
-
-id-pkix-pe OBJECT IDENTIFIER ::= { id-pkix 1 }
-
-id-pkix-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pkix-pe 1 }
-
-AccessDescription ::= SEQUENCE {
- accessMethod OBJECT IDENTIFIER,
- accessLocation GeneralName
-}
-
-AuthorityInfoAccessSyntax ::= SEQUENCE SIZE (1..MAX) OF AccessDescription
-
--- RFC 3820 Proxy Certificate Profile
-
-id-pkix-pe-proxyCertInfo OBJECT IDENTIFIER ::= { id-pkix-pe 14 }
-
-id-pkix-ppl OBJECT IDENTIFIER ::= { id-pkix 21 }
-
-id-pkix-ppl-anyLanguage OBJECT IDENTIFIER ::= { id-pkix-ppl 0 }
-id-pkix-ppl-inheritAll OBJECT IDENTIFIER ::= { id-pkix-ppl 1 }
-id-pkix-ppl-independent OBJECT IDENTIFIER ::= { id-pkix-ppl 2 }
-
-ProxyPolicy ::= SEQUENCE {
- policyLanguage OBJECT IDENTIFIER,
- policy OCTET STRING OPTIONAL
-}
-
-ProxyCertInfo ::= SEQUENCE {
- pCPathLenConstraint INTEGER (0..4294967295) OPTIONAL, -- really MAX
- proxyPolicy ProxyPolicy
-}
-
---- U.S. Federal PKI Common Policy Framework
--- Card Authentication key
-id-uspkicommon-card-id OBJECT IDENTIFIER ::= { 2 16 840 1 101 3 6 6 }
-id-uspkicommon-piv-interim OBJECT IDENTIFIER ::= { 2 16 840 1 101 3 6 9 1 }
-
---- Netscape extentions
-
-id-netscape OBJECT IDENTIFIER ::=
- { joint-iso-itu-t(2) country(16) us(840) organization(1) netscape(113730) }
-id-netscape-cert-comment OBJECT IDENTIFIER ::= { id-netscape 1 13 }
-
---- MS extentions
-
-id-ms-cert-enroll-domaincontroller OBJECT IDENTIFIER ::=
- { 1 3 6 1 4 1 311 20 2 }
-
-id-ms-client-authentication OBJECT IDENTIFIER ::=
- { 1 3 6 1 5 5 7 3 2 }
-
--- DER:1e:20:00:44:00:6f:00:6d:00:61:00:69:00:6e:00:43:00:6f:00:6e:00:74:00:72:00:6f:00:6c:00:6c:00:65:00:72
-
-END
diff --git a/crypto/heimdal/lib/asn1/setchgpw2.asn1 b/crypto/heimdal/lib/asn1/setchgpw2.asn1
deleted file mode 100644
index 7db3854..0000000
--- a/crypto/heimdal/lib/asn1/setchgpw2.asn1
+++ /dev/null
@@ -1,193 +0,0 @@
--- $Id: setchgpw2.asn1 18010 2006-09-05 12:31:59Z lha $
-
-SETCHGPW2 DEFINITIONS ::=
-BEGIN
-
-IMPORTS PrincipalName, Realm, ENCTYPE FROM krb5;
-
-ProtocolErrorCode ::= ENUMERATED {
- generic-error(0),
- unsupported-major-version(1),
- unsupported-minor-version(2),
- unsupported-operation(3),
- authorization-failed(4),
- initial-ticket-required(5),
- target-principal-unknown(6),
- ...
-}
-
-Key ::= SEQUENCE {
- enc-type[0] INTEGER,
- key[1] OCTET STRING,
- ...
-}
-
-Language-Tag ::= UTF8String -- Constrained by RFC3066
-
-LangTaggedText ::= SEQUENCE {
- language[0] Language-Tag OPTIONAL,
- text[1] UTF8String,
- ...
-}
-
--- NULL Op
-
-Req-null ::= NULL
-Rep-null ::= NULL
-Err-null ::= NULL
-
--- Change password
-Req-change-pw ::= SEQUENCE {
- old-pw[0] UTF8String,
- new-pw[1] UTF8String OPTIONAL,
- etypes[2] SEQUENCE OF ENCTYPE OPTIONAL,
- ...
-}
-
-Rep-change-pw ::= SEQUENCE {
- info-text[0] UTF8String OPTIONAL,
- new-pw[1] UTF8String OPTIONAL,
- etypes[2] SEQUENCE OF ENCTYPE OPTIONAL
-}
-
-Err-change-pw ::= SEQUENCE {
- help-text[0] UTF8String OPTIONAL,
- code[1] ENUMERATED {
- generic(0),
- wont-generate-new-pw(1),
- old-pw-incorrect(2),
- new-pw-rejected-geneneric(3),
- pw-change-too-short(4),
- ...
- },
- suggested-new-pw[2] UTF8String OPTIONAL,
- ...
-}
-
--- Change/Set keys
-Req-set-keys ::= SEQUENCE {
- etypes[0] SEQUENCE OF ENCTYPE,
- entropy[1] OCTET STRING,
- ...
-}
-
-Rep-set-keys ::= SEQUENCE {
- info-text[0] UTF8String OPTIONAL,
- kvno[1] INTEGER,
- keys[2] SEQUENCE OF Key,
- aliases[3] SEQUENCE OF SEQUENCE {
- name[0] PrincipalName,
- realm[1] Realm OPTIONAL,
- ...
- },
- ...
-}
-
-Err-set-keys ::= SEQUENCE {
- help-text[0] UTF8String OPTIONAL,
- enctypes[1] SEQUENCE OF ENCTYPE OPTIONAL,
- code[1] ENUMERATED {
- etype-no-support(0),
- ...
- },
- ...
-}
-
--- Get password policy
-Req-get-pw-policy ::= NULL
-
-Rep-get-pw-policy ::= SEQUENCE {
- help-text[0] UTF8String OPTIONAL,
- policy-name[1] UTF8String OPTIONAL,
- description[2] UTF8String OPTIONAL,
- ...
-}
-
-Err-get-pw-policy ::= NULL
-
--- Get principal aliases
-Req-get-princ-aliases ::= NULL
-
-Rep-get-princ-aliases ::= SEQUENCE {
- help-text[0] UTF8String OPTIONAL,
- aliases[1] SEQUENCE OF SEQUENCE {
- name[0] PrincipalName,
- realm[1] Realm OPTIONAL,
- ...
- } OPTIONAL,
- ...
-}
-
-Err-get-princ-aliases ::= NULL
-
--- Get list of encryption types supported by KDC for new types
-Req-get-supported-etypes ::= NULL
-
-Rep-get-supported-etypes ::= SEQUENCE OF ENCTYPE
-
-Err-get-supported-etypes ::= NULL
-
--- Choice switch
-
-Op-req ::= CHOICE {
- null[0] Req-null,
- change-pw[1] Req-change-pw,
- set-keys[2] Req-set-keys,
- get-pw-policy[3] Req-get-pw-policy,
- get-princ-aliases[4] Req-get-princ-aliases,
- get-supported-etypes[5] Req-get-supported-etypes,
- ...
-}
-
-Op-rep ::= CHOICE {
- null[0] Rep-null,
- change-pw[1] Rep-change-pw,
- set-keys[2] Rep-set-keys,
- get-pw-policy[3] Rep-get-pw-policy,
- get-princ-aliases[4] Rep-get-princ-aliases,
- get-supported-etypes[5] Rep-get-supported-etypes,
- ...
-}
-
-Op-error ::= CHOICE {
- null[0] Err-null,
- change-pw[1] Err-change-pw,
- set-keys[2] Err-set-keys,
- get-pw-policy[3] Err-get-pw-policy,
- get-princ-aliases[4] Err-get-princ-aliases,
- get-supported-etypes[5] Err-get-supported-etypes,
- ...
-}
-
-
-Request ::= [ APPLICATION 0 ] SEQUENCE {
- pvno-major[0] INTEGER DEFAULT 2,
- pvno-minor[1] INTEGER DEFAULT 0,
- languages[2] SEQUENCE OF Language-Tag OPTIONAL,
- targ-name[3] PrincipalName OPTIONAL,
- targ-realm[4] Realm OPTIONAL,
- operation[5] Op-Req,
- ...
-}
-
-Response ::= [ APPLICATION 1 ] SEQUENCE {
- pvno-major[0] INTEGER DEFAULT 2,
- pvno-minor[1] INTEGER DEFAULT 0,
- language[2] Language-Tag DEFAULT "i-default",
- result[3] Op-rep OPTIONAL,
- ...
-}
-
-Error-Response ::= [ APPLICATION 2 ] SEQUENCE {
- pvno-major[0] INTEGER DEFAULT 2,
- pvno-minor[1] INTEGER DEFAULT 0,
- language[2] Language-Tag DEFAULT "i-default",
- error-code[3] ProtocolErrorCode,
- help-text[4] UTF8String OPTIONAL,
- op-error[5] Op-error OP-ERROR,
- ...
-}
-
-END
-
--- etags -r '/\([A-Za-z][-A-Za-z0-9]*\).*::=/\1/' setchgpw2.asn1
diff --git a/crypto/heimdal/lib/asn1/symbol.c b/crypto/heimdal/lib/asn1/symbol.c
deleted file mode 100644
index 9407915..0000000
--- a/crypto/heimdal/lib/asn1/symbol.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 1997 - 2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "gen_locl.h"
-#include "lex.h"
-
-RCSID("$Id: symbol.c 15617 2005-07-12 06:27:42Z lha $");
-
-static Hashtab *htab;
-
-static int
-cmp(void *a, void *b)
-{
- Symbol *s1 = (Symbol *) a;
- Symbol *s2 = (Symbol *) b;
-
- return strcmp(s1->name, s2->name);
-}
-
-static unsigned
-hash(void *a)
-{
- Symbol *s = (Symbol *) a;
-
- return hashjpw(s->name);
-}
-
-void
-initsym(void)
-{
- htab = hashtabnew(101, cmp, hash);
-}
-
-
-void
-output_name(char *s)
-{
- char *p;
-
- for (p = s; *p; ++p)
- if (*p == '-')
- *p = '_';
-}
-
-Symbol *
-addsym(char *name)
-{
- Symbol key, *s;
-
- key.name = name;
- s = (Symbol *) hashtabsearch(htab, (void *) &key);
- if (s == NULL) {
- s = (Symbol *) emalloc(sizeof(*s));
- s->name = name;
- s->gen_name = estrdup(name);
- output_name(s->gen_name);
- s->stype = SUndefined;
- hashtabadd(htab, s);
- }
- return s;
-}
-
-static int
-checkfunc(void *ptr, void *arg)
-{
- Symbol *s = ptr;
- if (s->stype == SUndefined) {
- error_message("%s is still undefined\n", s->name);
- *(int *) arg = 1;
- }
- return 0;
-}
-
-int
-checkundefined(void)
-{
- int f = 0;
- hashtabforeach(htab, checkfunc, &f);
- return f;
-}
diff --git a/crypto/heimdal/lib/asn1/symbol.h b/crypto/heimdal/lib/asn1/symbol.h
deleted file mode 100644
index d07caf5..0000000
--- a/crypto/heimdal/lib/asn1/symbol.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright (c) 1997 - 2005 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-/* $Id: symbol.h 19539 2006-12-28 17:15:05Z lha $ */
-
-#ifndef _SYMBOL_H
-#define _SYMBOL_H
-
-#include "asn1_queue.h"
-
-enum typetype {
- TBitString,
- TBoolean,
- TChoice,
- TEnumerated,
- TGeneralString,
- TGeneralizedTime,
- TIA5String,
- TInteger,
- TNull,
- TOID,
- TOctetString,
- TPrintableString,
- TSequence,
- TSequenceOf,
- TSet,
- TSetOf,
- TTag,
- TType,
- TUTCTime,
- TUTF8String,
- TBMPString,
- TUniversalString,
- TVisibleString
-};
-
-typedef enum typetype Typetype;
-
-struct type;
-
-struct value {
- enum { booleanvalue,
- nullvalue,
- integervalue,
- stringvalue,
- objectidentifiervalue
- } type;
- union {
- int booleanvalue;
- int integervalue;
- char *stringvalue;
- struct objid *objectidentifiervalue;
- } u;
-};
-
-struct member {
- char *name;
- char *gen_name;
- char *label;
- int val;
- int optional;
- int ellipsis;
- struct type *type;
- ASN1_TAILQ_ENTRY(member) members;
- struct value *defval;
-};
-
-typedef struct member Member;
-
-ASN1_TAILQ_HEAD(memhead, member);
-
-struct symbol;
-
-struct tagtype {
- int tagclass;
- int tagvalue;
- enum { TE_IMPLICIT, TE_EXPLICIT } tagenv;
-};
-
-struct range {
- int min;
- int max;
-};
-
-enum ctype { CT_CONTENTS, CT_USER } ;
-
-struct constraint_spec;
-
-struct type {
- Typetype type;
- struct memhead *members;
- struct symbol *symbol;
- struct type *subtype;
- struct tagtype tag;
- struct range *range;
- struct constraint_spec *constraint;
-};
-
-typedef struct type Type;
-
-struct constraint_spec {
- enum ctype ctype;
- union {
- struct {
- Type *type;
- struct value *encoding;
- } content;
- } u;
-};
-
-struct objid {
- const char *label;
- int value;
- struct objid *next;
-};
-
-struct symbol {
- char *name;
- char *gen_name;
- enum { SUndefined, SValue, Stype } stype;
- struct value *value;
- Type *type;
-};
-
-typedef struct symbol Symbol;
-
-void initsym (void);
-Symbol *addsym (char *);
-void output_name (char *);
-int checkundefined(void);
-#endif
diff --git a/crypto/heimdal/lib/asn1/test.asn1 b/crypto/heimdal/lib/asn1/test.asn1
deleted file mode 100644
index b2f58a2..0000000
--- a/crypto/heimdal/lib/asn1/test.asn1
+++ /dev/null
@@ -1,95 +0,0 @@
--- $Id: test.asn1 21455 2007-07-10 12:51:19Z lha $ --
-
-TEST DEFINITIONS ::=
-
-BEGIN
-
-IMPORTS heim_any FROM heim;
-
-TESTLargeTag ::= SEQUENCE {
- foo[127] INTEGER (-2147483648..2147483647)
-}
-
-TESTSeq ::= SEQUENCE {
- tag0[0] INTEGER (-2147483648..2147483647),
- tag1[1] TESTLargeTag,
- tagless INTEGER (-2147483648..2147483647),
- tag3[2] INTEGER (-2147483648..2147483647)
-}
-
-TESTChoice1 ::= CHOICE {
- i1[1] INTEGER (-2147483648..2147483647),
- i2[2] INTEGER (-2147483648..2147483647),
- ...
-}
-
-TESTChoice2 ::= CHOICE {
- i1[1] INTEGER (-2147483648..2147483647),
- ...
-}
-
-TESTInteger ::= INTEGER (-2147483648..2147483647)
-
-TESTInteger2 ::= [4] IMPLICIT TESTInteger
-TESTInteger3 ::= [5] IMPLICIT TESTInteger2
-
-TESTImplicit ::= SEQUENCE {
- ti1[0] IMPLICIT INTEGER (-2147483648..2147483647),
- ti2[1] IMPLICIT SEQUENCE {
- foo[127] INTEGER (-2147483648..2147483647)
- },
- ti3[2] IMPLICIT [5] IMPLICIT [4] IMPLICIT INTEGER (-2147483648..2147483647)
-}
-
-TESTImplicit2 ::= SEQUENCE {
- ti1[0] IMPLICIT TESTInteger,
- ti2[1] IMPLICIT TESTLargeTag,
- ti3[2] IMPLICIT TESTInteger3
-}
-
-TESTAllocInner ::= SEQUENCE {
- ai[0] TESTInteger
-}
-
-TESTAlloc ::= SEQUENCE {
- tagless TESTAllocInner OPTIONAL,
- three [1] INTEGER (-2147483648..2147483647),
- tagless2 heim_any OPTIONAL
-}
-
-
-TESTCONTAINING ::= OCTET STRING ( CONTAINING INTEGER )
-TESTENCODEDBY ::= OCTET STRING ( ENCODED BY
- { joint-iso-itu-t(2) asn(1) ber-derived(2) distinguished-encoding(1) }
-)
-
-TESTDer OBJECT IDENTIFIER ::= {
- joint-iso-itu-t(2) asn(1) ber-derived(2) distinguished-encoding(1)
-}
-
-TESTCONTAININGENCODEDBY ::= OCTET STRING ( CONTAINING INTEGER ENCODED BY
- { joint-iso-itu-t(2) asn(1) ber-derived(2) distinguished-encoding(1) }
-)
-
-TESTCONTAININGENCODEDBY2 ::= OCTET STRING (
- CONTAINING INTEGER ENCODED BY TESTDer
-)
-
-
-TESTValue1 INTEGER ::= 1
-
-TESTUSERCONSTRAINED ::= OCTET STRING (CONSTRAINED BY { -- meh -- })
--- TESTUSERCONSTRAINED2 ::= OCTET STRING (CONSTRAINED BY { TESTInteger })
--- TESTUSERCONSTRAINED3 ::= OCTET STRING (CONSTRAINED BY { INTEGER })
--- TESTUSERCONSTRAINED4 ::= OCTET STRING (CONSTRAINED BY { INTEGER : 1 })
-
-TESTSeqOf ::= SEQUENCE OF TESTInteger
-
-TESTSeqSizeOf1 ::= SEQUENCE SIZE (2) OF TESTInteger
-TESTSeqSizeOf2 ::= SEQUENCE SIZE (1..2) OF TESTInteger
-TESTSeqSizeOf3 ::= SEQUENCE SIZE (1..MAX) OF TESTInteger
-TESTSeqSizeOf4 ::= SEQUENCE SIZE (MIN..2) OF TESTInteger
-
-TESTOSSize1 ::= OCTET STRING SIZE (1..2)
-
-END
diff --git a/crypto/heimdal/lib/asn1/test.gen b/crypto/heimdal/lib/asn1/test.gen
deleted file mode 100644
index d0fc7d9..0000000
--- a/crypto/heimdal/lib/asn1/test.gen
+++ /dev/null
@@ -1,14 +0,0 @@
-# $Id: test.gen 15617 2005-07-12 06:27:42Z lha $
-# Sample for TESTSeq in test.asn1
-#
-
-UNIV CONS Sequence 23
- CONTEXT CONS 0 3
- UNIV PRIM Integer 1 01
- CONTEXT CONS 1 8
- UNIV CONS Sequence 6
- CONTEXT CONS 127 3
- UNIV PRIM Integer 1 01
- UNIV PRIM Integer 1 01
- CONTEXT CONS 2 3
- UNIV PRIM Integer 1 01
diff --git a/crypto/heimdal/lib/asn1/timegm.c b/crypto/heimdal/lib/asn1/timegm.c
deleted file mode 100644
index 33b9684..0000000
--- a/crypto/heimdal/lib/asn1/timegm.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 1997 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. 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.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "der_locl.h"
-
-RCSID("$Id: timegm.c 21366 2007-06-27 10:06:22Z lha $");
-
-static int
-is_leap(unsigned y)
-{
- y += 1900;
- return (y % 4) == 0 && ((y % 100) != 0 || (y % 400) == 0);
-}
-
-/*
- * This is a simplifed version of timegm(3) that doesn't accept out of
- * bound values that timegm(3) normally accepts but those are not
- * valid in asn1 encodings.
- */
-
-time_t
-_der_timegm (struct tm *tm)
-{
- static const unsigned ndays[2][12] ={
- {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
- {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};
- time_t res = 0;
- unsigned i;
-
- if (tm->tm_year < 0)
- return -1;
- if (tm->tm_mon < 0 || tm->tm_mon > 11)
- return -1;
- if (tm->tm_mday < 1 || tm->tm_mday > ndays[is_leap(tm->tm_year)][tm->tm_mon])
- return -1;
- if (tm->tm_hour < 0 || tm->tm_hour > 23)
- return -1;
- if (tm->tm_min < 0 || tm->tm_min > 59)
- return -1;
- if (tm->tm_sec < 0 || tm->tm_sec > 59)
- return -1;
-
- for (i = 70; i < tm->tm_year; ++i)
- res += is_leap(i) ? 366 : 365;
-
- for (i = 0; i < tm->tm_mon; ++i)
- res += ndays[is_leap(tm->tm_year)][i];
- res += tm->tm_mday - 1;
- res *= 24;
- res += tm->tm_hour;
- res *= 60;
- res += tm->tm_min;
- res *= 60;
- res += tm->tm_sec;
- return res;
-}
diff --git a/crypto/heimdal/lib/asn1/x509.asn1 b/crypto/heimdal/lib/asn1/x509.asn1
deleted file mode 100644
index 4a15844..0000000
--- a/crypto/heimdal/lib/asn1/x509.asn1
+++ /dev/null
@@ -1,23 +0,0 @@
-X509 DEFINITIONS ::= BEGIN
-
-CertificateSerialNumber ::= INTEGER -- X.509 '97
-
-AttributeType ::= OBJECT-IDENTIFIER
-
-AttributeValue ::= OCTET STRING --ANY DEFINED BY AttributeType
-
-AttributeTypeAndValue ::= SEQUENCE {
- type AttributeType,
- value AttributeValue
-}
-
-RelativeDistinguishedName ::= --SET
-SEQUENCE OF AttributeTypeAndValue
-
-RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
-
-Name ::= CHOICE { -- RFC2459
- x RDNSequence
-}
-
-END \ No newline at end of file
OpenPOWER on IntegriCloud