Im doing an encryption project for school implementing numerous
encryption algorthms ie..... DES, DESede , Blowfish ect....

All of the encryption algorthms use symmetrical keys so i have
to try and implement a java.security.KeyStore; in my program
to hold the keys.

The encryption side of my project is completed but i cant decrypt
until i figure out a way to store these keys. The problem i am having is that i dont fully understand what some of the parameters are for some of the methods in the java.security.KeyStore;

for instance:

protected KeyStore(KeyStoreSpi keyStoreSpi, Provider provider,
String type);

What is KeyStoreSpi?

There is only one constructor for this class so i have to provide all of the arguments. But i have no clue what KeyStoreSpi is.


next:
setKeyEntry(String alias, byte[] key, java.security.cert.Certificate[] chain);

now, secret keys are stored like private keys except they do not have a certificate chain associated with them. so what do i pass in for java.security.cert.Certificate [] chain?

any help would be greatly appreciated