Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
b8f702a0
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
8 个月 前同步成功
通知
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 搜索 >>
提交
b8f702a0
编写于
5月 15, 2006
作者:
D
Dr. Stephen Henson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Change builting PBE to use static table. Add entries for HMAC and MD5, GOST.
上级
43c9825c
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
99 addition
and
58 deletion
+99
-58
CHANGES
CHANGES
+2
-0
crypto/evp/c_allc.c
crypto/evp/c_allc.c
+0
-2
crypto/evp/evp_pbe.c
crypto/evp/evp_pbe.c
+95
-4
crypto/evp/p5_crpt.c
crypto/evp/p5_crpt.c
+1
-33
crypto/pkcs12/p12_crpt.c
crypto/pkcs12/p12_crpt.c
+1
-19
未找到文件。
CHANGES
浏览文件 @
b8f702a0
...
...
@@ -5,6 +5,8 @@
Changes between 0.9.8b and 0.9.9 [xx XXX xxxx]
*) Initial support for PKCS#5 v2.0 PRFs other than default SHA1 HMAC.
Reorganize PBE internals to lookup from a static table using NIDs,
add support for HMAC PBE OID translation.
[Steve Henson]
*) Replace the algorithm specific calls to generate keys in "req" with the
...
...
crypto/evp/c_allc.c
浏览文件 @
b8f702a0
...
...
@@ -183,6 +183,4 @@ void OpenSSL_add_all_ciphers(void)
EVP_add_cipher_alias
(
SN_aes_256_cbc
,
"AES256"
);
EVP_add_cipher_alias
(
SN_aes_256_cbc
,
"aes256"
);
#endif
PKCS12_PBE_add
();
PKCS5_PBE_add
();
}
crypto/evp/evp_pbe.c
浏览文件 @
b8f702a0
...
...
@@ -59,6 +59,7 @@
#include <stdio.h>
#include "cryptlib.h"
#include <openssl/evp.h>
#include <openssl/pkcs12.h>
#include <openssl/x509.h>
/* Password based encryption (PBE) functions */
...
...
@@ -76,6 +77,71 @@ typedef struct
EVP_PBE_KEYGEN
*
keygen
;
}
EVP_PBE_CTL
;
EVP_PBE_CTL
builtin_pbe
[]
=
{
{
EVP_PBE_TYPE_OUTER
,
NID_pbeWithMD2AndDES_CBC
,
NID_des_cbc
,
NID_md2
,
PKCS5_PBE_keyivgen
},
{
EVP_PBE_TYPE_OUTER
,
NID_pbeWithMD5AndDES_CBC
,
NID_des_cbc
,
NID_md5
,
PKCS5_PBE_keyivgen
},
{
EVP_PBE_TYPE_OUTER
,
NID_pbeWithSHA1AndRC2_CBC
,
NID_rc2_64_cbc
,
NID_sha1
,
PKCS5_PBE_keyivgen
},
{
EVP_PBE_TYPE_OUTER
,
NID_pbe_WithSHA1And128BitRC4
,
NID_rc4
,
NID_sha1
,
PKCS12_PBE_keyivgen
},
{
EVP_PBE_TYPE_OUTER
,
NID_pbe_WithSHA1And40BitRC4
,
NID_rc4_40
,
NID_sha1
,
PKCS12_PBE_keyivgen
},
{
EVP_PBE_TYPE_OUTER
,
NID_pbe_WithSHA1And3_Key_TripleDES_CBC
,
NID_des_ede3_cbc
,
NID_sha1
,
PKCS12_PBE_keyivgen
},
{
EVP_PBE_TYPE_OUTER
,
NID_pbe_WithSHA1And2_Key_TripleDES_CBC
,
NID_des_ede_cbc
,
NID_sha1
,
PKCS12_PBE_keyivgen
},
{
EVP_PBE_TYPE_OUTER
,
NID_pbe_WithSHA1And128BitRC2_CBC
,
NID_rc2_cbc
,
NID_sha1
,
PKCS12_PBE_keyivgen
},
{
EVP_PBE_TYPE_OUTER
,
NID_pbe_WithSHA1And40BitRC2_CBC
,
NID_rc2_40_cbc
,
NID_sha1
,
PKCS12_PBE_keyivgen
},
#ifndef OPENSSL_NO_HMAC
{
EVP_PBE_TYPE_OUTER
,
NID_pbes2
,
-
1
,
-
1
,
PKCS5_v2_PBE_keyivgen
},
#endif
{
EVP_PBE_TYPE_OUTER
,
NID_pbeWithMD2AndRC2_CBC
,
NID_rc2_64_cbc
,
NID_md2
,
PKCS5_PBE_keyivgen
},
{
EVP_PBE_TYPE_OUTER
,
NID_pbeWithMD5AndRC2_CBC
,
NID_rc2_64_cbc
,
NID_md5
,
PKCS5_PBE_keyivgen
},
{
EVP_PBE_TYPE_OUTER
,
NID_pbeWithSHA1AndDES_CBC
,
NID_des_cbc
,
NID_sha1
,
PKCS5_PBE_keyivgen
},
{
EVP_PBE_TYPE_PRF
,
NID_hmacWithSHA1
,
-
1
,
NID_sha1
,
0
},
{
EVP_PBE_TYPE_PRF
,
NID_id_HMACGostR3411_94
,
-
1
,
NID_id_GostR3411_94
,
0
},
{
EVP_PBE_TYPE_PRF
,
NID_hmacWithMD5
,
-
1
,
NID_md5
,
0
},
};
#ifdef TEST
int
main
(
int
argc
,
char
**
argv
)
{
int
i
,
nid_md
,
nid_cipher
;
EVP_PBE_CTL
*
tpbe
,
*
tpbe2
;
/*OpenSSL_add_all_algorithms();*/
for
(
i
=
0
;
i
<
sizeof
(
builtin_pbe
)
/
sizeof
(
EVP_PBE_CTL
);
i
++
)
{
tpbe
=
builtin_pbe
+
i
;
fprintf
(
stderr
,
"%d %d %s "
,
tpbe
->
pbe_type
,
tpbe
->
pbe_nid
,
OBJ_nid2sn
(
tpbe
->
pbe_nid
));
if
(
EVP_PBE_find
(
tpbe
->
pbe_type
,
tpbe
->
pbe_nid
,
&
nid_cipher
,
&
nid_md
,
0
))
fprintf
(
stderr
,
"Found %s %s
\n
"
,
OBJ_nid2sn
(
nid_cipher
),
OBJ_nid2sn
(
nid_md
));
else
fprintf
(
stderr
,
"Find ERROR!!
\n
"
);
}
return
0
;
}
#endif
int
EVP_PBE_CipherInit
(
ASN1_OBJECT
*
pbe_obj
,
const
char
*
pass
,
int
passlen
,
ASN1_TYPE
*
param
,
EVP_CIPHER_CTX
*
ctx
,
int
en_de
)
{
...
...
@@ -118,6 +184,17 @@ int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen,
return
1
;
}
static
int
pbe_cmp2
(
const
void
*
a
,
const
void
*
b
)
{
const
EVP_PBE_CTL
*
pbe1
=
a
;
const
EVP_PBE_CTL
*
pbe2
=
b
;
int
ret
=
pbe1
->
pbe_type
-
pbe2
->
pbe_type
;
if
(
ret
)
return
ret
;
else
return
pbe1
->
pbe_nid
-
pbe2
->
pbe_nid
;
}
static
int
pbe_cmp
(
const
char
*
const
*
a
,
const
char
*
const
*
b
)
{
const
EVP_PBE_CTL
*
const
*
pbe1
=
(
const
EVP_PBE_CTL
*
const
*
)
a
,
...
...
@@ -173,16 +250,30 @@ int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md,
int
EVP_PBE_find
(
int
type
,
int
pbe_nid
,
int
*
pcnid
,
int
*
pmnid
,
EVP_PBE_KEYGEN
**
pkeygen
)
{
EVP_PBE_CTL
*
pbetmp
,
pbelu
;
EVP_PBE_CTL
*
pbetmp
=
NULL
,
pbelu
;
int
i
;
if
(
pbe_nid
==
NID_undef
)
return
0
;
pbelu
.
pbe_type
=
type
;
pbelu
.
pbe_nid
=
pbe_nid
;
i
=
sk_find
(
pbe_algs
,
(
char
*
)
&
pbelu
);
if
(
i
==
-
1
)
if
(
pbe_algs
)
{
i
=
sk_find
(
pbe_algs
,
(
char
*
)
&
pbelu
);
if
(
i
!=
-
1
)
pbetmp
=
(
EVP_PBE_CTL
*
)
sk_value
(
pbe_algs
,
i
);
}
if
(
pbetmp
==
NULL
)
{
pbetmp
=
(
EVP_PBE_CTL
*
)
OBJ_bsearch
((
char
*
)
&
pbelu
,
(
char
*
)
builtin_pbe
,
sizeof
(
builtin_pbe
)
/
sizeof
(
EVP_PBE_CTL
),
sizeof
(
EVP_PBE_CTL
),
pbe_cmp2
);
}
if
(
pbetmp
==
NULL
)
return
0
;
pbetmp
=
(
EVP_PBE_CTL
*
)
sk_value
(
pbe_algs
,
i
);
if
(
pcnid
)
*
pcnid
=
pbetmp
->
cipher_nid
;
if
(
pmnid
)
...
...
crypto/evp/p5_crpt.c
浏览文件 @
b8f702a0
...
...
@@ -62,43 +62,11 @@
#include <openssl/x509.h>
#include <openssl/evp.h>
/*
PKCS#5 v1.5 compatible PBE functions: see PKCS#5 v2.0 for more info
.
/*
Doesn't do anything now: Builtin PBE algorithms in static table
.
*/
void
PKCS5_PBE_add
(
void
)
{
#ifndef OPENSSL_NO_DES
# ifndef OPENSSL_NO_MD5
EVP_PBE_alg_add
(
NID_pbeWithMD5AndDES_CBC
,
EVP_des_cbc
(),
EVP_md5
(),
PKCS5_PBE_keyivgen
);
# endif
# ifndef OPENSSL_NO_MD2
EVP_PBE_alg_add
(
NID_pbeWithMD2AndDES_CBC
,
EVP_des_cbc
(),
EVP_md2
(),
PKCS5_PBE_keyivgen
);
# endif
# ifndef OPENSSL_NO_SHA
EVP_PBE_alg_add
(
NID_pbeWithSHA1AndDES_CBC
,
EVP_des_cbc
(),
EVP_sha1
(),
PKCS5_PBE_keyivgen
);
# endif
#endif
#ifndef OPENSSL_NO_RC2
# ifndef OPENSSL_NO_MD5
EVP_PBE_alg_add
(
NID_pbeWithMD5AndRC2_CBC
,
EVP_rc2_64_cbc
(),
EVP_md5
(),
PKCS5_PBE_keyivgen
);
# endif
# ifndef OPENSSL_NO_MD2
EVP_PBE_alg_add
(
NID_pbeWithMD2AndRC2_CBC
,
EVP_rc2_64_cbc
(),
EVP_md2
(),
PKCS5_PBE_keyivgen
);
# endif
# ifndef OPENSSL_NO_SHA
EVP_PBE_alg_add
(
NID_pbeWithSHA1AndRC2_CBC
,
EVP_rc2_64_cbc
(),
EVP_sha1
(),
PKCS5_PBE_keyivgen
);
# endif
#endif
#ifndef OPENSSL_NO_HMAC
EVP_PBE_alg_add
(
NID_pbes2
,
NULL
,
NULL
,
PKCS5_v2_PBE_keyivgen
);
EVP_PBE_alg_add_type
(
EVP_PBE_TYPE_PRF
,
NID_hmacWithSHA1
,
-
1
,
NID_sha1
,
0
);
#endif
}
int
PKCS5_PBE_keyivgen
(
EVP_CIPHER_CTX
*
cctx
,
const
char
*
pass
,
int
passlen
,
...
...
crypto/pkcs12/p12_crpt.c
浏览文件 @
b8f702a0
...
...
@@ -60,28 +60,10 @@
#include "cryptlib.h"
#include <openssl/pkcs12.h>
/* PKCS#12
specific PBE functions
*/
/* PKCS#12
PBE algorithms now in static table
*/
void
PKCS12_PBE_add
(
void
)
{
#ifndef OPENSSL_NO_RC4
EVP_PBE_alg_add
(
NID_pbe_WithSHA1And128BitRC4
,
EVP_rc4
(),
EVP_sha1
(),
PKCS12_PBE_keyivgen
);
EVP_PBE_alg_add
(
NID_pbe_WithSHA1And40BitRC4
,
EVP_rc4_40
(),
EVP_sha1
(),
PKCS12_PBE_keyivgen
);
#endif
#ifndef OPENSSL_NO_DES
EVP_PBE_alg_add
(
NID_pbe_WithSHA1And3_Key_TripleDES_CBC
,
EVP_des_ede3_cbc
(),
EVP_sha1
(),
PKCS12_PBE_keyivgen
);
EVP_PBE_alg_add
(
NID_pbe_WithSHA1And2_Key_TripleDES_CBC
,
EVP_des_ede_cbc
(),
EVP_sha1
(),
PKCS12_PBE_keyivgen
);
#endif
#ifndef OPENSSL_NO_RC2
EVP_PBE_alg_add
(
NID_pbe_WithSHA1And128BitRC2_CBC
,
EVP_rc2_cbc
(),
EVP_sha1
(),
PKCS12_PBE_keyivgen
);
EVP_PBE_alg_add
(
NID_pbe_WithSHA1And40BitRC2_CBC
,
EVP_rc2_40_cbc
(),
EVP_sha1
(),
PKCS12_PBE_keyivgen
);
#endif
}
int
PKCS12_PBE_keyivgen
(
EVP_CIPHER_CTX
*
ctx
,
const
char
*
pass
,
int
passlen
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录