mirror of
https://github.com/A2osX/A2osX.git
synced 2024-09-09 00:54:29 +00:00
113 lines
2.2 KiB
Plaintext
113 lines
2.2 KiB
Plaintext
NEW
|
||
AUTO 3,1
|
||
*/--------------------------------------
|
||
* ## MD5
|
||
* Return MD5 Hash for input String
|
||
* # C
|
||
* `void md5 (const char* str, char* digest);`
|
||
* # ASM
|
||
* `>PUSHW str`
|
||
* `>PUSHW digest`
|
||
* `>SYSCALL md5`
|
||
* ## RETURN VALUE
|
||
* CC
|
||
*\--------------------------------------
|
||
K.MD5 >PULLW FORPNT
|
||
>PULLYA
|
||
>STYA TXTPTR
|
||
|
||
>SYSCALL2 strlen
|
||
>STYA ZPDataLen
|
||
|
||
sta SETREADAUX
|
||
sta SETWRITEAUX
|
||
|
||
.1 jsr K.MD5Init.I
|
||
bcs .9
|
||
pha save MD5 Context hMem
|
||
|
||
jsr MD5Update.I
|
||
jsr MD5Finalize.I
|
||
pla
|
||
>SYSCALL2 FreeMem Free MD5 Context
|
||
clc
|
||
|
||
.9 sta CLRREADAUX
|
||
sta CLRWRITEAUX
|
||
rts
|
||
*/--------------------------------------
|
||
* ## MD5Init
|
||
* Initialize a MD5 computation
|
||
* # C
|
||
* `hMD5 md5init ();`
|
||
* # ASM
|
||
* `>SYSCALL MD5Init`
|
||
* ## RETURN VALUE
|
||
* A = hMem To S.MD5
|
||
*\--------------------------------------
|
||
K.MD5Init sta SETREADAUX
|
||
sta SETWRITEAUX
|
||
|
||
jsr K.MD5Init.I
|
||
|
||
sta CLRREADAUX
|
||
sta CLRWRITEAUX
|
||
rts
|
||
*/--------------------------------------
|
||
* ## MD5Update
|
||
* Add Data to MD5 computation
|
||
* # C
|
||
* `void md5update (hMD5 md5, char* data, int len);`
|
||
* # ASM
|
||
* `>PUSHB md5`
|
||
* `>PUSHW data`
|
||
* `>PUSHW len`
|
||
* `>SYSCALL MD5Update`
|
||
* ## RETURN VALUE
|
||
*\--------------------------------------
|
||
K.MD5Update >PULLW ZPDataLen get LEN
|
||
>PULLW TXTPTR get DATA
|
||
>PULLA
|
||
>SYSCALL2 GetMemPtr get MD5 Context
|
||
>STYA ZPCtxPtr
|
||
|
||
sta SETREADAUX
|
||
sta SETWRITEAUX
|
||
|
||
jsr K.MD5Update.I
|
||
|
||
sta CLRREADAUX
|
||
sta CLRWRITEAUX
|
||
rts
|
||
*/--------------------------------------
|
||
* ## MD5Finalize
|
||
* # C
|
||
* `void md5finalize (hMD5 md5, char* digest);`
|
||
* # ASM
|
||
* `>PUSHB md5`
|
||
* `>PUSHW digest`
|
||
* `>SYSCALL MD5Finalize`
|
||
* ## RETURN VALUE
|
||
*\--------------------------------------
|
||
K.MD5Finalize >PULLW FORPNT
|
||
>PULLA
|
||
sta .8+1
|
||
>SYSCALL2 GetMemPtr
|
||
>STYA ZPCtxPtr get MD5 Context
|
||
|
||
sta SETREADAUX
|
||
sta SETWRITEAUX
|
||
|
||
jsr MD5Finalize.I
|
||
|
||
.8 lda #$ff SELF MODIFIED
|
||
>SYSCALL2 FreeMem
|
||
sta CLRREADAUX
|
||
sta CLRWRITEAUX
|
||
rts
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE USR/SRC/SYS/KERNEL.S.MD5
|
||
LOAD USR/SRC/SYS/KERNEL.S
|
||
ASM
|