This patch series implements 802.15.4-2011 link layer security. Patches 1 and 2 prepare for llsec by adding data structures to represent the llsec PIB as specified in 802.15.4-2011. I've changed some structures from their specification to be more sensible, since 802.15.4 specifies some structures in not-exactly-useful ways. Nested lists are common, but not very accessible for netlink methods, and not very fast to traverse when searching for specific elements either.
Patch 3 implements backends for these structures in mac802154. Patch 4 and 5 implement the encryption and decryption methods, split from patch 3 to ease review. The encryption and decryption methods are almost entirely compliant with the specified outgoing/incoming frame procedures. Decryption deviates from the specification slightly where the specification makes no sense, i.e. encrypted frames with security level 0 may be sent, but must be dropped an reception - but transforms for processing such frames are given a few lines in the standard. I've opted to not drop these frames instead of not implementing the transforms that wouldn't be used if they were dropped. Patch 6 links the mac802154 llsec with the SoftMAC devices. This is mainly init//fini code for llsec context, handling of security subheaders and calling the encryption/decryption methods. Patch 7 adds sockopts to 802.15.4 dgram sockets to modifiy outgoing security parameters on a per-socket basis. Ideally, this would also be available for sockets on 6lowpan devices, but I'm not sure how to do that nicely. Patch 8 adds forwarders to the llsec configuration methods for netlink, patch 10 implements these netlink accessors. This is mainly mechanical. Patch 11, implements a key tracking option for devices that previous patches haven't, because I'm not entirely sure whether this is the best approach to the problem. It performs reasonably well though, so I decided to include it as a separate patch in this series instead of sending an RFC just for this one option. --- Phoebe Buckheister (11): ieee802154: add types for link-layer security mac802154: update Kconfig mac802154: add llsec structures and mutators mac802154: add llsec encryption method mac802154: add llsec decryption method mac802154: integrate llsec with wpan devices ieee802154: add dgram sockopts for security control mac802154: add llsec configuration functions mac802154: propagate device address changes to llsec ieee802154: add netlink interfaces for llsec ieee802154, mac802154: implement devkey record option include/linux/nl802154.h | 31 ++ include/net/af_ieee802154.h | 10 +- include/net/ieee802154_netdev.h | 135 +++++ net/ieee802154/dgram.c | 66 +++ net/ieee802154/ieee802154.h | 19 + net/ieee802154/netlink.c | 20 + net/ieee802154/nl-mac.c | 807 +++++++++++++++++++++++++++++ net/ieee802154/nl_policy.c | 16 + net/mac802154/Kconfig | 4 + net/mac802154/Makefile | 3 +- net/mac802154/llsec.c | 1067 +++++++++++++++++++++++++++++++++++++++ net/mac802154/llsec.h | 108 ++++ net/mac802154/mac802154.h | 44 ++ net/mac802154/mac_cmd.c | 42 +- net/mac802154/mib.c | 187 +++++++ net/mac802154/wpan.c | 144 ++++-- 16 files changed, 2670 insertions(+), 33 deletions(-) ------------------------------------------------------------------------------ "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free." http://p.sf.net/sfu/SauceLabs _______________________________________________ Linux-zigbee-devel mailing list Linux-zigbee-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-zigbee-devel