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