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