Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
M
mongoose
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
esp
mongoose
Commits
32ab35f6
Commit
32ab35f6
authored
9 years ago
by
Deomid Ryabkov
Committed by
Sergey Lyubka
9 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Rename hmac_sha1 -> cs_hmac_sha1
PUBLISHED_FROM=3d4fbd8192d04add406e304b113ce5ec0b1c1165
parent
8ab96ec7
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
19 additions
and
16 deletions
+19
-16
restful_server_s3.c
examples/restful_server_s3/restful_server_s3.c
+13
-10
mongoose.c
mongoose.c
+3
-3
mongoose.h
mongoose.h
+3
-3
No files found.
examples/restful_server_s3/restful_server_s3.c
View file @
32ab35f6
...
@@ -12,7 +12,7 @@ static struct mg_serve_http_opts s_http_server_opts;
...
@@ -12,7 +12,7 @@ static struct mg_serve_http_opts s_http_server_opts;
static
void
send_error_result
(
struct
mg_connection
*
nc
,
const
char
*
msg
)
{
static
void
send_error_result
(
struct
mg_connection
*
nc
,
const
char
*
msg
)
{
mg_printf_http_chunk
(
nc
,
"Error: %s"
,
msg
);
mg_printf_http_chunk
(
nc
,
"Error: %s"
,
msg
);
mg_send_http_chunk
(
nc
,
""
,
0
);
/* Send empty chunk, the end of response */
mg_send_http_chunk
(
nc
,
""
,
0
);
/* Send empty chunk, the end of response */
}
}
static
void
link_conns
(
struct
mg_connection
*
nc1
,
struct
mg_connection
*
nc2
)
{
static
void
link_conns
(
struct
mg_connection
*
nc1
,
struct
mg_connection
*
nc2
)
{
...
@@ -36,7 +36,7 @@ static void s3_handler(struct mg_connection *nc, int ev, void *ev_data) {
...
@@ -36,7 +36,7 @@ static void s3_handler(struct mg_connection *nc, int ev, void *ev_data) {
switch
(
ev
)
{
switch
(
ev
)
{
case
NS_HTTP_REPLY
:
case
NS_HTTP_REPLY
:
if
(
nc2
!=
NULL
)
{
if
(
nc2
!=
NULL
)
{
mg_printf_http_chunk
(
nc2
,
"Error: %.*s"
,
(
int
)
hm
->
message
.
len
,
mg_printf_http_chunk
(
nc2
,
"Error: %.*s"
,
(
int
)
hm
->
message
.
len
,
hm
->
message
.
p
);
hm
->
message
.
p
);
mg_send_http_chunk
(
nc2
,
""
,
0
);
mg_send_http_chunk
(
nc2
,
""
,
0
);
}
}
...
@@ -74,8 +74,9 @@ static void send_s3_request(struct mg_connection *nc, const char *file_name,
...
@@ -74,8 +74,9 @@ static void send_s3_request(struct mg_connection *nc, const char *file_name,
/* Prepare S3 authorization header */
/* Prepare S3 authorization header */
snprintf
(
to_sign
,
sizeof
(
to_sign
),
"%s
\n\n
%s
\n
%s
\n
/%s/%s"
,
method
,
snprintf
(
to_sign
,
sizeof
(
to_sign
),
"%s
\n\n
%s
\n
%s
\n
/%s/%s"
,
method
,
content_type
,
date
,
bucket
,
file_name
);
content_type
,
date
,
bucket
,
file_name
);
hmac_sha1
((
unsigned
char
*
)
s_secret_access_key
,
strlen
(
s_secret_access_key
),
cs_hmac_sha1
((
unsigned
char
*
)
s_secret_access_key
,
(
unsigned
char
*
)
to_sign
,
strlen
(
to_sign
),
(
unsigned
char
*
)
sha1
);
strlen
(
s_secret_access_key
),
(
unsigned
char
*
)
to_sign
,
strlen
(
to_sign
),
(
unsigned
char
*
)
sha1
);
mg_base64_encode
((
unsigned
char
*
)
sha1
,
sizeof
(
sha1
),
signature
);
mg_base64_encode
((
unsigned
char
*
)
sha1
,
sizeof
(
sha1
),
signature
);
snprintf
(
req
,
sizeof
(
req
),
snprintf
(
req
,
sizeof
(
req
),
"%s /%s HTTP/1.1
\r\n
"
"%s /%s HTTP/1.1
\r\n
"
...
@@ -86,7 +87,7 @@ static void send_s3_request(struct mg_connection *nc, const char *file_name,
...
@@ -86,7 +87,7 @@ static void send_s3_request(struct mg_connection *nc, const char *file_name,
"Authorization: AWS %s:%s
\r\n
"
"Authorization: AWS %s:%s
\r\n
"
"
\r\n
"
,
"
\r\n
"
,
method
,
file_name
,
bucket
,
host
,
date
,
content_type
,
method
,
file_name
,
bucket
,
host
,
date
,
content_type
,
(
unsigned
long
)
strlen
(
file_data
),
s_access_key_id
,
signature
);
(
unsigned
long
)
strlen
(
file_data
),
s_access_key_id
,
signature
);
mg_printf
(
s3_conn
,
"%s%s"
,
req
,
file_data
);
mg_printf
(
s3_conn
,
"%s%s"
,
req
,
file_data
);
/* S3 request sent, wait for a reply */
/* S3 request sent, wait for a reply */
}
}
...
@@ -119,9 +120,9 @@ static void ev_handler(struct mg_connection *nc, int ev, void *ev_data) {
...
@@ -119,9 +120,9 @@ static void ev_handler(struct mg_connection *nc, int ev, void *ev_data) {
switch
(
ev
)
{
switch
(
ev
)
{
case
NS_HTTP_REQUEST
:
case
NS_HTTP_REQUEST
:
if
(
mg_vcmp
(
&
hm
->
uri
,
"/upload"
)
==
0
)
{
if
(
mg_vcmp
(
&
hm
->
uri
,
"/upload"
)
==
0
)
{
handle_api_call
(
nc
,
hm
);
/* Handle RESTful call */
handle_api_call
(
nc
,
hm
);
/* Handle RESTful call */
}
else
{
}
else
{
mg_serve_http
(
nc
,
hm
,
s_http_server_opts
);
/* Serve static content */
mg_serve_http
(
nc
,
hm
,
s_http_server_opts
);
/* Serve static content */
}
}
break
;
break
;
case
NS_CLOSE
:
case
NS_CLOSE
:
...
@@ -146,7 +147,7 @@ int main(int argc, char *argv[]) {
...
@@ -146,7 +147,7 @@ int main(int argc, char *argv[]) {
/* Use current binary directory as document root */
/* Use current binary directory as document root */
if
(
argc
>
0
&&
((
cp
=
strrchr
(
argv
[
0
],
'/'
))
!=
NULL
||
if
(
argc
>
0
&&
((
cp
=
strrchr
(
argv
[
0
],
'/'
))
!=
NULL
||
(
cp
=
strrchr
(
argv
[
0
],
'/'
))
!=
NULL
))
{
(
cp
=
strrchr
(
argv
[
0
],
'/'
))
!=
NULL
))
{
*
cp
=
'\0'
;
*
cp
=
'\0'
;
s_http_server_opts
.
document_root
=
argv
[
0
];
s_http_server_opts
.
document_root
=
argv
[
0
];
}
}
...
@@ -165,8 +166,10 @@ int main(int argc, char *argv[]) {
...
@@ -165,8 +166,10 @@ int main(int argc, char *argv[]) {
}
}
if
(
s_access_key_id
==
NULL
||
s_secret_access_key
==
NULL
)
{
if
(
s_access_key_id
==
NULL
||
s_secret_access_key
==
NULL
)
{
fprintf
(
stderr
,
"Usage: %s -a access_key_id -s s_secret_access_key "
fprintf
(
stderr
,
"[-p port] [-D hexdump_file]
\n
"
,
argv
[
0
]);
"Usage: %s -a access_key_id -s s_secret_access_key "
"[-p port] [-D hexdump_file]
\n
"
,
argv
[
0
]);
exit
(
1
);
exit
(
1
);
}
}
...
...
This diff is collapsed.
Click to expand it.
mongoose.c
View file @
32ab35f6
...
@@ -415,9 +415,9 @@ void cs_sha1_final(unsigned char digest[20], cs_sha1_ctx *context) {
...
@@ -415,9 +415,9 @@ void cs_sha1_final(unsigned char digest[20], cs_sha1_ctx *context) {
memset
(
&
finalcount
,
'\0'
,
sizeof
(
finalcount
));
memset
(
&
finalcount
,
'\0'
,
sizeof
(
finalcount
));
}
}
void
hmac_sha1
(
const
unsigned
char
*
key
,
size_t
keylen
,
void
cs_
hmac_sha1
(
const
unsigned
char
*
key
,
size_t
keylen
,
const
unsigned
char
*
data
,
size_t
datalen
,
const
unsigned
char
*
data
,
size_t
datalen
,
unsigned
char
out
[
20
])
{
unsigned
char
out
[
20
])
{
cs_sha1_ctx
ctx
;
cs_sha1_ctx
ctx
;
unsigned
char
buf1
[
64
],
buf2
[
64
],
tmp_key
[
20
],
i
;
unsigned
char
buf1
[
64
],
buf2
[
64
],
tmp_key
[
20
],
i
;
...
...
This diff is collapsed.
Click to expand it.
mongoose.h
View file @
32ab35f6
...
@@ -362,9 +362,9 @@ typedef struct {
...
@@ -362,9 +362,9 @@ typedef struct {
void
cs_sha1_init
(
cs_sha1_ctx
*
);
void
cs_sha1_init
(
cs_sha1_ctx
*
);
void
cs_sha1_update
(
cs_sha1_ctx
*
,
const
unsigned
char
*
data
,
uint32_t
len
);
void
cs_sha1_update
(
cs_sha1_ctx
*
,
const
unsigned
char
*
data
,
uint32_t
len
);
void
cs_sha1_final
(
unsigned
char
digest
[
20
],
cs_sha1_ctx
*
);
void
cs_sha1_final
(
unsigned
char
digest
[
20
],
cs_sha1_ctx
*
);
void
hmac_sha1
(
const
unsigned
char
*
key
,
size_t
key_len
,
void
cs_
hmac_sha1
(
const
unsigned
char
*
key
,
size_t
key_len
,
const
unsigned
char
*
text
,
size_t
text_len
,
const
unsigned
char
*
text
,
size_t
text_len
,
unsigned
char
out
[
20
]);
unsigned
char
out
[
20
]);
#ifdef __cplusplus
#ifdef __cplusplus
}
}
#endif
/* __cplusplus */
#endif
/* __cplusplus */
...
...
This diff is collapsed.
Click to expand it.
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