aboutsummaryrefslogtreecommitdiff
path: root/crypto.c
diff options
context:
space:
mode:
authorMarkus Teich <markus.teich@stusta.mhn.de>2016-06-22 02:05:00 +0200
committerMarkus Teich <markus.teich@stusta.mhn.de>2016-06-22 02:05:00 +0200
commit965b4da7794b3fd0812907559c9434f98f4819fc (patch)
tree838c4ef500976af4ba636d04a246d4034a670819 /crypto.c
parent8d717c4b3d126104929aeb5e3a2176dd534e25ea (diff)
smc_zkp_dl: make v an output parameter
Diffstat (limited to 'crypto.c')
-rw-r--r--crypto.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/crypto.c b/crypto.c
index d7d2e0f..3619f3c 100644
--- a/crypto.c
+++ b/crypto.c
@@ -616,15 +616,15 @@ smc_compute_outcome (struct AuctionData *ad)
* smc_zkp_dl creates a proof of knowledge of @a x with \f$v = xg\f$ where
* \f$g\f$ is the base point on Ed25519.
*
- * @param[in] v input point. Must be known to the verifier.
+ * @param[out] v output point. Must be known to the verifier.
* @param[in] x private key. Knowledge of this number is certified in the proof
* @param[out] proof pointer where to save the output proof structure. Must be
* shared with the verifier.
*/
void
-smc_zkp_dl (const gcry_mpi_point_t v,
- const gcry_mpi_t x,
- struct proof_dl *proof)
+smc_zkp_dl (gcry_mpi_point_t v,
+ const gcry_mpi_t x,
+ struct proof_dl *proof)
{
struct zkp_challenge_dl challenge;
struct brandt_hash_code challhash;
@@ -633,6 +633,9 @@ smc_zkp_dl (const gcry_mpi_point_t v,
gcry_mpi_t c = gcry_mpi_new (0);
gcry_mpi_t z = gcry_mpi_new (0);
+ /* v = xg */
+ gcry_mpi_ec_mul (v, x, ec_gen, ec_ctx);
+
/* a = zg */
ec_keypair_create (a, z);