Changes

no edit summary
Line 1: Line 1:  
=Request=
 
=Request=
{| class="wikitable" border="1"
+
{{IPC/Request}}
|-
+
{{IPC/RequestHeader|0x0024|1|0}}
!  Index Word
+
{{IPC/RequestEntry|Principal ID}}
!  Description
+
{{IPC/RequestEnd}}
|-
  −
| 0
  −
| Header code [0x00240040]
  −
|-
  −
| 1
  −
| principalId
  −
|}
     −
This function takes the principalId given and applies SHA-1 over it (byte order: little endian). The first byte of the SHA-1 digest is then shifted right by 1, which forms the checksum byte.
+
=Response=
 +
{{IPC/Request}}
 +
{{#vardefine:ipc_offset|0}}
 +
{{IPC/RequestHeader|0x0024|3|0}}
 +
{{IPC/RequestEntry|Result code}}
 +
{{IPC/RequestEntryRange|2|u64, Friend code}}
 +
{{IPC/RequestEnd}}
   −
It returns an u64. The lower word is the principalId, the upper word is the checksum byte.
+
=Description=
 +
Converts the given Principal ID to a Friend Code. The following algorithm is used (note: everything is in little endian):
   −
=Response=
+
<code>
{| class="wikitable" border="1"
+
principal_id_buf = principal_id as LE bytes
|-
+
 
!  Index Word
+
friend_code = ((sha1(principal_id_buf)[0] >> 1) << 32) | principal_id
!  Description
+
</code>
|-
  −
| 0
  −
| Header code
  −
|-
  −
| 1
  −
| Result code
  −
|-
  −
| 2-3
  −
| (u64)the shareable friend code
  −
|}
 
Trusted
365

edits