[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[iaik-jce] Decryption Issue
Gentlemen:
Another two questions and/or issues. I saved an email which had
been signed and subsequently encrypted to a file after stripping off
the headers. Processing per the documentation for EncryptedContentInfo
doesn't work. Specifically,
ContentInfo ci = new ContentInfo(fileInputStream..)
// after checking to see that it is EnvelopedData...
EnvelopedData ed = (EnvelopedData) ci.getContent();
// Print out some stuff..
EncryptedContentInfo eci = (EncryptedContentInfo)
ed.getEncryptedContentInfo();
// After fetching RecipientInfos and selecting correct one and fetching
PrivateKey
symmetricKey = ri.decryptKey(privateKey);
eci.setupCipher(symmetricKey);
Produces the following output
+---------------------------
| Encryption Algorithm used is 'RC2-CBC
| EncryptedContentInfo.hasContent() returns true: 6456 bytes
available.
| Printing out RecipientInfos so we know we're using correct Key to
decrypt!
| RecipientInfo for recipient 0
| ISN: SerialNumber: 176
| Issuer: O: ........
|
| RecipientInfo for recipient 1
| ISN: SerialNumber: 176
| Issuer: O: ........
|
| Decrypting using 1 as the index of the RecipientInfo!
| Fetching PrivateKey
| Key Encryption Algorithm is 'rsaEncryption'.
| Decrypted key used for encrypting; now decrypting content
| Some exception occurred!!
| iaik.pkcs.PKCSException: Unable to get algorithm parameter!
| at java.lang.Throwable.fillInStackTrace(Native Method)
| at java.lang.Throwable.<init>(Throwable.java:94)
| at java.lang.Exception.<init>(Exception.java:42)
| at iaik.pkcs.PKCSException.<init>(Unknown Source)
| at
iaik.pkcs.pkcs7.EncryptedContentInfoStream.setupCipher(Unknown Source)
| at LoadEncrypted.main(LoadEncrypted.java:221)
+-----------------------------
>> So, the first question is why didn't the documented method work? <<
I CAN decrypt the message if I go about it differently. If, after
decrypting the
KeyEncryption Key, I do something like the following instead of using
setupCipher method
Cipher rc2 = javax.crypto.Cipher.getInstance("RC2/CBC/NoPadding",
"IAIK");
rc2.init(Cipher.DECRYPT_MODE, symmetricKey);
data = rc2.doFinal(eci.getContent());
System.out.println("DECRYPTED content comprises " + data.length + "
bytes.");
then I can successfully decrypt the message. However, the first 8 bytes
are not
correct. (Should be a "Content-Type" header, but the first 8 bytes are
wrong.)
>> Second Question is why don't the first bytes decrypt properly? Did I
miss something? I <<
>> have also tried PKCS1Padding and PKCS5Padding, but neither corrects the
problem. <<
Thanks and regards,
Richard
--
Mailinglist-archive at http://jcewww.iaik.tu-graz.ac.at/mailarchive/iaik-jce/maillist.html
To unsubscribe send an email to listserv@iaik.tu-graz.ac.at with the folowing content: UNSUBSCRIBE iaik-jce