Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
6dff52e8
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,发现更多精彩内容 >>
提交
6dff52e8
编写于
1月 26, 2011
作者:
D
Dr. Stephen Henson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
FIPS HMAC changes:
Use EVP macros. Use tiny EVP in FIPS mode.
上级
df6de39f
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
13 addition
and
9 deletion
+13
-9
crypto/hmac/hmac.c
crypto/hmac/hmac.c
+13
-9
未找到文件。
crypto/hmac/hmac.c
浏览文件 @
6dff52e8
...
@@ -55,6 +55,9 @@
...
@@ -55,6 +55,9 @@
* copied and put under another distribution licence
* copied and put under another distribution licence
* [including the GNU Public Licence.]
* [including the GNU Public Licence.]
*/
*/
#define OPENSSL_FIPSEVP
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
#include <string.h>
#include <string.h>
...
@@ -78,7 +81,7 @@ int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
...
@@ -78,7 +81,7 @@ int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
if
(
key
!=
NULL
)
if
(
key
!=
NULL
)
{
{
reset
=
1
;
reset
=
1
;
j
=
EVP_MD_block_size
(
md
);
j
=
M_
EVP_MD_block_size
(
md
);
OPENSSL_assert
(
j
<=
(
int
)
sizeof
(
ctx
->
key
));
OPENSSL_assert
(
j
<=
(
int
)
sizeof
(
ctx
->
key
));
if
(
j
<
len
)
if
(
j
<
len
)
{
{
...
@@ -107,14 +110,14 @@ int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
...
@@ -107,14 +110,14 @@ int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
pad
[
i
]
=
0x36
^
ctx
->
key
[
i
];
pad
[
i
]
=
0x36
^
ctx
->
key
[
i
];
if
(
!
EVP_DigestInit_ex
(
&
ctx
->
i_ctx
,
md
,
impl
))
if
(
!
EVP_DigestInit_ex
(
&
ctx
->
i_ctx
,
md
,
impl
))
goto
err
;
goto
err
;
if
(
!
EVP_DigestUpdate
(
&
ctx
->
i_ctx
,
pad
,
EVP_MD_block_size
(
md
)))
if
(
!
EVP_DigestUpdate
(
&
ctx
->
i_ctx
,
pad
,
M_
EVP_MD_block_size
(
md
)))
goto
err
;
goto
err
;
for
(
i
=
0
;
i
<
HMAC_MAX_MD_CBLOCK
;
i
++
)
for
(
i
=
0
;
i
<
HMAC_MAX_MD_CBLOCK
;
i
++
)
pad
[
i
]
=
0x5c
^
ctx
->
key
[
i
];
pad
[
i
]
=
0x5c
^
ctx
->
key
[
i
];
if
(
!
EVP_DigestInit_ex
(
&
ctx
->
o_ctx
,
md
,
impl
))
if
(
!
EVP_DigestInit_ex
(
&
ctx
->
o_ctx
,
md
,
impl
))
goto
err
;
goto
err
;
if
(
!
EVP_DigestUpdate
(
&
ctx
->
o_ctx
,
pad
,
EVP_MD_block_size
(
md
)))
if
(
!
EVP_DigestUpdate
(
&
ctx
->
o_ctx
,
pad
,
M_
EVP_MD_block_size
(
md
)))
goto
err
;
goto
err
;
}
}
if
(
!
EVP_MD_CTX_copy_ex
(
&
ctx
->
md_ctx
,
&
ctx
->
i_ctx
))
if
(
!
EVP_MD_CTX_copy_ex
(
&
ctx
->
md_ctx
,
&
ctx
->
i_ctx
))
...
@@ -163,11 +166,12 @@ void HMAC_CTX_init(HMAC_CTX *ctx)
...
@@ -163,11 +166,12 @@ void HMAC_CTX_init(HMAC_CTX *ctx)
int
HMAC_CTX_copy
(
HMAC_CTX
*
dctx
,
HMAC_CTX
*
sctx
)
int
HMAC_CTX_copy
(
HMAC_CTX
*
dctx
,
HMAC_CTX
*
sctx
)
{
{
if
(
!
EVP_MD_CTX_copy
(
&
dctx
->
i_ctx
,
&
sctx
->
i_ctx
))
HMAC_CTX_init
(
dctx
);
if
(
!
EVP_MD_CTX_copy_ex
(
&
dctx
->
i_ctx
,
&
sctx
->
i_ctx
))
goto
err
;
goto
err
;
if
(
!
EVP_MD_CTX_copy
(
&
dctx
->
o_ctx
,
&
sctx
->
o_ctx
))
if
(
!
EVP_MD_CTX_copy
_ex
(
&
dctx
->
o_ctx
,
&
sctx
->
o_ctx
))
goto
err
;
goto
err
;
if
(
!
EVP_MD_CTX_copy
(
&
dctx
->
md_ctx
,
&
sctx
->
md_ctx
))
if
(
!
EVP_MD_CTX_copy
_ex
(
&
dctx
->
md_ctx
,
&
sctx
->
md_ctx
))
goto
err
;
goto
err
;
memcpy
(
dctx
->
key
,
sctx
->
key
,
HMAC_MAX_MD_CBLOCK
);
memcpy
(
dctx
->
key
,
sctx
->
key
,
HMAC_MAX_MD_CBLOCK
);
dctx
->
key_length
=
sctx
->
key_length
;
dctx
->
key_length
=
sctx
->
key_length
;
...
@@ -208,7 +212,7 @@ unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len,
...
@@ -208,7 +212,7 @@ unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len,
void
HMAC_CTX_set_flags
(
HMAC_CTX
*
ctx
,
unsigned
long
flags
)
void
HMAC_CTX_set_flags
(
HMAC_CTX
*
ctx
,
unsigned
long
flags
)
{
{
EVP_MD_CTX_set_flags
(
&
ctx
->
i_ctx
,
flags
);
M_
EVP_MD_CTX_set_flags
(
&
ctx
->
i_ctx
,
flags
);
EVP_MD_CTX_set_flags
(
&
ctx
->
o_ctx
,
flags
);
M_
EVP_MD_CTX_set_flags
(
&
ctx
->
o_ctx
,
flags
);
EVP_MD_CTX_set_flags
(
&
ctx
->
md_ctx
,
flags
);
M_
EVP_MD_CTX_set_flags
(
&
ctx
->
md_ctx
,
flags
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录