Wiki Home >> SIO-Command-$C5-Hash-Output

SIO-Command-$C5-Hash-Output


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):

HashBinaryHexadecimal
MD51632
SHA12040
SHA2563264
SHA51264128

>[!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

DCBValue
DDEVIC$70
DUNIT$01
DCOMND$C5
DSTATS$40
DBUFa buffer as big as set by DBYT
DTIMLO$03
DBYTthe number of bytes to send back
DAUX1the 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.                                                                              
}                                                                                                                                    

Wiki content is mirrored from the FujiNet Github Wiki