Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
67fec850
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看板
提交
67fec850
编写于
1月 02, 2002
作者:
R
Richard Levitte
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Allow verification of other types than DATA.
Submitted by Leonard Janke <leonard@votehere.net>
上级
82db6e16
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
46 addition
and
7 deletion
+46
-7
crypto/pkcs7/pk7_doit.c
crypto/pkcs7/pk7_doit.c
+46
-7
未找到文件。
crypto/pkcs7/pk7_doit.c
浏览文件 @
67fec850
...
...
@@ -67,6 +67,38 @@ static int add_attribute(STACK_OF(X509_ATTRIBUTE) **sk, int nid, int atrtype,
void
*
value
);
static
ASN1_TYPE
*
get_attribute
(
STACK_OF
(
X509_ATTRIBUTE
)
*
sk
,
int
nid
);
static
int
PKCS7_type_is_other
(
PKCS7
*
p7
)
{
int
isOther
=
1
;
int
nid
=
OBJ_obj2nid
(
p7
->
type
);
switch
(
nid
)
{
case
NID_pkcs7_data
:
case
NID_pkcs7_signed
:
case
NID_pkcs7_enveloped
:
case
NID_pkcs7_signedAndEnveloped
:
case
NID_pkcs7_digest
:
case
NID_pkcs7_encrypted
:
isOther
=
0
;
break
;
default:
isOther
=
1
;
}
return
isOther
;
}
static
int
PKCS7_type_is_octet_string
(
PKCS7
*
p7
)
{
if
(
0
==
PKCS7_type_is_other
(
p7
)
)
return
0
;
return
(
V_ASN1_OCTET_STRING
==
p7
->
d
.
other
->
type
)
?
1
:
0
;
}
BIO
*
PKCS7_dataInit
(
PKCS7
*
p7
,
BIO
*
bio
)
{
int
i
,
j
;
...
...
@@ -222,13 +254,20 @@ BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio)
if
(
PKCS7_is_detached
(
p7
))
bio
=
BIO_new
(
BIO_s_null
());
else
{
if
(
PKCS7_type_is_signed
(
p7
)
&&
PKCS7_type_is_data
(
p7
->
d
.
sign
->
contents
))
{
ASN1_OCTET_STRING
*
os
;
os
=
p7
->
d
.
sign
->
contents
->
d
.
data
;
if
(
os
->
length
>
0
)
bio
=
BIO_new_mem_buf
(
os
->
data
,
os
->
length
);
}
if
(
PKCS7_type_is_signed
(
p7
)
)
{
if
(
PKCS7_type_is_data
(
p7
->
d
.
sign
->
contents
))
{
ASN1_OCTET_STRING
*
os
;
os
=
p7
->
d
.
sign
->
contents
->
d
.
data
;
if
(
os
->
length
>
0
)
bio
=
BIO_new_mem_buf
(
os
->
data
,
os
->
length
);
}
else
if
(
PKCS7_type_is_octet_string
(
p7
->
d
.
sign
->
contents
)
)
{
ASN1_OCTET_STRING
*
os
;
os
=
p7
->
d
.
sign
->
contents
->
d
.
other
->
value
.
octet_string
;
if
(
os
->
length
>
0
)
bio
=
BIO_new_mem_buf
(
os
->
data
,
os
->
length
);
}
}
if
(
bio
==
NULL
)
{
bio
=
BIO_new
(
BIO_s_mem
());
BIO_set_mem_eof_return
(
bio
,
0
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录