#ifndef SecuritySPI_h
#define SecuritySPI_h
#if USE(APPLE_INTERNAL_SDK)
#include <Security/SecCertificatePriv.h>
#include <Security/SecTask.h>
#include <Security/SecTrustPriv.h>
#else
#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100) || PLATFORM(IOS)
typedef uint32_t SecSignatureHashAlgorithm;
enum {
kSecSignatureHashAlgorithmUnknown = 0,
kSecSignatureHashAlgorithmMD2 = 1,
kSecSignatureHashAlgorithmMD4 = 2,
kSecSignatureHashAlgorithmMD5 = 3,
kSecSignatureHashAlgorithmSHA1 = 4,
kSecSignatureHashAlgorithmSHA224 = 5,
kSecSignatureHashAlgorithmSHA256 = 6,
kSecSignatureHashAlgorithmSHA384 = 7,
kSecSignatureHashAlgorithmSHA512 = 8
};
EXTERN_C SecSignatureHashAlgorithm SecCertificateGetSignatureHashAlgorithm(SecCertificateRef);
#endif
#endif
typedef struct __SecTask *SecTaskRef;
EXTERN_C SecTaskRef SecTaskCreateWithAuditToken(CFAllocatorRef, audit_token_t);
EXTERN_C SecTaskRef SecTaskCreateFromSelf(CFAllocatorRef);
EXTERN_C CFTypeRef SecTaskCopyValueForEntitlement(SecTaskRef, CFStringRef entitlement, CFErrorRef *);
#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200
EXTERN_C CFStringRef SecTaskCopySigningIdentifier(SecTaskRef, CFErrorRef *);
#endif
#if HAVE(SEC_TRUST_SERIALIZATION)
EXTERN_C CF_RETURNS_RETAINED CFDataRef SecTrustSerialize(SecTrustRef, CFErrorRef *);
EXTERN_C CF_RETURNS_RETAINED SecTrustRef SecTrustDeserialize(CFDataRef serializedTrust, CFErrorRef *);
#endif
#endif // SecuritySPI_h