【问题标题】:Bouncycastle - how to distinguish attached from detached signature file programmaticallyBouncycastle - 如何以编程方式区分附加签名文件和分离签名文件
【发布时间】:2017-06-19 20:14:48
【问题描述】:

我正在开发一个用于根据 pkcs7 签署/验证文件的应用程序。我正在使用 bouncycastle。问题是,每当我传入(验证!)包含签名的文件时,我都无法找到区分文件是否同时包含签名和签名数据或仅包含签名的方法。关键是如果第一个文件仅包含签名/并显示适当的错误/,则要求用户选择第二个文件。 有没有办法解决这个问题?

【问题讨论】:

  • 能否请您说明您正在使用哪些 BC 类,也许是 CMSSignedData?
  • 是的,我正在使用 CMSSignedData。
  • 我试过cmsSignedData.getSignedContent().getContent(),但这似乎不是一个好主意,因为我必须先创建 cmsSignedData 实例,该实例必须同时提供签名和签名内容/或包含两者的文件/ .因此,它总是返回签名内容 /never null 例如/。

标签: bouncycastle pkcs#7


【解决方案1】:

要构造CMSSignedData(第一次,在你知道它是否封装了内容之前),只需使用CMSSignedData(byte[])构造函数,其中byte[]是文件的完整内容。

拥有 CMSSignedData 实例后,如果内容未封装,则 getSignedContent() 仅返回 null。

一旦您掌握了基础知识,如果您正在处理非常大的文件,您可能希望将 CMSSignedDataParser 视为一种更高级的选项,以避免读取整个文件。

【讨论】:

  • 工作就像一个魅力!
猜你喜欢
  • 1970-01-01
  • 2016-05-20
  • 1970-01-01
  • 2012-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多