1 -- $Id: pkinit.asn1,v 1.2 2008/03/22 08:37:04 mlelstv Exp $ --
3 PKINIT DEFINITIONS ::= BEGIN
5 IMPORTS EncryptionKey, PrincipalName, Realm, KerberosTime, Checksum, Ticket FROM krb5
6 IssuerAndSerialNumber, ContentInfo FROM cms
7 SubjectPublicKeyInfo, AlgorithmIdentifier FROM rfc2459
10 id-pkinit OBJECT IDENTIFIER ::=
11 { iso (1) org (3) dod (6) internet (1) security (5)
12 kerberosv5 (2) pkinit (3) }
14 id-pkauthdata OBJECT IDENTIFIER ::= { id-pkinit 1 }
15 id-pkdhkeydata OBJECT IDENTIFIER ::= { id-pkinit 2 }
16 id-pkrkeydata OBJECT IDENTIFIER ::= { id-pkinit 3 }
17 id-pkekuoid OBJECT IDENTIFIER ::= { id-pkinit 4 }
18 id-pkkdcekuoid OBJECT IDENTIFIER ::= { id-pkinit 5 }
20 id-pkinit-san OBJECT IDENTIFIER ::=
21 { iso(1) org(3) dod(6) internet(1) security(5) kerberosv5(2)
24 id-pkinit-ms-eku OBJECT IDENTIFIER ::=
25 { iso(1) org(3) dod(6) internet(1) private(4)
26 enterprise(1) microsoft(311) 20 2 2 }
28 id-pkinit-ms-san OBJECT IDENTIFIER ::=
29 { iso(1) org(3) dod(6) internet(1) private(4)
30 enterprise(1) microsoft(311) 20 2 3 }
32 MS-UPN-SAN ::= UTF8String
34 pa-pk-as-req INTEGER ::= 16
35 pa-pk-as-rep INTEGER ::= 17
37 td-trusted-certifiers INTEGER ::= 104
38 td-invalid-certificates INTEGER ::= 105
39 td-dh-parameters INTEGER ::= 109
41 DHNonce ::= OCTET STRING
43 KDFAlgorithmId ::= SEQUENCE {
44 kdf-id [0] OBJECT IDENTIFIER,
48 TrustedCA ::= SEQUENCE {
49 caName [0] IMPLICIT OCTET STRING,
50 certificateSerialNumber [1] INTEGER OPTIONAL,
51 subjectKeyIdentifier [2] OCTET STRING OPTIONAL,
55 ExternalPrincipalIdentifier ::= SEQUENCE {
56 subjectName [0] IMPLICIT OCTET STRING OPTIONAL,
57 issuerAndSerialNumber [1] IMPLICIT OCTET STRING OPTIONAL,
58 subjectKeyIdentifier [2] IMPLICIT OCTET STRING OPTIONAL,
62 ExternalPrincipalIdentifiers ::= SEQUENCE OF ExternalPrincipalIdentifier
64 PA-PK-AS-REQ ::= SEQUENCE {
65 signedAuthPack [0] IMPLICIT OCTET STRING,
66 trustedCertifiers [1] ExternalPrincipalIdentifiers OPTIONAL,
67 kdcPkId [2] IMPLICIT OCTET STRING OPTIONAL,
71 PKAuthenticator ::= SEQUENCE {
72 cusec [0] INTEGER -- (0..999999) --,
73 ctime [1] KerberosTime,
74 nonce [2] INTEGER (0..4294967295),
75 paChecksum [3] OCTET STRING OPTIONAL,
79 AuthPack ::= SEQUENCE {
80 pkAuthenticator [0] PKAuthenticator,
81 clientPublicValue [1] SubjectPublicKeyInfo OPTIONAL,
82 supportedCMSTypes [2] SEQUENCE OF AlgorithmIdentifier OPTIONAL,
83 clientDHNonce [3] DHNonce OPTIONAL,
85 supportedKDFs [4] SEQUENCE OF KDFAlgorithmId OPTIONAL,
89 TD-TRUSTED-CERTIFIERS ::= ExternalPrincipalIdentifiers
90 TD-INVALID-CERTIFICATES ::= ExternalPrincipalIdentifiers
92 KRB5PrincipalName ::= SEQUENCE {
94 principalName [1] PrincipalName
97 AD-INITIAL-VERIFIED-CAS ::= SEQUENCE OF ExternalPrincipalIdentifier
99 DHRepInfo ::= SEQUENCE {
100 dhSignedData [0] IMPLICIT OCTET STRING,
101 serverDHNonce [1] DHNonce OPTIONAL,
103 kdf [2] KDFAlgorithmId OPTIONAL,
107 PA-PK-AS-REP ::= CHOICE {
108 dhInfo [0] DHRepInfo,
109 encKeyPack [1] IMPLICIT OCTET STRING,
113 KDCDHKeyInfo ::= SEQUENCE {
114 subjectPublicKey [0] BIT STRING,
115 nonce [1] INTEGER (0..4294967295),
116 dhKeyExpiration [2] KerberosTime OPTIONAL,
120 ReplyKeyPack ::= SEQUENCE {
121 replyKey [0] EncryptionKey,
122 asChecksum [1] Checksum,
126 TD-DH-PARAMETERS ::= SEQUENCE OF AlgorithmIdentifier
129 -- Windows compat glue --
131 PKAuthenticator-Win2k ::= SEQUENCE {
132 kdcName [0] PrincipalName,
134 cusec [2] INTEGER (0..4294967295),
135 ctime [3] KerberosTime,
136 nonce [4] INTEGER (-2147483648..2147483647)
139 AuthPack-Win2k ::= SEQUENCE {
140 pkAuthenticator [0] PKAuthenticator-Win2k,
141 clientPublicValue [1] SubjectPublicKeyInfo OPTIONAL
145 TrustedCA-Win2k ::= CHOICE {
147 issuerAndSerial [2] IssuerAndSerialNumber
150 PA-PK-AS-REQ-Win2k ::= SEQUENCE {
151 signed-auth-pack [0] IMPLICIT OCTET STRING,
152 trusted-certifiers [2] SEQUENCE OF TrustedCA-Win2k OPTIONAL,
153 kdc-cert [3] IMPLICIT OCTET STRING OPTIONAL,
154 encryption-cert [4] IMPLICIT OCTET STRING OPTIONAL
157 PA-PK-AS-REP-Win2k ::= CHOICE {
158 dhSignedData [0] IMPLICIT OCTET STRING,
159 encKeyPack [1] IMPLICIT OCTET STRING
163 KDCDHKeyInfo-Win2k ::= SEQUENCE {
164 nonce [0] INTEGER (-2147483648..2147483647),
165 subjectPublicKey [2] BIT STRING
168 ReplyKeyPack-Win2k ::= SEQUENCE {
169 replyKey [0] EncryptionKey,
170 nonce [1] INTEGER (-2147483648..2147483647),
174 PkinitSuppPubInfo ::= SEQUENCE {
175 enctype [0] INTEGER (-2147483648..2147483647),
176 as-REQ [1] OCTET STRING,
177 pk-as-rep [2] OCTET STRING,