mirror of
				https://git.kernel.org/pub/scm/network/wireless/iwd.git
				synced 2025-10-31 04:57:25 +01:00 
			
		
		
		
	wscutil: Add wsc_parse_m6
This commit is contained in:
		
							parent
							
								
									97771f80f1
								
							
						
					
					
						commit
						815f685c2d
					
				| @ -1201,6 +1201,33 @@ int wsc_parse_m5_encrypted_settings(const uint8_t *pdu, uint32_t len, | ||||
| 			WSC_ATTR_INVALID); | ||||
| } | ||||
| 
 | ||||
| int wsc_parse_m6(const uint8_t *pdu, uint32_t len, struct wsc_m6 *out, | ||||
| 						struct iovec *out_encrypted) | ||||
| { | ||||
| 	int r; | ||||
| 	struct wsc_wfa_ext_iter iter; | ||||
| 	uint8_t version; | ||||
| 	enum wsc_message_type msg_type; | ||||
| 
 | ||||
| 	memset(out, 0, sizeof(struct wsc_m6)); | ||||
| 
 | ||||
| 	r = wsc_parse_attrs(pdu, len, &out->version2, &iter, | ||||
| 		WSC_ATTR_AUTHENTICATOR, out->authenticator, | ||||
| 		REQUIRED(VERSION, &version), | ||||
| 		REQUIRED(MESSAGE_TYPE, &msg_type), | ||||
| 		REQUIRED(ENROLLEE_NONCE, &out->enrollee_nonce), | ||||
| 		REQUIRED(ENCRYPTED_SETTINGS, out_encrypted), | ||||
| 		WSC_ATTR_INVALID); | ||||
| 
 | ||||
| 	if (r < 0) | ||||
| 		return r; | ||||
| 
 | ||||
| 	if (msg_type != WSC_MESSAGE_TYPE_M6) | ||||
| 		return -EBADMSG; | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| int wsc_parse_nack(const uint8_t *pdu, uint32_t len, struct wsc_nack *out) | ||||
| { | ||||
| 	int r; | ||||
|  | ||||
| @ -470,6 +470,12 @@ struct wsc_m5_encrypted_settings { | ||||
| 	uint8_t authenticator[8]; | ||||
| }; | ||||
| 
 | ||||
| struct wsc_m6 { | ||||
| 	bool version2; | ||||
| 	uint8_t enrollee_nonce[16]; | ||||
| 	uint8_t authenticator[8]; | ||||
| }; | ||||
| 
 | ||||
| struct wsc_nack { | ||||
| 	bool version2; | ||||
| 	uint8_t enrollee_nonce[16]; | ||||
| @ -495,6 +501,8 @@ int wsc_parse_m5(const uint8_t *pdu, uint32_t len, struct wsc_m5 *out, | ||||
| 						struct iovec *out_encrypted); | ||||
| int wsc_parse_m5_encrypted_settings(const uint8_t *pdu, uint32_t len, | ||||
| 					struct wsc_m5_encrypted_settings *out); | ||||
| int wsc_parse_m6(const uint8_t *pdu, uint32_t len, struct wsc_m6 *out, | ||||
| 						struct iovec *out_encrypted); | ||||
| 
 | ||||
| int wsc_parse_nack(const uint8_t *pdu, uint32_t len, struct wsc_nack *out); | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Denis Kenzior
						Denis Kenzior