1-- PKCS10 ASN module
2
3PKCS5
4DEFINITIONS IMPLICIT TAGS  ::=
5BEGIN
6-- EXPORTS All --
7
8IMPORTS
9  -- Directory Information Framework (X.501)
10		Name, Attribute, Attributes
11			FROM InformationFramework
12
13   -- Directory Authentication Framework (X.509)
14		AlgorithmIdentifier, SubjectPublicKeyInfo
15			FROM AuthenticationFramework
16			
17	-- CryptographicMessageSyntax (draft-ietf-smime-cms-13)
18		Signature, SignatureAlgorithmIdentifier
19			FROM CryptographicMessageSyntax
20;
21
22CertificationRequestInfo ::= SEQUENCE {
23	version VersionP10,
24	subject Name,
25	subjectPublicKeyInfo SubjectPublicKeyInfo,
26	attributes [0] IMPLICIT Attributes 
27}
28
29VersionP10 ::= INTEGER
30-- redefined, same as InformationFramework (sm_x501if.asn)
31-- Attributes ::= SET OF Attribute
32
33-- Per PKCS10 spec
34CertificationRequest ::= SEQUENCE {
35	certificationRequestInfo CertificationRequestInfo,
36	signatureAlgorithm SignatureAlgorithmIdentifier,
37	signature Signature 
38}
39
40-- This is what we actually use to avoid unnecessary 
41-- setup and teardown of CertificationRequestInfo when
42-- signing and verifying
43CertificationRequestSigned ::= SEQUENCE {
44	certificationRequestInfo ANY,
45	signatureAlgorithm SignatureAlgorithmIdentifier,
46	signature Signature 
47}
48
49-- duplicated from CryptographicMessageSyntax
50-- SignatureAlgorithmIdentifier ::= AlgorithmIdentifier
51-- Signature ::= BIT STRING
52
53END -- PKCS10
54