lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:	Sat, 19 Apr 2008 14:58:45 +0200
From:	Pavel Machek <pavel@....cz>
To:	kernel list <linux-kernel@...r.kernel.org>, kaszak@...il.com,
	lcostantino@...il.com
Subject: w35und: remove key management

Hi!

key management isdone by softmac, so it became dead code.

key management is dead code that can be removed

---
commit 72ef967c3bdda42a1b39e533650b1588003cbb08
tree e9308481d119bfe6a85144849e88ace82431614b
parent ce03f9f145abf2e8be4b69f9ee56cd0e49c8770d
author Pavel <pavel@....ucw.cz> Sat, 19 Apr 2008 14:53:31 +0200
committer Pavel <pavel@....ucw.cz> Sat, 19 Apr 2008 14:53:31 +0200

 drivers/net/wireless/winbond/winbondport/wbhal.c |  335 ----------------------
 1 files changed, 0 insertions(+), 335 deletions(-)

diff --git a/drivers/net/wireless/winbond/winbondport/wbhal.c b/drivers/net/wireless/winbond/winbondport/wbhal.c
index 0177bc0..55eccde 100644
--- a/drivers/net/wireless/winbond/winbondport/wbhal.c
+++ b/drivers/net/wireless/winbond/winbondport/wbhal.c
@@ -8,340 +8,6 @@ void hal_start_tx0(phw_data_t pHwData)
 		Wb35Tx_start( pHwData );
 }
 
-//-----------------------------------------------------------------------------------
-void hal_remove_mapping_key( phw_data_t pHwData, PUCHAR pmac_addr )
-{
-	u32	i;
-
-	if( pHwData->SurpriseRemove ) return;
-
-	#ifdef _PE_STATE_DUMP_
-	WBDEBUG(("hal_remove_mapping_key\n"));
-	#endif
-
-	for (i=MAPPING_KEY_START_INDEX; i<MAX_KEY_TABLE; i++) {
-		if( OS_MEMORY_COMPARE( pmac_addr, pHwData->Key_slot[i], MAC_ADDR_LENGTH ) )
-			break;
-	}
-	if (i != MAX_KEY_TABLE) { //Find the same index
-		// Clear the mac address
-		memset(pHwData->Key_slot[i], 0, MAC_ADDR_LENGTH);
-
-		// Writing into register to clear the valid bit
-		Wb35Reg_Write( pHwData, 0x0820, 0x0 );//Value
-		i<<=4;
-		i |= 0x4000000;
-		Wb35Reg_Write( pHwData, 0x081c, i );
-	}
-}
-
-void hal_remove_default_key( phw_data_t pHwData, u32 i )
-{
-	u32	ltmp;
-	if( pHwData->SurpriseRemove ) return;
-
-	#ifdef _PE_STATE_DUMP_
-	WBDEBUG(("hal_remove_default_key\n"));
-	#endif
-
-	if (i < 4) {  // For default key index 0 ~ 3
-		//Writing into register to clear the valid bit
-		Wb35Reg_Write( pHwData, 0x0820, 0x0 );//Value
-		ltmp = i<<4;
-		ltmp |= 0x4000000;
-		Wb35Reg_Write( pHwData, 0x081c, ltmp );
-
-		memset(pHwData->Key_slot[i], 0, MAC_ADDR_LENGTH);
-	}
-}
-
-unsigned char hal_set_mapping_key( phw_data_t pHwData,  PUCHAR pmac_addr,  u8 null_key,
-				   u8 wep_on,  PUCHAR ptx_tsc,  PUCHAR prx_tsc,
-				   u8 key_type,  u8 key_len,  PUCHAR pkey_data )
-{
-	PWB35REG	pWb35Reg = &pHwData->Wb35Reg;
-	PKEY_TABLE	pKey;
-	PULONG		pltmp;
-	u32		ltmp;
-	u8		Key_content[sizeof(KEY_TABLE)+ 16 + 8 ]; //16 bytes for key content, 8 bytes for burst writing
-	u8		i, j;
-	PUCHAR		pValue;  //20060926 anson's endian
-
-	if( pHwData->SurpriseRemove ) return FALSE;
-
-	#ifdef _PE_STATE_DUMP_
-	WBDEBUG(("hal mapping key set\n"));
-	for( i=0; i<key_len; i++ )
-		WBDEBUG(("%x ", pkey_data[i] ));
-	WBDEBUG(("\n"));
-	#endif
-
-	// Turn off the reply ACK ability 930409.2
-	// Due to DI-624. If user uses the WPA-PSK mode, driver doesn't
-	// have enough time to setup the pairwise key into hardware.
-	// For getting more time, disable the ACK ability to let the
-	// AP retry to send the next packet which contains the group key data.
-	pWb35Reg->M40_MacControl |= 0x4000;
-	Wb35Reg_Write( pHwData, 0x0840, pWb35Reg->M40_MacControl );
-
-	// Set key table contain
-	memset(Key_content, 0, sizeof(KEY_TABLE)+ 16 + 8); // 8 bytes for burst writing
-	pKey = (PKEY_TABLE)(Key_content + 4 ); // Space 4 byte for burst command
-
-	pValue = (u8 *)pKey;
-	*pValue = 0x01;							//bit 0
-	*pValue |= ((null_key ? 0: 1) << 1);	//bit 1, 35 hardware different with 33
-	*pValue |= (key_type << 2);				//bit 2~3
-	*pValue |= (wep_on << 4);				//bit 4
-	pValue += 2;
-	memcpy(pValue, pmac_addr, sizeof(u16));	//addr 1
-
-	memcpy( &(pKey->DW1_Address2), pmac_addr + 2, sizeof(u32) );
-
-	if (prx_tsc) {
-		pValue = (u8 *)pKey +8 ;  //20060926 anson's endian
-		memcpy( pValue, prx_tsc, 6 ); //20060926 anson's endian
-	}
-	if (ptx_tsc) {
-		pValue = (u8 *)pKey +16;   //20060926 anson's endian
-		memcpy( pValue, ptx_tsc, 6 ); //20060926 anson's endian
-	}
-
-	//fill key content [20060623]
-	memcpy( ((PUCHAR)pKey+sizeof(KEY_TABLE)), pkey_data, key_len );
-
-	j = 0xff;
-	for (i=MAPPING_KEY_START_INDEX; i<MAX_KEY_TABLE; i++) {
-		pValue = (u8 *)pKey + 2;  //20060926 anson's endian
-		if (!memcpy(pValue, pHwData->Key_slot[i], 6)) {
-			pHwData->mapping_key_replace_index = i + 1;
-			if( pHwData->mapping_key_replace_index == MAX_KEY_TABLE )
-				pHwData->mapping_key_replace_index = MAPPING_KEY_START_INDEX;
-			break;
-		}
-
-		if (!memcpy(pHwData->Key_slot[i], "\x00\x00\x00\x00\x00\x00", MAC_ADDR_LENGTH ))
-			if (j == 0xff)
-				j = i;//Storing the index which can be used
-	}
-
-	if (i == MAX_KEY_TABLE) { //Not found the entry, get one to use
-		if( j == 0xff )//Is out of resource? If yes, get an elder one index to be replaced
-			i = pHwData->mapping_key_replace_index;
-		else
-			i = j;
-
-		pHwData->mapping_key_replace_index = i + 1;
-		if( pHwData->mapping_key_replace_index == MAX_KEY_TABLE )
-			pHwData->mapping_key_replace_index = MAPPING_KEY_START_INDEX;
-
-		//storing data
-		//--- 20060926 anson's endian
-		// *(PUSHORT)pHwData->Key_slot[i] = (u16)pKey->DW0_Address1; // @@
-		//memcpy( pHwData->Key_slot[i] + 2, &(pKey->DW1_Address2), sizeof(u32) );
-		pValue = (u8 *)pKey + 2;  //20060926 add by anson's endian
-		memcpy( pHwData->Key_slot[i], pValue, 6); //20060926 add by anson's endian
-	}
-
-	// For new hardware supported. Using Burst register write
-	#ifdef _PE_STATE_DUMP_
-	WBDEBUG(("35: Key set start..\n"));
-	#endif
-	pltmp = (PULONG)Key_content;
-	ltmp = i<<4;
-	ltmp |= 0x4000000;
-	pltmp[0] = ltmp; // Burst command
-	pltmp[11] = pltmp[1]; // The last, valid bit set
-	pltmp[1] = 0;// The first, clear the valid bit
-	memcpy( pHwData->Key_content[i], pltmp, sizeof(u32)*12 ); // 20060214 for recover
-        //--- 20060926 add by anson's endian
-        pltmp[0] = cpu_to_le32( ltmp );
-        for (i=0; i<=11; i++)
-		pltmp[i] = cpu_to_le32( pltmp[i] );
-
-        //--- end 20060926 add by anson's endian
-	Wb35Reg_BurstWrite( pHwData, 0x881c, pltmp, 12, IGNORE_INCREMENT );
-
-	// Turn on the reply ACK ability
-	pWb35Reg->M40_MacControl &= ~0x4000;
-	Wb35Reg_Write( pHwData, 0x0840, pWb35Reg->M40_MacControl );
-
-	#ifdef _PE_STATE_DUMP_
-	WBDEBUG(("hal_set_mapping_key[%d]\n", i));
-	#endif
-
-	return TRUE;
-}
-//---------------------------------------------------------------------------------------------------
-unsigned char hal_set_default_key( phw_data_t pHwData,  u8 index,  u8 null_key,
-				   u8 wep_on,  PUCHAR ptx_tsc,  PUCHAR prx_tsc,
-				   u8 key_type,  u8 key_len,  PUCHAR pkey_data )
-{
-	PKEY_TABLE	pKey;
-	PULONG		pltmp;
-	u32		ltmp;
-	u8		Key_content[sizeof(KEY_TABLE)+ 16 + 8 ]; //16 bytes for key content, 8 bytes for burst writing
-	PUCHAR		pValue;  //20060926 add by anson's endian  
-	u8		i;  //20060926 add by anson's endian
-
-	if( pHwData->SurpriseRemove ) return FALSE;
-
-	#ifdef _PE_STATE_DUMP_
-	{
-		int i;
-
-		WBDEBUG(("hal default key set\n"));
-		for( i=0; i<key_len; i++ )
-			WBDEBUG(("%x ", pkey_data[i] ));
-		WBDEBUG(("\n"));
-	}
-	#endif
-
-	// Set key table contain
-	memset( Key_content, 0, sizeof(KEY_TABLE) + 16 + 8 ); // 8 bytes for burst writing
-	pKey = (PKEY_TABLE)(Key_content + 4 );
-
-	pValue = (u8 *)pKey;
-	*pValue = 0x01;							//bit 0
-	*pValue |= ((null_key ? 0: 1) << 1);	//bit 1, 35 hardware different with 33
-	*pValue |= (key_type << 2);				//bit 2~3
-	*pValue |= (wep_on << 4);				//bit 4
-
-	if (prx_tsc) {
-                pValue = (u8 *)pKey +8; //20060926 anson's endian
-	        memcpy( pValue, prx_tsc, 6 ); //20060926 anson's endian
-	}
-	if( ptx_tsc ) {
-                pValue = (u8 *)pKey+ 16; //20060926 anson's endian
-                memcpy( pValue, ptx_tsc, 6 ); //20060926 anson's endian
-	}
-
-	//fill key content [20060623]
-	memcpy(((PUCHAR)pKey+sizeof(KEY_TABLE)), pkey_data, key_len );
-
-	// 950301.3.a modify
-	pHwData->CurrentDefaultKeyIndex = index;// Backup default key 941130.2
-	pHwData->CurrentDefaultKeyLength = key_len;
-
-	// For new hardware supported. Using Burst register write
-	pltmp = (PULONG)Key_content;
-	ltmp = index<<4;
-		ltmp |= 0x4000000;
-	
-	pltmp[0] = ltmp; // Burst command
-	pltmp[11] = pltmp[1]; // The last, valid bit set
-	pltmp[1] = 0;// The first, clear the valid bit
-	memcpy( pHwData->Key_content[index], pltmp, sizeof(u32)*12 );
-        //---20060926 add by anson's endian
-        pltmp[0] = cpu_to_le32( ltmp );  
-        for( i=0; i<=11; i++)
-               pltmp[i]=cpu_to_le32( pltmp[i]);
-	//--- end 20060926 add by anson's endian
-	Wb35Reg_BurstWrite( pHwData, 0x881c, pltmp, 12, IGNORE_INCREMENT );
-
-	#ifdef _PE_STATE_DUMP_
-	WBDEBUG(("hal_set_default_key[%d]\n", index));
-	#endif
-
-	return TRUE;
-}
-
-//--------------------------------------------------------------------------------
-void hal_clear_all_default_key( phw_data_t pHwData )
-{
-	u32	pltmp[GROUP_KEY_START_INDEX];
-	u8	i;
-
-	if( pHwData->SurpriseRemove ) return;
-
-	#ifdef _PE_STATE_DUMP_
-	WBDEBUG(("hal_clear_all_default_key\n"));
-	#endif
-
-	// M20 KEY data, set to 0
-	Wb35Reg_Write( pHwData, 0x0820, 0 );
-	// M1c KEY write operation
-	for( i=0; i<GROUP_KEY_START_INDEX; i++ ) {
-		pltmp[i] = i<<4;
-		pltmp[i] |= 0x4000000;
-	}
-	Wb35Reg_BurstWrite( pHwData, 0x081c, pltmp, GROUP_KEY_START_INDEX, NO_INCREMENT );
-	memset( pHwData->Key_slot[0], 0, GROUP_KEY_START_INDEX*8 ); // 20060214 for recover
-}
-
-//------------------------------------------------------------------------------------
-void hal_clear_all_group_key(phw_data_t pHwData)
-{
-	u32	pltmp[MAPPING_KEY_START_INDEX-GROUP_KEY_START_INDEX];
-	u8	i;
-
-	if( pHwData->SurpriseRemove ) return;
-
-	#ifdef _PE_STATE_DUMP_
-	WBDEBUG(("hal_clear_all_group_key\n"));
-	#endif
-
-	// M20 KEY data, set to 0
-	Wb35Reg_Write( pHwData, 0x0820, 0 );
-	// M1c KEY write operation
-	for( i=GROUP_KEY_START_INDEX; i<MAPPING_KEY_START_INDEX; i++ )
-	{
-		pltmp[i-GROUP_KEY_START_INDEX] = i<<4;
-		pltmp[i-GROUP_KEY_START_INDEX] |= 0x4000000;
-	}
-	Wb35Reg_BurstWrite( pHwData, 0x081c, pltmp, MAPPING_KEY_START_INDEX-GROUP_KEY_START_INDEX, NO_INCREMENT );
-	memset( pHwData->Key_slot[GROUP_KEY_START_INDEX], 0, (MAPPING_KEY_START_INDEX-GROUP_KEY_START_INDEX)*8 );
-}
-//---------------------------------------------------------------------------------------------------
-void hal_clear_all_mapping_key( phw_data_t pHwData )
-{
-	u32	pltmp[MAX_KEY_TABLE-MAPPING_KEY_START_INDEX];
-	u8	i;
-
-	if( pHwData->SurpriseRemove ) return;
-
-	#ifdef _PE_STATE_DUMP_
-	WBDEBUG(("hal_clear_all_mapping_key\n"));
-	#endif
-
-	// M20 KEY data, set to 0
-	Wb35Reg_Write( pHwData, 0x0820, 0 );
-	// M1c KEY write operation
-	for( i=MAPPING_KEY_START_INDEX; i<MAX_KEY_TABLE; i++ )
-	{
-		pltmp[i-MAPPING_KEY_START_INDEX] = i<<4;
-		pltmp[i-MAPPING_KEY_START_INDEX] |= 0x4000000;
-	}
-	Wb35Reg_BurstWrite( pHwData, 0x081c, pltmp, MAX_KEY_TABLE-MAPPING_KEY_START_INDEX, NO_INCREMENT );
-
-	pHwData->mapping_key_replace_index = MAPPING_KEY_START_INDEX;
-	memset( pHwData->Key_slot[MAPPING_KEY_START_INDEX], 0, (MAX_KEY_TABLE-MAPPING_KEY_START_INDEX)*8 ); // Modify due to enlarge data struct 6 -> 8
-}
-//---------------------------------------------------------------------------------------------------
-void hal_clear_all_key( phw_data_t pHwData )
-{
-	u32	pltmp[MAX_KEY_TABLE];
-	u8	i;
-
-	if( pHwData->SurpriseRemove ) return;
-
-	#ifdef _PE_STATE_DUMP_
-	WBDEBUG(("hal_clear_all_key\n"));
-	#endif
-
-	// M20 KEY data, set to 0
-	Wb35Reg_Write( pHwData, 0x0820, 0 );
-	// M1c KEY write operation
-	for( i=0; i<MAX_KEY_TABLE; i++ )
-	{
-		pltmp[i] = i<<4;
-		pltmp[i] |= 0x4000000;
-	}
-	Wb35Reg_BurstWrite( pHwData, 0x081c, pltmp, 16, NO_INCREMENT );
-	Wb35Reg_BurstWrite( pHwData, 0x081c, pltmp+16, MAX_KEY_TABLE-16, NO_INCREMENT );
-	memset( pHwData->Key_slot[0], 0, MAX_KEY_TABLE*8 ); // 20060214 for recover
-}
-
 void hal_get_ethernet_address( phw_data_t pHwData, PUCHAR current_address )
 {
 	if( pHwData->SurpriseRemove ) return;
@@ -390,7 +56,6 @@ u8 hal_init_hardware(phw_data_t pHwData,
 					pHwData->InitialResource = 4;
 					OS_TIMER_INITIAL( &pHwData->LEDTimer, hal_led_control, pHwData );
 					OS_TIMER_SET( &pHwData->LEDTimer, 1000 ); // 20060623
-					hal_clear_all_key( pHwData );//Because HW doesn't clear the WEP KEY table
 
 					//
 					// For restrict to vendor's hardware

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ