test script changes
[gnuk/gnuk.git] / test / generate_keys.py
1 from Crypto import Random
2 from Crypto.PublicKey import RSA
3 from binascii import hexlify
4
5 def print_key_in_hex(k):
6     prv = k.exportKey(format='DER', pkcs=8)
7     n = prv[38:38+256]
8     e = prv[38+256+2:38+256+2+3]
9     p = prv[38+256+2+3+4+257+4:38+256+2+3+4+257+4+128]
10     q = prv[38+256+2+3+4+257+4+128+4:38+256+2+3+4+257+4+128+4+128]
11     n_str = hexlify(n)
12     e_str = hexlify(e)
13     p_str = hexlify(p)
14     q_str = hexlify(q)
15     if int(p_str, 16)*int(q_str, 16) != int(n_str, 16):
16         raise ValueError("wrong key", k)
17     print n_str
18     print e_str
19     print p_str
20     print q_str
21
22 rng = Random.new().read
23 key = RSA.generate(2048, rng)
24
25 print_key_in_hex(key)