Per il programma della riga di comando di OpenSSL ( openssl enc
) , l'algoritmo scelto sceglie anche la chiave dimensione (motivo per cui hanno opzioni separate per aes-128, aes-192 e aes-256). Semplicemente non hanno questa opzione per Blowfish.
The enc program only supports a fixed number of algorithms with certain parameters. So if, for example, you want to use RC2 with a 76 bit key or RC4 with an 84 bit key you can't use this program.
openssl enc -bf
usa sempre una chiave a 128 bit:
Blowfish and RC5 algorithms use a 128 bit key.
La documentazione per le funzioni Blowfish dice che puoi usare una chiave a lunghezza variabile, quindi presumibilmente se hai scritto il tuo programma compilato contro OpenSSL, puoi usare qualsiasi dimensione della chiave che desideri:
BF_set_key()
sets up the BF_KEY key using the len bytes long key at data.
Se puoi scegliere il tuo algoritmo e vuoi una chiave più lunga per qualsiasi motivo, OpenSSL eseguirà AES con chiavi fino a 256 bit: ( openssl enc -aes-256
).
Considerato quanto sopra, ti aspetteresti che OpenSSL si lamenti quando superi 32 caratteri (32 * 4 = 128), ma sembra ignorare silenziosamente qualsiasi dato dopo i primi 32 caratteri:
blong@ubuntu:~$ openssl enc -bf -iv 0 -P -K 000000000000000000000000000000012345
salt=0700000000000000
key=00000000000000000000000000000001
iv =0000000000000000
Ho inviato una segnalazione di bug, perché sembra che stiano cercando di catturare questo caso, ma l'errore è per > 128 caratteri invece di > 128 bit .