4 return reduce( lambda x,y:(x<<8L)+y, map(ord, s))
\r
8 for byte in range(128):
\r
9 res += chr((l >> (1024 - (byte + 1) * 8)) & 0xff)
\r
12 def rsa_pub1024(src, mod):
\r
13 return long2bin(pow(bin2long(src), 65537, bin2long(mod)))
\r
15 def decrypt_block(src, mod):
\r
16 if len(src) != 128 and len(src) != 202:
\r
18 dest = rsa_pub1024(src[:128], mod)
\r
19 hash = sha.new(dest[1:107])
\r
21 hash.update(src[131:192])
\r
22 result = hash.digest()
\r
23 if result == dest[107:127]:
\r
27 def validate_cert(cert, key):
\r
28 buf = decrypt_block(cert[8:], key)
\r
31 return buf[36:107] + cert[139:196]
\r
35 fd = open("/dev/urandom", "r")
\r