static void Main(string[] args) { var ApplicationOcspResponse = new OCSPResponse(); ApplicationOcspResponse = StartAcceptor(); StartClient(ApplicationOcspResponse); Console.ReadKey(); }
static OCSPResponse StartAcceptor() { string srvIP; Console.WriteLine("Podaj IP serwera: "); srvIP = Console.ReadLine(); TcpListener serverSocket = new TcpListener(IPAddress.Parse(srvIP), 12340); serverSocket.Start(); Console.WriteLine("Serwer: Oczekiwanie..."); var clientSocket = serverSocket.AcceptTcpClient(); OCSPResponse ApplicationOcspRequest = StartServerSocket(clientSocket); return(ApplicationOcspRequest); }
static OCSPResponse StartAcceptor1() { string clnt2IP; Console.WriteLine("Podaj IP nasłuchu: "); clnt2IP = Console.ReadLine(); var ipAddress = IPAddress.Parse(clnt2IP); TcpListener serverSocket = new TcpListener(ipAddress, 12341); serverSocket.Start(); Console.WriteLine("Klient2: Oczekiwanie..."); var clientSocket = serverSocket.AcceptTcpClient(); OCSPResponse ApplicationOcspResponse = StartServerSocket1(clientSocket); return(ApplicationOcspResponse); }
static void StartClient(OCSPResponse dane) { var client = new TcpClient(); string clntIP; Console.WriteLine("Podaj adres IP adresata odpowiedzi: "); clntIP = Console.ReadLine(); client.Connect(IPAddress.Parse(clntIP), 12341); NetworkStream serverStream = client.GetStream(); var ApplicationOcspResponse = new OCSPResponse(); ApplicationOcspResponse = dane; Serializer.SerializeWithLengthPrefix(serverStream, ApplicationOcspResponse, PrefixStyle.Base128); Console.WriteLine("Serwer: Przesłano " + ApplicationOcspResponse.CertStatus); }
static OCSPResponse StartServerSocket(TcpClient clientSocket) { NetworkStream networkStream = clientSocket.GetStream(); var ApplicationOcspRequest = Serializer.DeserializeWithLengthPrefix <OCSPRequest>(networkStream, PrefixStyle.Base128); Console.WriteLine("Serwer: Otrzymano " + ApplicationOcspRequest.CertificateID); var ApplicationOcspResponse = new OCSPResponse(); // stworzenie response string status = ""; string line = ""; string local; Console.WriteLine("Podaj sciezke do pliku z certyfikatami (C:\\Users\\User\\Desktop\\Foo.txt"); local = Console.ReadLine(); StreamReader file = new StreamReader(@local); while ((line = file.ReadLine()) != null) { if (ApplicationOcspRequest.CertificateID.Length == 1) { if (line[0] == ApplicationOcspRequest.CertificateID[0]) { for (int i = 2; i < line.Length; i++) { status = status + line[i]; } Console.WriteLine(status); ApplicationOcspResponse.CertStatus = status; //nadanie statusu response break; } } if (ApplicationOcspRequest.CertificateID.Length == 2) { if (line[0] == ApplicationOcspRequest.CertificateID[0]) { if (line[1] == ApplicationOcspRequest.CertificateID[1]) { for (int i = 3; i < line.Length; i++) { status = status + line[i]; } Console.WriteLine(status); ApplicationOcspResponse.CertStatus = status; //nadanie statusu response break; } } } } file.Close(); Serializer.SerializeWithLengthPrefix(networkStream, ApplicationOcspRequest, PrefixStyle.Base128); DateTime dt = DateTime.Now; ApplicationOcspResponse.OCSPResponseData = ""; ApplicationOcspResponse.OCSPREsponseStatus = "successful"; ApplicationOcspResponse.ResponseType = "Basic OCSP Response"; ApplicationOcspResponse.Version = 1; ApplicationOcspResponse.ResponderID = ""; ApplicationOcspResponse.Technologies = ""; ApplicationOcspResponse.ProducedAt = dt.ToString(); ApplicationOcspResponse.Responses = ""; ApplicationOcspResponse.CertificateID = ""; ApplicationOcspResponse.HashAlgorithm = "SHA1"; ApplicationOcspRequest.IssuerNameHash = "M7UBSJK9MTNGFIO96QF1GHFA7UCEHJKTG5UYE5XROBY"; ApplicationOcspRequest.IssuerKeyHash = "8Z6D03Y285CJOIE97J5V1KXQ47SNECDD29HS35L21NC"; ApplicationOcspRequest.SerialNumber = "FIL2YF0HT4KW8CWFVPB7I2KK87RER8GWHRP6XFEHAO3"; ApplicationOcspResponse.ThisUpdate = dt.ToString(); ApplicationOcspResponse.NextUpdate = "1.01.2016"; return(ApplicationOcspResponse); }