Skip to Main Content

Java Security

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Encryption using IBM JCE

843810Dec 29 2003 — edited Sep 21 2004
Help.. it doesn't work.. the size of the output file is always 0 kb..

import java.io.*;
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;
import sun.misc.*;

public class clase {

private final static int BUFFER = 32;

private static Cipher cp = null;
private static PublicKey rsaPub = null;
private static PrivateKey rsaPriv = null;


public static void main(String argv[]) {

String provider = "IBMJCE";

try {

KeyPairGenerator rsaKeyPairGen;
KeyPair rsaKeyPair;

Provider[] providers = Security.getProviders();
for (int i = 0; i < providers.length; i++) {
System.out.println("Provider: "+providers.getName());
}

if (Security.getProvider(provider) == null) {
try {
System.out.println("Installing provider " + provider);
Security.addProvider((Provider) Class.forName(provider).newInstance());
} catch (Exception ex) {
System.out.println("Cannot install provider: " + ex);
return;
}
}


System.out.println(getDateTime() + " Generate an RSA key pair");
try {
rsaKeyPairGen = KeyPairGenerator.getInstance("RSA", provider);
} catch (NoSuchAlgorithmException ex) {
System.out.println("RSA KeyPair Generator not found in "+provider+" provider.");
return;
} catch (NoSuchProviderException ex) {
System.out.println("Provider "+provider+" not found.");
return;
}


System.out.println(getDateTime() + " Use modulus length = 1024");
rsaKeyPairGen.initialize(1024);
rsaKeyPair = rsaKeyPairGen.generateKeyPair();
if (rsaKeyPair == null) {
System.out.println(
"Key generation failure. KeyPair was not generated.");
return;
}

System.out.println(getDateTime() + " get RSA public key");
rsaPub = rsaKeyPair.getPublic();
System.out.println(rsaPub);

System.out.println(getDateTime() + " get RSA private key");
rsaPriv = rsaKeyPair.getPrivate();
System.out.println(rsaPriv);


System.out.println(getDateTime() + " generate RSA cipher");
try {
cp = Cipher.getInstance("RSA", provider);
} catch (NoSuchAlgorithmException ex) {
System.out.println("RSA cipher not found in "+provider+" provider. "+ex);
return;
} catch (NoSuchProviderException ex) {
System.out.println("Provider "+provider+" not found.");
return;
} catch (NoSuchPaddingException ex) {
System.out.println("Invalid padding.");
return;
}


FileInputStream fis;
FileOutputStream fos;
CipherOutputStream cos;

try {
cp.init(Cipher.ENCRYPT_MODE, rsaPub);
System.out.println(" "+cp.getAlgorithm());
System.out.println(" "+cp.getProvider());

fis = new FileInputStream("C:\\Interc\\receiver_in_001\\test.txt");
fos = new FileOutputStream("C:\\Interc\\receiver_in_001\\test1.txt");
cos = new CipherOutputStream(fos, cp);

System.out.println(getDateTime() + " Init");

byte[] b = new byte[8];
int i = fis.read(b);
while (i != -1) {
System.out.println(getDateTime() + " Writing");
cos.write(b, 0, i);
i = fis.read(b);
}
cos.flush();
cos.close();
fos.close();
fis.close();

System.out.println(getDateTime() + " Finish");



} catch (Exception e) {
System.out.println("error: " + e);
}





} catch (Exception e){
System.out.println("Exception: "+e);
}


}

private static String getDateTime() {

return "";
}



}
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 19 2004
Added on Dec 29 2003
14 comments
1,788 views