2010-03-10 7 views
1

http://forums.macrumors.com/showthread.php?t=551476에 대한 토론에 따르면 아래 코드는 RSA 암호화에 사용됩니다. 키 ("public")의 데이터 유형은 SecKeyRef입니다. 키 체인을 사용하지는 않겠지 만, 키가 공개이고 비밀이 아닌 암호화에만 관심이 있기 때문에 키 체인을 사용하지 않을 것입니다. 그럼 암호화 API를 사용할 수 있습니까? 나의 현재 아이디어는 내 공개 키로만 SecKeyRef 구조체를 만들고 API를 사용하는 것이다. 하지만 구조체가 어떻게 선언되는지는 모르겠다. 아는 사람 있나요? 내 접근 방식이 효과가 있다고 생각하니?iPhone에서의 RSA 암호화

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

답변

5

당신은 아마도 애플 개발자 포럼에 this thread보고, 또한 "CryptoExercise"샘플 코드를 체크 아웃합니다.

간단히 말해서 iPhone에 DER로 인코딩 된 X.509 인증서가 공개 키로 배포되는 것이 좋습니다. iPhone에 해당 형식으로 작업하기위한 훌륭한 도구가 있기 때문입니다. SecCertificateCreateWithData를 사용하여 DER로 인코딩 된 인증서를 읽은 다음 SecTrustCopyPublicKey를 사용하여 SecKeyRef를 가져옵니다.