code: func (ctl *HandshakeController) handler(msg []byte, p *p2p.Peer, asymmetric bool, symkeyid string) error {
  	if asymmetric {
  		keymsg := &handshakeMsg{}
  		err := rlp.DecodeBytes(msg, keymsg)
  		if err == nil {
  			err := ctl.handleKeys(symkeyid, keymsg)
  			if err != nil {
  				log.Error("handlekeys fail", "error", err)
  			}
  			return err
  		}
  		return nil
  	}
  	return ctl.registerSymKeyUse(symkeyid)
  }
docs: // Passed as a PssMsg handler for the topic handshake is activated on
  // Handles incoming key exchange messages and
  // counts message usage by symmetric key (expiry limit control)
  // Only returns error if key handler fails