Lors de la création d'un fichier chiffré sous AIX, j'ai reçu cette erreur:
$ openssl enc -aes-256-cbc -salt -in test.img -out test.img.enc
test.img: Value too large to be stored in data type
14221428:error:0200107F:system library:fopen:Value too large to be stored in:bss_file.c:356:fopen('test.img','r')
14221428:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:358:
test.img La taille du fichier est de 35 Go
La même commande fonctionnait sous Linux pour un fichier de 100 Go.
openssl version
.openssl
de savoir quoi que ce soit sur la taille des fichiers d'entrée et de sortie? Quelque chose commecat test.img | openssl enc -aes-256-cbc -salt | cat >test.img.enc
truss openssl enc -aes-256-cbc -salt -in test.img -out test.img.enc
Réponses:
Sur la base de l'erreur, votre copie de
openssl
n'est pas compilée ni liée à la prise en charge de fichiers volumineux.fopen
échoue probablement car il essaie de découvrir la taille du fichier juste après son ouverture et échoue.L'astuce consiste alors à faire
openssl
lire à partir d'un tuyau et à écrire dans un tuyau. Les tuyaux n'ont pas de taille, et lefopen
savent, donc ça devrait aller avec. Les choses aux autres extrémités des tuyaux n'ont rien à faire de fantaisie, elles ont juste besoin d'être des filtres intermédiaires entreopenssl
les fichiers réels. C'est exactement ça lecat
travail.cat
, qui devient maintenant la chose directement exposée au gros fichier, doit avoir une prise en charge de gros fichiers, mais en tant qu'utilitaire de base fourni par le système d'exploitation, supposons que c'est le cas.la source