【问题标题】:Sign MimeBodyPart which has attachments in it (with Bouncycastle)签署其中包含附件的 MimeBodyPart(使用 Bouncycastle)
【发布时间】:2016-02-21 12:39:57
【问题描述】:

我正在使用 OpenAS2Server-1.3.3 库。 发送单个文档工作正常..

现在我想修改它以发送带有附件的文档,就像我们发送电子邮件一样。在这种情况下,所有的解密都运行良好,但签名验证失败(MIC 不匹配)

这就是我想用主文档发送附件的方式: 创建一个MimeMultipart 并将两个MimeBodyPart 添加到其中。 (主要文件及附件) 最后将MimeMultipart 包装在MimeBodyPart 中(我不确定这是这样做的方法,但无论如何Bouncycastle 没有API 来签署MimeMultipart

谁能告诉我签署带有附件的消息的正确方法?

        MimeBodyPart mainBody = new MimeBodyPart();
        mainBody.setDataHandler(new DataHandler(byteSource));

        MimeBodyPart attachemt1 = new MimeBodyPart();
        attachemt1.attachFile("/home/user/Desktop/Test1.txt");

        Multipart multipart = new MimeMultipart();
        multipart.addBodyPart(mainBody);
        multipart.addBodyPart(attachemt1);

        MimeBodyPart body = new MimeBodyPart();
        body.setContent(multipart);
        body.setHeader("Content-Type", multipart.getContentType());
        logger.info("--------------Attaching the file...  Done");

【问题讨论】:

    标签: digital-signature bouncycastle mime jakarta-mail smime


    【解决方案1】:

    我能够得到问题和解决方案。我只是把它放在这里,以供其他愿意尝试做这种工作的人使用。

    我只是在发送端和接收端转储用于计算 MIC 的数据。所以附图将清楚地显示问题。

    所以我在发送方为所有附件和主文档手动添加了这些标题字段,如下所示。

    mainBody.setHeader("Content-Type", "application/EDI-X12");
    mainBody.setHeader("Content-Transfer-Encoding", "7bit");
    

    现在它解决了,“MIC 匹配”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-04
      • 1970-01-01
      • 1970-01-01
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      • 2021-09-19
      • 1970-01-01
      相关资源
      最近更新 更多