Рутокен ЭЦП 2.0 + OpenSSL + rtengine

Здравствуйте!

Установил rtengine 1.4.2 как сказано в инструкции: https://dev.rutoken.ru/pages/viewpage.a … d=89096210
Версия OpenSSL  = 1.1.1f
Конфигурационный файл openssl.cnf:

openssl_conf = openssl_def
---***---
[openssl_def]
engines = engine_section

[engine_section]
rtengine = gost_section

[gost_section]
#engine_id = rtengine
dynamic_path = /usr/lib/x86_64-linux-gnu/librtengine.so
pkcs11_path = /usr/lib/librtpkcs11ecp.so
rand_token = pkcs11:manufacturer=Aktiv%20Co.;model=Rutoken%20ECP;id=048883ad0cce9ce51ea7206c8f7d629a6bfdeb22
default_algorithms = CIPHERS, DIGEST, PKEY
enable_rand = yes

Пробую создать подпись:

openssl dgst -keyform engine -sign "pkcs11:manufacturer=Aktiv%20Co.;model=Rutoken%20ECP;id=048883ad0cce9ce51ea7206c8f7d629a6bfdeb22" -engine rtengine -out signature.txt text.txt

меня спрашивает PIN-code, я ввожу: 12345678, на что получаю ошибку:

~/xml/folder_xml$ openssl dgst -keyform engine -sign "pkcs11:manufacturer=Aktiv%20Co.;model=Rutoken%20ECP;id=048883ad0cce9ce51ea7206c8f7d629a6bfdeb22" -engine rtengine -out signature.txt text.txt
engine "rtengine" set.
Enter PKCS#11 token PIN:
cannot load key file from engine
140596479698240:error:81107067:lib(129):find_keypair:could not find public key:/home/jenkins/newjenkins/workspace/rtengine-build/2bbfba9d/engine/standalone/standalone.c:443:
140596479698240:error:26096080:engine routines:ENGINE_load_private_key:failed loading private key:../crypto/engine/eng_pkey.c:77:
unable to load key file

Подскажите, пожалуйста, с чем может быть связана данная ошибка?
PS: очень интересный путь в выводе ошибки: /home/jenkins/newjenkins/...

Re: Рутокен ЭЦП 2.0 + OpenSSL + rtengine

Добрый день.
Можете прислать вывод команды pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O -l

Re: Рутокен ЭЦП 2.0 + OpenSSL + rtengine

Добрый день!

rand_token = pkcs11:manufacturer=Aktiv%20Co.;model=Rutoken%20ECP;id=048883ad0cce9ce51ea7206c8f7d629a6bfdeb22

Здесь нужен идентификатор токена, а не объекта, например

rand_token = pkcs11:manufacturer=Aktiv%20Co.;model=Rutoken%20ECP;serial=2adc8d87
vanobl пишет:

Пробую создать подпись:

openssl dgst -keyform engine -sign "pkcs11:manufacturer=Aktiv%20Co.;model=Rutoken%20ECP;id=048883ad0cce9ce51ea7206c8f7d629a6bfdeb22" -engine rtengine -out signature.txt text.txt

Убедитесь, что правильно указываете url приватного ключа. Правильные url объектов показывает, например, утилита p11tool (пакет gnutls-bin):

p11tool --provider '/usr/lib/librtpkcs11ecp.so' --list-privkeys --login --set-pin 12345678
Object 0:
    URL: pkcs11:model=Rutoken%20ECP;manufacturer=Aktiv%20Co.;serial=40636e48;token=Rutoken%20ECP%20%3Cno%20label%3E;id=%50%6C%75%67%69%6E%33%30%30%35%32%30%32%32%31%39%34%36%31%35;object=%00;type=private
    Type: Private key
    Label: 
    Flags: CKA_PRIVATE; CKA_NEVER_EXTRACTABLE; CKA_SENSITIVE; 
    ID: 50:6c:75:67:69:6e:33:30:30:35:32:30:32:32:31:39:34:36:31:35

Object 1:
    URL: pkcs11:model=Rutoken%20ECP;manufacturer=Aktiv%20Co.;serial=40636e48;token=Rutoken%20ECP%20%3Cno%20label%3E;id=%50%6C%75%67%69%6E%33%30%30%35%32%30%32%32%31%39%33%32%32%37;object=%00;type=private
    Type: Private key
    Label: 
    Flags: CKA_PRIVATE; CKA_NEVER_EXTRACTABLE; CKA_SENSITIVE; 
    ID: 50:6c:75:67:69:6e:33:30:30:35:32:30:32:32:31:39:33:32:32:37

В полном url необходимости нет; достаточно указать model и id.

vanobl пишет:

PS: очень интересный путь в выводе ошибки: /home/jenkins/newjenkins/...

Приятно, что пользователи и партнеры позитивно относятся к современным практикам разработки, в том числе к использованию Continuous Integration.

Re: Рутокен ЭЦП 2.0 + OpenSSL + rtengine

Здравствуйте!
Я разобрался с проблемой. Теперь всё работает отлично.
Ошибка была в не правильном указании пути к токену