mirror of https://github.com/tongzx/nt5src
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
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
|