123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382 |
- #!/bin/bash
- # =============================================================================
- # \brief Testing command-line interface
- # \project bee2evp/cmd
- # \created 2022.06.24
- # \version 2023.03.16
- # =============================================================================
- bee2cmd=./bee2cmd
- this=$(basename $BASH_SOURCE)
- function pause() {
- read -s -n 1 -p "Press any key to continue..."
- echo ""
- }
- test_ver() {
- $bee2cmd ver \
- || return 1
- $bee2cmd ver ver \
- && return 1
- return 0
- }
- test_bsum() {
- rm -rf check32 check256 \
- || return 2
- $bee2cmd bsum -bash31 $bee2cmd \
- && return 1
- $bee2cmd bsum -bash32 $bee2cmd $this > check32 \
- || return 1
- $bee2cmd bsum -bash32 -c check32 \
- || return 1
- $bee2cmd bsum $bee2cmd $this > check256 \
- || return 1
- $bee2cmd bsum -belt-hash -c check256 \
- || return 1
- $bee2cmd bsum -c check32 \
- && return 1
- return 0
- }
- test_pwd() {
- rm -rf s1 s2 s3 s4 s5 ss1 ss2 ss3 \
- || return 2
- $bee2cmd pwd gen pass:zed \
- || return 1
- $bee2cmd pwd gen pass:"zed" \
- || return 1
- $bee2cmd pwd gen share:"-t2 -t3 -pass pass:zed s1 s2" \
- && return 1
- $bee2cmd pwd gen share:"-t3 -pass pass:zed s1 s2" \
- && return 1
- $bee2cmd pwd gen share:"-l -pass pass:zed s1 s2" \
- && return 1
- $bee2cmd pwd gen share:"-l12 -pass pass:zed s1 s2" \
- && return 1
- $bee2cmd pwd gen share:"-l128 -l -pass pass:zed s1 s2" \
- && return 1
- $bee2cmd pwd gen share:"-l128 -l256 -pass pass:zed s1 s2" \
- && return 1
- $bee2cmd pwd gen share:"-l256 -t3 -pass pass:zed s1 s2 s3 s4 s5" \
- || return 1
- $bee2cmd pwd val share:"-t3 -pass pass:zed s1 s2" \
- && return 1
- $bee2cmd pwd val share:"-l -pass pass:zed s1 s2" \
- && return 1
- $bee2cmd pwd val share:"-l12 -pass pass:zed s1 s2" \
- && return 1
- $bee2cmd pwd val share:"-l128 -l -pass pass:zed s1 s2" \
- && return 1
- $bee2cmd pwd val share:"-l128 -l256 -pass pass:zed s1 s2" \
- && return 1
- $bee2cmd pwd val share:"-l128 -pass pass:zed s1 s2" \
- && return 1
- $bee2cmd pwd val share:"-l256 -pass pass:zed s1 s2 s3" \
- || return 1
- $bee2cmd pwd val share:"-pass pass:zed s2 s3 s4 s5" \
- || return 1
- $bee2cmd pwd print share:"-l128 -pass pass:zed s5 s1 s3" \
- && return 1
- $bee2cmd pwd print share:"-l256 -pass pass:zed s2 s1 s5 s3" \
- || return 1
- $bee2cmd pwd print share:"-pass pass:zed s1 s2 s3 s4 s5" \
- || return 1
- $bee2cmd pwd gen \
- share:"-l192 -pass share:\"-pass pass:zed s1 s2 s3\" ss1 ss2 ss3" \
- || return 1
- $bee2cmd pwd val share:"-pass share:\"-pass pass:zed s1 s2 s2\" ss1 ss2" \
- && return 1
- $bee2cmd pwd val share:"-pass share:\"-pass pass:zed s1 s2 s3\" ss1 ss1" \
- && return 1
- $bee2cmd pwd val share:"-pass share:\"-pass pass:zed s2 s4 s1\" ss3 ss1" \
- || return 1
- $bee2cmd pwd print share:"-pass share:\"-pass pass:zed s2 s4 s1\" ss3 ss1" \
- || return 1
- return 0
- }
- test_kg() {
- rm -rf privkey0 privkey1 privkey2 pubkey1 pubkey2 \
- || return 2
- $bee2cmd kg gen -l256 -pass share:"-pass pass:zed s2 s3 s4" \
- && return 1
- $bee2cmd kg gen -l256 -pass share:"-pass pass:zed s2 s3 s4" -pass pass:zed \
- && return 1
- $bee2cmd kg gen -l256 -l192 -pass share:"-pass pass:zed s2 s3 s4" privkey0 \
- && return 1
- $bee2cmd kg gen -l256 -pass share:"-pass pass:zed s2 s3 s4" privkey0 \
- || return 1
- $bee2cmd kg val -pass share:"-pass pass:zed s1 s2 s4" privkey0 \
- || return 1
- $bee2cmd kg chp -passin share:"-pass pass:zed s3 s1 s4" \
- -passout pass:"root" privkey0 \
- || return 1
- $bee2cmd kg print -pass pass:root privkey0 \
- || return 1
- $bee2cmd kg gen -pass pass:trent -l192 privkey1 \
- || return 1
- pubkey1="$($bee2cmd kg print -pass pass:"trent" privkey1)"
- if [ ${#pubkey1} != "192" ]; then
- return 1
- fi
- $bee2cmd kg gen -pass pass:alice privkey2 \
- || return 1
- $bee2cmd kg pub -pass pass:alice privkey2 pubkey2 \
- || return 1
- if [ "$(wc -c pubkey2 | awk '{print $1}')" != "64" ]; then
- return 1
- fi
- return 0
- }
- test_cvc() {
- rm -rf cert0 cert1 cert2 req1 req2 \
- || return 2
- $bee2cmd cvc root -authority BYCA0000 -from 220707 -until 990707 \
- -pass pass:root -eid EEEEEEEEEE -esign 7777 privkey0 cert0 \
- || return 1
- $bee2cmd cvc print cert0 \
- || return 1
- $bee2cmd cvc req -pass pass:trent -authority BYCA0000 -holder BYCA1000 \
- -from 220712 -until 221130 -eid DDDDDDDDDD -esign 3333 privkey1 req1 \
- || return 1
- $bee2cmd cvc print req1 \
- || return 1
- $bee2cmd cvc iss -pass pass:root privkey0 cert0 req1 cert1 \
- || return 1
- $bee2cmd cvc print cert1 \
- || return 1
- $bee2cmd cvc req -authority BYCA1000 -from 220712 -until 391231 -esign 1111 \
- -holder "590082394654" -pass pass:alice -eid 8888888888 privkey2 req2 \
- || return 1
- $bee2cmd cvc iss -pass pass:trent privkey1 cert1 req2 cert2 \
- || return 1
- $bee2cmd cvc match -pass pass:alice privkey2 cert2 \
- || return 1
- $bee2cmd cvc match -pass pass:alisa privkey2 cert2 \
- || return 1
- $bee2cmd cvc print cert2 \
- || return 1
- $bee2cmd cvc val cert0 cert0 \
- || return 1
- $bee2cmd cvc val -date 220707 cert0 cert1 \
- && return 1
- $bee2cmd cvc val -date 220712 cert0 cert1 \
- || return 1
- $bee2cmd cvc val -date 220707 cert0 cert1 cert2 \
- && return 1
- $bee2cmd cvc val -date 220712 cert0 cert1 cert2 \
- || return 1
- $bee2cmd cvc val -date 220712 cert0 cert1 cert2 \
- || return 1
- $bee2cmd cvc val -date 221201 cert0 cert1 cert2 \
- || return 1
- $bee2cmd cvc val -date 400101 cert0 cert1 cert2 \
- && return 1
- return 0
- }
- test_sig(){
- rm -rf ss ff\
- || return 2
- echo test > ff
- echo sig > ss
- $bee2cmd sig vfy -pubkey pubkey2 ff ss \
- && return 1
- $bee2cmd sig vfy -anchor cert0 ff ss \
- && return 1
- $bee2cmd sig vfy -anchor cert2 ff ss \
- && return 1
- $bee2cmd sig vfy -pubkey pubkey2 ff ff \
- && return 1
- $bee2cmd sig vfy -anchor cert0 ff ff \
- && return 1
- $bee2cmd sig vfy -anchor cert2 ff ff \
- && return 1
- rm -rf ss
- $bee2cmd sig sign -certs "cert2 cert1" -pass pass:alice privkey2 ff ss \
- || return 1
- $bee2cmd sig vfy -pubkey pubkey2 ff ss \
- || return 1
- $bee2cmd sig vfy -anchor cert2 ff ss \
- || return 1
- $bee2cmd sig vfy -anchor cert1 ff ss \
- || return 1
- $bee2cmd sig vfy -anchor cert0 ff ss \
- && return 1
- $bee2cmd sig sign -certs "cert2 cert1 cert0" -pass pass:alice privkey2 ff ff \
- || return 1
- $bee2cmd sig vfy -pubkey pubkey2 ff ff \
- || return 1
- $bee2cmd sig vfy -anchor cert2 ff ff \
- || return 1
- $bee2cmd sig vfy -anchor cert1 ff ff \
- || return 1
- $bee2cmd sig vfy -anchor cert0 ff ff \
- || return 1
- rm -rf ss
- $bee2cmd sig sign -certs cert2 -pass pass:alice privkey2 ff ss \
- || return 1
- $bee2cmd sig print ss \
- || return 1
- $bee2cmd sig vfy -pubkey pubkey2 ff ss \
- || return 1
- $bee2cmd sig vfy -anchor cert2 ff ss \
- || return 1
- $bee2cmd sig vfy -anchor cert1 ff ss \
- && return 1
- $bee2cmd sig sign -pass pass:alice privkey2 ff ff \
- || return 1
- $bee2cmd sig vfy -pubkey pubkey2 ff ff \
- || return 1
- $bee2cmd sig vfy -anchor cert2 ff ff \
- && return 1
- $bee2cmd sig print ff \
- || return 1
- return 0
- }
- test_es() {
- rm -rf dd\
- || return 2
- $bee2cmd es print \
- || return 1
- $bee2cmd es read sys 1 dd \
- || return 1
- if [ "$(wc -c dd | awk '{print $1}')" != "1024" ]; then
- return 1
- fi
- return 0
- }
- test_bacc(){
- for l in 128; do
- rm acc key1 key2 key3 key4 cert_1 cert_2 cert_3 cert_4 req1 req2 req3 req4
- $bee2cmd kg gen -pass pass:key -l$l key1 \
- || return 1
- $bee2cmd kg gen -pass pass:key -l$l key2 \
- || return 1
- $bee2cmd kg gen -pass pass:key -l$l key3 \
- || return 1
- $bee2cmd kg gen -pass pass:key -l$l key4 \
- || return 1
- $bee2cmd cvc req -authority BYCA1000 -from 220712 -until 391231 -esign 1111 \
- -holder "590082394654" -pass pass:key -eid 8888888888 key1 req1 \
- || return 1
- $bee2cmd cvc req -authority BYCA1000 -from 220712 -until 391231 -esign 1111 \
- -holder "590082394654" -pass pass:key -eid 8888888888 key2 req2 \
- || return 1
- $bee2cmd cvc req -authority BYCA1000 -from 220712 -until 391231 -esign 1111 \
- -holder "590082394654" -pass pass:key -eid 8888888888 key3 req3 \
- || return 1
- $bee2cmd cvc req -authority BYCA1000 -from 220712 -until 391231 -esign 1111 \
- -holder "590082394654" -pass pass:key -eid 8888888888 key4 req4 \
- || return 1
- $bee2cmd cvc iss -pass pass:trent privkey1 cert1 req1 cert_1 \
- || return 1
- $bee2cmd cvc iss -pass pass:trent privkey1 cert1 req2 cert_2 \
- || return 1
- $bee2cmd cvc iss -pass pass:trent privkey1 cert1 req3 cert_3 \
- || return 1
- $bee2cmd cvc iss -pass pass:trent privkey1 cert1 req4 cert_4 \
- || return 1
- $bee2cmd bacc init -name "name" -l$l acc \
- || return 1
- $bee2cmd bacc add -cert "cert_2 cert1" -pass pass:key key1 -sigpass pass:key key2 acc \
- || return 1
- $bee2cmd bacc add -cert "cert_3 cert1" -pass pass:key key2 -sigpass pass:key key3 acc \
- || return 1
- $bee2cmd bacc add -cert "cert_1 cert1" -pass pass:key key3 -sigpass pass:key key1 acc \
- || return 1
- $bee2cmd bacc validate acc cert1 \
- || return 1
- $bee2cmd bacc validate -name "name" acc cert1 \
- || return 1
- $bee2cmd bacc validate -name "name1" acc cert1 \
- && return 1
- rm pubkey1 pubkey2 pubkey3 pubkey4 acc_final
- $bee2cmd bacc extract acc acc_final \
- || return 1
- $bee2cmd bacc der -pass pass:key key1 acc_final pubkey1 \
- || return 1
- $bee2cmd bacc der -pass pass:key key2 acc_final pubkey2 \
- || return 1
- $bee2cmd bacc der -pass pass:key key3 acc_final pubkey3 \
- || return 1
- $bee2cmd bacc der -pass pass:key key4 acc_final pubkey4 \
- && return 1
- rm proof
- $bee2cmd bacc prvder -pass pass:key key1 acc_final proof \
- || return 1
- $bee2cmd bacc vfyder pubkey1 acc_final proof \
- || return 1
- rm proof
- $bee2cmd bacc prvder -adata key1 -pass pass:key key2 acc_final proof \
- || return 1
- $bee2cmd bacc vfyder -adata key1 pubkey2 acc_final proof \
- || return 1
- rm proof
- $bee2cmd bacc prvder -adata key1 -pass pass:key key3 acc_final proof \
- || return 1
- $bee2cmd bacc vfyder -adata key1 pubkey acc_final proof \
- && return 1
- $bee2cmd bacc prvder -pass pass:key key acc_final proof \
- && return 1
- done
- return 0
- }
- run_test() {
- echo -n "Testing $1... "
- (test_$1 > /dev/null 2>&1)
- if [ $? -eq 0 ]; then
- echo "Success"
- else
- echo "Failed"
- fi
- }
- run_test ver && run_test bsum && run_test pwd && run_test kg && run_test cvc \
- && run_test sig && run_test es && run_test bacc
|