Com base no erro, sua cópia de openssl
não é compilada ou vinculada ao suporte a arquivos grandes. fopen
provavelmente falha porque tenta descobrir o tamanho do arquivo logo após abri-lo e falhar.
O truque, então, é fazer openssl
ler um pipe e gravar em um pipe. Pipes não têm tamanho, e fopen
sabe disso, então deve ficar bem com isso. As coisas nas outras extremidades dos pipes não precisam fazer nada extravagante, elas só precisam ser filtros de passagem entre openssl
e os arquivos reais. Isso é exatamente o que o trabalho de cat
é. cat
, que agora se torna a coisa diretamente exposta ao arquivo grande, precisa ter suporte a arquivos grandes, mas como um utilitário básico fornecido pelo sistema operacional, vamos supor que sim.
cat test.img | openssl enc -aes-256-cbc -salt | cat >test.img.enc