2010-03-10 4 views
1

Selon la discussion sur http://forums.macrumors.com/showthread.php?t=551476 le code vu ci-dessous ferait pour le chiffrement RSA. Le type de données de la clé ("public") est SecKeyRef. Cependant, je n'utiliserai pas le trousseau, car je ne m'intéresse qu'au cryptage où la clé est publique et n'est pas un secret. Est-il même possible d'utiliser l'API crypto alors? Mon idée actuelle est de construire une structure SecKeyRef à partir de ma clé publique uniquement et d'utiliser l'API. Je ne sais pas comment la structure est déclarée, cependant. Est-ce que quelqu'un sait? Pensez-vous que mon approche fonctionnera?Chiffrement RSA sur l'iPhone

uint8_t *pPlainText = (uint8_t*) "This is a test"; 
uint8_t aCipherText[1024]; 
size_t iCipherLength = 1024; 

status = SecKeyEncrypt(public, 
         kSecPaddingNone, 
         pPlainText, 
         strlen((char*) pPlainText) + 1, 
         aCipherText, 
         &iCipherLength); 

Répondre

5

Vous voulez probablement regarder this thread sur les forums Apple Developer, et vérifiez également l'exemple de code "CryptoExercise". En résumé, la recommandation est de distribuer votre clé publique sous forme de certificat X.509 codé DER, car l'iPhone dispose de bons outils pour travailler avec ce format. Vous devez utiliser SecCertificateCreateWithData pour lire dans le certificat codé DER, puis SecTrustCopyPublicKey pour obtenir le SecKeyRef.