rendered paste bodyfrom Crypto.Util.number import inverse as i
from Crypto.PublicKey import RSA
from ncrypt import rsa as nc_RSA
import cPickle
import zlib
fpath = './xc4-keys/'
files = [fpath + 'this.key', fpath + 'that.key']
pickle_load = lambda pickle_file : cPickle.loads(zlib.decompress(open(pickle_file, 'rb').read()))
pickle_dump = lambda pickle_data, pickle_file : open(pickle_file, 'wb').write(zlib.compress(cPickle.dumps(pickle_data), zlib.DEFLATED))
def kpc2knc(kpc):
print kpc.size()
knc = nc_RSA.RSAKey()
n = kpc.n
e = kpc.e
if (kpc.has_private()):
d = kpc.d
p = kpc.p
q = kpc.q
dmp1 = (d % (p - 1))
dmq1 = (d % (q - 1))
iqmp = i(q, p)
knc.loadPrivateKey((n, e, d, p, q, dmp1, dmq1, iqmp))
else:
knc.loadPublicKey((n, e))
return(knc)
for filename in files:
pkey = kpc2knc(pickle_load(filename))
if pkey.hasPrivateKey():
pickle_dump(pkey.getPrivateKey(), filename)
else:
pickle_dump(pkey.getPublicKey(), filename)