Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow creation of ACME account with EAB directly from --issue command #5087

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
32 changes: 16 additions & 16 deletions acme.sh
Expand Up @@ -3664,10 +3664,10 @@ _on_issue_success() {
#account_key_length eab-kid eab-hmac-key
registeraccount() {
_account_key_length="$1"
_eab_id="$2"
_eab_kid="$2"
_eab_hmac_key="$3"
_initpath
_regAccount "$_account_key_length" "$_eab_id" "$_eab_hmac_key"
_regAccount "$_account_key_length" "$_eab_kid" "$_eab_hmac_key"
}

__calcAccountKeyHash() {
Expand Down Expand Up @@ -3697,7 +3697,7 @@ _getAccountEmail() {
_regAccount() {
_initpath
_reg_length="$1"
_eab_id="$2"
_eab_kid="$2"
_eab_hmac_key="$3"
_debug3 _regAccount "$_regAccount"
_initAPI
Expand All @@ -3714,21 +3714,21 @@ _regAccount() {
if ! _calcjwk "$ACCOUNT_KEY_PATH"; then
return 1
fi
if [ "$_eab_id" ] && [ "$_eab_hmac_key" ]; then
_savecaconf CA_EAB_KEY_ID "$_eab_id"
if [ "$_eab_kid" ] && [ "$_eab_hmac_key" ]; then
_savecaconf CA_EAB_KEY_ID "$_eab_kid"
_savecaconf CA_EAB_HMAC_KEY "$_eab_hmac_key"
fi
_eab_id=$(_readcaconf "CA_EAB_KEY_ID")
_eab_kid=$(_readcaconf "CA_EAB_KEY_ID")
_eab_hmac_key=$(_readcaconf "CA_EAB_HMAC_KEY")
_secure_debug3 _eab_id "$_eab_id"
_secure_debug3 _eab_kid "$_eab_kid"
_secure_debug3 _eab_hmac_key "$_eab_hmac_key"
_email="$(_getAccountEmail)"
if [ "$_email" ]; then
_savecaconf "CA_EMAIL" "$_email"
fi

if [ "$ACME_DIRECTORY" = "$CA_ZEROSSL" ]; then
if [ -z "$_eab_id" ] || [ -z "$_eab_hmac_key" ]; then
if [ -z "$_eab_kid" ] || [ -z "$_eab_hmac_key" ]; then
_info "No EAB credentials found for ZeroSSL, let's get one"
if [ -z "$_email" ]; then
_info "$(__green "$PROJECT_NAME is using ZeroSSL as default CA now.")"
Expand All @@ -3744,10 +3744,10 @@ _regAccount() {
return 1
fi
_secure_debug2 _eabresp "$_eabresp"
_eab_id="$(echo "$_eabresp" | tr ',}' '\n\n' | grep '"eab_kid"' | cut -d : -f 2 | tr -d '"')"
_secure_debug2 _eab_id "$_eab_id"
if [ -z "$_eab_id" ]; then
_err "Can not resolve _eab_id"
_eab_kid="$(echo "$_eabresp" | tr ',}' '\n\n' | grep '"eab_kid"' | cut -d : -f 2 | tr -d '"')"
_secure_debug2 _eab_kid "$_eab_kid"
if [ -z "$_eab_kid" ]; then
_err "Can not resolve _eab_kid"
return 1
fi
_eab_hmac_key="$(echo "$_eabresp" | tr ',}' '\n\n' | grep '"eab_hmac_key"' | cut -d : -f 2 | tr -d '"')"
Expand All @@ -3756,12 +3756,12 @@ _regAccount() {
_err "Can not resolve _eab_hmac_key"
return 1
fi
_savecaconf CA_EAB_KEY_ID "$_eab_id"
_savecaconf CA_EAB_KEY_ID "$_eab_kid"
_savecaconf CA_EAB_HMAC_KEY "$_eab_hmac_key"
fi
fi
if [ "$_eab_id" ] && [ "$_eab_hmac_key" ]; then
eab_protected="{\"alg\":\"HS256\",\"kid\":\"$_eab_id\",\"url\":\"${ACME_NEW_ACCOUNT}\"}"
if [ "$_eab_kid" ] && [ "$_eab_hmac_key" ]; then
eab_protected="{\"alg\":\"HS256\",\"kid\":\"$_eab_kid\",\"url\":\"${ACME_NEW_ACCOUNT}\"}"
_debug3 eab_protected "$eab_protected"

eab_protected64=$(printf "%s" "$eab_protected" | _base64 | _url_replace)
Expand Down Expand Up @@ -4476,7 +4476,7 @@ issue() {
_debug2 _saved_account_key_hash "$_saved_account_key_hash"

if [ -z "$ACCOUNT_URL" ] || [ -z "$_saved_account_key_hash" ] || [ "$_saved_account_key_hash" != "$(__calcAccountKeyHash)" ]; then
if ! _regAccount "$_accountkeylength"; then
if ! _regAccount "$_accountkeylength" "$_eab_kid" "$_eab_hmac_key"; then
_on_issue_err "$_post_hook"
return 1
fi
Expand Down