Для отладки приложений использующих интерфейс PKCS#11 можно использовать утилиту PKCS11-SPY.
Это переработанная версия утилиты, входящей в проект OpenSC и отличается от нее поддержкой расширенного интерфейса.
Утилита выводит лог PKCS#11 вызовов в формате текстового файла.
...
1. Подготовка файлов
Заменим оригинальную библиотеку на библиотеку-шпион, для этого:
1. Загрузите архив - pkcs11-spy.zipЗагрузите архив с Рутокен SDK
2. Разархивируйте содержимое, утилита PKCS11-SPY находится в папке <sdk>\pkcs11\util\pkcs11-spy
3. Выберите версию ОС и разрядность в соответствии с разрядностью приложения
- Рутокен Плагин использует 32х разрядную библиотеку PKCS#11
- Драйверы Рутокен содержат обе библиотеки. Какая используется – зависит от битности разрядности отлаживаемого приложения.
...
- для Рутокен Плагин - C:\Users\Имя_пользователя\AppData\Roaming\Aktiv Co\CryptoPlugin\4.4.1.0
- для Драйверов Рутокен – : C:\Windows\System32\ или Cили C:\Windows\SysWOW64\
5. Переименуйте оригинальную библиотеку PKCS#11 (rtPKCS11ECP), например, в rtPKCS11ECP-orig
6. Скопируйте rtpkcs11-spy.dll(.dylib или .so) из разархивированной папки в папку с оригинальной библиотекой PKCS#11 (rtPKCS11ECP)
7. Переименуйте библиотеку-шпион, задав ей имя оригинальной библиотеки PKCS#11 (rtPKCS11ECP)
2. Настройка утилиты
Теперь укажем утилите путь до оригинальной библиотеки и путь, куда будет записываться лог-файл.
...
В реестре установить в строковый параметр HKLM\Software\Aktiv Co.\Rutoken\rtPKCS11-Spy\Module путь к оригинальной библиотеке PKCS#11 (rtPKCS11ECP-orig).
В реестре установить в строковый параметр HKLM\Software\Aktiv Co.\Rutoken\rtPKCS11-Spy\Output путь к лог файлу, в который будет записываться последовательность вызовов PKCS#11 функций.
...
В реестре установить в строковый параметр HKLM\Software\Aktiv Co.\Rutoken\rtPKCS11-Spy\Module путь к оригинальной библиотеке PKCS#11 (rtPKCS11ECP-orig).
В реестре установить в строковый параметр HKLM\Software\Aktiv Co.\Rutoken\rtPKCS11-Spy\Output путь к лог файлу, в который будет записываться последовательность вызовов PKCS#11 функций.
...
записать в системные переменные
RT_PKCS11SPY - путь к оригинальной библиотеке PKCS#11 библиотеке PKCS#11 (rtPKCS11ECP-orig)
RT_PKCS11SPY_OUTPUT - путь к лог файлу, в который будет записываться последовательность вызовов PKCS#11 функций.
Например:
- для
...
- Linux
RT_PKCS11SPY=/opt/aktivco/rutokenecp/lib/librtpkcs11ecp-orig.so
...
RT_PKCS11SPY_OUTPUT=/home/user/Desktop/logfile.txt- для Mac
RT_PKCS11SPY=/Library/Aktiv\
...
Co/Rutoken\
...
ECP/lib/librtpkcs11ecp-orig.dylib
...
RT_PKCS11SPY_OUTPUT=/Users/user/Desktop/logfile.txt
3. Воспроизведение сценария
Выполните действия, которые необходимо залогировать. Если логи нужны для решения ошибки - выполните действия, которые приводят к этой ошибке.
Если требуется воспроизвести сценарий в браузере, перед воспроизведением ошибки, перезапустите браузер.
4. Файл логов
Убедитесь, что файл rtpkcs11-spy.log с логами создан по адресу, указанному во 2 пункте.
5. Переименование библиотеки
Удалите библиотеку-шпион из папки с оригинальной библиотекой и переименуйте оригинальную библиотеку обратно.