Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

201 lines
5.1 KiB

--#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