Hallo Forum-Nutzer,
ich habe folgenden Teilcode:
So (auskommentiert) funktioniert das Senden/Empfangen über das Netzwerk einwandfrei. Wenn ich allerdings den Cipher dazwischenschalte, dann wird angeblich gesendet, allerdings bei der anderen Partei nichts empfangen.
Woran liegt das?
Klar, in diesem Fall könnte man auch den SLLSocket/SLLServerSocket verwenden, aber hier muss es doch auch funktionieren, oder?
Frage:Warum empfängt die andere Partei nichts?
Danke im Voraus!
Mit freundlichen Grüßen
Seikuassi
ich habe folgenden Teilcode:
Java:
private Key initKey(){
return new SecretKeySpec(this.AES_pwd,this.algor);
}
private final byte[]AES_pwd={x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x}; // x ersetzt durch Zahlen (16 Bytes)
private final String algor="AES";
Java:
Cipher cipher;
this.close();
if(this.type==TYPE.CLIENT){ // wenn ein Client erstellt werden soll
this.socket=new Socket();
this.socket.setReceiveBufferSize(this.bufferSize);
this.socket.setSendBufferSize(this.bufferSize);
this.socket.setSoTimeout(this.timeout);
this.socket.connect(new InetSocketAddress(IP,this.port),this.timeout); // mit Server verbinden
{ // Cipher fuer den Empfang von Daten initialisieren
cipher=Cipher.getInstance(this.algor);
cipher.init(Cipher.DECRYPT_MODE,this.initKey());
}
this.in=new DataInputStream(/*new CipherInputStream(*/new BufferedInputStream(this.socket.getInputStream())/*,cipher)*/); // <-- hier
{ // Cipher fuer das Versenden von Daten initialisieren
cipher=Cipher.getInstance(this.algor);
cipher.init(Cipher.ENCRYPT_MODE,this.initKey());
}
this.out=new DataOutputStream(/*new CipherOutputStream(*/new BufferedOutputStream(this.socket.getOutputStream())/*,cipher)*/); // <-- hier
this.isConnected=true;
classes.Network.changeStatusIcon(true); // Status aendern
}else{ // wenn ein Server erstellt werden soll
this.server=new ServerSocket(this.port);
this.server.setSoTimeout(this.timeout);
this.socket=this.server.accept(); // mit Client verbinden
{ // Cipher fuer den Empfang von Daten initialisieren
cipher=Cipher.getInstance(this.algor);
cipher.init(Cipher.DECRYPT_MODE,this.initKey());
}
this.in=new DataInputStream(/*new CipherInputStream(*/new BufferedInputStream(this.socket.getInputStream())/*,cipher)*/); // <-- hier
{ // Cipher fuer das Versenden von Daten initialisieren
cipher=Cipher.getInstance(this.algor);
cipher.init(Cipher.ENCRYPT_MODE,this.initKey());
}
this.out=new DataOutputStream(/*new CipherOutputStream(*/new BufferedOutputStream(this.socket.getOutputStream())/*,cipher)*/); // <-- hier
this.isConnected=true;
classes.Network.changeStatusIcon(true); // Status aendern
}
So (auskommentiert) funktioniert das Senden/Empfangen über das Netzwerk einwandfrei. Wenn ich allerdings den Cipher dazwischenschalte, dann wird angeblich gesendet, allerdings bei der anderen Partei nichts empfangen.
Woran liegt das?
Klar, in diesem Fall könnte man auch den SLLSocket/SLLServerSocket verwenden, aber hier muss es doch auch funktionieren, oder?
Frage:Warum empfängt die andere Partei nichts?
Danke im Voraus!
Mit freundlichen Grüßen
Seikuassi