Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
btwise
openssl
提交
70ba4ee5
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,发现更多精彩内容 >>
提交
70ba4ee5
编写于
11月 03, 2007
作者:
A
Andy Polyakov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Commit #16325 fixed one thing but broke DH with certain moduli.
上级
31f528b1
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
12 addition
and
7 deletion
+12
-7
crypto/bn/bn_mul.c
crypto/bn/bn_mul.c
+12
-7
未找到文件。
crypto/bn/bn_mul.c
浏览文件 @
70ba4ee5
...
...
@@ -389,6 +389,7 @@ BN_ULONG bn_add_part_words(BN_ULONG *r,
* a[0]*b[0]+a[1]*b[1]+(a[0]-a[1])*(b[1]-b[0])
* a[1]*b[1]
*/
/* dnX may not be positive, but n2/2+dnX has to be */
void
bn_mul_recursive
(
BN_ULONG
*
r
,
BN_ULONG
*
a
,
BN_ULONG
*
b
,
int
n2
,
int
dna
,
int
dnb
,
BN_ULONG
*
t
)
{
...
...
@@ -398,7 +399,7 @@ void bn_mul_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n2,
BN_ULONG
ln
,
lo
,
*
p
;
# ifdef BN_COUNT
fprintf
(
stderr
,
" bn_mul_recursive %d
* %d
\n
"
,
n2
,
n2
);
fprintf
(
stderr
,
" bn_mul_recursive %d
%+d * %d%+d
\n
"
,
n2
,
dna
,
n2
,
dnb
);
# endif
# ifdef BN_MUL_COMBA
# if 0
...
...
@@ -545,6 +546,7 @@ void bn_mul_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n2,
/* n+tn is the word length
* t needs to be n*4 is size, as does r */
/* tnX may not be negative but less than n */
void
bn_mul_part_recursive
(
BN_ULONG
*
r
,
BN_ULONG
*
a
,
BN_ULONG
*
b
,
int
n
,
int
tna
,
int
tnb
,
BN_ULONG
*
t
)
{
...
...
@@ -553,8 +555,8 @@ void bn_mul_part_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n,
BN_ULONG
ln
,
lo
,
*
p
;
# ifdef BN_COUNT
fprintf
(
stderr
,
" bn_mul_part_recursive (%d
+%d) * (%d+%
d)
\n
"
,
tna
,
n
,
tnb
,
n
);
fprintf
(
stderr
,
" bn_mul_part_recursive (%d
%+d) * (%d%+
d)
\n
"
,
n
,
tna
,
n
,
tnb
);
# endif
if
(
n
<
8
)
{
...
...
@@ -655,16 +657,19 @@ void bn_mul_part_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n,
for
(;;)
{
i
/=
2
;
if
(
i
<=
tna
&&
tna
==
tnb
)
/* these simplified conditions work
* exclusively because difference
* between tna and tnb is 1 or 0 */
if
(
i
<
tna
||
i
<
tnb
)
{
bn_mul_recursive
(
&
(
r
[
n2
]),
bn_mul_
part_
recursive
(
&
(
r
[
n2
]),
&
(
a
[
n
]),
&
(
b
[
n
]),
i
,
tna
-
i
,
tnb
-
i
,
p
);
break
;
}
else
if
(
i
<
tna
||
i
<
tnb
)
else
if
(
i
==
tna
||
i
==
tnb
)
{
bn_mul_
part_
recursive
(
&
(
r
[
n2
]),
bn_mul_recursive
(
&
(
r
[
n2
]),
&
(
a
[
n
]),
&
(
b
[
n
]),
i
,
tna
-
i
,
tnb
-
i
,
p
);
break
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录