Uaktualnij połączenie do TLS w Go

Mam otwarte połączenie TCP i czytam z niego za pomocą pętli for

for {
  // tx.Text is of type textproto.Conn
  // the underlying connection is stored in tx.Conn
  l, err := tx.Text.Reader.ReadLine()

  // do stuff with the text line ...
}

Teraz chcę zaktualizować połączenie do TLS w ten sposób (TlsConf zawiera certyfikat załadowanytls.LoadX509KeyPair)

tx.Conn = tls.Server(tx.Conn, tx.Server.Conf.TlsConf)
tx.Text = textproto.NewConn(tx.Conn)

Kiedy to robię, otrzymuję błąd segmentacji na kliencie, gdy serwer próbuje potwierdzić. Implementuję serwer SMTP i testuję goswaks używając-tls flaga. Wyjście terminalu zswaks jest następujący

-> STARTTLS
<-  220 Start TLS
Segmentation fault: 11

Ponieważ swaks jest sprawdzonym narzędziem i pracował z implementacją SMTP nodeJS, którą miałem wcześniej, nie podejrzewam, że błąd występuje po stronie klienta.

Co zrobiłem źle lub czego brakuje?

PS: Kiedy połączenie TLS jest uruchamiane z istniejącego niebezpiecznego połączenia, co dokładnie się dzieje? Czy klient nawiązuje nowe połączenie na innym porcie lub czy połączenie jest ponownie wykorzystywane?

questionAnswers(2)

yourAnswerToTheQuestion