Przed kilkoma dniami musiałem skorzystać z obywatel.gov.pl i zainstalowałem aplikację Podpis Kwalifikowany. Po jej zainstalowaniu przestało działać podpisywanie dokumentów na stronie GIIFa z użyciem karty Certum. Podobny problem może dotknąć użytkowników nowo wystawionych przez Certum kart, w tym wypadku Szafir SDK widzi podpis na karcie, ale próba podpisania dokumentu kończy się błędem.
Geneza problemu
Wraz z instalacją aplikacji Podpis Kwalifikowany w moim katalogu tymczasowym:
c:\Users\ksm\AppData\Local\Temp pojawiły się pliki cryptoCertum3PKCS.dll oraz cryptoCertum3PKCS-64.dll.
Przy próbie podpisania czegokolwiek na stronie GIIF, w konsoli Szafir SDK pojawia się poniższy błąd (około linii 175):
1 | Wed Dec 09 11:45:04 CET 2020 C:\Users\ksm\AppData\Local\Temp\cryptoCertum3PKCS.dll- PKCS11Exception: %1 nie jest prawidlowa aplikacja systemu Win32. |
Powyższy błąd oznacza, że plik cryptoCertum3PKCS.dll ma inną architekturę niż domyślna Java w komputerze.
W moim przypadku jest zainstalowana Java dla architektury x64, a biblioteka cryptoCertum3PKCS.dll wrzucona przez
Podpis Kwalifikowany jest dla architektury x86, razem tworzą mieszankę wybuchową.
Dla nowych kart wystawionych przez Certum, problemem jest zbyt stara wersja biblioteki cryptoCertum3PKCS.dll w katalogu tymczasowym.
Obejście problemu.
Użytkownicy zgłosili, że dla nowych kart Certum wymagany jest restart komputera, co wydaje mi się logiczne, Szafir SDK ma załadowaną starą bibliotekę i dopiero przy kolejnym uruchomieniu SzafiirHosta wczyta biblotekę Certum ze wskazanej lokalizacji.