aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/crypto.py
diff options
context:
space:
mode:
authorGuillaume Horel <guillaume.horel@gmail.com>2011-05-19 02:31:04 -0400
committerGuillaume Horel <guillaume.horel@gmail.com>2011-05-19 02:31:04 -0400
commitaf055136c23652f1cf1ef0beac1b94d79cc1ddb6 (patch)
treec4de7f3bfe91303423e19552f850d432b03133c6 /crypto/crypto.py
parent53fb8167efe4100bf20df3bec5d6b844f4bf1617 (diff)
downloadalias-af055136c23652f1cf1ef0beac1b94d79cc1ddb6.tar.gz
Started to play around with js crypto code
test.js implements the basic functionality (recommand to load it in v8 (d8 test.js --shell)
Diffstat (limited to 'crypto/crypto.py')
-rw-r--r--crypto/crypto.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/crypto/crypto.py b/crypto/crypto.py
new file mode 100644
index 0000000..f99001f
--- /dev/null
+++ b/crypto/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)