code: func (s *postHandshakeCryptoStream) Write(p []byte) (int, error) {
  	n, err := s.cryptoStream.Write(p)
  	if err != nil {
  		return n, err
  	}
  	for s.cryptoStream.HasData() {
  		s.framer.QueueControlFrame(s.PopCryptoFrame(protocol.MaxPostHandshakeCryptoFrameSize))
  	}
  	return n, nil
  }
docs: // Write writes post-handshake messages.
  // For simplicity, post-handshake crypto messages are treated as control frames.
  // The framer functions as a stack (LIFO), so if there are multiple writes,
  // they will be returned in the opposite order.
  // This is acceptable, since post-handshake crypto messages are very rare.