from keyczar import keys import ssh_rsa_key_util if __name__ == '__main__' : #load asymmetric keys for 2 users. user1 key is generated, #while user2 key is loaded from disk keyuser1 = keys.RsaPrivateKey.Generate() keyuser1public = keyuser1.public_key ssh_keys_directory = '/home/guillaume/.ssh/' keyuser2 = ssh_rsa_key_util.SshRsaPrivateKey.Read(ssh_keys_directory + 'id_rsa') keyuser2public = keyuser2.public_key #symmetric key to encrypt the data key = keys.AesKey.Generate() #encrypt symmetric key for user 1 and 2 key1 = keyuser1public.Encrypt(key.key_string) key2 = keyuser2public.Encrypt(key.key_string) msg = 'Guillaume is a genius!' secretmsg = key.Encrypt(msg) #msg decoded by user 1 newkey1 = keys.AesKey(keyuser1.Decrypt(key1), key.hmac_key) print newkey1.Decrypt(secretmsg) #msg decoded by user 2 newkey2 = keys.AesKey(keyuser1.Decrypt(key1), key.hmac_key) print newkey2.Decrypt(secretmsg)