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;
- };
- }
|