{{header}} {{intro| todo }} {{stub}} = Information = * machine readable sq already exists: sqop = Qubes = == Qubes split-gpg-1 removal == If you never used split-gpg-1, just make sure to package qubes-gpg-split (split-gpg-1) is not installing by attempting to purge it using APT. {{CodeSelect|code= sudo apt purge qubes-gpg-split }} If you used split-gpg-1 before, make sure the following envronment variables are no longer set. * {{CodeSelect|inline=true|code= QUBES_GPG_DOMAIN }} * {{CodeSelect|inline=true|code= QUBES_GPG_AUTOACCEPT }} Note, that split-gpg-1 is no longer using qubes-gpg-client-wrapper since split-gpg-2 is nowadays based on gpg-agent. Therefore if any applications such as Thunderbird or any configuration files such as ~/.gitconfig are still using qubes-gpg-client-wrapper, this setting needs to be reverted. == non-existing gpg-g10-code gnupg home folder == A completely non-existing ~/.gnupg folder is probably causing breakage. Command. {{CodeSelect|code= sq sign --signature-notation testvar testcontent --signer 916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA --signature-file=/home/sysmaint/derivative-binary/test_sign_file.asc -- /home/sysmaint/derivative-binary/test_sign_file }} Symptom.
  Error: 916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA was not considered because
         it is: missing the secret key
         6E979B28A6F37C43BE30AFA1CB8D50BB77BB3C48 was not considered because
         it is: missing the secret key
because: Found no suitable key on 916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA
Workaround: {{CodeSelect|code= gpg-g10code --import /usr/share/keyrings/derivative.asc }} == subkey has no binding to main key == {{CodeSelect|code= sq cert list 6E979B28A6F37C43BE30AFA1CB8D50BB77BB3C48 }}
No bindings matching "6E979B28A6F37C43BE30AFA1CB8D50BB77BB3C48" could be
authenticated.
  - Warning: 6E979B28A6F37C43BE30AFA1CB8D50BB77BB3C48 appears to be a subkey of
    916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA
1 binding found.
Skipped 1 binding, which is unusable.

  Error: No bindings matching the query could be authenticated.
zsh: exit 1     sq cert list 6E979B28A6F37C43BE30AFA1CB8D50BB77BB3C48
Is this even an issue? == git merge == {{CodeSelect|code= git merge branch [redacted] }} Symptom:
fatal: Commit [redacted] has an untrusted GPG signature, allegedly by [redacted]
Cause: sq pki link add is insufficient. Import into gpg(sq) trust store is required. Note: Replace keyfingerprint with the actual key fingerprint. {{CodeSelect|code= echo "keyfingerprint:6:" | gpg --import-ownertrust }} == key was not considered because it is: missing the secret key == {{CodeSelect|code= sq sign --signature-notation testvar testcontent --signer 916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA --signature-file=/home/user/derivative-binary/test_sign_file.asc -- /home/user/derivative-binary/test_sign_file }}
  Error: 916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA was not considered because
         it is: missing the secret key
         6E979B28A6F37C43BE30AFA1CB8D50BB77BB3C48 was not considered because
         it is: missing the secret key
because: Found no suitable key on 916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA
killall gpg-agent in split-gpg-2 server VM and deletion of folder ~/.gnupg/qubes-auto-keyring in split-gpg-2 server VM fixed this. '''1.''' In split-gpg-2 server VM. '''2.''' Kill gpg-agent. {{CodeSelect|code= killall gpg-agent }} '''3.''' Delete folder ~/.gnupg/qubes-auto-keyring. {{CodeSelect|code= safe-rm -r -- ~/.gnupg/qubes-auto-keyring }} '''4.''' Done. == no output from gpg -K in client == * Seems to occur when /usr/bin/gpg is gpg-sq, but not when it is gpg-g10code * when running gpg -K in a client, if ~/.gnupg/qubes-auto-keyring does not exist, it is created by something (most likely split-gpg2) * the contents this directory is populated with differ depending on which gpg is in use on the server when the client calls gpg -K:
[user ~]% cd ~/auto-keyring-old # this is a qubes-auto-keyring generated when gpg is gpg-sq
[user ~/auto-keyring-old]% find
.
./pubring.cert.d
./pubring.cert.d/_sequoia_signature_verification_cache_v1_on_vault.sqlite
./pubring.cert.d/_sequoia_cert_store_index_v1_on_vault.sqlite
./private-keys-v1.d
[user ~/auto-keyring-old]% cd ~/auto-keyring-new # this is a qubes-auto-keyring generated when gpg is gpg-g10code
[user ~/auto-keyring-new]% find
.
./trustdb.gpg
./pubring.kbx~
./pubring.kbx
./private-keys-v1.d
./private-keys-v1.d/REDACTED1.key
./private-keys-v1.d/REDACTED2.key
* if "gpg-g10code's version" of qubes-auto-keyring is in place, split-gpg2 works (gpg -K functions correctly in clients) even when both client and server's gpg is gpg-sq. * if "gpg-sq's version" of qubes-auto-keyring is in place, split-gpg2 breaks (gpg -K returns nothing in clients) even when both client and server's gpg is gpg-g10code. * Caused by missing --export-secret-subkeys feature in gpg-sq: https://gitlab.com/sequoia-pgp/sequoia-chameleon-gnupg/-/issues/158 == bugs == * one time empty password prompt in split-gpg-2 client VM but then OK. Might be a gpg-agent or split-gpg-2 bug. Might not be a sequoia bug. * sequoia-chameleon-gnupg bug report: [https://gitlab.com/sequoia-pgp/sequoia-chameleon-gnupg/-/issues/158 gpg --export-secret-subkeys not implemented] ** This is the reason why split-gpg2 and gpg-sq cannot to work together out of the box. == Qubes == * [https://github.com/QubesOS/qubes-issues/issues/8241 port Qubes Split GPG to Sequoia-PGP #8241] == unconfirmed bugs == * potentially only: problem with account sysmaint vs account user? == E-Mail == === Thunderbird === {{CodeSelect|code= sudo apt install libsequoia-octopus-librnp }} https://doc.qubes-os.org/en/latest/user/security-in-qubes/split-gpg-2.html#server-options = Debugging = {{CodeSelect|code= gpg-agent --daemon -vv --debug-level guru --log-file ./mylog }} {{CodeSelect|code= tail -f ./mylog }} when things are "working", the agent will output some log lines immediately after running gpg -K in a client. when things are broken, no logging occurs in response to gpg -K in the client. = Forum Discussion = * https://forums.kicksecure.com/t/sequoia-pgp-gpg-replacement-openpgp/260 {{footer}} [[Category:Documentation]] [[Category:Development]]