Ich schreibe eine Anwendung, die NStreams SSL-Funktionen auf dem iPhone verwendet. Ich weiß, dass SSL funktioniert, weil ich Server direkt über SSL verbinden kann.
Ich habe ein Problem festgestellt, wo Protokolle, die Starttls verwenden erfordern, dass ich auf dem Socket mit ungesicherten kommunizieren, senden Sie den Befehl starttls und dann wiederverwenden den gleichen Socket für SSL. Soweit ich weiß, können nstream-Verbindungen nicht wiederverwendet werden und ich kann kein SSL auf ihnen starten, nachdem ich die Verbindung geöffnet habe.NStream SSL auf verwendetem Socket
Ich überlegte, meinen eigenen Socket zu erstellen, manuell darüber zu kommunizieren und dann einen NStream unter Verwendung des vorhandenen Sockets einzurichten und SSL auf diese Weise zu starten. Es scheint jedoch, dass die Kommunikation auf dem Socket es in einem Zustand platziert, in dem ich SSL darauf starten kann. Jeder Versuch, den Socket für NStream zu verwenden, führt zu einem Fehler.
Irgendwelche Gedanken?
Haben Sie versucht, setProperty Aufruf: forKey: mit den entsprechenden Sicherheitskonstanten auf einem bereits geöffneten NSSocket? Ich glaube, der zugrunde liegende SecureTransport-Code unterstützt das Wechseln zu TLS/SSL über eine unverschlüsselte erste Verbindung. –
Also habe ich das herausgefunden. Sie sollten CFsockets und nicht NSockets verwenden und dann die SSL nach der Verbindung anwenden, obwohl die Dokumentation besagt, dass Sie das nicht tun können, wird es eine sichere Verbindung richtig aushandeln. – anurodhp
gibt es keine "NS Sockets" – user102008