github.com/extrame/fabric-ca@v2.0.0-alpha+incompatible/scripts/fvt/keys_test.sh (about) 1 #!/bin/bash 2 # 3 # Copyright IBM Corp. All Rights Reserved. 4 # 5 # SPDX-License-Identifier: Apache-2.0 6 # 7 8 : ${TESTCASE="keys"} 9 CA_CFG_PATH="/tmp/keys" 10 FABRIC_CA="$GOPATH/src/github.com/hyperledger/fabric-ca" 11 TESTDATA="$FABRIC_CA/testdata" 12 SCRIPTDIR="$FABRIC_CA/scripts/fvt" 13 EE_KEY="/tmp/keys/admin/msp/keystore/*_sk" 14 EE_CERT="$HOME/abric-ca/cert.pem" 15 RC=0 16 . $SCRIPTDIR/fabric-ca_utils 17 RC=0 18 export CA_CFG_PATH 19 20 CA_KEY="$CA_CFG_PATH/msp/keystore/*_sk" 21 #ecl=(256 384 521) 22 ecl=(256 384) 23 ecl=256 24 ecOid[256]="prime256v1" 25 ecOid[384]="secp384r1" 26 #ecOid[521]="secp521r1" 27 rsal=(2048 3072 4096) 28 29 function VerifyKey() { 30 local key=$1 31 local ktype=$2 32 local klen=$3 33 local koid=$4 34 local sslcmd=rsa 35 36 test $ktype = "rsa" || sslcmd="ec" 37 openssl $sslcmd -in $key -text 2>/dev/null| 38 awk -v kt=$koid -v kl=$klen -v rc=0 ' 39 $1~/Private-Key/ {gsub(/\(/,"");l=$2} 40 $0~/ASN1 OID/ {k=$3} 41 END { 42 if (kt!=k) { print "Wrong keytype...FAILED"; rc+=1 } 43 if (kl!=l) { print "Wrong keylength...FAILED"; rc+=1 } 44 exit rc 45 }' 46 return $? 47 } 48 49 50 echo "------> Testing EC varitions" 51 ktype=ecdsa 52 for len in ${ecl[*]}; do 53 echo "------> Testing keylenth $len" 54 $SCRIPTDIR/fabric-ca_setup.sh -R 55 $SCRIPTDIR/fabric-ca_setup.sh -I -X -S -n 1 -t $ktype -l $len 56 # verify CA key type and length 57 VerifyKey $CA_KEY $ktype $len ${ecOid[$len]} || ErrorMsg "VerifyKey CA $ktype $len failed" 58 $SCRIPTDIR/enroll.sh -t $ktype -l $len -d 59 # verify EE key type and length 60 VerifyKey $EE_KEY $ktype $len ${ecOid[$len]} || ErrorMsg "VerifyKey EE $ktype $len failed" 61 62 done 63 64 ktype=rsa 65 echo "" 66 echo "**********************************************" 67 echo "" 68 echo "------> Testing RSA varitions" 69 for len in ${rsal[*]}; do 70 echo "------> Testing keylenth $len" 71 $SCRIPTDIR/fabric-ca_setup.sh -R 72 $SCRIPTDIR/fabric-ca_setup.sh -I -X -S -n 1 -t $ktype -l $len 73 # verify CA key type and length 74 VerifyKey $CA_KEY $ktype $len "" || ErrorMsg "VerifyKey CA $ktype $len failed" 75 $SCRIPTDIR/enroll.sh -t $ktype -l $len -d 76 # verify EE key type and length 77 VerifyKey $EE_KEY $ktype $len "" || ErrorMsg "VerifyKey CA $ktype $len failed" 78 echo "" 79 echo "" 80 done 81 82 echo "" 83 echo "**********************************************" 84 echo "" 85 86 CleanUp $RC 87 exit $RC