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