将加密后的数据及证书按pkcs7打包成数据流如何完成?

柠檬lemonfight 发布于 2016/09/15 22:16
阅读 393
收藏 1


下面是我写的代码,请问  这打包方式对不,又如何才能取出里面的 加密数据及证书


private static void writeSignatureBlock(

       Signature signature, X509Certificate publicKey,String result)
       throws IOException, GeneralSecurityException {
   SignerInfo signerInfo = new SignerInfo(
           new X500Name(publicKey.getIssuerX500Principal().getName()),
           publicKey.getSerialNumber(),
           AlgorithmId.get("SHA1"),
           AlgorithmId.get("RSA"),
           signature.sign());
 
   PKCS7 pkcs7 = new PKCS7(
           new AlgorithmId[] { AlgorithmId.get("SHA1") },//这里是证书信息写入
           new ContentInfo(ContentInfo.DATA_OID, null),
           new X509Certificate[] { publicKey },
           new SignerInfo[] { signerInfo });//这条是签名数据
   ByteArrayOutputStream bOut = new DerOutputStream();
   pkcs7.encodeSignedData(bOut);
   byte[] encoded = bOut.toByteArray();
   System.out.println("pkcs-encoded"+encoded);
加载中
返回顶部
顶部