'Verify the data in this blob.
Args:
public_key: The public key to use for verification.
Returns:
True when verification succeeds.
Raises:
rdfvalue.DecodeError if the data is not suitable verified.'

def Verify(self, public_key):

    if (self.digest_type != self.HashType.SHA256):
        raise rdfvalue.DecodeError('Unsupported    digest.')
    if (self.signature_type not in [self.SignatureType.RSA_PKCS1v15, self.SignatureType.RSA_PSS]):
        raise rdfvalue.DecodeError('Unsupported    signature    type.')
    try:
        public_key.Verify(self.data, self.signature)
    except InvalidSignature as e:
        raise rdfvalue.DecodeError(('Could    not    verify    blob.    Error:    %s' % e))
    return True
