1
我想创建一个Google Go应用程序,它能够对DER编码和解码大整数(即ECDSA signature r and s)。根据我的理解,我应该使用asn1 package,但是我应该调用哪些函数?Go,DER和处理大整数
例如,我想编码
316eb3cad8b66fcf1494a6e6f9542c3555addbf337f04b62bf4758483fdc881d
和
bf46d26cef45d998a2cb5d2d0b8342d70973fa7c3c37ae72234696524b2bc812
得到这个:
30450220316eb3cad8b66fcf1494a6e6f9542c3555addbf337f04b62bf4758483fdc881d022100bf46d26cef45d998a2cb5d2d0b8342d70973fa7c3c37ae72234696524b2bc81201
,反之亦然。我应该调用哪种函数进行编码,以及哪种函数用于解码以及如何进行编码
嗯,编码消息似乎缺乏末尾的01字节。 – ThePiachu 2012-01-03 19:18:54
确实,你是对的。我没有注意到这个最后的“01”,但我不认为这是正确的ASN.1 DER编码。编码消息以“0x30 0x45”开始:0x30是通用标签SEQUENCE,0x45是序列长度(不包括标签和长度);如果您读取序列中的69个字节(十进制中的0x45),您将获得除最后的“01”之外的所有数据。 – Jcs 2012-01-03 20:02:20
嗯,也许这是一个字节特定于实现,使用编码。已经在这里讨论 - http://bitcoin.stackexchange.com/questions/2376/ecdsa-rs-encoding-as-a-signature – ThePiachu 2012-01-03 20:14:07