Verifica um determinado conteúdo assinado, usando a chave pública.
Sintaxe
PrivVeryRSA( < cPathKey >, < cContent >, < nTipo >, < cAssinado >, [ @cErrStr ], [ nPad ] ) --> lRet
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cPathKey | caractere | Indica o caminho path da chave pública que deve ser no formato do arquivo .PEM. | X |
|
cContent | caractere | Indica o valor que será verificado, com um conteúdo já assinado. | X |
|
nTipo | numérico | Indica o tipo de algoritmo que será utilizado para verificar a assinatura. | 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 |
---|---|---|
lRet | lógico | Retorna verdadeiro (.T.) se o valor informado no parâmetro cContent está de acordo com o valor enviado que foi assinado pelo tipo nTipo e a chave informada cPathKey. Caso contrário, falso (.F.). |
Observações
- Essa função utiliza uma chave pública para verificar a assinatura. Para isso, é necessário informar o caminho (path) da chave pública no parâmetro cPathKey e, em seguida, o conteúdo cContent, um numérico nTipo que informa o tipo de algoritmo que será utilizado para realizar a assinatura e finalmente é passado o valor assinado.
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 "[PrivVeryRSA] Only server path are allowed." e retornará Nil.
Exemplos
User Function RSA_Very() 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