# Probleme mit ECC bei Bouncy Castle



## Wayko (7. Apr 2010)

Hallo Leute,

vielleicht kann mir jemand von euch helfen. Ich hatte vor mithilfe von Bouncy Castle einen Text zu verschlüsseln und entschlüssel unter Einsatz von elliptischen Kurven. Gesagt getan.
Jedoch erhalte ich nun eine Fehlermeldung und zwar "Illegal key size" an der nachfolgenden Stelle im Quellcode.
Ich muss auch sagen, dass ich wenig ahnung habe, was die Parameter bei 1. &, 2. machen währe nett wenn es mir jemand kurz erklären kann. Aber wichtiger ist es mir, dass der Fehler weggeht und ich verschlüssel und endschlüsseln kann. Selbst das Beispiel aus "ECIESTest.java" (die Datei mit 7KB) welche bei dem Packate dabei war konnte mir nicht helfen, da ich dort genau den selben fehler erhalte, auch ohne etwas am Quellcode zu ändern.
Vielleicht weis einer von euch, woran das liegen könnte. Bin fast am verzweifeln.
[JAVA=42]import java.security.KeyPair;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;
import java.security.Security;
import javax.crypto.Cipher;

import org.bouncycastle.jce.provider.asymmetric.ec.KeyPairGenerator;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.jce.spec.IEKeySpec;
import org.bouncycastle.jce.spec.IESParameterSpec;


public class Test{

	/**
	 * @param args
	 * @throws Exception 
	 */
	public static void main(String[] args) throws Exception {
	Security.addProvider(new BouncyCastleProvider());

	KeyPairGenerator kpg = (KeyPairGenerator) KeyPairGenerator.getInstance("ECIES", "BC");

	kpg.initialize(192, new SecureRandom());

	KeyPair keyPair = kpg.generateKeyPair();
    PublicKey pubKey = keyPair.getPublic();
	PrivateKey privKey = keyPair.getPrivate();

	 byte[]  d = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 }; // 1. was machen die Parameter? :/
     byte[]  e = new byte[] { 8, 7, 6, 5, 4, 3, 2, 1 }; 

	 IESParameterSpec param = new IESParameterSpec(d, e, 128); // 2. und diese?
	 IEKeySpec   c1Key = new IEKeySpec(privKey, pubKey);
	 Cipher cipher = Cipher.getInstance("ECIES", "BC");
	 cipher.init(Cipher.ENCRYPT_MODE, c1Key, param);//<---------  Da kommt der fehler
}
}[/code]


----------



## faetzminator (7. Apr 2010)

Für was die byte[]s sind steht (nunja, nicht sehr kommentiert...) in der Javadoc: IESParameterSpec (Bouncy Castle Library 1.38 API Specification)
Was diese genau machen? Da müsste ich den Algorithmus näher kennen


----------



## sdfaasdfasdf (4. Mai 2010)

Hast du vielleicht vergessen, die Dateien local_policy.jar und US_export_policy.jar in <JRE>/lib/security zu kopieren? Ohne diese Dateien gehen Schlüssellängen wie die von dir eingesetzten 192 Bit nicht.

Die Dateien gibt es hier unter dem Stichwort „Unlimited Strength Jurisdiction Policy Files“: Java SE Downloads - Sun Developer Network (SDN)


----------

