Lines Matching refs:k
729 static int nl80211_parse_key_new(struct nlattr *key, struct key_parse *k) in nl80211_parse_key_new() argument
737 k->def = !!tb[NL80211_KEY_DEFAULT]; in nl80211_parse_key_new()
738 k->defmgmt = !!tb[NL80211_KEY_DEFAULT_MGMT]; in nl80211_parse_key_new()
740 if (k->def) { in nl80211_parse_key_new()
741 k->def_uni = true; in nl80211_parse_key_new()
742 k->def_multi = true; in nl80211_parse_key_new()
744 if (k->defmgmt) in nl80211_parse_key_new()
745 k->def_multi = true; in nl80211_parse_key_new()
748 k->idx = nla_get_u8(tb[NL80211_KEY_IDX]); in nl80211_parse_key_new()
751 k->p.key = nla_data(tb[NL80211_KEY_DATA]); in nl80211_parse_key_new()
752 k->p.key_len = nla_len(tb[NL80211_KEY_DATA]); in nl80211_parse_key_new()
756 k->p.seq = nla_data(tb[NL80211_KEY_SEQ]); in nl80211_parse_key_new()
757 k->p.seq_len = nla_len(tb[NL80211_KEY_SEQ]); in nl80211_parse_key_new()
761 k->p.cipher = nla_get_u32(tb[NL80211_KEY_CIPHER]); in nl80211_parse_key_new()
764 k->type = nla_get_u32(tb[NL80211_KEY_TYPE]); in nl80211_parse_key_new()
765 if (k->type < 0 || k->type >= NUM_NL80211_KEYTYPES) in nl80211_parse_key_new()
778 k->def_uni = kdt[NL80211_KEY_DEFAULT_TYPE_UNICAST]; in nl80211_parse_key_new()
779 k->def_multi = kdt[NL80211_KEY_DEFAULT_TYPE_MULTICAST]; in nl80211_parse_key_new()
785 static int nl80211_parse_key_old(struct genl_info *info, struct key_parse *k) in nl80211_parse_key_old() argument
788 k->p.key = nla_data(info->attrs[NL80211_ATTR_KEY_DATA]); in nl80211_parse_key_old()
789 k->p.key_len = nla_len(info->attrs[NL80211_ATTR_KEY_DATA]); in nl80211_parse_key_old()
793 k->p.seq = nla_data(info->attrs[NL80211_ATTR_KEY_SEQ]); in nl80211_parse_key_old()
794 k->p.seq_len = nla_len(info->attrs[NL80211_ATTR_KEY_SEQ]); in nl80211_parse_key_old()
798 k->idx = nla_get_u8(info->attrs[NL80211_ATTR_KEY_IDX]); in nl80211_parse_key_old()
801 k->p.cipher = nla_get_u32(info->attrs[NL80211_ATTR_KEY_CIPHER]); in nl80211_parse_key_old()
803 k->def = !!info->attrs[NL80211_ATTR_KEY_DEFAULT]; in nl80211_parse_key_old()
804 k->defmgmt = !!info->attrs[NL80211_ATTR_KEY_DEFAULT_MGMT]; in nl80211_parse_key_old()
806 if (k->def) { in nl80211_parse_key_old()
807 k->def_uni = true; in nl80211_parse_key_old()
808 k->def_multi = true; in nl80211_parse_key_old()
810 if (k->defmgmt) in nl80211_parse_key_old()
811 k->def_multi = true; in nl80211_parse_key_old()
814 k->type = nla_get_u32(info->attrs[NL80211_ATTR_KEY_TYPE]); in nl80211_parse_key_old()
815 if (k->type < 0 || k->type >= NUM_NL80211_KEYTYPES) in nl80211_parse_key_old()
828 k->def_uni = kdt[NL80211_KEY_DEFAULT_TYPE_UNICAST]; in nl80211_parse_key_old()
829 k->def_multi = kdt[NL80211_KEY_DEFAULT_TYPE_MULTICAST]; in nl80211_parse_key_old()
835 static int nl80211_parse_key(struct genl_info *info, struct key_parse *k) in nl80211_parse_key() argument
839 memset(k, 0, sizeof(*k)); in nl80211_parse_key()
840 k->idx = -1; in nl80211_parse_key()
841 k->type = -1; in nl80211_parse_key()
844 err = nl80211_parse_key_new(info->attrs[NL80211_ATTR_KEY], k); in nl80211_parse_key()
846 err = nl80211_parse_key_old(info, k); in nl80211_parse_key()
851 if (k->def && k->defmgmt) in nl80211_parse_key()
854 if (k->defmgmt) { in nl80211_parse_key()
855 if (k->def_uni || !k->def_multi) in nl80211_parse_key()
859 if (k->idx != -1) { in nl80211_parse_key()
860 if (k->defmgmt) { in nl80211_parse_key()
861 if (k->idx < 4 || k->idx > 5) in nl80211_parse_key()
863 } else if (k->def) { in nl80211_parse_key()
864 if (k->idx < 0 || k->idx > 3) in nl80211_parse_key()
867 if (k->idx < 0 || k->idx > 5) in nl80211_parse_key()