108 lines
3.4 KiB
C
108 lines
3.4 KiB
C
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
/*
|
|
* pkix_pl_cert.h
|
|
*
|
|
* Certificate Object Definitions
|
|
*
|
|
*/
|
|
|
|
#ifndef _PKIX_PL_CERT_H
|
|
#define _PKIX_PL_CERT_H
|
|
|
|
#include "pkix_pl_common.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
struct PKIX_PL_CertStruct {
|
|
CERTCertificate *nssCert; /* Must be the first field. The
|
|
* cert_NSSCertFromPKIXCert function in
|
|
* lib/certhigh/certvfypkix.c depends on
|
|
* this. */
|
|
CERTGeneralName *nssSubjAltNames;
|
|
PLArenaPool *arenaNameConstraints;
|
|
PKIX_PL_X500Name *issuer;
|
|
PKIX_PL_X500Name *subject;
|
|
PKIX_List *subjAltNames;
|
|
PKIX_Boolean subjAltNamesAbsent;
|
|
PKIX_PL_OID *publicKeyAlgId;
|
|
PKIX_PL_PublicKey *publicKey;
|
|
PKIX_PL_BigInt *serialNumber;
|
|
PKIX_List *critExtOids;
|
|
PKIX_PL_ByteArray *subjKeyId;
|
|
PKIX_Boolean subjKeyIdAbsent;
|
|
PKIX_PL_ByteArray *authKeyId;
|
|
PKIX_Boolean authKeyIdAbsent;
|
|
PKIX_List *extKeyUsages;
|
|
PKIX_Boolean extKeyUsagesAbsent;
|
|
PKIX_PL_CertBasicConstraints *certBasicConstraints;
|
|
PKIX_Boolean basicConstraintsAbsent;
|
|
PKIX_List *certPolicyInfos;
|
|
PKIX_Boolean policyInfoAbsent;
|
|
PKIX_Boolean policyMappingsAbsent;
|
|
PKIX_List *certPolicyMappings; /* List of PKIX_PL_CertPolicyMap */
|
|
PKIX_Boolean policyConstraintsProcessed;
|
|
PKIX_Int32 policyConstraintsExplicitPolicySkipCerts;
|
|
PKIX_Int32 policyConstraintsInhibitMappingSkipCerts;
|
|
PKIX_Boolean inhibitAnyPolicyProcessed;
|
|
PKIX_Int32 inhibitAnySkipCerts;
|
|
PKIX_PL_CertNameConstraints *nameConstraints;
|
|
PKIX_Boolean nameConstraintsAbsent;
|
|
PKIX_Boolean cacheFlag;
|
|
PKIX_CertStore *store;
|
|
PKIX_List *authorityInfoAccess; /* list of PKIX_PL_InfoAccess */
|
|
PKIX_List *subjectInfoAccess; /* list of PKIX_PL_InfoAccess */
|
|
PKIX_Boolean isUserTrustAnchor;
|
|
PKIX_List *crldpList; /* list of CRL DPs based on der in nssCert arena.
|
|
* Destruction is needed for pkix object and
|
|
* not for undelying der as it is a part
|
|
* nssCert arena. */
|
|
};
|
|
|
|
/* see source file for function documentation */
|
|
|
|
PKIX_Error *
|
|
pkix_pl_Cert_RegisterSelf(void *plContext);
|
|
|
|
PKIX_Error *
|
|
pkix_pl_Cert_CreateWithNSSCert(
|
|
CERTCertificate *nssCert,
|
|
PKIX_PL_Cert **pCert,
|
|
void *plContext);
|
|
|
|
PKIX_Error *
|
|
pkix_pl_Cert_CreateToList(
|
|
SECItem *derCertItem,
|
|
PKIX_List *certList,
|
|
void *plContext);
|
|
|
|
PKIX_Error *
|
|
pkix_pl_Cert_CheckSubjectAltNameConstraints(
|
|
PKIX_PL_Cert *cert,
|
|
PKIX_PL_CertNameConstraints *nameConstraints,
|
|
PKIX_Boolean matchAll,
|
|
void *plContext);
|
|
|
|
PKIX_Error *
|
|
pkix_pl_Cert_ToString_Helper(
|
|
PKIX_PL_Cert *cert,
|
|
PKIX_Boolean partialString,
|
|
PKIX_PL_String **pString,
|
|
void *plContext);
|
|
|
|
PKIX_Error *
|
|
pkix_pl_Cert_CheckExtendedKeyUsage(
|
|
PKIX_PL_Cert *cert,
|
|
PKIX_UInt32 requiredExtendedKeyUsages,
|
|
PKIX_Boolean *pPass,
|
|
void *plContext);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* _PKIX_PL_CERT_H */
|