如何从Node.js中解析的X509认证中获取公钥长度

x509认证的新手。使用node-js和最多(似乎类似)的工具来创建和解析证书- node-forge 。 我试图弄清楚如何获得可靠的公钥长度和签名哈希算法(SHA) 从基于证书数据创建的证书中删除。我正在从.cert文件中获取二进制代码,并尝试对其进行解析并获取上述数据。参见我的基本代码:(证书是代表证书的对象)

let certificateContent = file.replace('-----BEGIN CERTIFICATE-----','').replace('-----END CERTIFICATE-----','').trim();
certificateContent = Buffer.from(certificateContent.toString(),'binary').toString('base64').toString().split(/(.{64})/).filter(x => x).join('\r\n');
let derData = forge.util.decode64(certificateContent);
let cert = forge.pki.certificateFromAsn1(forge.asn1.fromDer(derData));
ilovec042 回答:如何从Node.js中解析的X509认证中获取公钥长度

您可以使用伪造公开的便捷certificateFromPem函数从证书.pem文件中获取模数长度(n),从而获得公钥长度。

我们还可以获得签名的对象ID,我们可以在这里查询:http://www.oid-info.com/

# This section grants all access on "secrets/*". Further restrictions can be
# applied to this broad policy,as shown below.
path "secrets/*" {
  capabilities = ["create","read","update","list"]
}

我已经通过像这样(此处为4096位密钥)使用openssl创建证书来对此进行了测试:

const forge = require('node-forge');
const fs = require('fs');

function getCertificatePublicKeyBitLength(pemFile) {
    const certificate = forge.pki.certificateFromPem(fs.readFileSync(pemFile));
    return certificate.publicKey.n.bitLength();
}
function getCertificateSignatureObjectId(pemFile) {
    const certificate = forge.pki.certificateFromPem(fs.readFileSync(pemFile));
    return certificate.signatureOid;
}

console.log("Bit length: ",getCertificatePublicKeyBitLength('cert.pem'));
console.log("Certificate Signature Object Id: ",getCertificateSignatureObjectId('cert.pem'));
本文链接:https://www.f2er.com/3165149.html

大家都在问