src/psyc/psyc_api.c
src/psycstore/gnunet-service-psycstore.c
src/psycstore/plugin_psycstore_sqlite.c
-src/psycstore/psyc_util_lib.c
src/psycstore/psycstore_api.c
src/psycstore/psyc_util_lib.c
+src/psycstore/psyc_util_lib.c
src/pt/gnunet-daemon-pt.c
src/regex/gnunet-daemon-regexprofiler.c
src/regex/gnunet-regex-profiler.c
src/util/server_tc.c
src/util/service.c
src/util/signal.c
+src/util/socks.c
src/util/speedup.c
src/util/strings.c
src/util/time.c
gcry_mpi_point_t *r_inv);
+/**
+ * Obtain a random scalar for point multiplication on the curve and
+ * its multiplicative inverse.
+ *
+ * @param edc calculation context for ECC operations
+ * @param[out] r set to a random scalar on the curve
+ * @param[out] r_inv set to the multiplicative inverse of @a r
+ */
+void
+GNUNET_CRYPTO_ecc_rnd_mpi (struct GNUNET_CRYPTO_EccDlogContext *edc,
+ gcry_mpi_t *r,
+ gcry_mpi_t *r_inv);
+
+
/**
* Generate a random value mod n.
*
}
+/**
+ * Obtain a random scalar for point multiplication on the curve and
+ * its multiplicative inverse.
+ *
+ * @param edc calculation context for ECC operations
+ * @param[out] r set to a random scalar on the curve
+ * @param[out] r_inv set to the multiplicative inverse of @a r
+ */
+void
+GNUNET_CRYPTO_ecc_rnd_mpi (struct GNUNET_CRYPTO_EccDlogContext *edc,
+ gcry_mpi_t *r,
+ gcry_mpi_t *r_inv)
+{
+ gcry_mpi_t n;
+
+ *r = GNUNET_CRYPTO_ecc_random_mod_n (edc);
+ /* r_inv = n - r = - r */
+ *r_inv = gcry_mpi_new (0);
+ n = gcry_mpi_ec_get_mpi ("n", edc->ctx, 1);
+ gcry_mpi_sub (*r_inv, n, *r);
+}
+
+
/**
* Free a point value returned by the API.
*