diff --git a/libp2p/pubsub/validators.py b/libp2p/pubsub/validators.py index d197207..0f6e55e 100644 --- a/libp2p/pubsub/validators.py +++ b/libp2p/pubsub/validators.py @@ -1,10 +1,17 @@ -# FIXME: Replace the type of `pubkey` with a custom type `Pubkey` -def signature_validator(pubkey: bytes, msg: bytes) -> bool: +from libp2p.crypto.keys import PublicKey + +from .pb import rpc_pb2 + + +def signature_validator(pubkey: PublicKey, msg: rpc_pb2.Message) -> bool: """ Verify the message against the given public key. :param pubkey: the public key which signs the message. :param msg: the message signed. """ - # TODO: Implement the signature validation + try: + pubkey.verify(msg.SerializeToString(), msg.signature) + except Exception: + return False return True