-/* $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. */
/* ====================================================================
#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;