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.                                                                              
}                                                                                                                                    

Related Functions