Merge branch 'next-general' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris...
[sfrench/cifs-2.6.git] / crypto / asymmetric_keys / x509.asn1
1 Certificate ::= SEQUENCE {
2         tbsCertificate          TBSCertificate ({ x509_note_tbs_certificate }),
3         signatureAlgorithm      AlgorithmIdentifier,
4         signature               BIT STRING ({ x509_note_signature })
5         }
6
7 TBSCertificate ::= SEQUENCE {
8         version           [ 0 ] Version DEFAULT,
9         serialNumber            CertificateSerialNumber ({ x509_note_serial }),
10         signature               AlgorithmIdentifier ({ x509_note_pkey_algo }),
11         issuer                  Name ({ x509_note_issuer }),
12         validity                Validity,
13         subject                 Name ({ x509_note_subject }),
14         subjectPublicKeyInfo    SubjectPublicKeyInfo,
15         issuerUniqueID    [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
16         subjectUniqueID   [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
17         extensions        [ 3 ] Extensions OPTIONAL
18         }
19
20 Version ::= INTEGER
21 CertificateSerialNumber ::= INTEGER
22
23 AlgorithmIdentifier ::= SEQUENCE {
24         algorithm               OBJECT IDENTIFIER ({ x509_note_OID }),
25         parameters              ANY OPTIONAL ({ x509_note_params })
26 }
27
28 Name ::= SEQUENCE OF RelativeDistinguishedName
29
30 RelativeDistinguishedName ::= SET OF AttributeValueAssertion
31
32 AttributeValueAssertion ::= SEQUENCE {
33         attributeType           OBJECT IDENTIFIER ({ x509_note_OID }),
34         attributeValue          ANY ({ x509_extract_name_segment })
35         }
36
37 Validity ::= SEQUENCE {
38         notBefore               Time ({ x509_note_not_before }),
39         notAfter                Time ({ x509_note_not_after })
40         }
41
42 Time ::= CHOICE {
43         utcTime                 UTCTime,
44         generalTime             GeneralizedTime
45         }
46
47 SubjectPublicKeyInfo ::= SEQUENCE {
48         algorithm               AlgorithmIdentifier,
49         subjectPublicKey        BIT STRING ({ x509_extract_key_data })
50         }
51
52 UniqueIdentifier ::= BIT STRING
53
54 Extensions ::= SEQUENCE OF Extension
55
56 Extension ::= SEQUENCE {
57         extnid                  OBJECT IDENTIFIER ({ x509_note_OID }),
58         critical                BOOLEAN DEFAULT,
59         extnValue               OCTET STRING ({ x509_process_extension })
60         }