Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
8f0edcd1
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看板
提交
8f0edcd1
编写于
6月 02, 1999
作者:
B
Ben Laurie
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
stack.
上级
a1195a19
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
38 addition
and
29 deletion
+38
-29
crypto/asn1/p7_evp.c
crypto/asn1/p7_evp.c
+8
-6
crypto/asn1/p7_recip.c
crypto/asn1/p7_recip.c
+2
-0
crypto/asn1/p7_s_e.c
crypto/asn1/p7_s_e.c
+9
-7
crypto/pkcs7/pk7_doit.c
crypto/pkcs7/pk7_doit.c
+12
-12
crypto/pkcs7/pk7_lib.c
crypto/pkcs7/pk7_lib.c
+2
-2
crypto/pkcs7/pkcs7.h
crypto/pkcs7/pkcs7.h
+5
-2
未找到文件。
crypto/asn1/p7_evp.c
浏览文件 @
8f0edcd1
...
...
@@ -66,13 +66,15 @@ int i2d_PKCS7_ENVELOPE(PKCS7_ENVELOPE *a, unsigned char **pp)
M_ASN1_I2D_vars
(
a
);
M_ASN1_I2D_len
(
a
->
version
,
i2d_ASN1_INTEGER
);
M_ASN1_I2D_len_SET
(
a
->
recipientinfo
,
i2d_PKCS7_RECIP_INFO
);
M_ASN1_I2D_len_SET_type
(
PKCS7_RECIP_INFO
,
a
->
recipientinfo
,
i2d_PKCS7_RECIP_INFO
);
M_ASN1_I2D_len
(
a
->
enc_data
,
i2d_PKCS7_ENC_CONTENT
);
M_ASN1_I2D_seq_total
();
M_ASN1_I2D_put
(
a
->
version
,
i2d_ASN1_INTEGER
);
M_ASN1_I2D_put_SET
(
a
->
recipientinfo
,
i2d_PKCS7_RECIP_INFO
);
M_ASN1_I2D_put_SET_type
(
PKCS7_RECIP_INFO
,
a
->
recipientinfo
,
i2d_PKCS7_RECIP_INFO
);
M_ASN1_I2D_put
(
a
->
enc_data
,
i2d_PKCS7_ENC_CONTENT
);
M_ASN1_I2D_finish
();
...
...
@@ -86,8 +88,8 @@ PKCS7_ENVELOPE *d2i_PKCS7_ENVELOPE(PKCS7_ENVELOPE **a, unsigned char **pp,
M_ASN1_D2I_Init
();
M_ASN1_D2I_start_sequence
();
M_ASN1_D2I_get
(
ret
->
version
,
d2i_ASN1_INTEGER
);
M_ASN1_D2I_get_set
(
ret
->
recipientinfo
,
d2i_PKCS7_RECIP_INFO
,
PKCS7_RECIP_INFO_free
);
M_ASN1_D2I_get_set
_type
(
PKCS7_RECIP_INFO
,
ret
->
recipientinfo
,
d2i_PKCS7_RECIP_INFO
,
PKCS7_RECIP_INFO_free
);
M_ASN1_D2I_get
(
ret
->
enc_data
,
d2i_PKCS7_ENC_CONTENT
);
M_ASN1_D2I_Finish
(
a
,
PKCS7_ENVELOPE_free
,
ASN1_F_D2I_PKCS7_ENVELOPE
);
...
...
@@ -100,7 +102,7 @@ PKCS7_ENVELOPE *PKCS7_ENVELOPE_new(void)
M_ASN1_New_Malloc
(
ret
,
PKCS7_ENVELOPE
);
M_ASN1_New
(
ret
->
version
,
ASN1_INTEGER_new
);
M_ASN1_New
(
ret
->
recipientinfo
,
sk_new_null
);
M_ASN1_New
(
ret
->
recipientinfo
,
sk_
PKCS7_RECIP_INFO_
new_null
);
M_ASN1_New
(
ret
->
enc_data
,
PKCS7_ENC_CONTENT_new
);
return
(
ret
);
M_ASN1_New_Error
(
ASN1_F_PKCS7_ENVELOPE_NEW
);
...
...
@@ -110,7 +112,7 @@ void PKCS7_ENVELOPE_free(PKCS7_ENVELOPE *a)
{
if
(
a
==
NULL
)
return
;
ASN1_INTEGER_free
(
a
->
version
);
sk_pop_free
(
a
->
recipientinfo
,
PKCS7_RECIP_INFO_free
);
sk_
PKCS7_RECIP_INFO_
pop_free
(
a
->
recipientinfo
,
PKCS7_RECIP_INFO_free
);
PKCS7_ENC_CONTENT_free
(
a
->
enc_data
);
Free
((
char
*
)
a
);
}
...
...
crypto/asn1/p7_recip.c
浏览文件 @
8f0edcd1
...
...
@@ -121,3 +121,5 @@ void PKCS7_RECIP_INFO_free(PKCS7_RECIP_INFO *a)
Free
((
char
*
)
a
);
}
IMPLEMENT_STACK_OF
(
PKCS7_RECIP_INFO
)
IMPLEMENT_ASN1_SET_OF
(
PKCS7_RECIP_INFO
)
crypto/asn1/p7_s_e.c
浏览文件 @
8f0edcd1
...
...
@@ -66,7 +66,8 @@ int i2d_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE *a, unsigned char **pp)
M_ASN1_I2D_vars
(
a
);
M_ASN1_I2D_len
(
a
->
version
,
i2d_ASN1_INTEGER
);
M_ASN1_I2D_len_SET
(
a
->
recipientinfo
,
i2d_PKCS7_RECIP_INFO
);
M_ASN1_I2D_len_SET_type
(
PKCS7_RECIP_INFO
,
a
->
recipientinfo
,
i2d_PKCS7_RECIP_INFO
);
M_ASN1_I2D_len_SET_type
(
X509_ALGOR
,
a
->
md_algs
,
i2d_X509_ALGOR
);
M_ASN1_I2D_len
(
a
->
enc_data
,
i2d_PKCS7_ENC_CONTENT
);
M_ASN1_I2D_len_IMP_SEQUENCE_opt_type
(
X509
,
a
->
cert
,
i2d_X509
,
0
);
...
...
@@ -77,7 +78,8 @@ int i2d_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE *a, unsigned char **pp)
M_ASN1_I2D_seq_total
();
M_ASN1_I2D_put
(
a
->
version
,
i2d_ASN1_INTEGER
);
M_ASN1_I2D_put_SET
(
a
->
recipientinfo
,
i2d_PKCS7_RECIP_INFO
);
M_ASN1_I2D_put_SET_type
(
PKCS7_RECIP_INFO
,
a
->
recipientinfo
,
i2d_PKCS7_RECIP_INFO
);
M_ASN1_I2D_put_SET_type
(
X509_ALGOR
,
a
->
md_algs
,
i2d_X509_ALGOR
);
M_ASN1_I2D_put
(
a
->
enc_data
,
i2d_PKCS7_ENC_CONTENT
);
M_ASN1_I2D_put_IMP_SEQUENCE_opt_type
(
X509
,
a
->
cert
,
i2d_X509
,
0
);
...
...
@@ -96,8 +98,8 @@ PKCS7_SIGN_ENVELOPE *d2i_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE **a,
M_ASN1_D2I_Init
();
M_ASN1_D2I_start_sequence
();
M_ASN1_D2I_get
(
ret
->
version
,
d2i_ASN1_INTEGER
);
M_ASN1_D2I_get_set
(
ret
->
recipientinfo
,
d2i_PKCS7_RECIP_INFO
,
PKCS7_RECIP_INFO_free
);
M_ASN1_D2I_get_set
_type
(
PKCS7_RECIP_INFO
,
ret
->
recipientinfo
,
d2i_PKCS7_RECIP_INFO
,
PKCS7_RECIP_INFO_free
);
M_ASN1_D2I_get_set_type
(
X509_ALGOR
,
ret
->
md_algs
,
d2i_X509_ALGOR
,
X509_ALGOR_free
);
M_ASN1_D2I_get
(
ret
->
enc_data
,
d2i_PKCS7_ENC_CONTENT
);
...
...
@@ -118,7 +120,7 @@ PKCS7_SIGN_ENVELOPE *PKCS7_SIGN_ENVELOPE_new(void)
M_ASN1_New_Malloc
(
ret
,
PKCS7_SIGN_ENVELOPE
);
M_ASN1_New
(
ret
->
version
,
ASN1_INTEGER_new
);
M_ASN1_New
(
ret
->
recipientinfo
,
sk_new_null
);
M_ASN1_New
(
ret
->
recipientinfo
,
sk_
PKCS7_RECIP_INFO_
new_null
);
M_ASN1_New
(
ret
->
md_algs
,
sk_X509_ALGOR_new_null
);
M_ASN1_New
(
ret
->
enc_data
,
PKCS7_ENC_CONTENT_new
);
ret
->
cert
=
NULL
;
...
...
@@ -132,12 +134,12 @@ void PKCS7_SIGN_ENVELOPE_free(PKCS7_SIGN_ENVELOPE *a)
{
if
(
a
==
NULL
)
return
;
ASN1_INTEGER_free
(
a
->
version
);
sk_pop_free
(
a
->
recipientinfo
,
PKCS7_RECIP_INFO_free
);
sk_
PKCS7_RECIP_INFO_
pop_free
(
a
->
recipientinfo
,
PKCS7_RECIP_INFO_free
);
sk_X509_ALGOR_pop_free
(
a
->
md_algs
,
X509_ALGOR_free
);
PKCS7_ENC_CONTENT_free
(
a
->
enc_data
);
sk_X509_pop_free
(
a
->
cert
,
X509_free
);
sk_X509_CRL_pop_free
(
a
->
crl
,
X509_CRL_free
);
sk_PKCS7_SIGNER_INFO_pop_free
(
a
->
signer_info
,
PKCS7_SIGNER_INFO_free
);
Free
(
(
char
*
)
a
);
Free
(
a
);
}
crypto/pkcs7/pk7_doit.c
浏览文件 @
8f0edcd1
...
...
@@ -74,7 +74,7 @@ BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio)
const
EVP_MD
*
evp_md
;
const
EVP_CIPHER
*
evp_cipher
=
NULL
;
STACK_OF
(
X509_ALGOR
)
*
md_sk
=
NULL
;
STACK
*
rsk
=
NULL
;
STACK
_OF
(
PKCS7_RECIP_INFO
)
*
rsk
=
NULL
;
X509_ALGOR
*
xalg
=
NULL
;
PKCS7_RECIP_INFO
*
ri
=
NULL
;
EVP_PKEY
*
pkey
;
...
...
@@ -174,9 +174,9 @@ BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio)
/* Lets do the pub key stuff :-) */
max
=
0
;
for
(
i
=
0
;
i
<
sk_num
(
rsk
);
i
++
)
for
(
i
=
0
;
i
<
sk_
PKCS7_RECIP_INFO_
num
(
rsk
);
i
++
)
{
ri
=
(
PKCS7_RECIP_INFO
*
)
sk
_value
(
rsk
,
i
);
ri
=
sk_PKCS7_RECIP_INFO
_value
(
rsk
,
i
);
if
(
ri
->
cert
==
NULL
)
{
PKCS7err
(
PKCS7_F_PKCS7_DATAINIT
,
PKCS7_R_MISSING_CERIPEND_INFO
);
...
...
@@ -192,9 +192,9 @@ BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio)
PKCS7err
(
PKCS7_F_PKCS7_DATAINIT
,
ERR_R_MALLOC_FAILURE
);
goto
err
;
}
for
(
i
=
0
;
i
<
sk_num
(
rsk
);
i
++
)
for
(
i
=
0
;
i
<
sk_
PKCS7_RECIP_INFO_
num
(
rsk
);
i
++
)
{
ri
=
(
PKCS7_RECIP_INFO
*
)
sk
_value
(
rsk
,
i
);
ri
=
sk_PKCS7_RECIP_INFO
_value
(
rsk
,
i
);
pkey
=
X509_get_pubkey
(
ri
->
cert
);
jj
=
EVP_PKEY_encrypt
(
tmp
,
key
,
keylen
,
pkey
);
EVP_PKEY_free
(
pkey
);
...
...
@@ -267,7 +267,7 @@ BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert)
EVP_CIPHER_CTX
*
evp_ctx
=
NULL
;
X509_ALGOR
*
enc_alg
=
NULL
;
STACK_OF
(
X509_ALGOR
)
*
md_sk
=
NULL
;
STACK
*
rsk
=
NULL
;
STACK
_OF
(
PKCS7_RECIP_INFO
)
*
rsk
=
NULL
;
X509_ALGOR
*
xalg
=
NULL
;
PKCS7_RECIP_INFO
*
ri
=
NULL
;
/* EVP_PKEY *pkey; */
...
...
@@ -368,8 +368,8 @@ BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert)
* (if any)
*/
for
(
i
=
0
;
i
<
sk_num
(
rsk
);
i
++
)
{
ri
=
(
PKCS7_RECIP_INFO
*
)
sk
_value
(
rsk
,
i
);
for
(
i
=
0
;
i
<
sk_
PKCS7_RECIP_INFO_
num
(
rsk
);
i
++
)
{
ri
=
sk_PKCS7_RECIP_INFO
_value
(
rsk
,
i
);
if
(
!
X509_NAME_cmp
(
ri
->
issuer_and_serial
->
issuer
,
pcert
->
cert_info
->
issuer
)
&&
!
ASN1_INTEGER_cmp
(
pcert
->
cert_info
->
serialNumber
,
...
...
@@ -767,16 +767,16 @@ err:
PKCS7_ISSUER_AND_SERIAL
*
PKCS7_get_issuer_and_serial
(
PKCS7
*
p7
,
int
idx
)
{
STACK
*
rsk
;
STACK
_OF
(
PKCS7_RECIP_INFO
)
*
rsk
;
PKCS7_RECIP_INFO
*
ri
;
int
i
;
i
=
OBJ_obj2nid
(
p7
->
type
);
if
(
i
!=
NID_pkcs7_signedAndEnveloped
)
return
(
NULL
);
rsk
=
p7
->
d
.
signed_and_enveloped
->
recipientinfo
;
ri
=
(
PKCS7_RECIP_INFO
*
)
sk
_value
(
rsk
,
0
);
if
(
sk_num
(
rsk
)
<=
idx
)
return
(
NULL
);
ri
=
(
PKCS7_RECIP_INFO
*
)
sk
_value
(
rsk
,
idx
);
ri
=
sk_PKCS7_RECIP_INFO
_value
(
rsk
,
0
);
if
(
sk_
PKCS7_RECIP_INFO_
num
(
rsk
)
<=
idx
)
return
(
NULL
);
ri
=
sk_PKCS7_RECIP_INFO
_value
(
rsk
,
idx
);
return
(
ri
->
issuer_and_serial
);
}
...
...
crypto/pkcs7/pk7_lib.c
浏览文件 @
8f0edcd1
...
...
@@ -371,7 +371,7 @@ err:
int
PKCS7_add_recipient_info
(
PKCS7
*
p7
,
PKCS7_RECIP_INFO
*
ri
)
{
int
i
;
STACK
*
sk
;
STACK
_OF
(
PKCS7_RECIP_INFO
)
*
sk
;
i
=
OBJ_obj2nid
(
p7
->
type
);
switch
(
i
)
...
...
@@ -387,7 +387,7 @@ int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri)
return
(
0
);
}
sk_
push
(
sk
,(
char
*
)
ri
);
sk_
PKCS7_RECIP_INFO_push
(
sk
,
ri
);
return
(
1
);
}
...
...
crypto/pkcs7/pkcs7.h
浏览文件 @
8f0edcd1
...
...
@@ -110,6 +110,9 @@ typedef struct pkcs7_recip_info_st
X509
*
cert
;
/* get the pub-key from this */
}
PKCS7_RECIP_INFO
;
DECLARE_STACK_OF
(
PKCS7_RECIP_INFO
)
DECLARE_ASN1_SET_OF
(
PKCS7_RECIP_INFO
)
typedef
struct
pkcs7_signed_st
{
ASN1_INTEGER
*
version
;
/* version 1 */
...
...
@@ -134,7 +137,7 @@ typedef struct pkcs7_enc_content_st
typedef
struct
pkcs7_enveloped_st
{
ASN1_INTEGER
*
version
;
/* version 0 */
STACK
/* PKCS7_RECIP_INFO */
*
recipientinfo
;
STACK
_OF
(
PKCS7_RECIP_INFO
)
*
recipientinfo
;
PKCS7_ENC_CONTENT
*
enc_data
;
}
PKCS7_ENVELOPE
;
...
...
@@ -147,7 +150,7 @@ typedef struct pkcs7_signedandenveloped_st
STACK_OF
(
PKCS7_SIGNER_INFO
)
*
signer_info
;
PKCS7_ENC_CONTENT
*
enc_data
;
STACK
/* PKCS7_RECIP_INFO */
*
recipientinfo
;
STACK
_OF
(
PKCS7_RECIP_INFO
)
*
recipientinfo
;
}
PKCS7_SIGN_ENVELOPE
;
typedef
struct
pkcs7_digest_st
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录