/dev/sha: Difference between revisions
< /dev
mNo edit summary |
|||
| Line 14: | Line 14: | ||
|- | |- | ||
| style="vertical-align: top;" rowspan="3" | 0x00 | | style="vertical-align: top;" rowspan="3" | 0x00 | ||
| style="vertical-align: top;" rowspan="3" | | | style="vertical-align: top;" rowspan="3" | Initialize Hash Context | ||
| style="vertical-align: top;" rowspan="3" | 1 | | style="vertical-align: top;" rowspan="3" | 1 | ||
| style="vertical-align: top;" rowspan="3" | 2 | | style="vertical-align: top;" rowspan="3" | 2 | ||
| Line 27: | Line 27: | ||
|- | |- | ||
| style="vertical-align: top;" rowspan="3" | 0x01 | | style="vertical-align: top;" rowspan="3" | 0x01 | ||
| style="vertical-align: top;" rowspan="3" | | | style="vertical-align: top;" rowspan="3" | Contribute Additional Data | ||
| style="vertical-align: top;" rowspan="3" | 1 | | style="vertical-align: top;" rowspan="3" | 1 | ||
| style="vertical-align: top;" rowspan="3" | 2 | | style="vertical-align: top;" rowspan="3" | 2 | ||
| Line 40: | Line 40: | ||
|- | |- | ||
| style="vertical-align: top;" rowspan="3" | 0x02 | | style="vertical-align: top;" rowspan="3" | 0x02 | ||
| style="vertical-align: top;" rowspan="3" | | | style="vertical-align: top;" rowspan="3" | Finalize Hash | ||
| style="vertical-align: top;" rowspan="3" | 1 | | style="vertical-align: top;" rowspan="3" | 1 | ||
| style="vertical-align: top;" rowspan="3" | 2 | | style="vertical-align: top;" rowspan="3" | 2 | ||
Revision as of 20:35, 17 January 2023
| This article is a stub. You can help WiiBrew by expanding it. |
/dev/sha is an IPC interface for the SHA-1 engine that accepts IOS_Open, IOS_Close & IOCTLV commands.
Internally in IOS, it uses 2 FDs: one of 0x10001 normally calculating SHA-1 hashes and 0x10002 when dealing with HMAC key hashes (also based on SHA). Despite this, it is better to do an IOS_Open when using this resource.
/dev/sha IOS_Ioctlv
| number | Description | in count | out count | vector | vector length |
|---|---|---|---|---|---|
| 0x00 | Initialize Hash Context | 1 | 2 | input data (32-byte aligned) | - |
| SHA Context | 0x1c | ||||
| SHA1 Hash | 0x14 | ||||
| 0x01 | Contribute Additional Data | 1 | 2 | input data (32-byte aligned) | - |
| SHA Context | 0x1c | ||||
| SHA1 Hash | 0x14 | ||||
| 0x02 | Finalize Hash | 1 | 2 | input data (32-byte aligned) | - |
| SHA Context | 0x1c | ||||
| SHA1 Hash | 0x14 | ||||
| 0x03 | ? | ? | ? | ? | ? |
| 0x04 | ? | ? | ? | ? | ? |
| 0x0F | some sort of H0,H1,H2 verifying | ? | ? | ? | ? |