💾 Archived View for gemini.complete.org › encrypting-filespooler-jobs-with-gpg captured on 2024-07-09 at 01:00:11. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
Thanks to Filespooler[1]'s support for decoders, data for filespooler can be Encrypted[2] at rest and only decrypted when Filespooler needs to scan or process a queue.
The Compressing Filespooler Jobs[3] page gives an introduction to Filespooler's decoder support, and should be read before proceeding here, since it illustrates the concepts we will use.
3: /compressing-filespooler-jobs/
This page discusses using Filespooler with GnuPG (GPG)[4]. Although often also done with GnuPG, Verifying Filespooler Job Integrity[5] is a problem with some more unique nuances and is discussed on its own separate page.
5: /verifying-filespooler-job-integrity/
You will generally set up one or more keypairs for the communication. You could have each node have its own keypair, or could share them between nodes; it's up to you. For unattended, automated operation you will often set the secret keys to be passwordless, though something like GPG agent that can use a GUI pinentry and cache your passphrase can also be usable for more interactive work.
This is essentially the process of verifying data with GPG, just without the special verification step, so reading that page would be helpful.
See "Creating the signed and encrypted packets" section on Verifying Filespooler Job Integrity[6] for details. If you don't desire the signatures, leave off `--sign -u [keyid]`.
6: /verifying-filespooler-job-integrity/
You will be passing `-d 'gpg -q -d - 2>/dev/null'` to the `fspl queue-*` commands. That's all there is to it!
7: /encrypting-filespooler-jobs-with-age/
--------------------------------------------------------------------------------
GnuPG (also known by its command name, gpg) is a tool primarily for public key Encryption[9] and cryptographic authentication.
10: /introduction-to-filespooler/
It seems that lately I've written several shell implementations of a simple queue that enforces ordered execution of jobs that may arrive out of order. After writing this for the nth time in bash, I decided it was time to do it properly. But first, a word on the *why* of it all.
11: /verifying-filespooler-job-integrity/
Sometimes, one wants to verify the integrity and authenticity of a Filespooler[12] job file before processing it.
13: /verifying-filespooler-job-integrity/
Sometimes, one wants to verify the integrity and authenticity of a Filespooler[14] job file before processing it.
15: /encrypting-filespooler-jobs-with-age/
Like the process described in Encrypting Filespooler Jobs with GPG[16], Filespooler[17] can handle packets Encrypted[18] with Age (Encryption)[19]. Age may be easier than GnuPG in a number of cases, particularly because it can use a person's existing SSH keypairs for encryption.
16: /encrypting-filespooler-jobs-with-gpg/
20: /using-filespooler-over-syncthing/
Filespooler[21] is a way to execute commands in strict order on a remote machine, and its communication method is by files. This is a perfect mix for Syncthing[22] (and others, but this page is about Filespooler and Syncthing).
Filespooler lets you request the remote execution of programs, including stdin and environment. It can use tools such as S3, Dropbox, Syncthing[24], NNCP[25], ssh, UUCP[26], USB drives, CDs, etc. as transport; basically, a filesystem is the network for Filespooler.
Filespooler is particularly suited to distributed and Asynchronous Communication[27].
27: /asynchronous-communication/
(c) 2022-2024 John Goerzen