View Javadoc
1   package civitas.crypto.proofdisclog;
2   
3   import org.springframework.stereotype.Controller;
4   
5   import civitas.crypto.parameters.ElGamalParameters;
6   
7   @Controller
8   public class VerifyElGamalProofDiscLogEquality {
9   
10  	public boolean apply(final ElGamalProofDiscLogEquality that, final ElGamalParameters prms) {
11  		ElGamalParameters params = prms;
12  		try {
13  			return that.g1()
14  							.modPow(that.r(), params.p)
15  							.equals(that.a().modMultiply(that.v().modPow(that.c(), params.p), params.p))
16  					&& that.g2()
17  							.modPow(that.r(), params.p)
18  							.equals(that.b().modMultiply(that.w().modPow(that.c(), params.p), params.p));
19  		} catch (NullPointerException | ArithmeticException e) {
20  			return false;
21  		}
22  	}
23  }