Solved

Java and Cryptix Cryptography

Posted on 2002-07-06
9
269 Views
Last Modified: 2009-07-29
In order to try to encrypt a file I have been using the Cryptix JCE toolkit, and API, but seem to have a problem in trying to get my program to compile. The code that I have is as follows (DES is just until I get it working by the way).

Cipher desCipher;
desCipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
desCipher.init(Cipher.ENCRYPT_MODE, key);

When I try to compile the class, I am left with the error message

cipher.java [33:1] cannot resolve symbol
symbol  : method init  (int,java.lang.String)
location: class javax.crypto.Cipher
                desCipher.init(Cipher.ENCRYPT_MODE, key);
                         ^
As far as I can tell I have all of the correct import statements in the program

import javax.crypto.*;
import javax.crypto.spec.*;
import javax.security.*;

But don't seem to be able to get it to work. (I am using SDK 1.3.0)

How can I get the program to compile (and any example code would also be useful)
0
Comment
Question by:Mikey_B
  • 4
  • 3
9 Comments
 
LVL 35

Expert Comment

by:girionis
Comment Utility
 Are you sure you are using the latest classes? If not make sure you upgrade and recompile. This error message usually means that you are trying to access a method that does not exist any more (but when the classes were written it was there).

  IF you are using the latest APIs make sure that you are trying to access the init method of the right class.

  Hope it helps.
0
 
LVL 35

Expert Comment

by:girionis
Comment Utility
 ... also make sure that your init method does indeed takeas parameters an int and a String.
0
 
LVL 92

Accepted Solution

by:
objects earned 500 total points
Comment Utility
The key variable needs to be of type java.security.Key and not a String.
0
 
LVL 92

Expert Comment

by:objects
Comment Utility
Here's some code to generate a key pair which you couls then use and/or save to disk:

KeyPairGenerator kpg = KeyPairGenerator.getInstance(algorithm);
kpg.initialize(1024, new SecureRandom());
KeyPair pair = kpg.generateKeyPair();
Key priv = pair.getPrivate();
Key pub = pair.getPublic();
0
Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

 

Author Comment

by:Mikey_B
Comment Utility
Changing the type from String, to java.security.Key stops the cannot resolve symbol message, but also means that I can't initialise it as I was trying before. How do I get the passPhrase from a String to a Key?
0
 
LVL 92

Expert Comment

by:objects
Comment Utility
You need to create a Key object. I included code above to generate public/private keys.
0
 
LVL 92

Expert Comment

by:objects
Comment Utility
To generate a key from a passphrase try something like this:

char[] passPhrase = "....
KeySpec spec = new PBEKeySpec(passPhrase);
SecretKeyFactory factory = SecretKeyFactory.getInstance(algorithm);
SecretKey key = factory.generateSecret(spec);
0
 
LVL 35

Expert Comment

by:girionis
Comment Utility
No comment has been added lately, so it's time to clean up this TA.

I will leave a recommendation in the Cleanup topic area that this question is:

- points to objects

Please leave any comments here within the
next seven days.

PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER !

girionis
Cleanup Volunteer
0

Featured Post

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

After being asked a question last year, I went into one of my moods where I did some research and code just for the fun and learning of it all.  Subsequently, from this journey, I put together this article on "Range Searching Using Visual Basic.NET …
Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. Java Flight Recorder is a profiling and event collectio…
Viewers learn how to read error messages and identify possible mistakes that could cause hours of frustration. Coding is as much about debugging your code as it is about writing it. Define Error Message: Line Numbers: Type of Error: Break Down…
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now