Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
cdd43b5b
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
9 个月 前同步成功
通知
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 搜索 >>
提交
cdd43b5b
编写于
1月 30, 2000
作者:
B
Bodo Möller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Documentation for BN_is_prime_fasttest.
上级
1baa9490
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
46 addition
and
18 deletion
+46
-18
CHANGES
CHANGES
+9
-5
doc/crypto/BN_generate_prime.pod
doc/crypto/BN_generate_prime.pod
+37
-13
未找到文件。
CHANGES
浏览文件 @
cdd43b5b
...
@@ -20,11 +20,15 @@
...
@@ -20,11 +20,15 @@
generation becomes much faster.
generation becomes much faster.
This implies a change for the callback functions in DSA_is_prime
This implies a change for the callback functions in DSA_is_prime
and DSA_generate_parameters: They are now called once for each
and DSA_generate_parameters: The callback function is called once
positive witness in the Rabin-Miller test, not just occasionally
for each positive witness in the Rabin-Miller test, not just
in the inner loop; and the parameters to the callback function now
occasionally in the inner loop; and the parameters to the
provide an iteration count for the outer loop rather than for the
callback function now provide an iteration count for the outer
current invocation of the inner loop.
loop rather than for the current invocation of the inner loop.
DSA_generate_parameters additionally can call the callback
function with an 'iteration count' of -1, meaning that a
candidate has passed the trial division test (when q is generated
from an application-provided seed, trial division is skipped).
[Bodo Moeller]
[Bodo Moeller]
*) New function BN_is_prime_fasttest that optionally does trial
*) New function BN_is_prime_fasttest that optionally does trial
...
...
doc/crypto/BN_generate_prime.pod
浏览文件 @
cdd43b5b
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
=head1 NAME
=head1 NAME
BN_generate_prime, BN_is_prime - Generate primes and test for primality
BN_generate_prime, BN_is_prime
, BN_is_prime_fasttest
- Generate primes and test for primality
=head1 SYNOPSIS
=head1 SYNOPSIS
...
@@ -14,11 +14,14 @@ BN_generate_prime, BN_is_prime - Generate primes and test for primality
...
@@ -14,11 +14,14 @@ BN_generate_prime, BN_is_prime - Generate primes and test for primality
int BN_is_prime(BIGNUM *a, int checks, void (*callback)(int, int,
int BN_is_prime(BIGNUM *a, int checks, void (*callback)(int, int,
void *), BN_CTX *ctx, void *cb_arg);
void *), BN_CTX *ctx, void *cb_arg);
int BN_is_prime_fasttest(BIGNUM *a, int checks, void (*callback)(int, int,
void *), BN_CTX *ctx, BN_CTX *ctx2, void *cb_arg, int do_trial_division);
=head1 DESCRIPTION
=head1 DESCRIPTION
BN_generate_prime() generates a pseudo-random prime number of B<num>
BN_generate_prime() generates a pseudo-random prime number of B<num>
bits.
bits.
If B<ret> is not
NULL
, it will be used to store the number.
If B<ret> is not
B<NULL>
, it will be used to store the number.
If B<callback> is not B<NULL>, it is called as follows:
If B<callback> is not B<NULL>, it is called as follows:
...
@@ -43,8 +46,8 @@ When a prime has been found, B<callback(2, i, cb_arg)> is called.
...
@@ -43,8 +46,8 @@ When a prime has been found, B<callback(2, i, cb_arg)> is called.
The prime may have to fulfill additional requirements for use in
The prime may have to fulfill additional requirements for use in
Diffie-Hellman key exchange:
Diffie-Hellman key exchange:
If B<add> is not
NULL
, the prime will fulfill the condition p % B<add>
If B<add> is not
B<NULL>
, the prime will fulfill the condition p % B<add>
== B<rem> (p % B<add> == 1 if B<rem> ==
NULL
) in order to suit a given
== B<rem> (p % B<add> == 1 if B<rem> ==
B<NULL>
) in order to suit a given
generator.
generator.
If B<safe> is true, it will be a safe prime (i.e. a prime p so
If B<safe> is true, it will be a safe prime (i.e. a prime p so
...
@@ -53,20 +56,40 @@ that (p-1)/2 is also prime).
...
@@ -53,20 +56,40 @@ that (p-1)/2 is also prime).
The PRNG must be seeded prior to calling BN_generate_prime().
The PRNG must be seeded prior to calling BN_generate_prime().
The prime number generation has a negligible error probability.
The prime number generation has a negligible error probability.
BN_is_prime() tests if the number B<a> is prime. This is done by
BN_is_prime() and BN_is_prime_fasttest test if the number B<a> is
performing a Miller-Rabin probabilistic primality test with B<checks>
prime. The following tests are performed until one of them shows that
iterations. If B<checks == BN_prime_check>, it uses a number
B<a> is composite; if B<a> passes all these tests, it is considered
of iterations that yields a false positive rate of at most 2^-80 for
prime.
random input.
=over 4
=item *
BN_is_prime_fasttest(), when called with B<do_trial_division == 1>,
first attempts trial division by a number of small primes;
if no divisors are found by this test and B<callback> is not B<NULL>,
B<callback(1, -1, cb_arg)> is called.
If B<do_trial_division == 0>, this test is skipped.
=item *
Both BN_is_prime() and BN_is_prime_fasttest() perform a Miller-Rabin
probabilistic primality test with B<checks> iterations. If
B<checks == BN_prime_check>, a number of iterations is used that
yields a false positive rate of at most 2^-80 for random input.
If B<callback> is not B<NULL>, B<callback(1, j, cb_arg)> is called
If B<callback> is not B<NULL>, B<callback(1, j, cb_arg)> is called
after the j-th iteration. B<ctx> is a pre-allocated B<BN_CTX> (to save
after the j-th iteration (j = 0, 1, ...). B<ctx> is a
the overhead of allocating and freeing the structure in a loop), or
pre-allocated B<BN_CTX> (to save the overhead of allocating and
NULL.
freeing the structure in a loop), or B<NULL>. For
BN_is_prime_fasttest(), B<ctx2> is a second pre-allocated B<BN_CTX> or
B<NULL> (lacking this parameter, BN_is_prime() always has to allocated
an additional B<CN_CTX>).
=head1 RETURN VALUES
=head1 RETURN VALUES
BN_generate_prime() returns the prime number on success,
NULL
otherwise.
BN_generate_prime() returns the prime number on success,
B<NULL>
otherwise.
BN_is_prime() returns 0 if the number is composite, 1 if it is
BN_is_prime() returns 0 if the number is composite, 1 if it is
prime with an error probability of less than 0.25^B<checks>, and
prime with an error probability of less than 0.25^B<checks>, and
...
@@ -83,5 +106,6 @@ L<bn(3)|bn(3)>, L<err(3)|err(3)>, L<rand(3)|rand(3)>
...
@@ -83,5 +106,6 @@ L<bn(3)|bn(3)>, L<err(3)|err(3)>, L<rand(3)|rand(3)>
The B<cb_arg> arguments to BN_generate_prime() and to BN_is_prime()
The B<cb_arg> arguments to BN_generate_prime() and to BN_is_prime()
were added in SSLeay 0.9.0. The B<ret> argument to BN_generate_prime()
were added in SSLeay 0.9.0. The B<ret> argument to BN_generate_prime()
was added in SSLeay 0.9.1.
was added in SSLeay 0.9.1.
BN_is_prime_fasttest() was added in OpenSSL 0.9.5.
=cut
=cut
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录