Alguém já utilizou a lib OpenSC for Java?
Estou com um problema. Tenho um código teste e tentei realizar o login do repositório de chaves utilizando o provider PKCS11Provider do OpenSC.
Só que em todos os casos onde existe a chave privada no smartcard, ocorre o seguinte erro:
Exception in thread “main” org.opensc.pkcs11.wrap.PKCS11Exception: C_GetAttributeValue failed for attribute 289. (CKR_ATTRIBUTE_TYPE_INVALID)
at org.opensc.pkcs11.wrap.PKCS11Object.getULongAttributeNative(Native Method)
at org.opensc.pkcs11.wrap.PKCS11Object.getULongAttribute(PKCS11Object.java:109)
at org.opensc.pkcs11.wrap.PKCS11Key.(PKCS11Key.java:90)
at org.opensc.pkcs11.wrap.PKCS11PrivateKey.(PKCS11PrivateKey.java:57)
at org.opensc.pkcs11.wrap.PKCS11NeRSAPrivateKey.(PKCS11NeRSAPrivateKey.java:52)
at org.opensc.pkcs11.wrap.PKCS11PrivateKey.makePrivateKey(PKCS11PrivateKey.java:89)
at org.opensc.pkcs11.wrap.PKCS11PrivateKey.getPrivateKeys(PKCS11PrivateKey.java:124)
at org.opensc.pkcs11.spi.PKCS11KeyStoreSpi.engineLoad(PKCS11KeyStoreSpi.java:510)
at org.opensc.pkcs11.spi.PKCS11KeyStoreSpi.engineLoad(PKCS11KeyStoreSpi.java:478)
at java.security.KeyStore.load(Unknown Source)
Segue um trecho do código:
PKCS11Provider p = new PKCS11Provider("aetpkss1.dll");
KeyStore ks = KeyStore.getInstance("PKCS11", p);
ks.load(null, "1234".toCharArray()); //aqui ocorre o erro
Para o conhecimento de vocês, a dll mencionada acima está no system32 do windows e a dll do opensc também está no path.
Estou utilizando a versão 0.2 desta dll que é a última versão para o Java.
Atenciosamente,