Exemplo Java/Eclipse
O Eclipse é uma IDE para Linux e Windows usada para desenvolver código java.
A versão utilizada na integração foi 4.20.0. A versões acima da 8 em diante podem ser utilizadas para esse guia, sendo que a versão 8 ou anteriores tem algumas diferenças devido a uma mudança no Java a partir da versão 9.
Configuração do ambiente
Configurar as variáveis de ambiente básicas. Isso pode ser feito editando as variáveis diretamente ou pelo DINAMOcon.
DFENCE_PKCS11_IP: IP do HSM
DFENCE_PKCS11_USER: Nome do usuário do HSM
Caso queira utilizar múltiplos usuários na aplicação o ideal é habilitar a variável:
Para informações adicionais consulte a seção de Configuração.
As aplicações Java que fazem uso de PKCS#11 precisam utilizar algumas bibliotecas do HSM; todas estão na pasta de instalação. O nome do arquivo é tacndp11.dll
(Windows) ou libtacndp11.so
(Linux).
Exemplos:
Instalação 64-bis:
Versão 64-bits:
C:\Program Files\Dinamo Networks\HSM Dinamo\sdk\c\tacndp11.dll
Versão 32-bits:
C:\Program Files\Dinamo Networks\HSM Dinamo\sdk\32-bit\tacndp11.dll
Instalação 32-bits:
C:\Program Files\Dinamo Networks\HSM Dinamo\sdk\c\tacndp11.dll
Configurando projeto no Eclipse
Para configurar o projeto é necessário adicionar a biblioteca tacndjavalib.jar
ao build path. A biblioteca ndjac.jar
só precisa ser adicionada caso esteja utilizando a JCA.
Código exemplo (Java 9+)
A diferença do java 9+ e do java 8 é somente como as bibliotecas são importadas e como o objeto do provider é criado.
O código a seguir cria o provider com a biblioteca da Dinamo, carrega a keystore do usuário master usando a o método special password com a variável de ambiente DFENCE_PKCS11_SPECIAL_PWD habilitada, e em seguida lista o nome e conteúdo dos certificados na partição do usuário.
O resultado do exemplo é mais interessante se houver certificados na partição.
O arquivo p11config.cfg
precisa ter no mínimo os campos name e library. Abaixo exemplos:
A Documentação de PKCS#11 da Oracle pode ser encontrada aqui.
Para configurar o provider no java 8 o código é o seguinte:
Last updated