key_info
int spk_set_key_info(const u_char *key_info, u_char *k_buffer)
const u_char *cp = key_info;
u_char *key_info;
key_info = spk_our_keys[keycode];
if (!key_info)
new_key = key_info[offset];
if (offset && key_info[offset])
new_key = key_info[offset];
int spk_set_key_info(const u_char *key_info, u_char *k_buffer);
u8 key_info[6];
memcpy_fromio(key_info, smc->shmem.iomem, sizeof(key_info));
info->size = key_info[0];
info->type_code = get_unaligned_be32(&key_info[1]);
info->flags = key_info[5];
static const struct key_info meta_data_key_info[] = {
static const struct key_info tuple_key_info[] = {
mlxsw_afk_key_info_elements_eq(struct mlxsw_afk_key_info *key_info,
return memcmp(&key_info->elusage, elusage, sizeof(*elusage)) == 0;
struct mlxsw_afk_key_info *key_info;
list_for_each_entry(key_info, &mlxsw_afk->key_info_list, list) {
if (mlxsw_afk_key_info_elements_eq(key_info, elusage))
return key_info;
struct mlxsw_afk_key_info *key_info)
if (key_info->blocks_count == mlxsw_afk->max_blocks)
key_info->element_to_block[element] = key_info->blocks_count;
mlxsw_afk_element_usage_add(&key_info->elusage, element);
key_info->blocks[key_info->blocks_count] =
key_info->blocks_count++;
struct mlxsw_afk_key_info *key_info)
key_info);
key_info);
struct mlxsw_afk_key_info *key_info,
key_info);
struct mlxsw_afk_key_info *key_info;
key_info = kzalloc_flex(*key_info, blocks, mlxsw_afk->max_blocks);
if (!key_info)
err = mlxsw_afk_picker(mlxsw_afk, key_info, elusage);
list_add(&key_info->list, &mlxsw_afk->key_info_list);
refcount_set(&key_info->ref_count, 1);
return key_info;
kfree(key_info);
static void mlxsw_afk_key_info_destroy(struct mlxsw_afk_key_info *key_info)
list_del(&key_info->list);
kfree(key_info);
struct mlxsw_afk_key_info *key_info;
key_info = mlxsw_afk_key_info_find(mlxsw_afk, elusage);
if (key_info) {
refcount_inc(&key_info->ref_count);
return key_info;
void mlxsw_afk_key_info_put(struct mlxsw_afk_key_info *key_info)
if (!refcount_dec_and_test(&key_info->ref_count))
mlxsw_afk_key_info_destroy(key_info);
bool mlxsw_afk_key_info_subset(struct mlxsw_afk_key_info *key_info,
return mlxsw_afk_element_usage_subset(elusage, &key_info->elusage);
mlxsw_afk_key_info_elinst_get(struct mlxsw_afk_key_info *key_info,
if (WARN_ON(!test_bit(element, key_info->elusage.usage)))
block_index = key_info->element_to_block[element];
block = key_info->blocks[block_index];
mlxsw_afk_key_info_block_encoding_get(const struct mlxsw_afk_key_info *key_info,
return key_info->blocks[block_index]->encoding;
mlxsw_afk_key_info_blocks_count_get(const struct mlxsw_afk_key_info *key_info)
return key_info->blocks_count;
struct mlxsw_afk_key_info *key_info,
mlxsw_afk_key_info_blocks_count_get(key_info);
elinst = mlxsw_afk_key_info_elinst_get(key_info,
void mlxsw_afk_key_info_put(struct mlxsw_afk_key_info *key_info);
bool mlxsw_afk_key_info_subset(struct mlxsw_afk_key_info *key_info,
mlxsw_afk_key_info_block_encoding_get(const struct mlxsw_afk_key_info *key_info,
mlxsw_afk_key_info_blocks_count_get(const struct mlxsw_afk_key_info *key_info);
struct mlxsw_afk_key_info *key_info,
blocks_count = mlxsw_afk_key_info_blocks_count_get(region->key_info);
mlxsw_afk_encode(afk, region->key_info, &rulei->values,
struct mlxsw_afk_key_info *key_info = aregion->region->key_info;
block_count = mlxsw_afk_key_info_blocks_count_get(key_info);
struct mlxsw_afk_key_info *key_info = aregion->region->key_info;
u8 block_count = mlxsw_afk_key_info_blocks_count_get(key_info);
mlxsw_afk_encode(afk, region->key_info, &rulei->values, key, mask);
if (WARN_ON(!mlxsw_afk_key_info_subset(vchunk->vregion->key_info,
struct mlxsw_afk_key_info *key_info;
issubset = mlxsw_afk_key_info_subset(vregion->key_info,
struct mlxsw_afk_key_info *key_info = region->key_info;
encodings_count = mlxsw_afk_key_info_blocks_count_get(key_info);
encoding = mlxsw_afk_key_info_block_encoding_get(key_info, i);
region->key_info = vregion->key_info;
vregion->key_info = mlxsw_afk_key_info_get(afk, elusage);
if (IS_ERR(vregion->key_info)) {
err = PTR_ERR(vregion->key_info);
mlxsw_afk_key_info_put(vregion->key_info);
mlxsw_afk_key_info_put(vregion->key_info);
struct mlxsw_afk_key_info *key_info;
u16 key_info;
key_info = be16_to_cpu(key->key_info);
if (!(key_info & WIL_KEY_INFO_KEY_TYPE)) /* check if pairwise */
u16 key_info;
key_info = be16_to_cpu(key->key_info);
if (key_info & (WIL_KEY_INFO_MIC |
__be16 key_info;
int key_type, int key_info,
cmd.param.keyinfo = cpu_to_le16(key_info);
u16 key_info;
key_info = KEY_INFO_WPA_ENABLED | ((idx == 0)
key_info,
__le16 key_info;
__le16 key_info;
key_param_set->key_info =
km->key_param_set.key_info &= cpu_to_le16(~KEY_MCAST);
km->key_param_set.key_info |= cpu_to_le16(KEY_IGTK);
u16 key_info, len = KEY_PARAMS_FIXED_LEN;
key_info = KEY_UNICAST;
key_info = KEY_MCAST;
key_info |= KEY_IGTK;
km->key_param_set.key_info = cpu_to_le16(key_info);
key_info = KEY_MCAST | KEY_UNICAST;
km->key_param_set.key_info = cpu_to_le16(key_info);
key_info = KEY_ENABLED;
key_info |= KEY_MCAST | KEY_UNICAST;
key_info |= KEY_MCAST | KEY_UNICAST;
key_info |= KEY_DEFAULT;
key_info |= KEY_MCAST;
key_info |= KEY_UNICAST | KEY_DEFAULT;
km->key_param_set.key_info = cpu_to_le16(key_info);
key_info |= KEY_MCAST | KEY_RX_KEY;
key_info |= KEY_UNICAST | KEY_TX_KEY | KEY_RX_KEY;
key_info |= KEY_DEFAULT;
km->key_param_set.key_info = cpu_to_le16(key_info);
key_info |= KEY_DEFAULT;
key_info |= KEY_UNICAST;
key_info |= KEY_DEFAULT;
km->key_param_set.key_info = cpu_to_le16(key_info);
set->key_info = cpu_to_le16(KEY_ENABLED);
set->key_info = cpu_to_le16(!KEY_ENABLED);
set->key_info |= cpu_to_le16(KEY_UNICAST);
set->key_info |= cpu_to_le16(KEY_MCAST);
key_material->key_param_set.key_info =
key_material->key_param_set.key_info =
key_material->key_param_set.key_info |=
key_material->key_param_set.key_info =
key_material->key_param_set.key_info =
key_material->key_param_set.key_info |=
key_material->key_param_set.key_info |=
key_material->key_param_set.key_info =
key_material->key_param_set.key_info |=
key_material->key_param_set.key_info |=
if ((le16_to_cpu(key->key_param_set.key_info) & KEY_MCAST)) {
if ((le16_to_cpu(key_v2->key_param_set.key_info) & KEY_MCAST)) {
ibss_key->key_param_set.key_info = cpu_to_le16(KEY_ENABLED);
__le32 key_info;
cmd->key_info = cpu_to_le32(MWL8K_KEY_FLAG_WEP_TXKEY);
cmd->key_info = (key->flags & IEEE80211_KEY_FLAG_PAIRWISE)
cmd->key_info |= cpu_to_le32(MWL8K_KEY_FLAG_MICKEY_VALID
cmd->key_info = (key->flags & IEEE80211_KEY_FLAG_PAIRWISE)
static u32 mt7996_patch_sec_mode(u32 key_info)
u32 sec = u32_get_bits(key_info, MT7996_PATCH_SEC), key = 0;
if (key_info == GENMASK(31, 0) || sec == MT7996_SEC_MODE_PLAIN)
key = u32_get_bits(key_info, MT7996_PATCH_AES_KEY);
key = u32_get_bits(key_info, MT7996_PATCH_SCRAMBLE_KEY);
static int wilc_wfi_cfg_copy_wpa_info(struct wilc_wfi_key *key_info,
kfree(key_info->key);
key_info->key = kmemdup(params->key, params->key_len, GFP_KERNEL);
if (!key_info->key)
kfree(key_info->seq);
key_info->seq = kmemdup(params->seq, params->seq_len,
if (!key_info->seq)
key_info->cipher = params->cipher;
key_info->key_len = params->key_len;
key_info->seq_len = params->seq_len;
u8 *ptk_tx_iv = rtw_wow->key_info.ptk_tx_iv;
u8 *ptk_tx_iv = rtw_wow->key_info.ptk_tx_iv;
u8 *ptk_tx_iv = rtw_wow->key_info.ptk_tx_iv;
struct rtw89_wow_key_info key_info;
h2c->key_info = rtw_wow->key_info;
struct rtw89_wow_key_info key_info;
struct rtw89_wow_key_info *key_info = &rtw_wow->key_info;
key_info->ptk_tx_iv);
key_info->ptk_rx_iv);
key_info->gtk_rx_iv[key->keyidx]);
key_info->gtk_keyidx = key->keyidx;
key_info->gtk_keyidx = key->keyidx;
memset(&rtw_wow->key_info, 0, sizeof(rtw_wow->key_info));
struct rtw89_wow_key_info *key_info = &rtw_wow->key_info;
key_info->valid_check = RTW89_WOW_VALID_CHECK;
key_info->symbol_check_en = RTW89_WOW_SYMBOL_CHK_PTK |
struct platform_device_info key_info = {
key_info.fwnode = software_node_fwnode(&gpio_keys_node);
p50->keys_pdev = platform_device_register_full(&key_info);