Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Are CC_MD5() and CC_SHA1() available in iOS 4?

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 to work fine on an iPhone running iOS 4.1 and in the iPhone 4.0 simulator, but I am concerned because the functions are declared as follows in the iOS 5 SDK that comes with XCode 4.2:

extern unsigned char *CC_MD5(const void *data, CC_LONG len, unsigned char *md)
__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_5_0);

extern unsigned char *CC_SHA1(const void *data, CC_LONG len, unsigned char *md)
__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_5_0);

This seems to indicate that the functions are only available with iOS 5 and later.

Are these functions allowed in an iOS 4 application, and if so, is there any official reference to document that fact?

like image 219
GBegen Avatar asked Nov 01 '11 19:11

GBegen


2 Answers

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 :-)

like image 147
ıɾuǝʞ Avatar answered Nov 09 '22 16:11

ıɾuǝʞ


CC_SHA1 works as well, I've been using it with 4.3 for a while now.

like image 2
Simon Germain Avatar answered Nov 09 '22 17:11

Simon Germain