protected void engineInitSign( PrivateKey privateKey) throws InvalidKeyException { CipherParameters param = RSAUtil.generatePrivateKeyParameter((RSAPrivateKey)privateKey); signer.init(true, param); }
protected void engineInitVerify( PublicKey publicKey) throws InvalidKeyException { CipherParameters param = RSAUtil.generatePublicKeyParameter((RSAPublicKey)publicKey); signer.init(false, param); }
protected void engineInitVerify( PublicKey publicKey) throws InvalidKeyException { CipherParameters param = RSAUtil.generatePublicKeyParameter((RSAPublicKey)publicKey); signer.init(false, param); }
protected void engineInitSign( PrivateKey privateKey) throws InvalidKeyException { CipherParameters param = RSAUtil.generatePrivateKeyParameter((RSAPrivateKey)privateKey); signer.init(true, param); }
RSAEngine rsa = new RSAEngine(); //DS as SHA1 Digest dig = new SHA1Digest(); //3rd parameter "true" indicates implicit which means TF1(octet BC) ISO9796d2Signer eng = new ISO9796d2Signer(rsa, dig, true); eng.init(false, pubKeyParameter); eng.verifySignature(sig); // if the signature is valid eng.getRecoveredMessage(); // get the recovered message, only after successful signature verification
RSAKeyParameters pubParameters = new RSAKeyParameters(false, mod3, pub3); RSAKeyParameters privParameters = new RSAKeyParameters(true, mod3, pri3); RSAEngine rsa = new RSAEngine(); byte[] data; ISO9796d2Signer eng = new ISO9796d2Signer(rsa, new RIPEMD128Digest()); eng.init(true, privParameters); eng.update(msg4[0]); eng.update(msg4, 1, msg4.length - 1); data = eng.generateSignature(); eng.init(false, pubParameters); eng.update(msg4[0]); eng.update(msg4, 1, msg4.length - 1); if (eng.hasFullMessage()) { eng = new ISO9796d2Signer(rsa, new RIPEMD128Digest()); eng.init(false, pubParameters); if (!eng.verifySignature(sig4)) { // signature tampered with } byte[] message = eng.getRecoveredMessage(), 0, msg4); }