Extrai o certificado de cliente e o certificado de autorização (Certificate Authorith) de um arquivo com extensão .PFX (formato padrão do IIS - Internet Information Services), e gera como saída um arquivo no formato .PEM (Privacy Enhanced Mail).
Sintaxe
PFX2PEM( < cPFXFile >, < cPEMFile >, < @cError >, [ cPassword ] )
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cPFXFile | character | Indica o caminho do arquivo .PFX, a partir da raiz do diretório (RootPath) do TOTVS Application Server. | X | |
cPEMFile | character | Indica o caminho do arquivo .PEM, a partir da raiz do diretório (RootPath) do TOTVS Application Server, com as informações de certificado de cliente. | X | |
cError | character | Indica a saída da mensagem de erro, em caso de falha. | X | X |
cPassword | character | Indica a senha para extrair os dados do arquivo PFX. |
Retorno
Nome | Tipo | Descrição |
---|---|---|
lRet | logical | Retorna .T. quando o PEM é gerado com sucesso; caso contrário, .F.. |
Observações
- O formato PEM é frequentemente usado para codificação de chaves e certificados em ASCII.
- Caso seja informado nos parâmetros <cPFXFile> ou <cPEMFile> caminho de arquivos no client, a aplicação será terminada com uma ocorrência de erro fatal AdvPL "Only server path are allowed (PFX2PEM)".
- Esta função tem o comportamento igual a ferramenta PKCS12, da OpenSSL. Para mais informações sobre a ferramenta PKCS12, consulte a documentação disponível no site da OpenSSL - http://www.openssl.org/docs/apps/pkcs12.html.
Exemplos
#include "TOTVS.ch" //+----------------------------------------------------------------------------+ //|Exemplifica o uso da função PFX2PEM | //+----------------------------------------------------------------------------+ User Function Exemplo() Local cPFX := "\certs\tests.pfx" Local cCert := "\certs\cert.pem" Local cPass := "123" Local cError := "" Local lRet := .F. Local cContent := "" lRet := PFX2PEM( cPFX, cCert, @cError, cPass ) if ( lRet == .F. ) conout( "Error: " + cError ) else cContent := MemoRead( cCert ) varinfo( "Cert", cContent ) endif Return 0