1 -- Extracted from RFC2986
2 -- by Martin Peylo <wireshark@izac.de> 2018
4 -- Changes to the original ASN.1 source:
5 -- - commented out import from InformationFramework
6 -- - commented out AlgorithmIdentifier
7 -- - commented out SubjectPublicKeyInfo
8 -- - simplified Attribute
9 -- - added out import the above from PKIX1Explicit88
11 -- The copyright statement from the original description in RFC2986
14 -- Full Copyright Statement
16 -- Copyright (C) The Internet Society 2000. All Rights Reserved.
18 -- This document and translations of it may be copied and furnished to
19 -- others provided that the above copyright notice and this paragraph
20 -- are included on all such copies. However, this document itself may
21 -- not be modified in any way, such as by removing the copyright notice
22 -- or references to the Internet Society or other Internet
23 -- organizations, except as required to translate it into languages
24 -- other than English.
26 -- The limited permissions granted above are perpetual and will not be
27 -- revoked by the Internet Society or its successors or assigns.
29 -- This document and the information contained herein is provided on an
30 -- "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
31 -- TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
32 -- BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
33 -- HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
34 -- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
36 PKCS-10 {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
37 pkcs-10(10) modules(1) pkcs-10(1)}
39 DEFINITIONS IMPLICIT TAGS ::=
45 -- All types and values defined in this module are exported for use
46 -- in other ASN.1 modules.
50 informationFramework, authenticationFramework
51 FROM UsefulDefinitions {joint-iso-itu-t(2) ds(5) module(1)
52 usefulDefinitions(0) 3}
54 -- COMMENTED OUT as PKIX1Explicit88 provides this
56 -- FROM InformationFramework informationFramework
58 -- ADDED to avoid that it needs to be implemented here, and to have Name
59 -- Directory Authentication Framework (X.509)
60 AlgorithmIdentifier, Name, SubjectPublicKeyInfo
61 FROM PKIX1Explicit88 {iso(1) identified-organization(3) dod(6)
62 internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-explicit(18)}
65 FROM AuthenticationFramework authenticationFramework;
67 -- Certificate requests
68 CertificationRequestInfo ::= SEQUENCE {
69 version INTEGER { v1(0) } (v1,...),
71 subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
72 attributes [0] Attributes{{ CRIAttributes }}
75 -- COMMENTED OUT as not needed as imported from PKIX1Explicit88
76 -- SubjectPublicKeyInfo {ALGORITHM: IOSet} ::= SEQUENCE {
77 -- algorithm AlgorithmIdentifier {{IOSet}},
78 -- subjectPublicKey BIT STRING
81 PKInfoAlgorithms ALGORITHM ::= {
82 ... -- add any locally defined algorithms here -- }
84 Attributes { ATTRIBUTE:IOSet } ::= SET OF Attribute{{ IOSet }}
86 CRIAttributes ATTRIBUTE ::= {
87 ... -- add any locally defined attributes here -- }
89 -- Simplified to make it easier to digest
90 -- Attribute { ATTRIBUTE:IOSet } ::= SEQUENCE {
91 -- type ATTRIBUTE.&id({IOSet}),
92 -- values SET SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{@type})
94 Attribute ::= SEQUENCE {
95 type OBJECT IDENTIFIER,
96 values SET SIZE (1 .. MAX) OF ANY
99 CertificationRequest ::= SEQUENCE {
100 certificationRequestInfo CertificationRequestInfo,
101 signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
105 -- COMMENTED OUT as not needed as imported from PKIX1Explicit88
106 -- AlgorithmIdentifier {ALGORITHM:IOSet } ::= SEQUENCE {
107 -- algorithm ALGORITHM.&id({IOSet}),
108 -- parameters ALGORITHM.&Type({IOSet}{@algorithm}) OPTIONAL
111 SignatureAlgorithms ALGORITHM ::= {
112 ... -- add any locally defined algorithms here -- }