123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- /*
- * 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 = PlaintextExponentEqualityProofTestData;
- /**
- * Provides the data needed by the plaintext exponent equality zero-knowledge
- * proof of knowledge unit tests.
- */
- function PlaintextExponentEqualityProofTestData() {
- var NUM_BASE_ELEMENTS = 5;
- var PLAINTEXT_EXPONENT_EQUALITY_PROOF_STRING_DATA =
- 'Test Plaintext Exponent Equality Proof Auxilary Data';
- var OTHER_PLAINTEXT_EXPONENT_EQUALITY_PROOF_STRING_DATA =
- PLAINTEXT_EXPONENT_EQUALITY_PROOF_STRING_DATA + '0';
- var NUM_PLAINTEXT_EXPONENT_EQUALITY_PROOF_PROGRESS_CHECKS = NUM_BASE_ELEMENTS;
- var mathRandomGenerator = mathematical.newService().newRandomGenerator();
- var commonTestData = new CommonTestData();
- var group_ = commonTestData.getGroup();
- var anotherGroup_ = commonTestData.getAnotherGroup();
- var firstSecret_ = mathRandomGenerator.nextExponent(group_);
- var secondSecret_ = mathRandomGenerator.nextExponent(group_);
- var anotherFirstSecret_;
- do {
- anotherFirstSecret_ = mathRandomGenerator.nextExponent(group_);
- } while (anotherFirstSecret_.value.equals(firstSecret_.value));
- var anotherSecondSecret_;
- do {
- anotherSecondSecret_ = mathRandomGenerator.nextExponent(group_);
- } while (anotherSecondSecret_.value.equals(secondSecret_.value));
- var firstSecretFromAnotherGroup_ =
- mathRandomGenerator.nextExponent(anotherGroup_);
- var secondSecretFromAnotherGroup_ =
- 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_ = commonTestData.generateRandomGroupElements(
- group_, (NUM_BASE_ELEMENTS - 2));
- var baseElementsFromAnotherGroup_ =
- commonTestData.generateRandomGroupElements(
- anotherGroup_, NUM_BASE_ELEMENTS);
- var ciphertext_ =
- commonTestData.generatePlaintextExponentEqualityProofCiphertext(
- baseElements_, firstSecret_, secondSecret_);
- var anotherCiphertext_ =
- commonTestData.generatePlaintextExponentEqualityProofCiphertext(
- otherBaseElements_, firstSecret_, secondSecret_);
- var ciphertextWithLessElements_ =
- commonTestData.generatePlaintextExponentEqualityProofCiphertext(
- lessBaseElements_, firstSecret_, secondSecret_);
- var ciphertextFromAnotherGroup_ =
- commonTestData.generatePlaintextExponentEqualityProofCiphertext(
- baseElementsFromAnotherGroup_, firstSecretFromAnotherGroup_,
- secondSecretFromAnotherGroup_);
- this.getGroup = function() {
- return group_;
- };
- this.getAnotherGroup = function() {
- return anotherGroup_;
- };
- this.getFirstSecret = function() {
- return firstSecret_;
- };
- this.getSecondSecret = function() {
- return secondSecret_;
- };
- this.getAnotherFirstSecret = function() {
- return anotherFirstSecret_;
- };
- this.getAnotherSecondSecret = function() {
- return anotherSecondSecret_;
- };
- this.getFirstSecretFromAnotherGroup = function() {
- return firstSecretFromAnotherGroup_;
- };
- this.getSecondSecretFromAnotherGroup = function() {
- return secondSecretFromAnotherGroup_;
- };
- this.getBaseElements = function() {
- return baseElements_;
- };
- this.getOtherBaseElements = function() {
- return otherBaseElements_;
- };
- this.getLessBaseElements = function() {
- return lessBaseElements_;
- };
- this.getBaseElementsFromAnotherGroup = function() {
- return baseElementsFromAnotherGroup_;
- };
- this.getCiphertext = function() {
- return ciphertext_;
- };
- this.getAnotherCiphertext = function() {
- return anotherCiphertext_;
- };
- this.getCiphertextWithLessElements = function() {
- return ciphertextWithLessElements_;
- };
- this.getCiphertextFromAnotherGroup = function() {
- return ciphertextFromAnotherGroup_;
- };
- this.getStringData = function() {
- return PLAINTEXT_EXPONENT_EQUALITY_PROOF_STRING_DATA;
- };
- this.getOtherStringData = function() {
- return OTHER_PLAINTEXT_EXPONENT_EQUALITY_PROOF_STRING_DATA;
- };
- this.getNumProgressChecks = function() {
- return NUM_PLAINTEXT_EXPONENT_EQUALITY_PROOF_PROGRESS_CHECKS;
- };
- }
|