From aa518811b30b013ea5257d644cf0277ab9e3ef07 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Thu, 8 Sep 2016 21:27:44 -0500 Subject: [PATCH] wscutil: Add wsc_build_wsc_done --- src/wscutil.c | 21 +++++++++++++++++++++ src/wscutil.h | 2 ++ 2 files changed, 23 insertions(+) diff --git a/src/wscutil.c b/src/wscutil.c index c99b40e0..cb1db8fe 100644 --- a/src/wscutil.c +++ b/src/wscutil.c @@ -2301,6 +2301,27 @@ done: return ret; } +uint8_t *wsc_build_wsc_done(const struct wsc_done *done, size_t *out_len) +{ + struct wsc_attr_builder *builder; + uint8_t *ret; + + builder = wsc_attr_builder_new(256); + build_version(builder, 0x10); + build_message_type(builder, WSC_MESSAGE_TYPE_WSC_DONE); + build_enrollee_nonce(builder, done->enrollee_nonce); + build_registrar_nonce(builder, done->registrar_nonce); + + if (!done->version2) + goto done; + + START_WFA_VENDOR_EXTENSION(); + +done: + ret = wsc_attr_builder_free(builder, false, out_len); + return ret; +} + bool wsc_uuid_from_addr(const uint8_t addr[], uint8_t *out_uuid) { /* Reuse the NSID from WPA Supplicant for compatibility */ diff --git a/src/wscutil.h b/src/wscutil.h index 670f9d6c..f374068e 100644 --- a/src/wscutil.h +++ b/src/wscutil.h @@ -597,6 +597,8 @@ uint8_t *wsc_build_m8(const struct wsc_m8 *m8, const uint8_t *encrypted, uint8_t *wsc_build_nack(const struct wsc_nack *nack, size_t *out_len); +uint8_t *wsc_build_wsc_done(const struct wsc_done *done, size_t *out_len); + bool wsc_uuid_from_addr(const uint8_t addr[], uint8_t *out_uuid); struct wsc_session_key {