Рутокен ЭЦП и Fedora

День добрый.

Сегодня обнаружил странную проблему в Fedora 24/25: после генерации ключевой пары не получается создать запрос на сертификат. Странность проблемы заключается в том, что
а) месяц  назад все работало прекрасно (как раз месяц-полтора назад генерировал ключи)
б) с ключами, созданными месяц назад и ранее, все работает и сейчас.

Пример:

[kostousov-ds@irtysh 20:59:28]~(1)% pkcs15-init --erase-card && pkcs15-init --create-pkcs15 --so-pin 1234567890 --so-puk "" && pkcs15-init --store-pin --label "User PIN" --auth-id 02 --pin 123456 --so-pin 1234567890 --puk "" && pkcs11-tool --keypairgen --key-type rsa:2048 --login --label "user" --id 6e65776b6579736574 --pin 123456
Using reader with a card: Aktiv Rutoken ECP 00 00
Using reader with a card: Aktiv Rutoken ECP 00 00
Using reader with a card: Aktiv Rutoken ECP 00 00
Using slot 1 with a present token (0x1)
Key pair generated:
Private Key Object; RSA 
  label:      user
  ID:         6e65776b6579736574
  Usage:      decrypt, sign, unwrap
Public Key Object; RSA 2048 bits
  label:      user
  ID:         6e65776b6579736574
  Usage:      encrypt, verify, wrap
[kostousov-ds@irtysh 21:06:26]~(0)% openssl req -engine pkcs11 -new -key 'pkcs11:id=newkeyset' -keyform engine -out req.pem -text -x509 -subj "/CN=Andreas Jellinghaus"
engine "pkcs11" set.
PKCS#11 token PIN: 
140555738969976:error:80009005:Vendor defined:PKCS11_rsa_encrypt:General Error:p11_rsa.c:117:
140555738969976:error:0D0DC006:asn1 encoding routines:ASN1_item_sign_ctx:EVP lib:a_sign.c:306:

А вот ключ, созданный примерно год назад

[kostousov-ds@irtysh 21:10:16]~(1)% openssl req -engine pkcs11 -new -key 'pkcs11:id=newkeyset' -keyform engine -out req.pem -text -x509 -subj "/CN=Andreas Jellinghaus"
engine "pkcs11" set.
PKCS#11 token PIN: 

Команды для генерации форматирования токена и генерации ключей одни и те же. Проверял на свежеобновленной Fedora 24, Fedora 25: итог один и тот же. Откатывал библиотеки — ничего не поменялось. Даже понять, какое обновление сломало все, не вышло. Более подробно описано тут

Текущие библиотеки:

[kostousov-ds@irtysh 21:34:50]pkcs11(1)% rpm -qa openssl\* \*pkcs11\* libp11\* opensc\*
libp11-0.4.2-1.fc24.x86_64
pkcs11-helper-1.11-8.fc24.x86_64
pam_pkcs11-0.6.8-8.fc24.x86_64
openssl-libs-1.0.2j-1.fc24.i686
openssl-1.0.2j-1.fc24.x86_64
openssl-libs-1.0.2j-1.fc24.x86_64
librtpkcs11ecp-1.1.5-4.x86_64
opensc-0.15.0-6.fc24.x86_64
engine_pkcs11-0.4.2-1.fc24.x86_64

Re: Рутокен ЭЦП и Fedora

dkostousov пишет:

Пример:

[kostousov-ds@irtysh 20:59:28]~(1)% pkcs15-init --erase-card && pkcs15-init --create-pkcs15 --so-pin 1234567890 --so-puk "" && pkcs15-init --store-pin --label "User PIN" --auth-id 02 --pin 123456 --so-pin 1234567890 --puk "" && pkcs11-tool --keypairgen --key-type rsa:2048 --login --label "user" --id 6e65776b6579736574 --pin 123456

[kostousov-ds@irtysh 21:06:26]~(0)% openssl req -engine pkcs11 -new -key 'pkcs11:id=newkeyset' -keyform engine -out req.pem -text -x509 -subj "/CN=Andreas Jellinghaus"
engine "pkcs11" set.
PKCS#11 token PIN: 
140555738969976:error:80009005:Vendor defined:PKCS11_rsa_encrypt:General Error:p11_rsa.c:117:
140555738969976:error:0D0DC006:asn1 encoding routines:ASN1_item_sign_ctx:EVP lib:a_sign.c:306:

Вы не выполнили --finalize при инициализации карты:
https://github.com/OpenSC/OpenSC/wiki/A … utoken-ECP

$ pkcs15-init --erase-card -p rutoken_ecp
$ pkcs15-init --create-pkcs15 --so-pin "87654321" --so-puk ""
$ pkcs15-init --store-pin --label "User PIN" --auth-id 02 --pin "12345678" --puk "" --so-pin "87654321" --finalize

Re: Рутокен ЭЦП и Fedora

dkostousov пишет:

Более подробно описано тут

Будьте добры, закройте баг в багзилле редхата

Re: Рутокен ЭЦП и Fedora

Спасибо. Закрыл.