Как использовать закрытый ключ PKCS8 RSA DER в iOS?

Во время выполнения мое iOS-приложение получает файл с парой открытых и закрытых ключей RSA, созданный кем-то другим ».с Java:

KeyPairGenerator keygenerator;
keygenerator = KeyPairGenerator.getInstance("RSA");
keygenerator.initialize(4096);

KeyPair keypair = keygenerator.generateKeyPair();
PrivateKey privateKey = keypair.getPrivate().getEncoded();
PublicKey publicKey = keypair.getPublic().getEncoded();

Я успешно прочитал и использовалобщественности ключ, используяЭтот метод, которая снимает какую-то преамбулу с ключа.

Теперь я хочу использоватьчастный ключ. Тот же метод неЯ предположил, что преамбула как-то отличается. Блог предположил, что он импортирует ключи PEM PKCS # 1, но затем говорит, что онибинарные, так что я думаю, что они просто означают ключи DER в кодировке Base64. Я также обнаружил, что, возможно, у меня есть ключиPKCS # 8 закодировано вместо

Конечно, я могу использовать

openssl pkcs8 -nocrypt -inform der < pk8.der > pvt.pem

на примере закрытого ключа и openssl не делаетне жалуюсь

Имеет ли смысл, чтобы открытым ключом был PKCS # 1, а закрытым PKCS # 8?

Но я действительно хотел бы использовать CommonCrypto и Security Framework вместо связи с OpenSSL, если явозможно Можно. На Mac OS есть функции вlibsecurity читать PKCS # 8, но это не такЯ еще не добрался до iOS. Честно говоря, я пытался прочитать источник, но я могуне могу понять, где они на самом деле лишают ключ.

[TL; DR] Как я могу раздетьверсия и алгоритм PKCS # 8 полей из закрытого ключа DER, и просто получить простой ключ, используя либо CommonCrypto или какой-либо C / C ++ / ObjC?

Ответы на вопрос(2)

Ваш ответ на вопрос