SecCertificateInternal.h [plain text]
#ifndef _SECURITY_SECCERTIFICATEINTERNAL_H_
#define _SECURITY_SECCERTIFICATEINTERNAL_H_
#include <Security/SecCertificatePriv.h>
#include <Security/certextensions.h>
#include <libDER/DER_Keys.h>
__BEGIN_DECLS
CFDataRef SecCertificateGetAuthorityKeyID(SecCertificateRef certificate);
CFDataRef SecCertificateGetSubjectKeyID(SecCertificateRef certificate);
CFArrayRef SecCertificateGetCRLDistributionPoints(SecCertificateRef certificate);
CFArrayRef SecCertificateGetOCSPResponders(SecCertificateRef certificate);
CFArrayRef SecCertificateGetCAIssuers(SecCertificateRef certificate);
void SecCertificateShow(SecCertificateRef certificate);
CFDataRef SecCertificateCopyIssuerSequence(SecCertificateRef certificate);
CFDataRef SecCertificateCopySubjectSequence(SecCertificateRef certificate);
CFDataRef SecCertificateGetNormalizedIssuerContent(SecCertificateRef certificate);
CFDataRef SecCertificateGetNormalizedSubjectContent(SecCertificateRef certificate);
CFDataRef SecDistinguishedNameCopyNormalizedContent(CFDataRef distinguished_name);
bool SecCertificateHasSubject(SecCertificateRef certificate);
bool SecCertificateHasCriticalSubjectAltName(SecCertificateRef certificate);
const DERItem * SecCertificateGetSubjectAltName(SecCertificateRef certificate);
bool SecCertificateHasUnknownCriticalExtension(SecCertificateRef certificate);
bool SecCertificateIsValid(SecCertificateRef certificate,
CFAbsoluteTime verifyTime);
CFDictionaryRef SecCertificateCopyAttributeDictionary(
SecCertificateRef certificate);
SecCertificateRef SecCertificateCreateFromAttributeDictionary(
CFDictionaryRef refAttributes);
#if SECTRUST_OSX
SecKeyRef SecCertificateCopyPublicKey_ios(SecCertificateRef certificate);
#else
SecKeyRef SecCertificateCopyPublicKey(SecCertificateRef certificate);
#endif
const SecCEBasicConstraints *
SecCertificateGetBasicConstraints(SecCertificateRef certificate);
CFArrayRef SecCertificateGetPermittedSubtrees(SecCertificateRef certificate);
CFArrayRef SecCertificateGetExcludedSubtrees(SecCertificateRef certificate);
const SecCEPolicyConstraints *
SecCertificateGetPolicyConstraints(SecCertificateRef certificate);
CFDictionaryRef
SecCertificateGetPolicyMappings(SecCertificateRef certificate);
const SecCECertificatePolicies *
SecCertificateGetCertificatePolicies(SecCertificateRef certificate);
uint32_t
SecCertificateGetInhibitAnyPolicySkipCerts(SecCertificateRef certificate);
const DERAlgorithmId *SecCertificateGetPublicKeyAlgorithm(
SecCertificateRef certificate);
const DERItem *SecCertificateGetPublicKeyData(SecCertificateRef certificate);
OSStatus SecCertificateIsSignedBy(SecCertificateRef certificate,
SecKeyRef issuerKey);
#ifdef OPTIONAL_METHODS
SecCertificateRef SecCertificateCreateWithPEM(CFAllocatorRef allocator,
CFStringRef pem_certificate);
CFStringRef SecCertificateGetPEM(SecCertificateRef der_certificate);
#endif
#if 0
OSStatus SecCertificateCompleteChain(SecCertificateRef certificate,
CFArrayRef other_certificates);
#endif
#if 0
CFNumberRef SecCertificateGetVersionNumber(SecCertificateRef certificate);
CFDataRef SecCertificateGetSerialDER(SecCertificateRef certificate);
CFStringRef SecCertificateGetSerialString(SecCertificateRef certificate);
CFDataRef SecCertificateGetPublicKeyDER(SecCertificateRef certificate);
CFDataRef SecCertificateGetPublicKeySHA1FingerPrint(SecCertificateRef certificate);
CFDataRef SecCertificateGetPublicKeyMD5FingerPrint(SecCertificateRef certificate);
CFDataRef SecCertificateGetSignatureAlgorithmDER(SecCertificateRef certificate);
CFDataRef SecCertificateGetSignatureAlgorithmName(SecCertificateRef certificate);
CFStringRef SecCertificateGetSignatureAlgorithmOID(SecCertificateRef certificate);
CFDataRef SecCertificateGetSignatureDER(SecCertificateRef certificate);
CFDataRef SecCertificateGetSignatureAlgorithmParametersDER(SecCertificateRef certificate);
CFArrayRef SecCertificateGetSignatureAlgorithmParametersArray(SecCertificateRef certificate);
#if 0
bool SecCertificateIsSignatureValid(SecCertificateRef certificate);
bool SecCertificateIsIssuerChainValid(SecCertificateRef certificate, CFArrayRef additionalCertificatesToSearch);
bool SecCertificateIsSignatureChainValid(SecCertificateRef certificate);
bool SecCertificateIssuerChainHasAnchorIn(SecCertificateRef certificate, CFArrayRef anchors);
bool SecCertificateSignatureChainHasAnchorIn(SecCertificateRef certificate, CFArrayRef anchors);
#endif
CFDataRef SecCertificateGetDER(SecCertificateRef certificate);
OSStatus SecCertificateGetStatus(SecCertificateRef certificate);
CFDataRef SecCertificateGetIssuerDER(SecCertificateRef certificate);
CFDataRef SecCertificateGetNormalizedIssuerDER(SecCertificateRef certificate);
CFArrayRef SecCertificateGetIssuerArray(SecCertificateRef certificate);
CFDataRef SecCertificateGetSubjectDER(SecCertificateRef certificate);
CFDataRef SecCertificateGetNormalizedSubjectDER(SecCertificateRef certificate);
CFArrayRef SecCertificateGetSubjectArray(SecCertificateRef certificate);
CFDateRef SecCertificateGetNotValidBeforeDate(SecCertificateRef certificate);
CFDateRef SecCertificateGetNotValidDateDate(SecCertificateRef certificate);
#if 0
CFIndex SecCertificateGetExtensionCount(SecCertificateRef certificate, index);
CFDataRef SecCertificateGetExtensionAtIndexDER(SecCertificateRef certificate, CFIndex index);
bool SecCertificateIsExtensionAtIndexCritical(SecCertificateRef certificate, CFIndex index);
CFArrayRef SecCertificateGetExtensionAtIndexParamsArray(SecCertificateRef certificate, CFIndex index);
CFStringRef SecCertificateGetExtensionAtIndexName(SecCertificateRef certificate, CFIndex index);
CFStringRef SecCertificateGetExtensionAtIndexOID(SecCertificateRef certificate, CFIndex index);
#else
CFArrayRef SecCertificateGetExtensions(SecCertificateRef certificate);
SecCertificateExtensionRef SecCertificateGetExtensionWithOID(SecCertificateRef certificate, CFDataRef oid);
CFDataRef SecCertificateExtensionGetDER(SecCertificateExtensionRef extension, CFDataRef oid);
CFStringRef SecCertificateExtensionName(SecCertificateExtensionRef extension);
CFDataRef SecCertificateExtensionGetOIDDER(SecCertificateExtensionRef extension, CFDataRef oid);
CFStringRef SecCertificateExtensionGetOIDString(SecCertificateExtensionRef extension, CFDataRef oid);
bool SecCertificateExtensionIsCritical(SecCertificateExtensionRef extension);
CFArrayRef SecCertificateExtensionGetContentDER(SecCertificateExtensionRef extension);
CFArrayRef SecCertificateExtensionGetContentArray(SecCertificateExtensionRef extension);
#endif
#endif
void appendProperty(CFMutableArrayRef properties, CFStringRef propertyType,
CFStringRef label, CFStringRef localizedLabel, CFTypeRef value);
CFStringRef SecDERItemCopyOIDDecimalRepresentation(CFAllocatorRef allocator,
const DERItem *oid);
CFDataRef createNormalizedX501Name(CFAllocatorRef allocator,
const DERItem *x501name);
CFAbsoluteTime SecAbsoluteTimeFromDateContent(DERTag tag, const uint8_t *bytes,
size_t length);
bool SecCertificateHasMarkerExtension(SecCertificateRef certificate, CFTypeRef oid);
typedef OSStatus (*parseGeneralNameCallback)(void *context,
SecCEGeneralNameType type, const DERItem *value);
OSStatus SecCertificateParseGeneralNameContentProperty(DERTag tag,
const DERItem *generalNameContent,
void *context, parseGeneralNameCallback callback);
OSStatus SecCertificateParseGeneralNames(const DERItem *generalNames, void *context,
parseGeneralNameCallback callback);
__END_DECLS
#endif