Las entradas son la clave pública, el mensaje (o su resumen), la firma y el algoritmo con sus parámetros; la salida es «válida» o «no válida». Un verificador estricto también rechaza las entradas mal formadas: DER no mínimo, r o s fuera de 1…n−1, un S de EdDSA que no sea menor que el orden del grupo, firmas en bruto de longitud incorrecta, puntos que no están en la curva y claves del tipo incorrecto.
La mayoría de los errores «invalid signature» en producción no son criptográficos: se firmaron bytes distintos (JSON reserializado, espacios en blanco o finales de línea cambiados, falta el salto de línea final), se usó otro hash, una firma DER llegó a un verificador de firmas en bruto o al revés, la curva o la longitud de la sal de PSS difieren, o se seleccionó la clave equivocada. Comprueba cada entrada por separado; el verificador de firmas muestra qué curva, qué hash y qué codificación usó.
Reglas de seguridad que evitan fallos reales: fija el algoritmo en el lado del verificador en lugar de leerlo del mensaje (alg de JWT, RFC 8725 §3.1); verifica antes de analizar la carga útil o de actuar en función de ella; verifica el vínculo entre la clave y la identidad (validación de la ruta de certificados, kid de JWKS, known_hosts), y, en los sistemas de consenso, fija un único conjunto de reglas de verificación, ya que las bibliotecas discrepan en casos límite como las comprobaciones de EdDSA con cofactor.