Árvore de páginas

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

Veja também

  • Sem rótulos