Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/6062824/tecnologia.css
|
Pagetitle | ||||
---|---|---|---|---|
|
...
Bloco de código | ||
---|---|---|
| ||
PrivSignRSA( < cKeyOrPathKey >, < cHashcContent >, < nTiponType >, < cSenha >, [ @cErrStr ], [ nPad ] ) |
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cKeyOrPathKey |
character | Indica a string que contém o caminho para a chave privada (formato .PEM) ou o conteúdo do arquivo. | X |
cContent |
character | Indica a string que será assinada. |
X |
nType |
numeric | Indica o tipo de algoritmo que será utilizado para realizar a assinatura |
da chave. | X | |
cSenha |
character | Indica uma string que contém o valor da senha |
usada na geração da chave privada criptografada |
. | X | |
cErrStr |
character | Indica a variável para retornar as mensagens de erro. | X | |
nPad |
numeric | Indica o tipo de schema de criptografia que será utilizado. |
Retorno
...
Nome | Tipo | Descrição |
---|---|---|
cRet |
character | Retorna o valor do parâmetro cContent, assinado, de acordo com o tipo |
nType e a chave privada informada cPathKey. |
...
Observações
Nota | ||||
---|---|---|---|---|
| ||||
A funcionalidade de uso da chave ao invés do path está disponível apenas em versões iguais ou superiores a: 17.3.0.18. |
Aviso | ||||
---|---|---|---|---|
| ||||
Essa função utiliza a chave privada para realizar a assinatura. Para isso, é necessário informar o caminho (path) da chave privada (formato .PEM), ou seu conteúdo, no parâmetro cKeyOrPathKey e, em seguida, o Hash Criptoráfico cHash que se deseja assinar e 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 cKeyOrPathKey deve ser ou conter uma chave privada, tais como:
Chave Privada |
Certificado |
CA (Certificate Authority) |
Tipo de algoritmo válido para o parâmetro
...
nType:
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
...
nType 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 partir da versão 20.3.3.0 o algoritmo SHA256WithRSA (valor 5 de nType) e o schema SSL (valor 2 de nPad) serão inválidos.
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 |
Abrangência
...