code: func Sign(message []byte, privateKey PrivateKey) []byte {
  	sig := ed25519.Sign(ed25519.PrivateKey(privateKey), message)
  	response := make([]byte, SignatureSize+len(message))
  	copy(response[:SignatureSize], sig)
  	copy(response[SignatureSize:], message)
  	return response
  }
docs: // Sign signs the message with privateKey. The first SignatureSize bytes of the
  // response will be the signature; the rest will be the message. It will panic
  // if len(privateKey) is not PrivateKeySize.