HEIMDAL: move code from source4/heimdal* to third_party/heimdal*
[Samba.git] / third_party / heimdal / lib / asn1 / crmf.asn1
blob696a89be1265b7deebfe59c31c929a53ca117afb
1 -- $Id$
2 PKCS10 DEFINITIONS ::=
4 BEGIN
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;
18 CRMFRDNSequence ::= SEQUENCE OF RelativeDistinguishedName
20 Controls  ::= SEQUENCE -- SIZE(1..MAX) -- OF AttributeTypeAndValue
22 PKMACValue ::= SEQUENCE {
23         algId  AlgorithmIdentifier,
24         value  BIT STRING
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
36 -- XXX IMPLICIT brokenness
37 POPOSigningKey ::= SEQUENCE {
38         poposkInput           [0] IMPLICIT POPOSigningKeyInput OPTIONAL,
39         algorithmIdentifier   AlgorithmIdentifier,
40         signature             BIT STRING }
42 PBMParameter ::= SEQUENCE {
43    salt                OCTET STRING,
44    owf                 AlgorithmIdentifier,
45    iterationCount      INTEGER,
46    mac                 AlgorithmIdentifier
49 SubsequentMessage ::= INTEGER {
50         encrCert (0),
51         challengeResp (1)
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
62 ProofOfPossession ::= CHOICE {
63         raVerified        [0] NULL,
64         signature         [1] POPOSigningKey,
65         keyEncipherment   [2] POPOPrivKey,
66         keyAgreement      [3] POPOPrivKey
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
95 CertRequest ::= SEQUENCE {
96         certReqId       INTEGER,
97         certTemplate    CertTemplate,
98         controls        Controls OPTIONAL
101 CertReqMsg ::= SEQUENCE {
102         certReq         CertRequest,
103         popo            ProofOfPossession  OPTIONAL,
104         regInfo         SEQUENCE OF AttributeTypeAndValue OPTIONAL }
106 CertReqMessages ::= SEQUENCE OF CertReqMsg