Home | History | Annotate | Line # | Download | only in dist
      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