Para programa de línea de comandos de OpenSSL ( openssl enc
) , el algoritmo elegido también selecciona la clave tamaño (por lo que tienen opciones separadas para aes-128, aes-192 y aes-256). Simplemente no tienen esta opción para Blowfish.
El programa enc solo admite un número fijo de algoritmos con ciertos parámetros. Entonces, si, por ejemplo, desea utilizar RC2 con una clave de 76 bits o RC4 con una clave de 84 bits, no puede usar este programa.
openssl enc -bf
siempre usa una clave de 128 bits:
Los algoritmos Blowfish y RC5 utilizan una clave de 128 bits.
La documentación para las funciones de Blowfish dice que puede usar una clave de longitud variable, por lo que presumiblemente si usted escribió su propio programa compilado contra OpenSSL, podría usar el tamaño de clave que desee:
BF_set_key()
configura la clave BF_KEY utilizando la clave len bytes en datos .
Si puede elegir su algoritmo y desea una clave más larga por cualquier motivo, OpenSSL realizará AES con claves de hasta 256 bits: ( openssl enc -aes-256
).
Teniendo en cuenta lo anterior, esperarías que OpenSSL se quejara cuando superas los 32 caracteres (32 * 4 = 128), pero parece ignorar silenciosamente cualquier información después de los primeros 32 caracteres:
blong @ ubuntu: ~ $ openssl enc -bf -iv 0 -P -K 0000000000000000000000000000012345
sal = 0700000000000000
clave = 00000000000000000000000000000001
iv = 0000000000000000
He enviado un informe de error, porque parece que están intentando detectar este caso, pero el error es para > 128 caracteres en lugar de > 128 bits .