Fix unwanted encryption of NAFs

This commit is contained in:
Akshat Agrawal
2026-06-30 14:56:55 +08:00
committed by Jack
parent 478be42bd1
commit 2151a0003f
4 changed files with 25 additions and 29 deletions
@@ -85,7 +85,6 @@ typedef int (*esp_aes_128_decrypt_t)(const unsigned char *key, const unsigned ch
* @param n Length of the plaintext key in 64-bit units;
* @param plain Plaintext key to be wrapped, n * 64 bits
* @param cipher Wrapped key, (n + 1) * 64 bits
* Returns: 0 on success, -1 on failure
*/
typedef int (*esp_aes_wrap_t)(const unsigned char *kek, size_t kek_len, int n, const unsigned char *plain, unsigned char *cipher);
@@ -97,7 +96,6 @@ typedef int (*esp_aes_wrap_t)(const unsigned char *kek, size_t kek_len, int n, c
* @param n Length of the plaintext key in 64-bit units;
* @param cipher Wrapped key to be unwrapped, (n + 1) * 64 bits
* @param plain Plaintext key, n * 64 bits
* Returns: 0 on success, -1 on failure
*/
typedef int (*esp_aes_unwrap_t)(const unsigned char *kek, size_t kek_len, int n, const unsigned char *cipher, unsigned char *plain);
@@ -751,7 +751,7 @@ void nan_app_post_event(int32_t event_id, void* event_data, size_t event_data_si
}
static void nan_app_service_match_cb(uint8_t sub_id, struct nan_cb_peer_info *peer_info,
struct nan_cb_npba_t *npba)
struct nan_cb_npba_t *npba)
{
if (!peer_info) {
return;
@@ -450,7 +450,29 @@ static struct peer_svc_info *nan_find_peer_svc_exact(uint8_t own_svc_id, uint8_t
return NULL;
}
static void nan_pairing_nik_fup_timeout_cb(void *eloop_data, void *user_ctx);
static void nan_pairing_nik_fup_timeout_cb(void *eloop_data, void *user_ctx)
{
struct own_svc_info *own = user_ctx;
wifi_event_nan_pairing_complete_t evt = {0};
(void)eloop_data;
if (!own || !own->nik_fup_pending) {
return;
}
own->nik_fup_pending = false;
evt.status = WIFI_NAN_PAIRING_STATUS_ACCEPTED;
evt.reason_code = WIFI_NAN_PAIRING_REASON_NIK_FUP_TIMEOUT;
MACADDR_COPY(evt.peer_nmi, own->nik_fup_pending_peer_nmi);
nan_app_remove_paired_peer(own->nik_fup_pending_peer_nmi);
struct peer_svc_info *peer = nan_find_peer_svc(own->svc_id, 0,
own->nik_fup_pending_peer_nmi);
esp_nan_complete_pairing(own->svc_id, peer ? peer->svc_id : 0);
nan_app_post_event(WIFI_EVENT_NAN_PAIRING_CONFIRM, &evt, sizeof(evt));
ESP_LOGW(TAG, "Pairing succeeded but NIK caching timed out for peer " MACSTR
" (reason=%u)", MAC2STR(own->nik_fup_pending_peer_nmi), evt.reason_code);
}
void nan_pairing_cancel_svc_pending(struct own_svc_info *own)
{
@@ -479,30 +501,6 @@ static void nan_pairing_arm_pending(struct own_svc_info *own, const uint8_t *pee
}
}
static void nan_pairing_nik_fup_timeout_cb(void *eloop_data, void *user_ctx)
{
struct own_svc_info *own = user_ctx;
wifi_event_nan_pairing_complete_t evt = {0};
(void)eloop_data;
if (!own || !own->nik_fup_pending) {
return;
}
own->nik_fup_pending = false;
evt.status = WIFI_NAN_PAIRING_STATUS_ACCEPTED;
evt.reason_code = WIFI_NAN_PAIRING_REASON_NIK_FUP_TIMEOUT;
MACADDR_COPY(evt.peer_nmi, own->nik_fup_pending_peer_nmi);
nan_app_remove_paired_peer(own->nik_fup_pending_peer_nmi);
struct peer_svc_info *peer = nan_find_peer_svc(own->svc_id, 0,
own->nik_fup_pending_peer_nmi);
esp_nan_complete_pairing(own->svc_id, peer ? peer->svc_id : 0);
nan_app_post_event(WIFI_EVENT_NAN_PAIRING_CONFIRM, &evt, sizeof(evt));
ESP_LOGW(TAG, "Pairing succeeded but NIK caching timed out for peer " MACSTR
" (reason=%u)", MAC2STR(own->nik_fup_pending_peer_nmi), evt.reason_code);
}
/**
* Build the WFA OUI + GSP protocol header that prefixes a Generic Service
* Protocol SSI (Wi-Fi Aware v4.0 §4.2.7). Ported from esp-nsd