diff --git a/lib/bcoin/bip70/x509.js b/lib/bcoin/bip70/x509.js index 2c528eac..ba30babc 100644 --- a/lib/bcoin/bip70/x509.js +++ b/lib/bcoin/bip70/x509.js @@ -49,12 +49,13 @@ x509.getCAName = function getCAName(cert) { }; x509.setTrust = function setTrust(certs) { - var keys = Object.keys(certs); - var i, key, cert, pem, fingerprint, hash, trust; + var i, cert, pem, fingerprint, hash, trust; - for (i = 0; i < keys.length; i++) { - key = keys[i]; - cert = certs[key]; + if (!Array.isArray(certs)) + certs = [certs]; + + for (i = 0; i < certs.length; i++) { + cert = certs[i]; if (typeof cert === 'string') { pem = asn1.fromPEM(cert); @@ -70,6 +71,9 @@ x509.setTrust = function setTrust(certs) { fingerprint = utils.sha256(cert.raw); hash = fingerprint.toString('hex'); + if (x509.trusted[hash]) + continue; + trust = { name: x509.getCAName(cert), fingerprint: fingerprint