import { random2048 } from "./random_primes.js"; import { mod_exp } from "./math"; class PlaintextVerifier { constructor(cyphertext, value, pub_key) { this.proving = (cyphertext * mod_exp(pub_key.g, value, pub_key.n ** 2)) % pub_key.n ** 2; this.challenge = random2048(); } verify(response) {} } class PlaintextProver { constructor(cyphertext, pub_key, priv_key) { this.value = priv_key.decrypt(cyphertext.text); this.mixin = random2048(); this.pubKey = pub_key; } handleChallenge(challenge) { return ( (this.mixin * mod_exp(cyphertext.mixin, challenge, this.pubKey.n)) % this.pubKey.n ); } }