SecDigestTransform.cpp [plain text]
#include "SecDigestTransform.h"
#include "SecCFRelease.h"
#include "Digest.h"
const CFStringRef kSecDigestMD2 = CFSTR("MD2 Digest"),
kSecDigestMD4 = CFSTR("MD4 Digest"),
kSecDigestMD5 = CFSTR("MD5 Digest"),
kSecDigestSHA1 = CFSTR("SHA1 Digest"),
kSecDigestSHA2 = CFSTR("SHA2 Digest Family"),
kSecDigestHMACMD5 = CFSTR("HMAC-MD5"),
kSecDigestHMACSHA1 = CFSTR("HMAC-SHA1"),
kSecDigestHMACSHA2 = CFSTR("HMAC-SHA2 Digest Family");
const CFStringRef kSecDigestTypeAttribute = CFSTR("Digest Type"),
kSecDigestLengthAttribute = CFSTR("Digest Length"),
kSecDigestHMACKeyAttribute = CFSTR("HMAC Key");
SecTransformRef SecDigestTransformCreate(CFTypeRef digestType,
CFIndex digestLength,
CFErrorRef* error
)
{
SecTransformRef tr = DigestTransform::Make();
DigestTransform* dt = (DigestTransform*) CoreFoundationHolder::ObjectFromCFType(tr);
CFErrorRef result = dt->Setup(digestType, digestLength);
if (result != NULL)
{
CFReleaseNull(tr);
if (error)
{
CFRetainSafe(result);
*error = result;
}
return NULL;
}
return tr;
}
CFTypeID SecDigestTransformGetTypeID()
{
return DigestTransform::GetCFTypeID();
}