}
protected byte[] encapsulateContent(final byte[] data, final byte[] signature) throws IOException {
ASN1InputStream inputStream = new ASN1InputStream(signature);
DERSequence derSequence = (DERSequence) inputStream.readObject();
ContentInfo signaturecontentInfo = new ContentInfo(derSequence);
SignedData signatureSignedData = new SignedData((ASN1Sequence) signaturecontentInfo.getContent());
ContentInfo dataContentInfo = new ContentInfo(CMSObjectIdentifiers.data, new BERConstructedOctetString(data));
SignedData datasignedData = new SignedData(signatureSignedData.getDigestAlgorithms(), dataContentInfo, signatureSignedData.getCertificates(), signatureSignedData.getCRLs(), signatureSignedData.getSignerInfos());
ContentInfo fullContentInfo = new ContentInfo(PKCSObjectIdentifiers.signedData, datasignedData);
return fullContentInfo.getDEREncoded();
}