AES Key 256 Illegal Key Size auch bei Änderung der Policy

realheat

Mitglied
Hallo,

folgender Code führt zur Exception (java.security.InvalidKeyException: Illegal key size):
Java:
KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(256);
SecretKey secretKey = keyGenerator.generateKey();
Cipher decryption = Cipher.getInstance("AES/CBC/PKCS5PADDING");
decryption.init(Cipher.DECRYPT_MODE, secretKey, new IvParameterSpec(secretKey.getEncoded())); // <-- Illegal key size
Nun ist es ja bekannt und wurde im Internet mehrmals erwähnt, dass die Policy geändert werden muss. Dies funktioniert ja eigentlich, da ich ja sonst kein 256 Key erzeugen konnte.
Folgenden Weg bin ich gegangenen um die Policy zu ändern:
1. Datei runtergeladen: Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7 Download
2. Dateien local_policy und US_export_policy in das Verzeichnis /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre/lib/security kopiert.
3. Neugestartet

Keine Ahnung was man nun noch für Hulutänze vollbringen muss, dass ich nun endlich eine richtige Verschlüsselung verwenden darf.

Mac OSX 10.9.1
Java Version:
Code:
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)
 
Zuletzt bearbeitet:
Bist du sicher, das dein Programm genau mit der JRE startet in der du die beiden Dateien kopiert hast?

  • local_policy.jar
  • US_export_policy.jar
 
hallo,

ich habe mit dem Befehl "echo $JAVA_HOME" den Pfad zur JRE getestet und er hatte gepasst.
Code:
/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home)
Zudem habe ich mein Java Programm explizit mit der JRE Version 1.7.0_40 aufgerufen
Code:
/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/java -jar ...
und es hatte nicht funktioniert.
Als ich jedoch diese Dateien in dem Ordner
Code:
/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home/jre/lib/security
hinzugefügt habe, welches ich eigentlich garnicht nutze, dann hatte es funktioniert, d.h. es gibt unter OSX noch irgendwelche Einstellungen, welche JRE immer verwendet wird.
Wisst Ihr wo diese Einstellungen von OSX Mavericks sind?
 
Zuletzt bearbeitet:
@TO
/jdk/bin/ sind lediglich die jdk-tools, die VM des jdk selbst findet sich in /jdk/jre/bin
findet man auch irgendwo in den java-docs erklärt

nebenbei : anstatt dir mit sowas das ganze system zu zerwürgen und auf die gefahr hin das es ja dann doch nicht bei anderen läuft : wenn dir die JCE zu limited ist nutze einfach andere provider , z.B. BounceCastle
 

Zurück
Oben