Robert, Attached is a log of the backtrace when I try to use Thunderbird to decrypt an email. As you can see in the log it reaches C_DecryptUpdate(), but then asserts at cmscipher.c:452.
Now we use OpenSSL to perform these cryptographic operations and if you give its DecryptUpdate() function exactly (N * blocksize) of data then it will keep 1 block back waiting for either a DecryptUpdates() with more data or a DecryptFinal() at which stage it will return the plaintext of that last block. So what I think is happening here is that you call DecryptUpdate() with data which fall on the blocksize boundary and OpenSSL buffer the last blocksize of data and you expect everything back and therefore asserts. My question then is why do you call DecryptUpdate() here. A Decrypt() would solve my problem. Thanks for your time! Regards, LJB -- dev-tech-crypto mailing list dev-tech-crypto@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-tech-crypto