Pdf OCSP响应分析错误。误码率译码错误

Pdf OCSP响应分析错误。误码率译码错误,pdf,adobe,bouncycastle,ocsp,Pdf,Adobe,Bouncycastle,Ocsp,我正在尝试将OCSP响应添加到使用CmsSignedDataGenerator与Bouncy Castle签名的PDF文档中 我认为我正确嵌入了OCSP响应,但当我在Adobe Reader 11(脱机)中打开文档并检查签名属性>显示签名者证书>吊销>遇到的问题时,我看到了以下错误: OCSP响应分析错误: BER解码时遇到错误: Adobe Reader没有提供有关此错误的更多信息,我不知道在哪里搜索。有人知道为什么Adobe在解码OCSP响应时遇到问题,或者我如何获得更具体的信息吗 任何形

我正在尝试将OCSP响应添加到使用CmsSignedDataGenerator与Bouncy Castle签名的PDF文档中

我认为我正确嵌入了OCSP响应,但当我在Adobe Reader 11(脱机)中打开文档并检查签名属性>显示签名者证书>吊销>遇到的问题时,我看到了以下错误:

OCSP响应分析错误:

BER解码时遇到错误:

Adobe Reader没有提供有关此错误的更多信息,我不知道在哪里搜索。有人知道为什么Adobe在解码OCSP响应时遇到问题,或者我如何获得更具体的信息吗

任何形式的帮助都将不胜感激

感谢

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响应封装在该八位字节字符串中

1766 1859:                               SET {
1770 1855:                                 SEQUENCE {
1774  286:                                   SEQUENCE {
1778  126:                                     [1] {
另外嵌入一套不符合规范(和其他)的装置中:

响应值应为DER编码 基本的回答


与此同时,OP似乎纠正了他(重新)构建完整OCSP响应的方式。

许多人只插入基本响应,而不插入完整响应。这可能是你的问题吗?谢谢你回答@mkl!你熟悉BouncyCastle吗?我想我插入了基本的回答,但也许我错了。这是作为DerSet传递给AttributeTable的对象:((basicospresp)ocspResponse.GetResponseObject()).GetEncoded()。还有什么我应该知道的吗?我想我在插入基本的回答-是的,这是错误的,你需要插入完整的回答。这是很多人都犯过的错误。对不起,我误解了你的回答。我将尝试插入完整的响应,看看会发生什么!谢谢@mkl,你说得对:)。我的问题是在插入响应之前格式化响应的方式,并且我需要插入完整的响应。现在我有这个错误OCSP响应签名无效,但我认为这是一个完全不同的问题
ResponseBytes     ::= SEQUENCE {
   responseType   OBJECT IDENTIFIER,
   response       OCTET STRING }
BasicOCSPResponse      ::= SEQUENCE {
  tbsResponseData      ResponseData,
  signatureAlgorithm   AlgorithmIdentifier,
  signature            BIT STRING,
  certs                [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL }