1#!/bin/sh -e 2 3set -e 4 5 6echo "test => $0" 7 8case "$(uname -s)" in 9 Linux|CYGWIN*) 10 SHA1_BIN=$(which sha1sum) 11 ;; 12 *BSD) 13 SHA1_BIN="$(which sha1) -r" 14 ;; 15 *) 16 echo "unknown system." 17 exit 1 18 ;; 19esac 20 21 22PASSWORD=aabbccdd112233 23 24rm -f regress/test_export.kcd 25printf "export -k regress/test_export -e blowfish -m ecb\n${PASSWORD}\n${PASSWORD}\n" |${KC_RUN} -b -k ${KC_DB} -p ${KC_PASSFILE} 26 27if [ ! -r "regress/test_export.kcd" ];then 28 echo "$0 test failed (unreadable export file, blowfish)!" 29 exit 1 30fi 31 32if printf "${PASSWORD}" |${KC_RUN} -b -k regress/test_export.kcd -e blowfish -m ecb;then 33 echo "$0 test ok (export, blowfish)!" 34else 35 echo "$0 test failed (export, blowfish)!" 36 exit 1 37fi 38 39 40rm -f regress/test_export.kcd 41printf "export -k regress/test_export -P bcrypt -e blowfish -m cbc\n${PASSWORD}\n${PASSWORD}\n" |${KC_RUN} -b -k ${KC_DB} -p ${KC_PASSFILE} 42 43if [ ! -r "regress/test_export.kcd" ];then 44 echo "$0 test failed (unreadable export file, bcrypt + blowfish)!" 45 exit 1 46fi 47 48if printf "${PASSWORD}" |${KC_RUN} -b -k regress/test_export.kcd -P bcrypt -e blowfish -m cbc;then 49 echo "$0 test ok (export, bcrypt + blowfish)!" 50else 51 echo "$0 test failed (export, bcrypt + blowfish)!" 52 exit 1 53fi 54 55 56if [ ${SCRYPT} ];then 57 rm -f regress/test_export.kcd 58 printf "export -k regress/test_export -P scrypt\n${PASSWORD}\n${PASSWORD}\n" |${KC_RUN} -b -k ${KC_DB} -p ${KC_PASSFILE} 59 60 if [ ! -r "regress/test_export.kcd" ];then 61 echo "$0 test failed (unreadable export file, scrypt)!" 62 exit 1 63 fi 64 65 if printf "${PASSWORD}" |${KC_RUN} -b -k regress/test_export.kcd -P scrypt;then 66 echo "$0 test ok (export, scrypt)!" 67 else 68 echo "$0 test failed (export, scrypt)!" 69 exit 1 70 fi 71fi 72 73 74# This test must be the last one that writes test_export.kcd, 75# because the cmd_import.sh test will use this as its input. 76rm -f regress/test_export.kcd 77printf "export -k regress/test_export -P bcrypt -m cfb128\n${PASSWORD}\n${PASSWORD}\n" |${KC_RUN} -b -k ${KC_DB} -p ${KC_PASSFILE} 78 79if [ ! -r "regress/test_export.kcd" ];then 80 echo "$0 test failed (unreadable export file)!" 81 exit 1 82fi 83 84if printf "${PASSWORD}" |${KC_RUN} -b -k regress/test_export.kcd -P bcrypt -m cfb128;then 85 echo "$0 test ok (export)!" 86else 87 echo "$0 test failed (export)!" 88 exit 1 89fi 90 91 92rm -f regress/test_dump.xml 93 94printf "dump -k regress/test_dump\n" |${KC_RUN} -b -k ${KC_DB} -p ${KC_PASSFILE} 95 96if [ ! -r "regress/test_dump.xml" ];then 97 echo "$0 test failed (unreadable dump file)!" 98 exit 1 99fi 100 101SHA1=$(cat regress/test_dump.xml |sed -e 's/ created="[0-9]\{1,\}"//' -e 's/ modified="[0-9]\{1,\}"//' |$SHA1_BIN |cut -d' ' -f1) 102if [ "$SHA1" = "$SHA1_COMMON_1" ];then 103 echo "$0 test ok (dump)!" 104else 105 echo "$0 test failed (dump)!" 106 exit 1 107fi 108 109exit 0 110