从 etoken 创建 PKCS7 签名
Creating PKCS7 signature from etoken
我正在尝试使用电子令牌生成数字签名。
我正在使用 BouncyCastle 库并且正在生成签名。
问题是我希望它采用 pkcs7 格式,其中还包含诸如“-----BEGIN PKCS7-----”之类的标签并以“-----END PKCS7-----”结尾。但是签名我生成的不包含这些标签。
我不确定我哪里出错了。
这是我的代码..
CMSProcessable content = new CMSProcessableByteArray(contentbytes);
CMSSignedData signedData = signGen.generate(content, securityProviderName);
byte[] signeddata = signedData.getEncoded();
BASE64Encoder encoder = new BASE64Encoder();
digitalSignature = encoder.encode(signeddata);
现在我需要将数据放入 pkcs7 format.Is 代码有什么问题吗?或者我需要添加什么吗?请帮忙..谢谢.
PKCS#7,通常称为 CMS(加密消息语法),是一种使用 ASN.1 指定并使用 BER/DER(Basic/Distinguished 编码规则)编码的容器格式。 BER/DER 是执行 二进制 编码的方法。
您说的是 PEM 格式,它是为 Privacy Enhanced Mail 指定的。它有时也被称为 ASCII 装甲,因为它可以通过文本接口发送二进制数据。它由 header 和页脚组成,这些页脚也标识数据,以及 DER 编码 blob 的 base 64 编码。
您可以自己实现 header 和页脚生成,或者您可以查看 Bouncy Castle 中的 PemWriter
class Java 功能。可以找到格式的规范 here.
我正在尝试使用电子令牌生成数字签名。 我正在使用 BouncyCastle 库并且正在生成签名。 问题是我希望它采用 pkcs7 格式,其中还包含诸如“-----BEGIN PKCS7-----”之类的标签并以“-----END PKCS7-----”结尾。但是签名我生成的不包含这些标签。 我不确定我哪里出错了。 这是我的代码..
CMSProcessable content = new CMSProcessableByteArray(contentbytes);
CMSSignedData signedData = signGen.generate(content, securityProviderName);
byte[] signeddata = signedData.getEncoded();
BASE64Encoder encoder = new BASE64Encoder();
digitalSignature = encoder.encode(signeddata);
现在我需要将数据放入 pkcs7 format.Is 代码有什么问题吗?或者我需要添加什么吗?请帮忙..谢谢.
PKCS#7,通常称为 CMS(加密消息语法),是一种使用 ASN.1 指定并使用 BER/DER(Basic/Distinguished 编码规则)编码的容器格式。 BER/DER 是执行 二进制 编码的方法。
您说的是 PEM 格式,它是为 Privacy Enhanced Mail 指定的。它有时也被称为 ASCII 装甲,因为它可以通过文本接口发送二进制数据。它由 header 和页脚组成,这些页脚也标识数据,以及 DER 编码 blob 的 base 64 编码。
您可以自己实现 header 和页脚生成,或者您可以查看 Bouncy Castle 中的 PemWriter
class Java 功能。可以找到格式的规范 here.