aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/debugfs_key.c
diff options
context:
space:
mode:
authorJouni Malinen <jouni@qca.qualcomm.com>2015-01-24 12:52:06 -0500
committerJohannes Berg <johannes.berg@intel.com>2015-01-27 05:06:09 -0500
commit00b9cfa3ff38401bd70c34b250ca13e5ea347b4a (patch)
tree1c3564bf28a6f4b49140a5e023520a1dc658d5c6 /net/mac80211/debugfs_key.c
parentcfcf1682c4ca8f601a4702255958e0b1c9aa12cc (diff)
mac80111: Add GCMP and GCMP-256 ciphers
This allows mac80211 to configure GCMP and GCMP-256 to the driver and also use software-implementation within mac80211 when the driver does not support this with hardware accelaration. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com> [remove a spurious newline] Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/debugfs_key.c')
-rw-r--r--net/mac80211/debugfs_key.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/net/mac80211/debugfs_key.c b/net/mac80211/debugfs_key.c
index 5523b94c7c90..0e223e602296 100644
--- a/net/mac80211/debugfs_key.c
+++ b/net/mac80211/debugfs_key.c
@@ -105,6 +105,13 @@ static ssize_t key_tx_spec_read(struct file *file, char __user *userbuf,
105 (u8)(pn >> 40), (u8)(pn >> 32), (u8)(pn >> 24), 105 (u8)(pn >> 40), (u8)(pn >> 32), (u8)(pn >> 24),
106 (u8)(pn >> 16), (u8)(pn >> 8), (u8)pn); 106 (u8)(pn >> 16), (u8)(pn >> 8), (u8)pn);
107 break; 107 break;
108 case WLAN_CIPHER_SUITE_GCMP:
109 case WLAN_CIPHER_SUITE_GCMP_256:
110 pn = atomic64_read(&key->u.gcmp.tx_pn);
111 len = scnprintf(buf, sizeof(buf), "%02x%02x%02x%02x%02x%02x\n",
112 (u8)(pn >> 40), (u8)(pn >> 32), (u8)(pn >> 24),
113 (u8)(pn >> 16), (u8)(pn >> 8), (u8)pn);
114 break;
108 default: 115 default:
109 return 0; 116 return 0;
110 } 117 }
@@ -151,6 +158,17 @@ static ssize_t key_rx_spec_read(struct file *file, char __user *userbuf,
151 rpn[3], rpn[4], rpn[5]); 158 rpn[3], rpn[4], rpn[5]);
152 len = p - buf; 159 len = p - buf;
153 break; 160 break;
161 case WLAN_CIPHER_SUITE_GCMP:
162 case WLAN_CIPHER_SUITE_GCMP_256:
163 for (i = 0; i < IEEE80211_NUM_TIDS + 1; i++) {
164 rpn = key->u.gcmp.rx_pn[i];
165 p += scnprintf(p, sizeof(buf)+buf-p,
166 "%02x%02x%02x%02x%02x%02x\n",
167 rpn[0], rpn[1], rpn[2],
168 rpn[3], rpn[4], rpn[5]);
169 }
170 len = p - buf;
171 break;
154 default: 172 default:
155 return 0; 173 return 0;
156 } 174 }
@@ -173,6 +191,10 @@ static ssize_t key_replays_read(struct file *file, char __user *userbuf,
173 len = scnprintf(buf, sizeof(buf), "%u\n", 191 len = scnprintf(buf, sizeof(buf), "%u\n",
174 key->u.aes_cmac.replays); 192 key->u.aes_cmac.replays);
175 break; 193 break;
194 case WLAN_CIPHER_SUITE_GCMP:
195 case WLAN_CIPHER_SUITE_GCMP_256:
196 len = scnprintf(buf, sizeof(buf), "%u\n", key->u.gcmp.replays);
197 break;
176 default: 198 default:
177 return 0; 199 return 0;
178 } 200 }