Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
Acme.Sh
Commits
542d7977
Commit
542d7977
authored
Jan 30, 2017
by
neilpang
Browse files
add new _url_encode
parent
11927a76
Changes
4
Hide whitespace changes
Inline
Side-by-side
acme.sh
View file @
542d7977
...
@@ -336,15 +336,245 @@ _h2b() {
...
@@ -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
}
}
...
...
dnsapi/dns_ali.sh
View file @
542d7977
...
@@ -67,7 +67,7 @@ _get_root() {
...
@@ -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
"
...
...
dnsapi/dns_aws.sh
View file @
542d7977
...
@@ -183,7 +183,7 @@ aws_rest() {
...
@@ -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
)
"
...
...
dnsapi/dns_me.sh
View file @
542d7977
...
@@ -124,7 +124,7 @@ _me_rest() {
...
@@ -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
"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment