La función openssl_spki_verify() es una función integrada en PHP y se usa para validar la clave pública firmada proporcionada y el desafío. Esta debe ser la clave pública correspondiente a la clave privada utilizada para la firma. Verifica una clave pública firmada y un desafío.
Sintaxis:
string openssl_spki_verify( string &$spkac )
Parámetros: Esta función acepta un solo parámetro como se mencionó anteriormente y se describe a continuación.
- $spkac: el SPKI original identificaba a los principales solo como claves públicas, pero permitía la autoridad vinculante para esas claves y la delegación de autoridad de una clave a otra.
Valores devueltos: esta función devuelve un valor booleano en caso de éxito o fracaso.
Errores/Excepciones: si se pasa un argumento no válido a través del parámetro spkac , el nivel E_WARNING emite un error.
Ejemplo: El siguiente programa ilustra la función openssl_spki_verify() en PHP.
PHP
<?php error_reporting(E_ERROR | E_PARSE); /* Array of private key sizes to test */ $ksize = array('1024'=>1024, '2048'=>2048, '4096'=>4096); /* Array of available hashings to test */ $algo = array( 'sha512'=>OPENSSL_ALGO_SHA512, 'rmd160'=>OPENSSL_ALGO_RMD160 ); /* Loop over key sizes for test */ foreach($ksize as $k => $v) { /* generate new private key of specified size to use for tests */ $pkey = openssl_pkey_new(array ('digest_alg' => 'sha512', 'private_key_type' => OPENSSL_KEYTYPE_RSA, 'private_key_bits' => $v) ); openssl_pkey_export($pkey, $pass); /* Loop to create and verify results */ foreach($algo as $key => $value) { $spkac = openssl_spki_new( $pkey, _uuid(), $value); echo "Positive verification:: Algo: " . $key . ", value:"; var_dump(openssl_spki_verify( preg_replace('/SPKAC=/', '', $spkac))); echo "Negative verification:: Algo: " . $key . ", value:"; var_dump(openssl_spki_verify( $spkac . 'Make it fail')); echo "\n"; } openssl_free_key($pkey); } /* Generate a random challenge */ function _uuid() { return sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x0fff) | 0x4000, mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff) ); } ?>
Producción:
Positive verification:: Algo: sha512, value:bool(true) Negative verification:: Algo: sha512, value:bool(false) Positive verification:: Algo: rmd160, value:bool(true) Negative verification:: Algo: rmd160, value:bool(false) Positive verification:: Algo: sha512, value:bool(true) Negative verification:: Algo: sha512, value:bool(false) Positive verification:: Algo: rmd160, value:bool(true) Negative verification:: Algo: rmd160, value:bool(false) Positive verification:: Algo: sha512, value:bool(true) Negative verification:: Algo: sha512, value:bool(false) Positive verification:: Algo: rmd160, value:bool(true) Negative verification:: Algo: rmd160, value:bool(false)
Referencia: https://www.php.net/manual/en/function.openssl-spki-verify.php
Publicación traducida automáticamente
Artículo escrito por shubham_singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA