<div dir="ltr">Hi everyone,<br><br>First, please allow me to define a bit of ad-hoc<br>nomenclature.  I will use the uppercase tems "ENCRYPT",<br>"ENCRYPTION", etc. as shorthands for "compress and<br>AES256-encrypt", "compression and AES256 encryption", etc.<br>Likewise, I will use "DECRYPT", etc. as shorthands for<br>"[AES256] decrypt and decompress", etc.<br><br>I need to ENCRYPT ~20 million files (~150TB) for long-term<br>(>15y) storage.  This ENCRYPTION will be done in several<br>batches, and will take place over many months (due to CPU and<br>bandwidth limitations).<br><br>The ideal solution would produce ENCRYPTED files that can be<br>decrypted using standard off-the-shelf gpg/gpg2. [1]<br><br>In my search for a library I could use to do this, I found<br>gpgme and libgcrypt.  I tried the former, and found it not<br>suitable, due to frequent gpg-agent-related failures.<br><br>libgcrypt, on the other hand, is a bit too low-level for<br>someone who is not acquainted with the fine details of gpg's<br>ENCRYPTION to replicate it.  (AFAICT, using straight-up<br>gcry_cipher_encrypt would not necessarily produce an<br>encrypted file (let alone an ENCRYPTED file) that could be<br>decrypted/DECRYPTED with standard gpg/gpg2.)<br><br>Is there something in-between gpgme and libgcrypt that would<br>allow me implement the required tool?<br><br>*Alternatively*, can someone tell me of a more efficient way<br>than reading the gpg2 source code for me to learn how to<br>implement gpg-compatible ENCRYPTION/DECRYPTION using<br>libgcrypt?<br><br>Thank you all in advance!<br><br>kj<br><br><br>[1] This gpg/gpg2 compatibility requirement is important, as<br>an insurance that the files will be DECRYPTABLE in the<br>"distant" future (10-15y), even the my tool is not properly<br>enough maintained to be operational then.  This, of course,<br>assumes that gpg will have greater longevity than a privately<br>implemented, single-user tool like mine.<br></div>