/** * initialise the signer for signing or verification. * * @param forSigning true if for signing, false otherwise * @param parameters necessary parameters. */ public void init(boolean forSigning, CipherParameters parameters) { this.forSigning = forSigning; AsymmetricKeyParameter k; if (parameters instanceof ParametersWithRandom) { k = (AsymmetricKeyParameter) ((ParametersWithRandom) parameters).getParameters(); } else { k = (AsymmetricKeyParameter) parameters; } if (forSigning && !k.isPrivate()) { throw new IllegalArgumentException("signing requires private key"); } if (!forSigning && k.isPrivate()) { throw new IllegalArgumentException("verification requires public key"); } reset(); rsaEngine.init(forSigning, parameters); }