SIO Command $C5 Hash Output - FujiNetWIFI/fujinet-firmware GitHub Wiki
This is a command for Device $70 - The FujiNet Device itself (see SIO-Commands-for-Device-ID-$70).
Hash Output ($C5)
Description
This function retrieves the output buffer containing the hash data previously input and computed. You can fetch as many bytes up to the pre-set lengths of the given hash algorithms. Any attempt to get more bytes than are in the buffer will result in an error.
Supported hash output string sizes (bytes):
| Hash | Binary | Hexadecimal |
|---|---|---|
| MD5 | 16 | 32 |
| SHA1 | 20 | 40 |
| SHA256 | 32 | 64 |
| SHA512 | 64 | 128 |
[!important] You must select size based on desired output type and the last call to Hash Compute.
[!note] Firmware version required: 1.1 (2023.08.22) +
Parameters
| DCB | Value |
|---|---|
| DDEVIC | $70 |
| DUNIT | $01 |
| DCOMND | $C5 |
| DSTATS | $40 |
| DBUF | a buffer as big as set by DBYT |
| DTIMLO | $03 |
| DBYT | the number of bytes to send back |
| DAUX1 | the type of output to retreive (0=binary, 1=hexadecimal) |
Examples
CC65
unsigned char hash_output(char *s, unsigned short len)
{
OS.dcb.ddevic = 0x70;
OS.dcb.dunit = 1;
OS.dcb.dcomnd = 0xC5;
OS.dcb.dstats = 0x40;
OS.dcb.dbuf = s;
OS.dcb.dtimlo = 0x03;
OS.dcb.dbyt = len;
OS.dcb.daux1 = 1;
siov();
return OS.dcb.dstats; // Return SIO error or success.
}