none
SSL Verbindung zu TCP Socket Server RRS feed

  • Frage

  • Hallo,

    Ich habe hier eine Xamarin Cross-Plattform App. Diese soll bei meinem Server, der auf einem SSL-TCP Port lauscht, verschlüsselt die GeräteToken (Channel URI, etc.) übertragen. Bei einem Konsolen Test-Klienten hat das mit SslStream wunderbar funktioniert. Nur leider scheint es diese Klasse ausgerechnet bei Windows UWP nicht zu geben, während sie für Android und iOS zur Verfügung steht. Weis jemand wie ich von einer UWP App einen SSL TCP Server erreiche?

    Links zu Dokumentationen haben nicht weitergeholfen und leiten in die Irre oder im Kreis.

    Freitag, 17. März 2017 18:33

Antworten

  • Danke, schau ich mal rein, momentan hab ich so gelöst und getestet:

    public async void Transmit(Registration registration)
            {
                string sslRegistrationJsonString = JsonConvert.SerializeObject(registration);
                char[] sendSSLRegistrationChars = (sslRegistrationJsonString + "\0").ToCharArray();
                var socket = new StreamSocket();
                var serverHost = new HostName("localhost");
                //Hostname im Zertifikat            
                var sslHost = new HostName("xxx.de");
                string serverPort = "4444";
                await socket.ConnectAsync(serverHost, serverPort);
                await socket.UpgradeToSslAsync(SocketProtectionLevel.Tls12, sslHost);
                Stream streamOut = socket.OutputStream.AsStreamForWrite();
                StreamWriter writer = new StreamWriter(streamOut);
                await writer.WriteLineAsync(sendSSLRegistrationChars);
                await writer.FlushAsync();
            }


    Freitag, 17. März 2017 21:41

Alle Antworten

  • Hallo Marcus,

    hier in dem Samples ist denk ich mal alles erklärt


    Gruß, Thomas

    Sage nie, ich kann es nicht - sage nur, ich kann es noch nicht!

    Icon für UWP

    Freitag, 17. März 2017 18:56
  • Danke, schau ich mal rein, momentan hab ich so gelöst und getestet:

    public async void Transmit(Registration registration)
            {
                string sslRegistrationJsonString = JsonConvert.SerializeObject(registration);
                char[] sendSSLRegistrationChars = (sslRegistrationJsonString + "\0").ToCharArray();
                var socket = new StreamSocket();
                var serverHost = new HostName("localhost");
                //Hostname im Zertifikat            
                var sslHost = new HostName("xxx.de");
                string serverPort = "4444";
                await socket.ConnectAsync(serverHost, serverPort);
                await socket.UpgradeToSslAsync(SocketProtectionLevel.Tls12, sslHost);
                Stream streamOut = socket.OutputStream.AsStreamForWrite();
                StreamWriter writer = new StreamWriter(streamOut);
                await writer.WriteLineAsync(sendSSLRegistrationChars);
                await writer.FlushAsync();
            }


    Freitag, 17. März 2017 21:41