Возьмите библиотеку OpenSSL и используйте её, как плагин. То есть коннект подымайте на голом сокете, без шифрования, а потом данные гоните уже через библиотеку, как прокладку. Шифрование включается в уже работающем коннекте по запросу. Хороший пример - реализация поддержки OpenSSL в
библиотеке Synapse, мы её юзаем в коммерческом проекте, но она на Delphi.