Я пытаюсь получить секретный ключ с помощью инструмента OpenSC. Я сгенерировал ключ EC с помощью openssl с помощью следующей команды:

openssl ecparam -in secp384r1param.pem -genkey -noout -out secp384r1key.pem

& попытался передать этот ключ команде opensc:

pkcs11-tool.exe --module opensc-pkcs11.dll --derive -l -pin #### -id 03 -i secp384r1key.pem

Но это дало мне вывод:

Не удается прочитать ключ EC из secp384r1key.pem

Небольшая отладка показала мне, что функция openssl d2i_EC_PUBKEY_bio эту ошибку. Я пытался найти какую-либо помощь в формате входного файла для этого, но безрезультатно. Ребята, вы можете мне помочь? Где я ошибаюсь в процессе? Я только начал работать со смарт-картами и ридерами.

1 ответ1

0

OpenSSL {d2i,i2d}_$type[_$io] подпрограммы для чтения и записи DER (d2i означает DER-to-internal, i2d означает внутреннее-DER); PEM_{read,write}[_$io]_$type чтение и запись PEM. Подпрограммы, в которых типом является [$alg_]PUBKEY чтения и записи открытых ключей в универсальной форме X.509 SubjectPublicKeyInfo, которая обычно предпочтительна (хотя существуют альтернативы). У вас есть закрытый ключ в формате PEM (не общий, но это не имеет значения), и программе нужен открытый ключ в общем формате DER. Делать

openssl ec -in blahkeyfile.pem -out blahpubfile.der -pubout -outform der 

(или подходящее имя по вашему выбору) и попробуйте использовать это вместо.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .