#!/bin/bash
# This assumes you already have the venv enabled
# If not:
#  python3 -mvenv .venv
#  source .venv/bin/activate
#  pip install -r requirements.txt
echo "--------- UNHASHED (expected to fail) ---------"
./main.py -m emails/unsigned.eml verify
echo
echo "--------- UNSIGNED (expected to fail) ---------"
./main.py -m emails/unsigned-with-hashes.eml verify
echo
echo "--------- DKIM-SIGNED (all PASS) ---------"
./main.py -m emails/korg-signed-dkim.eml verify
echo
echo "--------- DKIM-SIGNED (with ML junk, all PASS) ---------"
./main.py -m emails/korg-signed-dkim-with-ml-junk.eml verify
echo
echo "--------- DKIM-SIGNED (with edited subject, metadata will FAIL) ---------"
./main.py -m emails/korg-signed-dkim-changed-subject.eml verify
echo
echo "--------- DK-SIGNED (all PASS) ---------"
./main.py -m emails/korg-signed-dk.eml verify
echo
echo "--------- WK-SIGNED (all PASS) ---------"
./main.py -m emails/korg-signed-wk.eml verify
echo
echo "--------- PGP-SIGNED (by mricon, all PASS) ---------"
./main.py -m emails/mricon-signed-pgp.eml verify
echo
echo "--------- PGP-SIGNED (by mricon, commit message will FAIL) ---------"
./main.py -m emails/mricon-signed-pgp-commit-message-modified.eml verify
echo
echo "--------- PGP-SIGNED (by mricon, diff content will FAIL) ---------"
./main.py -m emails/mricon-signed-pgp-patch-modified.eml verify
echo
echo "--------- WKD-SIGNED (by mricon, web lookup, all PASS) ---------"
./main.py -m emails/mricon-signed-wkd.eml verify
echo
echo "--------- WKD-SIGNED (by dev, stored in git, all PASS) ---------"
./main.py -m emails/dev-signed-wkd-ingit.eml verify
echo
