Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
a329fdde
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看板
提交
a329fdde
编写于
3月 13, 2008
作者:
D
Dr. Stephen Henson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
RFC4134 S/MIME examples test script.
上级
31d3c844
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
281 addition
and
0 deletion
+281
-0
test/runex.pl
test/runex.pl
+281
-0
未找到文件。
test/runex.pl
0 → 100644
浏览文件 @
a329fdde
# test/runex.pl
# Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
# project.
#
# ====================================================================
# Copyright (c) 2008 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
# licensing@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.
# ====================================================================
# Perl script to run tests against S/MIME examples in RFC4134
# Assumes all files are extracted in an directory called "examples"
my
$badttest
=
0
;
my
$verbose
=
1
;
my
$cmscmd
=
"
../apps/openssl cms
";
my
$convcmd
=
"
../apps/openssl x509 -inform DER
";
my
$exdir
=
"
examples
";
my
@test_list
=
(
["
3.1.bin
"
=>
"
dataout
"],
["
3.2.bin
"
=>
"
encode, dataout
"],
["
4.1.bin
"
=>
"
encode, verifyder, content, dss
"],
["
4.2.bin
"
=>
"
encode, verifyder, cont, rsa
"],
["
4.3.bin
"
=>
"
encode, verifyder, cont_extern, dss
"],
["
4.4.bin
"
=>
"
encode, verifyder, cont, dss
"],
["
4.5.bin
"
=>
"
verifyder, content, rsa
"],
["
4.6.bin
"
=>
"
encode, verifyder, cont, dss
"],
["
4.7.bin
"
=>
"
encode, verifyder, cont, dss
"],
["
4.8.eml
"
=>
"
verifymime, dss
"],
["
4.9.eml
"
=>
"
verifymime, dss
"],
["
4.10.bin
"
=>
"
encode, verifyder, cont, dss
"],
["
4.11.bin
"
=>
"
encode
"],
["
5.1.bin
"
=>
"
encode
"],
["
5.2.bin
"
=>
"
encode
"],
["
6.0.bin
"
=>
"
encode, digest, cont
"],
["
7.1.bin
"
=>
"
encode
"],
["
7.2.bin
"
=>
"
encode
"]
);
if
(
!-
d
$exdir
)
{
print
STDERR
"
FATAL ERROR: examples directory missing!!
\n
";
exit
1
;
}
system
("
$convcmd
-in
$exdir
/CarlDSSSelf.cer -out
$exdir
/CarlDSSSelf.pem
");
system
("
$convcmd
-in
$exdir
/CarlRSASelf.cer -out
$exdir
/CarlRSASelf.pem
");
$cafile
=
"
$cmsdir
/CarlRSASelf.pem
"
if
$tlist
=~
/rsa/
;
foreach
(
@test_list
)
{
my
(
$file
,
$tlist
)
=
@$_
;
print
"
Example file
$file
:
\n
";
if
(
$tlist
=~
/encode/
)
{
run_reencode_test
(
$exdir
,
$file
);
}
if
(
$tlist
=~
/dataout/
)
{
run_dataout_test
(
$exdir
,
$file
);
}
if
(
$tlist
=~
/verify/
)
{
run_verify_test
(
$exdir
,
$tlist
,
$file
);
}
if
(
$tlist
=~
/digest/
)
{
run_digest_test
(
$exdir
,
$tlist
,
$file
);
}
}
unlink
"
cms.out
";
unlink
"
cms.err
";
unlink
"
tmp.der
";
unlink
"
tmp.txt
";
if
(
$badtest
)
{
print
"
\n
$badtest
TESTS FAILED!!
\n
";
}
else
{
print
"
\n
***All tests successful***
\n
";
}
sub
run_reencode_test
{
my
(
$cmsdir
,
$tfile
)
=
@_
;
unlink
"
tmp.der
";
system
("
$cmscmd
-cmsout -inform DER -outform DER
"
.
"
-in
$cmsdir
/
$tfile
-out tmp.der
");
if
(
$?
)
{
print
"
\t
Reencode command FAILED!!
\n
";
$badtest
++
;
}
elsif
(
!
cmp_files
("
$cmsdir
/
$tfile
",
"
tmp.der
"))
{
print
"
\t
Reencode FAILED!!
\n
";
$badtest
++
;
}
else
{
print
"
\t
Reencode passed
\n
"
if
$verbose
;
}
}
sub
run_dataout_test
{
my
(
$cmsdir
,
$tfile
)
=
@_
;
unlink
"
tmp.txt
";
system
("
$cmscmd
-data_out -inform DER
"
.
"
-in
$cmsdir
/
$tfile
-out tmp.txt
");
if
(
$?
)
{
print
"
\t
Dataout command FAILED!!
\n
";
$badtest
++
;
}
elsif
(
!
cmp_files
("
$cmsdir
/ExContent.bin
",
"
tmp.txt
"))
{
print
"
\t
Dataout compare FAILED!!
\n
";
$badtest
++
;
}
else
{
print
"
\t
Dataout passed
\n
"
if
$verbose
;
}
}
sub
run_verify_test
{
my
(
$cmsdir
,
$tlist
,
$tfile
)
=
@_
;
unlink
"
tmp.txt
";
$form
=
"
DER
"
if
$tlist
=~
/verifyder/
;
$form
=
"
SMIME
"
if
$tlist
=~
/verifymime/
;
$cafile
=
"
$cmsdir
/CarlDSSSelf.pem
"
if
$tlist
=~
/dss/
;
$cafile
=
"
$cmsdir
/CarlRSASelf.pem
"
if
$tlist
=~
/rsa/
;
$cmd
=
"
$cmscmd
-verify -inform
$form
"
.
"
-CAfile
$cafile
"
.
"
-in
$cmsdir
/
$tfile
-out tmp.txt
";
$cmd
.=
"
-content
$cmsdir
/ExContent.bin
"
if
$tlist
=~
/cont_extern/
;
system
("
$cmd
2>cms.err 1>cms.out
");
if
(
$?
)
{
print
"
\t
Verify command FAILED!!
\n
";
$badtest
++
;
}
elsif
(
$tlist
=~
/cont/
&&
!
cmp_files
("
$cmsdir
/ExContent.bin
",
"
tmp.txt
"))
{
print
"
\t
Verify content compare FAILED!!
\n
";
$badtest
++
;
}
else
{
print
"
\t
Verify passed
\n
"
if
$verbose
;
}
}
sub
run_digest_test
{
my
(
$cmsdir
,
$tlist
,
$tfile
)
=
@_
;
unlink
"
tmp.txt
";
system
("
$cmscmd
-digest_verify -inform DER
"
.
"
-in
$cmsdir
/
$tfile
-out tmp.txt
");
if
(
$?
)
{
print
"
\t
Digest verify command FAILED!!
\n
";
$badtest
++
;
}
elsif
(
$tlist
=~
/cont/
&&
!
cmp_files
("
$cmsdir
/ExContent.bin
",
"
tmp.txt
"))
{
print
"
\t
Digest verify content compare FAILED!!
\n
";
$badtest
++
;
}
else
{
print
"
\t
Digest verify passed
\n
"
if
$verbose
;
}
}
sub
cmp_files
{
my
(
$f1
,
$f2
)
=
@_
;
my
(
$fp1
,
$fp2
);
my
(
$rd1
,
$rd2
);
if
(
!
open
(
$fp1
,
"
<
$f1
")
)
{
print
STDERR
"
Can't Open file
$f1
\n
";
return
0
;
}
if
(
!
open
(
$fp2
,
"
<
$f2
")
)
{
print
STDERR
"
Can't Open file
$f2
\n
";
return
0
;
}
binmode
$fp1
;
binmode
$fp2
;
my
$ret
=
0
;
for
(;;)
{
$n1
=
sysread
$fp1
,
$rd1
,
4096
;
$n2
=
sysread
$fp2
,
$rd2
,
4096
;
last
if
(
$n1
!=
$n2
);
last
if
(
$rd1
ne
$rd2
);
if
(
$n1
==
0
)
{
$ret
=
1
;
last
;
}
}
close
$fp1
;
close
$fp2
;
return
$ret
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录