X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/80e2389990082500d76eb566d4946be3e786c3ef..d8f41ccd20de16f8ebe2ccc84d47bf1cb2b26bbb:/Security/libsecurity_transform/lib/SecDigestTransform.cpp diff --git a/Security/libsecurity_transform/lib/SecDigestTransform.cpp b/Security/libsecurity_transform/lib/SecDigestTransform.cpp new file mode 100644 index 00000000..9ab767c5 --- /dev/null +++ b/Security/libsecurity_transform/lib/SecDigestTransform.cpp @@ -0,0 +1,49 @@ +#include "SecDigestTransform.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) + { + // an error occurred + CFRelease(tr); + + if (error) + { + *error = result; + } + + return NULL; + } + + return tr; +} + + + +CFTypeID SecDigestTransformGetTypeID() +{ + return DigestTransform::GetCFTypeID(); +}