Witam mam problem z tworzeniem szyfrowanych strumieni danych. Oto kod mojego serwera:
import java.io.*;
import java.net.*;
import java.security.*;
import java.sql.Time;
import java.util.concurrent.TimeUnit;
import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
import javax.crypto.NoSuchPaddingException;
public class Server
{
public static void main(String[] args) throws IOException, NoSuchAlgorithmException, InvalidKeyException, NoSuchPaddingException, InterruptedException, ClassNotFoundException
{
new Server();
System.out.println("stworzony obiekt");
}
public Server() throws IOException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InterruptedException, ClassNotFoundException
{
ServerSocket ss = new ServerSocket(7500);
ServerSocket ss2 = new ServerSocket(7600);
Socket socket = ss.accept();
ObjectInputStream ois = null;//new ObjectInputStream(socket.getInputStream());
ObjectOutputStream ous = new ObjectOutputStream(socket.getOutputStream());
System.out.println("Server - udalo sie");
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
KeyPair pair = kpg.generateKeyPair();
Key publiczny = pair.getPublic();
Key prywatny = pair.getPrivate();
ous.writeObject(publiczny);
System.out.println("server - wyslalem klucz");
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.DECRYPT_MODE, prywatny);
try
{
ois = new ObjectInputStream(new CipherInputStream(socket.getInputStream(), cipher));
}catch(Exception e)
{
e.printStackTrace();
}finally
{
System.out.println("server - wywalilo");
}
System.out.println("server - zrobilem strumien");
while(true)
ois.readObject();
}
}
Program zatrzymuje mi się na instrukcji ois = new ObjectInputStream(new CipherInputStream(socket.getInputStream(), cipher));.Output:
Server - udalo sie
server - wyslalem klucz
Co to moze byc? Jak rozlacze klienta pokazuje sie wyjatek i wyswietla kolejne dwa komunikaty
server - wywalilo
server - zrobilem strumien
Wiec nie jest to kwestia nieprzechwyconego wyjatku.Program po prostu zawiesza sie na konstruktorze strumienia wejsciowego. Z gory dzieki za pomoc. Pozdrawiam