Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
46400c97
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
大约 1 年 前同步成功
通知
9
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,发现更多精彩内容 >>
提交
46400c97
编写于
2月 12, 2009
作者:
D
Dr. Stephen Henson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Avoid leaks in pkcs8 app, tidy code up.
上级
c558c99f
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
24 addition
and
48 deletion
+24
-48
apps/pkcs8.c
apps/pkcs8.c
+24
-48
未找到文件。
apps/pkcs8.c
浏览文件 @
46400c97
...
...
@@ -80,11 +80,12 @@ int MAIN(int argc, char **argv)
int
informat
,
outformat
;
int
p8_broken
=
PKCS8_OK
;
int
nocrypt
=
0
;
X509_SIG
*
p8
;
PKCS8_PRIV_KEY_INFO
*
p8inf
;
X509_SIG
*
p8
=
NULL
;
PKCS8_PRIV_KEY_INFO
*
p8inf
=
NULL
;
EVP_PKEY
*
pkey
=
NULL
;
char
pass
[
50
],
*
passin
=
NULL
,
*
passout
=
NULL
,
*
p8pass
=
NULL
;
int
badarg
=
0
;
int
ret
=
1
;
#ifndef OPENSSL_NO_ENGINE
char
*
engine
=
NULL
;
#endif
...
...
@@ -225,7 +226,7 @@ int MAIN(int argc, char **argv)
#ifndef OPENSSL_NO_ENGINE
BIO_printf
(
bio_err
,
" -engine e use engine e, possibly a hardware device.
\n
"
);
#endif
return
1
;
goto
end
;
}
#ifndef OPENSSL_NO_ENGINE
...
...
@@ -235,7 +236,7 @@ int MAIN(int argc, char **argv)
if
(
!
app_passwd
(
bio_err
,
passargin
,
passargout
,
&
passin
,
&
passout
))
{
BIO_printf
(
bio_err
,
"Error getting passwords
\n
"
);
return
1
;
goto
end
;
}
if
((
pbe_nid
==
-
1
)
&&
!
cipher
)
...
...
@@ -247,7 +248,7 @@ int MAIN(int argc, char **argv)
{
BIO_printf
(
bio_err
,
"Can't open input file %s
\n
"
,
infile
);
return
(
1
)
;
goto
end
;
}
}
else
...
...
@@ -259,7 +260,7 @@ int MAIN(int argc, char **argv)
{
BIO_printf
(
bio_err
,
"Can't open output file %s
\n
"
,
outfile
);
return
(
1
)
;
goto
end
;
}
}
else
...
...
@@ -278,17 +279,12 @@ int MAIN(int argc, char **argv)
pkey
=
load_key
(
bio_err
,
infile
,
informat
,
1
,
passin
,
e
,
"key"
);
if
(
!
pkey
)
{
BIO_free_all
(
out
);
return
1
;
}
goto
end
;
if
(
!
(
p8inf
=
EVP_PKEY2PKCS8_broken
(
pkey
,
p8_broken
)))
{
BIO_printf
(
bio_err
,
"Error converting key
\n
"
);
ERR_print_errors
(
bio_err
);
EVP_PKEY_free
(
pkey
);
BIO_free_all
(
out
);
return
1
;
goto
end
;
}
if
(
nocrypt
)
{
...
...
@@ -299,10 +295,7 @@ int MAIN(int argc, char **argv)
else
{
BIO_printf
(
bio_err
,
"Bad format specified for key
\n
"
);
PKCS8_PRIV_KEY_INFO_free
(
p8inf
);
EVP_PKEY_free
(
pkey
);
BIO_free_all
(
out
);
return
(
1
);
goto
end
;
}
}
else
...
...
@@ -313,12 +306,7 @@ int MAIN(int argc, char **argv)
{
p8pass
=
pass
;
if
(
EVP_read_pw_string
(
pass
,
sizeof
pass
,
"Enter Encryption Password:"
,
1
))
{
PKCS8_PRIV_KEY_INFO_free
(
p8inf
);
EVP_PKEY_free
(
pkey
);
BIO_free_all
(
out
);
return
(
1
);
}
goto
end
;
}
app_RAND_load_file
(
NULL
,
bio_err
,
0
);
if
(
!
(
p8
=
PKCS8_encrypt
(
pbe_nid
,
cipher
,
...
...
@@ -327,10 +315,7 @@ int MAIN(int argc, char **argv)
{
BIO_printf
(
bio_err
,
"Error encrypting key
\n
"
);
ERR_print_errors
(
bio_err
);
PKCS8_PRIV_KEY_INFO_free
(
p8inf
);
EVP_PKEY_free
(
pkey
);
BIO_free_all
(
out
);
return
(
1
);
goto
end
;
}
app_RAND_write_file
(
NULL
,
bio_err
);
if
(
outformat
==
FORMAT_PEM
)
...
...
@@ -340,22 +325,12 @@ int MAIN(int argc, char **argv)
else
{
BIO_printf
(
bio_err
,
"Bad format specified for key
\n
"
);
PKCS8_PRIV_KEY_INFO_free
(
p8inf
);
EVP_PKEY_free
(
pkey
);
BIO_free_all
(
out
);
return
(
1
);
goto
end
;
}
X509_SIG_free
(
p8
);
}
PKCS8_PRIV_KEY_INFO_free
(
p8inf
);
EVP_PKEY_free
(
pkey
);
BIO_free_all
(
out
);
if
(
passin
)
OPENSSL_free
(
passin
);
if
(
passout
)
OPENSSL_free
(
passout
);
return
(
0
);
ret
=
0
;
goto
end
;
}
if
(
nocrypt
)
...
...
@@ -367,7 +342,7 @@ int MAIN(int argc, char **argv)
else
{
BIO_printf
(
bio_err
,
"Bad format specified for key
\n
"
);
return
(
1
)
;
goto
end
;
}
}
else
...
...
@@ -379,14 +354,14 @@ int MAIN(int argc, char **argv)
else
{
BIO_printf
(
bio_err
,
"Bad format specified for key
\n
"
);
return
(
1
)
;
goto
end
;
}
if
(
!
p8
)
{
BIO_printf
(
bio_err
,
"Error reading key
\n
"
);
ERR_print_errors
(
bio_err
);
return
(
1
)
;
goto
end
;
}
if
(
passin
)
p8pass
=
passin
;
...
...
@@ -396,21 +371,20 @@ int MAIN(int argc, char **argv)
EVP_read_pw_string
(
pass
,
sizeof
pass
,
"Enter Password:"
,
0
);
}
p8inf
=
PKCS8_decrypt
(
p8
,
p8pass
,
strlen
(
p8pass
));
X509_SIG_free
(
p8
);
}
if
(
!
p8inf
)
{
BIO_printf
(
bio_err
,
"Error decrypting key
\n
"
);
ERR_print_errors
(
bio_err
);
return
(
1
)
;
goto
end
;
}
if
(
!
(
pkey
=
EVP_PKCS82PKEY
(
p8inf
)))
{
BIO_printf
(
bio_err
,
"Error converting key
\n
"
);
ERR_print_errors
(
bio_err
);
return
(
1
)
;
goto
end
;
}
if
(
p8inf
->
broken
)
...
...
@@ -436,7 +410,6 @@ int MAIN(int argc, char **argv)
}
}
PKCS8_PRIV_KEY_INFO_free
(
p8inf
);
if
(
outformat
==
FORMAT_PEM
)
PEM_write_bio_PrivateKey
(
out
,
pkey
,
NULL
,
NULL
,
0
,
NULL
,
passout
);
else
if
(
outformat
==
FORMAT_ASN1
)
...
...
@@ -444,10 +417,13 @@ int MAIN(int argc, char **argv)
else
{
BIO_printf
(
bio_err
,
"Bad format specified for key
\n
"
);
return
(
1
)
;
goto
end
;
}
ret
=
0
;
end:
X509_SIG_free
(
p8
);
PKCS8_PRIV_KEY_INFO_free
(
p8inf
);
EVP_PKEY_free
(
pkey
);
BIO_free_all
(
out
);
BIO_free
(
in
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录