def key_setup(vault, **kwargs): """ :param vault: Where the keys are kept :return: 2-tuple: result of urlsplit and a dictionary with parameter name as key and url and value """ vault_path = proper_path(vault) if not os.path.exists(vault_path): os.makedirs(vault_path) kb = KeyBundle() for usage in ["sig", "enc"]: if usage in kwargs: if kwargs[usage] is None: continue _args = kwargs[usage] if _args["alg"].upper() == "RSA": try: _key = rsa_load('%s%s' % (vault_path, "pyoidc")) except Exception: devnull = open(os.devnull, 'w') with RedirectStdStreams(stdout=devnull, stderr=devnull): _key = create_and_store_rsa_key_pair( path=vault_path) k = RSAKey(key=_key, use=usage) k.add_kid() kb.append(k) return kb
def key_setup(vault, **kwargs): """ :param vault: Where the keys are kept :return: 2-tuple: result of urlsplit and a dictionary with parameter name as key and url and value """ vault_path = proper_path(vault) if not os.path.exists(vault_path): os.makedirs(vault_path) kb = KeyBundle() for usage in ["sig", "enc"]: if usage in kwargs: if kwargs[usage] is None: continue _args = kwargs[usage] if _args["alg"].upper() == "RSA": try: _key = rsa_load('%s%s' % (vault_path, "pyoidc")) except Exception: devnull = open(os.devnull, 'w') with RedirectStdStreams(stdout=devnull, stderr=devnull): _key = create_and_store_rsa_key_pair(path=vault_path) k = RSAKey(key=_key, use=usage) k.add_kid() kb.append(k) return kb
def get_public_jwk(self): try: _rsakey = get_key_storage().public except FileNotFoundError: self.generate_keys() _rsakey = get_key_storage().public _rsakey = RSA.import_key(_rsakey) _rsajwk = RSAKey(use="sig", alg="RS256", key=_rsakey) _rsajwk.add_kid() return _rsajwk.serialize()