Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
995101d6
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
大约 1 年 前同步成功
通知
9
Star
18
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Openssl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
995101d6
编写于
4月 29, 2015
作者:
R
Rich Salz
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add HTTP GET support to OCSP server
Reviewed-by:
N
Andy Polyakov
<
appro@openssl.org
>
上级
db4c08f0
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
51 addition
and
3 deletion
+51
-3
CHANGES
CHANGES
+3
-0
apps/ocsp.c
apps/ocsp.c
+48
-3
未找到文件。
CHANGES
浏览文件 @
995101d6
...
...
@@ -4,6 +4,9 @@
Changes between 1.0.2 and 1.1.0 [xx XXX xxxx]
*) Added HTTP GET support to the ocsp command.
[Rich Salz]
*) RAND_pseudo_bytes has been deprecated. Users should use RAND bytes instead.
*) Added support for TLS extended master secret from
...
...
apps/ocsp.c
浏览文件 @
995101d6
...
...
@@ -1043,13 +1043,32 @@ static BIO *init_responder(const char *port)
return
NULL
;
}
static
char
*
urldecode
(
char
*
p
)
{
unsigned
char
*
out
=
(
unsigned
char
*
)
p
;
char
*
save
=
p
;
for
(;
*
p
;
p
++
)
{
if
(
*
p
!=
'%'
)
*
out
++
=
*
p
;
else
if
(
p
[
1
]
&&
p
[
2
])
{
*
out
++
=
(
app_hex
(
p
[
1
])
<<
4
)
|
app_hex
(
p
[
2
]);
p
+=
2
;
}
}
*
p
=
'\0'
;
return
save
;
}
static
int
do_responder
(
OCSP_REQUEST
**
preq
,
BIO
**
pcbio
,
BIO
*
acbio
,
const
char
*
port
)
{
int
len
;
OCSP_REQUEST
*
req
=
NULL
;
char
inbuf
[
2048
];
BIO
*
cbio
=
NULL
;
char
*
p
,
*
q
;
BIO
*
cbio
=
NULL
,
*
getbio
=
NULL
,
*
b64
=
NULL
;
if
(
BIO_do_accept
(
acbio
)
<=
0
)
{
BIO_printf
(
bio_err
,
"Error accepting connection
\n
"
);
...
...
@@ -1064,7 +1083,29 @@ static int do_responder(OCSP_REQUEST **preq, BIO **pcbio, BIO *acbio,
len
=
BIO_gets
(
cbio
,
inbuf
,
sizeof
inbuf
);
if
(
len
<=
0
)
return
1
;
if
(
strncmp
(
inbuf
,
"POST"
,
4
)
!=
0
)
{
if
(
strncmp
(
inbuf
,
"GET"
,
3
)
==
0
)
{
/* Expecting GET {sp} /URL {sp} HTTP/1.x */
for
(
p
=
inbuf
+
3
;
*
p
==
' '
||
*
p
==
'\t'
;
++
p
)
continue
;
if
(
*
p
)
{
/* Move past the slash before the URL part. */
p
++
;
}
/* Splice off the HTTP version identifier. */
for
(
q
=
p
;
*
q
;
q
++
)
if
(
*
q
==
' '
||
*
q
==
'\t'
)
break
;
if
(
*
q
==
'\0'
)
{
BIO_printf
(
bio_err
,
"Invalid request
\n
"
);
return
1
;
}
*
q
=
'\0'
;
p
=
urldecode
(
p
);
getbio
=
BIO_new_mem_buf
(
p
,
strlen
(
p
));
b64
=
BIO_new
(
BIO_f_base64
());
BIO_set_flags
(
b64
,
BIO_FLAGS_BASE64_NO_NL
);
getbio
=
BIO_push
(
b64
,
getbio
);
}
else
if
(
strncmp
(
inbuf
,
"POST"
,
4
)
!=
0
)
{
BIO_printf
(
bio_err
,
"Invalid request
\n
"
);
return
1
;
}
...
...
@@ -1078,6 +1119,10 @@ static int do_responder(OCSP_REQUEST **preq, BIO **pcbio, BIO *acbio,
}
/* Try to read OCSP request */
if
(
getbio
)
{
req
=
d2i_OCSP_REQUEST_bio
(
getbio
,
NULL
);
BIO_free_all
(
getbio
);
}
else
req
=
d2i_OCSP_REQUEST_bio
(
cbio
,
NULL
);
if
(
!
req
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录