我写的东西是
needs to do electronic signatures.
有些用户会像我这样的极客,并且已经拥有自己的PGP密钥.大多数人不会,也不会想要安装或维护它.
作为一种解决方案,我想做以下事情:
>为使用单独“签名”密码的用户创建公钥/私钥对.
>当我需要用户签名时,向用户提供明文,以及其中的一些其他信息,如时间戳和其他引用,并让他们使用我存储的私钥对其进行签名.
基本上有两种方法(对于没有自己的PGP密钥的用户).
>用户通过SSL向我提交签名密码.我生成私钥对服务器端,并在需要签名时暂时解锁私钥.我根本不存储密码,我尽快摆脱解锁的私钥.
>用户在Javascript中生成pub / priv键.他们向我发送了pubkey和加密的私钥,并将副本保存在本地存储中.当他们需要签名时,我确保他们的本地存储有它(如果不是,则推送),他们使用JS在本地解密和签名文本.我从未看到他们的签名密码或他们未锁定的私钥.
无论哪种方式,我也用服务器的密钥签署结果.但我需要有一个用户独特的,不可否认的方式让用户也可以签署文本,并让他们拥有一个我维护的PGP密钥是最简单的方法.
选项1要简单得多,并且能够很好地满足我的最低需求.
选项2更值得信赖,因为除非我颠覆了JS(我仍然能够做到),否则我不能自己使用他们的私钥.
但是,为了做到这一点,我需要一个可以的JavaScript库
>生成pub / priv密钥对
>解密私钥以供使用
>使用该私钥签署一个文本块
哪些库可以做到这一点?
附:请注意,我不需要加密到给定的公钥.我需要用户使用他们自己的(加密存储的)密钥进行签名.