certsetup.sh (2235B)
1 # Generate input to certutil 2 certscript() { 3 ca=n 4 while [ $# -gt 0 ]; do 5 case $1 in 6 sign) echo 0 ;; 7 kex) echo 2 ;; 8 ca) echo 5;echo 6;ca=y ;; 9 esac; shift 10 done; 11 echo 9 12 echo n 13 echo $ca 14 echo 15 echo n 16 } 17 18 # $1: name 19 # $2: type 20 # $3+: usages: sign or kex 21 make_cert() { 22 name=$1 23 type=$2 24 25 # defaults 26 type_args=() 27 trust=',,' 28 sign=(-x) 29 sighash=(-Z SHA256) 30 31 case $type in 32 dsa) type_args=(-g 1024) ;; 33 rsa) type_args=(-g 1024) ;; 34 rsa2048) type_args=(-g 2048);type=rsa ;; 35 rsa8192) type_args=(-g 8192);type=rsa ;; 36 rsapss) type_args=(-g 1024 --pss);type=rsa ;; 37 rsapss384) type_args=(-g 1024 --pss);type=rsa;sighash=(-Z SHA384) ;; 38 rsapss512) type_args=(-g 2048 --pss);type=rsa;sighash=(-Z SHA512) ;; 39 rsapss_noparam) type_args=(-g 2048 --pss);type=rsa;sighash=() ;; 40 p256) type_args=(-q nistp256);type=ec ;; 41 p384) type_args=(-q secp384r1);type=ec ;; 42 p521) type_args=(-q secp521r1);type=ec ;; 43 rsa_ca) type_args=(-g 1024);trust='CT,CT,CT';type=rsa ;; 44 rsa_chain) type_args=(-g 1024);sign=(-c rsa_ca);type=rsa;; 45 rsapss_ca) type_args=(-g 1024 --pss);trust='CT,CT,CT';type=rsa ;; 46 rsapss_chain) type_args=(-g 1024);sign=(-c rsa_pss_ca);type=rsa;; 47 rsa_ca_rsapss_chain) type_args=(-g 1024 --pss-sign);sign=(-c rsa_ca);type=rsa;; 48 ecdh_rsa) type_args=(-q nistp256);sign=(-c rsa_ca);type=ec ;; 49 delegator_p256) 50 touch empty.txt 51 type_args=(-q nistp256 --extGeneric 1.3.6.1.4.1.44363.44:not-critical:empty.txt) 52 type=ec 53 ;; 54 delegator_rsae2048) 55 touch empty.txt 56 type_args=(-g 2048 --extGeneric 1.3.6.1.4.1.44363.44:not-critical:empty.txt) 57 type=rsa 58 ;; 59 delegator_rsa_pss2048) 60 touch empty.txt 61 type_args=(-g 2048 --pss --extGeneric 1.3.6.1.4.1.44363.44:not-critical:empty.txt) 62 type=rsa 63 ;; 64 esac 65 msg="create certificate: $@" 66 shift 2 67 counter=$(($counter + 1)) 68 cmd=(${BINDIR}/certutil -S \ 69 -z "$R_NOISE_FILE" -d "$PROFILEDIR" \ 70 -n $name -s "CN=$name" -t "$trust" "${sign[@]}" -m "$counter" \ 71 -w -2 -v 120 -k "$type" "${type_args[@]}" "${sighash[@]}" -1 -2) 72 echo "${cmd[@]}" 73 certscript $@ | "${cmd[@]}" 74 html_msg $? 0 "$msg" 75 }