Commit d58a2fa9 authored by Alexander Aring's avatar Alexander Aring Committed by Marcel Holtmann

mac802154: add comments for llsec issues

While doing a little test with the llsec implementation I saw these
issues. We should move decryption and encruption somewhere else,
otherwise while capturing with wireshark the mac header shows secuirty
fields but the payload is plaintext.

A complete other issue is what doing with HardMAC drivers where the
payload is always plaintext. I think we need a special handling then in
userspace. We currently doesn't support any HardMAC transceivers, so we
should fix the first issue for SoftMAC transceivers.
Signed-off-by: default avatarAlexander Aring <alex.aring@gmail.com>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent a26c5fd7
...@@ -87,6 +87,10 @@ ieee802154_subif_frame(struct ieee802154_sub_if_data *sdata, ...@@ -87,6 +87,10 @@ ieee802154_subif_frame(struct ieee802154_sub_if_data *sdata,
skb->dev = sdata->dev; skb->dev = sdata->dev;
/* TODO this should be moved after netif_receive_skb call, otherwise
* wireshark will show a mac header with security fields and the
* payload is already decrypted.
*/
rc = mac802154_llsec_decrypt(&sdata->sec, skb); rc = mac802154_llsec_decrypt(&sdata->sec, skb);
if (rc) { if (rc) {
pr_debug("decryption failed: %i\n", rc); pr_debug("decryption failed: %i\n", rc);
......
...@@ -129,6 +129,10 @@ ieee802154_subif_start_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -129,6 +129,10 @@ ieee802154_subif_start_xmit(struct sk_buff *skb, struct net_device *dev)
struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev);
int rc; int rc;
/* TODO we should move it to wpan_dev_hard_header and dev_hard_header
* functions. The reason is wireshark will show a mac header which is
* with security fields but the payload is not encrypted.
*/
rc = mac802154_llsec_encrypt(&sdata->sec, skb); rc = mac802154_llsec_encrypt(&sdata->sec, skb);
if (rc) { if (rc) {
netdev_warn(dev, "encryption failed: %i\n", rc); netdev_warn(dev, "encryption failed: %i\n", rc);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment