code: func (s *GenericSigner) Sign(data common.Hash) (signature Signature, err error) {
  	signaturebytes, err := crypto.Sign(data.Bytes(), s.PrivKey)
  	if err != nil {
  		return
  	}
  	copy(signature[:], signaturebytes)
  	return
  }
docs: // Sign signs the supplied data
  // It wraps the ethereum crypto.Sign() method