Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
279fe3b1
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看板
提交
279fe3b1
编写于
22年前
作者:
B
Bodo Möller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
in SignerInfo, use ecdsa-with-SHA1 OID for ECDSA (not ecPublicKey)
Submitted by: Nils Larsch
上级
98a9092a
无相关合并请求
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
33 addition
and
7 deletion
+33
-7
crypto/pkcs7/pk7_lib.c
crypto/pkcs7/pk7_lib.c
+33
-7
未找到文件。
crypto/pkcs7/pk7_lib.c
浏览文件 @
279fe3b1
...
...
@@ -307,9 +307,13 @@ int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl)
int
PKCS7_SIGNER_INFO_set
(
PKCS7_SIGNER_INFO
*
p7i
,
X509
*
x509
,
EVP_PKEY
*
pkey
,
const
EVP_MD
*
dgst
)
{
int
nid
;
char
is_dsa
;
if
(
pkey
->
type
==
EVP_PKEY_DSA
||
pkey
->
type
==
EVP_PKEY_ECDSA
)
is_dsa
=
1
;
else
is_dsa
=
0
;
if
(
pkey
->
type
==
EVP_PKEY_DSA
||
pkey
->
type
==
EVP_PKEY_ECDSA
)
is_dsa
=
1
;
else
is_dsa
=
0
;
/* We now need to add another PKCS7_SIGNER_INFO entry */
ASN1_INTEGER_set
(
p7i
->
version
,
1
);
X509_NAME_set
(
&
p7i
->
issuer_and_serial
->
issuer
,
...
...
@@ -336,16 +340,38 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey,
goto
err
;
p7i
->
digest_alg
->
parameter
->
type
=
V_ASN1_NULL
;
p7i
->
digest_enc_alg
->
algorithm
=
OBJ_nid2obj
(
EVP_PKEY_type
(
pkey
->
type
));
if
(
p7i
->
digest_enc_alg
->
parameter
!=
NULL
)
ASN1_TYPE_free
(
p7i
->
digest_enc_alg
->
parameter
);
if
(
is_dsa
)
p7i
->
digest_enc_alg
->
parameter
=
NULL
;
else
{
nid
=
EVP_PKEY_type
(
pkey
->
type
);
if
(
nid
==
EVP_PKEY_RSA
)
{
p7i
->
digest_enc_alg
->
algorithm
=
OBJ_nid2obj
(
NID_rsaEncryption
);
if
(
!
(
p7i
->
digest_enc_alg
->
parameter
=
ASN1_TYPE_new
()))
goto
err
;
p7i
->
digest_enc_alg
->
parameter
->
type
=
V_ASN1_NULL
;
}
}
else
if
(
nid
==
EVP_PKEY_DSA
)
{
#if 1
/* use 'dsaEncryption' OID for compatibility with other software
* (PKCS #7 v1.5 does specify how to handle DSA) ... */
p7i
->
digest_enc_alg
->
algorithm
=
OBJ_nid2obj
(
NID_dsa
);
#else
/* ... although the 'dsaWithSHA1' OID (as required by RFC 2630 for CMS)
* would make more sense. */
p7i
->
digest_enc_alg
->
algorithm
=
OBJ_nid2obj
(
NID_dsaWithSHA1
);
#endif
p7i
->
digest_enc_alg
->
parameter
=
NULL
;
/* special case for DSA: omit 'parameter'! */
}
else
if
(
nid
==
EVP_PKEY_ECDSA
)
{
p7i
->
digest_enc_alg
->
algorithm
=
OBJ_nid2obj
(
NID_ecdsa_with_SHA1
);
if
(
!
(
p7i
->
digest_enc_alg
->
parameter
=
ASN1_TYPE_new
()))
goto
err
;
p7i
->
digest_enc_alg
->
parameter
->
type
=
V_ASN1_NULL
;
}
else
return
(
0
);
return
(
1
);
err:
...
...
This diff is collapsed.
Click to expand it.
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录
新手
引导
客服
返回
顶部