Javascript ECDSA获取私钥和​​公钥?

时间:2013-01-06 09:12:46

标签: javascript cryptography ecdsa

我所需要的只是获得ECDSA的私人和公共密钥对。斯坦福Javascript加密库以非标准的方式(https://groups.google.com/forum/?fromgroups#!topic/sjcl-discuss/UaWUyMWS3Rs)进行,这对我来说毫无用处 - 比如制作一个MD5库给其他一切带来不同结果的重点是什么?

是否有一种在javascript中使用ECDSA的实际工作方式?

2 个答案:

答案 0 :(得分:6)

jsrsasign 4.0.0现在支持使用EC私钥和公钥进行ECDSA签名和验证。

http://kjur.github.io/jsrsasign/

我认为这符合您的需求。 这是一个演示页面。

http://kjur.github.io/jsrsasign/sample-ecdsa.html

答案 1 :(得分:0)

首先,您链接的评论谈论ECDSA签名的格式,而不是密钥对。其次,这有点误导:

ECDSA算法的输出是区间[1,n-1]中的两个整数。 ECDSA标准(FIPS 183-3)没有指定将这对数字编码为字节数组的标准方法。

一种方法是将数字封装在ASN.1 SEQUENCE中。这是ANSI X9.62RFC3278指定的方式。它是Java和(AFAIR)Microsoft CNG / .NET的标准输出。

另一种方法是用零填充数字,使它们具有与n相同的字节长度,然后将它们连接起来。这是由PKCS#11和大多数智能卡实现完成的。

如果我正确读取源代码,SJCL将以第二种方式对ECDSA签名进行编码。您可以轻松地将此格式转换为第一个格式。