Java and Cryptix Cryptography

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)
Mikey_BAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
objectsConnect With a Mentor Commented:
The key variable needs to be of type java.security.Key and not a String.
0
 
girionisCommented:
 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
 
girionisCommented:
 ... also make sure that your init method does indeed takeas parameters an int and a String.
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
objectsCommented:
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
 
Mikey_BAuthor Commented:
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
 
objectsCommented:
You need to create a Key object. I included code above to generate public/private keys.
0
 
objectsCommented:
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
 
girionisCommented:
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.