Сейчас я не могу найти свой ePass2003 для тестирования, но я бы попробовал с этим кодом:
using Net.Pkcs11Interop.Common;
using Net.Pkcs11Interop.HighLevelAPI;
namespace ConsoleApp1
{
class Program
{
static string pkcs11Library = "opensc-pkcs11";
static string oldSoPin = "1111111111";
static string newSoPin = "2222222222";
static void Main(string[] args)
{
using (Pkcs11 pkcs11 = new Pkcs11(pkcs11Library, AppType.SingleThreaded))
{
Slot firstSlot = pkcs11.GetSlotList(SlotsType.WithTokenPresent)[0];
using (Session session = firstSlot.OpenSession(SessionType.ReadWrite))
{
session.Login(CKU.CKU_SO, oldSoPin);
session.SetPin(oldSoPin, newSoPin);
}
}
}
}
}