Dear all,
I have implemented an RSA with BC provider using JCE as platform.
FYI,I am using j2sdk1.4.2_05 in Windows 98.
But I hits the following error:
class "org.bouncycastle.crypto.params.ParametersWithRandom 's signer
information does not match signer information of other classes in the same
package. Null pointer exception in "cipher.init(Cipher.ENCRYPT_MODE, keyPair.getPublic());"
The code is like follow:
===========================================================
import java.security.*;
import javax.crypto.*;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
public class PublicCipher{
private static final int KEY_SIZE = 1024;
public static void main(
String [] args) throws Exception{
byte [] plainText = "This is a session".getBytes("UTF8");
Security.addProvider(new BouncyCastleProvider());
KeyPairGenerator gen = KeyPairGenerator.getInstance("RSA");
gen.initialize(KEY_SIZE);
KeyPair keyPair = gen.generateKeyPair();
System.out.println("RSA Key pair generated.");
Cipher cipher = null;
try{
//obtain RSA Cipher
cipher =
Cipher.getInstance("RSA/ECB/PKCS1Padding","BC");
System.out.println(cipher.getProvider().getInfo());
}catch(Exception e){
System.out.println("err1"+e.toString());
}
//encrypt with public key.
cipher.init(Cipher.ENCRYPT_MODE, keyPair.getPublic());
byte [] cipherText = cipher.doFinal(plainText);
System.out.println(new String(cipherText,"UTF8"));
//decrypt with private key
cipher.init(Cipher.ENCRYPT_MODE, keyPair.getPrivate());
byte [] newPlainText = cipher.doFinal(cipherText);
System.out.println(new String(newPlainText,"UTF8"));
}
}
Please help me.
Thanks in advance.
Regards,
John Peter
