我正在尝试将OCSP响应添加到我使用CmsSignedDataGenerator与Bouncy Castle签名的PDF文档
我认为我正确地嵌入了OCSP响应,但是当我在Adobe Reader 11中打开文档(离线)并检查签名属性>显示签名者证书>撤销>遇到的问题我看到了这个错误:
OCSP响应解析错误:
BER解码时遇到错误:
Adobe Reader不会再提供有关此错误的信息,我也不知道在哪里搜索。有谁知道为什么Adobe在解码OCSP响应时遇到问题或者如何获得更具体的信息呢?
This is the PDF I'm trying to validate.
非常感谢任何形式的帮助 感谢
答案 0 :(得分:1)
OCSP响应嵌入在OP的签名中,如下所示:
1705 1920: SEQUENCE {
1709 9: OBJECT IDENTIFIER '1 2 840 113583 1 1 8'
1720 1905: SET {
1724 1901: SEQUENCE {
1728 1897: [1] {
1732 1893: SEQUENCE {
1736 1889: SEQUENCE {
1740 1: ENUMERATED 0
1743 1882: [0] {
1747 1878: SEQUENCE {
1751 9: OBJECT IDENTIFIER
: ocspBasic (1 3 6 1 5 5 7 48 1 1)
1762 1863: OCTET STRING, encapsulates {
1766 1859: SET {
1770 1855: SEQUENCE {
1774 286: SEQUENCE {
1778 126: [1] {
1780 124: SEQUENCE {
1782 11: SET {
1784 9: SEQUENCE {
1786 3: OBJECT IDENTIFIER
: countryName (2 5 4 6)
1791 2: PrintableString 'AU'
: }
: }
与我最初的想法相反,OP不仅试图包含基本的OCSP响应,而且确实是一个完整的回应:
1736 1889: SEQUENCE {
1740 1: ENUMERATED 0
1743 1882: [0] {
1747 1878: SEQUENCE {
1751 9: OBJECT IDENTIFIER
: ocspBasic (1 3 6 1 5 5 7 48 1 1)
1762 1863: OCTET STRING, encapsulates {
不幸的是,基本的OCSP响应封装在OCTET STRING
中1766 1859: SET {
1770 1855: SEQUENCE {
1774 286: SEQUENCE {
1778 126: [1] {
另外嵌入SET中,违反规范(RFC 2560和其他):
ResponseBytes ::= SEQUENCE {
responseType OBJECT IDENTIFIER,
response OCTET STRING }
响应的值应为DER编码 BasicOCSPResponse。
BasicOCSPResponse ::= SEQUENCE {
tbsResponseData ResponseData,
signatureAlgorithm AlgorithmIdentifier,
signature BIT STRING,
certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL }
OP同时似乎已经纠正了(重新)构建完整的OCSP响应的方式。