Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
ba6f95e8
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,发现更多精彩内容 >>
提交
ba6f95e8
编写于
4月 24, 2008
作者:
A
Andy Polyakov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add 64-bit support to BN_nist_mod_244 and engage BN_nist_mod_* on 64-bit
platforms.
上级
281066cb
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
20 addition
and
32 deletion
+20
-32
crypto/bn/bn_nist.c
crypto/bn/bn_nist.c
+20
-6
crypto/ec/ecp_nist.c
crypto/ec/ecp_nist.c
+0
-26
未找到文件。
crypto/bn/bn_nist.c
浏览文件 @
ba6f95e8
...
@@ -76,7 +76,7 @@ static const BN_ULONG _nist_p_224[][BN_NIST_224_TOP] = {
...
@@ -76,7 +76,7 @@ static const BN_ULONG _nist_p_224[][BN_NIST_224_TOP] = {
{
0x0000000000000001ULL
,
0xFFFFFFFF00000000ULL
,
{
0x0000000000000001ULL
,
0xFFFFFFFF00000000ULL
,
0xFFFFFFFFFFFFFFFFULL
,
0x00000000FFFFFFFFULL
},
0xFFFFFFFFFFFFFFFFULL
,
0x00000000FFFFFFFFULL
},
{
0x0000000000000002ULL
,
0xFFFFFFFE00000000ULL
,
{
0x0000000000000002ULL
,
0xFFFFFFFE00000000ULL
,
0xFFFFFFFFFFFFFFFFULL
,
0x0000000
0FFFFFFFFULL
}
0xFFFFFFFFFFFFFFFFULL
,
0x0000000
1FFFFFFFFULL
}
/* this one is "carry-full" */
};
};
static
const
BN_ULONG
_nist_p_256
[][
BN_NIST_256_TOP
]
=
{
static
const
BN_ULONG
_nist_p_256
[][
BN_NIST_256_TOP
]
=
{
{
0xFFFFFFFFFFFFFFFFULL
,
0x00000000FFFFFFFFULL
,
{
0xFFFFFFFFFFFFFFFFULL
,
0x00000000FFFFFFFFULL
,
...
@@ -148,6 +148,8 @@ static const BN_ULONG _nist_p_521[] = {0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
...
@@ -148,6 +148,8 @@ static const BN_ULONG _nist_p_521[] = {0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0xFFFFFFFF
,
0x000001FF
};
0xFFFFFFFF
,
0x000001FF
};
#else
#error "unsupported BN_BITS2"
#endif
#endif
const
BIGNUM
*
BN_get0_nist_prime_192
(
void
)
const
BIGNUM
*
BN_get0_nist_prime_192
(
void
)
...
@@ -321,7 +323,6 @@ typedef BN_ULONG (*bn_addsub_f)(BN_ULONG *,const BN_ULONG *,const BN_ULONG *,int
...
@@ -321,7 +323,6 @@ typedef BN_ULONG (*bn_addsub_f)(BN_ULONG *,const BN_ULONG *,const BN_ULONG *,int
int
BN_nist_mod_224
(
BIGNUM
*
r
,
const
BIGNUM
*
a
,
const
BIGNUM
*
field
,
int
BN_nist_mod_224
(
BIGNUM
*
r
,
const
BIGNUM
*
a
,
const
BIGNUM
*
field
,
BN_CTX
*
ctx
)
BN_CTX
*
ctx
)
{
{
#if BN_BITS2 == 32
int
top
=
a
->
top
,
i
;
int
top
=
a
->
top
,
i
;
int
carry
;
int
carry
;
BN_ULONG
*
r_d
,
*
a_d
=
a
->
d
;
BN_ULONG
*
r_d
,
*
a_d
=
a
->
d
;
...
@@ -354,8 +355,16 @@ int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
...
@@ -354,8 +355,16 @@ int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
else
else
r_d
=
a_d
;
r_d
=
a_d
;
#if BN_BITS2==64
/* copy upper 256 bits of 448 bit number ... */
nist_cp_bn_0
(
t_d
,
a_d
+
(
BN_NIST_224_TOP
-
1
),
top
-
(
BN_NIST_224_TOP
-
1
),
BN_NIST_224_TOP
);
/* ... and right shift by 32 to obtain upper 224 bits */
nist_set_224
(
buf
,
t_d
,
14
,
13
,
12
,
11
,
10
,
9
,
8
);
/* truncate lower part to 224 bits too */
r_d
[
BN_NIST_224_TOP
-
1
]
&=
BN_MASK2l
;
#else
nist_cp_bn_0
(
buf
,
a_d
+
BN_NIST_224_TOP
,
top
-
BN_NIST_224_TOP
,
BN_NIST_224_TOP
);
nist_cp_bn_0
(
buf
,
a_d
+
BN_NIST_224_TOP
,
top
-
BN_NIST_224_TOP
,
BN_NIST_224_TOP
);
#endif
nist_set_224
(
t_d
,
buf
,
10
,
9
,
8
,
7
,
0
,
0
,
0
);
nist_set_224
(
t_d
,
buf
,
10
,
9
,
8
,
7
,
0
,
0
,
0
);
carry
=
bn_add_words
(
r_d
,
r_d
,
t_d
,
BN_NIST_224_TOP
);
carry
=
bn_add_words
(
r_d
,
r_d
,
t_d
,
BN_NIST_224_TOP
);
nist_set_224
(
t_d
,
buf
,
0
,
13
,
12
,
11
,
0
,
0
,
0
);
nist_set_224
(
t_d
,
buf
,
0
,
13
,
12
,
11
,
0
,
0
,
0
);
...
@@ -365,9 +374,17 @@ int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
...
@@ -365,9 +374,17 @@ int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
nist_set_224
(
t_d
,
buf
,
0
,
0
,
0
,
0
,
13
,
12
,
11
);
nist_set_224
(
t_d
,
buf
,
0
,
0
,
0
,
0
,
13
,
12
,
11
);
carry
-=
bn_sub_words
(
r_d
,
r_d
,
t_d
,
BN_NIST_224_TOP
);
carry
-=
bn_sub_words
(
r_d
,
r_d
,
t_d
,
BN_NIST_224_TOP
);
#if BN_BITS2==64
carry
=
(
int
)(
r_d
[
BN_NIST_224_TOP
-
1
]
>>
32
);
#endif
u
.
f
=
bn_sub_words
;
u
.
f
=
bn_sub_words
;
if
(
carry
>
0
)
if
(
carry
>
0
)
{
carry
=
bn_sub_words
(
r_d
,
r_d
,
_nist_p_224
[
carry
-
1
],
BN_NIST_224_TOP
);
carry
=
bn_sub_words
(
r_d
,
r_d
,
_nist_p_224
[
carry
-
1
],
BN_NIST_224_TOP
);
#if BN_BITS2==64
carry
=
(
int
)(
~
(
r_d
[
BN_NIST_224_TOP
-
1
]
>>
32
))
&
1
;
#endif
}
else
if
(
carry
<
0
)
else
if
(
carry
<
0
)
{
{
/* it's a bit more comlicated logic in this case.
/* it's a bit more comlicated logic in this case.
...
@@ -392,9 +409,6 @@ int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
...
@@ -392,9 +409,6 @@ int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,
bn_correct_top
(
r
);
bn_correct_top
(
r
);
return
1
;
return
1
;
#else
/* BN_BITS!=32 */
return
0
;
#endif
}
}
#define nist_set_256(to, from, a1, a2, a3, a4, a5, a6, a7, a8) \
#define nist_set_256(to, from, a1, a2, a3, a4, a5, a6, a7, a8) \
...
...
crypto/ec/ecp_nist.c
浏览文件 @
ba6f95e8
...
@@ -112,10 +112,6 @@ const EC_METHOD *EC_GFp_nist_method(void)
...
@@ -112,10 +112,6 @@ const EC_METHOD *EC_GFp_nist_method(void)
return
&
ret
;
return
&
ret
;
}
}
#if BN_BITS2 == 64
#define NO_32_BIT_TYPE
#endif
int
ec_GFp_nist_group_copy
(
EC_GROUP
*
dest
,
const
EC_GROUP
*
src
)
int
ec_GFp_nist_group_copy
(
EC_GROUP
*
dest
,
const
EC_GROUP
*
src
)
{
{
dest
->
field_mod_func
=
src
->
field_mod_func
;
dest
->
field_mod_func
=
src
->
field_mod_func
;
...
@@ -139,34 +135,12 @@ int ec_GFp_nist_group_set_curve(EC_GROUP *group, const BIGNUM *p,
...
@@ -139,34 +135,12 @@ int ec_GFp_nist_group_set_curve(EC_GROUP *group, const BIGNUM *p,
if
(
BN_ucmp
(
BN_get0_nist_prime_192
(),
p
)
==
0
)
if
(
BN_ucmp
(
BN_get0_nist_prime_192
(),
p
)
==
0
)
group
->
field_mod_func
=
BN_nist_mod_192
;
group
->
field_mod_func
=
BN_nist_mod_192
;
else
if
(
BN_ucmp
(
BN_get0_nist_prime_224
(),
p
)
==
0
)
else
if
(
BN_ucmp
(
BN_get0_nist_prime_224
(),
p
)
==
0
)
{
#ifndef NO_32_BIT_TYPE
group
->
field_mod_func
=
BN_nist_mod_224
;
group
->
field_mod_func
=
BN_nist_mod_224
;
#else
ECerr
(
EC_F_EC_GFP_NIST_GROUP_SET_CURVE
,
EC_R_NOT_A_SUPPORTED_NIST_PRIME
);
goto
err
;
#endif
}
else
if
(
BN_ucmp
(
BN_get0_nist_prime_256
(),
p
)
==
0
)
else
if
(
BN_ucmp
(
BN_get0_nist_prime_256
(),
p
)
==
0
)
{
#ifndef NO_32_BIT_TYPE
group
->
field_mod_func
=
BN_nist_mod_256
;
group
->
field_mod_func
=
BN_nist_mod_256
;
#else
ECerr
(
EC_F_EC_GFP_NIST_GROUP_SET_CURVE
,
EC_R_NOT_A_SUPPORTED_NIST_PRIME
);
goto
err
;
#endif
}
else
if
(
BN_ucmp
(
BN_get0_nist_prime_384
(),
p
)
==
0
)
else
if
(
BN_ucmp
(
BN_get0_nist_prime_384
(),
p
)
==
0
)
{
#ifndef NO_32_BIT_TYPE
group
->
field_mod_func
=
BN_nist_mod_384
;
group
->
field_mod_func
=
BN_nist_mod_384
;
#else
ECerr
(
EC_F_EC_GFP_NIST_GROUP_SET_CURVE
,
EC_R_NOT_A_SUPPORTED_NIST_PRIME
);
goto
err
;
#endif
}
else
if
(
BN_ucmp
(
BN_get0_nist_prime_521
(),
p
)
==
0
)
else
if
(
BN_ucmp
(
BN_get0_nist_prime_521
(),
p
)
==
0
)
/* this one works in the NO_32_BIT_TYPE case */
group
->
field_mod_func
=
BN_nist_mod_521
;
group
->
field_mod_func
=
BN_nist_mod_521
;
else
else
{
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录