Releases: henriberisha/EasyEspNow
Release list
2.0.0
Upgrade to extend functionality to support native CCMP encryption by setting PMK globally and LMK per peer.
-
Added member variable flag
pmk_is_setto keep track if PMK is set or no. -
Added member variable array
pmkwith size16to store PMK globally. -
Added member function
setPMK(const uint8_t *pmk_to_set)to set the PMK provided by the user. -
Added member function
getPMK(uint8_t *pmk_buff)to get/retrieve the PMK that was previously set. Copies the content into the buffer that user provides. -
Changed name of static variable from
LMK_LENGTHtoKEY_LENGTHto make it more general as both PMK and LMK have the same length of 16 bytes each. -
Added
bool encryptedflag inpeer_tstructure to keep track if a peer is encrypted or no. -
Set
time_peer_addedinpeer_tstructure to default value0to be able to tell that a peer is not in the list and not found. -
Added argument
lmkto the functionaddPeer()to encrypt the peer. If null, peer will not be encrypted. -
Added structure
espnow_frame_header_common_tto contain the MAC header which is common for unencrypted and CCMP encrypted frames. -
Modified and more more compact
espnow_frame_format_tstructure to includeespnow_frame_header_common_tstruct. -
Added structure
espnow_frame_format_ccmp_tto handle CCMP encrypted frame. -
Modified
espnow_frame_recv_info_tstructure to include a pointer toespnow_frame_format_tandespnow_frame_format_ccmp_t. However one of them will benullptrdepending which frame comes in. -
Modified condition to not encrypt a peer. A peer cannot be encrypted if:
LMK is nullptrORpeer's MAC is multicast/broadcastORPMK has not been set yet. -
🧙🏻♂️ 🪄 Modified
rx_cbfunction. Here all the magick happens. Handles properly unencrypted or encrypted incoming frames. First it unpacks the incoming bytes into both unencrypted and encrypted structures. Then it checks if the fields containing the specific info for the frame align.
1.0.0
This is the initial release for this library