3

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

我想我正确地嵌入了 OCSP 响应,但是当我在 Adob​​e Reader 11(离线)中打开文档并检查签名属性 > 显示签名者的证书 > 吊销 > 遇到的问题时,我看到了这个错误:

OCSP 响应解析错误:

BER解码时遇到错误:

Adobe Reader 没有为我提供有关此错误的更多信息,我不知道在哪里搜索。有谁知道为什么 Adob​​e 在解码 OCSP 响应时遇到问题,或者我怎样才能获得更具体的信息?

这是我要验证的 PDF。

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

4

1 回答 1

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 {

不幸的是,封装在该 OCTET STRING 中的基本 OCSP 响应

1766 1859:                               SET {
1770 1855:                                 SEQUENCE {
1774  286:                                   SEQUENCE {
1778  126:                                     [1] {

还嵌入在违反规范(RFC 2560等)的 SET 中:

ResponseBytes     ::= SEQUENCE {
   responseType   OBJECT IDENTIFIER,
   response       OCTET STRING }

响应的值应为 BasicOCSPResponse 的 DER 编码。

BasicOCSPResponse      ::= SEQUENCE {
  tbsResponseData      ResponseData,
  signatureAlgorithm   AlgorithmIdentifier,
  signature            BIT STRING,
  certs                [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL }

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

于 2014-08-24T19:31:39.980 回答