libcrash: sync with upstream.
* 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
This commit is contained in:
36
programs/develop/libraries/libcrash/cipher/mode/cbc.asm
Normal file
36
programs/develop/libraries/libcrash/cipher/mode/cbc.asm
Normal file
@@ -0,0 +1,36 @@
|
||||
; 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
|
34
programs/develop/libraries/libcrash/cipher/mode/ctr.asm
Normal file
34
programs/develop/libraries/libcrash/cipher/mode/ctr.asm
Normal file
@@ -0,0 +1,34 @@
|
||||
; 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/>.
|
||||
|
||||
CTR128_BLOCK_SIZE = 128/8
|
||||
|
||||
struct ctx_ctr
|
||||
block_counter rd 4
|
||||
partial_cnt dd ?
|
||||
ends
|
||||
|
||||
; ebx = context
|
||||
proc ctr.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
|
Reference in New Issue
Block a user