OpenPGP 签名
我正在阅读 RFC4880 试图生成子集的实现 使用 http://phpseclib.sourceforge.net/ 的 OpenPGP(RSA 签名)。我 有公钥和压缩文字签名数据包 解析出来了。我 可以提取 n 和 e 并将它们提供给 Crypt_RSA 来构建验证器。我 告诉它我正在使用 sha256。然后它需要一个“消息”和一个“ 签名” 参数。我从签名包中获取签名数据没有问题。 我的问题是:什么是“消息”?根据秒 化 5.2.4 这是 文字数据包的某种组合(它们的主体或整个数据包) 数据包?)和“散列”子数据包。我只是连接所有吗 数据包 以及散列数据包按照它们出现的顺序排列在一起?
I'm reading RFC4880 in an attempt to produce an implementatdion of a subset
of OpenPGP (RSA signatures) using http://phpseclib.sourceforge.net/. I
have the publickey and compression-literal-signature packets
parsed out. I
can extract n and e and feed them to Crypt_RSA to construct a verifier. I
tell it I'm using sha256. It then needs a "message" and a "
signature"
parametre. I get the signature data out of the signature packet no problem.
The question I have is: what is "message"? According to sec
tion 5.2.4 it's
some combination of the literal data packet(s?) (their bodies or the whole
packet?) and the "hashed" subpackets. Do I just concat all
the data packets
and the hashed packets together in the order they appear?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
散列是文字数据包内容(不是整个正文,只是数据),后跟“预告片”(从签名包到并包括散列子包的文字字节),后跟 { 0x44, 0xff, Trailer_length_as_4_octet_network_order_unsigned_integer }
The hash is of the literal data packet contents (not the whole body, just the data), followed by the "trailer" (literal bytes from signature packet up to and including hashed subpackets), followed by { 0x44, 0xff, trailer_length_as_4_octet_network_order_unsigned_integer }