Pular para o conteúdo principal

Configuração - PKI Express

É possível alterar as seguintes configurações do PKI Express:

A configuração do PKI Express é gerenciada através do comando pkie config. Veja as seções abaixo para saber mais sobre esse comando. As bibliotecas cliente têm configurações próprias, como a pasta em que o PKI Express está instalado: veja Configurações da biblioteca cliente.

Comando pkie config​

Para visualizar a sintaxe do comando:

pkie help config

Para visualizar as configurações atuais:

pkie config

Para alterar uma configuração:

pkie config --set name=value

Exemplo:

pkie config --set logLevel=3

Configuração efetiva​

O PKI Express pode eventualmente ignorar uma configuração inválida. Por exemplo, se a configuração tempDir for setada para um caminho inválido ou uma pasta à qual o PKI Express não possui permissões de escrita, a pasta temporária definida pelo ambiente será utilizada ao invés da pasta configurada. Esse é o chamado valor efetivo da configuração, ou seja, o valor que o PKI Express está de fato utilizando, que pode ser diferente do valor configurado manualmente.

Para diagnosticar problemas relacionados à configuração, pode ser útil verificar a configuração efetiva do PKI Express:

pkie config --effective

Configurações da biblioteca cliente​

As configurações acima são do PKI Express e valem para todas as aplicações da máquina. As bibliotecas cliente têm configurações próprias, na classe PkiExpressConfig, que você passa para o construtor de cada classe de operação (PadesSignatureStarter, SignatureFinisher, PadesSigner etc.). Sem ela, a classe usa os padrões abaixo.

ConfiguraçãoPadrão
Pasta do PKI ExpressWindows: a pasta Lacuna Software\PKI Express que contém o pkie.exe, em Program Files, Program Files (x86) ou no %LOCALAPPDATA% do usuário. Linux: o comando pkie no PATH, onde as páginas de instalação o colocam
Pasta temporáriaA pasta temporária do sistema (Ruby: uma pasta nova que a biblioteca cria dentro dela). Guarda os arquivos temporários que a biblioteca grava em cada operação
Pasta dos transfer data filesA pasta temporária. Guarda os transfer data files, que levam uma assinatura da etapa de início para a etapa de finalização; por isso, precisa ser a mesma nas duas etapas

As três são argumentos do construtor, nessa ordem, e cada uma pode ficar vazia (null, None ou nil):

LinguagemExemplo
Javanew PadesSignatureStarter(new PkiExpressConfig("D:\\pkie", null, "D:\\pkie-transfer")) (argumentos String ou Path)
Node.jsnew PadesSignatureStarter(new PkiExpressConfig('D:\\pkie', null, 'D:\\pkie-transfer'))
PHPnew PadesSignatureStarter(new PkiExpressConfig('D:\\pkie', null, 'D:\\pkie-transfer'))
PythonPadesSignatureStarter(PkiExpressConfig('D:\\pkie', None, 'D:\\pkie-transfer'))
RubyPkiExpress::PadesSignatureStarter.new(PkiExpress::PkiExpressConfig.new('D:\\pkie', nil, 'D:\\pkie-transfer'))

Se o PKI Express não estiver na pasta que você definiu ou, no Windows, em nenhuma das pastas padrão, a biblioteca lança InstallationNotFoundException (Java, PHP) ou InstallationNotFoundError (Node.js, Python, Ruby). Se a pasta temporária ou a pasta dos transfer data files que você passar não existir, as bibliotecas de Java, Node.js, PHP e Python usam o padrão sem erro, enquanto a de Ruby lança ArgumentError.

Pasta personalizada no Linux

Quando você define a pasta do PKI Express no Linux, as bibliotecas de Node.js, PHP, Python e Ruby executam dotnet <pasta>/pkie.dll. Desde a versão 1.31.0, o pacote do PKI Express para Linux é um único executável pkie, sem pkie.dll (histórico de versões); com essas bibliotecas, deixe a pasta vazia e coloque o pkie no PATH. A biblioteca de Java executa <pasta>/pkie quando a pasta não tem pkie.dll.

Para apagar os arquivos temporários de uma operação, chame dispose() (Java) ou disposeSync() (Node.js) depois que a operação terminar, como faz o exemplo de assinatura em Java; as bibliotecas de PHP, Python e Ruby os apagam quando o objeto é destruído ou coletado pelo garbage collector. Os transfer data files não são arquivos temporários: a etapa de finalização precisa deles.

Ver em Markdown