OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
DER_CertCrl.c
Go to the documentation of this file.
1/* Copyright (c) 2005-2009 Apple Inc. All Rights Reserved. */
2
3/*
4 * DER_Cert.c - support for decoding X509 certificates
5 *
6 * Created Nov. 4 2005 by Doug Mitchell.
7 */
8
9#include "DER_Decode.h"
10#include "DER_CertCrl.h"
11#include "asn1Types.h"
12
13/*
14 * DERItemSpecs for X509 certificates.
15 */
16
17/* top level cert with three components */
30
32 sizeof(DERSignedCertCrlItemSpecs) / sizeof(DERItemSpec);
33
34/* TBS cert */
36{
39 DER_DEC_OPTIONAL }, /* version - EXPLICIT */
40 { DER_OFFSET(DERTBSCert, serialNum),
43 { DER_OFFSET(DERTBSCert, tbsSigAlg),
46 { DER_OFFSET(DERTBSCert, issuer),
49 { DER_OFFSET(DERTBSCert, validity),
52 { DER_OFFSET(DERTBSCert, subject),
55 { DER_OFFSET(DERTBSCert, subjectPubKey),
58 /* libsecurity_asn1 has these two as CONSTRUCTED, but the ASN.1 spec
59 * doesn't look that way to me. I don't have any certs that have these
60 * fields.... */
61 { DER_OFFSET(DERTBSCert, issuerID),
64 { DER_OFFSET(DERTBSCert, subjectID),
67 { DER_OFFSET(DERTBSCert, extensions),
70};
72
73/* DERValidity */
75{
76 { DER_OFFSET(DERValidity, notBefore),
77 0, /* no tag - ANY */
79 { DER_OFFSET(DERValidity, notAfter),
80 0, /* no tag - ANY */
82};
84 sizeof(DERValidityItemSpecs) / sizeof(DERItemSpec);
85
86/* DERAttributeTypeAndValue */
95
98
99/* DERExtension */
113 sizeof(DERExtensionItemSpecs) / sizeof(DERItemSpec);
114
115/* DERBasicConstraints */
127
128/* DERPrivateKeyUsagePeriod. */
140
141/* DERDistributionPoint. */
156
157/* DERPolicyInformation. */
169
170/* DERPolicyQualifierInfo. */
172{
173 { DER_OFFSET(DERPolicyQualifierInfo, policyQualifierID),
177 0, /* no tag - ANY */
179};
182
183/* DERUserNotice. */
185{
186 { DER_OFFSET(DERUserNotice, noticeRef),
189 { DER_OFFSET(DERUserNotice, explicitText),
190 0, /* no tag - ANY */
192};
194 sizeof(DERUserNoticeItemSpecs) / sizeof(DERItemSpec);
195
196/* DERNoticeReference. */
198{
199 { DER_OFFSET(DERNoticeReference, organization),
200 0, /* no tag - ANY */
202 { DER_OFFSET(DERNoticeReference, noticeNumbers),
205};
208
209/* DERPolicyMapping. */
211{
212 { DER_OFFSET(DERPolicyMapping, issuerDomainPolicy),
215 { DER_OFFSET(DERPolicyMapping, subjectDomainPolicy),
218};
220 sizeof(DERPolicyMappingItemSpecs) / sizeof(DERItemSpec);
221
222/* DERAccessDescription. */
224{
225 { DER_OFFSET(DERAccessDescription, accessMethod),
228 { DER_OFFSET(DERAccessDescription, accessLocation),
229 0, /* no tag - ANY */
231};
234
235/* DERAuthorityKeyIdentifier. */
250
251/* DEROtherName. */
262 sizeof(DEROtherNameItemSpecs) / sizeof(DERItemSpec);
263
264/* DERPolicyConstraints. */
266{
267 { DER_OFFSET(DERPolicyConstraints, requireExplicitPolicy),
270 { DER_OFFSET(DERPolicyConstraints, inhibitPolicyMapping),
273};
276
277/* DERTBSCrl */
279{
283 { DER_OFFSET(DERTBSCrl, tbsSigAlg),
286 { DER_OFFSET(DERTBSCrl, issuer),
289 { DER_OFFSET(DERTBSCrl, thisUpdate),
290 0, /* no tag - ANY */
292 { DER_OFFSET(DERTBSCrl, nextUpdate),
293 0, /* no tag - ANY */
295 { DER_OFFSET(DERTBSCrl, revokedCerts),
298 { DER_OFFSET(DERTBSCrl, extensions),
301};
303
304/* DERRevokedCert */
306{
307 { DER_OFFSET(DERRevokedCert, serialNum),
310 { DER_OFFSET(DERRevokedCert, revocationDate),
311 0, /* no tag - ANY */
313 { DER_OFFSET(DERRevokedCert, extensions),
316};
317
319 sizeof(DERRevokedCertItemSpecs) / sizeof(DERItemSpec);
UINT8 version
Definition BmfFile.h:126
cache_type_t type
UINT8 value
const DERShort DERNumTBSCrlItemSpecs
const DERShort DERNumPolicyInformationItemSpecs
const DERShort DERNumPolicyQualifierInfoItemSpecs
const DERItemSpec DERAccessDescriptionItemSpecs[]
const DERItemSpec DERTBSCertItemSpecs[]
Definition DER_CertCrl.c:35
const DERShort DERNumDistributionPointItemSpecs
const DERItemSpec DERPolicyQualifierInfoItemSpecs[]
const DERShort DERNumOtherNameItemSpecs
const DERItemSpec DERRevokedCertItemSpecs[]
const DERShort DERNumBasicConstraintsItemSpecs
const DERItemSpec DERBasicConstraintsItemSpecs[]
const DERShort DERNumUserNoticeItemSpecs
const DERItemSpec DERAttributeTypeAndValueItemSpecs[]
Definition DER_CertCrl.c:87
const DERShort DERNumSignedCertCrlItemSpecs
Definition DER_CertCrl.c:31
const DERShort DERNumAttributeTypeAndValueItemSpecs
Definition DER_CertCrl.c:96
const DERShort DERNumValidityItemSpecs
Definition DER_CertCrl.c:83
const DERShort DERNumPolicyMappingItemSpecs
const DERItemSpec DERPolicyMappingItemSpecs[]
const DERShort DERNumTBSCertItemSpecs
Definition DER_CertCrl.c:71
const DERItemSpec DERNoticeReferenceItemSpecs[]
const DERShort DERNumAuthorityKeyIdentifierItemSpecs
const DERShort DERNumExtensionItemSpecs
const DERItemSpec DEROtherNameItemSpecs[]
const DERItemSpec DERDistributionPointItemSpecs[]
const DERItemSpec DERExtensionItemSpecs[]
const DERShort DERNumPolicyConstraintsItemSpecs
const DERItemSpec DERPolicyConstraintsItemSpecs[]
const DERShort DERNumRevokedCertItemSpecs
const DERShort DERNumNoticeReferenceItemSpecs
const DERItemSpec DERUserNoticeItemSpecs[]
const DERShort DERNumPrivateKeyUsagePeriodItemSpecs
const DERItemSpec DERSignedCertCrlItemSpecs[]
Definition DER_CertCrl.c:18
const DERItemSpec DERAuthorityKeyIdentifierItemSpecs[]
const DERItemSpec DERTBSCrlItemSpecs[]
const DERItemSpec DERValidityItemSpecs[]
Definition DER_CertCrl.c:74
const DERItemSpec DERPrivateKeyUsagePeriodItemSpecs[]
const DERItemSpec DERPolicyInformationItemSpecs[]
const DERShort DERNumAccessDescriptionItemSpecs
#define DER_DEC_NO_OPTS
Definition DER_Decode.h:134
#define DER_DEC_OPTIONAL
Definition DER_Decode.h:137
#define DER_DEC_SAVE_DER
Definition DER_Decode.h:147
#define DER_DEC_ASN_ANY
Definition DER_Decode.h:140
#define ASN1_INTEGER
Definition asn1Types.h:19
#define ASN1_OBJECT_ID
Definition asn1Types.h:23
#define ASN1_BIT_STRING
Definition asn1Types.h:20
#define ASN1_BOOLEAN
Definition asn1Types.h:18
#define ASN1_CONSTRUCTED
Definition asn1Types.h:72
#define ASN1_CONSTR_SEQUENCE
Definition asn1Types.h:83
#define ASN1_CONTEXT_SPECIFIC
Definition asn1Types.h:77
#define ASN1_OCTET_STRING
Definition asn1Types.h:21
#define DER_OFFSET(type, field)
Definition libDER.h:58
uint16_t DERShort