Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
7568d15a
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,发现更多精彩内容 >>
提交
7568d15a
编写于
1月 26, 2012
作者:
D
Dr. Stephen Henson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
allow key agreement for SSL/TLS certificates
上级
08e4ea48
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
9 addition
and
4 deletion
+9
-4
crypto/x509v3/v3_purp.c
crypto/x509v3/v3_purp.c
+9
-4
未找到文件。
crypto/x509v3/v3_purp.c
浏览文件 @
7568d15a
...
@@ -562,12 +562,18 @@ static int check_purpose_ssl_client(const X509_PURPOSE *xp, const X509 *x, int c
...
@@ -562,12 +562,18 @@ static int check_purpose_ssl_client(const X509_PURPOSE *xp, const X509 *x, int c
{
{
if
(
xku_reject
(
x
,
XKU_SSL_CLIENT
))
return
0
;
if
(
xku_reject
(
x
,
XKU_SSL_CLIENT
))
return
0
;
if
(
ca
)
return
check_ssl_ca
(
x
);
if
(
ca
)
return
check_ssl_ca
(
x
);
/* We need to do digital signatures
with i
t */
/* We need to do digital signatures
or key agreemen
t */
if
(
ku_reject
(
x
,
KU_DIGITAL_SIGNATURE
))
return
0
;
if
(
ku_reject
(
x
,
KU_DIGITAL_SIGNATURE
|
KU_KEY_AGREEMENT
))
return
0
;
/* nsCertType if present should allow SSL client use */
/* nsCertType if present should allow SSL client use */
if
(
ns_reject
(
x
,
NS_SSL_CLIENT
))
return
0
;
if
(
ns_reject
(
x
,
NS_SSL_CLIENT
))
return
0
;
return
1
;
return
1
;
}
}
/* Key usage needed for TLS/SSL server: digital signature, encipherment or
* key agreement. The ssl code can check this more thoroughly for individual
* key types.
*/
#define KU_TLS \
KU_DIGITAL_SIGNATURE|KU_KEY_ENCIPHERMENT|KU_KEY_AGREEMENT
static
int
check_purpose_ssl_server
(
const
X509_PURPOSE
*
xp
,
const
X509
*
x
,
int
ca
)
static
int
check_purpose_ssl_server
(
const
X509_PURPOSE
*
xp
,
const
X509
*
x
,
int
ca
)
{
{
...
@@ -575,8 +581,7 @@ static int check_purpose_ssl_server(const X509_PURPOSE *xp, const X509 *x, int c
...
@@ -575,8 +581,7 @@ static int check_purpose_ssl_server(const X509_PURPOSE *xp, const X509 *x, int c
if
(
ca
)
return
check_ssl_ca
(
x
);
if
(
ca
)
return
check_ssl_ca
(
x
);
if
(
ns_reject
(
x
,
NS_SSL_SERVER
))
return
0
;
if
(
ns_reject
(
x
,
NS_SSL_SERVER
))
return
0
;
/* Now as for keyUsage: we'll at least need to sign OR encipher */
if
(
ku_reject
(
x
,
KU_TLS
))
return
0
;
if
(
ku_reject
(
x
,
KU_DIGITAL_SIGNATURE
|
KU_KEY_ENCIPHERMENT
))
return
0
;
return
1
;
return
1
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录