Exemplo OpenSSL

O OpenSSL pode ser utilizado para gerar a requisição de carimbo de tempo (TSQ) via linha de comando, e fazer o parse do carimbo de tempo enviado na resposta da ACT.

O OpenSSL vem instalado por padrão em ambientes Linux e Mac, mas se estiver utilizando Windows será necessário instala-lo.

Pré requisitos:

  • OpenSSL instalado.

  • Curl Instalado.

A primeira etapa é gerar a requisição de carimbo de tempo (TSQ) , informando o arquivo que deseja carimbar, para isso execute o comando abaixo:

openssl ts -query -data seu_arquivo.txt -out request.tsq

O comando acima irá gerar um hash do arquivo "seu_arquivo.txt" e incluirá na requisição de carimbo de tempo, gerando o arquivo request.tsq que iremos enviar para a ACT.

Com a requisição de carimbo de tempo (TSQ) pronta, agora é só enviar e receber o carimbo de tempo, o comando abaixo envia uma requisição para a ACT seguindo a RFC 3161, ele envia o arquivo que geramos anteriormente "request.tsq" e salva a resposta da ACT no arquivo "response.tsr":

curl --location --request POST 'https://gateway-act.hom.vaultid.com.br/api/act'
--header 'Authorization: Basic dGVzdGU6dGVzdGU='
--header 'Content-Type: application/timestamp-query'
--data-binary '@request.tsq' -output response.tsr

Para executar o comando acima, é necessário ter o usuário e senha enviados por nossa equipe de integração, para que consiga autenticar utilizando a autenticação Basic Authentication.

Caso esteja tudo ok com a autenticação e com a requisição, após enviar a requisição com o curl, será gerado um arquivo com a resposta da ACT, que é o carimbo de tempo, response.tsr.

Para dar parse no arquivo response.tsr e ver o conteúdo da resposta execute o seguinte comando:

openssl ts -in response.tsr -text

O que foi demonstrado até aqui pode ser usado para testar o fluxo, mas não é recomendado que seja utilizado chamadas exec para execução destes comandos por outra linguagem em ambiente de produção.

Não incluímos neste exemplo as validações que podem ser feitas utilizando o OpenSSL, mas é possível fazer diversas validações somente utilizando o OpenSSL.

Last updated