Histórico da Página
...
Composition Setup |
---|
...
import.css=/download/attachments/6062824/tecnologia.css |
...
|
Pagetitle | ||||
---|---|---|---|---|
|
...
Assina um determinado conteúdo usando chave privada.
...
Sintaxe
...
Bloco de código |
---|
...
|
...
|
...
PrivSignRSA( < cKeyOrPathKey >, < cContent >, < nTipo >, < cSenha >, [ @cErrStr ], [ nPad ] ) |
...
Parâmetros
...
Nome |
---|
...
Tipo |
---|
...
Descrição |
---|
...
Obrigatório |
---|
...
Referência |
---|
...
...
cKeyOrPathKey |
...
caractere |
...
Indica a string que contém o caminho para a chave privada |
...
(formato .PEM |
...
) ou o conteúdo do arquivo. |
...
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 |
...
...
cSenha |
...
caractere |
...
Indica uma string que contém o valor da senha usada na geração da chave privada criptografada. |
...
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. |
...
...
Informações |
---|
...
| |||||||
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
...
|
...
...
|
...
|
...
|
...
Tipo de algoritmo válido para o parâmetro nTipo: |
...
|
...
|
...
...
|
...
|
...
...
|
...
|
...
...
|
...
|
...
...
|
...
|
...
...
|
...
|
...
...
|
...
|
...
Tipo de schema válido para o parâmetro nPad: |
...
|
...
|
...
...
|
...
|
...
...
|
...
|
...
...
|
...
|
...
...
|
...
|
...
...
|
...
|
...
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.
|
...
...
Exemplos
...
Bloco de código |
---|
...
|
...
| ||||||||
User Function RSASignPath()
Local sPrivKeyPath := |
...
"private.pem" |
...
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( sPrivKeyPath, cMD5, 1, "senhachaveprivada" ) |
...
varinfo( "sSign", sSign ) |
...
Return |
...
User Function RSASignKey() |
...
Local sPrivKey |
...
Local sStr := "01234567890123456789" |
...
Local cMD5 := '' |
...
Local sSign := "" |
...
sPrivKey := "-----BEGIN PRIVATE KEY-----" + chr(10) |
...
sPrivKey += "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJSn+hXW9Zzz9ORB" + chr(10) |
...
sPrivKey += "KIC9Oi6wzM4zhqwHaKW2vZAqjOeLlpUW7zXwyk4tkivwsydPNaWUm+9oDlEAB2ls" + chr(10) |
...
sPrivKey += "QJv7jwWNsF7SGx5R03kenC+cf8Nbxlxwa+Tncjo6uruEsK/Vke244KiSCHP8BOuH" + chr(10) |
...
sPrivKey += "I+r5CS0x9edFLgesoYlPPFoJxTs5AgMBAAECgYBL/6iiO7hr2mjrvMgZMSSqtCaw" + chr(10) |
...
sPrivKey += "kLUcA9mjRs6ZArfwtHNymzwGZqj22ONu5WqiASPbGCO0fI09KfegFQDe/fe6wnpi" + chr(10) |
...
sPrivKey += "rBWtawLoXCZmGrwC+x/3iqbiGJMd7UB3FaZkZOzV5Jhzomc8inSJWMcR+ywiUY37" + chr(10) |
...
sPrivKey += "stfVDqR1sJ/jzZ1OdQJBAO8vCa2OVQBJbzjMvk8Sc0KiuVwnyqMYqVty6vYuufe9" + chr(10) |
...
sPrivKey += "ILJfhwhYzE82wIa9LYg7UK2bPvKyyehuFfqI5oU5lU8CQQCfG5LA3gp3D1mS7xxz" + chr(10) |
...
sPrivKey += "tqJ+cm4SPO4R6YzVybAZKqKUvTFSKNV57Kp/LL7WjtUUNr+dY+aYRlKo81Hq61y8" + chr(10) |
...
sPrivKey += "tBT3AkAjJyak+2ZCxIg0MONHe8603HWhtbdygQ1jA2DFDdkHMCS+EowmDeb5PXLO" + chr(10) |
...
sPrivKey += "Wr92ZkFVQpvdz6kdIBDa4YP/0JbBAkBVHLjqd1z9x7ZRBZwgwkg2gBwloXZxGpB+" + chr(10) |
...
sPrivKey += "JMARFl+WVYa2vqVD7bhfA56qxAl0IL1sAm7ucl/xhQgDNRiM0YCNAkEAqySTBx2H" + chr(10) |
...
sPrivKey += "O9VyzuWWbf7BYTNsxfO80GaRkZGENfqO1QgnhT1FMeK+ox7Kbi+nSaCBoPjNzyrM" + chr(10) |
...
sPrivKey += "bU08M6nSnkDEGA==" + chr(10) |
...
sPrivKey += "-----END PRIVATE KEY-----" + chr(10) |
...
// 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( sPrivKey, cMD5, 1, "senhachaveprivada" ) |
...
varinfo( "sSign", sSign ) |
...
Return |
...
|
{code}
...
Abrangência
Advanced Protheus 7.10, Microsiga Protheus 8.11, Protheus 10, TOTVS Application Server 10, ByYou Application Server
...
Veja também
- * [Criptografia]