-
Notifications
You must be signed in to change notification settings - Fork 2
Exemplo de assinatura e validação de token
marcioamr edited this page Aug 18, 2018
·
3 revisions
Exemplo de emissão e validação de token utilizando a tecnologia NodeJS.
let crypto = require('crypto')
let crypto = require('fs')
function assinar(qrPagueToken){// "0.1.0;5afad42239ee9f000fe92189;;10;BRL;99999999999;756;Fulano de Tal;0001;700000001;;;1526387746083;"
let crypto = require('crypto')
let privateKey = fs.readFileSync('/path/to/key/private.key').toString('utf-8');
let password = fs.readFileSync('/path/to/key/passord').toString('utf-8');
let sign = crypto.createSign('SHA256');
sign.write(token);
sign.end();
let decipher = crypto.createDecipher('aes256', passwd);
let decPrivKey = decipher.update(prvK, 'hex', 'utf8');
let pemPrivateKey = keyEncoder.encodePrivate(decPrivKey, 'raw', 'pem');
let signature = sign.sign(pemPrivateKey, 'hex');
qrPagueToken += ";" + signature;
return qrPagueToken;
}
let crypto = require('crypto')
function validarAssinatura(pubKey, signature, token){
let payload = token.slice(0, token.length - 1).join(";");
pubKey = keyEncoder.encodePublic(pubKey, 'raw', 'pem');
let verify = crypto.createVerify('SHA256');
verify.write(payload);
verify.end();
if (!verify.verify(pubKey, signature, 'hex'))
throw new Error("Could not validate token signature");
return true
}