Проверить подписи цепи с 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)
Другие вопросы по тегам