Extrai as informações do(s) certificado(s) contido(s) em um arquivo de certificados no formato .PEM (Privacy Enhanced Mail).
Sintaxe
PEMInfo( < cFile >, [ cPassword ], [nHashAlgorithm] )
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cFile | C | Indica o caminho do arquivo .PEM a ser avaliado, a partir do diretório raiz (RootPath) do ambiente. | X | |
cPassword | C | Indica a senha para extrair os dados do arquivo PEM. | ||
nHashAlgorithm | N | Indica o algoritmo de hash que deverá ser usado para o cálculo do Fingerprint/Thumbprint do certificado. Default: SHA1 |
Retorno
Nome | Tipo | Descrição |
---|---|---|
aRet | vetor | Retorna um vetor com as informações referente aos certificados existentes no arquivo PEM. |
Observações
- Cada item do vetor representa um certificado contido dentro do arquivo PEM.
Dados retornados para cada certificado:
Índice
Tipo Dado
1
N Versão (0=Versão 1, 1=Versão 2, 2=Versão 3)
2
C Destinatário (Subject)
3
C Emissor (Issuer)
4
C Data de Validade Inicial
5
C Data de Validade Final
6 C Número serial 7 C Fingerprint/Thumbprint (Base64) 8 C Fingerprint/Thumbprint (Hexadecimal) O Fingerprint e/ou Thumbprint é uma representação numérica do conteúdo do certificado calculado por uma função hash. O Algoritmo de hash deverá ser informado de acordo com a tabela abaixo:
Valor
Algoritmo
3
SHA1
4
SHA224
5
SHA256
6
SHA384
7
SHA512
Caso o parâmetro não seja informado, por default, será gerado o Fingerprint do certificado utilizando o algoritmo de hash SHA1. Este recurso será disponibilizado a partir do build version 13.1.3.37 / 13.2.3.37.
- Caso seja informado um caminho de arquivo no client será gerada uma exceção com a mensagem: "Only server path are allowed (PEMInfo)".
- Caso o arquivo PEM não contenha nenhum certificado, a função retornará um vetor sem elementos.
- Em caso de erro, a função retornará Nil.
Exemplos
user function getPEMInfo() Local cFile := "\certs\tests.pem" Local aRet := {} aRet := PEMInfo( cFile ) varinfo( "PEM", aRet ) Return
Abrangência
Microsiga Protheus 8.11 e superiores