add public key encryption