mirror of
				https://github.com/hiskang/acme.sh
				synced 2025-10-31 10:27:22 +00:00 
			
		
		
		
	add new _url_encode
This commit is contained in:
		
							parent
							
								
									11927a768e
								
							
						
					
					
						commit
						542d7977db
					
				
							
								
								
									
										248
									
								
								acme.sh
									
									
									
									
									
								
							
							
						
						
									
										248
									
								
								acme.sh
									
									
									
									
									
								
							| @ -336,15 +336,245 @@ _h2b() { | ||||
|   done | ||||
| } | ||||
| 
 | ||||
| #hex string | ||||
| _hex() { | ||||
|   _str="$1" | ||||
|   _str_len=${#_str} | ||||
|   _h_i=1 | ||||
|   while [ "$_h_i" -le "$_str_len" ]; do | ||||
|     _str_c="$(printf "%s" "$_str" | cut -c "$_h_i")" | ||||
|     printf "%02x" "'$_str_c" | ||||
|     _h_i="$(_math "$_h_i" + 1)" | ||||
| _is_solaris() { | ||||
|   _contains "${__OS__:=$(uname -a)}" "solaris" || _contains "${__OS__:=$(uname -a)}" "SunOS" | ||||
| } | ||||
| 
 | ||||
| #stdin  output hexstr splited by one space | ||||
| #input:"abc" | ||||
| #output: " 61 62 63" | ||||
| _hex_dump() { | ||||
|   if _is_solaris; then | ||||
|     od -A n -v -t x1 | tr -d "\r\n\t" | tr -s " " | tr -d "\n" | ||||
|   else | ||||
|     od -A n -v -t x1 | tr -d "\r\n\t" | tr -s " " | sed "s/ $//" | tr -d "\n" | ||||
|   fi | ||||
| } | ||||
| 
 | ||||
| #url encode, no-preserved chars | ||||
| #A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z | ||||
| #41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a | ||||
| 
 | ||||
| #a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x  y  z | ||||
| #61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a | ||||
| 
 | ||||
| #0  1  2  3  4  5  6  7  8  9  -  _  .  ~ | ||||
| #30 31 32 33 34 35 36 37 38 39 2d 5f 2e 7e | ||||
| 
 | ||||
| #stdin stdout | ||||
| _url_encode() { | ||||
|   _hex_str=$(_hex_dump) | ||||
|   _debug3 "_url_encode" | ||||
|   _debug3 "_hex_str" "$_hex_str" | ||||
|   for _hex_code in $_hex_str; do | ||||
|     #upper case | ||||
|     case "${_hex_code}" in | ||||
|       "41" ) | ||||
|       printf "%s" "A" | ||||
|       ;; | ||||
|       "42" ) | ||||
|       printf "%s" "B" | ||||
|       ;; | ||||
|       "43" ) | ||||
|       printf "%s" "C" | ||||
|       ;; | ||||
|       "44" ) | ||||
|       printf "%s" "D" | ||||
|       ;; | ||||
|       "45" ) | ||||
|       printf "%s" "E" | ||||
|       ;; | ||||
|       "46" ) | ||||
|       printf "%s" "F" | ||||
|       ;; | ||||
|       "47" ) | ||||
|       printf "%s" "G" | ||||
|       ;; | ||||
|       "48" ) | ||||
|       printf "%s" "H" | ||||
|       ;; | ||||
|       "49" ) | ||||
|       printf "%s" "I" | ||||
|       ;; | ||||
|       "4a" ) | ||||
|       printf "%s" "J" | ||||
|       ;; | ||||
|       "4b" ) | ||||
|       printf "%s" "K" | ||||
|       ;; | ||||
|       "4c" ) | ||||
|       printf "%s" "L" | ||||
|       ;; | ||||
|       "4d" ) | ||||
|       printf "%s" "M" | ||||
|       ;; | ||||
|       "4e" ) | ||||
|       printf "%s" "N" | ||||
|       ;; | ||||
|       "4f" ) | ||||
|       printf "%s" "O" | ||||
|       ;; | ||||
|       "50" ) | ||||
|       printf "%s" "P" | ||||
|       ;; | ||||
|       "51" ) | ||||
|       printf "%s" "Q" | ||||
|       ;; | ||||
|       "52" ) | ||||
|       printf "%s" "R" | ||||
|       ;; | ||||
|       "53" ) | ||||
|       printf "%s" "S" | ||||
|       ;; | ||||
|       "54" ) | ||||
|       printf "%s" "T" | ||||
|       ;; | ||||
|       "55" ) | ||||
|       printf "%s" "U" | ||||
|       ;; | ||||
|       "56" ) | ||||
|       printf "%s" "V" | ||||
|       ;; | ||||
|       "57" ) | ||||
|       printf "%s" "W" | ||||
|       ;; | ||||
|       "58" ) | ||||
|       printf "%s" "X" | ||||
|       ;; | ||||
|       "59" ) | ||||
|       printf "%s" "Y" | ||||
|       ;; | ||||
|       "5a" ) | ||||
|       printf "%s" "Z" | ||||
|       ;; | ||||
| 
 | ||||
|     #lower case | ||||
|       "61" ) | ||||
|       printf "%s" "a" | ||||
|       ;; | ||||
|       "62" ) | ||||
|       printf "%s" "b" | ||||
|       ;; | ||||
|       "63" ) | ||||
|       printf "%s" "c" | ||||
|       ;; | ||||
|       "64" ) | ||||
|       printf "%s" "d" | ||||
|       ;; | ||||
|       "65" ) | ||||
|       printf "%s" "e" | ||||
|       ;; | ||||
|       "66" ) | ||||
|       printf "%s" "f" | ||||
|       ;; | ||||
|       "67" ) | ||||
|       printf "%s" "g" | ||||
|       ;; | ||||
|       "68" ) | ||||
|       printf "%s" "h" | ||||
|       ;; | ||||
|       "69" ) | ||||
|       printf "%s" "i" | ||||
|       ;; | ||||
|       "6a" ) | ||||
|       printf "%s" "j" | ||||
|       ;; | ||||
|       "6b" ) | ||||
|       printf "%s" "k" | ||||
|       ;; | ||||
|       "6c" ) | ||||
|       printf "%s" "l" | ||||
|       ;; | ||||
|       "6d" ) | ||||
|       printf "%s" "m" | ||||
|       ;; | ||||
|       "6e" ) | ||||
|       printf "%s" "n" | ||||
|       ;; | ||||
|       "6f" ) | ||||
|       printf "%s" "o" | ||||
|       ;; | ||||
|       "70" ) | ||||
|       printf "%s" "p" | ||||
|       ;; | ||||
|       "71" ) | ||||
|       printf "%s" "q" | ||||
|       ;; | ||||
|       "72" ) | ||||
|       printf "%s" "r" | ||||
|       ;; | ||||
|       "73" ) | ||||
|       printf "%s" "s" | ||||
|       ;; | ||||
|       "74" ) | ||||
|       printf "%s" "t" | ||||
|       ;; | ||||
|       "75" ) | ||||
|       printf "%s" "u" | ||||
|       ;; | ||||
|       "76" ) | ||||
|       printf "%s" "v" | ||||
|       ;; | ||||
|       "77" ) | ||||
|       printf "%s" "w" | ||||
|       ;; | ||||
|       "78" ) | ||||
|       printf "%s" "x" | ||||
|       ;; | ||||
|       "79" ) | ||||
|       printf "%s" "y" | ||||
|       ;; | ||||
|       "7a" ) | ||||
|       printf "%s" "z" | ||||
|       ;; | ||||
|     #numbers | ||||
|       "30" ) | ||||
|       printf "%s" "0" | ||||
|       ;; | ||||
|       "31" ) | ||||
|       printf "%s" "1" | ||||
|       ;; | ||||
|       "32" ) | ||||
|       printf "%s" "2" | ||||
|       ;; | ||||
|       "33" ) | ||||
|       printf "%s" "3" | ||||
|       ;; | ||||
|       "34" ) | ||||
|       printf "%s" "4" | ||||
|       ;; | ||||
|       "35" ) | ||||
|       printf "%s" "5" | ||||
|       ;; | ||||
|       "36" ) | ||||
|       printf "%s" "6" | ||||
|       ;; | ||||
|       "37" ) | ||||
|       printf "%s" "7" | ||||
|       ;; | ||||
|       "38" ) | ||||
|       printf "%s" "8" | ||||
|       ;; | ||||
|       "39" ) | ||||
|       printf "%s" "9" | ||||
|       ;; | ||||
|       "2d" ) | ||||
|       printf "%s" "-" | ||||
|       ;; | ||||
|       "5f" ) | ||||
|       printf "%s" "_" | ||||
|       ;; | ||||
|       "2e" ) | ||||
|       printf "%s" "." | ||||
|       ;; | ||||
|       "7e" ) | ||||
|       printf "%s" "~" | ||||
|       ;; | ||||
|     #other hex   | ||||
|       *) | ||||
|       printf '%%%s' "$_hex_code" | ||||
|       ;; | ||||
|     esac | ||||
|   done | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -67,7 +67,7 @@ _get_root() { | ||||
| } | ||||
| 
 | ||||
| _ali_rest() { | ||||
|   signature=$(printf "%s" "GET&%2F&$(_ali_urlencode "$query")" | _hmac "sha1" "$(_hex "$Ali_Secret&")" | _base64) | ||||
|   signature=$(printf "%s" "GET&%2F&$(_ali_urlencode "$query")" | _hmac "sha1" "$(printf "%s" "$Ali_Secret&" | _hex_dump | sed "s/ //g")" | _base64) | ||||
|   signature=$(_ali_urlencode "$signature") | ||||
|   url="$Ali_API?$query&Signature=$signature" | ||||
| 
 | ||||
|  | ||||
| @ -183,7 +183,7 @@ aws_rest() { | ||||
| 
 | ||||
|   _debug2 kSecret "$kSecret" | ||||
| 
 | ||||
|   kSecretH="$(_hex "$kSecret")" | ||||
|   kSecretH="$(printf "%s" "$kSecret" | _hex_dump | sed "s/ //g")" | ||||
|   _debug2 kSecretH "$kSecretH" | ||||
| 
 | ||||
|   kDateH="$(printf "$RequestDateOnly%s" | _hmac "$Hash" "$kSecretH" hex)" | ||||
|  | ||||
| @ -124,7 +124,7 @@ _me_rest() { | ||||
|   _debug "$ep" | ||||
| 
 | ||||
|   cdate=$(date -u +"%a, %d %b %Y %T %Z") | ||||
|   hmac=$(printf "%s" "$cdate" | _hmac sha1 "$(_hex "$ME_Secret")" hex) | ||||
|   hmac=$(printf "%s" "$cdate" | _hmac sha1 "$(printf "%s" "$ME_Secret" | _hex_dump | sed "s/ //g")" hex) | ||||
| 
 | ||||
|   export _H1="x-dnsme-apiKey: $ME_Key" | ||||
|   export _H2="x-dnsme-requestDate: $cdate" | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user