#!/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