pfx証明書のサムネイルを取得する関数javadript(forge)を記述する必要があります。テスト証明書(mypfx.pfx)を作成しました。 c#X509Certificate2ライブラリを使用すると、ファイルバイトの配列とパスワードを渡すことで、X509Certificate2オブジェクトの入力証明書の拇印を見ることができます。ここでは、C#のコードスニペットは、次のとおりです。JavascriptでX509Certificate拇印を取得するには?
X509Certificate2 certificate = new X509Certificate2(byteArrayCertData, password);
var thumbprint = certificate.Thumbprint;
//thumbprint is a hex encoding SHA-1 hash
しかし、私は(鍛造を使用して)JavaScriptで同じことをしようとしています。私は正しい拇印を得ることができません。
var certi = fs.readFileSync('c:/mypfx.pfx');
let p12b64 = Buffer(certi).toString('base64');
let p12Der = forge.util.decode64(p12b64);
var outAsn1 = forge.asn1.fromDer(p12Der);
var pkcs12 = forge.pkcs12.pkcs12FromAsn1(outAsn1, false, "1234");
var fp = null;
for (var sci = 0; sci < pkcs12.safeContents.length; ++sci) {
var safeContents = pkcs12.safeContents[sci];
for (var sbi = 0; sbi < safeContents.safeBags.length; ++sbi) {
var safeBag = safeContents.safeBags[sbi];
if (safeBag.cert != undefined && safeBag.cert.publicKey != undefined) {
fp = forge.pki.getPublicKeyFingerprint(safeBag.cert.publicKey, {type: 'RSAPublicKey'});
//Is this fingerprint value I am looking for??
break;
}
}
}
結果が異なる値が間違っているように思われるC#の拇印と比較される:ここに私のJavascriptのコードです。私はpkcs12.jsファイルでさまざまな機能を試しました。いずれも動作しません。正しい拇印の結果が得られる限り、他のJSライブラリを使用しても問題ありません。私の間違いを助けて訂正してください。ありがとう!
を使用することができますフォージ方法はありませんが、あなたは(バイナリ)DERに鍛造証明書を変換するには、自分自身に
を計算することができそうです、ありがとう。 – Void