diff options
author | equinox <equinox@diac24.net> | 2011-04-01 05:42:06 +0200 |
---|---|---|
committer | equinox <equinox@taifun.local.sublab.org> | 2011-04-01 05:42:28 +0200 |
commit | 49856f36361a71aba71c43c77cebb22340010181 (patch) | |
tree | 9d7d86422eac39c779a3bd01432586a0d01b7693 /versign.py |
initial checkin
Diffstat (limited to 'versign.py')
-rw-r--r-- | versign.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/versign.py b/versign.py new file mode 100644 index 0000000..aa406df --- /dev/null +++ b/versign.py @@ -0,0 +1,30 @@ +import M2Crypto.RSA +import M2Crypto.EVP +import time, sys +import base64, cgi + +str = sys.argv[1] +data = cgi.parse_qs(str) + +ts = int(data['ts'][0]) +user = data['user'][0] +signature = base64.urlsafe_b64decode(data['signature'][0]) + +data = '%d:%s' % (ts, user) + +algo = 'sha256' + +digest = M2Crypto.EVP.MessageDigest(algo) +digest.update(data) +digval = digest.final() + +key = M2Crypto.RSA.load_pub_key('rsa.pub') + +try: + if key.verify(digval, signature, algo = algo): + print 'OKAY' + else: + print 'FAIL' +except: + print 'FAIL (hard)' + |