【发布时间】:2017-01-15 15:17:58
【问题描述】:
我想使用 PKCS7 容器在 PDF 文件中创建分离签名。数据(哈希)已在使用私钥的不同设备上预先签名。我想创建一个包含签名数据的 PKCS7 以及带有公钥的证书。如果不提供私钥并让图书馆签署数据,我似乎无法创建带有充气城堡的 PKCS7。这似乎不起作用:
InputStream inStream = new FileInputStream("1_public.pem");
BufferedInputStream bis = new BufferedInputStream( inStream );
CertificateFactory cf = CertificateFactory.getInstance("X.509");
List<Certificate> certList = new ArrayList<Certificate>();
Certificate certificate = cf.generateCertificate(bis);
certList.add(certificate);
Store certs = new JcaCertStore(certList);
CMSSignedDataGenerator gen = new CMSSignedDataGenerator();
gen.addCertificates( certs );
CMSProcessableInputStream msg = new CMSProcessableInputStream( new ByteArrayInputStream( "signedhash".getBytes() ) );
CMSSignedData signedData = gen.generate(msg, false);
byte[] pkcs7 = signedData.getEncoded() ) );
【问题讨论】:
-
请说明它在什么方面不起作用。
-
pkcs7中缺少签名数据
标签: java bouncycastle pkcs#7