def test_can_get_issuer_by_public_key(valid_key_pair): doc_did = make_identifier(valid_key_pair.public_bytes) key_issuer = Issuer.build(doc_did, '#AnIssuer') doc = RegisterDocumentBuilder() \ .add_public_key_obj(RegisterPublicKey(key_issuer.name, valid_key_pair.public_base58, revoked=False)) \ .build(key_issuer.did, DIDType.TWIN, proof='a proof, does not matter here', revoked=False) issuer = RegisterDocumentHelper.get_issuer_from_public_key( doc, valid_key_pair.public_base58) assert issuer == key_issuer
def get_issuer_by_public_key(doc: RegisterDocument, public_base58: str) -> Issuer: """ Get issuer matching the public key from a register document public keys. :param doc: register document :param public_base58: issuer public key base 58 :return: corresponding issuer :raises: IdentityRegisterIssuerNotFoundError: if the issuer matching the public key is not found """ issuer = RegisterDocumentHelper.get_issuer_from_public_key(doc, public_base58) if not issuer: raise IdentityRegisterIssuerNotFoundError(f'User secrets not allowed to update \'{doc.did}\'') return issuer