javax.crypto fixes

Marco Trudel mtrudel@gmx.ch
Sun Oct 1 16:48:00 GMT 2006


Andrew Haley wrote:
> Marco Trudel writes:
>  > I fixed some stuff in javax.crypto:
>  > 
>  > 1. decryption with padding was broken/wrong handled
>  > 2. CipherOutputStream was completly broken/unusuable
>  > 3. PKCS7 did an unnecessary test
>  > 
>  > Cipher, CipherOutputStream and CipherInputStream now work as expected.
>  > 
>  > 
>  > 1. decryption with padding needs to keep back the last block for final 
>  > unpadding when doFinal() is called. This wasn't done. doFinal() lead to 
>  > an exception.
>  > Actually, padded decrypting only worked correct when all data was passed 
>  > by doFinal(byte[]) or when there where update() calls that filled the 
>  > data to a multiple of the blocklengh and doFinal was called with the 
>  > rest of the data.
>  > This fixes CiperInputStream as well, because it relies on the correct 
>  > doFinal() handling of the cipher class.
>  > 
>  > 2. CipherOutputstream had a lot of code that did nothing except leading 
>  > to a NullPointerException when calling write(...) (outBuffer was never 
>  > initialized). It looks to me like the code should have worked around the 
>  > bugs in CipherAdapter. But that should have been done in CipherInputStream?!
>  > 
>  > 3. PKCS7 unpadding tested a value that was just read with itself. Fixed 
>  > it because I was already reading it... Nothing big...
>  > 
>  > 
>  > Any comments? Hints?
>  > 
>  > I have no committing rights and the copyright assignment papers are not 
>  > yet arrived with mail. This might be a problem...
>  > 
>  > Ah, and finally: this is actually classpath code, can someone check that 
>  > in there too, as soon as it's ok for gcj?
> 
> You better post this to classpath-patches.

Done. I will see that it finds its way into GCJ as well, as soon as it 
has been committed into classpath...

Marco



More information about the Java-patches mailing list