Виведення ключа з OpenSCv14.0


0

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

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

& amp; намагався передати цей ключ команді opensc:

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

Але це дало мені висновок:

Неможливо прочитати ключ EC від secp384r1key.pem

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


Зауважимо, що багато смарт-карт підтримують тільки до 320 біт, що означає, що P-384 буде занадто великим. Також зауважте, що більшість смарт-карт не прийматимуть приватні ключі для локального сховища.
SEJPM

Мені здається @SEJPM (але я не знаю напевно) --derive виведення ECDH локального (oncard) privatekey проти (номінально) віддаленої publickey, яка відповідає моделі безпеки. Розмір кривої дійсно може бути проблемою, але тільки після отримання параметрів, щоб програма могла зробити запит на карту.
dave_thompson_085

Відповіді:


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 

(або відповідне ім'я за вашим вибором) і спробуйте скористатися цим.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.