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 shabal256-asm.S
22 * \email daniel.otte@rub.de
24 * \license GPLv3 or later
27 #include "avr-asm-macros.S"
29 /******************************************************************************/
33 .long 0x52F84552, 0xE54B7999, 0x2D8EE3EC, 0xB9645191
34 .long 0xE0078B86, 0xBB7C44C9, 0xD2B5C1CA, 0xB0D2EB8C
35 .long 0x14CE5A45, 0x22AF50DC, 0xEFFDBC6B, 0xEB21B74A
37 .long 0xB555C6EE, 0x3E710596, 0xA72A652F, 0x9301515F
38 .long 0xDA28C1FA, 0x696FD868, 0x9CB6BF72, 0x0AFE4002
39 .long 0xA6E03615, 0x5138C1D4, 0xBE216306, 0xB38B8890
40 .long 0x3EA8B96B, 0x3299ACE4, 0x30924DD4, 0x55CB34A5
42 .long 0xB405F031, 0xC4233EBA, 0xB3733979, 0xC0DD9D55
43 .long 0xC51C28AE, 0xA327B8E1, 0x56C56167, 0xED614433
44 .long 0x88B59D60, 0x60E2CEBA, 0x758B4B8B, 0x83E82A7F
45 .long 0xBC968828, 0xE6E00BF7, 0xBA839E55, 0x9B491C60
47 /******************************************************************************/
51 .global shabal256_init
72 ldi r30, lo8(shabal256_iv)
73 ldi r31, hi8(shabal256_iv)
86 /******************************************************************************/
88 .global shabal256_ctx2hash
95 adiw r30, (16-256/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 shabal256_ctx2hash
155 stack_free_large2 188