我正在做一些PDF文件,我找不到一个明确的解释问题张贴在这里。在一个数字签名的PDF文件上,我们有以下临时签名:
<< /Type /Sig /Filter /Adobe.PPKLite /SubFilter /adbe.pkcs7.detached/ByteRange[O1 L1 O2 L2] /Contents<0000....0000>O1 =偏移1(零)
L1 =长度1(签名前的内容长度)
O2 =偏移量2 (L1 +签名长度)
L2 =长度2(签名后的内容长度)
我有以下问题:
1-要“散列”的内容应包括"<“和">”(签名占位符0000开始和结尾)?
签名的长度是11742?这包括"<“和">”吗?
3-在ByteRange上,第二个参数是从文件开始到"<“(签名占位符0000.0000之前)的长度,还是包括它?与前面的问题一样,ByteRange上的最后一个参数是否包含">“字符(签名占位符0000.0000的末尾)?
如果有人可以重新指导我的技术手册,这将是非常有帮助的。
发布于 2018-06-15 22:02:32
在阅读了技术手册和用PDF进行实验之后,现在我有了答案。
1-要“散列”的内容应包括"<“和">”(签名占位符0000开始和结尾)?
不,"<“和">”,不应该是要“散列/签名”的数据的一部分。在签名过程之后,应该使用"<“和">”作为十六进制签名的分隔符。示例: /Contents<3255....0000>
签名的长度是11742?这包括"<“和">”吗?
不必了。只要“签名占位符”的长度比签名的和时间戳数据长。
3-在ByteRange上,第二个参数是从文件开始到"<“(签名占位符0000.0000之前)的长度,还是包括它?和前面的问题一样,ByteRange上的最后一个参数是否包含">“字符(签名占位符0000.0000的末尾)?
第二个参数是"<“(签名占位符之前)的偏移量,或者使用相同的逻辑,从文件开始到"<”的内容长度(不包括它)。
最后一个参数不包括计算剩余数据长度的">“。
mkl (https://stackoverflow.com/users/1729265/mkl)评论后的补充澄清
O2 =偏移量2 (L1 +签名长度)
O2 =偏移量2 = L1 +签名长度+2。这是因为占位符包括"<“和">”
例子:
{100-BYTES-DATA-BEFORE}<0000....0000>{50-BYTES-DATA-AFTER}需要散列/签名/时间戳的数据
{100-BYTES-DATA-BEFORE} + {50-BYTES-DATA-AFTER}签名占位符= 11742字节(11742零)
ByteRange[O 100 11844 50]在数据符号和/或时间戳之后:
{100-BYTES-DATA-BEFORE} + < + 4321....0000 + > + {50-BYTES-DATA-AFTER}https://stackoverflow.com/questions/50876586
复制相似问题