LDN services: Difference between revisions

No edit summary
Line 1,113: Line 1,113:
! Description
! Description
|-
|-
| 0x0 || 0x1 || Type? Must be 0x1-0xF. Always set to 0x3 ([1.0.0-?] 0x1 [?-5.1.0] 0x2) by the Station/AccessPoint.
| 0x0 || 0x1 || [[#AuthVersion]]
|-
|-
| 0x1 || 0x1 || Low u8 for the size.
| 0x1 || 0x1 || Low u8 for the size.
Line 1,119: Line 1,119:
| 0x2 || 0x1 || Status. 0 = success, non-zero = error.
| 0x2 || 0x1 || Status. 0 = success, non-zero = error.
|-
|-
| 0x3 || 0x1 || [?+] bool flag. The AccessPoint verifies that this is not set. Always set to 1 by the AccessPoint in the response.
| 0x3 || 0x1 || [?+] bool flag. The AccessPoint verifies that this is not set. Always set to 1 by the AccessPoint in the response. The Station only uses this when the [[#AuthVersion]] is >=2.
|-
|-
| 0x4 || 0x1 || [6.0.0+] High u8 for the size.
| 0x4 || 0x1 || [6.0.0+] High u8 for the size.
Line 1,136: Line 1,136:
|}
|}


The Station sets the above size to 0x40 ([6.0.0+] if [[#NetworkInfo]]+0x13 is <0x3). [6.0.0+] The Authentication challenge is only used/enabled if that value is >=0x3, and [[#IUserLocalCommunicationService]] is being used.
The Station sets the above size to 0x40 ([6.0.0+] if [[#NetworkInfo]]+0x13 is <3). [6.0.0+] The Authentication challenge is only used/enabled if that value is >=3, and [[#IUserLocalCommunicationService]] is being used.


The AccessPoint sets the above size to 0x0 ([6.0.0+] if the +0x0 Type is <0x3). [6.0.0+] The AccessPoint will only use/enable the Authentication challenge when the +0x0 Type is >=0x3, and [[#IUserLocalCommunicationService]] is being used. This data will not be included in the frame if the status field indicates error.
The AccessPoint sets the above size to 0x0 ([6.0.0+] if the +0x0 [[#AuthVersion]] is <3). [6.0.0+] The AccessPoint will only use/enable the Authentication challenge when the +0x0 [[#AuthVersion]] is >=3, and [[#IUserLocalCommunicationService]] is being used. This data will not be included in the frame if the status field indicates error.


[6.0.0+] Support for the Authentication challenge with [[ETicket_services|es]] cmds 1501-1504 was added.
[6.0.0+] Support for the Authentication challenge with [[ETicket_services|es]] cmds 1501-1504 was added.
Line 1,175: Line 1,175:
| 0x38 || 0x10 || +0x38 from the data originally sent by the Station. The Station verifies that this matches the previously sent data.
| 0x38 || 0x10 || +0x38 from the data originally sent by the Station. The Station verifies that this matches the previously sent data.
|-
|-
| 0x48 || 0x40 || Zeros. [6.0.0+] Only included in the frame if it's enabled (Type >= 0x3). Unused by the Station.
| 0x48 || 0x40 || Zeros. [6.0.0+] Only included in the frame if it's enabled (+0x0 [[#AuthVersion]] >= 3). Unused by the Station.
|-
|-
| 0x88 || 0x44 || [6.0.0+] Only included in the frame if it's enabled (Type >= 0x3). Unused by the Station.
| 0x88 || 0x44 || [6.0.0+] Only included in the frame if it's enabled (+0x0 [[#AuthVersion]] >= 3). Unused by the Station.
|-
|-
| 0xCC || 0x100 || [6.0.0+] If enabled, Authentication challenge response data. Not included in the frame if it's not enabled.
| 0xCC || 0x100 || [6.0.0+] If enabled, Authentication challenge response data. Not included in the frame if it's not enabled.
|}
===== AuthVersion =====
Must be 0x1-0xF.
{| class="wikitable" border="1"
|-
! Value || SystemVersion
|-
| 1 || [1.0.0+]
|-
| 2 || [?+]
|-
| 3 || [6.0.0+]
|}
|}


Line 1,214: Line 1,228:
| 0x0 || 0x20 || [[#NetworkInfo]]+0x0. The u64/u16 are big-endian. Outside of [[#Scan]]/[[#ScanPrivate]], this must match the previously loaded data for this.
| 0x0 || 0x20 || [[#NetworkInfo]]+0x0. The u64/u16 are big-endian. Outside of [[#Scan]]/[[#ScanPrivate]], this must match the previously loaded data for this.
|-
|-
| 0x20 || 0x1 || Must be 0x1-0xF. Copied to [[#NetworkInfo]]+0x63. When comparing with a previous frame is enabled, this must match the value from the previous frame. During network creation this is always set to 0x3.
| 0x20 || 0x1 || [[#AuthVersion]]. Copied to [[#NetworkInfo]]+0x63. When comparing with a previous frame is enabled, this must match the value from the previous frame.
|-
|-
| 0x21 || 0x1 || Encryption type: 1 = plaintext, 2 = encrypted, {frames with other values are ignored by [[#Scan]]/[[#ScanPrivate]]}. Must match the type which is currently being used: with [[#Scan]]/[[#ScanPrivate]] this is determined via this field, otherwise [[#SecurityConfig]] is used to determine this.
| 0x21 || 0x1 || Encryption type: 1 = plaintext, 2 = encrypted, {frames with other values are ignored by [[#Scan]]/[[#ScanPrivate]]}. Must match the type which is currently being used: with [[#Scan]]/[[#ScanPrivate]] this is determined via this field, otherwise [[#SecurityConfig]] is used to determine this.