使用X.509证书的数字签名

时间:2014-08-07 09:33:02

标签: java ssl x509certificate digital-signature bouncycastle

我有一个包含在SmartCard中的SHA256withRSA X.509 证书。我需要用它在Java中签署生成P7M(CAdES)信封的文档。到目前为止,我已经找到了一些签署文档的例子,但问题是:

  • 大多数示例仅使用PDF(例如itext库),但我需要 签署其他文件,如.doc
  • 签名示例使用密钥库或私钥。但我只是 X.509证书。我想这个关键体现在X.509中 证书

你有什么指示可以开始吗?我很困惑,找不到起点。
谢谢!

1 个答案:

答案 0 :(得分:0)

1。)您可以使用文件的byte[]对任何文件进行签名。这将是二进制签名。它适用于任何文件(.html,.txt,.pdf,.doc,..)。

与您提到的" PDF和#34;的签名相比,这些签名称为PAdES签名。这些签名正在被某些应用程序识别,例如Adobe Acrobat。如果您使用相应的应用程序打开此类PDF,应用程序将通知您该文档已签名。 但是如果您使用二进制签名,应用程序就无法做到 - 但至少您可以签署所有内容。

2。)您需要一个私钥才能签名。 [X.509] [2}证书仅包含公钥 - 私钥对的公共部分。私人部分必须保密。在您的情况下,密钥的私有部分存储在智能卡上。

阅读智能卡手册以便使用它。 如果您不了解公钥/私钥如何工作,请继续阅读something about PKI