test annex.shared-sop-command

Test a specified Stateless OpenPGP command with eg:
git-annex test --test-git-config annex.shared-sop-command=sqop

Also documented that config and another one, but so far only the test suite
uses the configs, have not yet implemented using it for actual symmetric
encryption.

Sponsored-by: Joshua Antonishen on Patreon
This commit is contained in:
Joey Hess 2024-01-10 16:30:38 -04:00
parent 812cbf0e17
commit d98f02a5b0
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
7 changed files with 68 additions and 5 deletions

View file

@ -76,6 +76,14 @@ The advantage is you don't need to set up gpg keys. The disadvantage is
that this is **insecure** unless you trust every clone of the git
repository with access to the encrypted data stored in the special remote.
By default `gpg` is used for shared encryption, but it is also possible to
use other programs that implement the Stateless OpenPGP command line
interface. For example, to use Sequoia PGP's `sqop` command, configured to
be backwards compatable with `gpg`:
git config annex.shared-sop-command sqop
git config annex.shared-sop-profile rfc4880
## regular public key encryption (encryption=pubkey)
This alternative simply encrypts the files in the special remotes to one or

View file

@ -44,6 +44,10 @@ framework. Pass --help for details about those.
One valid use of this is to change a git configuration to a value that
is planned to be the new default in a future version of git.
Also, some things can only be tested with a git configuration. For
example, annex.shared-sop-command has to be set for the test suite to
test using that command.
* `--test-debug`
Normally output of commands run by the test suite is hidden, so even

View file

@ -1655,10 +1655,29 @@ Remotes are configured using these settings in `.git/config`.
precedence over the default GnuPG configuration, which is otherwise
used.)
* `remote.<name>.annex-shared-sop-command`
Use this command, which is an implementation of the Stateless OpenPGP
command line interface, rather than GnuPG for encrypting and decrypting
data. This is only used when a special remote is configured with
encryption=shared.
For example, to use Sequoia PGP's sqop command, set this to "sqop".
* `remote.<name>.annex-shared-sop-profile`
When encrypting with a Stateless OpenPGP command, this can be used
to specify the profile to use, such as "rfc4880".
For a list of available profiles, run eg "sqop list-profiles encrypt"
sqop list-profiles encrypt
* `annex.ssh-options`, `annex.rsync-options`,
`annex.rsync-upload-options`, `annex.rsync-download-options`,
`annex.bup-split-options`, `annex.gnupg-options`,
`annex.gnupg-decrypt-options`
`annex.gnupg-decrypt-options`,
`annex.shared-sop-command`, `annex.shared-sop-profile`
Default options to use if a remote does not have more specific options
as described above.