--#comment "Copyright (C) Microsoft Corporation, 1996-1999. All rights reserved."-- --#comment "ASN.1 definitions for PFXNSCP"-- --#oid array-- -- object identifier is 16-node fixed array --#SS.basic lenptr-- -- set of and sequence of w/o size constraint --#SS.sized lenptr-- -- set of and sequence of w/ size constraint PFXNSCP DEFINITIONS IMPLICIT TAGS ::= BEGIN ------------------------------- -- shorthand ObjectID ::= OBJECT IDENTIFIER --#oid array-- ObjID ::= OBJECT IDENTIFIER Version ::= INTEGER {v1 (1)} ------------------------------- -- from PKCS #7 ContentType ::= ObjectID ContentInfo ::= SEQUENCE { contentType ContentType, content [0] EXPLICIT ANY OPTIONAL } RSAData ::= OCTET STRING --#public-- ------------------------------- -- from PKCS #8 PrivateKeyInfo ::= SEQUENCE { version Version, privateKeyAlgorithm PrivateKeyAlgorithmIdentifier, privateKey OCTET STRING, attributes [0] IMPLICIT Attributes OPTIONAL } --#public-- PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier Attributes ::= SET --#public-- OF Attribute Attribute ::= ANY 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 ------------------------------- -- other pkcs AlgorithmIdentifier ::= SEQUENCE { algorithm ObjectID, parameters ANY DEFINED BY algorithm OPTIONAL } PBEParameter ::= SEQUENCE { salt OCTET STRING (SIZE(8)), iterationCount INTEGER } --#public-- DigestInfo ::= SEQUENCE { digestAlgorithm DigestAlgorithmIdentifier, digest Digest } DigestAlgorithmIdentifier ::= AlgorithmIdentifier Digest ::= OCTET STRING ------------------------------- -- imports rsa1 ObjID ::= { iso(1) member-body(2) us(840) rsadsi(113549) } pkcs-12 ObjID ::= { rsa1 pkcs(1) 12 } ------------------------------- -- defines TransportMode ::= ObjID pkcs-12ModeIds ObjID ::= { pkcs-12 1 } off-lineTransportMode ObjID ::= { pkcs-12ModeIds 1 } PFX ::= SEQUENCE { macData [0] MacData OPTIONAL, authSafe [1] ContentInfo -- signedData in public-key integrity mode, and -- data in password integrity mode. } --#public-- MacData ::= SEQUENCE { safeMAC DigestInfo, macSalt BIT STRING } AuthenticatedSafe ::= SEQUENCE { version Version DEFAULT v1, transportMode TransportMode DEFAULT off-lineTransportMode, privacySalt BIT STRING OPTIONAL, baggage Baggage OPTIONAL, -- Not subject to -- PFX encryption safe ContentInfo -- contentType is encryptedData in pwd privacy mode -- and envelopedData in pub key privacy mode } --#public-- Baggage ::= SET OF BaggageItem BaggageItem ::= SEQUENCE { espvks SET OF ESPVK, unencryptedSecrets SET OF SafeBag } ESPVK ::= SEQUENCE { espvkObjID ObjID, espvkData PVKSupportingData, espvkCipherText [0] EXPLICIT ANY DEFINED BY espvkObjID } --#public-- PVKSupportingData ::= SEQUENCE { assocCerts SET OF Thumbprint, -- zero or more regenerable BOOLEAN DEFAULT FALSE, nickname BMPString, -- unicode pvkAdditional PvkAdditional OPTIONAL } --#public-- Thumbprint ::= DigestInfo PvkAdditional ::= SEQUENCE { pvkAdditionalType ObjID, pvkAdditionalContent [0] EXPLICIT ANY DEFINED BY pvkAdditionalType } --#public-- SafeContents ::= SET --#public-- OF SafeBag SafeBag ::= SEQUENCE { safeBagType ObjID, safeBagContent ANY DEFINED BY safeBagType, safeBagName BMPString OPTIONAL } --#public-- KeyBag ::= SET OF PrivateKey PrivateKey ::= SEQUENCE { pvkData PVKSupportingData, pkcs8data PrivateKeyInfo -- import from PKCS #8 } --#public-- CertCRLBag ::= SET --#public-- OF CertCRL CertCRL ::= SEQUENCE { bagId ObjID, value [0] EXPLICIT ANY DEFINED BY bagId } --#public-- X509Bag ::= SEQUENCE { certOrCRL ContentInfo } --#public-- SDSICertBag ::= SEQUENCE { value IA5String } --#public-- SecretBag ::= SET OF Secret Secret ::= SEQUENCE { secretName BMPString, -- unicode secretType ObjID, -- ADDED MATTT, won't compile as spec 0.020 reads value ANY DEFINED BY secretType, secretAdditional SecretAdditional OPTIONAL } --#public-- SecretAdditional ::= SEQUENCE { secretAdditionalType ObjID, secretAdditionalContent [0] EXPLICIT ANY DEFINED BY secretAdditionalType } --#public-- END