mirror of
				https://git.kernel.org/pub/scm/network/wireless/iwd.git
				synced 2025-10-31 13:17:25 +01:00 
			
		
		
		
	ie: Add support for GCMP|CCMP-256
This commit is contained in:
		
							parent
							
								
									e30298d957
								
							
						
					
					
						commit
						5998043bd2
					
				
							
								
								
									
										26
									
								
								src/ie.c
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								src/ie.c
									
									
									
									
									
								
							| @ -432,6 +432,10 @@ uint32_t ie_rsn_cipher_suite_to_cipher(enum ie_rsn_cipher_suite suite) | ||||
| 		return CRYPTO_CIPHER_BIP_CMAC; | ||||
| 	case IE_RSN_CIPHER_SUITE_GCMP: | ||||
| 		return CRYPTO_CIPHER_GCMP; | ||||
| 	case IE_RSN_CIPHER_SUITE_GCMP_256: | ||||
| 		return CRYPTO_CIPHER_GCMP_256; | ||||
| 	case IE_RSN_CIPHER_SUITE_CCMP_256: | ||||
| 		return CRYPTO_CIPHER_CCMP_256; | ||||
| 	default: | ||||
| 		return 0; | ||||
| 	} | ||||
| @ -452,6 +456,10 @@ const char *ie_rsn_cipher_suite_to_string(enum ie_rsn_cipher_suite suite) | ||||
| 		return "BIP-CMAC-128"; | ||||
| 	case IE_RSN_CIPHER_SUITE_GCMP: | ||||
| 		return "GCMP-128"; | ||||
| 	case IE_RSN_CIPHER_SUITE_GCMP_256: | ||||
| 		return "GCMP-256"; | ||||
| 	case IE_RSN_CIPHER_SUITE_CCMP_256: | ||||
| 		return "CCMP-256"; | ||||
| 	case IE_RSN_CIPHER_SUITE_NO_GROUP_TRAFFIC: | ||||
| 		return "NO-TRAFFIC"; | ||||
| 	case IE_RSN_CIPHER_SUITE_USE_GROUP_CIPHER: | ||||
| @ -496,6 +504,12 @@ static bool ie_parse_cipher_suite(const uint8_t *data, | ||||
| 		case 8: | ||||
| 			*out = IE_RSN_CIPHER_SUITE_GCMP; | ||||
| 			return true; | ||||
| 		case 9: | ||||
| 			*out = IE_RSN_CIPHER_SUITE_GCMP_256; | ||||
| 			return true; | ||||
| 		case 10: | ||||
| 			*out = IE_RSN_CIPHER_SUITE_CCMP_256; | ||||
| 			return true; | ||||
| 		default: | ||||
| 			return false; | ||||
| 		} | ||||
| @ -610,6 +624,8 @@ static bool ie_parse_group_cipher(const uint8_t *data, | ||||
| 	case IE_RSN_CIPHER_SUITE_WEP40: | ||||
| 	case IE_RSN_CIPHER_SUITE_NO_GROUP_TRAFFIC: | ||||
| 	case IE_RSN_CIPHER_SUITE_GCMP: | ||||
| 	case IE_RSN_CIPHER_SUITE_GCMP_256: | ||||
| 	case IE_RSN_CIPHER_SUITE_CCMP_256: | ||||
| 		break; | ||||
| 	default: | ||||
| 		return false; | ||||
| @ -635,6 +651,8 @@ static int ie_parse_pairwise_cipher(const uint8_t *data, | ||||
| 	case IE_RSN_CIPHER_SUITE_WEP40: | ||||
| 	case IE_RSN_CIPHER_SUITE_USE_GROUP_CIPHER: | ||||
| 	case IE_RSN_CIPHER_SUITE_GCMP: | ||||
| 	case IE_RSN_CIPHER_SUITE_GCMP_256: | ||||
| 	case IE_RSN_CIPHER_SUITE_CCMP_256: | ||||
| 		break; | ||||
| 	default: | ||||
| 		return -ERANGE; | ||||
| @ -945,6 +963,12 @@ static bool ie_build_cipher_suite(uint8_t *data, const uint8_t *oui, | ||||
| 	case IE_RSN_CIPHER_SUITE_GCMP: | ||||
| 		selector = 8; | ||||
| 		goto done; | ||||
| 	case IE_RSN_CIPHER_SUITE_GCMP_256: | ||||
| 		selector = 9; | ||||
| 		goto done; | ||||
| 	case IE_RSN_CIPHER_SUITE_CCMP_256: | ||||
| 		selector = 10; | ||||
| 		goto done; | ||||
| 	} | ||||
| 
 | ||||
| 	return false; | ||||
| @ -1034,6 +1058,8 @@ static int build_ciphers_common(const struct ie_rsn_info *info, uint8_t *to, | ||||
| 		IE_RSN_CIPHER_SUITE_WEP40, | ||||
| 		IE_RSN_CIPHER_SUITE_USE_GROUP_CIPHER, | ||||
| 		IE_RSN_CIPHER_SUITE_GCMP, | ||||
| 		IE_RSN_CIPHER_SUITE_GCMP_256, | ||||
| 		IE_RSN_CIPHER_SUITE_CCMP_256, | ||||
| 	}; | ||||
| 	unsigned int pos = 0; | ||||
| 	unsigned int i; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Denis Kenzior
						Denis Kenzior