Закрытый ключ RSA может быть закодирован в DER двумя способами. Либо он имеет заголовок, определяющий, что это за ключ, либо может быть просто списком полей (как определено в последовательности PKCS # 1 RSAPrivateKey). Команда openssl
сама обрабатывает обе формы прозрачно в большинстве случаев, но d2i_RSAPrivateKey
нет. Он ожидает, что последовательность RSAPrivateKey
будет доступна напрямую.
Необходимый файл может быть сгенерирован из файла формата DER или PEM. Это делается с помощью openssl rsa -in ... -outform DER -out ...
Обернутые формат выглядит в openssl asn1parse
выход:
0:d=0 hl=4 l=2370 cons: SEQUENCE
4:d=1 hl=2 l= 1 prim: INTEGER :00
7:d=1 hl=2 l= 13 cons: SEQUENCE
9:d=2 hl=2 l= 9 prim: OBJECT :rsaEncryption
20:d=2 hl=2 l= 0 prim: NULL
22:d=1 hl=4 l=2348 prim: OCTET STRING [HEX DUMP].....
развернутая один выглядит следующим образом:
0:d=0 hl=4 l=2344 cons: SEQUENCE
4:d=1 hl=2 l= 1 prim: INTEGER :00
7:d=1 hl=4 l= 513 prim: INTEGER :...
524:d=1 hl=2 l= 3 prim: INTEGER :010001
529:d=1 hl=4 l= 513 prim: INTEGER :...