diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libcrypto/bn/bn_sqrt.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/lib/libcrypto/bn/bn_sqrt.c b/src/lib/libcrypto/bn/bn_sqrt.c index 644797d667..d9ab545496 100644 --- a/src/lib/libcrypto/bn/bn_sqrt.c +++ b/src/lib/libcrypto/bn/bn_sqrt.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_sqrt.c,v 1.11 2022/06/20 15:02:21 tb Exp $ */ | 1 | /* $OpenBSD: bn_sqrt.c,v 1.12 2022/11/19 12:25:23 tb Exp $ */ |
2 | /* Written by Lenka Fibikova <fibikova@exp-math.uni-essen.de> | 2 | /* Written by Lenka Fibikova <fibikova@exp-math.uni-essen.de> |
3 | * and Bodo Moeller for the OpenSSL project. */ | 3 | * and Bodo Moeller for the OpenSSL project. */ |
4 | /* ==================================================================== | 4 | /* ==================================================================== |
@@ -59,14 +59,16 @@ | |||
59 | 59 | ||
60 | #include "bn_lcl.h" | 60 | #include "bn_lcl.h" |
61 | 61 | ||
62 | /* | ||
63 | * Returns 'ret' such that ret^2 == a (mod p), if it exists, using the | ||
64 | * Tonelli-Shanks algorithm following Henri Cohen, "A Course in Computational | ||
65 | * Algebraic Number Theory", algorithm 1.5.1, Springer, Berlin, 1996. | ||
66 | * | ||
67 | * Note: 'p' must be prime! | ||
68 | */ | ||
69 | |||
62 | BIGNUM * | 70 | BIGNUM * |
63 | BN_mod_sqrt(BIGNUM *in, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx) | 71 | BN_mod_sqrt(BIGNUM *in, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx) |
64 | /* Returns 'ret' such that | ||
65 | * ret^2 == a (mod p), | ||
66 | * using the Tonelli/Shanks algorithm (cf. Henri Cohen, "A Course | ||
67 | * in Algebraic Computational Number Theory", algorithm 1.5.1). | ||
68 | * 'p' must be prime! | ||
69 | */ | ||
70 | { | 72 | { |
71 | BIGNUM *ret = in; | 73 | BIGNUM *ret = in; |
72 | int err = 1; | 74 | int err = 1; |