Проверить подписи цепи с Pem
Мне нужно проверить цепочку подписи с помощью pem в nodejs. Я нашел функцию pem.verifySigningChain(certificate, ca, callback)
, Но как я могу использовать функцию обратного вызова, чтобы сообщить мне, что цепочка подписей верна или тест не пройден? У кого-нибудь есть простой пример?
РЕДАКТИРОВАТЬ
db.getCert(certificate, function(certificate) {
if (certificate){
db.getCaCert(caCert, function(caCert) {
if (caCert){
pem.verifySigningChain(certificate, caCert, function (err){
if(err){
console.log(err);
}
console.log("Signing Chain okay");
})
}
}
}
}
2 ответа
Надеется, это поможет вам.
var pem = require('pem');
var cert = fs.readFileSync('cert.pem');
var ca = fs.readFileSync('ca.pem');
pem.verifySigningChain(cert, ca, function (err, result) {
if (err){
console.log('Error: '+err)
} else{
//here result is boolean, i.e. true or false
console.log('Result: '+result)
}
});
Сделайте это для NodeJS/Typescript
import fs from 'fs';
import crypto from 'crypto'
const appleAppAttestationRootCaCert = fs.readFileSync(__dirname + '/../assets/AppleRootCA-G3.pem').toString();
const credCert = new crypto.X509Certificate(Buffer.from(x5c[0], 'base64'))
const caCert = new crypto.X509Certificate(Buffer.from(x5c[1], 'base64'))
const appleCert = new crypto.X509Certificate(appleAppAttestationRootCaCert)
const valid = credCert.verify(caCert.publicKey)
console.log("Valid:", valid)
caCert.verify(appleCert.publicKey);
console.log("Valid with Apple Key:", valid)