If you write error-checking into your code, be warned that this function returns FALSE on some errors, and 0 on success, hence
mcrypt_generic_init( $a, $b, $c ) or die( "Oops");
ALWAYS exits with the error message "Oops", and
(mcrypt_generic_init( $a, $b, $c ) >= 0 ) or die( "Oops");
Sometimes continues when mcrypt_generic_init() actually failed.
To check for successful init use something like:
$s = mcrypt_generic_init( $a, $b, $c );
if( ($s < 0) || ($s === false))
die( "Really an error" );
mcrypt_generic_init
(PHP 4 >= 4.0.2, PHP 5)
mcrypt_generic_init — Esta función inicializa todos los buffers requeridos para el cifrado
Descripción
Se necesita invocar esta función antes de cada llamada a mcrypt_generic() o mdecrypt_generic().
Parámetros
- td
-
El descriptor de cifrado.
- key
-
La longitud máxima de la clave debería ser la misma obtenida al invocar a mcrypt_enc_get_key_size() y todos los valores menores son legales.
- iv
-
El IV debería tener normalmente el tamaño del bloque del algoritmo, pero debe obtener el tamaño tras invocar a mcrypt_enc_get_iv_size(). El IV es ignorado en modo ECB. El IV DEBE existir en modo CFB, CBC, STREAM, nOFB Y OFB. Requiere ser aleatorio y único (pero no secreto). El mismo IV debe ser utilizado para el cifrado/desencriptado. Si no se desea usarlo se debería setearlo con ceros, pero no es recomendado.
Valores devueltos
Esta función devuelve un valor negativo en caso de error: -3 cuando la longitud es incorrecta, -4 cuando hubo un problema de asignación de memoria y todos los demás valores retornados son errores desconocidos. Si ocurre un error, se imprimirá el correspondiente warning. FALSE es devueto si fueron pasados argumentos incorrectos.
