| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 | /* * Copyright 2018 Scytl Secure Electronic Voting SA * * All rights reserved * * See our extended copyright notice in *file 'Copyright.txt' which is part of this source code package *//* jshint node:true */'use strict';var CommonTestData = require('./common-data');var mathematical = require('scytl-mathematical');module.exports = ExponentiationProofTestData;/** * Provides the data needed by the exponentiation zero-knowledge proof of * knowledge unit tests. */function ExponentiationProofTestData() {  var NUM_BASE_ELEMENTS = 3;  var EXPONENTIATION_PROOF_STRING_DATA =      'Test Exponentation Proof Auxilary Data';  var OTHER_EXPONENTIATION_PROOF_STRING_DATA =      EXPONENTIATION_PROOF_STRING_DATA + '0';  var NUM_EXPONENTIATION_PROOF_PROGRESS_CHECKS = NUM_BASE_ELEMENTS;  var mathRandomGenerator = mathematical.newService().newRandomGenerator();  var commonTestData = new CommonTestData();  var group_ = commonTestData.getGroup();  var anotherGroup_ = commonTestData.getAnotherGroup();  var secret_ = mathRandomGenerator.nextExponent(group_);  var anotherSecret_;  do {    anotherSecret_ = mathRandomGenerator.nextExponent(group_);  } while (anotherSecret_.value.equals(secret_.value));  var secretFromAnotherGroup_ = mathRandomGenerator.nextExponent(anotherGroup_);  var baseElements_ =      commonTestData.generateRandomGroupElements(group_, NUM_BASE_ELEMENTS);  var otherBaseElements_;  do {    otherBaseElements_ =        commonTestData.generateRandomGroupElements(group_, NUM_BASE_ELEMENTS);  } while (otherBaseElements_.equals(baseElements_));  var lessBaseElements_ = baseElements_.slice(1);  var baseElementsFromAnotherGroup_ =      commonTestData.generateRandomGroupElements(          anotherGroup_, NUM_BASE_ELEMENTS);  var exponentiatedElements_ =      commonTestData.exponentiateElements(baseElements_, secret_);  var otherExponentiatedElements_ =      commonTestData.exponentiateElements(baseElements_, anotherSecret_);  var tooManyBaseElements =      commonTestData.generateRandomGroupElements(group_, NUM_BASE_ELEMENTS + 1);  var tooManyExponentiatedElements_ =      commonTestData.exponentiateElements(tooManyBaseElements, secret_);  var exponentiatedElementsFromAnotherGroup_ =      commonTestData.exponentiateElements(          baseElementsFromAnotherGroup_, secretFromAnotherGroup_);  this.getGroup = function() {    return group_;  };  this.getAnotherGroup = function() {    return anotherGroup_;  };  this.getSecret = function() {    return secret_;  };  this.getAnotherSecret = function() {    return anotherSecret_;  };  this.getSecretFromAnotherGroup = function() {    return secretFromAnotherGroup_;  };  this.getBaseElements = function() {    return baseElements_;  };  this.getOtherBaseElements = function() {    return otherBaseElements_;  };  this.getLessBaseElements = function() {    return lessBaseElements_;  };  this.getBaseElementsFromAnotherGroup = function() {    return baseElementsFromAnotherGroup_;  };  this.getExponentiatedElements = function() {    return exponentiatedElements_;  };  this.getOtherExponentiatedElements = function() {    return otherExponentiatedElements_;  };  this.getTooManyExponentiatedElements = function() {    return tooManyExponentiatedElements_;  };  this.getExponentiatedElementsFromAnotherGroup = function() {    return exponentiatedElementsFromAnotherGroup_;  };  this.getStringData = function() {    return EXPONENTIATION_PROOF_STRING_DATA;  };  this.getOtherStringData = function() {    return OTHER_EXPONENTIATION_PROOF_STRING_DATA;  };  this.getNumProgressChecks = function() {    return NUM_EXPONENTIATION_PROOF_PROGRESS_CHECKS;  };}
 |