Come creare file crittografati di grandi dimensioni usando il comando openssl


8

Durante la creazione di un file crittografato in AIX, ho ricevuto questo errore:

$ 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 dimensione del file è di 35 GB

Lo stesso comando ha funzionato in Linux per file da 100 GB.


1
È questo il openssl fornito con AIX o l'hai installato separatamente? Sembra che non sia stato compilato per gestire file di grandi dimensioni. Conoscendo la versione può aiutare pure: openssl version.
Jeff Schaller

3
Aiuta se usi le pipe per impedire openssldi conoscere qualcosa sulla dimensione dei file di input e output? Qualcosa di similecat test.img | openssl enc -aes-256-cbc -salt | cat >test.img.enc
Celada

EHLO. Pls mostra l'output ditruss openssl enc -aes-256-cbc -salt -in test.img -out test.img.enc
KWubbufetowicz il

Grazie a tutti, SÌ è di default openssl fornito con AIX - OpenSSL 0.9.8r 8 feb 2011.
Daya

2
Potresti imbatterti in una limitazione di 2 GiB / 32 bit - stackoverflow.com/questions/1746751/… - prova un file che è appena sopra 2GiB e poi uno che è appena sotto.
Liczyrzepa,

Risposte:


2

In base all'errore, la tua copia di opensslnon viene compilata o collegata con un supporto di file di grandi dimensioni. fopenprobabilmente fallisce perché prova a scoprire la dimensione del file subito dopo averlo aperto e fallisce.

Il trucco, quindi, è opensslleggere una pipe e scrivere su una pipe. I tubi non hanno dimensioni e lo fopensanno, quindi dovrebbe andare bene. Le cose alle altre estremità dei tubi non devono fare nulla di speciale, devono solo essere filtri passthrough tra openssli file effettivi. Questo è esattamente catil lavoro. cat, che ora diventa l'oggetto esposto direttamente al file di grandi dimensioni, deve disporre di un supporto di file di grandi dimensioni, ma come utilità di base fornita dal sistema operativo, supponiamo che lo sia.

cat test.img | openssl enc -aes-256-cbc -salt | cat >test.img.enc
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.