使用公钥在Node.JSencryption中validation签名

有没有一种好的方法来validationNode.JS(v0.4 +)中的签名与公钥?

目前的encryption模块允许使用证书,但不能使用公钥。 例如:

var crypto = require("crypto"); verifier = crypto.createVerifier("sha1"); verifier.update("signed data"); verifier.verify(CERT, signature); 

variablesCERT需要签名的证书(我猜公钥是从那个拉),但我拥有的是公钥而不是证书。

只有坚实的方式来实现这似乎是倾倒的数据的内容,公钥和签名到文件并执行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", ...) 

但是,每次我需要validation签名时创build(和删除)文件看起来都是浪费。

任何好的想法如何做得更好?

更新2011-08-03

Node.js v0.5中的encryption模块允许使用证书和公钥 (RSA或X.509)

你为什么不把公钥拿到自签名证书里? 那么节点的encryption模块就可以正常工作了。

http://www.akadia.com/services/ssh_test_certificate.html

我会认为这样做会比创build一个opensslsubprocess更有效率。