+++ /dev/null
-/* noekeon_ctr.S */
-/*
- This file is part of the AVR-Crypto-Lib.
- Copyright (C) 2008 Daniel Otte (daniel.otte@rub.de)
-
- 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 3 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/>.
-*/
-/*
- * \author Daniel Otte
- * \email daniel.otte@rub.de
- * \date 2008-08-06
- * \license GPLv3 or later
- *
- *
- *
- */
-
-.extern noekeon_enc
-
-/*
- * void noekeon_ctr_next(void* buffer, const noekeon_ctr_ctx_t* ctx);
- */
-.global noekeon_ctr_next
-/*
- * param buffer passed in r24:r25
- * param ctx passed in r22:r23
- */
-noekeon_ctr_next:
- /* copy counter to buffer */
- movw r26, r24 /* copy buffer pointer to X */
- movw r30, r22 /* copy counter pointer to Z */
- ldi r16, 16
-1:
- ld r0, Z+
- st X+, r0
- dec r16
- brne 1b
- /* increment counter */
- movw r30, r22 /* copy counter pointer to Z */
- ldi r17, 1
- ldi r16, 15
- ld r0, Z
- add r0, r17
- st Z+, r0
-1:
- ld r0, Z
- adc r0, r1
- st Z+, r0
- dec r16
- brne 1b
- /* call encryption routine */
- /* we can leave the first param as is, but have to adjust the second to point to the key */
- //adiw r22, 16
- ldi r16, 16
- add r22, r16
- adc r23, r0
-// rcall noekeon_enc
-// ret
- rjmp noekeon_enc /* noekeon_enc will return for us */