Using Java Cryptography Architecture with OpenSSL
Hello,
I'm trying to create a RSA Public and Private key using JCA which I
think is working. It's creating the key files :-) . The problem I'm
running in to is when I try to sign a file with the private key using
openssl I get a error "unable to load key file".
Here is the code I'm using to create the Public and Private key (I
found it on Google and have modified it slightly)
import java.util.*;
import java.io.*;
import java.security.*;
import sun.misc.BASE64Encoder;
public class KeyGenRSA {
public static void main(String[] args) {
try {
KeyPairGenerator keyGen = KeyPairGenerator.getInstance
("RSA");
SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
keyGen.initialize(1024, random);
KeyPair pair = keyGen.generateKeyPair();
PrivateKey priv = pair.getPrivate();
PublicKey pub = pair.getPublic();
byte[] encPriv = priv.getEncoded();
FileOutputStream privfos = new FileOutputStream
("RSAPrivateKey.key");
String encPriStr = new BASE64Encoder().encode(encPriv);
//System.out.println(" Private Key = \n" + encPriStr);
privfos.write(encPriStr.getBytes());
privfos.close();
byte[] encPub = pub.getEncoded();
FileOutputStream pubfos = new FileOutputStream
("RSAPublicKey.key");
String encPubStr = new BASE64Encoder().encode(encPub);
//System.out.println(" Public Key = \n" + encPubStr);
pubfos.write(encPubStr.getBytes());
pubfos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Can someone please tell me how to fix this?
Thanks!