Dies ist eine alte Version des Dokuments!
Java Cryptography Extension (JCE)
Deprecated
Bei aktuellen OpenJDK-Versionen (wie 11) ist dies nicht mehr nötig!Debian + Oracle Java
Wichtig: bei der Verwendung von OpenJDK nicht nötig, dort sind alle neueren Crypt-Routinen schon enthalten. Sofern Sie aus irgendwelchen Gründen das nicht-freie Oracle-Java unter Debian/Ubuntu nutzen müssen, sollten Sie die Extensions nachinstallieren:
apt-get install oracle-java8-unlimited-jce-policy
Linux (mehr oder weniger) generisch
Wenn die Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files installiert sind, muss der folgende Befehl true
zurückliefern:
jrunscript -e 'print (javax.crypto.Cipher.getMaxAllowedKeyLength("AES") >= 2147483647);'
Alternativ kann zum Testen folgendes Skript verwendet werden:
NB: Das Script funktioniert nur, wenn ein JDK installiert ist (JRE Headless genügt nicht)!
#!/bin/bash TMPFILE=/tmp/TestJCE cat <<EOF >${TMPFILE}.java import javax.crypto.Cipher; public class TestJCE { public static void main(String[] args) { try { System.out.println("Testing Cipher.getMaxAllowedKeyLength(\"AES\")..."); int maxKeyLen = Cipher.getMaxAllowedKeyLength("AES"); System.out.println("Keylength: " + maxKeyLen); if (maxKeyLen <=128) { System.out.println("Missing JCE."); return; } if (maxKeyLen < 2147483647) { System.out.println("JCE not fully functional (<2147483647)"); } else { System.out.println("JCE OK"); } } catch (Exception e) { System.out.println("Exception: " + e); } } } EOF JAVA=java if [ -n "$JAVA_HOME" ]; then if [ -f "$JAVA_HOME/bin/java" ]; then JAVA=$JAVA_HOME/bin/java else echo "JAVA_HOME=$JAVA_HOME not set correctly. Abort." exit 1 fi fi ${JAVA}c ${TMPFILE}.java $JAVA -version cd `dirname ${TMPFILE}` $JAVA `basename ${TMPFILE}` rm -f ${TMPFILE}.java ${TMPFILE}.class