mirror of
https://gitlab.kit.edu/kit/scc/sys/mail/exim-encrypt-dlfunc.git
synced 2025-12-06 07:33:55 +01:00
47 lines
2.1 KiB
Bash
Executable File
47 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# shellcheck disable=SC2034
|
|
# this script implements the TAP protocol (https://testanything.org)
|
|
echo 1..3
|
|
|
|
TEST_PUBLICKEY='z7+GlUWgoiXJ4VK6cdLikCF7M6Mj9i4eXNE6Jh1m9yw='
|
|
TEST_SECRETKEY='h5C/V2nzhILRmJ6UZrNK/6G8Xc4KWzLq/Qr8Xj42jus='
|
|
TEST_CLEARTEXT='There is nothing in the middle of the road but a yellow stripe and dead armadillos. ~ Jim Hightower'
|
|
TEST_CIPHERTEXT='+UgXgarCuX3dUobgt8rRnjnxPNWHpsw98GjLZy8+2m5e/v9K/acMq+0UsFW7lwAZIRqj1F55n78y73Y6XCBEVSt8G6nntV8WuDYlr1BHcBIXNr5toUbE+CxtLoGqfD3c3nw1NkJDO1NYGzK/cG43TEEBLrQJCRLRBXOZmxG6ugFo4FtYl297/B1xNtkd9IR4TY5C'
|
|
CIPHERTEXT_FILE="$(mktemp)"
|
|
TEST_PUBLICKEY_FILE="$(mktemp)"
|
|
TEST_SECRETKEY_FILE="$(mktemp)"
|
|
echo -n "${TEST_CIPHERTEXT}" > "${CIPHERTEXT_FILE}"
|
|
echo -n "${TEST_PUBLICKEY}" | base64 -d > "${TEST_PUBLICKEY_FILE}"
|
|
echo -n "${TEST_SECRETKEY}" | base64 -d > "${TEST_SECRETKEY_FILE}"
|
|
|
|
cleanup() {
|
|
rm -rf "${CIPHERTEXT_FILE}" "${TEST_PUBLICKEY_FILE}" "${TEST_SECRETKEY_FILE}"
|
|
}
|
|
trap cleanup EXIT INT TERM
|
|
|
|
export LIBEXIM_PUBLICKEY="${TEST_PUBLICKEY}"
|
|
export LIBEXIM_SECRETKEY="${TEST_SECRETKEY}"
|
|
|
|
DECRYPTED="$(src/libexim-encrypt-dlfunc-decrypt-sealedbox "${TEST_CIPHERTEXT}")"
|
|
if [ "${DECRYPTED}" == "${TEST_CLEARTEXT}" ] ; then
|
|
echo "ok 1 - decrypt commandline argument with keys from environment successful"
|
|
else
|
|
echo "not ok 1 - decrypt commandline argument with keys from environment unsuccessful"
|
|
fi
|
|
|
|
export -n LIBEXIM_PUBLICKEY LIBEXIM_SECRETKEY
|
|
|
|
DECRYPTED="$(src/libexim-encrypt-dlfunc-decrypt-sealedbox --secret-key "${TEST_SECRETKEY}" --public-key "${TEST_PUBLICKEY}" --infile "${CIPHERTEXT_FILE}")"
|
|
if [ "${DECRYPTED}" == "${TEST_CLEARTEXT}" ] ; then
|
|
echo "ok 2 - decrypt file contents with keys from commandline"
|
|
else
|
|
echo "not ok 2 - decrypt file contents with keys from commandline"
|
|
fi
|
|
|
|
DECRYPTED="$(src/libexim-encrypt-dlfunc-decrypt-sealedbox --secret-key-file "${TEST_SECRETKEY_FILE}" --public-key-file "${TEST_PUBLICKEY_FILE}" --infile - < "${CIPHERTEXT_FILE}")"
|
|
if [ "${DECRYPTED}" == "${TEST_CLEARTEXT}" ] ; then
|
|
echo "ok 3 - decrypt stdin contents with keys from files"
|
|
else
|
|
echo "not ok 3 - decrypt stdin contents with keys from files"
|
|
fi
|