我正在尝试使用电子令牌生成一个数字签名。我正在使用BouncyCastle库,并且正在生成签名。问题是,我希望它是pkcs7格式的,它也包含诸如‘--开始PKCS7 7’和‘--结束于’--结束PKCS7 7-但是我生成的签名不包含这些标记。我不知道我哪里出了问题。这是我的密码。
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中,代码有什么问题吗?还是我需要在这上面加点什么?请帮忙..。谢谢。
发布于 2015-09-10 14:07:25
PKCS#7,通常称为CMS (加密消息语法)是一种容器格式,使用ASN.1指定,并使用BER/DER (基本/区分编码规则)编码。BER/DER是执行二进制编码的方法。
您正在讨论的是PEM格式,它是为隐私增强邮件指定的。它有时也被称为ASCII装甲,因为它可以通过文本接口发送二进制数据。它由一个页眉和页脚组成,它也标识数据,以及编码到基础64的DER编码blob。
您可以做的是自己实现页眉和页脚生成,或者您可以查看Bouncy功能中的PemWriter类。格式的规范可以找到这里。
https://stackoverflow.com/questions/32503606
复制相似问题