if err = ctrl.SetNoDelay(true); err != nil {
                log.Fatalln("nodelay:", err)
        }
-       if _, err = io.Copy(ctrl, strings.NewReader(vors.NoisePrologue)); err != nil {
-               log.Fatalln("handshake: write prologue", err)
-               return
-       }
 
        hs, err := noise.NewHandshakeState(noise.Config{
                CipherSuite: vors.NoiseCipherSuite,
        if err != nil {
                log.Fatalln("handshake encrypt:", err)
        }
-       if err = vors.PktWrite(ctrl, buf); err != nil {
+       buf = append(
+               append(
+                       []byte(vors.NoisePrologue),
+                       byte((len(buf) & 0xFF00) >> 8),
+                       byte((len(buf) & 0x00FF) >> 0),
+               ),
+               buf...
+       )
+       _, err = io.Copy(ctrl, bytes.NewReader(buf))
+       if err != nil {
                log.Fatalln("write handshake:", err)
                return
        }