acme: standardize key_type 21079/head
authorGlen Huang <me@glenhuang.com>
Wed, 17 May 2023 09:53:51 +0000 (17:53 +0800)
committerGlen Huang <me@glenhuang.com>
Thu, 18 May 2023 04:48:47 +0000 (12:48 +0800)
keylength, being an acme.sh value type, uses pure numbers for rsa keys.
This can be disorienting for other acme clients. This change introduces
a new option "key_type" that aims to remove this ambiguity, and makes
all key type names follow the same pattern, making acme-common more
client agnostic.

Signed-off-by: Glen Huang <me@glenhuang.com>
net/acme-acmesh/files/hook.sh
net/acme-common/files/acme.init

index 1e784edc383b9142075bfad40f2c02c851736e98..477003e3f831361f402d1922f83d5f6ecad8e970 100644 (file)
@@ -44,12 +44,14 @@ get)
        set --
        [ "$debug" = 1 ] && set -- "$@" --debug
 
-       case $keylength in
-       ec-*)
+       case $key_type in
+       ec*)
+               keylength=${key_type/ec/ec-}
                domain_dir="$state_dir/${main_domain}_ecc"
                set -- "$@" --ecc
                ;;
-       *)
+       rsa*)
+               keylength=${key_type#rsa}
                domain_dir="$state_dir/$main_domain"
                ;;
        esac
index a365ecd3e69b74d4c082fb644cc029bd4474d728..d4ff510630db16dc525d334883c9327a2a5dc133 100644 (file)
@@ -39,8 +39,17 @@ load_options() {
        export domains
        export main_domain
        main_domain="$(first_arg $domains)"
-       config_get keylength "$section" keylength ec-256
-       export keylength
+       config_get keylength "$section" keylength
+       if [ "$keylength" ]; then
+               log warn "Option \"keylength\" is deprecated, please use key_type (e.g., ec256, rsa2048) instead."
+               case $keylength in
+               ec-*) key_type=${keylength/-/} ;;
+               *) key_type=rsa$keylength ;;
+               esac
+       else
+               config_get key_type "$section" key_type ec256
+       fi
+       export key_type
        config_get dns "$section" dns
        export dns
        config_get acme_server "$section" acme_server
@@ -51,7 +60,6 @@ load_options() {
        export standalone
        config_get dns_wait "$section" dns_wait
        export dns_wait
-
        config_get webroot "$section" webroot
        if [ "$webroot" ]; then
                log warn "Option \"webroot\" is deprecated, please remove it and change your web server's config so it serves ACME challenge requests from $CHALLENGE_DIR."