Re: ruToken под Linux. подпись запросов на сертификат.

версия 0.12

nikl@ak49:~$ pkcs11-tool --module /usr/lib/opensc-pkcs11.so --list-objects --login
Using slot 1 with a present token (0x1)
Logging in to "Rutoken S (User PIN)".
Please enter User PIN: 
Private Key Object; RSA 
  label:      CA-KEY
  ID:         47
  Usage:      sign
Public Key Object; RSA 2048 bits
  label:      CA-KEY
  ID:         47
  Usage:      none
Certificate Object, type = X.509 cert
  label:      CA-CERT
  ID:         47

версия 0.11

nikl@ak49:~$ pkcs11-tool --module /usr/lib/opensc-pkcs11.so --list-objects --login
Please enter User PIN: 
Private Key Object; RSA 
  label:      CA-KEY
  ID:         47
  Usage:      sign
Public Key Object; RSA 2048 bits
  label:      CA-KEY
  ID:         47
  Usage:      none
Certificate Object, type = X.509 cert
  label:      CA-CERT
  ID:         47

Re: ruToken под Linux. подпись запросов на сертификат.

ну вроде все ок

попробуйте подписать запрос, используя opensc-pkcs11 версии 0.11.13

Re: ruToken под Linux. подпись запросов на сертификат.

Кирилл Мещеряков пишет:

ну вроде все ок

попробуйте подписать запрос, используя opensc-pkcs11 версии 0.11.13

Using configuration from openssl.cnf
engine "pkcs11" set.
Found empty token; 
PKCS11_get_private_key returned NULL
unable to load CA private key
19879:error:26096080:engine routines:ENGINE_load_private_key:failed loading private key:eng_pkey.c:126:

Re: ruToken под Linux. подпись запросов на сертификат.

nkrasnoyarsky пишет:
Кирилл Мещеряков пишет:

ну вроде все ок

попробуйте подписать запрос, используя opensc-pkcs11 версии 0.11.13

Using configuration from openssl.cnf
engine "pkcs11" set.
Found empty token; 
PKCS11_get_private_key returned NULL
unable to load CA private key
19879:error:26096080:engine routines:ENGINE_load_private_key:failed loading private key:eng_pkey.c:126:

Собственно, я тут не вижу использования библиотеки opensc-pkcs11.so, которой пользуется openssl

nikl@ak49:~$ ldd `which pkcs11-tool`
    linux-vdso.so.1 =>  (0x00007fff811e7000)
    libcrypto.so.0.9.8 => /lib/libcrypto.so.0.9.8 (0x00007fa0c24a9000)
    libopensc.so.2 => /usr/lib/libopensc.so.2 (0x00007fa0c21f8000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x00007fa0c1fda000)
    libc.so.6 => /lib/libc.so.6 (0x00007fa0c1c57000)
    libltdl.so.7 => /usr/lib/libltdl.so.7 (0x00007fa0c1a4d000)
    libdl.so.2 => /lib/libdl.so.2 (0x00007fa0c1848000)
    libz.so.1 => /lib/libz.so.1 (0x00007fa0c1631000)
    libscconf.so.2 => /usr/lib/libscconf.so.2 (0x00007fa0c142b000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fa0c2859000)

Re: ruToken под Linux. подпись запросов на сертификат.

А какой версией opensc вы инициализировали токен? Не могло так получиться, что вы его проинициализировали с помощью более новой версии opensc (0.12), а теперь пытаетесь считывать ключ с помощью 0.11?

То что pkcs11-tool версии 0.11 видит объекты на токене, это, в общем не показатель того, что все будет гладко при считывании.

Re: ruToken под Linux. подпись запросов на сертификат.

nkrasnoyarsky пишет:
nkrasnoyarsky пишет:
Кирилл Мещеряков пишет:

ну вроде все ок

попробуйте подписать запрос, используя opensc-pkcs11 версии 0.11.13

Using configuration from openssl.cnf
engine "pkcs11" set.
Found empty token; 
PKCS11_get_private_key returned NULL
unable to load CA private key
19879:error:26096080:engine routines:ENGINE_load_private_key:failed loading private key:eng_pkey.c:126:

Собственно, я тут не вижу использования библиотеки opensc-pkcs11.so, которой пользуется openssl

nikl@ak49:~$ ldd `which pkcs11-tool`
    linux-vdso.so.1 =>  (0x00007fff811e7000)
    libcrypto.so.0.9.8 => /lib/libcrypto.so.0.9.8 (0x00007fa0c24a9000)
    libopensc.so.2 => /usr/lib/libopensc.so.2 (0x00007fa0c21f8000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x00007fa0c1fda000)
    libc.so.6 => /lib/libc.so.6 (0x00007fa0c1c57000)
    libltdl.so.7 => /usr/lib/libltdl.so.7 (0x00007fa0c1a4d000)
    libdl.so.2 => /lib/libdl.so.2 (0x00007fa0c1848000)
    libz.so.1 => /lib/libz.so.1 (0x00007fa0c1631000)
    libscconf.so.2 => /usr/lib/libscconf.so.2 (0x00007fa0c142b000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fa0c2859000)

Утилите Pkcs11-tool вы задаете в параметрах командной строки, какой pkcs11 использовать. Кстати, не могло так получиться, что вы ей указываете одну и туже библиотеку opensc-pkcs11.so версии 0.12?

Re: ruToken под Linux. подпись запросов на сертификат.

Виктор Ткаченко пишет:

А какой версией opensc вы инициализировали токен? Не могло так получиться, что вы его проинициализировали с помощью более новой версии opensc (0.12), а теперь пытаетесь считывать ключ с помощью 0.11?

Вполне возможно. Но 0.12 ведь не даст мне засунуть ключи на токен, ибо с 0.12.0 выпилили поддержку RSA

Re: ruToken под Linux. подпись запросов на сертификат.

О, у меня все получилось!!

было
openssl ca -config openssl.cnf -engine pkcs11 -keyform engine -keyfile slot_1-id_47 -cert keys/ca.crt -in user.csr -out user.crt

стало
openssl ca -config openssl.cnf -engine pkcs11 -keyform engine -keyfile slot_0-id_47 -cert keys/ca.crt -in user.csr -out user.crt

Re: ruToken под Linux. подпись запросов на сертификат.

Прекрасно!