SecurityException nur bei Java 1.4.2

Beanpole

Grünschnabel
Hallo,
ich habe wieder mal ein echtes Problem. Ich möchte eine Datei entschlüsseln, und zwar mit einem Private Key. Diese Datei wurde logischerweise zuvor mit dem entsprechenden Public Key verschlüsselt. Die Funktion sieht folgnedermaßen aus:

private byte[] decryptionContentKey(RSAPrivateKey privKey,byte[] chiffr) throws Exception {

Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.DECRYPT_MODE, privKey);
contentKey = cipher.doFinal(chiffr);
return contentKey;

}//end_decryptioncontentKey


Ich will also den verschlüsselten Bytecode chiffr mit dem Private Key privKey entschlüsseln. Die Sache funktioniert einwandfrei mit Java 1.4.0 und 1.4.1! Nun habe ich mich entschieden, bei mir endlich Version 1.4.2 zu installieren und bekomme nun die verrücktesten Fehlermeldungen:

java.lang.ExceptionInInitializerError at javax.crypto.Cipher.a(DashoA6275)
...
Caused by: java.lang.SecurityException: Cannot set up certs for trusted CAs at javax.crypto.SunJCE_b.<clinit>(DashoA6275)
...
Caused by: java.lang.SecurityException:Signature classes have been tampered with
...


Achso, direkt bemeckert wird folgende Zeile:
Cipher cipher = Cipher.getInstance("RSA");

Ich bin echt verwirrt! Kann mir jemand weiterhelfen?

Danke i.V.

Gruß, Andi Schimmelpfennig
 
Hi hier eine Antwort die ich aus einem anderen Forum habe.
Derjenige hatte das selbe Problem, allerdings benutzte er ein Weblogic-Verschlüsslungs-package. Hat aber das Problem behoben. Er musste nur die Providerliste anpassen, vielleicht hilft es dir.

<snippet>
1. Go to $JAVA_HOME/jre/lib/security directory
2. You should find the file java.security
3. Edit the file to add the following line to the list of providers:

security.provider.3=com.sun.crypto.provider.SunJCE

The new list looks like this:

#
# List of providers and their preference orders (see above):
#
security.provider.1=sun.security.provider.Sun
security.provider.2=com.sun.rsajca.Provider
security.provider.3=com.sun.crypto.provider.SunJCE

This adds the provider SunJCE to the list of providers.

4. Copy the following files to jre/lib/ext directory:

US_export_policy.jar
jce1_2_1.jar
sunjce_provider.jar
local_policy.jar

That should work like a charm.
<snippet end>
 
Besten Dank für den Tip!

Es war so, dass der JCE-Provider selbst ein Fehler in seinem Package hatte ... davon gab es im Oktober ein Update ... hatte ich nicht drauf geachtet. Mit dem neuen PAckage klappt es jetzt!

Achso, ich spreche von der JCE-Provider Assembla!

Gruß,
Beanpole
 
Zurück