I am looking to make use of MD5 or SHA-1 in my iOS application targeted at iOS 4 and later. I use the CC_MD5() and CC_SHA1() functions from CommonCrypto/CommonDigest.h. It seems
CC_SHA1 works as well, I've been using it with 4.3 for a while now.
CC_MD5 does work in iOS 4.3. I think it must have been undocumented before iOS 5 or something.
In the header file at path : /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/include/CommonCrypto/CommonDigest.h
we can see :
extern unsigned char *CC_MD5(const void *data, CC_LONG len, unsigned char *md)
__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);
So, Apple now tell us it is supported :-)
The best way to know if any functions or class methods are available is to set your project deployment target to the lowest ios version you want your app to work on, and test on a real device (or in the iPhone simulator but i think real device is the best solution) running through the deployment target version.
If it's unavailable, your app will crash and debugger will let you know which functions are not usable on this iOS version. You will have to test with a greater version.
If it work on a real device, these functions are available. :)