rt.py: start making even more generic, fixed naming of p and q

This commit is contained in:
Steffen Jaeckel 2014-08-05 19:26:20 +02:00
parent c99a147d4a
commit 95f9d527f6

View File

@ -55,29 +55,29 @@ def read_part(f, s):
return e return e
class RsaKey(object): class RsaKey(object):
def __init__(self, n, e, d, q, p, dP, dQ, qInv): def __init__(self, n, e, d, p, q, dP, dQ, qInv):
self.n = n self.n = n
self.e = e self.e = e
self.d = d self.d = d
self.q = q
self.p = p self.p = p
self.q = q
self.dP = dP self.dP = dP
self.dQ = dQ self.dQ = dQ
self.qInv = qInv self.qInv = qInv
def __str__(self): def __str__(self):
return "{{\n{0},\n{1},\n{2},\n{3},\n{4},\n{5},\n{6},\n{7}\n}}\n".format(self.n, self.e, self.d, self.q, self.p, self.dP, self.dQ, self.qInv) return "{{\n{0},\n{1},\n{2},\n{3},\n{4},\n{5},\n{6},\n{7}\n}}\n".format(self.n, self.e, self.d, self.p, self.q, self.dP, self.dQ, self.qInv)
def read_key(f): def read_key(f):
n = read_part(f, '# RSA modulus n') n = read_part(f, ftype.n)
e = read_part(f, '# RSA public exponent e') e = read_part(f, ftype.e)
d = read_part(f, '# RSA private exponent d') d = read_part(f, ftype.d)
q = read_part(f, '# Prime p') p = read_part(f, ftype.p)
p = read_part(f, '# Prime q') q = read_part(f, ftype.q)
dP = read_part(f, '# p\'s CRT exponent dP') dP = read_part(f, ftype.dP)
dQ = read_part(f, '# q\'s CRT exponent dQ') dQ = read_part(f, ftype.dQ)
qInv = read_part(f, '# CRT coefficient qInv') qInv = read_part(f, ftype.qInv)
k = RsaKey(n, e, d, q, p, dP, dQ, qInv) k = RsaKey(n, e, d, p, q, dP, dQ, qInv)
return k return k
class Data(object): class Data(object):
@ -140,6 +140,15 @@ class PkcsType(object):
self.o3 = '# Encryption' self.o3 = '# Encryption'
else: else:
raise ValueError('Type unknown: ' + name) raise ValueError('Type unknown: ' + name)
if name == 'pss' or name == 'oaep':
self.n = '# RSA modulus n'
self.e = '# RSA public exponent e'
self.d = '# RSA private exponent d'
self.p = '# Prime p'
self.q = '# Prime q'
self.dP = '# p\'s CRT exponent dP'
self.dQ = '# q\'s CRT exponent dQ'
self.qInv = '# CRT coefficient qInv'
self.name = name self.name = name
ftype = PkcsType(sys.argv[2]) ftype = PkcsType(sys.argv[2])