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