code: func signToStream(version Version, plaintext []byte, signer SigningSecretKey, streamer func(Version, io.Writer, SigningSecretKey) (io.WriteCloser, error)) (*bytes.Buffer, error) {
  	var buf bytes.Buffer
  	s, err := streamer(version, &buf, signer)
  	if err != nil {
  		return nil, err
  	}
  	if _, err := s.Write(plaintext); err != nil {
  		return nil, err
  	}
  	if err := s.Close(); err != nil {
  		return nil, err
  	}
  
  	return &buf, nil
  }
docs: // signToStream creates a signature for plaintext with signer,
  // using streamer to generate a signing stream.