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
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
#hex string
|
_is_solaris() {
|
||||||
_hex() {
|
_contains "${__OS__:=$(uname -a)}" "solaris" || _contains "${__OS__:=$(uname -a)}" "SunOS"
|
||||||
_str="$1"
|
}
|
||||||
_str_len=${#_str}
|
|
||||||
_h_i=1
|
#stdin output hexstr splited by one space
|
||||||
while [ "$_h_i" -le "$_str_len" ]; do
|
#input:"abc"
|
||||||
_str_c="$(printf "%s" "$_str" | cut -c "$_h_i")"
|
#output: " 61 62 63"
|
||||||
printf "%02x" "'$_str_c"
|
_hex_dump() {
|
||||||
_h_i="$(_math "$_h_i" + 1)"
|
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
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ _get_root() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_ali_rest() {
|
_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")
|
signature=$(_ali_urlencode "$signature")
|
||||||
url="$Ali_API?$query&Signature=$signature"
|
url="$Ali_API?$query&Signature=$signature"
|
||||||
|
|
||||||
|
@ -183,7 +183,7 @@ aws_rest() {
|
|||||||
|
|
||||||
_debug2 kSecret "$kSecret"
|
_debug2 kSecret "$kSecret"
|
||||||
|
|
||||||
kSecretH="$(_hex "$kSecret")"
|
kSecretH="$(printf "%s" "$kSecret" | _hex_dump | sed "s/ //g")"
|
||||||
_debug2 kSecretH "$kSecretH"
|
_debug2 kSecretH "$kSecretH"
|
||||||
|
|
||||||
kDateH="$(printf "$RequestDateOnly%s" | _hmac "$Hash" "$kSecretH" hex)"
|
kDateH="$(printf "$RequestDateOnly%s" | _hmac "$Hash" "$kSecretH" hex)"
|
||||||
|
@ -124,7 +124,7 @@ _me_rest() {
|
|||||||
_debug "$ep"
|
_debug "$ep"
|
||||||
|
|
||||||
cdate=$(date -u +"%a, %d %b %Y %T %Z")
|
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 _H1="x-dnsme-apiKey: $ME_Key"
|
||||||
export _H2="x-dnsme-requestDate: $cdate"
|
export _H2="x-dnsme-requestDate: $cdate"
|
||||||
|
Loading…
Reference in New Issue
Block a user