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.
openssl version
.openssl
dass 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
truss openssl enc -aes-256-cbc -salt -in test.img -out test.img.enc
Antworten:
Aufgrund des Fehlers wird Ihre Kopie von
openssl
nicht kompiliert oder mit der Unterstützung großer Dateien verknüpft.fopen
schlä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,
openssl
aus einer Pipe zu lesen und in eine Pipe zu schreiben. Die Rohre haben keine Größe undfopen
weiß 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 zwischenopenssl
und den eigentlichen Dateien sein. Genau das istcat
der 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.quelle