--#comment "Copyright (C) Microsoft Corporation, 1996-1999. All rights reserved."-- --#comment "ASN.1 definitions for PFXPKCS"-- --#SS.basic lenptr-- -- set of and sequence of w/o size constraint --#SS.sized lenptr-- -- set of and sequence of w/ size constraint --#oid array-- -- object identifier is 16-node fixed array PFXPKCS DEFINITIONS IMPLICIT TAGS ::= BEGIN ObjectID ::= OBJECT IDENTIFIER --#oid array-- ObjID ::= ObjectID Any ::= ANY ObjectIdentifierType ::= ObjectID --#public-- OctetStringType ::= OCTET STRING --#public-- IntegerType ::= INTEGER --#intx-- --#public-- HugeInteger ::= INTEGER --#intx-- (0..MAX) ------------------------------------------------------------------------------ -- from PKCS #1 RSAPublicKey ::= SEQUENCE { modulus HugeInteger, -- n publicExponent HugeInteger } --#public-- -- e RSAPrivateKey ::= SEQUENCE { version Version, modulus HugeInteger, -- n publicExponent INTEGER, -- e privateExponent HugeInteger, -- d prime1 HugeInteger, -- p prime2 HugeInteger, -- q exponent1 HugeInteger, -- d mod (p-1) exponent2 HugeInteger, -- d mod (q-1) coefficient HugeInteger } --#public-- -- (inverse of q) mod p ------------------------------------------------------------------------------ -- from PKCS #8 PrivateKeyInfo ::= SEQUENCE { version Version, privateKeyAlgorithm PrivateKeyAlgorithmIdentifier, privateKey PrivateKey, attributes [0] IMPLICIT Attributes OPTIONAL } --#public-- Version ::= INTEGER PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier PrivateKey ::= OCTET STRING EncryptedPrivateKeyInfo ::= SEQUENCE { encryptionAlgorithm EncryptionAlgorithmIdentifier, encryptedData EncryptedData } --#public-- EncryptionAlgorithmIdentifier ::= AlgorithmIdentifier EncryptedData ::= SEQUENCE { version Version, encryptedContentInfo EncryptedContentInfo } --#public-- EncryptedContentInfo ::= SEQUENCE { contentType ContentType, contentEncryptionAlg ContentEncryptionAlgorithmIdentifier, encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL } ContentEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier EncryptedContent ::= OCTET STRING ------------------------------------------------------------------------------ AlgorithmIdentifier ::= SEQUENCE { algorithm ObjectID, parameters ANY OPTIONAL } PBEParameter ::= SEQUENCE { salt OCTET STRING, iterationCount INTEGER } --#public-- DigestInfo ::= SEQUENCE { digestAlgorithm DigestAlgorithmIdentifier, digest Digest } --#public-- DigestAlgorithmIdentifier ::= AlgorithmIdentifier Digest ::= OCTET STRING -- attributes, hacked from X.509 AttributeSetValue ::= SET --#public-- OF ANY Attribute ::= SEQUENCE { -- hacked from X.509 attributeType ObjectID, attributeValue AttributeSetValue } Attributes ::= SET --#public-- OF Attribute -- hacked from X.509 ------------------------------- -- from PKCS #7 ContentType ::= ObjectID ContentInfo ::= SEQUENCE { contentType ContentType, content [0] EXPLICIT ANY OPTIONAL } ------------------------------------------------------------------------------ PFX ::= SEQUENCE { version Version (3), authSafes ContentInfo, -- signedData in public-key integrity mode, and -- data in password integrity mode. See PKCS #7 macData MacData OPTIONAL -- present only in password integrity mode } --#public-- MacData ::= SEQUENCE { safeMac DigestInfo, -- see PKCS #7 macSalt OCTET STRING, macIterationCount INTEGER DEFAULT 1 } --#public-- AuthenticatedSafes ::= SEQUENCE --#public-- OF ContentInfo -- data if unencrypted -- encryptedData if password encrypted -- envelopedData if public key encrypted SafeContents ::= SEQUENCE --#public-- OF SafeBag SafeBag ::= SEQUENCE { safeBagType ObjectID, safeBagContent [0] EXPLICIT ANY DEFINED BY safeBagType, safeBagAttribs Attributes OPTIONAL } --#public-- CertBag ::= SEQUENCE { certType ObjectID, value [0] EXPLICIT ANY DEFINED BY certType } --#public-- X509Cert ::= OCTET STRING SDSICert ::= IA5String CRLBag ::= SEQUENCE { crlType ObjectID, value [0] EXPLICIT ANY DEFINED BY crlType } --#public-- X509CRL ::= OCTET STRING KeyBag ::= PrivateKeyInfo -- see PKCS #8 Pkcs-8ShroudedKeyBag ::= EncryptedPrivateKeyInfo -- see PKCS #8 SecretBag ::= SEQUENCE { secretType ObjectID, secretContent [0] EXPLICIT ANY DEFINED BY secretType } --#public-- END