Lines Matching defs:key

831 /* policy for the key attributes */
844 /* policy for the key default flags */
1303 static int nl80211_parse_key_new(struct genl_info *info, struct nlattr *key,
1307 int err = nla_parse_nested_deprecated(tb, NL80211_KEY_MAX, key,
1328 k->p.key = nla_data(tb[NL80211_KEY_DATA]);
1367 k->p.key = nla_data(info->attrs[NL80211_ATTR_KEY_DATA]);
1431 "key with multiple default flags is invalid");
1438 "defmgmt/defbeacon key must be mcast");
1447 "defmgmt key idx not 4 or 5");
1453 "defbeacon key idx not 6 or 7");
1458 GENL_SET_ERR_MSG(info, "def key idx not 0-3");
1463 GENL_SET_ERR_MSG(info, "key idx not 0-7");
1478 struct nlattr *key;
1483 nla_for_each_nested(key, keys, rem) {
1497 nla_for_each_nested(key, keys, rem) {
1501 err = nl80211_parse_key_new(info, key, &parse);
1505 if (!parse.p.key)
1508 GENL_SET_ERR_MSG(info, "key index out of range [0-3]");
1514 "only one key can be default");
1529 GENL_SET_ERR_MSG(info, "connect key must be WEP");
1535 result->params[parse.idx].key = result->data[parse.idx];
1536 memcpy(result->data[parse.idx], parse.p.key, parse.p.key_len);
1538 /* must be WEP key if we got here */
1545 GENL_SET_ERR_MSG(info, "need a default/TX key");
4418 "link ID not allowed for pairwise key");
4428 "link ID must for MLO group key");
4432 GENL_SET_ERR_MSG(info, "invalid link ID for MLO group key");
4436 GENL_SET_ERR_MSG(info, "link ID not allowed for non-MLO group key");
4451 struct nlattr *key;
4454 if ((params->key &&
4456 params->key_len, params->key)) ||
4465 key = nla_nest_start_noflag(cookie->msg, NL80211_ATTR_KEY);
4466 if (!key)
4469 if ((params->key &&
4471 params->key_len, params->key)) ||
4483 nla_nest_end(cookie->msg, key);
4590 struct key_parse key;
4596 err = nl80211_parse_key(info, &key);
4600 if (key.idx < 0)
4603 /* Only support setting default key and
4606 if (!key.def && !key.defmgmt && !key.defbeacon &&
4607 !(key.p.mode == NL80211_KEY_SET_TX))
4610 if (key.def) {
4622 err = rdev_set_default_key(rdev, dev, link_id, key.idx,
4623 key.def_uni, key.def_multi);
4629 wdev->wext.default_key = key.idx;
4632 } else if (key.defmgmt) {
4633 if (key.def_uni || !key.def_multi)
4647 err = rdev_set_default_mgmt_key(rdev, dev, link_id, key.idx);
4652 wdev->wext.default_mgmt_key = key.idx;
4655 } else if (key.defbeacon) {
4656 if (key.def_uni || !key.def_multi)
4670 return rdev_set_default_beacon_key(rdev, dev, link_id, key.idx);
4671 } else if (key.p.mode == NL80211_KEY_SET_TX &&
4679 if (!mac_addr || key.idx < 0 || key.idx > 1)
4686 return rdev_add_key(rdev, dev, link_id, key.idx,
4688 mac_addr, &key.p);
4699 struct key_parse key;
4704 err = nl80211_parse_key(info, &key);
4708 if (!key.p.key) {
4709 GENL_SET_ERR_MSG(info, "no key");
4716 if (key.type == -1) {
4718 key.type = NL80211_KEYTYPE_PAIRWISE;
4720 key.type = NL80211_KEYTYPE_GROUP;
4724 if (key.type != NL80211_KEYTYPE_PAIRWISE &&
4725 key.type != NL80211_KEYTYPE_GROUP) {
4726 GENL_SET_ERR_MSG(info, "key type not pairwise or group");
4730 if (key.type == NL80211_KEYTYPE_GROUP &&
4732 key.p.vlan_id = nla_get_u16(info->attrs[NL80211_ATTR_VLAN_ID]);
4737 if (cfg80211_validate_key_settings(rdev, &key.p, key.idx,
4738 key.type == NL80211_KEYTYPE_PAIRWISE,
4740 GENL_SET_ERR_MSG(info, "key setting validation failed");
4746 GENL_SET_ERR_MSG(info, "key not allowed");
4750 key.type == NL80211_KEYTYPE_PAIRWISE);
4753 err = rdev_add_key(rdev, dev, link_id, key.idx,
4754 key.type == NL80211_KEYTYPE_PAIRWISE,
4755 mac_addr, &key.p);
4757 GENL_SET_ERR_MSG(info, "key addition failed");
4769 struct key_parse key;
4773 err = nl80211_parse_key(info, &key);
4780 if (key.type == -1) {
4782 key.type = NL80211_KEYTYPE_PAIRWISE;
4784 key.type = NL80211_KEYTYPE_GROUP;
4788 if (key.type != NL80211_KEYTYPE_PAIRWISE &&
4789 key.type != NL80211_KEYTYPE_GROUP)
4792 if (!cfg80211_valid_key_idx(rdev, key.idx,
4793 key.type == NL80211_KEYTYPE_PAIRWISE))
4801 if (key.type == NL80211_KEYTYPE_GROUP && mac_addr &&
4807 key.type == NL80211_KEYTYPE_PAIRWISE);
4810 err = rdev_del_key(rdev, dev, link_id, key.idx,
4811 key.type == NL80211_KEYTYPE_PAIRWISE,
4816 if (key.idx == wdev->wext.default_key)
4818 else if (key.idx == wdev->wext.default_mgmt_key)
10613 struct key_parse key;
10630 err = nl80211_parse_key(info, &key);
10634 if (key.idx >= 0) {
10635 if (key.type != -1 && key.type != NL80211_KEYTYPE_GROUP)
10637 if (!key.p.key || !key.p.key_len)
10639 if ((key.p.cipher != WLAN_CIPHER_SUITE_WEP40 ||
10640 key.p.key_len != WLAN_KEY_LEN_WEP40) &&
10641 (key.p.cipher != WLAN_CIPHER_SUITE_WEP104 ||
10642 key.p.key_len != WLAN_KEY_LEN_WEP104))
10644 if (key.idx > 3)
10647 key.p.key_len = 0;
10648 key.p.key = NULL;
10651 if (key.idx >= 0) {
10656 if (key.p.cipher == rdev->wiphy.cipher_suites[i]) {
10721 req.key = key.p.key;
10722 req.key_len = key.p.key_len;
10723 req.key_idx = key.idx;
16521 * as it might contain key data that shouldn't stick around on
16706 /* cannot use NL80211_FLAG_MLO_VALID_LINK_ID, depends on key */
17497 .name = NL80211_GENL_NAME, /* have users key off the name instead */