View Javadoc
1   package civitas.crypto.publickey;
2   
3   import org.springframework.stereotype.Controller;
4   
5   import civitas.crypto.parameters.ElGamalParameters;
6   import civitas.crypto.privatekey.ElGamalPrivateKey;
7   
8   @Controller
9   public class ElGamalPublicKeyisAuthorized {
10  
11  	public boolean apply(final ElGamalPublicKey that, final Object prf) {
12  		if (prf instanceof ElGamalPrivateKey k) {
13  			ElGamalParameters param = that.params;
14  			return that.y.equals(param.g.modPow(k.x(), param.p));
15  		}
16  		return false;
17  	}
18  }