]> git.cryptolib.org Git - avr-crypto-lib.git/blobdiff - noekeon.c
insereated GPLv3 stub
[avr-crypto-lib.git] / noekeon.c
index dd68b6575e6121c8c2b334d4a79d731efae43194..5ae3ec292b08add934061a6d2c078b5dec341e41 100644 (file)
--- a/noekeon.c
+++ b/noekeon.c
@@ -1,3 +1,21 @@
+/* noekeon.c */
+/*
+    This file is part of the Crypto-avr-lib/microcrypt-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
@@ -11,6 +29,7 @@
 #include <string.h>
 #include <avr/pgmspace.h>
 #include "noekeon.h"
+#include "uart.h"
 
 #define ROUND_NR 16
 
@@ -50,6 +69,7 @@ void pi2(uint32_t* a){
 static
 void theta(uint32_t* k, uint32_t* a){
        uint32_t temp;
+
        temp = a[0] ^ a[2]; temp ^= ROTR32(temp, 8) ^ ROTL32(temp, 8);
        a[1] ^= temp;
        a[3] ^= temp;
@@ -62,6 +82,7 @@ void theta(uint32_t* k, uint32_t* a){
        temp = a[1] ^ a[3]; temp ^= ROTR32(temp, 8) ^ ROTL32(temp, 8);
        a[0] ^= temp;
        a[2] ^= temp;   
+
 }
 
 static 
@@ -139,6 +160,9 @@ void noekeon_dec(void* buffer, void* key){
        memcpy(dkey, key, 16);
        
        theta((uint32_t*)nullv, (uint32_t*)dkey);
+       uart_putstr_P(PSTR("\r\nTheta: "));
+       uart_hexdump(dkey, 16);
+       
        for(i=ROUND_NR-1; i>=0; --i){
                rc = pgm_read_byte(rc_tab+i);
                noekeon_round((uint32_t*)dkey, (uint32_t*)buffer, 0, rc);