FSPXI:ReadFileSHA256: Difference between revisions

Luigi2us (talk | contribs)
Created page with "=Request= {| class="wikitable" border="1" |- ! Index Word ! Description |- | 0 | Header code [0x004D01C4] |- | 1 | File handle lower word |- | 2 | File handle upper word |- | 3..."
 
TimmSkiller (talk | contribs)
Unknown value -> Alignment size
 
(5 intermediate revisions by 3 users not shown)
Line 21: Line 21:
|-
|-
| 5
| 5
| Size of second memory block
| Size of read buffer
|-
|-
| 6
| 6
| Unknown (always 0x00001000)
| Alignment size (always 0x00001000)
|-
|-
| 7
| 7
| Size of first memory block
| Size of hashtable
|-
|-
| 8
| 8
| (size of first mem block << 8)  <nowiki>|</nowiki> 4
| (size of hashtable << 8)  <nowiki>|</nowiki> 6
|-
|-
| 9
| 9
| Pointer to first memory block
| Pointer to hashtable
|-
|-
| 10
| 10
| (size of second mem block << 8)  <nowiki>|</nowiki> 0x14
| (size of read buffer << 8)  <nowiki>|</nowiki> 0x14
|-
|-
| 11
| 11
| Pointer to second memory block
| Pointer to read buffer
|}
|}


Line 61: Line 61:
|}
|}


The data read are stored in the second memory block. The first memory block is filled with hashes, in an unknown manner.
The data read are stored in the read buffer. For each 0x1000-byte block read, a SHA256 hash of the block is stored in the hashtable.
 
It is unknown how hashing behaves if the read offset/size are not aligned to a 0x1000-byte boundary.