messages/crypto.go
func PackWithSignature(msg []byte, key *ecdsa.PrivateKey) ([]byte, error) {
	sig, err := signature(key, msg)
	if err != nil {
		return nil, err
	}

	return packSignature(msg, sig), nil
}
func PackWithSignature(msg []byte, key *ecdsa.PrivateKey) ([]byte, error) {
	sig, err := signature(key, msg)
	if err != nil {
		return nil, err
	}

	return packSignature(msg, sig), nil
}
// PackWithSignature packs message with signature.