Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
860c3dd1
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
1 年多 前同步成功
通知
10
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看板
提交
860c3dd1
编写于
11月 11, 2009
作者:
D
Dr. Stephen Henson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add missing parts of reneg port, fix apps patch
上级
2942dde5
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
107 addition
and
5 deletion
+107
-5
apps/s_cb.c
apps/s_cb.c
+4
-3
ssl/t1_lib.c
ssl/t1_lib.c
+100
-2
ssl/tls1.h
ssl/tls1.h
+3
-0
未找到文件。
apps/s_cb.c
浏览文件 @
860c3dd1
...
@@ -338,9 +338,6 @@ void MS_CALLBACK apps_ssl_info_callback(const SSL *s, int where, int ret)
...
@@ -338,9 +338,6 @@ void MS_CALLBACK apps_ssl_info_callback(const SSL *s, int where, int ret)
}
}
}
}
case
TLSEXT_TYPE_renegotiate
:
extname
=
"renegotiate"
;
break
;
void
MS_CALLBACK
msg_cb
(
int
write_p
,
int
version
,
int
content_type
,
const
void
*
buf
,
size_t
len
,
SSL
*
ssl
,
void
*
arg
)
void
MS_CALLBACK
msg_cb
(
int
write_p
,
int
version
,
int
content_type
,
const
void
*
buf
,
size_t
len
,
SSL
*
ssl
,
void
*
arg
)
{
{
...
@@ -672,6 +669,10 @@ void MS_CALLBACK tlsext_cb(SSL *s, int client_server, int type,
...
@@ -672,6 +669,10 @@ void MS_CALLBACK tlsext_cb(SSL *s, int client_server, int type,
extname
=
"server ticket"
;
extname
=
"server ticket"
;
break
;
break
;
case
TLSEXT_TYPE_renegotiate
:
extname
=
"renegotiate"
;
break
;
#ifdef TLSEXT_TYPE_opaque_prf_input
#ifdef TLSEXT_TYPE_opaque_prf_input
case
TLSEXT_TYPE_opaque_prf_input
:
case
TLSEXT_TYPE_opaque_prf_input
:
extname
=
"opaque PRF input"
;
extname
=
"opaque PRF input"
;
...
...
ssl/t1_lib.c
浏览文件 @
860c3dd1
...
@@ -315,6 +315,30 @@ unsigned char *ssl_add_clienthello_tlsext(SSL *s, unsigned char *p, unsigned cha
...
@@ -315,6 +315,30 @@ unsigned char *ssl_add_clienthello_tlsext(SSL *s, unsigned char *p, unsigned cha
ret
+=
size_str
;
ret
+=
size_str
;
}
}
/* Add the renegotiation option: TODOEKR switch */
{
int
el
;
if
(
!
ssl_add_clienthello_renegotiate_ext
(
s
,
0
,
&
el
,
0
))
{
SSLerr
(
SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT
,
ERR_R_INTERNAL_ERROR
);
return
NULL
;
}
if
((
limit
-
p
-
4
-
el
)
<
0
)
return
NULL
;
s2n
(
TLSEXT_TYPE_renegotiate
,
ret
);
s2n
(
el
,
ret
);
if
(
!
ssl_add_clienthello_renegotiate_ext
(
s
,
ret
,
&
el
,
el
))
{
SSLerr
(
SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT
,
ERR_R_INTERNAL_ERROR
);
return
NULL
;
}
ret
+=
el
;
}
#ifndef OPENSSL_NO_EC
#ifndef OPENSSL_NO_EC
if
(
s
->
tlsext_ecpointformatlist
!=
NULL
)
if
(
s
->
tlsext_ecpointformatlist
!=
NULL
)
{
{
...
@@ -490,6 +514,31 @@ unsigned char *ssl_add_serverhello_tlsext(SSL *s, unsigned char *p, unsigned cha
...
@@ -490,6 +514,31 @@ unsigned char *ssl_add_serverhello_tlsext(SSL *s, unsigned char *p, unsigned cha
s2n
(
TLSEXT_TYPE_server_name
,
ret
);
s2n
(
TLSEXT_TYPE_server_name
,
ret
);
s2n
(
0
,
ret
);
s2n
(
0
,
ret
);
}
}
if
(
s
->
s3
->
send_connection_binding
)
{
int
el
;
if
(
!
ssl_add_serverhello_renegotiate_ext
(
s
,
0
,
&
el
,
0
))
{
SSLerr
(
SSL_F_SSL_ADD_SERVERHELLO_TLSEXT
,
ERR_R_INTERNAL_ERROR
);
return
NULL
;
}
if
((
limit
-
p
-
4
-
el
)
<
0
)
return
NULL
;
s2n
(
TLSEXT_TYPE_renegotiate
,
ret
);
s2n
(
el
,
ret
);
if
(
!
ssl_add_serverhello_renegotiate_ext
(
s
,
ret
,
&
el
,
el
))
{
SSLerr
(
SSL_F_SSL_ADD_SERVERHELLO_TLSEXT
,
ERR_R_INTERNAL_ERROR
);
return
NULL
;
}
ret
+=
el
;
}
#ifndef OPENSSL_NO_EC
#ifndef OPENSSL_NO_EC
if
(
s
->
tlsext_ecpointformatlist
!=
NULL
)
if
(
s
->
tlsext_ecpointformatlist
!=
NULL
)
{
{
...
@@ -574,11 +623,23 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in
...
@@ -574,11 +623,23 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in
unsigned
short
size
;
unsigned
short
size
;
unsigned
short
len
;
unsigned
short
len
;
unsigned
char
*
data
=
*
p
;
unsigned
char
*
data
=
*
p
;
int
renegotiate_seen
=
0
;
s
->
servername_done
=
0
;
s
->
servername_done
=
0
;
s
->
tlsext_status_type
=
-
1
;
s
->
tlsext_status_type
=
-
1
;
s
->
s3
->
send_connection_binding
=
0
;
if
(
data
>=
(
d
+
n
-
2
))
if
(
data
>=
(
d
+
n
-
2
))
{
if
(
s
->
new_session
&&
!
(
s
->
ctx
->
options
&
SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION
))
{
/* We should always see one extension: the renegotiate extension */
*
al
=
SSL_AD_ILLEGAL_PARAMETER
;
/* is this the right alert? */
return
0
;
}
return
1
;
return
1
;
}
n2s
(
data
,
len
);
n2s
(
data
,
len
);
if
(
data
>
(
d
+
n
-
len
))
if
(
data
>
(
d
+
n
-
len
))
...
@@ -790,6 +851,12 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in
...
@@ -790,6 +851,12 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in
return
0
;
return
0
;
}
}
}
}
else
if
(
type
==
TLSEXT_TYPE_renegotiate
)
{
if
(
!
ssl_parse_clienthello_renegotiate_ext
(
s
,
data
,
size
,
al
))
return
0
;
renegotiate_seen
=
1
;
}
else
if
(
type
==
TLSEXT_TYPE_status_request
else
if
(
type
==
TLSEXT_TYPE_status_request
&&
s
->
ctx
->
tlsext_status_cb
)
&&
s
->
ctx
->
tlsext_status_cb
)
{
{
...
@@ -894,6 +961,14 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in
...
@@ -894,6 +961,14 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in
/* session ticket processed earlier */
/* session ticket processed earlier */
data
+=
size
;
data
+=
size
;
}
}
if
(
s
->
new_session
&&
!
renegotiate_seen
&&
!
(
s
->
ctx
->
options
&
SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION
))
{
*
al
=
SSL_AD_ILLEGAL_PARAMETER
;
/* is this the right alert? */
return
0
;
}
*
p
=
data
;
*
p
=
data
;
return
1
;
return
1
;
...
@@ -905,11 +980,22 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in
...
@@ -905,11 +980,22 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in
unsigned
short
size
;
unsigned
short
size
;
unsigned
short
len
;
unsigned
short
len
;
unsigned
char
*
data
=
*
p
;
unsigned
char
*
data
=
*
p
;
int
tlsext_servername
=
0
;
int
tlsext_servername
=
0
;
int
renegotiate_seen
=
0
;
if
(
data
>=
(
d
+
n
-
2
))
if
(
data
>=
(
d
+
n
-
2
))
{
/* Because the client does not see any renegotiation during an
attack, we must enforce this on all server hellos, even the
first */
if
(
!
(
s
->
ctx
->
options
&
SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION
))
{
/* We should always see one extension: the renegotiate extension */
*
al
=
SSL_AD_ILLEGAL_PARAMETER
;
/* is this the right alert? */
return
0
;
}
return
1
;
return
1
;
}
n2s
(
data
,
len
);
n2s
(
data
,
len
);
...
@@ -1025,7 +1111,12 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in
...
@@ -1025,7 +1111,12 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in
/* Set flag to expect CertificateStatus message */
/* Set flag to expect CertificateStatus message */
s
->
tlsext_status_expected
=
1
;
s
->
tlsext_status_expected
=
1
;
}
}
else
if
(
type
==
TLSEXT_TYPE_renegotiate
)
{
if
(
!
ssl_parse_serverhello_renegotiate_ext
(
s
,
data
,
size
,
al
))
return
0
;
renegotiate_seen
=
1
;
}
data
+=
size
;
data
+=
size
;
}
}
...
@@ -1035,6 +1126,13 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in
...
@@ -1035,6 +1126,13 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in
return
0
;
return
0
;
}
}
if
(
!
renegotiate_seen
&&
!
(
s
->
ctx
->
options
&
SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION
))
{
*
al
=
SSL_AD_ILLEGAL_PARAMETER
;
/* is this the right alert? */
return
0
;
}
if
(
!
s
->
hit
&&
tlsext_servername
==
1
)
if
(
!
s
->
hit
&&
tlsext_servername
==
1
)
{
{
if
(
s
->
tlsext_hostname
)
if
(
s
->
tlsext_hostname
)
...
...
ssl/tls1.h
浏览文件 @
860c3dd1
...
@@ -201,6 +201,9 @@ extern "C" {
...
@@ -201,6 +201,9 @@ extern "C" {
# define TLSEXT_TYPE_opaque_prf_input ?? */
# define TLSEXT_TYPE_opaque_prf_input ?? */
#endif
#endif
/* Temporary extension type */
#define TLSEXT_TYPE_renegotiate 0xff01
/* NameType value from RFC 3546 */
/* NameType value from RFC 3546 */
#define TLSEXT_NAMETYPE_host_name 0
#define TLSEXT_NAMETYPE_host_name 0
/* status request value from RFC 3546 */
/* status request value from RFC 3546 */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录