xref: /openbmc/linux/crypto/asymmetric_keys/x509.asn1 (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1c26fd69fSDavid HowellsCertificate ::= SEQUENCE {
2c26fd69fSDavid Howells	tbsCertificate		TBSCertificate ({ x509_note_tbs_certificate }),
3c26fd69fSDavid Howells	signatureAlgorithm	AlgorithmIdentifier,
4c26fd69fSDavid Howells	signature		BIT STRING ({ x509_note_signature })
5c26fd69fSDavid Howells	}
6c26fd69fSDavid Howells
7c26fd69fSDavid HowellsTBSCertificate ::= SEQUENCE {
8c26fd69fSDavid Howells	version           [ 0 ]	Version DEFAULT,
984aabd46SDavid Howells	serialNumber		CertificateSerialNumber ({ x509_note_serial }),
10*8f2a7b51SEric Biggers	signature		AlgorithmIdentifier ({ x509_note_sig_algo }),
11c26fd69fSDavid Howells	issuer			Name ({ x509_note_issuer }),
12c26fd69fSDavid Howells	validity		Validity,
13c26fd69fSDavid Howells	subject			Name ({ x509_note_subject }),
14c26fd69fSDavid Howells	subjectPublicKeyInfo	SubjectPublicKeyInfo,
15c26fd69fSDavid Howells	issuerUniqueID    [ 1 ]	IMPLICIT UniqueIdentifier OPTIONAL,
16c26fd69fSDavid Howells	subjectUniqueID   [ 2 ]	IMPLICIT UniqueIdentifier OPTIONAL,
17c26fd69fSDavid Howells	extensions        [ 3 ]	Extensions OPTIONAL
18c26fd69fSDavid Howells	}
19c26fd69fSDavid Howells
20c26fd69fSDavid HowellsVersion ::= INTEGER
21c26fd69fSDavid HowellsCertificateSerialNumber ::= INTEGER
22c26fd69fSDavid Howells
23c26fd69fSDavid HowellsAlgorithmIdentifier ::= SEQUENCE {
24c26fd69fSDavid Howells	algorithm		OBJECT IDENTIFIER ({ x509_note_OID }),
25f1774cb8SVitaly Chikunov	parameters		ANY OPTIONAL ({ x509_note_params })
26c26fd69fSDavid Howells}
27c26fd69fSDavid Howells
28c26fd69fSDavid HowellsName ::= SEQUENCE OF RelativeDistinguishedName
29c26fd69fSDavid Howells
30c26fd69fSDavid HowellsRelativeDistinguishedName ::= SET OF AttributeValueAssertion
31c26fd69fSDavid Howells
32c26fd69fSDavid HowellsAttributeValueAssertion ::= SEQUENCE {
33c26fd69fSDavid Howells	attributeType		OBJECT IDENTIFIER ({ x509_note_OID }),
34c26fd69fSDavid Howells	attributeValue		ANY ({ x509_extract_name_segment })
35c26fd69fSDavid Howells	}
36c26fd69fSDavid Howells
37c26fd69fSDavid HowellsValidity ::= SEQUENCE {
38c26fd69fSDavid Howells	notBefore		Time ({ x509_note_not_before }),
39c26fd69fSDavid Howells	notAfter		Time ({ x509_note_not_after })
40c26fd69fSDavid Howells	}
41c26fd69fSDavid Howells
42c26fd69fSDavid HowellsTime ::= CHOICE {
43c26fd69fSDavid Howells	utcTime			UTCTime,
44c26fd69fSDavid Howells	generalTime		GeneralizedTime
45c26fd69fSDavid Howells	}
46c26fd69fSDavid Howells
47c26fd69fSDavid HowellsSubjectPublicKeyInfo ::= SEQUENCE {
48c26fd69fSDavid Howells	algorithm		AlgorithmIdentifier,
49c26fd69fSDavid Howells	subjectPublicKey	BIT STRING ({ x509_extract_key_data })
50c26fd69fSDavid Howells	}
51c26fd69fSDavid Howells
52c26fd69fSDavid HowellsUniqueIdentifier ::= BIT STRING
53c26fd69fSDavid Howells
54c26fd69fSDavid HowellsExtensions ::= SEQUENCE OF Extension
55c26fd69fSDavid Howells
56c26fd69fSDavid HowellsExtension ::= SEQUENCE {
57c26fd69fSDavid Howells	extnid			OBJECT IDENTIFIER ({ x509_note_OID }),
58c26fd69fSDavid Howells	critical		BOOLEAN DEFAULT,
59c26fd69fSDavid Howells	extnValue		OCTET STRING ({ x509_process_extension })
60c26fd69fSDavid Howells	}
61