#pragma once
#if USE(APPLE_INTERNAL_SDK)
#include <Security/SecCertificatePriv.h>
#include <Security/SecTask.h>
#include <Security/SecTrustPriv.h>
#if PLATFORM(MAC)
#include <Security/keyTemplates.h>
#endif
#else
#include <Security/SecBase.h>
typedef uint32_t SecSignatureHashAlgorithm;
enum {
kSecSignatureHashAlgorithmUnknown = 0,
kSecSignatureHashAlgorithmMD2 = 1,
kSecSignatureHashAlgorithmMD4 = 2,
kSecSignatureHashAlgorithmMD5 = 3,
kSecSignatureHashAlgorithmSHA1 = 4,
kSecSignatureHashAlgorithmSHA224 = 5,
kSecSignatureHashAlgorithmSHA256 = 6,
kSecSignatureHashAlgorithmSHA384 = 7,
kSecSignatureHashAlgorithmSHA512 = 8
};
WTF_EXTERN_C_BEGIN
SecSignatureHashAlgorithm SecCertificateGetSignatureHashAlgorithm(SecCertificateRef);
WTF_EXTERN_C_END
#endif
typedef struct __SecTask *SecTaskRef;
typedef struct __SecTrust *SecTrustRef;
WTF_EXTERN_C_BEGIN
SecTaskRef SecTaskCreateWithAuditToken(CFAllocatorRef, audit_token_t);
SecTaskRef SecTaskCreateFromSelf(CFAllocatorRef);
CFTypeRef SecTaskCopyValueForEntitlement(SecTaskRef, CFStringRef entitlement, CFErrorRef *);
#if PLATFORM(MAC)
#include <Security/SecAsn1Types.h>
CFStringRef SecTaskCopySigningIdentifier(SecTaskRef, CFErrorRef *);
extern const SecAsn1Template kSecAsn1AlgorithmIDTemplate[];
extern const SecAsn1Template kSecAsn1SubjectPublicKeyInfoTemplate[];
uint32_t SecTaskGetCodeSignStatus(SecTaskRef);
#endif
#if HAVE(SEC_TRUST_SERIALIZATION)
CF_RETURNS_RETAINED CFDataRef SecTrustSerialize(SecTrustRef, CFErrorRef *);
CF_RETURNS_RETAINED SecTrustRef SecTrustDeserialize(CFDataRef serializedTrust, CFErrorRef *);
#endif
CF_RETURNS_RETAINED CFDictionaryRef SecTrustCopyInfo(SecTrustRef);
extern const CFStringRef kSecTrustInfoExtendedValidationKey;
extern const CFStringRef kSecTrustInfoCompanyNameKey;
extern const CFStringRef kSecTrustInfoRevocationKey;
WTF_EXTERN_C_END