Шифрование RSA на iPhone - PullRequest
       37

Шифрование RSA на iPhone

1 голос
/ 10 марта 2010

Согласно обсуждению http://forums.macrumors.com/showthread.php?t=551476 приведенный ниже код подходит для шифрования RSA. Тип данных ключа («public») - SecKeyRef. Я не буду использовать связку ключей, так как меня интересует только шифрование, когда ключ является открытым и не секретным. Возможно ли вообще использовать крипто API? Моя текущая идея - создать структуру SecKeyRef только из моего открытого ключа и использовать API. Я не знаю, как структура объявлена, хотя. Кто-нибудь знает? Как вы думаете, мой подход будет работать?

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

1 Ответ

5 голосов
/ 10 марта 2010

Возможно, вы захотите посмотреть эту ветку на форумах разработчиков Apple, а также проверить пример кода "CryptoExercise".

Короче говоря, рекомендуется распространять свой открытый ключ как сертификат X.509 в кодировке DER, потому что у iPhone есть хорошие инструменты для работы с этим форматом. Вы должны использовать SecCertificateCreateWithData для чтения в DER-кодированном сертификате, а затем SecTrustCopyPublicKey для получения SecKeyRef.

...