9
votes

CC_MD5 () et CC_SHA1 () disponibles dans iOS 4?

Je cherche à utiliser MD5 ou SHA-1 dans mon application iOS ciblée sur iOS 4 et plus tard. J'utilise les fonctions cc_md5 () et cc_sha1 () de CommonCrypto / CommonGigest.h. Il semble bien fonctionner sur un iPhone exécuté iOS 4.1 et dans le simulateur iPhone 4.0, mais je suis concerné car les fonctions sont déclarées comme suit dans le SDK iOS 5 fourni avec 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);


3 commentaires

Avez-vous trouvé une réponse à cela?


Pas encore de réponse officielle. Je vais actuellement avec mes propres preuves empiriques qu'il fonctionne bien sur le simulateur IOS 4 et tous les appareils iOS 4 que j'ai essayés.


J'ai écrit un certain code à l'aide de ces fonctions contre le SDK 4.x uniquement pour les trouver marqués comme à partir de 5,0. Je pense que c'est probablement une erreur dans la déclaration OSX_AVAILABLE_STARTING. Certains googlings superficiels n'ont pas abouti aucune preuve de cela.


4 Réponses :


1
votes

cc_md5 fonctionne dans iOS 4.3. Je pense que cela doit avoir été sans papiers avant iOS 5 ou quelque chose.


0 commentaires

2
votes

CC_SHA1 fonctionne également, je l'utilise avec 4,3 pendant un moment.


0 commentaires

0
votes

La meilleure façon de savoir si des fonctions ou des méthodes de classe sont disponibles est de définir la cible de déploiement de votre projet sur la version iOS la plus basse que vous souhaitez que votre application fonctionne et testez sur un périphérique réel (ou dans le simulateur iPhone mais je Pensez que le réel appareil est la meilleure solution) à travers la version cible de déploiement.

Si c'est indisponible, votre application s'écrasera et le débogueur vous permettra de savoir quelles fonctions ne sont pas utilisables sur cette version iOS. Vous devrez tester avec une plus grande version.

Si cela fonctionne sur un périphérique réel, ces fonctions sont disponibles. :)


0 commentaires

2
votes

Dans le fichier d'en-tête sur Chemin: /appplications/xcode.app/contents/developer/platforms/iphoneos.platform/developer/sdks/iphoneos6.0.sdk/usr/include/commmoncrypto/commondest.h

Nous pouvons voir: P>

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


0 commentaires