107 lines
3.5 KiB
Plaintext
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
|
|
|
|
}
|