Przechowywanie tajnego klucza AES za pomocą magazynu kluczy w Javie

Używam magazynu kluczy Java do przechowywania tajnego klucza do szyfrowania AES.

final String strToEncrypt = "Hello World";
KeyGenerator kg = KeyGenerator.getInstance("AES");
kg.init(128);
SecretKey sk = kg.generateKey();
String secretKey = String.valueOf(Hex.encodeHex(sk.getEncoded()));   
//Storing AES Secret key in keystore
KeyStore ks = KeyStore.getInstance("JCEKS");
char[] password = "keystorepassword".toCharArray();
java.io.FileInputStream fis = null;
try {
  fis = new java.io.FileInputStream("keyStoreName");
  ks.load(fis, password);
} finally {
  if (fis != null) {
    fis.close();
  }

  KeyStore.ProtectionParameter protParam = 
    new KeyStore.PasswordProtection(password);

  KeyStore.SecretKeyEntry skEntry = new KeyStore.SecretKeyEntry(sk);
  ks.setEntry("secretKeyAlias", skEntry, protParam);

Ale otrzymuję następujący wyjątek.

Wyjątek w wątku „main” java.security.KeyStoreException: Niezainicjowany magazyn kluczy
at java.security.KeyStore.setEntry (nieznane źródło)

Jak naprawić ten błąd? Z góry dziękuję

questionAnswers(2)

yourAnswerToTheQuestion