Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
btwise
openssl
提交
a6a48e87
O
openssl
项目概览
btwise
/
openssl
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
openssl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a6a48e87
编写于
8月 01, 2013
作者:
B
Ben Laurie
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Make it build.
上级
36086186
变更
6
显示空白变更内容
内联
并排
Showing
6 changed file
with
61 addition
and
50 deletion
+61
-50
apps/s_client.c
apps/s_client.c
+2
-2
apps/s_server.c
apps/s_server.c
+2
-2
ssl/s3_clnt.c
ssl/s3_clnt.c
+10
-7
ssl/s3_srvr.c
ssl/s3_srvr.c
+16
-12
ssl/ssltest.c
ssl/ssltest.c
+31
-14
ssl/t1_lib.c
ssl/t1_lib.c
+0
-13
未找到文件。
apps/s_client.c
浏览文件 @
a6a48e87
...
...
@@ -2463,7 +2463,7 @@ static int authz_tlsext_generate_cb(SSL *s, unsigned short ext_type,
return
1
;
}
}
/
/no auth extension to send
/
* no auth extension to send */
return
-
1
;
}
...
...
@@ -2496,7 +2496,7 @@ static int auth_suppdata_generate_cb(SSL *s, unsigned short supp_data_type,
return
1
;
}
}
/
/no supplemental data to send
/
* no supplemental data to send */
return
-
1
;
}
...
...
apps/s_server.c
浏览文件 @
a6a48e87
...
...
@@ -3598,7 +3598,7 @@ static int authz_tlsext_generate_cb(SSL *s, unsigned short ext_type,
return
1
;
}
}
/
/no auth extension to send
/
* no auth extension to send */
return
-
1
;
}
...
...
@@ -3631,7 +3631,7 @@ static int auth_suppdata_generate_cb(SSL *s, unsigned short supp_data_type,
return
1
;
}
}
/
/no supplemental data to send
/
* no supplemental data to send */
return
-
1
;
}
#endif
...
...
ssl/s3_clnt.c
浏览文件 @
a6a48e87
...
...
@@ -3645,7 +3645,7 @@ int tls1_send_client_supplemental_data(SSL *s, int *skip)
SSLerr
(
SSL_F_TLS1_SEND_CLIENT_SUPPLEMENTAL_DATA
,
ERR_R_BUF_LIB
);
return
0
;
}
/
/if first entry, write handshake message type
/
* if first entry, write handshake message type */
if
(
length
==
0
)
{
if
(
!
BUF_MEM_grow_clean
(
s
->
init_buf
,
4
))
...
...
@@ -3655,9 +3655,12 @@ int tls1_send_client_supplemental_data(SSL *s, int *skip)
}
p
=
(
unsigned
char
*
)
s
->
init_buf
->
data
;
*
(
p
++
)
=
SSL3_MT_SUPPLEMENTAL_DATA
;
//update message length when all callbacks complete
/* update message length when all
* callbacks complete */
size_loc
=
p
;
//skip over handshake length field (3 bytes) and supp_data length field (3 bytes)
/* skip over handshake length field (3
* bytes) and supp_data length field
* (3 bytes) */
p
+=
3
+
3
;
length
+=
1
+
3
+
3
;
}
...
...
@@ -3674,9 +3677,9 @@ int tls1_send_client_supplemental_data(SSL *s, int *skip)
}
if
(
length
>
0
)
{
/
/write handshake length
/
* write handshake length */
l2n3
(
length
-
4
,
size_loc
);
/
/supp_data length
/
* supp_data length */
l2n3
(
length
-
7
,
size_loc
);
s
->
state
=
SSL3_ST_CW_SUPPLEMENTAL_DATA_B
;
s
->
init_num
=
length
;
...
...
@@ -3685,7 +3688,7 @@ int tls1_send_client_supplemental_data(SSL *s, int *skip)
}
}
/
/no supp data message sent
/
* no supp data message sent */
*
skip
=
1
;
s
->
init_num
=
0
;
s
->
init_off
=
0
;
...
...
@@ -3728,7 +3731,7 @@ int tls1_get_server_supplemental_data(SSL *s)
{
n2s
(
p
,
supp_data_entry_type
);
n2s
(
p
,
supp_data_entry_len
);
/
/if there is a callback for this supp data type, send it
/
* if there is a callback for this supp data type, send it */
for
(
i
=
0
;
i
<
s
->
ctx
->
cli_supp_data_records_count
;
i
++
)
{
if
(
s
->
ctx
->
cli_supp_data_records
[
i
].
supp_data_type
==
supp_data_entry_type
&&
s
->
ctx
->
cli_supp_data_records
[
i
].
fn1
)
...
...
ssl/s3_srvr.c
浏览文件 @
a6a48e87
...
...
@@ -3734,12 +3734,13 @@ int tls1_send_server_supplemental_data(SSL *s, int *skip)
SSLerr
(
SSL_F_TLS1_SEND_SERVER_SUPPLEMENTAL_DATA
,
ERR_R_BUF_LIB
);
return
0
;
}
/
/
write supp data entry...
//
if first entry, write handshake message type
//jump back to write length at end
/
*
write supp data entry...
*
if first entry, write handshake message type
* jump back to write length at end */
if
(
length
==
0
)
{
//1 byte message type + 3 bytes for message length
/* 1 byte message type + 3 bytes for
* message length */
if
(
!
BUF_MEM_grow_clean
(
s
->
init_buf
,
4
))
{
SSLerr
(
SSL_F_TLS1_SEND_SERVER_SUPPLEMENTAL_DATA
,
ERR_R_BUF_LIB
);
...
...
@@ -3747,13 +3748,15 @@ int tls1_send_server_supplemental_data(SSL *s, int *skip)
}
p
=
(
unsigned
char
*
)
s
->
init_buf
->
data
;
*
(
p
++
)
=
SSL3_MT_SUPPLEMENTAL_DATA
;
/
/hold on to length field to update later
/
* hold on to length field to update later */
size_loc
=
p
;
//skip over handshake length field (3 bytes) and supp_data length field (3 bytes)
/* skip over handshake length field (3
* bytes) and supp_data length field
* (3 bytes) */
p
+=
3
+
3
;
length
+=
1
+
3
+
3
;
}
/
/2 byte supp data type + 2 byte length + outlen
/
* 2 byte supp data type + 2 byte length + outlen */
if
(
!
BUF_MEM_grow
(
s
->
init_buf
,
outlen
+
4
))
{
SSLerr
(
SSL_F_TLS1_SEND_SERVER_SUPPLEMENTAL_DATA
,
ERR_R_BUF_LIB
);
...
...
@@ -3762,15 +3765,16 @@ int tls1_send_server_supplemental_data(SSL *s, int *skip)
s2n
(
record
->
supp_data_type
,
p
);
s2n
(
outlen
,
p
);
memcpy
(
p
,
out
,
outlen
);
//update length to supp data type (2 bytes) + supp data length (2 bytes) + supp data
/* update length to supp data type (2 bytes) +
* supp data length (2 bytes) + supp data */
length
+=
(
outlen
+
4
);
p
+=
outlen
;
}
if
(
length
>
0
)
{
/
/write handshake length
/
* write handshake length */
l2n3
(
length
-
4
,
size_loc
);
/
/supp_data length
/
* supp_data length */
l2n3
(
length
-
7
,
size_loc
);
s
->
state
=
SSL3_ST_SW_SUPPLEMENTAL_DATA_B
;
s
->
init_num
=
length
;
...
...
@@ -3780,7 +3784,7 @@ int tls1_send_server_supplemental_data(SSL *s, int *skip)
}
}
/
/no supp data message sent
/
* no supp data message sent */
*
skip
=
1
;
s
->
init_num
=
0
;
s
->
init_off
=
0
;
...
...
@@ -3824,7 +3828,7 @@ int tls1_get_client_supplemental_data(SSL *s)
{
n2s
(
p
,
supp_data_entry_type
);
n2s
(
p
,
supp_data_entry_len
);
/
/if there is a callback for this supp data type, send it
/
* if there is a callback for this supp data type, send it */
for
(
i
=
0
;
i
<
s
->
ctx
->
srv_supp_data_records_count
;
i
++
)
{
if
(
s
->
ctx
->
srv_supp_data_records
[
i
].
supp_data_type
==
supp_data_entry_type
&&
s
->
ctx
->
srv_supp_data_records
[
i
].
fn2
)
...
...
ssl/ssltest.c
浏览文件 @
a6a48e87
...
...
@@ -1766,20 +1766,37 @@ bad:
if
(
suppdata
)
{
//TEST CASES
//client and server both send and receive, verify additional arg passed back
SSL_CTX_set_srv_supp_data
(
s_ctx
,
CUSTOM_SUPP_DATA_TYPE_0
,
supp_data_0_srv_first_cb
,
supp_data_0_srv_second_cb
,
s_ssl
);
SSL_CTX_set_cli_supp_data
(
c_ctx
,
CUSTOM_SUPP_DATA_TYPE_0
,
supp_data_0_cli_first_cb
,
supp_data_0_cli_second_cb
,
c_ssl
);
//-1 response from sending server/client doesn't receive, -1 response from sending client/server doesn't receive
SSL_CTX_set_srv_supp_data
(
s_ctx
,
CUSTOM_SUPP_DATA_TYPE_1
,
supp_data_1_srv_first_cb
,
supp_data_1_srv_second_cb
,
NULL
);
SSL_CTX_set_cli_supp_data
(
c_ctx
,
CUSTOM_SUPP_DATA_TYPE_1
,
supp_data_1_cli_first_cb
,
supp_data_1_cli_second_cb
,
NULL
);
//null sending server/client doesn't receive, null sending client/server doesn't receive
SSL_CTX_set_srv_supp_data
(
s_ctx
,
CUSTOM_SUPP_DATA_TYPE_2
,
/*supp_data_2_srv_first_cb*/
NULL
,
supp_data_2_srv_second_cb
,
NULL
);
SSL_CTX_set_cli_supp_data
(
c_ctx
,
CUSTOM_SUPP_DATA_TYPE_2
,
supp_data_2_cli_first_cb
,
/*supp_data_2_cli_second_cb*/
NULL
,
NULL
);
//alerts set to non-zero and zero return values not tested
/* TEST CASES */
/* client and server both send and receive, verify
* additional arg passed back */
SSL_CTX_set_srv_supp_data
(
s_ctx
,
CUSTOM_SUPP_DATA_TYPE_0
,
supp_data_0_srv_first_cb
,
supp_data_0_srv_second_cb
,
s_ssl
);
SSL_CTX_set_cli_supp_data
(
c_ctx
,
CUSTOM_SUPP_DATA_TYPE_0
,
supp_data_0_cli_first_cb
,
supp_data_0_cli_second_cb
,
c_ssl
);
/* -1 response from sending server/client doesn't
* receive, -1 response from sending client/server
* doesn't receive */
SSL_CTX_set_srv_supp_data
(
s_ctx
,
CUSTOM_SUPP_DATA_TYPE_1
,
supp_data_1_srv_first_cb
,
supp_data_1_srv_second_cb
,
NULL
);
SSL_CTX_set_cli_supp_data
(
c_ctx
,
CUSTOM_SUPP_DATA_TYPE_1
,
supp_data_1_cli_first_cb
,
supp_data_1_cli_second_cb
,
NULL
);
/* null sending server/client doesn't receive, null
sending client/server doesn't receive */
SSL_CTX_set_srv_supp_data
(
s_ctx
,
CUSTOM_SUPP_DATA_TYPE_2
,
/*supp_data_2_srv_first_cb*/
NULL
,
supp_data_2_srv_second_cb
,
NULL
);
SSL_CTX_set_cli_supp_data
(
c_ctx
,
CUSTOM_SUPP_DATA_TYPE_2
,
supp_data_2_cli_first_cb
,
/*supp_data_2_cli_second_cb*/
NULL
,
NULL
);
/* alerts set to non-zero and zero return values not tested */
}
#ifndef OPENSSL_NO_KRB5
if
(
c_ssl
&&
c_ssl
->
kssl_ctx
)
...
...
ssl/t1_lib.c
浏览文件 @
a6a48e87
...
...
@@ -1086,19 +1086,6 @@ void ssl_set_client_disabled(SSL *s)
c
->
valid
=
1
;
}
/* byte_compare is a compare function for qsort(3) that compares bytes. */
static
int
byte_compare
(
const
void
*
in_a
,
const
void
*
in_b
)
{
unsigned
char
a
=
*
((
const
unsigned
char
*
)
in_a
);
unsigned
char
b
=
*
((
const
unsigned
char
*
)
in_b
);
if
(
a
>
b
)
return
1
;
else
if
(
a
<
b
)
return
-
1
;
return
0
;
}
unsigned
char
*
ssl_add_clienthello_tlsext
(
SSL
*
s
,
unsigned
char
*
p
,
unsigned
char
*
limit
)
{
int
extdatalen
=
0
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录