64 lines
1.3 KiB
Bash
Executable File
64 lines
1.3 KiB
Bash
Executable File
#!/bin/bash -eu
|
|
|
|
# Run the set of "canonical" benchmarks that are shown on
|
|
# https://nuetzlich.net/gocryptfs/comparison/
|
|
|
|
cd "$(dirname "$0")"
|
|
MYNAME=$(basename "$0")
|
|
|
|
function usage {
|
|
echo "Usage: $MYNAME [-encfs] [DIR]"
|
|
exit 1
|
|
}
|
|
|
|
# Print help text on too many arguments or "-h"
|
|
if [[ $# -gt 2 ]]; then
|
|
usage
|
|
elif [[ $# -ge 1 ]] && [[ $1 == "-h" ]]; then
|
|
usage
|
|
fi
|
|
|
|
# Set $DIR and $MODE
|
|
MODE=gocryptfs
|
|
DIR=/tmp
|
|
if [[ $# -eq 2 ]]; then
|
|
if [[ $1 != "-encfs" ]]; then
|
|
usage
|
|
fi
|
|
MODE=encfs
|
|
DIR=$2
|
|
elif [[ $# -eq 1 ]]; then
|
|
if [[ $1 == "-encfs" ]]; then
|
|
MODE=encfs
|
|
else
|
|
DIR=$1
|
|
fi
|
|
fi
|
|
|
|
# Create directories
|
|
CRYPT=$(mktemp -d "$DIR/$MYNAME.XXX")
|
|
MNT=$CRYPT.mnt
|
|
mkdir $MNT
|
|
|
|
# Mount
|
|
if [[ $MODE == encfs ]]; then
|
|
echo "Testing EncFS at $CRYPT"
|
|
encfs --extpass="echo test" --standard $CRYPT $MNT > /dev/null
|
|
else
|
|
echo "Testing gocryptfs at $CRYPT"
|
|
gocryptfs -q -init -extpass="echo test" -scryptn=10 $CRYPT
|
|
# By default, gocryptfs decides between OpenSSL and Go GCM:
|
|
gocryptfs -q -extpass="echo test" $CRYPT $MNT
|
|
# Force use of OpenSSL:
|
|
#gocryptfs -q -extpass="echo test" -openssl=true $CRYPT $MNT
|
|
# Force use of Go GCM:
|
|
#gocryptfs -q -extpass="echo test" -openssl=false $CRYPT $MNT
|
|
fi
|
|
|
|
# Cleanup trap
|
|
trap "cd /; fusermount -u -z $MNT; rm -rf $CRYPT $MNT" EXIT
|
|
|
|
# Benchmarks
|
|
./tests/canonical-benchmarks.bash $MNT
|
|
|