Исправление CKA_ID
Нужен пакет opensc и библиотека rtpkcs11ecp (из драйверов или из комплекта разработчика)
Для исправления CKA_ID будем использовать утилиту pkcs11-tool, библиотеку rtPKCS11ECP.dll указываем через параметр --module
Параметр -О дает нам список объектов, -l указывает, что нужен логин, а в --pin передаем пин-код
C:\Program Files\OpenSC Project\OpenSC\tools>pkcs11-tool.exe --module C:\Windows\System32\rtPKCS11ECP.dll -O -l --pin 12345678
Устанавливаем https://github.com/OpenSC/OpenSC/wiki
Находим C:\Program Files\OpenSC Project\OpenSC\tools
Открываем Командную строку с правами Администратора
Переходим в директорию, где лежит pkcs11-tool.exe
cd C:\Program Files\OpenSC Project\OpenSC\tools>
Получаем список объектов
pkcs11-tool.exe --module C:\Windows\System32\rtPKCS11ECP.dll -O -l --pin 12345678
Меняем CKA_ID открытого ключа
pkcs11-tool.exe --module C:\Windows\System32\rtPKCS11ECP.dll -O -l --pin 12345678 -y pubkey -d "6ab7135ee3d85b2f74eadcc92c82e71e62bc0c25" -e "123"
Меняем CKA_ID закрытого ключа
pkcs11-tool.exe --module C:\Windows\System32\rtPKCS11ECP.dll -O -l --pin 12345678 -y privkey -d "6ab7135ee3d85b2f74eadcc92c82e71e62bc0c25" -e "123"
Меняем CKA_ID сертификата
pkcs11-tool.exe --module C:\Windows\System32\rtPKCS11ECP.dll -O -l --pin 12345678 -y cert -d "6ab7135ee3d85b2f74eadcc92c82e71e62bc0c25" -e "123"
Например, мы считаем что “011111” это плохой ID и мы хотим его поменять
При этом необходимо сделать так, чтобы все CKA_ID были одинаковые
Нужно выполнить 3 последовательные команды, для закрытого ключа, для открытого и для сертификата
-y тип объекта, сертификат, закрытый ключ, и открытый ключ
-d старый CKA_ID
-e новый CKA_ID (нужно указывать в виде шестнадцатеричных чисел, 31 = это "1”)
Теперь снова делаем просмотр объектов и убеждаемся что CKA_ID правильный и одинаковый у всех 3х объектов
pkcs11-tool.exe --module C:\Windows\System32\rtPKCS11ECP.dll -O -l --pin 12345678