[英]How to get the modulus of a certificate from javascript?
我正在嘗試從公鑰和證書中獲取“模數”以驗證這些密鑰對和證書在簽名之前是否匹配但我不能
我在 Angular 中構建了一個 web 應用程序,我使用https://www.npmjs.com/package/node-forge 。這是一個 snnipet,但我不知道如何獲得 mudulus。
var buffer = forge.util.createBuffer(FirmaUtil.Key, 'raw');
var asn1 = forge.asn1.fromDer(buffer);
var info = forge.pki.decryptPrivateKeyInfo(asn1, 'password');
var privateK = forge.pki.privateKeyFromAsn1(info);
最后我可以實現比較 cer 和 key 的模數的目標
doesCertMatchKey: function privateKeyMatchesCertificate(model) {
certificate = {};
certificate.Cer = model.Cert; //AsArrayBuffer .cer file
certificate.Key = model.Key; //AsArrayBuffer .key file
certificate.Pass = model.Pass
let bufferCer = forge.util.createBuffer(certificate.Cer, 'raw');
let asn1Cert = forge.asn1.fromDer(bufferCer);
let cer = forge.pki.certificateFromAsn1(asn1Cert);
let nHexPublicK = cer.publicKey.n.toString(16);
let eHexPublicK = cer.publicKey.e.toString(16);
var bufferKey = forge.util.createBuffer(certificate.Key, 'raw');
var asn1Key = forge.asn1.fromDer(bufferKey);
//Before the next step check password to void exception.
var info = forge.pki.decryptPrivateKeyInfo(asn1Key, certificate.Pass);
var privateKey = forge.pki.privateKeyFromAsn1(info);
var nHexPrivateK = privateKey.n.toString(16);
var eHexPrivaetK = privateKey.e.toString(16);
//If they are identical then the private key matches the certificate.
return nHexPublicK === nHexPrivateK;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.