NFe 1.10 + TOKEN A3 = erro: java.security.KeyStoreException: PKCS11 not found

5 respostas
P

Olá Pessoal.

Resumo:
Estou desenvolvendo Nfe 1.10 (estado de SP), aonde faço todas as operações de acordo com o manual do portal da NFe da Fazenda, obtive sucesso
com o A1 (Arquivo) e A3 (Cartão), a dificuldade é o A3 (TOKEN USB), estou a 7 dias tentando encontrar uma solução, busquei informações sobre o erro
em todas fontes possíveis como GOOGLE, GUJ, ARTIGOS, Contato com Receita Federal de SP (Telefone e Email), Contato com o fornecedor do TOKEN (instalação de software), Tentei mudar os JARs auxiliares e entre outros (mudar o código para avançar para outro erro), mas não obtive sucesso, agora estou postando a problema para compartilhar com a Família GUJ.

Acredito que o erro possa ser a DLL (não tenho certeza), pela descrição do erro não é encontrado a DLL.

ERRO Ocorrido: [size=18][color=red]java.security.KeyStoreException: PKCS11 not found[[/color]/size]

A configuração que utilizo no meu arquivo token.cfg é:
/*********************************************/
name=SBX
library=c:/windows/system32/dkck201.dll
/*********************************************/

OBS: Apesar de eu ter alterado as barras para //, , e \ (loucura) e mesmo assim o erro persiste.

Abaixo vou explicar o que estou utilizando.

Projeto: NFe 1.10.
S.O.: Windows Vista Basic.
Navegador: Internet Explorer 7.0.
Ferramenta para desenvolvimento: Eclipse Helios.
JDK: 1.6 (versão 6, atualização 22, compilação 1.6.0_22-b04).
Hardware para Assinatura NFe: SafeNet iKey 2032 (Token A3).
DLL Utilizada no token: dkck201.dll

Utilitários (JAR): axis.JAR / commons-discovery-0.2.JAR / commons-logging-1.0.4.JAR /
javax.wsdl_1.5.1.v200806030408.JAR / javax.wsdl_1.6.2.v201005080631.JAR / jaxrpc.JAR /
log4j-1.2.8.JAR / org.apache.commons.logging_1.0.4.v200904062259.JAR / saaj.JAR.

Reforçando: Funciona perfeitamente a NFe 1.10 com Certificado A1 (Arquivo) e SmartCard A3 (Cartão).

Para conhecimento em qual linha ocorre erro no meu projeto (No momento da assinatura da NFe):

201    {// Nome do Método (Assinar)



220                           Provider p = new SunPKCS11(parametros.getProperty(nfe.certificado.token));

221				Security.addProvider§;

222                   	ks =  KeyStore.getInstance(PKCS11); //nesta linha que ocorre o erro



255    }

Caso eu consiga resolver o problema, posto a solução aqui para conhecimento de todos.
Desde já, agradeço.
Obrigado você que perdeu seu tempo para ler este problema, para aqueles que não souberem da onde pode vir a falha e tenha alguma outra dúvida relacionada a NFe e precisar de uma força, posta ai e tento ajuda-lo.

“Um por todos e todos por Um” =D!

5 Respostas

D

ressucitando este tópico, estou com o mesmo problema no token alladin, o sistema funciona perfeitamente no win xp mas no vista ou 7 so dá este erro
erro: java.security.KeyStoreException: PKCS11 not found

alguém ja conseguiu resolver isto?

D

bem so para ajudar quem esta passando por isso tb basta informar no arquivo .cfg o slot

Segue um exemplo:

name= eToken
library = C:\WINDOWS\system32\eTpkcs11.dll
slot = 2

C

Respondendo ao pohl - Antes tarde do que nunca

utilize as seguintes configurações que funciona p/ o Safenet Ikey :

name=Safenetikey2032

library=c:/windows/system32/dkck201.dll

slot=13

disabledMechanisms = {

CKM_SHA1_RSA_PKCS

}

o slot vc terá que descobrir o valor correto.

O

Quando uso o etoken PRO 32k não preciso informar slot que funciona, porém se uso o modelo etoken PRO 72k tenho que informar o slot 2.

Com isso minha aplicação não funciona com os 2 tipos de token, não tem um slot que funcione para ambos.

F

Eu sei que o tópico é antigo, mas para aqueles que tem dúvida sobre qual slot usar, adicione a linha no arquivo.cfg

showInfo = true

Quando executar o getInstance(“PKCS11”); serão exibidos informações do cartão, tais como:

Information for provider SunPKCS11-SmartCard
Library info:
cryptokiVersion: 2.20
manufacturerID: A.E.T. Europe B.V.
flags: 0
libraryDescription: Cryptographic Token Interface
libraryVersion: 3.00
All slots: 52481, 52482, 52483, 52484, 52485, 52486, 52487, 52488, 52489, 52490
Slots with tokens: 52481



.

Slots with tokens: 52481<<<< esse é o slot de um cartão encontrado

Atenção, pois os slots podem conter números diferentes

Criado 23 de novembro de 2010
Ultima resposta 7 de abr. de 2015
Respostas 5
Participantes 5