allow SetKeys() to be called with encrypt or decrypt, or both
delay SetKeys() with SetKeysSide() until last possible moment, needed for scr