code: def verify(self, digest, signature, **kwargs):
          
          ctx = libcrypto.EVP_PKEY_CTX_new(self.key, None)
          if ctx is None:
              raise PKeyError("Initailizing verify context")
          if libcrypto.EVP_PKEY_verify_init(ctx) < 1:
              raise PKeyError("verify_init")
          self._configure_context(ctx, kwargs)
          ret = libcrypto.EVP_PKEY_verify(ctx, signature, len(signature), digest,
                                          len(digest))
          if ret < 0:
              raise PKeyError("Signature verification")
          libcrypto.EVP_PKEY_CTX_free(ctx)
          return ret > 0
docs: Verifies given signature on given digest
          Returns True if Ok, False if don't match
          Keyword arguments allows to set algorithm-specific
          parameters