Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
7f6d90ac
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看板
提交
7f6d90ac
编写于
9月 15, 2015
作者:
E
Emilia Kasper
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Empty session ticket: add a test
Reviewed-by:
N
Matt Caswell
<
matt@openssl.org
>
上级
e711da71
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
158 addition
and
2 deletion
+158
-2
test/recipes/70-test_sslsessiontick.t
test/recipes/70-test_sslsessiontick.t
+23
-2
util/TLSProxy/Message.pm
util/TLSProxy/Message.pm
+9
-0
util/TLSProxy/NewSessionTicket.pm
util/TLSProxy/NewSessionTicket.pm
+125
-0
util/TLSProxy/Proxy.pm
util/TLSProxy/Proxy.pm
+1
-0
未找到文件。
test/recipes/70-test_sslsessiontick.t
浏览文件 @
7f6d90ac
...
...
@@ -82,7 +82,7 @@ my $proxy = TLSProxy::Proxy->new(
top_file
("
apps
",
"
server.pem
")
);
plan
tests
=>
5
;
plan
tests
=>
6
;
#Test 1: By default with no existing session we should get a session ticket
#Expected result: ClientHello extension seen; ServerHello extension seen
...
...
@@ -135,6 +135,27 @@ $proxy->clientstart();
checkmessages
(
5
,
"
Session resumption with ticket capable client without a
"
.
"
ticket
",
1
,
1
,
1
,
0
);
#Test 6: Client accepts empty ticket.
#Expected result: ClientHello extension seen; ServerHello extension seen;
# NewSessionTicket message seen; Full handshake.
clearall
();
$proxy
->
filter
(
\
&ticket_filter
);
$proxy
->
start
();
checkmessages
(
6
,
"
Empty ticket test
",
1
,
1
,
1
,
1
);
sub
ticket_filter
{
my
$proxy
=
shift
;
foreach
my
$message
(
@
{
$proxy
->
message_list
})
{
if
(
$message
->
mt
==
TLSProxy::Message::
MT_NEW_SESSION_TICKET
)
{
$message
->
ticket
("");
$message
->
repack
();
}
}
}
sub
checkmessages
($$$$$$)
{
my
(
$testno
,
$testname
,
$testch
,
$testsh
,
$testtickseen
,
$testhand
)
=
@_
;
...
...
@@ -164,7 +185,7 @@ sub checkmessages($$$$$$)
plan
tests
=>
5
;
ok
(
TLSProxy::
Message
->
success
,
"
Hanshake
");
ok
(
TLSProxy::
Message
->
success
,
"
Han
d
shake
");
ok
((
$testch
&&
$chellotickext
)
||
(
!
$testch
&&
!
$chellotickext
),
"
ClientHello extension Session Ticket check
");
ok
((
$testsh
&&
$shellotickext
)
||
(
!
$testsh
&&
!
$shellotickext
),
...
...
util/TLSProxy/Message.pm
浏览文件 @
7f6d90ac
...
...
@@ -282,6 +282,15 @@ sub create_message
[
@message_frag_lens
]
);
$message
->
parse
();
}
elsif
(
$mt
==
MT_NEW_SESSION_TICKET
)
{
$message
=
TLSProxy::
NewSessionTicket
->
new
(
$server
,
$data
,
[
@message_rec_list
],
$startoffset
,
[
@message_frag_lens
]
);
$message
->
parse
();
}
else
{
#Unknown message type
$message
=
TLSProxy::
Message
->
new
(
...
...
util/TLSProxy/NewSessionTicket.pm
0 → 100644
浏览文件 @
7f6d90ac
# ====================================================================
# Copyright (c) 1998-2015 The OpenSSL Project. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
#
# 3. All advertising materials mentioning features or use of this
# software must display the following acknowledgment:
# "This product includes software developed by the OpenSSL Project
# for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
#
# 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
# endorse or promote products derived from this software without
# prior written permission. For written permission, please contact
# openssl-core@openssl.org.
#
# 5. Products derived from this software may not be called "OpenSSL"
# nor may "OpenSSL" appear in their names without prior written
# permission of the OpenSSL Project.
#
# 6. Redistributions of any form whatsoever must retain the following
# acknowledgment:
# "This product includes software developed by the OpenSSL Project
# for use in the OpenSSL Toolkit (http://www.openssl.org/)"
#
# THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
# ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
# OF THE POSSIBILITY OF SUCH DAMAGE.
# ====================================================================
#
# This product includes cryptographic software written by Eric Young
# (eay@cryptsoft.com). This product includes software written by Tim
# Hudson (tjh@cryptsoft.com).
use
strict
;
package
TLSProxy::
NewSessionTicket
;
use
parent
'
TLSProxy::Message
';
sub
new
{
my
$class
=
shift
;
my
(
$server
,
$data
,
$records
,
$startoffset
,
$message_frag_lens
)
=
@_
;
my
$self
=
$class
->
SUPER::
new
(
$server
,
TLSProxy::Message::
MT_NEW_SESSION_TICKET
,
$data
,
$records
,
$startoffset
,
$message_frag_lens
);
$self
->
{
ticket_lifetime_hint
}
=
0
;
$self
->
{
ticket
}
=
"";
return
$self
;
}
sub
parse
{
my
$self
=
shift
;
my
$ticket_lifetime_hint
=
unpack
('
N
',
$self
->
data
);
my
$ticket_len
=
unpack
('
n
',
$self
->
data
);
my
$ticket
=
substr
(
$self
->
data
,
6
,
$ticket_len
);
$self
->
ticket_lifetime_hint
(
$ticket_lifetime_hint
);
$self
->
ticket
(
$ticket
);
}
#Reconstruct the on-the-wire message data following changes
sub
set_message_contents
{
my
$self
=
shift
;
my
$data
;
$data
=
pack
('
N
',
$self
->
ticket_lifetime_hint
);
$data
.=
pack
('
n
',
length
(
$self
->
ticket
));
$data
.=
$self
->
ticket
;
$self
->
data
(
$data
);
}
#Read/write accessors
sub
ticket_lifetime_hint
{
my
$self
=
shift
;
if
(
@
_
)
{
$self
->
{
ticket_lifetime_hint
}
=
shift
;
}
return
$self
->
{
ticket_lifetime_hint
};
}
sub
ticket
{
my
$self
=
shift
;
if
(
@
_
)
{
$self
->
{
ticket
}
=
shift
;
}
return
$self
->
{
ticket
};
}
1
;
util/TLSProxy/Proxy.pm
浏览文件 @
7f6d90ac
...
...
@@ -63,6 +63,7 @@ use TLSProxy::Message;
use
TLSProxy::
ClientHello
;
use
TLSProxy::
ServerHello
;
use
TLSProxy::
ServerKeyExchange
;
use
TLSProxy::
NewSessionTicket
;
sub
new
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录