forked from KolibriOS/kolibrios
Ivan Baravy
553742f877
* Implement new algorithms: - MACs: Poly1305, HMAC (SHA2_256, SHA2_512), - ciphers: ChaCha20, AES256CTR, AES256CBC. * Remove MD4 hash. * Change API (it happens). * Update crashtest example. git-svn-id: svn://kolibrios.org@9216 a494cfbc-eb01-0410-851d-a64ba20cac60
37 lines
1.1 KiB
NASM
37 lines
1.1 KiB
NASM
; libcrash -- cryptographic hash (and other) functions
|
|
;
|
|
; Copyright (C) <2021> Ivan Baravy
|
|
;
|
|
; SPDX-License-Identifier: GPL-2.0-or-later
|
|
;
|
|
; 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 the Free Software
|
|
; Foundation, either version 2 of the License, or (at your option) any later
|
|
; version.
|
|
;
|
|
; This program is distributed in the hope that it will be useful, but WITHOUT
|
|
; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
; FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
;
|
|
; You should have received a copy of the GNU General Public License along with
|
|
; this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
CBC128_BLOCK_SIZE = 128/8
|
|
|
|
struct ctx_cbc
|
|
vector rd CBC128_BLOCK_SIZE/4
|
|
block rd CBC128_BLOCK_SIZE/4
|
|
has_data dd ?
|
|
ends
|
|
|
|
; ebx = context
|
|
proc cbc.init uses esi edi, _iv
|
|
|
|
mov esi, [_iv]
|
|
lea edi, [ebx+ctx_ctr.block_counter]
|
|
mov ecx, CTR128_BLOCK_SIZE/4
|
|
rep movsd
|
|
mov [ebx+ctx_ctr.partial_cnt], 0
|
|
ret
|
|
endp
|