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.
 
 
 
 
 
 

95 lines
3.5 KiB

----------------------------------------------------------------------------
-- X509.ASN
--
-- ASN.1 definitions for X509 v3 certificates
----------------------------------------------------------------------------
--#comment "Copyright (C) Microsoft Corporation, 1996-1999. All rights reserved."--
--#comment "ASN.1 definitions for X509 v3 certificates"--
--#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
X509
DEFINITIONS EXPLICIT TAGS ::=
BEGIN
HUGEINTEGER ::= INTEGER --#intx-- -- tag 0x02
BITSTRING ::= BIT STRING --#lenptr-- --#nomemcpy-- -- tag 0x03
OCTETSTRING ::= OCTET STRING --#lenptr-- --#nomemcpy-- -- tag 0x04
NOCOPYANY ::= ANY --#nomemcpy--
NUMERICSTRING ::= NumericString --#lenptr-- -- tag 0x12 (18)
PRINTABLESTRING ::= PrintableString --#lenptr-- -- tag 0x13 (19)
TELETEXSTRING ::= TeletexString --#lenptr-- -- tag 0x14 (20)
T61STRING ::= T61String --#lenptr-- -- tag 0x14 (20)
VIDEOTEXSTRING ::= VideotexString --#lenptr-- -- tag 0x15 (21)
IA5STRING ::= IA5String --#lenptr-- -- tag 0x16 (22)
GRAPHICSTRING ::= GraphicString --#lenptr-- -- tag 0x19 (25)
VISIBLESTRING ::= VisibleString --#lenptr-- -- tag 0x1A (26)
ISO646STRING ::= ISO646String --#lenptr-- -- tag 0x1A (26)
GENERALSTRING ::= GeneralString --#lenptr-- -- tag 0x1B (27)
UNIVERSALSTRING ::= UniversalString --#lenptr-- -- tag 0x1C (28)
BMPSTRING ::= BMPString --#lenptr-- -- tag 0x1E (30)
ObjectID ::= OBJECT IDENTIFIER --#oid array--
--------------------------------------------
-- Algorithm Identifier
--------------------------------------------
AlgorithmIdentifier ::= SEQUENCE {
algorithm ObjectID,
parameters NOCOPYANY OPTIONAL
}
--------------------------------------------
-- Attributes
--------------------------------------------
Attribute ::= SEQUENCE {
type ObjectID,
values AttributeSetValue
} --#public--
AttributeSetValue ::= SET OF NOCOPYANY
Attributes ::= SET OF Attribute
--------------------------------------------
-- Private Key types
--------------------------------------------
Version ::= INTEGER
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 -- (inverse of q) mod p
} --#public--
PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier
PrivateKey ::= OCTETSTRING
PrivateKeyInfo ::= SEQUENCE {
version Version,
privateKeyAlgorithm PrivateKeyAlgorithmIdentifier,
privateKey PrivateKey,
privateKeyAttributes [0] IMPLICIT Attributes OPTIONAL
} --#public--
EncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
EncryptedData ::= OCTETSTRING
EncryptedPrivateKeyInfo ::= SEQUENCE {
encryptionAlgorithm EncryptionAlgorithmIdentifier,
encryptedData EncryptedData
} --#public--
END