Comment créer un fichier chiffré de grande taille à l'aide de la commande openssl

8

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.

Daya
la source
1
S'agit-il de l'opensl fourni avec AIX, ou l'avez-vous installé séparément? Il semble qu'il n'ait pas été compilé pour gérer de gros fichiers. La connaissance de la version peut aider aussi: openssl version.
Jeff Schaller
3
Cela aide-t-il si vous utilisez des canaux pour éviter opensslde 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
Celada
EHLO. Pls montrent la sortie detruss openssl enc -aes-256-cbc -salt -in test.img -out test.img.enc
KWubbufetowicz
Merci à tous, OUI c'est opensl par défaut livré avec AIX - OpenSSL 0.9.8r 8 février 2011.
Daya
2
Vous rencontrez peut-être une limitation de 2 Gio / 32 bits - stackoverflow.com/questions/1746751/… - essayez un fichier légèrement supérieur à 2 Gio, puis un peu inférieur.
Liczyrzepa

Réponses:

2

Sur la base de l'erreur, votre copie de openssln'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 openssllire à partir d'un tuyau et à écrire dans un tuyau. Les tuyaux n'ont pas de taille, et le fopensavent, 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 entre opensslles fichiers réels. C'est exactement ça le cattravail. 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.

cat test.img | openssl enc -aes-256-cbc -salt | cat >test.img.enc
Celada
la source