aboutsummaryrefslogtreecommitdiffstats
path: root/server/crypto.py
diff options
context:
space:
mode:
Diffstat (limited to 'server/crypto.py')
-rw-r--r--server/crypto.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/server/crypto.py b/server/crypto.py
new file mode 100644
index 0000000..f99001f
--- /dev/null
+++ b/server/crypto.py
@@ -0,0 +1,28 @@
+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)