summaryrefslogtreecommitdiff
path: root/lib/libcrypto/bn/bn_sqrt.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libcrypto/bn/bn_sqrt.c')
-rw-r--r--lib/libcrypto/bn/bn_sqrt.c16
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;