Загрузить секретный ключ RSA PKCS # 1 из памяти? - PullRequest
2 голосов
/ 26 марта 2012

Мне нужно написать программу, чтобы установить безопасную связь с USB-устройством. Я должен использовать сгенерированный из него закрытый ключ, который хранится в формате PKCS # 1. Поскольку я использовал Crypto ++ в качестве части своей программы, я хотел бы использовать его и для этой цели.

Однако я не могу найти способ импортировать закрытый ключ RSA из памяти. Он принимает закрытый ключ только в формате PKCS # 8. Может ли какой-то профессионал показать мне пример кода, как это сделать? Большое спасибо!

1 Ответ

2 голосов
/ 03 октября 2013

Формат PKCS # 1 закодирован в ASN.1.Для RSAPublicKey и RSAPrivateKey это просто:

RSA::PublicKey publicKey(...);

ByteQueue queue;
publicKey.Save(queue);

// The public key is now in the ByteQueue in PKCS #1 format

// ------------

// Load a PKCS #1 private key
byte key[] = {...}
ArraySource arr(key, sizeof(key));

RSA::PrivateKey privateKey;
privateKey.Load(arr);

// The private key is now ready to use

Сохранение и загрузка ключей более подробно обсуждаются на вики-сайте Crypto ++ в Ключи и форматы .

...