Changes

812 bytes added ,  18:26, 5 February 2024
Line 80: Line 80:     
Right now, this doesn't explain how valid numbers like C2 can be generated.
 
Right now, this doesn't explain how valid numbers like C2 can be generated.
 +
 +
:The checksum is calculated as follows (pseudocode, confirmed via reverse engineering):
 +
:<source>
 +
checksum = (mac_address[0] + mac_address[1] + mac_address[2]) & 0xFF
 +
if mac_address[0] != 0x00 and mac_address[1] != 0x17 and mac_address[2] != 0xAB:
 +
    checksum &= 0x7F
 +
</source>
 +
:The first three bytes of a MAC address is the "Organizational Unique Identifier" (OUI), and the specific one checked (00:17:AB) is called "scFirstMakerCode" within the RFL code. If the OUI is not set to that value, then the most significant bit will be cleared from the checksum.
 +
:An OUI of 00:16:AC, which has a sum of 0xC2, would result in a checksum of 0x42, while an OUI of 00:17:AB, which also has a sum of 0xC2, would result in a checksum of 0xC2. [[User:Slp32|Slp32]] ([[User talk:Slp32|talk]]) 17:26, 5 February 2024 (CET)
3

edits