When CCrypter::SetKey() is called on an instance that already has a key set (fKeySet=true), the old key and IV are overwritten without being cleansed first. This can leave sensitive key material in memory longer than necessary.
This fix adds a call to CleanKey() before overwriting the key when fKeySet is already true, ensuring old key material is securely wiped before new key data is written