certExtensionTemplates.cpp [plain text]
#include "certExtensionTemplates.h"
#include "asn1Templates.h"
#include <stddef.h>
const SecAsn1Template kSecAsn1BasicConstraintsTemplate[] = {
{ SEC_ASN1_SEQUENCE,
0, NULL, sizeof(NSS_BasicConstraints) },
{ SEC_ASN1_BOOLEAN | SEC_ASN1_OPTIONAL,
offsetof(NSS_BasicConstraints,cA) },
{ SEC_ASN1_INTEGER | SEC_ASN1_OPTIONAL,
offsetof(NSS_BasicConstraints, pathLenConstraint) },
{ 0, }
};
const SecAsn1Template kSecAsn1SignedIntegerTemplate[] = {
{ SEC_ASN1_INTEGER | SEC_ASN1_SIGNED_INT, 0, NULL, sizeof(CSSM_DATA) }
};
const SecAsn1Template kSecAsn1AuthorityKeyIdTemplate[] = {
{ SEC_ASN1_SEQUENCE,
0, NULL, sizeof(NSS_AuthorityKeyId) },
{ SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC |
SEC_ASN1_POINTER | 0,
offsetof(NSS_AuthorityKeyId,keyIdentifier),
kSecAsn1OctetStringTemplate },
{ SEC_ASN1_OPTIONAL | SEC_ASN1_CONSTRUCTED |
SEC_ASN1_CONTEXT_SPECIFIC | 1,
offsetof(NSS_AuthorityKeyId,genNames),
kSecAsn1GeneralNamesTemplate },
{ SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC | 2,
offsetof(NSS_AuthorityKeyId,serialNumber),
kSecAsn1SignedIntegerTemplate},
{ 0 }
};
const SecAsn1Template kSecAsn1PolicyQualifierTemplate[] = {
{ SEC_ASN1_SEQUENCE,
0, NULL, sizeof(NSS_PolicyQualifierInfo) },
{ SEC_ASN1_OBJECT_ID,
offsetof(NSS_PolicyQualifierInfo,policyQualifierId) },
{ SEC_ASN1_ANY, offsetof(NSS_PolicyQualifierInfo, qualifier) },
{ 0 }
};
const SecAsn1Template kSecAsn1PolicyInformationTemplate[] = {
{ SEC_ASN1_SEQUENCE,
0, NULL, sizeof(NSS_PolicyInformation) },
{ SEC_ASN1_OBJECT_ID,
offsetof(NSS_PolicyInformation,certPolicyId) },
{ SEC_ASN1_SEQUENCE_OF | SEC_ASN1_OPTIONAL,
offsetof(NSS_PolicyInformation,policyQualifiers),
kSecAsn1PolicyQualifierTemplate },
{ 0 }
};
const SecAsn1Template kSecAsn1CertPoliciesTemplate[] = {
{ SEC_ASN1_SEQUENCE_OF,
offsetof(NSS_CertPolicies,policies),
kSecAsn1PolicyInformationTemplate },
{ 0 }
};
const SecAsn1Template kSecAsn1DistributionPointTemplate[] = {
{ SEC_ASN1_SEQUENCE,
0, NULL, sizeof(NSS_DistributionPoint) },
{ SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC |
SEC_ASN1_CONSTRUCTED | SEC_ASN1_EXPLICIT | 0,
offsetof(NSS_DistributionPoint,distPointName),
kSecAsn1PointerToAnyTemplate },
{ SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC | 1,
offsetof(NSS_DistributionPoint,reasons), kSecAsn1BitStringTemplate},
{ SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC |
SEC_ASN1_CONSTRUCTED | 2,
offsetof(NSS_DistributionPoint, crlIssuer),
kSecAsn1GeneralNamesTemplate
},
{ 0 }
};
const SecAsn1Template kSecAsn1CRLDistributionPointsTemplate[] = {
{ SEC_ASN1_SEQUENCE_OF,
offsetof(NSS_CRLDistributionPoints,distPoints),
kSecAsn1DistributionPointTemplate },
{ 0 }
};
const SecAsn1Template kSecAsn1DistPointFullNameTemplate[] = {
{SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_CONSTRUCTED | 0,
offsetof (NSS_GeneralNames,names), kSecAsn1GeneralNamesTemplate}
};
const SecAsn1Template kSecAsn1DistPointRDNTemplate[] = {
{SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_CONSTRUCTED | 1,
offsetof (NSS_RDN,atvs), kSecAsn1RDNTemplate}
};
static const SecAsn1Template kSecAsn1OptBooleanTemplate[] = {
{ SEC_ASN1_BOOLEAN | SEC_ASN1_OPTIONAL, 0, NULL, sizeof(CSSM_DATA) }
};
static const SecAsn1Template kSecAsn1OptBitStringTemplate[] = {
{ SEC_ASN1_BIT_STRING | SEC_ASN1_OPTIONAL, 0, NULL, sizeof(CSSM_DATA) }
};
const SecAsn1Template kSecAsn1IssuingDistributionPointTemplate[] = {
{ SEC_ASN1_SEQUENCE,
0, NULL, sizeof(NSS_IssuingDistributionPoint) },
{ SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC |
SEC_ASN1_CONSTRUCTED | SEC_ASN1_EXPLICIT | 0,
offsetof(NSS_IssuingDistributionPoint,distPointName),
kSecAsn1PointerToAnyTemplate },
{ SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_POINTER | 1,
offsetof(NSS_IssuingDistributionPoint,onlyUserCerts),
kSecAsn1OptBooleanTemplate},
{ SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_POINTER | 2,
offsetof(NSS_IssuingDistributionPoint,onlyCACerts),
kSecAsn1OptBooleanTemplate},
{ SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_POINTER | 3,
offsetof(NSS_IssuingDistributionPoint,onlySomeReasons),
kSecAsn1OptBitStringTemplate},
{ SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_POINTER | 4,
offsetof(NSS_IssuingDistributionPoint,indirectCRL),
kSecAsn1OptBooleanTemplate},
{ 0 }
};
const SecAsn1Template kSecAsn1AccessDescriptionTemplate[] = {
{ SEC_ASN1_SEQUENCE,
0, NULL, sizeof(NSS_AccessDescription) },
{ SEC_ASN1_OBJECT_ID,
offsetof(NSS_AccessDescription,accessMethod) },
{ SEC_ASN1_ANY,
offsetof(NSS_AccessDescription, encodedAccessLocation) },
{ 0 }
};
extern const SecAsn1Template kSecAsn1AuthorityInfoAccessTemplate[] = {
{ SEC_ASN1_SEQUENCE_OF,
offsetof(NSS_AuthorityInfoAccess,accessDescriptions),
kSecAsn1AccessDescriptionTemplate,
sizeof(NSS_AuthorityInfoAccess) }
};