Piszę aplikację korzystającą z funkcji SSL NSStream na iPhone. Wiem, że protokół SSL działa, ponieważ mogę bezpośrednio łączyć się z serwerami za pomocą protokołu SSL.
Napotkano na problem polegający na tym, że protokoły używające starttli wymagają ode mnie komunikacji w gnieździe niezabezpieczonym, wysłania polecenia starttls, a następnie ponownego użycia tego samego gniazda dla SSL. O ile wiem, połączenia nsstream nie mogą być ponownie użyte i nie mogę uruchomić protokołu SSL po ich otwarciu.SSL NSStream na używanym gnieździe
Pomyślałem o stworzeniu własnego gniazda, komunikacji na nim ręcznie, a następnie skonfigurowaniu NSstream przy użyciu istniejącego gniazda i uruchomieniu SSL w ten sposób. Jednak wydaje się, że komunikacja w gnieździe umieszcza go w stanie, w którym nie mogę uruchomić SSL. Każda próba użycia gniazda dla nsstream powoduje błąd.
Jakieś myśli?
Czy próbowałeś dzwoniąc setProperty: forKey: z odpowiednich stałych zabezpieczeń na już otwartym NSSocket? Uważam, że podstawowy kod SecureTransport obsługuje przełączanie na TLS/SSL z niezaszyfrowanego połączenia początkowego. –
Więc wymyśliłem to. Powinieneś użyć CFsockets, a nie NSsockets, a następnie zastosować SSL PO połączeniu, chociaż dokumentacja mówi, że nie możesz tego zrobić, to poprawnie wynegocjuje bezpieczne połączenie. – anurodhp
Nie ma czegoś takiego jak "NSsockets" – user102008