Assina um Hash Criptográfico usando chave privada.
Sintaxe
PrivSignRSA( < cPathKey >, < cHash >, < nTipo >, < cSenha >, [ @cErrStr ], [ nPad ] ) --> cRet
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cPathKey | caractere | Indica a string que contém o caminho para a chave privada (formato .PEM). | X | |
cHash | caractere | Indica a string que contém o Hash Criptográfico – em formato binário – que será assinado. | X | |
nTipo | numérico | Indica o tipo de Hash Criptográfico informado informado no segundo parâmetro. | X | |
cSenha | caractere | Informa a senha da chave privada. Caso a chave privada não esteja protegida por senha, informe uma string vazia. | X | |
cErrStr | caractere | Indica a variável para retornar informações adicionais em caso de falha ao realizar a assinatura. | X | |
nPad | numérico | Indica o tipo de schema de criptografia que será utilizado. |
Retorno
Nome | Tipo | Descrição |
---|---|---|
cRet | caractere | Retorna o valor do parâmetro cHash, assinado pela have privada informada cPathKey. |
Observações
- Essa função utiliza a chave privada para realizar a assinatura. Para isso, é necessário informar o caminho (path) da chave privada (formato .PEM), no parâmetro cPathKey e, em seguida, o Hash Criptoráfico cHash que se deseja assinar e o o tipo de Hash Criptográfico informado.
- O Hash Criptográfico a ser assinado deve ser gerado sobre o conteúdo antes de chamar esta função.
O arquivo (no formato .PEM) informado no parâmetro cPathKey deve ser ou conter uma chave privada, tais como:
Chave Privada
Certificado
CA (Certificate Authority)
Tipo de algoritmo válido para o parâmetro nTipo:
Valor
Algoritmo
1
MD5
2
SHA1
3
RIPEMD160
4
MD5_SHA1
5
SHA256WithRSA
6 SHA256 Tipo de schema válido para o parâmetro nPad:
Valor
Schema
1
PKCS1
2
SSL
3
NO
4
PKCS1_OAEP
5
X931
- Caso não seja passado nenhum schema de criptografia (nPad), a rotina assume com padrão o schema 1 - PKCS1.
- Os valores 5 e 6 – no parâmetro nTipo – estão disponíveis em builds superiores a 121227P.
- Caso seja informado no parâmetro cPathKey caminho de arquivos no client, será adicionado ao parâmetro cErrStr a mensagem "[PrivSignRSA] Only server path are allowed." e retornará Nil.
- A etapa de geração do Hash Criptográfico é obrigatória para o uso desta função. A função AdvPL
Exemplos
User Function RSA_Sign() Local sStr := "01234567890123456789" Local cMD5 := '' Local sSign := "" // Conteudo a ser assinado varinfo( "sStr", sStr ) // Hash MD5 gerado a partir desse conteudo cMD5 := Md5( sStr ) varinfo( "cMD5", cMD5 ) // Assinatura gerada a partir do Hash MD5 usando a chave privada sSign := PrivSignRSA( "private.pem", cMD5, 1, "senhachaveprivada" ) varinfo( "sSign", sSign ) Return
Veja também
Abrangência
Advanced Protheus 7.10, Microsiga Protheus 8.11, Protheus 10, TOTVS Application Server 10, ByYou Application Server