Для отладки приложений использующих интерфейс PKCS#11 можно использовать утилиту PKCS11-SPY.

Это переработанная версия утилиты, входящей в проект OpenSC и отличается от нее поддержкой расширенного интерфейса. 

Утилита выводит лог PKCS#11 вызовов в формате текстового файла.

Подготовка файлов

Заменим оригинальную библиотеку на библиотеку-шпион, для этого:

1. Загрузите архив - pkcs11-spy.zip

2. Разархивируйте содержимое

3. Выберите версию ОС и разрядность в соответствии с разрядностью приложения

4. Найдите папку с библиотекой PKCS#11 (rtPKCS11ECP), которую использует приложение:

5. Переименуйте оригинальную библиотеку PKCS#11 (rtPKCS11ECP)

6. Скопируйте rtpkcs11-spy.dll из разархивированной папки в папку с оригинальной библиотекой PKCS#11 (rtPKCS11ECP)

7. Переименуйте библиотеку-шпион, задав ей имя оригинальной библиотеки PKCS#11 (rtPKCS11ECP)

Настройка утилиты

Теперь укажем утилите путь до оригинальной библиотеки и путь, куда будет записываться лог-файл.

Для Windows

Для 32 битных приложений

В реестре установить в строковый параметр HKLM\Software\Aktiv Co.\Rutoken\rtPKCS11-Spy\Module путь к оригинальной библиотеке PKCS#11 (rtPKCS11ECP).

В реестре установить в строковый параметр HKLM\Software\Aktiv Co.\Rutoken\rtPKCS11-Spy\Output путь к лог файлу, в который будет записываться последовательность вызовов PKCS#11 функций.

Для 64 битных приложений

В реестре установить в строковый параметр HKLM\Software\Aktiv Co.\Rutoken\rtPKCS11-Spy\Module путь к оригинальной библиотеке PKCS#11 (rtPKCS11ECP).

В реестре установить в строковый параметр HKLM\Software\Aktiv Co.\Rutoken\rtPKCS11-Spy\Output путь к лог файлу, в который будет записываться последовательность вызовов PKCS#11 функций.

Для Linux и macOS

записать в системные переменные 

RT_PKCS11SPY - путь к оригинальной библиотеке PKCS#11 (rtPKCS11ECP)

RT_PKCS11SPY_OUTPUT - путь к лог файлу, в который будет записываться последовательность вызовов PKCS#11 функций.

Например:

для linux

RT_PKCS11SPY=/opt/aktivco/rutokenecp/lib/librtpkcs11ecp.so
RT_PKCS11SPY_OUTPUT=/home/user/Desktop/logfile.txt

для Mac

RT_PKCS11SPY=/Library/Aktiv\ Co/Rutoken\ ECP/lib/librtpkcs11ecp.dylib
RT_PKCS11SPY_OUTPUT=/Users/user/Desktop/logfile.txt