Node.JS(v0.4 +)の署名を公開鍵で検証する良い方法はありますか?
現在の暗号モジュールでは、証明書ではこれを許可していますが、公開鍵では許可していません。例えば:
var crypto = require("crypto");
verifier = crypto.createVerifier("sha1");
verifier.update("signed data");
verifier.verify(CERT, signature);
変数CERT
は署名された証明書である必要があります(公開鍵はそこから取得されると思います)が、私が持っているのは公開鍵だけであり、証明書ではありません。
これを達成するための確実な方法は、データ、公開鍵、署名の内容をファイルにダンプして実行することだけのようです。openssl dgst
fs.writeFileSync("public.key", pubkey);
fs.writeFileSync("sig.sha1", signature);
fs.writeFileSync("data.txt", data);
exec("openssl dgst -sha1 -verify public.key -signature sig.sha1 data.txt", ...)
しかし、署名を確認する必要があるたびにファイルを作成(および削除)することは、まったくの無駄のように思えます。
それをより良くする方法について何か良いアイデアはありますか?
更新2011-08-03
Node.js v0.5の暗号化モジュールを使用すると、証明書と公開鍵 (RSAまたはX.509)の両方で検証できます。