1 1.1 agc #! /bin/sh 2 1.1 agc 3 1.31 agc # function to mark a test as good or bad 4 1.31 agc marktest() { 5 1.31 agc local lnum=$1 6 1.31 agc local lgood=$2 7 1.31 agc if [ $lgood -eq $lnum ]; then 8 1.31 agc passed=$(expr $passed + 1) 9 1.31 agc echo "$lnum yes" >> passed 10 1.31 agc else 11 1.31 agc echo "$lnum no" >> passed 12 1.31 agc fi 13 1.31 agc } 14 1.31 agc 15 1.13 agc while [ $# -gt 0 ]; do 16 1.13 agc case "$1" in 17 1.13 agc -v) 18 1.13 agc set -x 19 1.13 agc ;; 20 1.13 agc *) 21 1.13 agc break 22 1.13 agc ;; 23 1.13 agc esac 24 1.13 agc shift 25 1.13 agc done 26 1.13 agc 27 1.32 agc env USETOOLS=no MAKEOBJDIRPREFIX=/usr/build/amd64 sh -c 'cd ../libmj && \ 28 1.28 agc make cleandir ; \ 29 1.28 agc su root -c "make includes"; \ 30 1.28 agc make ; \ 31 1.28 agc su root -c "make install"' 32 1.32 agc env USETOOLS=no MAKEOBJDIRPREFIX=/usr/build/amd64 sh -c 'cd ../lib && \ 33 1.2 agc make cleandir ; \ 34 1.13 agc su root -c "make includes"; \ 35 1.2 agc make ; \ 36 1.2 agc su root -c "make install"' 37 1.32 agc env USETOOLS=no MAKEOBJDIRPREFIX=/usr/build/amd64 sh -c 'cd ../netpgp && \ 38 1.8 agc make cleandir ; \ 39 1.8 agc make ; \ 40 1.8 agc su root -c "make install"' 41 1.32 agc env USETOOLS=no MAKEOBJDIRPREFIX=/usr/build/amd64 sh -c 'cd ../netpgpkeys && \ 42 1.2 agc make cleandir ; \ 43 1.2 agc make ; \ 44 1.2 agc su root -c "make install"' 45 1.6 agc 46 1.6 agc passed=0 47 1.30 agc total=36 48 1.23 agc rm -f passed 49 1.23 agc date > passed 50 1.1 agc echo "======> sign/verify 180938 file" 51 1.1 agc cp configure a 52 1.2 agc /usr/bin/netpgp --sign a 53 1.31 agc /usr/bin/netpgp --verify a.gpg && good=1 54 1.31 agc marktest 1 $good 55 1.1 agc echo "======> attempt to verify an unsigned file" 56 1.31 agc /usr/bin/netpgp --verify a || good=2 57 1.31 agc marktest 2 $good 58 1.1 agc echo "======> encrypt/decrypt 10809 file" 59 1.10 agc cp src/netpgp/netpgp.1 b 60 1.2 agc /usr/bin/netpgp --encrypt b 61 1.2 agc /usr/bin/netpgp --decrypt b.gpg 62 1.31 agc diff src/netpgp/netpgp.1 b && good=3 63 1.31 agc marktest 3 $good 64 1.1 agc echo "======> encrypt/decrypt 180938 file" 65 1.1 agc cp configure c 66 1.2 agc /usr/bin/netpgp --encrypt c 67 1.2 agc /usr/bin/netpgp --decrypt c.gpg 68 1.31 agc diff configure c && good=4 69 1.31 agc marktest 4 $good 70 1.1 agc echo "======> encrypt/decrypt bigass file" 71 1.1 agc cat configure configure configure configure configure configure > d 72 1.1 agc ls -l d 73 1.1 agc cp d e 74 1.2 agc /usr/bin/netpgp --encrypt d 75 1.2 agc /usr/bin/netpgp --decrypt d.gpg 76 1.31 agc diff e d && good=5 77 1.31 agc marktest 5 $good 78 1.3 agc echo "======> sign/verify detached signature file" 79 1.3 agc cat configure configure configure configure configure configure > f 80 1.3 agc /usr/bin/netpgp --sign --detached f 81 1.3 agc ls -l f f.sig 82 1.31 agc /usr/bin/netpgp --verify f.sig && good=6 83 1.31 agc marktest 6 $good 84 1.4 agc echo "======> cat signature - verified cat command" 85 1.4 agc /usr/bin/netpgp --cat a.gpg > a2 86 1.31 agc diff a a2 && good=7 87 1.31 agc marktest 7 $good 88 1.4 agc echo "======> another cat signature - verified cat command" 89 1.4 agc /usr/bin/netpgp --cat --output=a3 a.gpg 90 1.31 agc diff a a3 && good=8 91 1.31 agc marktest 8 $good 92 1.8 agc echo "======> netpgp list-packets test" 93 1.31 agc /usr/bin/netpgp --list-packets || good=9 94 1.31 agc marktest 9 $good 95 1.1 agc echo "======> version information" 96 1.31 agc /usr/bin/netpgp --version && good=10 97 1.31 agc marktest 10 $good 98 1.8 agc echo "======> netpgpverify file" 99 1.32 agc /usr/bin/netpgp -v < a.gpg && good=11 100 1.31 agc marktest 11 $good 101 1.8 agc echo "======> attempt to verify an unsigned file" 102 1.32 agc /usr/bin/netpgp -v < a || good=12 103 1.31 agc marktest 12 $good 104 1.8 agc echo "======> sign/verify detached signature file" 105 1.8 agc ls -l f f.sig 106 1.32 agc /usr/bin/netpgp -v f.sig && good=13 107 1.31 agc marktest 13 $good 108 1.8 agc echo "======> another verify signature - verified cat command" 109 1.32 agc /usr/bin/netpgp -v --output=a3 < a.gpg 110 1.31 agc diff a a3 && good=14 111 1.31 agc marktest 14 $good 112 1.11 agc echo "======> list keys" 113 1.31 agc /usr/bin/netpgpkeys --list-keys && good=15 114 1.31 agc marktest 15 $good 115 1.8 agc echo "======> version information" 116 1.32 agc /usr/bin/netpgp -v --version && good=16 117 1.31 agc marktest 16 $good 118 1.13 agc echo "======> find specific key information" 119 1.31 agc /usr/bin/netpgpkeys --get-key c0596823 agc@netbsd.org && good=17 120 1.31 agc marktest 17 $good 121 1.14 agc echo "======> ascii armoured signature" 122 1.14 agc cp Makefile.am g 123 1.31 agc /usr/bin/netpgp --sign --armor g && good=18 124 1.31 agc marktest 18 $good 125 1.14 agc echo "======> ascii armoured sig detection and verification" 126 1.31 agc /usr/bin/netpgp --verify g.asc && good=19 127 1.31 agc marktest 19 $good 128 1.14 agc echo "======> ascii armoured signature of large file" 129 1.14 agc cp Makefile.in g 130 1.31 agc /usr/bin/netpgp --sign --armor g && good=20 131 1.31 agc marktest 20 $good 132 1.14 agc echo "======> ascii armoured sig detection and verification of large file" 133 1.31 agc /usr/bin/netpgp --verify g.asc && good=21 134 1.31 agc marktest 21 $good 135 1.20 agc echo "======> verify memory by recognising ascii armour" 136 1.20 agc /usr/bin/netpgp --cat < g.asc > g2 137 1.31 agc diff g g2 && good=22 138 1.31 agc marktest 22 $good 139 1.15 agc echo "======> list ssh host RSA public key" 140 1.31 agc /usr/bin/netpgpkeys --ssh --sshkeyfile=/etc/ssh/ssh_host_rsa_key.pub --list-keys && good=23 141 1.31 agc marktest 23 $good 142 1.15 agc echo "======> sign/verify file with ssh host keys" 143 1.15 agc cp configure a 144 1.27 agc sudo /usr/bin/netpgp --ssh --sshkeyfile=/etc/ssh/ssh_host_rsa_key.pub --sign a 145 1.15 agc sudo chmod 644 a.gpg 146 1.31 agc /usr/bin/netpgp --verify --ssh --sshkeyfile=/etc/ssh/ssh_host_rsa_key.pub a.gpg && good=24 147 1.31 agc marktest 24 $good 148 1.18 agc echo "======> pipeline and memory encrypt/decrypt" 149 1.18 agc /usr/bin/netpgp --encrypt < a | /usr/bin/netpgp --decrypt > a4 150 1.31 agc diff a a4 && good=25 151 1.31 agc marktest 25 $good 152 1.18 agc echo "======> pipeline and memory sign/verify" 153 1.18 agc /usr/bin/netpgp --sign < a | /usr/bin/netpgp --cat > a5 154 1.31 agc diff a a5 && good=26 155 1.31 agc marktest 26 $good 156 1.19 agc echo "======> verify within a duration" 157 1.19 agc cp Makefile.am h 158 1.19 agc /usr/bin/netpgp --sign --duration 6m --detached h 159 1.31 agc /usr/bin/netpgp --verify h.sig && good=27 160 1.31 agc marktest 27 $good 161 1.19 agc echo "======> invalid signature - expired" 162 1.19 agc rm -f h.sig 163 1.19 agc /usr/bin/netpgp --sign --duration 2 --detached h 164 1.19 agc sleep 3 165 1.31 agc /usr/bin/netpgp --verify h.sig || good=28 166 1.31 agc marktest 28 $good 167 1.21 agc echo "======> list signatures and subkey signatures" 168 1.31 agc /usr/bin/netpgpkeys --list-sigs && good=29 169 1.31 agc marktest 29 $good 170 1.22 agc echo "======> generate a new RSA key" 171 1.31 agc /usr/bin/netpgpkeys --generate-key && good=30 172 1.31 agc marktest 30 $good 173 1.23 agc echo "======> ascii detached armoured signature" 174 1.23 agc cp Makefile.am i 175 1.31 agc /usr/bin/netpgp --sign --armor --detached i && good=31 176 1.31 agc marktest 31 $good 177 1.23 agc echo "======> ascii detached armoured sig detection and verification" 178 1.31 agc /usr/bin/netpgp --verify i.asc && good=32 179 1.31 agc marktest 32 $good 180 1.25 agc echo "======> host ssh fingerprint and netpgp fingerprint" 181 1.26 agc netpgpkey=$(/usr/bin/netpgpkeys --ssh --sshkeyfile=/etc/ssh/ssh_host_rsa_key.pub --list-keys --hash=md5 | awk 'NR == 3 { print $3 $4 $5 $6 $7 $8 $9 $10 }') 182 1.25 agc sshkey=$(/usr/bin/ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub | awk '{ gsub(":", "", $2); print $2 }') 183 1.25 agc echo "host sshkey \"$sshkey\" = netpgpkey \"$netpgpkey\"" 184 1.31 agc [ $sshkey = $netpgpkey ] && good=33 185 1.31 agc marktest 33 $good 186 1.25 agc echo "======> user ssh fingerprint and netpgp fingerprint" 187 1.26 agc netpgpkey=$(/usr/bin/netpgpkeys --ssh --list-keys --hash=md5 | awk 'NR == 3 { print $3 $4 $5 $6 $7 $8 $9 $10 }') 188 1.25 agc sshkey=$(/usr/bin/ssh-keygen -l -f /home/agc/.ssh/id_rsa.pub | awk '{ gsub(":", "", $2); print $2 }') 189 1.25 agc echo "user sshkey \"$sshkey\" = netpgpkey \"$netpgpkey\"" 190 1.31 agc [ $sshkey = $netpgpkey ] && good=34 191 1.31 agc marktest 34 $good 192 1.29 agc echo "======> single key listing" 193 1.31 agc /usr/bin/netpgpkeys -l agc && good=35 194 1.31 agc marktest 35 $good 195 1.30 agc echo "======> pipeline and memory encrypt/decrypt with specified cipher" 196 1.30 agc /usr/bin/netpgp -e --cipher camellia128 < a | /usr/bin/netpgp -d > a6 197 1.31 agc diff a a6 && good=36 198 1.31 agc marktest 36 $good 199 1.30 agc rm -f a a.gpg b b.gpg c c.gpg d d.gpg e f f.sig g g.asc g2 a2 a3 a4 a5 a6 h h.sig i i.asc 200 1.6 agc echo "Passed ${passed}/${total} tests" 201