bodyHeaders.add("Content-Type", out.getMediaType().toString());
writer.writeTo(out.getEntity(), out.getType(), out.getGenericType(), null, out.getMediaType(), bodyHeaders, bodyOs);
CMSSignedDataGenerator signGen = new CMSSignedDataGenerator();
signGen.addSigner(out.getPrivateKey(), (X509Certificate)out.getCertificate(), CMSSignedDataGenerator.DIGEST_SHA1);
//signGen.addCertificatesAndCRLs(certs);
CMSProcessable content = new CMSProcessableByteArray(bodyOs.toByteArray());
CMSSignedData signedData = signGen.generate(content, true, "BC");
return signedData.getEncoded();
}