Lines Matching refs:msg

19 static int wps_build_mac_addr(struct wps_data *wps, struct wpabuf *msg)
22 wpabuf_put_be16(msg, ATTR_MAC_ADDR);
23 wpabuf_put_be16(msg, ETH_ALEN);
24 wpabuf_put_data(msg, wps->mac_addr_e, ETH_ALEN);
29 static int wps_build_wps_state(struct wps_data *wps, struct wpabuf *msg)
38 wpabuf_put_be16(msg, ATTR_WPS_STATE);
39 wpabuf_put_be16(msg, 1);
40 wpabuf_put_u8(msg, state);
45 static int wps_build_e_hash(struct wps_data *wps, struct wpabuf *msg)
64 wpabuf_put_be16(msg, ATTR_E_HASH1);
65 wpabuf_put_be16(msg, SHA256_MAC_LEN);
66 hash = wpabuf_put(msg, SHA256_MAC_LEN);
80 wpabuf_put_be16(msg, ATTR_E_HASH2);
81 wpabuf_put_be16(msg, SHA256_MAC_LEN);
82 hash = wpabuf_put(msg, SHA256_MAC_LEN);
93 static int wps_build_e_snonce1(struct wps_data *wps, struct wpabuf *msg)
96 wpabuf_put_be16(msg, ATTR_E_SNONCE1);
97 wpabuf_put_be16(msg, WPS_SECRET_NONCE_LEN);
98 wpabuf_put_data(msg, wps->snonce, WPS_SECRET_NONCE_LEN);
103 static int wps_build_e_snonce2(struct wps_data *wps, struct wpabuf *msg)
106 wpabuf_put_be16(msg, ATTR_E_SNONCE2);
107 wpabuf_put_be16(msg, WPS_SECRET_NONCE_LEN);
108 wpabuf_put_data(msg, wps->snonce + WPS_SECRET_NONCE_LEN,
116 struct wpabuf *msg;
125 msg = wpabuf_alloc(1000);
126 if (msg == NULL)
149 if (wps_build_version(msg) ||
150 wps_build_msg_type(msg, WPS_M1) ||
151 wps_build_uuid_e(msg, wps->uuid_e) ||
152 wps_build_mac_addr(wps, msg) ||
153 wps_build_enrollee_nonce(wps, msg) ||
154 wps_build_public_key(wps, msg) ||
155 wps_build_auth_type_flags(wps, msg) ||
156 wps_build_encr_type_flags(wps, msg) ||
157 wps_build_conn_type_flags(wps, msg) ||
158 wps_build_config_methods(msg, config_methods) ||
159 wps_build_wps_state(wps, msg) ||
160 wps_build_device_attrs(&wps->wps->dev, msg) ||
161 wps_build_rf_bands(&wps->wps->dev, msg) ||
162 wps_build_assoc_state(wps, msg) ||
163 wps_build_dev_password_id(msg, wps->dev_pw_id) ||
164 wps_build_config_error(msg, WPS_CFG_NO_ERROR) ||
165 wps_build_os_version(&wps->wps->dev, msg) ||
166 wps_build_wfa_ext(msg, 0, NULL, 0) ||
167 wps_build_vendor_ext_m1(&wps->wps->dev, msg)) {
168 wpabuf_free(msg);
173 return msg;
179 struct wpabuf *msg;
189 msg = wpabuf_alloc(1000);
190 if (msg == NULL)
193 if (wps_build_version(msg) ||
194 wps_build_msg_type(msg, WPS_M3) ||
195 wps_build_registrar_nonce(wps, msg) ||
196 wps_build_e_hash(wps, msg) ||
197 wps_build_wfa_ext(msg, 0, NULL, 0) ||
198 wps_build_authenticator(wps, msg)) {
199 wpabuf_free(msg);
204 return msg;
210 struct wpabuf *msg, *plain;
218 msg = wpabuf_alloc(1000);
219 if (msg == NULL) {
224 if (wps_build_version(msg) ||
225 wps_build_msg_type(msg, WPS_M5) ||
226 wps_build_registrar_nonce(wps, msg) ||
229 wps_build_encr_settings(wps, msg, plain) ||
230 wps_build_wfa_ext(msg, 0, NULL, 0) ||
231 wps_build_authenticator(wps, msg)) {
233 wpabuf_free(msg);
239 return msg;
243 static int wps_build_cred_ssid(struct wps_data *wps, struct wpabuf *msg)
246 wpabuf_put_be16(msg, ATTR_SSID);
247 wpabuf_put_be16(msg, wps->wps->ssid_len);
248 wpabuf_put_data(msg, wps->wps->ssid, wps->wps->ssid_len);
253 static int wps_build_cred_auth_type(struct wps_data *wps, struct wpabuf *msg)
268 wpabuf_put_be16(msg, ATTR_AUTH_TYPE);
269 wpabuf_put_be16(msg, 2);
270 wpabuf_put_be16(msg, auth_type);
275 static int wps_build_cred_encr_type(struct wps_data *wps, struct wpabuf *msg)
293 wpabuf_put_be16(msg, ATTR_ENCR_TYPE);
294 wpabuf_put_be16(msg, 2);
295 wpabuf_put_be16(msg, encr_type);
300 static int wps_build_cred_network_key(struct wps_data *wps, struct wpabuf *msg)
303 wpabuf_put_be16(msg, ATTR_NETWORK_KEY);
304 wpabuf_put_be16(msg, wps->wps->network_key_len);
305 wpabuf_put_data(msg, wps->wps->network_key, wps->wps->network_key_len);
310 static int wps_build_cred_mac_addr(struct wps_data *wps, struct wpabuf *msg)
313 wpabuf_put_be16(msg, ATTR_MAC_ADDR);
314 wpabuf_put_be16(msg, ETH_ALEN);
315 wpabuf_put_data(msg, wps->wps->dev.mac_addr, ETH_ALEN);
339 struct wpabuf *msg, *plain;
347 msg = wpabuf_alloc(1000 + wps->wps->ap_settings_len);
348 if (msg == NULL) {
353 if (wps_build_version(msg) ||
354 wps_build_msg_type(msg, WPS_M7) ||
355 wps_build_registrar_nonce(wps, msg) ||
359 wps_build_encr_settings(wps, msg, plain) ||
360 wps_build_wfa_ext(msg, 0, NULL, 0) ||
361 wps_build_authenticator(wps, msg)) {
363 wpabuf_free(msg);
379 return msg;
385 struct wpabuf *msg;
389 msg = wpabuf_alloc(1000);
390 if (msg == NULL)
393 if (wps_build_version(msg) ||
394 wps_build_msg_type(msg, WPS_WSC_DONE) ||
395 wps_build_enrollee_nonce(wps, msg) ||
396 wps_build_registrar_nonce(wps, msg) ||
397 wps_build_wfa_ext(msg, 0, NULL, 0)) {
398 wpabuf_free(msg);
408 return msg;
415 struct wpabuf *msg;
419 msg = wps_build_m1(wps);
423 msg = wps_build_m3(wps);
427 msg = wps_build_m5(wps);
431 msg = wps_build_m7(wps);
436 msg = wps_build_wsc_nack(wps);
440 msg = wps_build_wsc_ack(wps);
442 if (msg) {
448 msg = wps_build_wsc_nack(wps);
452 msg = wps_build_wsc_done(wps);
458 msg = NULL;
462 if (*op_code == WSC_MSG && msg) {
466 wps->last_msg = wpabuf_dup(msg);
469 return msg;
667 struct wpabuf msg;
671 wpabuf_set(&msg, cred, cred_len);
672 if (wps_parse_msg(&msg, &attr) < 0 ||
857 const struct wpabuf *msg,
893 wps_process_authenticator(wps, attr->authenticator, msg) ||
960 const struct wpabuf *msg,
976 wps_process_authenticator(wps, attr->authenticator, msg) ||
1015 const struct wpabuf *msg,
1031 wps_process_authenticator(wps, attr->authenticator, msg)) {
1072 const struct wpabuf *msg,
1088 wps_process_authenticator(wps, attr->authenticator, msg)) {
1142 const struct wpabuf *msg)
1149 if (wps_parse_msg(msg, &attr) < 0)
1166 if (wps_validate_m2(msg) < 0)
1168 ret = wps_process_m2(wps, msg, &attr);
1171 if (wps_validate_m2d(msg) < 0)
1176 if (wps_validate_m4(msg) < 0)
1178 ret = wps_process_m4(wps, msg, &attr);
1184 if (wps_validate_m6(msg) < 0)
1186 ret = wps_process_m6(wps, msg, &attr);
1192 if (wps_validate_m8(msg) < 0)
1194 ret = wps_process_m8(wps, msg, &attr);
1216 wps->last_msg = wpabuf_dup(msg);
1224 const struct wpabuf *msg)
1230 if (wps_parse_msg(msg, &attr) < 0)
1270 const struct wpabuf *msg)
1277 if (wps_parse_msg(msg, &attr) < 0)
1349 const struct wpabuf *msg)
1354 (unsigned long) wpabuf_len(msg), op_code);
1359 if (wps_parse_msg(msg, &attr) == 0 && attr.msg_type) {
1370 return wps_process_wsc_msg(wps, msg);
1372 if (wps_validate_wsc_ack(msg) < 0)
1374 return wps_process_wsc_ack(wps, msg);
1376 if (wps_validate_wsc_nack(msg) < 0)
1378 return wps_process_wsc_nack(wps, msg);