certExtensionTemplates.h [plain text]
#ifndef _CERT_EXTENSION_TEMPLATES_H_
#define _CERT_EXTENSION_TEMPLATES_H_
#include <Security/X509Templates.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
SecAsn1Item cA; SecAsn1Item pathLenConstraint; } NSS_BasicConstraints;
extern const SecAsn1Template kSecAsn1BasicConstraintsTemplate[];
#define kSecAsn1KeyUsageTemplate kSecAsn1BitStringTemplate
typedef struct {
SecAsn1Oid **purposes;
} NSS_ExtKeyUsage;
#define kSecAsn1ExtKeyUsageTemplate kSecAsn1SequenceOfObjectIDTemplate
#define kSecAsn1SubjectKeyIdTemplate kSecAsn1OctetStringTemplate
typedef struct {
SecAsn1Item *keyIdentifier; NSS_GeneralNames genNames;
SecAsn1Item serialNumber; } NSS_AuthorityKeyId;
extern const SecAsn1Template kSecAsn1AuthorityKeyIdTemplate[];
typedef struct {
SecAsn1Oid policyQualifierId; SecAsn1Item qualifier; } NSS_PolicyQualifierInfo;
extern const SecAsn1Template kSecAsn1PolicyQualifierTemplate[];
typedef struct {
SecAsn1Oid certPolicyId;
NSS_PolicyQualifierInfo **policyQualifiers; } NSS_PolicyInformation;
extern const SecAsn1Template kSecAsn1PolicyInformationTemplate[];
typedef struct {
NSS_PolicyInformation **policies; } NSS_CertPolicies;
extern const SecAsn1Template kSecAsn1CertPoliciesTemplate[];
#define kSecAsn1NetscapeCertTypeTemplate kSecAsn1BitStringTemplate
typedef struct {
SecAsn1Item *distPointName; SecAsn1Item reasons; NSS_GeneralNames crlIssuer; } NSS_DistributionPoint;
typedef struct {
NSS_DistributionPoint **distPoints; } NSS_CRLDistributionPoints;
extern const SecAsn1Template kSecAsn1DistributionPointTemplate[];
extern const SecAsn1Template kSecAsn1CRLDistributionPointsTemplate[];
#define NSS_DIST_POINT_FULL_NAME_TAG 0
extern const SecAsn1Template kSecAsn1DistPointFullNameTemplate[];
#define NSS_DIST_POINT_RDN_TAG 1
extern const SecAsn1Template kSecAsn1DistPointRDNTemplate[];
typedef struct {
SecAsn1Item *distPointName;
SecAsn1Item *onlyUserCerts; SecAsn1Item *onlyCACerts; SecAsn1Item *onlySomeReasons; SecAsn1Item *indirectCRL; } NSS_IssuingDistributionPoint;
extern const SecAsn1Template kSecAsn1IssuingDistributionPointTemplate[];
typedef struct {
SecAsn1Item accessMethod;
SecAsn1Item encodedAccessLocation;
} NSS_AccessDescription;
typedef struct {
NSS_AccessDescription **accessDescriptions;
} NSS_AuthorityInfoAccess;
extern const SecAsn1Template kSecAsn1AccessDescriptionTemplate[];
extern const SecAsn1Template kSecAsn1AuthorityInfoAccessTemplate[];
typedef struct {
SecAsn1Oid *semanticsIdentifier;
NSS_GeneralNames *nameRegistrationAuthorities;
} NSS_SemanticsInformation;
typedef struct {
SecAsn1Oid statementId;
SecAsn1Item info;
} NSS_QC_Statement;
typedef struct {
NSS_QC_Statement **qcStatements;
} NSS_QC_Statements;
extern const SecAsn1Template kSecAsn1SemanticsInformationTemplate[];
extern const SecAsn1Template kSecAsn1QC_StatementTemplate[];
extern const SecAsn1Template kSecAsn1QC_StatementsTemplate[];
typedef struct {
NSS_GeneralNames base;
SecAsn1Item minimum; SecAsn1Item maximum; } NSS_GeneralSubtree;
typedef struct {
NSS_GeneralSubtree **subtrees; } NSS_GeneralSubtrees;
typedef struct {
NSS_GeneralSubtrees *permittedSubtrees; NSS_GeneralSubtrees *excludedSubtrees; } NSS_NameConstraints;
extern const SecAsn1Template kSecAsn1NameConstraintsTemplate[];
typedef struct {
SecAsn1Oid issuerDomainPolicy;
SecAsn1Oid subjectDomainPolicy;
} NSS_PolicyMapping;
typedef struct {
NSS_PolicyMapping **policyMappings; } NSS_PolicyMappings;
extern const SecAsn1Template kSecAsn1PolicyMappingsTemplate[];
typedef struct {
SecAsn1Item requireExplicitPolicy; SecAsn1Item inhibitPolicyMapping; } NSS_PolicyConstraints;
extern const SecAsn1Template kSecAsn1PolicyConstraintsTemplate[];
#define kSecAsn1InhibitAnyPolicyTemplate kSecAsn1IntegerTemplate;
#ifdef __cplusplus
}
#endif
#endif