Версия ====== Текущая в Sisyphus: librtpkcs11ecp-2.3.0.0-alt1 Обнаружено, начиная с librtpkcs11ecp-2.1.2.0-alt1 Шаги воспроизведения ==================== Согласно инструкции на вики: https://www.altlinux.org/Rutoken#Инициализация_токена_2: 1. Подключил Рутокен ЭЦП 2.0 2. Проверил видимость Рутокена в системе: $ pkcs11-tool -L --module /usr/lib64/pkcs11/librtpkcs11ecp.so Available slots: Slot 0 (0x0): Aktiv Rutoken ECP 00 00 token label : Rutoken token manufacturer : Aktiv Co. token model : Rutoken ECP token flags : login required, rng, SO PIN to be changed, token initialized, PIN initialized, user PIN to be changed hardware version : 20.5 firmware version : 23.2 serial num : XXXXXXXX pin min/max : 6/32 3. Пробую инициализировать Рутокен: $ pkcs11-tool --init-token --label RuTokenECP --module /usr/lib64/pkcs11/librtpkcs11ecp.so Using slot 0 with a present token (0x0) Please enter the new SO PIN: Please enter the new SO PIN (again): Ожидаемый результат: Token successfully initialized Фактический результат: ошибка error: PKCS11 function C_InitToken failed: rv = unknown PKCS11 error (0x200) Aborting. Примечание: форматирование через rtadmin проходит успешно ($ rtadmin -f -z /usr/lib64/pkcs11/librtpkcs11ecp.so).
Так же не работает инициализация пинкода $ pkcs11-tool --slot 0 --init-pin --so-pin XXXXXXXX --login --pin XXXXXXXX --module /usr/lib64/pkcs11/librtpkcs11ecp.so error: PKCS11 function C_InitPIN failed: rv = unknown PKCS11 error (0x200) Aborting.
p10 librtpkcs11ecp-2.7.1.0-alt1 Аналогично не работает для Рутокен Lite $ pkcs11-tool -L --module /usr/lib64/pkcs11/librtpkcs11ecp.so Available slots: Slot 0 (0x0): Aktiv Rutoken lite 00 00 token label : Rutoken lite <no label> token manufacturer : Aktiv Co. token model : Rutoken lite token flags : login required, rng, SO PIN to be changed, token initialized, PIN initialized hardware version : 54.1 firmware version : 9.2 serial num : 3d0c4837 pin min/max : 6/32 $ pkcs11-tool --init-token --label "Rutoken lite" --module /usr/lib64/pkcs11/librtpkcs11ecp.so Using slot 0 with a present token (0x0) Please enter the new SO PIN: Please enter the new SO PIN (again): error: PKCS11 function C_InitToken failed: rv = unknown PKCS11 error (0x200) Так же не работает инициализация пинкода: $ pkcs11-tool --init-pin -l --module /usr/lib64/pkcs11/librtpkcs11ecp.so Using slot 0 with a present token (0x0) Logging in to "Rutoken lite <no label>". WARNING: SO PIN to be changed Please enter SO PIN: Please enter the new PIN: Please enter the new PIN again: error: PKCS11 function C_InitPIN failed: rv = unknown PKCS11 error (0x200) Aborting. Работает смена пинкода: $ pkcs11-tool --module /usr/lib64/pkcs11/librtpkcs11ecp.so --login --pin XXXXXXX --change-pin --new-pin XXXXXXX Using slot 0 with a present token (0x0) PIN successfully changed Форматирование через rtadmin проходит успешно ($ rtadmin -f -z /usr/lib64/pkcs11/librtpkcs11ecp.so)
Для форматирования с использованием pkcs11-tool необходимо, чтобы ПИН-код Пользователя мог менять сам Пользователь и Администратор. Если это не так, то отформатировать токен сначала необходимо с помощью утилиты rtadmin с доп. флагом -p: rtadmin -f -p 3 -L RutokenLabel -u 12345678 -a 87654321 -q Флаг -p 3 указывает на то, что ПИН-код Пользователя может менять Пользователь и Администратор. После этого инициализация токена и ПИН-кода через pkcs11-tool происходит без ошибок. Проверено для librtpkcs11ecp-2.7.1.0-alt1.x86_64 и Rutoken Lite на p10.