code: func (m *SignedGossipMessage) Verify(peerIdentity []byte, verify Verifier) error {
  	if m.Envelope == nil {
  		return errors.New("Missing envelope")
  	}
  	if len(m.Envelope.Payload) == 0 {
  		return errors.New("Empty payload")
  	}
  	if len(m.Envelope.Signature) == 0 {
  		return errors.New("Empty signature")
  	}
  	payloadSigVerificationErr := verify(peerIdentity, m.Envelope.Signature, m.Envelope.Payload)
  	if payloadSigVerificationErr != nil {
  		return payloadSigVerificationErr
  	}
  	if m.Envelope.SecretEnvelope != nil {
  		payload := m.Envelope.SecretEnvelope.Payload
  		sig := m.Envelope.SecretEnvelope.Signature
  		if len(payload) == 0 {
  			return errors.New("Empty payload")
  		}
  		if len(sig) == 0 {
  			return errors.New("Empty signature")
  		}
  		return verify(peerIdentity, sig, payload)
  	}
  	return nil
  }
docs: // Verify verifies a signed GossipMessage with a given Verifier.
  // Returns nil on success, error on failure.