Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
9ae08a9c
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
9 个月 前同步成功
通知
8
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看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
9ae08a9c
编写于
6月 26, 2002
作者:
B
Bodo Möller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Make sure buffers are large enough even for weird parameters
Submitted by: Nils Larsch
上级
76f8a1f5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
65 addition
and
25 deletion
+65
-25
crypto/asn1/t_pkey.c
crypto/asn1/t_pkey.c
+65
-25
未找到文件。
crypto/asn1/t_pkey.c
浏览文件 @
9ae08a9c
...
...
@@ -100,10 +100,34 @@ int RSA_print(BIO *bp, const RSA *x, int off)
char
str
[
128
];
const
char
*
s
;
unsigned
char
*
m
=
NULL
;
int
i
,
ret
=
0
;
int
ret
=
0
;
size_t
buf_len
=
0
,
i
;
i
=
RSA_size
(
x
);
m
=
(
unsigned
char
*
)
OPENSSL_malloc
((
unsigned
int
)
i
+
10
);
if
(
x
->
n
)
buf_len
=
(
size_t
)
BN_num_bytes
(
x
->
n
);
if
(
x
->
e
)
if
(
buf_len
<
(
i
=
(
size_t
)
BN_num_bytes
(
x
->
e
)))
buf_len
=
i
;
if
(
x
->
d
)
if
(
buf_len
<
(
i
=
(
size_t
)
BN_num_bytes
(
x
->
d
)))
buf_len
=
i
;
if
(
x
->
p
)
if
(
buf_len
<
(
i
=
(
size_t
)
BN_num_bytes
(
x
->
p
)))
buf_len
=
i
;
if
(
x
->
q
)
if
(
buf_len
<
(
i
=
(
size_t
)
BN_num_bytes
(
x
->
q
)))
buf_len
=
i
;
if
(
x
->
dmp1
)
if
(
buf_len
<
(
i
=
(
size_t
)
BN_num_bytes
(
x
->
dmp1
)))
buf_len
=
i
;
if
(
x
->
dmq1
)
if
(
buf_len
<
(
i
=
(
size_t
)
BN_num_bytes
(
x
->
dmq1
)))
buf_len
=
i
;
if
(
x
->
iqmp
)
if
(
buf_len
<
(
i
=
(
size_t
)
BN_num_bytes
(
x
->
iqmp
)))
buf_len
=
i
;
m
=
(
unsigned
char
*
)
OPENSSL_malloc
(
buf_len
+
10
);
if
(
m
==
NULL
)
{
RSAerr
(
RSA_F_RSA_PRINT
,
ERR_R_MALLOC_FAILURE
);
...
...
@@ -165,22 +189,25 @@ int DSA_print(BIO *bp, const DSA *x, int off)
{
char
str
[
128
];
unsigned
char
*
m
=
NULL
;
int
i
,
ret
=
0
;
BIGNUM
*
bn
=
NULL
;
if
(
x
->
p
!=
NULL
)
bn
=
x
->
p
;
else
if
(
x
->
priv_key
!=
NULL
)
bn
=
x
->
priv_key
;
else
if
(
x
->
pub_key
!=
NULL
)
bn
=
x
->
pub_key
;
/* larger than needed but what the hell :-) */
if
(
bn
!=
NULL
)
i
=
BN_num_bytes
(
bn
)
*
2
;
else
i
=
256
;
m
=
(
unsigned
char
*
)
OPENSSL_malloc
((
unsigned
int
)
i
+
10
);
int
ret
=
0
;
size_t
buf_len
=
0
,
i
;
if
(
x
->
p
)
buf_len
=
(
size_t
)
BN_num_bytes
(
x
->
p
);
if
(
x
->
q
)
if
(
buf_len
<
(
i
=
(
size_t
)
BN_num_bytes
(
x
->
q
)))
buf_len
=
i
;
if
(
x
->
g
)
if
(
buf_len
<
(
i
=
(
size_t
)
BN_num_bytes
(
x
->
g
)))
buf_len
=
i
;
if
(
x
->
priv_key
)
if
(
buf_len
<
(
i
=
(
size_t
)
BN_num_bytes
(
x
->
priv_key
)))
buf_len
=
i
;
if
(
x
->
pub_key
)
if
(
buf_len
<
(
i
=
(
size_t
)
BN_num_bytes
(
x
->
pub_key
)))
buf_len
=
i
;
m
=
(
unsigned
char
*
)
OPENSSL_malloc
(
buf_len
+
10
);
if
(
m
==
NULL
)
{
DSAerr
(
DSA_F_DSA_PRINT
,
ERR_R_MALLOC_FAILURE
);
...
...
@@ -572,10 +599,15 @@ int DHparams_print_fp(FILE *fp, const DH *x)
int
DHparams_print
(
BIO
*
bp
,
const
DH
*
x
)
{
unsigned
char
*
m
=
NULL
;
int
reason
=
ERR_R_BUF_LIB
,
i
,
ret
=
0
;
int
reason
=
ERR_R_BUF_LIB
,
ret
=
0
;
size_t
buf_len
=
0
,
i
;
i
=
BN_num_bytes
(
x
->
p
);
m
=
(
unsigned
char
*
)
OPENSSL_malloc
((
unsigned
int
)
i
+
10
);
if
(
x
->
p
)
buf_len
=
(
size_t
)
BN_num_bytes
(
x
->
p
);
if
(
x
->
g
)
if
(
buf_len
<
(
i
=
(
size_t
)
BN_num_bytes
(
x
->
g
)))
buf_len
=
i
;
m
=
(
unsigned
char
*
)
OPENSSL_malloc
(
buf_len
+
10
);
if
(
m
==
NULL
)
{
reason
=
ERR_R_MALLOC_FAILURE
;
...
...
@@ -625,10 +657,18 @@ int DSAparams_print_fp(FILE *fp, const DSA *x)
int
DSAparams_print
(
BIO
*
bp
,
const
DSA
*
x
)
{
unsigned
char
*
m
=
NULL
;
int
reason
=
ERR_R_BUF_LIB
,
i
,
ret
=
0
;
int
reason
=
ERR_R_BUF_LIB
,
ret
=
0
;
size_t
buf_len
=
0
,
i
;
i
=
BN_num_bytes
(
x
->
p
);
m
=
(
unsigned
char
*
)
OPENSSL_malloc
((
unsigned
int
)
i
+
10
);
if
(
x
->
p
)
buf_len
=
(
size_t
)
BN_num_bytes
(
x
->
p
);
if
(
x
->
q
)
if
(
buf_len
<
(
i
=
(
size_t
)
BN_num_bytes
(
x
->
q
)))
buf_len
=
i
;
if
(
x
->
g
)
if
(
buf_len
<
(
i
=
(
size_t
)
BN_num_bytes
(
x
->
g
)))
buf_len
=
i
;
m
=
(
unsigned
char
*
)
OPENSSL_malloc
(
buf_len
+
10
);
if
(
m
==
NULL
)
{
reason
=
ERR_R_MALLOC_FAILURE
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录