Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
btwise
openssl
提交
3a3619b4
O
openssl
项目概览
btwise
/
openssl
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
openssl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3a3619b4
编写于
11月 06, 2001
作者:
D
Dr. Stephen Henson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
PKCS#12 code fixes: initialize and cleanup digests and ciphers
properly.
上级
b83eddc5
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
12 addition
and
8 deletion
+12
-8
crypto/pkcs12/p12_decr.c
crypto/pkcs12/p12_decr.c
+11
-7
crypto/pkcs12/p12_key.c
crypto/pkcs12/p12_key.c
+1
-1
未找到文件。
crypto/pkcs12/p12_decr.c
浏览文件 @
3a3619b4
...
...
@@ -76,28 +76,32 @@ unsigned char * PKCS12_pbe_crypt(X509_ALGOR *algor, const char *pass,
int
outlen
,
i
;
EVP_CIPHER_CTX
ctx
;
EVP_CIPHER_CTX_init
(
&
ctx
);
/* Decrypt data */
if
(
!
EVP_PBE_CipherInit
(
algor
->
algorithm
,
pass
,
passlen
,
if
(
!
EVP_PBE_CipherInit
(
algor
->
algorithm
,
pass
,
passlen
,
algor
->
parameter
,
&
ctx
,
en_de
))
{
PKCS12err
(
PKCS12_F_PKCS12_PBE_CRYPT
,
PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR
);
return
NULL
;
}
if
(
!
(
out
=
OPENSSL_malloc
(
inlen
+
EVP_CIPHER_CTX_block_size
(
&
ctx
))))
{
if
(
!
(
out
=
OPENSSL_malloc
(
inlen
+
EVP_CIPHER_CTX_block_size
(
&
ctx
))))
{
PKCS12err
(
PKCS12_F_PKCS12_PBE_CRYPT
,
ERR_R_MALLOC_FAILURE
);
return
NULL
;
goto
err
;
}
EVP_CipherUpdate
(
&
ctx
,
out
,
&
i
,
in
,
inlen
);
EVP_CipherUpdate
(
&
ctx
,
out
,
&
i
,
in
,
inlen
);
outlen
=
i
;
if
(
!
EVP_CipherFinal_ex
(
&
ctx
,
out
+
i
,
&
i
))
{
OPENSSL_free
(
out
);
if
(
!
EVP_CipherFinal_ex
(
&
ctx
,
out
+
i
,
&
i
))
{
OPENSSL_free
(
out
);
out
=
NULL
;
PKCS12err
(
PKCS12_F_PKCS12_PBE_CRYPT
,
PKCS12_R_PKCS12_CIPHERFINAL_ERROR
);
return
NULL
;
goto
err
;
}
outlen
+=
i
;
if
(
datalen
)
*
datalen
=
outlen
;
if
(
data
)
*
data
=
out
;
err:
EVP_CIPHER_CTX_cleanup
(
&
ctx
);
return
out
;
}
...
...
crypto/pkcs12/p12_key.c
浏览文件 @
3a3619b4
...
...
@@ -165,6 +165,7 @@ int PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt,
OPENSSL_free
(
I
);
BN_free
(
Ij
);
BN_free
(
Bpl1
);
EVP_MD_CTX_cleanup
(
&
ctx
);
#ifdef DEBUG_KEYGEN
fprintf
(
stderr
,
"Output KEY (length %d)
\n
"
,
tmpn
);
h__dump
(
tmpout
,
tmpn
);
...
...
@@ -195,7 +196,6 @@ int PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt,
}
else
BN_bn2bin
(
Ij
,
I
+
j
);
}
}
EVP_MD_CTX_cleanup
(
&
ctx
);
}
#ifdef DEBUG_KEYGEN
void
h__dump
(
unsigned
char
*
p
,
int
len
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录