windows-nt/Source/XPSP1/NT/ds/security/cryptoapi/pki/pfxlib/pfxpkcs.asn

175 lines
4.9 KiB
Plaintext
Raw Normal View History

2020-09-26 03:20:57 -05:00
--#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