X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/5dd5f9ec28f304ca377c42fd7f711d6cf12b90e1..5c19dc3ae3bd8e40a9c028b0deddd50ff337692c:/OSX/libsecurity_transform/lib/SecDigestTransform.cpp diff --git a/OSX/libsecurity_transform/lib/SecDigestTransform.cpp b/OSX/libsecurity_transform/lib/SecDigestTransform.cpp new file mode 100644 index 00000000..9ab767c5 --- /dev/null +++ b/OSX/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(); +}