Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
f75abcef
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
1 年多 前同步成功
通知
10
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看板
提交
f75abcef
编写于
11月 06, 2003
作者:
G
Geoff Thorpe
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
This extends the debugging macros to use "pollution" during
bn_correct_top(), previously only bn_check_top() did this.
上级
18f62d4b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
25 addition
and
22 deletion
+25
-22
crypto/bn/bn.h
crypto/bn/bn.h
+25
-22
未找到文件。
crypto/bn/bn.h
浏览文件 @
f75abcef
...
...
@@ -617,15 +617,6 @@ BIGNUM *bn_dup_expand(const BIGNUM *a, int words);
* defined. This not only improves external code, it provides more test
* coverage for openssl's own code.
*/
#define bn_correct_top(a) \
{ \
BN_ULONG *ftl; \
if ((a)->top > 0) \
{ \
for (ftl= &((a)->d[(a)->top-1]); (a)->top > 0; (a)->top--) \
if (*(ftl--)) break; \
} \
}
/* #define BN_DEBUG_RAND */
...
...
@@ -640,42 +631,54 @@ BIGNUM *bn_dup_expand(const BIGNUM *a, int words);
int
RAND_pseudo_bytes
(
unsigned
char
*
buf
,
int
num
);
#define BN_DEBUG_TRIX
#endif
#define bn_
check_top
(a) \
#define bn_
pollute
(a) \
do { \
const BIGNUM *_tbignum = (a); \
assert((_tbignum->top == 0) || \
(_tbignum->d[_tbignum->top - 1] != 0)); \
if(_tbignum->top < _tbignum->dmax) { \
const BIGNUM *_bnum1 = (a); \
if(_bnum1->top < _bnum1->dmax) { \
/* We cast away const without the compiler knowing, any \
* *genuinely* constant variables that aren't mutable \
* wouldn't be constructed with top!=dmax. */
\
BN_ULONG *_not_const; \
memcpy(&_not_const, &_
tbignum
->d, sizeof(BN_ULONG*)); \
RAND_pseudo_bytes((unsigned char *)(_not_const + _
tbignum
->top), \
(_
tbignum->dmax - _tbignum
->top) * sizeof(BN_ULONG)); \
memcpy(&_not_const, &_
bnum1
->d, sizeof(BN_ULONG*)); \
RAND_pseudo_bytes((unsigned char *)(_not_const + _
bnum1
->top), \
(_
bnum1->dmax - _bnum1
->top) * sizeof(BN_ULONG)); \
} \
} while(0)
#ifdef BN_DEBUG_TRIX
#undef RAND_pseudo_bytes
#endif
#else
/* !BN_DEBUG_RAND */
#else
#define bn_pollute(a)
#endif
#define bn_check_top(a) \
do { \
const BIGNUM *_tbignum = (a); \
assert((_tbignum->top == 0) || \
(_tbignum->d[_tbignum->top - 1] != 0)); \
const BIGNUM *_bnum2 = (a); \
assert((_bnum2->top == 0) || \
(_bnum2->d[_bnum2->top - 1] != 0)); \
bn_pollute(_bnum2); \
} while(0)
#endif
#define bn_fix_top(a) bn_check_top(a)
#else
/* !BN_DEBUG */
#define bn_pollute(a)
#define bn_check_top(a)
#define bn_fix_top(a) bn_correct_top(a)
#endif
#define bn_correct_top(a) \
{ \
BN_ULONG *ftl; \
if ((a)->top > 0) \
{ \
for (ftl= &((a)->d[(a)->top-1]); (a)->top > 0; (a)->top--) \
if (*(ftl--)) break; \
} \
bn_pollute(a); \
}
BN_ULONG
bn_mul_add_words
(
BN_ULONG
*
rp
,
const
BN_ULONG
*
ap
,
int
num
,
BN_ULONG
w
);
BN_ULONG
bn_mul_words
(
BN_ULONG
*
rp
,
const
BN_ULONG
*
ap
,
int
num
,
BN_ULONG
w
);
void
bn_sqr_words
(
BN_ULONG
*
rp
,
const
BN_ULONG
*
ap
,
int
num
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录