/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
|
?
|
?
|
?
|
?
|
?
|
0x01
|
?
|
?
|
?
|
?
|
?
|
0x02
|
?
|
?
|
?
|
?
|
?
|
0x03
|
?
|
1
|
2
|
input data (32-byte aligned)
|
-
|
SHA Context
|
0x1c
|
SHA1 Hash
|
0x14
|
0x04
|
?
|
?
|
?
|
?
|
?
|
0x0F
|
some sort of H0,H1,H2 verifying
|
?
|
?
|
?
|
?
|