Bouncycastle - 如何以编程方式区分附加签名文件和分离签名文件

Bouncycastle - how to distinguish attached from detached signature file programmatically

我正在开发一个根据 pkcs7 用于 sign/verify 文件的应用程序。我正在使用充气城堡。问题是每当我传入(验证!)一个包含签名的文件时,我都无法找到一种方法来区分该文件是同时包含签名和签名数据还是仅包含签名。关键是如果第一个文件仅包含签名/并显示适当的错误/,则要求用户 select 第二个文件。 有什么办法可以解决这个问题吗?

构造CMSSignedData(第一次,不知道有没有封装内容),使用CMSSignedData(byte[])构造函数即可,其中byte[]为文件的全部内容

获得 CMSSignedData 实例后,如果内容未封装,则 getSignedContent() 只需 returns null。

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