s4:heimdal: import lorikeet-heimdal-202201172009 (commit 5a0b45cd723628b3690ea848548b...
[samba.git] / source4 / heimdal / lib / asn1 / crmf.asn1
1 -- $Id$
2 PKCS10 DEFINITIONS ::=
3
4 BEGIN
5
6 IMPORTS
7         Time,
8         GeneralName,
9         SubjectPublicKeyInfo,
10         RelativeDistinguishedName,
11         AttributeTypeAndValue,
12         Extension,
13         AlgorithmIdentifier
14         FROM rfc2459
15         HEIM_ANY
16         FROM heim;
17
18 CRMFRDNSequence ::= SEQUENCE OF RelativeDistinguishedName
19
20 Controls  ::= SEQUENCE -- SIZE(1..MAX) -- OF AttributeTypeAndValue
21
22 PKMACValue ::= SEQUENCE {
23         algId  AlgorithmIdentifier,
24         value  BIT STRING
25 }
26
27 -- XXX IMPLICIT brokenness
28 POPOSigningKeyInput ::= SEQUENCE {
29         authInfo            CHOICE {
30                 sender              [0] IMPLICIT GeneralName,
31                 publicKeyMAC        PKMACValue
32         },
33         publicKey           SubjectPublicKeyInfo
34 }  -- from CertTemplate
35
36 -- XXX IMPLICIT brokenness
37 POPOSigningKey ::= SEQUENCE {
38         poposkInput           [0] IMPLICIT POPOSigningKeyInput OPTIONAL,
39         algorithmIdentifier   AlgorithmIdentifier,
40         signature             BIT STRING }
41
42 PBMParameter ::= SEQUENCE {
43    salt                OCTET STRING,
44    owf                 AlgorithmIdentifier,
45    iterationCount      INTEGER,
46    mac                 AlgorithmIdentifier
47 }
48
49 SubsequentMessage ::= INTEGER {
50         encrCert (0),
51         challengeResp (1)
52 }
53
54 POPOPrivKey ::= CHOICE {
55         thisMessage       [0] BIT STRING,         -- Deprecated
56         subsequentMessage [1] IMPLICIT SubsequentMessage,
57         dhMAC             [2] BIT STRING,         -- Deprecated
58         agreeMAC          [3] IMPLICIT PKMACValue,
59         encryptedKey      [4] HEIM_ANY
60 }
61
62 ProofOfPossession ::= CHOICE {
63         raVerified        [0] NULL,
64         signature         [1] POPOSigningKey,
65         keyEncipherment   [2] POPOPrivKey,
66         keyAgreement      [3] POPOPrivKey
67 }
68
69 CertTemplate ::= SEQUENCE {
70         version      [0] INTEGER OPTIONAL,
71         serialNumber [1] INTEGER OPTIONAL,
72         signingAlg   [2] SEQUENCE {
73                 algorithm       OBJECT IDENTIFIER,
74                 parameters      HEIM_ANY OPTIONAL
75         } -- AlgorithmIdentifier --   OPTIONAL,
76         issuer       [3] IMPLICIT CHOICE {
77                 rdnSequence  CRMFRDNSequence
78         } -- Name --  OPTIONAL,
79         validity     [4] SEQUENCE {
80                 notBefore  [0] Time OPTIONAL,
81                 notAfter   [1] Time OPTIONAL
82         } -- OptionalValidity -- OPTIONAL,
83         subject      [5] IMPLICIT CHOICE {
84                 rdnSequence  CRMFRDNSequence
85         } -- Name -- OPTIONAL,
86         publicKey    [6] IMPLICIT SEQUENCE  {
87                 algorithm            AlgorithmIdentifier,
88                 subjectPublicKey     BIT STRING OPTIONAL
89         } -- SubjectPublicKeyInfo -- OPTIONAL,
90         issuerUID    [7] IMPLICIT BIT STRING OPTIONAL,
91         subjectUID   [8] IMPLICIT BIT STRING OPTIONAL,
92         extensions   [9] IMPLICIT SEQUENCE OF Extension OPTIONAL
93 }
94
95 CertRequest ::= SEQUENCE {
96         certReqId       INTEGER,
97         certTemplate    CertTemplate,
98         controls        Controls OPTIONAL
99 }
100
101 CertReqMsg ::= SEQUENCE {
102         certReq         CertRequest,
103         popo            ProofOfPossession  OPTIONAL,
104         regInfo         SEQUENCE OF AttributeTypeAndValue OPTIONAL }
105
106 CertReqMessages ::= SEQUENCE OF CertReqMsg
107
108
109 END
110