1

http://msdn.microsoft.com/en-us/library/system.security.cryptography.pkcs(VS.85).aspx中我们可以看到定义了以下数字签名属性:

  • Pkcs9ContentType
  • Pkcs9文档说明
  • Pkcs9文档名称
  • Pkcs9MessageDigest
  • Pkcs9签名时间

其中,PKCS#9 规范中不存在Pkcs9DocumentDescriptionPkcs9DocumentName。我有一个使用Bouncy Castle的 Java 应用程序,我希望我的应用程序能够创建具有这两个属性的数字签名。

所以,我有两个问题:怎么做?我应该这样做吗?

4

1 回答 1

0

您必须使用 OID 手动构建属性,如下所示:

ObjectIdentifier dnOid = new ObjectIdentifier("1.3.6.1.4.1.311.88.2.1");
ObjectIdentifier ddOid = new ObjectIdentifier("1.3.6.1.4.1.311.88.2.2");
ASN1Set nameSet = new DERSet(new ASN1Encodable[] {new DERPrintableString("name")});
ASN1Set descriptionSet = new DERSet(new ASN1Encodable[] {new DERPrintableString("description"}));
Attribute documentName = new Attribute(dnOid, nameSet);
Attribute documentDescription = new Attribute(ddOid, descriptionSet);

我应该指出,使用DERPrintableString属性值是我最好的猜测。我找不到指示正确类型的文档。

至于你应该,好吧,使用不是来自的属性没有任何问题PKCS #9。您只是不应该依赖能够使用它们的外部系统。

于 2010-02-09T11:18:22.970 回答