如何在 Java 应用程序中使用 Microsoft PKCS#9 SignerInfo 属性?
在 http://msdn. microsoft.com/en-us/library/system.security.cryptography.pkcs(VS.85).aspx 我们可以看到定义了以下数字签名属性:
- Pkcs9ContentType
- Pkcs9DocumentDescription
- Pkcs9DocumentName
- Pkcs9MessageDigest
- Pkcs9SigningTime
其中,Pkcs9DocumentDescription 和 Pkcs9DocumentName 不存在于 中PKCS#9 规范。我有一个使用 Bouncy Castle 的 Java 应用程序,我希望我的应用程序能够创建具有这两个属性的数字签名。
所以,我有两个问题:如何做到这一点?我应该这样做吗?
In http://msdn.microsoft.com/en-us/library/system.security.cryptography.pkcs(VS.85).aspx we can see that the following digital signature attributes are defined:
- Pkcs9ContentType
- Pkcs9DocumentDescription
- Pkcs9DocumentName
- Pkcs9MessageDigest
- Pkcs9SigningTime
Of those, Pkcs9DocumentDescription and Pkcs9DocumentName are not present in the PKCS#9 specification. I have a Java application that uses Bouncy Castle and I want my app to be able to create digital signatures that have these two attributes.
So, I have two questions: how to do so? Should I do that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您必须使用 OID 手动构建属性,如下所示:
我应该指出,使用 DERPrintableString 作为属性值是我的最佳猜测。我找不到指示正确类型的文档。
至于你应该吗?好吧,使用不是来自
PKCS #9
的属性并没有什么问题。您只是不应该依赖能够使用它们的外部系统。You'll have to manually build the attributes using the OIDs, like so:
I should point out that using
DERPrintableString
for the attribute value is my best guess. I can't find the documentation for indicating the correct type.As for should you, well, there's nothing wrong with using Attributes which aren't from
PKCS #9
. You just shouldn't rely on an external system being able to use them.