[
https://issues.jboss.org/browse/JGRP-1893?page=com.atlassian.jira.plugin....
]
Tero Leppikangas commented on JGRP-1893:
----------------------------------------
Yes, the issue is present in master also, synchronization is missing between these
members:
protected Cipher[] encoding_ciphers, decoding_ciphers;
protected byte[] symVersion;
protected SecretKey secretKey;
The ciphers and symVersion are derived from the secretKey and all of them should update at
the same time.
There is also another issue: processing message batch during queuing up does not remove
the queued messages from the batch causing encrypted messages being passed up the stack.
ENCRYPT: Thread safety issues during key changes
------------------------------------------------
Key: JGRP-1893
URL:
https://issues.jboss.org/browse/JGRP-1893
Project: JGroups
Issue Type: Bug
Reporter: Tero Leppikangas
Assignee: Bela Ban
For symmetric encryption, ENCRYPT has members with shared state: secret key, version and
ciphers. In order for to provide consistent state between different threads accessing
these members, they should be synchronized.
I have implemented one solution by wrapping the state in separate object which can be
found here:
https://github.com/tepitebson/JGroups/tree/ENCRYPT_Thread_safety
I also have replaced the WeakHashMap holding the previous keys with Cache in google's
guava library so my solution probably is not suitable for an official solution.
--
This message was sent by Atlassian JIRA
(v6.3.1#6329)