Árvore de páginas

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. 



nHashAlgorithmNIndica 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

    6CNúmero serial 
    7CFingerprint/Thumbprint (Base64)
    8CFingerprint/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

Exemplo 1
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