Assina um determinado conteúdo usando chave privada.
Sintaxe
PrivSignRSA( < cPathKey >, < cContent >, < nTipo >, < cAssinado >, [ @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 | |
cContent | caractere | Indica a string que será assinada. | X | |
nTipo | numérico | Indica o tipo de algoritmo que será utilizado para realizar a assinatura da chave. | X | |
cAssinado | caractere | Indica uma string que contém o valor assinado. | X | |
cErrStr | caractere | Indica a variável para retornar as mensagens de erro. | 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 cContent, assinado, de acordo com o tipo nTipo e a chave 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 conteúdo cContent que se deseja assinar e finalmente um numérico que informa o tipo de algoritmo que será utilizado para realizar a assinatura nTipo.
O arquivo .PEM informado no parâmetro cPathKey deve 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.
- O valor 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.
Exemplos
User Function RSA_Sign() Local sStr := "01234567890123456789" Local sOut := "" sStr := Md5( sStr ) varinfo( "1", sStr ) sOut := PrivSignRSA( "private.pem", sStr, 1, "assinatura" ) varinfo( "sOut", sOut ) conout( PrivVeryRSA( "public.pem", sStr, 1, sOut ) ) Return
Abrangência
Advanced Protheus 7.10, Microsiga Protheus 8.11, Protheus 10, TOTVS Application Server 10, ByYou Application Server