You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Thomas Vandahl (Jira)" <ji...@apache.org> on 2022/04/09 10:19:00 UTC

[jira] [Resolved] (JCS-230) UDPDiscoveryReceiver with EncryptingSerializer fails

     [ https://issues.apache.org/jira/browse/JCS-230?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas Vandahl resolved JCS-230.
--------------------------------
    Fix Version/s: jcs-3.2
       Resolution: Fixed

Fixed in Git

> UDPDiscoveryReceiver with EncryptingSerializer fails
> ----------------------------------------------------
>
>                 Key: JCS-230
>                 URL: https://issues.apache.org/jira/browse/JCS-230
>             Project: Commons JCS
>          Issue Type: Bug
>          Components: TCP Lateral Cache
>    Affects Versions: jcs-3.1
>            Reporter: Dorota Oeknigk-Urbanska
>            Assignee: Thomas Vandahl
>            Priority: Major
>             Fix For: jcs-3.2
>
>         Attachments: patch.diff, unitTests.patch.diff
>
>
> Version jcs-3.1 introduced an option to use EncryptingSerializer instead of StandardSerializer.
> However when EncryptingSerializer  is configured for LTCP by :
> jcs.auxiliary.LTCP.serializer=org.apache.commons.jcs3.utils.serialization.EncryptingSerializer
> UDPDiscoveryReceiver throws an error when trying to serialize received message ( error bellow).
>  
> Root cause of this error:
> calling deSerialize method in line 265 :
> serializer.deSerialize(byteBuffer.array(), null);
> byteBuffer.array() - returns byte[] which size is the full capacity of ByteBuffer not the size of recived message. 
>  
>  
> Apr 04, 2022 2:16:19 PM org.apache.commons.jcs3.utils.discovery.UDPDiscoveryReceiver 
> SEVERE: Error receiving multicast packet
> java.io.IOException: Error while decrypting
>     at org.apache.commons.jcs3.utils.serialization.EncryptingSerializer.decrypt(EncryptingSerializer.java:209)
>     at org.apache.commons.jcs3.utils.serialization.EncryptingSerializer.deSerialize(EncryptingSerializer.java:247)
>     at org.apache.commons.jcs3.utils.discovery.UDPDiscoveryReceiver.run(UDPDiscoveryReceiver.java:265)
>     at java.base/java.lang.Thread.run(Thread.java:834)
> Caused by: javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting with padded cipher
>     at java.base/com.sun.crypto.provider.CipherCore.prepareInputBuffer(CipherCore.java:1005)
>     at java.base/com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:848)
>     at java.base/com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:446)
>     at java.base/javax.crypto.Cipher.doFinal(Cipher.java:2202)
>     at org.apache.commons.jcs3.utils.serialization.EncryptingSerializer.decrypt(EncryptingSerializer.java:203)
>     ... 3 more
>  
>  
> Solution attached in patch.diff file.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)