def __init__(self, data): e = int2mpint(int(data["e"])) n = int2mpint(int(data["n"])) try: d = int2mpint(int(data["d"])) except KeyError: self.rsa = _RSA.new_pub_key((e, n)) else: self.rsa = _RSA.new_key((e, n, d))