Example #1
0
func (r *DefaultRouter) check(node api.Node, pubkey bc.PubKey, channelName string, idx uint16, nonce []byte, message []byte) (bool, error) {
	hash, err := bc.DestHash(pubkey, nonce)
	if err != nil {
		return false, err
	}
	hashLen := uint16(len(hash))
	nonceHash := message[idx+16 : idx+16+hashLen]
	if bytes.Equal(hash, nonceHash) { // named channel key match
		if err := node.Handle(channelName, message[idx+16+hashLen:]); err != nil {
			return false, err
		}
		return true, nil
	}
	return false, nil
}