Add multi encryption key support

finish encryption

fix refactor breaking a test

Multi decryption key support