From 414b60d6f02107bd8fc03ba68ace9cc316e10c49 Mon Sep 17 00:00:00 2001 From: lacatoire Date: Wed, 2 Sep 2026 10:06:46 +0200 Subject: [PATCH] sync: warn that verify functions return truthy on error, use strict comparisons --- reference/ldap/functions/ldap-compare.xml | 12 +++++++++-- .../functions/openssl-pkcs7-verify.xml | 13 +++++++++--- .../openssl/functions/openssl-verify.xml | 21 ++++++++++++------- .../functions/openssl-x509-checkpurpose.xml | 13 +++++++++--- .../openssl/functions/openssl-x509-verify.xml | 13 ++++++++++-- reference/zip/ziparchive/getarchiveflag.xml | 11 ++++++++-- 6 files changed, 64 insertions(+), 19 deletions(-) diff --git a/reference/ldap/functions/ldap-compare.xml b/reference/ldap/functions/ldap-compare.xml index a8f95eaf00..e28945373e 100644 --- a/reference/ldap/functions/ldap-compare.xml +++ b/reference/ldap/functions/ldap-compare.xml @@ -1,6 +1,5 @@ - - + ldap_compare @@ -78,6 +77,15 @@ Devuelve &true; si el valor value coincide, de lo contrario, devuelve &false;. Devuelve -1 si ocurre un error. + + + Tanto &true; como -1 son + truthy, por lo que una + simple prueba de verdad como if (ldap_compare(...)) trata un + error como una coincidencia. El resultado debe compararse estrictamente + contra &true;. + + diff --git a/reference/openssl/functions/openssl-pkcs7-verify.xml b/reference/openssl/functions/openssl-pkcs7-verify.xml index 98e1849b1c..fdff3ddf21 100644 --- a/reference/openssl/functions/openssl-pkcs7-verify.xml +++ b/reference/openssl/functions/openssl-pkcs7-verify.xml @@ -1,7 +1,5 @@ - - - + openssl_pkcs7_verify @@ -110,6 +108,15 @@ en caso contrario (el mensaje ha sido modificado, o bien el certificado de firma es inválido) o -1 si ocurre un error. + + + Tanto &true; como -1 son + truthy, por lo que una + simple prueba de verdad como if (openssl_pkcs7_verify(...)) + trata un error como una verificación exitosa. El resultado debe compararse + estrictamente contra &true;. + + diff --git a/reference/openssl/functions/openssl-verify.xml b/reference/openssl/functions/openssl-verify.xml index 5d3fef9f5d..c102f8d403 100644 --- a/reference/openssl/functions/openssl-verify.xml +++ b/reference/openssl/functions/openssl-verify.xml @@ -1,7 +1,5 @@ - - - + openssl_verify @@ -93,6 +91,15 @@ MIIBCgK.... Retorna 1 si la firma es correcta, 0 si es incorrecta y -1 o &false; si ocurre un error. + + + Tanto el valor de éxito como el valor de error son + truthy, por lo que una + simple prueba de verdad como if (openssl_verify(...)) trata un + error como una verificación exitosa. El resultado debe compararse + estrictamente contra 1. + + @@ -141,9 +148,9 @@ $pubkeyid = openssl_pkey_get_public("file://src/openssl-0.9.6/demos/sign/cert.pe // indica si la firma es correcta $ok = openssl_verify($data, $signature, $pubkeyid); -if ($ok == 1) { +if ($ok === 1) { echo "Firma válida"; -} elseif ($ok == 0) { +} elseif ($ok === 0) { echo "Firma errónea"; } else { echo "Error de verificación de la firma"; @@ -175,9 +182,9 @@ openssl_sign($data, $signature, $private_key_res, "sha256WithRSAEncryption"); //Verifica la firma $ok = openssl_verify($data, $signature, $public_key_res, OPENSSL_ALGO_SHA256); -if ($ok == 1) { +if ($ok === 1) { echo "válida"; -} elseif ($ok == 0) { +} elseif ($ok === 0) { echo "inválida"; } else { echo "error: ".openssl_error_string(); diff --git a/reference/openssl/functions/openssl-x509-checkpurpose.xml b/reference/openssl/functions/openssl-x509-checkpurpose.xml index e534b2d8ec..dd08d339e7 100644 --- a/reference/openssl/functions/openssl-x509-checkpurpose.xml +++ b/reference/openssl/functions/openssl-x509-checkpurpose.xml @@ -1,7 +1,5 @@ - - - + openssl_x509_checkpurpose @@ -137,6 +135,15 @@ Retorna &true; si el certificado puede ser utilizado para un propósito particular, &false; si no puede serlo, o -1 si ocurre un error. + + + Tanto &true; como -1 son + truthy, por lo que una + simple prueba de verdad como if (openssl_x509_checkpurpose(...)) + trata un error como una verificación exitosa. El resultado debe compararse + estrictamente contra &true;. + + diff --git a/reference/openssl/functions/openssl-x509-verify.xml b/reference/openssl/functions/openssl-x509-verify.xml index 4dd579d439..b36bd08917 100644 --- a/reference/openssl/functions/openssl-x509-verify.xml +++ b/reference/openssl/functions/openssl-x509-verify.xml @@ -1,5 +1,5 @@ - + openssl_x509_verify @@ -48,6 +48,15 @@ MIIBCgK.... Devuelve 1 si la firma es correcta, 0 si es incorrecta y -1 si ocurre un error. + + + Tanto el valor de éxito como el valor de error son + truthy, por lo que una + simple prueba de verdad como if (openssl_x509_verify(...)) + trata un error como una verificación exitosa. El resultado debe compararse + estrictamente contra 1. + + @@ -113,7 +122,7 @@ foreach($cont["options"]["ssl"]["peer_certificate_chain"] as $chaincert) $chainparsed = openssl_x509_parse($chaincert); $chain_public_key = openssl_get_publickey($chaincert); $r = openssl_x509_verify($x509, $chain_public_key); - if ($r==1) + if ($r === 1) { echo $certparsed['subject']['CN']; echo " fue firmado digitalmente por "; diff --git a/reference/zip/ziparchive/getarchiveflag.xml b/reference/zip/ziparchive/getarchiveflag.xml index e6afc08434..647da4f61c 100644 --- a/reference/zip/ziparchive/getarchiveflag.xml +++ b/reference/zip/ziparchive/getarchiveflag.xml @@ -1,6 +1,5 @@ - - + ZipArchive::getArchiveFlag @@ -70,6 +69,14 @@ Devuelve 1 si la bandera está definida para el archivo, 0 si no lo está, y -1 si ocurre un error. + + + Tanto 1 como -1 son + truthy, por lo que una + simple prueba de verdad trata un error como que la bandera está definida. + El resultado debe compararse estrictamente contra 1. + +