Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6921 → Rev 6922

/programs/network/ssh/test/modexp.asm
1,6 → 1,6
; modexp.asm - Modular exponentiation test suite
;
; Copyright (C) 2015-2016 Jeffrey Amelynck
; Copyright (C) 2015-2017 Jeffrey Amelynck
;
; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
20,7 → 20,7
__DEBUG__ = 1
__DEBUG_LEVEL__ = 1
 
MAX_BITS = 256
MAX_BITS = 512
 
use32
 
28,8 → 28,8
dd 1 ; header version
dd start ; entry point
dd i_end ; initialized size
dd mem+4096 ; required memory
dd mem+4096 ; stack pointer
dd mem+65536 ; required memory
dd mem+65536 ; stack pointer
dd 0 ; parameters
dd 0 ; path
 
44,8 → 44,8
 
DEBUGF 1, "ModExp Test suite\n"
 
DEBUGF 1, "mpint_zero\n"
stdcall mpint_zero, mpint_A
DEBUGF 1, "mpint_print(0x0)\n"
mov dword[mpint_A+00], 0
stdcall mpint_print, mpint_A
 
mov dword[mpint_A+00], 32
57,28 → 57,33
mov dword[mpint_A+24], 0xDEADBEEF
mov dword[mpint_A+28], 0xCAFEBABE
mov dword[mpint_A+32], 0xDEADBEEF
DEBUGF 1, "mpint_print(0xCAFEBABEDEADBEEF...)\n"
stdcall mpint_print, mpint_A
 
DEBUGF 1, "mpint_shl, 3\n"
DEBUGF 1, "mpint_shl(A, 3)\n"
stdcall mpint_shl, mpint_A, 3
stdcall mpint_length, mpint_A
stdcall mpint_print, mpint_A
 
DEBUGF 1, "mpint_shl, 40\n"
stdcall mpint_shl, mpint_A, 40
stdcall mpint_length, mpint_A
DEBUGF 1, "mpint_shl(A, 29)\n"
stdcall mpint_shl, mpint_A, 29
stdcall mpint_print, mpint_A
 
DEBUGF 1, "8 times mpint_shl1\n"
stdcall mpint_shl1, mpint_A
stdcall mpint_print, mpint_A
stdcall mpint_shl1, mpint_A
stdcall mpint_print, mpint_A
stdcall mpint_shl1, mpint_A
stdcall mpint_print, mpint_A
stdcall mpint_shl1, mpint_A
stdcall mpint_print, mpint_A
stdcall mpint_shl1, mpint_A
stdcall mpint_print, mpint_A
stdcall mpint_shl1, mpint_A
stdcall mpint_print, mpint_A
stdcall mpint_shl1, mpint_A
stdcall mpint_print, mpint_A
stdcall mpint_shl1, mpint_A
stdcall mpint_length, mpint_A
stdcall mpint_print, mpint_A
 
mov dword[mpint_B+00], 32
90,17 → 95,18
mov dword[mpint_B+24], 0xDEADBEEF
mov dword[mpint_B+28], 0xCAFEBABE
mov dword[mpint_B+32], 0xDEADBEEF
DEBUGF 1, "mpint_print(A)\n"
stdcall mpint_print, mpint_A
DEBUGF 1, "mpint_print(B)\n"
stdcall mpint_print, mpint_B
DEBUGF 1, "mpint_add\n"
DEBUGF 1, "mpint_add(B, A)\n"
stdcall mpint_add, mpint_B, mpint_A
stdcall mpint_length, mpint_B
stdcall mpint_print, mpint_B
DEBUGF 1, "mpint_sub\n"
DEBUGF 1, "mpint_sub(B, A)\n"
stdcall mpint_sub, mpint_B, mpint_A
stdcall mpint_length, mpint_B
stdcall mpint_print, mpint_B
 
mov dword[mpint_B+00], 24
mov dword[mpint_B+04], 0xCAFEBABE
mov dword[mpint_B+08], 0xDEADBEEF
mov dword[mpint_B+12], 0xCAFEBABE
107,66 → 113,59
mov dword[mpint_B+16], 0xDEADBEEF
mov dword[mpint_B+20], 0xCAFEBABE
mov dword[mpint_B+24], 0xDEADBEEF
mov dword[mpint_B+28], 0x0
mov dword[mpint_B+32], 0x0
DEBUGF 1, "mpint_print(A)\n"
stdcall mpint_print, mpint_A
DEBUGF 1, "mpint_print(B)\n"
stdcall mpint_print, mpint_B
DEBUGF 1, "mpint_mod\n"
DEBUGF 1, "mpint_mod(A, B)\n"
stdcall mpint_mod, mpint_A, mpint_B
stdcall mpint_print, mpint_A
 
stdcall mpint_zero, mpint_A
mov dword[mpint_A+0], 2
mov dword[mpint_A+4], 1936
stdcall mpint_zero, mpint_B
mov dword[mpint_B+0], 2
mov dword[mpint_B+4], 497
stdcall mpint_cmp, mpint_A, mpint_B
stdcall mpint_mod, mpint_A, mpint_B
DEBUGF 1, "1936 mod 497\n"
DEBUGF 1, "mpint_mod(936, 497)\n"
stdcall mpint_print, mpint_A
 
stdcall mpint_zero, mpint_A
mov dword[mpint_A+00], 32
mov dword[mpint_A+04], 0xCAFEBABE
mov dword[mpint_A+08], 0xDEADBEEF
mov dword[mpint_A+12], 0xCAFEBABE
mov dword[mpint_A+16], 0xDEADBEEF
mov dword[mpint_A+20], 0xCAFEBABE
mov dword[mpint_A+24], 0xDEADBEEF
mov dword[mpint_A+28], 0xCAFEBABE
mov dword[mpint_A+32], 0xDEADBEEF
stdcall mpint_zero, mpint_B
mov dword[mpint_A+04], 0x11111111
mov dword[mpint_A+08], 0x22222222
mov dword[mpint_A+12], 0x33333333
mov dword[mpint_A+16], 0x44444444
mov dword[mpint_A+20], 0x55555555
mov dword[mpint_A+24], 0x88888888
mov dword[mpint_A+28], 0xAAAAAAAA
mov dword[mpint_A+32], 0xCCCCCCCC
 
mov dword[mpint_B+0], 2
mov dword[mpint_B+4], 0x0100
DEBUGF 1, "mpint_print(A)\n"
stdcall mpint_print, mpint_A
DEBUGF 1, "mpint_print(B)\n"
stdcall mpint_print, mpint_B
DEBUGF 1, "mpint_mul by A*B\n"
DEBUGF 1, "mpint_mul(C, A, B)\n"
stdcall mpint_mul, mpint_C, mpint_A, mpint_B
stdcall mpint_length, mpint_C
stdcall mpint_print, mpint_C
stdcall mpint_print, mpint_A
stdcall mpint_print, mpint_B
DEBUGF 1, "mpint_mul by B*A\n"
DEBUGF 1, "mpint_mul(C, B, A)\n"
stdcall mpint_mul, mpint_C, mpint_B, mpint_A
stdcall mpint_length, mpint_C
stdcall mpint_print, mpint_C
 
stdcall mpint_hob, mpint_C
DEBUGF 1, "mpint_hob: %u\n", eax
DEBUGF 1, "mpint_hob(C): %u\n", eax
 
stdcall mpint_zero, mpint_A
stdcall mpint_zero, mpint_B
stdcall mpint_zero, mpint_C
mov dword[mpint_A+0], 1
mov dword[mpint_A+4], 4
mov dword[mpint_A+4], 3
mov dword[mpint_B+0], 1
mov dword[mpint_B+4], 13
mov dword[mpint_B+4], 4
mov dword[mpint_C+0], 2
mov dword[mpint_C+4], 497
mov dword[mpint_C+4], 5
stdcall mpint_modexp, mpint_D, mpint_A, mpint_B, mpint_C
DEBUGF 1, "4**13 mod 497\n"
stdcall mpint_length, mpint_D
DEBUGF 1, "mpint_modexp(3, 4, 5)\n"
stdcall mpint_print, mpint_D
 
mcall -1