3 This file is part of the AVR-Crypto-Lib.
4 Copyright (C) 2009 Daniel Otte (daniel.otte@rub.de)
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
20 * \file shabal384-asm.S
22 * \email daniel.otte@rub.de
24 * \license GPLv3 or later
27 #include "avr-asm-macros.S"
29 /******************************************************************************/
33 .long 0xC8FCA331, 0xE55C504E, 0x003EBF26, 0xBB6B8D83
34 .long 0x7B0448C1, 0x41B82789, 0x0A7C9601, 0x8D659CFF
35 .long 0xB6E2673E, 0xCA54C77B, 0x1460FD7E, 0x3FCB8F2D
37 .long 0x527291FC, 0x2A16455F, 0x78E627E5, 0x944F169F
38 .long 0x1CA6F016, 0xA854EA25, 0x8DB98ABE, 0xF2C62641
39 .long 0x30117DCB, 0xCF5C4309, 0x93711A25, 0xF9F671B8
40 .long 0xB01D2116, 0x333F4B89, 0xB285D165, 0x86829B36
42 .long 0xF764B11A, 0x76172146, 0xCEF6934D, 0xC6D28399
43 .long 0xFE095F61, 0x5E6018B4, 0x5048ECF5, 0x51353261
44 .long 0x6E6E36DC, 0x63130DAD, 0xA9C69BD6, 0x1E90EA0C
45 .long 0x7C35073B, 0x28D95E6D, 0xAA340E0D, 0xCB3DEE70
47 /******************************************************************************/
51 .global shabal384_init
72 ldi r30, lo8(shabal384_iv)
73 ldi r31, hi8(shabal384_iv)
86 /******************************************************************************/
88 .global shabal384_ctx2hash
95 adiw r30, (16-384/32)*4
103 /******************************************************************************/
105 * param dest: r24:r25
107 * param length_b: r18:r21
122 stack_alloc_large 188
123 adiw r30, 1 /* Z points to stack space (ctx) */
139 rcall shabal_nextBlock
151 rcall shabal_lastBlock
154 rcall shabal384_ctx2hash
155 stack_free_large2 188