Files
qgpg/Bakefile

107 lines
3.5 KiB
Plaintext

build() {
. useve-runner
useve syncbin
python3 -m hatchling build
cp qgpg/__init__.py dist/qgpg.py
echo "copy dist/ to six9.net/py/qgpg/"
}
setup_useve() {
set -e
. useve-runner
useve mk qgpg
}
install_useve() {
set -e
. useve-runner
py-format .
useve qgpg
pip install ./
qgpg --help
}
test_encrypt() {
# Prepare
cd ~/tmp/
. useve-runner
useve qgpg
rm -fr key2* datadir datadir.encrypted sha1sum.txt
@ mkdir -p datadir/folder{1,2}
@ dd if=/dev/random of=datadir/testfile bs=3024 count=102400
for i in {1..10}; do
dd if=/dev/random of=datadir/folder1/${i}testfile bs=1024 count=10240 &> /dev/null
dd if=/dev/random of=datadir/folder2/${i}testfile bs=1024 count=10240 &> /dev/null
done
# Run encryption code
set -e
GPGPASS=secret @ qgpg -k --key key2
@ qgpg -e --key key2.pub datadir/folder1/1testfile
@ qgpg -e --key key2.pub datadir/folder1/1testfile datadir/1testfile.encrypted.gpg
@ qgpg -e --key key2.pub -r datadir
@ qgpg -e --key key2.pub -r datadir
@ qgpg -e --key key2.pub -r $(pwd)/datadir/ datadir.encrypted/
GPGPASS=symmetric_password @ qgpg -e datadir/folder1/1testfile datadir/1testfile.encrypted.symmetric.gpg
@ hash-update -t sha1 -f sha1sum.txt -r datadir
}
test_decrypt() {
cd ~/tmp/
. useve-runner
useve qgpg
set -e
@ find datadir -type f -name '*testfile' | xargs -II rm -v I
GPGPASS=secret @ qgpg -d --key key2 -r datadir
GPGPASS=symmetric_password @ qgpg -d --force datadir/1testfile.encrypted.symmetric.gpg datadir/folder1/1testfile
@ hash-update -t sha1 -f sha1sum.txt -c
}
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
mkdir -p .local/bin
ln -sfT ~/.local/share/qgpg/bin/qgpg .local/bin/qgpg
}