Decoding clear-signed data

See below for decoding clear-signed data.

Creating the decoder

Create a PKCS7DecodeStream object.

PKCS7DecodeStream decoder = new PKCS7DecodeStream(user, new FileInputStream(<unencrypted_data>), new FileInputStream(<digital_signature>));

Where <digital_signature> is the source of the signed data.

Decoding the data

Use the decoder to decrypt the encrypted and signed data.

byte[] b = new byte[128];
int i = decoder.read(b);
while (i >= 0)
{
i = decoder.read(b);
}

Optionally, obtain information about the signatures.

int no_of_signatures = decoder.getNumberOfSignatures();
for (int n = 0; n & < ; no_of_signatures; ++n;) {
System.out.println("Signature: " + n);
System.out.println("Digest algorithm: " + decoder.getDigestAlgorithm(n));
System.out.println("Signer certificate: " + decoder.getSignerCertificate(n).getSubjectDN().getName());
System.out.println(decoder.getSignerInfo(n).toString());
}