Я пытаюсь реализовать клиент / серверный протокол MySQL в Swift, используя BlueSocket .
Насколько я понимаю, MySQL требует, чтобы начальное соединение было поверх обычного TCP, итогда соединение может быть переключено на использование TLS.Однако BlueSSLService , который включил SSL / TLS с BlueSocket, требует, чтобы сокет был настроен на использование TLS перед вызовом Socket.connect
.
Для создания незашифрованного сокета, который я использую:
import Socket
let socket = try! Socket.create()
try! socket.connect(to: "127.0.0.1", port: 3306)
С этим я могу выполнить начальное рукопожатие MySQL.Однако, если я пытаюсь использовать TLS, вот так:
import Socket
import SSLService
let sslConfig = SSLService.Configuration()
let socket = try! Socket.create()
socket.delegate = try! SSLService(usingConfiguration: sslConfig)
try! socket.connect(to: "127.0.0.1", port: 3306) // ERROR: SSLHandshake
Я получаю сообщение об ошибке.
Возможно ли изначально подключиться к серверу MySQL через TLS?Если нет (как это выглядит), как я могу переключиться начать использовать TLS после первоначального рукопожатия (и SSLRequest пакет)?