Запись ключей по ГОСТ в Rutoken 3.0 ЭЦП (в Linux)
При попытке записать ключ, созданный с помощью OpenSSL по ГОСТ в Рутокен получаю ошибку.
Вот примерный код на bash:
PIN="12345678"
ID="3034" # это будет pkcs11:id=04
LABEL="GOST-04"
KEYOPT="--usage-derive"
EXTRACTABLE="--extractable"
export OPENSSL_CONF=/etc/ssl/openssl_rutoken.cnf
# Создание ключевой пары ГОСТ в фомате DER
openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A | \
openssl pkey -inform PEM -outform DER -out key.der
# отделить открытый ключ
openssl pkey -inform DER -in key.der -outform DER -pubout -out pub.der
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so \
--login --pin "$PIN" \
--id "$ID" --label "$LABEL" $KEYOPT \
--write-object key.der --type privkey && rm key.der
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so \
--login --pin "$PIN" \
--id "$ID" --label "$LABEL" $KEYOPT $EXTRACTABLE \
--write-object pub.der --type pubkey && rm pub.der
Похожий пример с RSA ключом работает успешно - в токен записывается пара ключей успешно...
Как говорится:
- Учитель, а где у меня ошибка в коде? - спрашивает ученик.
- Хм..... Вероятно в ДНК. - отвечают учитель информатики.
Что-то мне подсказывает, что OpenSSL и Рутокен понимают ключи по ГОСТу в разных форматах...
Но хотелось бы решить задачу...