Converti socket TCP esistente in TLS utilizzando OpenSSL

Ho bisogno di alcune informazioni su OpenSSL, socket TLS. Prima di tutto voglio stabilire una connessione con il server tramite TLS su TCP. Generalmente prima create un socket TCP, quindi connettetevi al server usando il socket TCP, dopo che convertite (prima di inviare o ricevere dati attraverso il socket TCP) il socket TCP in TLS.

La mia domanda è ansible secondo il modo seguente?

  1. Crea socket TCP.
  2. Connettiti con il server usando il socket TCP.
  3. Invia e ricevi alcuni dati tramite il socket TCP.
  4. Quindi convertire il socket TCP in TLS.

    Nota: sto usando OpenSSL.

Sembra ansible nel modo specificato, a condizione che il server lo supporti. Vedi SMTP. Funziona in questo modo per il server SMTP dove la prima conversazione è in chiaro su TCP poi su SSL / TLS. È ansible associare un socket esistente a un BIO utilizzando BIO_new_socket e quindi impostare questo socket sulla struttura SSL * utilizzando SSL_set_bio.

Puoi trovare molti esempi di client SSL.