So erstellen Sie eine große verschlüsselte Datei mit dem Befehl openssl

8

Beim Erstellen einer verschlüsselten Datei in AIX wurde folgende Fehlermeldung angezeigt:

$ 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 Die Dateigröße beträgt 35 GB

Der gleiche Befehl funktionierte unter Linux für 100-GB-Dateien.

Daya
quelle
1
Ist dies das OpenSL, das mit AIX geliefert wurde, oder haben Sie es separat installiert? Es hört sich so an, als wäre es nicht für große Dateien kompiliert worden. Die Kenntnis der Version kann ebenfalls hilfreich sein : openssl version.
Jeff Schaller
3
Hilft es, wenn Sie Pipes verwenden, um zu verhindern, openssldass Sie etwas über die Größe der Eingabe- und Ausgabedateien wissen? So etwas wiecat test.img | openssl enc -aes-256-cbc -salt | cat >test.img.enc
Celada
EHLO. Pls zeigen die Ausgabe vontruss openssl enc -aes-256-cbc -salt -in test.img -out test.img.enc
KWubbufetowicz
Vielen Dank, JA, es ist Standard OpenSL kam mit AIX - OpenSSL 0.9.8r 8. Februar 2011.
Daya
2
Möglicherweise stoßen Sie auf eine 2-GiB / 32-Bit-Beschränkung - stackoverflow.com/questions/1746751/… - und probieren Sie eine Datei aus, die etwas über 2 GB und dann knapp darunter liegt.
Liczyrzepa

Antworten:

2

Aufgrund des Fehlers wird Ihre Kopie von opensslnicht kompiliert oder mit der Unterstützung großer Dateien verknüpft. fopenschlägt wahrscheinlich fehl, weil es versucht, die Größe der Datei direkt nach dem Öffnen zu ermitteln, und schlägt fehl.

Der Trick besteht also darin, opensslaus einer Pipe zu lesen und in eine Pipe zu schreiben. Die Rohre haben keine Größe und fopenweiß das, so es mit ihm in Ordnung sein sollte. Die Dinge an den anderen Enden der Pipes müssen nichts Besonderes tun, sie müssen nur Passthrough-Filter zwischen opensslund den eigentlichen Dateien sein. Genau das ist catder Job. cat, das nun direkt der großen Datei ausgesetzt wird, muss Unterstützung für große Dateien haben, aber als vom Betriebssystem bereitgestelltes Basisdienstprogramm nehmen wir an, dass dies der Fall ist.

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