Browse Source

fix issue cache jwk for ecc key only

neilpang 8 years ago
parent
commit
18256c4923
1 changed files with 9 additions and 5 deletions
  1. 9 5
      acme.sh

+ 9 - 5
acme.sh

@@ -834,15 +834,18 @@ _calcjwk() {
     return 1
   fi
   
-  if [ "$JWK_HEADER" ] && [ "$__CACHED_JWK_KEY_FILE" = "$keyfile" ] ; then
-    _debug2 "Use cached jwk for file: $__CACHED_JWK_KEY_FILE"
-    return 0
-  fi
+
   
   
   EC_SIGN=""
   if grep "BEGIN RSA PRIVATE KEY" "$keyfile" > /dev/null 2>&1 ; then
     _debug "RSA key"
+    
+    if [ "$JWK_HEADER" ] && [ "$__CACHED_JWK_KEY_FILE" = "$keyfile" ] ; then
+      _debug2 "Use cached jwk for file: $__CACHED_JWK_KEY_FILE"
+      return 0
+    fi
+  
     pub_exp=$(openssl rsa -in $keyfile  -noout -text | grep "^publicExponent:"| cut -d '(' -f 2 | cut -d 'x' -f 2 | cut -d ')' -f 1)
     if [ "${#pub_exp}" = "5" ] ; then
       pub_exp=0$pub_exp
@@ -861,6 +864,7 @@ _calcjwk() {
     JWK_HEADER='{"alg": "RS256", "jwk": '$jwk'}'
     JWK_HEADERPLACE_PART1='{"nonce": "'
     JWK_HEADERPLACE_PART2='", "alg": "RS256", "jwk": '$jwk'}'
+    __CACHED_JWK_KEY_FILE="$keyfile"
   elif grep "BEGIN EC PRIVATE KEY" "$keyfile" > /dev/null 2>&1 ; then
     _debug "EC key"
     EC_SIGN="1"
@@ -908,7 +912,7 @@ _calcjwk() {
   fi
 
   _debug3 JWK_HEADER "$JWK_HEADER"
-  __CACHED_JWK_KEY_FILE="$keyfile"
+
 }
 
 _time() {