Today when working with AesManaged class I've encountered very strange behavior.
If you have a code like this - you're in trouble:
AesManaged aes = new AesManaged(); aes.Key = key; aes.KeySize = key.Length; //the problemThe problem with this code is setting KeySize after setting Key value.
When you set KeySize after Key - the previously specified key is discarded and a brand new key value is generated and put into Key property
I find this behavior rather strange, especially that there is no information describing what will happen after setting KeySize.
I would expect that when Key value is set setting KeySize will throw exception if specified key's size is bigger or smaller than the new one.