Problem ..please help

Hi all,

I am new in Java cryptography.

I am trying to compile an sample from java cryptography book ,I got the following error:

{{

Hancock.java:25: cannot resolve symbol

symbol : method getInstance ()

location: class java.security.KeyStore

KeyStore keystore = KeyStore.getInstance();

^

Hancock.java:26: load(java.io.InputStream,char[]) in java.security.KeyStore cann

ot be applied to (java.io.FileInputStream,java.lang.String)

keystore.load(new FileInputStream(keystorefile), storepass);

^

Hancock.java:29: cannot resolve symbol

symbol : method getPrivateKey (java.lang.String,java.lang.String)

location: class java.security.KeyStore

signature.initSign(keystore.getPrivateKey(alias, storepass));

^

3 errors

}}

Here is the code :

{{{

import java.io.*;

import java.security.*;

import javax.net.*;

//import javax.net.ssl.*;

//import com.sun.net.ssl.*;

public class Hancock {

public static void main(String[] args) throws Exception {

if (args.length != 6) {

System.out.println(

"Usage: Hancock -s|-v keystore storepass alias " +

"messagefile signaturefile");

return;

}

String options = args[0];

String keystorefile = args[1];

String storepass = args[2];

String alias = args[3];

String messagefile = args[4];

String signaturefile = args[5];

Signature signature = Signature.getInstance("DSA");

KeyStore keystore = KeyStore.getInstance();

keystore.load(new FileInputStream(keystorefile), storepass);

if (options.indexOf("s") != -1)

signature.initSign(keystore.getPrivateKey(alias, storepass));

else

signature.initVerify(keystore.getCertificate(alias).getPublicKey());

FileInputStream in = new FileInputStream(messagefile);

byte[] buffer = new byte[8192];

int length;

while ((length = in.read(buffer)) != -1)

signature.update(buffer, 0, length);

in.close();

if (options.indexOf("s") != -1) {

FileOutputStream out = new FileOutputStream(signaturefile);

byte[] raw = signature.sign();

out.write(raw);

out.close();

}

else {

FileInputStream sigIn = new FileInputStream(signaturefile);

byte[] raw = new byte[sigIn.available()];

sigIn.read(raw);

sigIn.close();

if (signature.verify(raw))

System.out.println("The signature is good.");

else

System.out.println("The signature is bad.");

}

}

}

}}}

[2624 byte] By [tamnet_83a] at [2007-11-26 14:20:16]
# 1

There is quite a bit wrong with that code. I have corrected the compilation errors and set the keystore type to "JCEKS" but I don't know which keystore type you want/need.

import java.io.*;

import java.security.*;

import javax.net.*;

//import javax.net.ssl.*;

//import com.sun.net.ssl.*;

public class Hancock

{

public static void main(String[] args) throws Exception

{

if (args.length != 6)

{

System.out.println(

"Usage: Hancock -s|-v keystore storepass alias " +

"messagefile signaturefile");

return;

}

String options = args[0];

String keystorefile = args[1];

String storepass = args[2];

String alias = args[3];

String messagefile = args[4];

String signaturefile = args[5];

Signature signature = Signature.getInstance("DSA");

KeyStore keystore = KeyStore.getInstance("JCEKS");

keystore.load(new FileInputStream(keystorefile), storepass.toCharArray());

if (options.indexOf("s") != -1)

{

KeyStore.PrivateKeyEntry entry = (KeyStore.PrivateKeyEntry)keystore.getEntry(alias, new KeyStore.PasswordProtection(storepass.toCharArray()));

signature.initSign(entry.getPrivateKey());

}

else

signature.initVerify(keystore.getCertificate(alias).getPublicKey());

FileInputStream in = new FileInputStream(messagefile);

byte[] buffer = new byte[8192];

int length;

while ((length = in.read(buffer)) != -1)

signature.update(buffer, 0, length);

in.close();

if (options.indexOf("s") != -1)

{

FileOutputStream out = new FileOutputStream(signaturefile);

byte[] raw = signature.sign();

out.write(raw);

out.close();

}

else

{

FileInputStream sigIn = new FileInputStream(signaturefile);

byte[] raw = new byte[sigIn.available()];

sigIn.read(raw);

sigIn.close();

if (signature.verify(raw))

System.out.println("The signature is good.");

else

System.out.println("The signature is bad.");

}

}

}

sabre150a at 2007-7-8 2:11:37 > top of Java-index,Security,Cryptography...