testing interaction between gpg and qgpg

This commit is contained in:
Q
2024-06-27 19:52:22 +03:00
parent 2c5965d164
commit a275d2fd8b
2 changed files with 40 additions and 4 deletions

View File

@@ -58,6 +58,45 @@ test_decrypt() {
}
test_gpg() {
cd ~/tmp/
. useve-runner
useve qgpg
set -e
mkdir -p ./gpghomedir
chmod 700 ./gpghomedir
# Simulate user creating keys with GPG, and person with qGPG encrypts for them.
@ gpg --homedir ./gpghomedir -K
cat <<EOF | @ gpg --homedir ./gpghomedir --batch --generate-key -
%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real: Joe Tester
Name-Comment: with stupid passphrase
Name-Email: joe@foo.bar
Expire-Date: 0
Passphrase: abc
# Do a commit here, so that we can later print "done" :-)
%commit
%echo done
EOF
@ gpg --homedir ./gpghomedir --armor --export joe@foo.bar > key-for-collaborator.pub
@ qgpg -e --force --key key-for-collaborator.pub key-for-collaborator.pub key-for-collaborator.pub.gpg
echo abc | @ gpg --homedir ./gpghomedir --pinentry-mode loopback --batch --yes --passphrase-fd 0 -d -o key-for-collaborator.pub.2 key-for-collaborator.pub.gpg
@ diff key-for-collaborator.pub key-for-collaborator.pub.2
@ rm -rf ./gpghomedir
# Simulate person creating keys with qGPG, while someone else with GPG encrypts for them
GPGPASS=abc.2 @ qgpg -k --force --key qgpg.user --name qgpg@user
mkdir -p ./gpghomedir
chmod 700 ./gpghomedir
@ gpg --homedir ./gpghomedir --import qgpg.user.pub
@ gpg --homedir ./gpghomedir -e --trust-model always --yes -r qgpg@user -o qgpg.user.pub.gpg qgpg.user.pub
GPGPASS=abc.2 @ qgpg -d --force --key qgpg.user qgpg.user.pub.gpg qgpg.user.pub.2
@ diff qgpg.user.pub qgpg.user.pub.2
@ rm -rf ./gpghomedir
@ sha1sum *
}
install_without_tools() {
python3 -m venv .local/share/qgpg
.local/share/qgpg/bin/pip install -U pip https://six9.net/py/qgpg/qgpg-1.0.tar.gz

View File

@@ -180,7 +180,7 @@ Usage
misc_grp = parser.add_argument_group("Misc", "Other options")
misc_grp.add_argument("--width", help="Console width in characters. Defaults to auto detect.")
misc_grp.add_argument("--no-progress", help="Disable progress meter.", default=False, action="store_true")
misc_grp.add_argument("--version", help="Display version and exit", default=False, action="store_true")
misc_grp.add_argument("--version", help="Display version and exit", action="version", version=__version__)
misc_grp.add_argument("--help", "-h", action="help", help="Show this help message and exit")
crypt_grp.add_argument("path", help="Path to source file to encrypt/decrypt, or folder if recursive", nargs="?")
@@ -191,9 +191,6 @@ Usage
)
parsed = parser.parse_args()
if parsed.version:
print(__version__)
sys.exit(0)
for cmd in zip(("keygen", "encrypt", "decrypt"), (parsed.keygen, parsed.encrypt, parsed.decrypt)):
if cmd[1]:
parsed.command = cmd[0]