@@ -1846,6 +1846,7 @@ Please update 'openssl-easyrsa.cnf' to the latest Easy-RSA release."
18461846 || die "Failed create CA private key"
18471847 ;;
18481848 ec)
1849+ build_ecparam_file
18491850 easyrsa_openssl genpkey \
18501851 -paramfile "$EASYRSA_ALGO_PARAMS" \
18511852 -out "$out_key_tmp" \
@@ -2255,6 +2256,7 @@ $EASYRSA_EXTRA_EXTS"
22552256 case "$EASYRSA_ALGO" in
22562257 rsa|ec)
22572258 # Set elliptic curve parameters-file
2259+ build_ecparam_file
22582260 # or RSA bit-length
22592261 algo_opts="$EASYRSA_ALGO:$EASYRSA_ALGO_PARAMS"
22602262 ;;
@@ -5415,25 +5417,16 @@ Elliptic curve cryptography cannot be use with algo '$EASYRSA_ALGO'"
54155417 EASYRSA_ALGO_PARAMS="$EASYRSA_KEY_SIZE"
54165418 ;;
54175419 ec)
5418- case "$cmd" in
5419- build-ca|gen-req|build-*-full)
5420- # build ec-params file as $EASYRSA_ALGO_PARAMS
5421- build_ecparam_file
5422- ;;
5423- *)
5424- # Verify Elliptic curve
5425- "$EASYRSA_OPENSSL" ecparam \
5426- -name "$EASYRSA_CURVE" \
5427- >/dev/null 2>&1 || user_error "\
5428- Failed to generate ecparam file for curve '$EASYRSA_CURVE'"
5429- esac
5420+ # Verify Elliptic curve
5421+ "$EASYRSA_OPENSSL" ecparam -name "$EASYRSA_CURVE" \
5422+ >/dev/null 2>&1 || user_error \
5423+ "Failed to generate ecparam file for curve '$EASYRSA_CURVE'"
54305424 ;;
54315425 ed)
54325426 # Verify Edwards curve
5433- "$EASYRSA_OPENSSL" genpkey \
5434- -algorithm "$EASYRSA_CURVE" \
5435- >/dev/null 2>&1 || user_error "\
5436- Edwards Curve '$EASYRSA_CURVE' not found."
5427+ "$EASYRSA_OPENSSL" genpkey -algorithm "$EASYRSA_CURVE" \
5428+ >/dev/null 2>&1 || user_error \
5429+ "Edwards Curve '$EASYRSA_CURVE' not found."
54375430 ;;
54385431 *) user_error "\
54395432Unknown algorithm '$EASYRSA_ALGO': Must be 'rsa', 'ec' or 'ed'"
@@ -5442,16 +5435,13 @@ Unknown algorithm '$EASYRSA_ALGO': Must be 'rsa', 'ec' or 'ed'"
54425435verify_algo_params; OK: algo '$EASYRSA_ALGO' | curve '$EASYRSA_CURVE'"
54435436} # => verify_algo_params()
54445437
5445- # build ecparam file
5438+ # build ecparam file - required for EC private keys
54465439build_ecparam_file() {
54475440 # Only valid for algo ec
54485441 [ "$EASYRSA_ALGO" = ec ] || return 0
54495442
5450- # User specified algo params file exists
5451- [ "$EASYRSA_ALGO_PARAMS" ] && [ -f "$EASYRSA_ALGO_PARAMS" ] && return
5443+ unset -v EASYRSA_ALGO_PARAMS
54525444 easyrsa_mktemp EASYRSA_ALGO_PARAMS
5453-
5454- # Create the required ecparams file, temp-file
54555445 "$EASYRSA_OPENSSL" ecparam -name "$EASYRSA_CURVE" \
54565446 -out "$EASYRSA_ALGO_PARAMS" >/dev/null 2>&1 || user_error \
54575447 "Failed to generate ecparam file for curve '$EASYRSA_CURVE'"
0 commit comments