]> git.cryptolib.org Git - avr-crypto-lib.git/commitdiff
forgot hfal_shabval.*
authorbg <bg@b1d182e4-1ff8-0310-901f-bddb46175740>
Wed, 24 Jun 2009 02:36:33 +0000 (02:36 +0000)
committerbg <bg@b1d182e4-1ff8-0310-901f-bddb46175740>
Wed, 24 Jun 2009 02:36:33 +0000 (02:36 +0000)
USAGE.hashfunctions
hashfunction_descriptor.h
hfal_shabal.c [new file with mode: 0644]
hfal_shabal.h [new file with mode: 0644]
host/performance2wiki.rb
test_src/cli.h

index 1f2256e32572574dcfacb0489a426e4136d42ffd..163cd2d4aa1794d0bdd894fbb6d82c27267eb0ac 100644 (file)
@@ -28,13 +28,13 @@ email:  daniel.otte@rub.de
   * compression algorithm
   * finalization function
  
   * compression algorithm
   * finalization function
  
-3. block cipher API
+3. hash function API
  The API is not always consistent due to the fact that we tried to optimize the
  code for size (flash, heap and stack) and speed (runtime of the different 
  components).
  Generally the API of the implemented block ciphers consists of:
  
  The API is not always consistent due to the fact that we tried to optimize the
  code for size (flash, heap and stack) and speed (runtime of the different 
  components).
  Generally the API of the implemented block ciphers consists of:
  
- *_init function, which implements the keyschedule
+ *_init      function, which implements the initialisation of the context
  *_nextBlock function, which implements the compression algorithm
  *_lastBlock function, which implements the the padding algorithm
  *_ctx2hash  function, which turns a context into an actual hash value
  *_nextBlock function, which implements the compression algorithm
  *_lastBlock function, which implements the the padding algorithm
  *_ctx2hash  function, which turns a context into an actual hash value
@@ -45,7 +45,7 @@ email:  daniel.otte@rub.de
  parameter means what. 
   
 3.1.2 sizes in bits and bytes
  parameter means what. 
   
 3.1.2 sizes in bits and bytes
- Working with cryptographical functions involves working with different 
+ Working with cryptographic functions involves working with different 
  lengths. Some times you want to know it in bits and sometimes in bytes. To 
  reduce frustration and to avoid bugs we suffix a length parameter with either
  _b or _B depending on the meaning. _b means in bits and _B means in bytes 
  lengths. Some times you want to know it in bits and sometimes in bytes. To 
  reduce frustration and to avoid bugs we suffix a length parameter with either
  _b or _B depending on the meaning. _b means in bits and _B means in bytes 
index 8b5faedb0cfb4ac87a6deacc178629bbd150d750..8eb12c1d23e5b5db90a537c63448d888ad4ddf84 100644 (file)
@@ -47,7 +47,7 @@ typedef struct {
        /** mem, function pointer to a function which hashes a message in RAM
         *  completely or NULL if there is no such function */
        hf_mem_fpt mem;
        /** mem, function pointer to a function which hashes a message in RAM
         *  completely or NULL if there is no such function */
        hf_mem_fpt mem;
-} hfdesc_t; /* blockcipher descriptor type */
+} hfdesc_t; /* hashfunction descriptor type */
 
 typedef struct{
        hfdesc_t* desc_ptr;
 
 typedef struct{
        hfdesc_t* desc_ptr;
diff --git a/hfal_shabal.c b/hfal_shabal.c
new file mode 100644 (file)
index 0000000..bacce62
--- /dev/null
@@ -0,0 +1,113 @@
+/* hfal_shabal.c */
+/*
+    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/>.
+*/
+/**
+ * \file     hfal_shabal.c
+ * \email    daniel.otte@rub.de
+ * \author   Daniel Otte 
+ * \date     2009-04-20
+ * \license  GPLv3 or later
+ * 
+ */
+
+#include <avr/pgmspace.h>
+#include <stdlib.h>
+#include "hashfunction_descriptor.h"
+#include "shabal.h"
+
+
+static const char shabal192_str[]   PROGMEM = "Shabal-192";
+static const char shabal224_str[]   PROGMEM = "Shabal-224";
+static const char shabal256_str[]   PROGMEM = "Shabal-256";
+static const char shabal384_str[]   PROGMEM = "Shabal-384";
+static const char shabal512_str[]   PROGMEM = "Shabal-512";
+
+const hfdesc_t shabal192_desc PROGMEM = {
+       HFDESC_TYPE_HASHFUNCTION,
+       0,
+       shabal192_str,
+       sizeof(shabal_ctx_t),
+       SHABAL_BLOCKSIZE,
+       192,
+       (hf_init_fpt)shabal192_init,
+       (hf_nextBlock_fpt)shabal_nextBlock,
+       (hf_lastBlock_fpt)shabal_lastBlock,
+       (hf_ctx2hash_fpt)shabal192_ctx2hash,
+       (hf_free_fpt)NULL,
+       (hf_mem_fpt)shabal192
+};
+
+const hfdesc_t shabal224_desc PROGMEM = {
+       HFDESC_TYPE_HASHFUNCTION,
+       0,
+       shabal224_str,
+       sizeof(shabal_ctx_t),
+       SHABAL_BLOCKSIZE,
+       224,
+       (hf_init_fpt)shabal224_init,
+       (hf_nextBlock_fpt)shabal_nextBlock,
+       (hf_lastBlock_fpt)shabal_lastBlock,
+       (hf_ctx2hash_fpt)shabal224_ctx2hash,
+       (hf_free_fpt)NULL,
+       (hf_mem_fpt)shabal224
+};
+
+const hfdesc_t shabal256_desc PROGMEM = {
+       HFDESC_TYPE_HASHFUNCTION,
+       0,
+       shabal256_str,
+       sizeof(shabal_ctx_t),
+       SHABAL_BLOCKSIZE,
+       256,
+       (hf_init_fpt)shabal256_init,
+       (hf_nextBlock_fpt)shabal_nextBlock,
+       (hf_lastBlock_fpt)shabal_lastBlock,
+       (hf_ctx2hash_fpt)shabal256_ctx2hash,
+       (hf_free_fpt)NULL,
+       (hf_mem_fpt)shabal256
+};
+
+const hfdesc_t shabal384_desc PROGMEM = {
+       HFDESC_TYPE_HASHFUNCTION,
+       0,
+       shabal384_str,
+       sizeof(shabal_ctx_t),
+       SHABAL_BLOCKSIZE,
+       384,
+       (hf_init_fpt)shabal384_init,
+       (hf_nextBlock_fpt)shabal_nextBlock,
+       (hf_lastBlock_fpt)shabal_lastBlock,
+       (hf_ctx2hash_fpt)shabal384_ctx2hash,
+       (hf_free_fpt)NULL,
+       (hf_mem_fpt)shabal384
+};
+
+const hfdesc_t shabal512_desc PROGMEM = {
+       HFDESC_TYPE_HASHFUNCTION,
+       0,
+       shabal512_str,
+       sizeof(shabal_ctx_t),
+       SHABAL_BLOCKSIZE,
+       512,
+       (hf_init_fpt)shabal512_init,
+       (hf_nextBlock_fpt)shabal_nextBlock,
+       (hf_lastBlock_fpt)shabal_lastBlock,
+       (hf_ctx2hash_fpt)shabal512_ctx2hash,
+       (hf_free_fpt)NULL,
+       (hf_mem_fpt)shabal512
+};
diff --git a/hfal_shabal.h b/hfal_shabal.h
new file mode 100644 (file)
index 0000000..6299519
--- /dev/null
@@ -0,0 +1,40 @@
+/* hfal_shabal.h */
+/*
+    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/>.
+*/
+/**
+ * \file     hfal_shabal.h
+ * \email    daniel.otte@rub.de
+ * \author   Daniel Otte 
+ * \date     2009-04-20
+ * \license  GPLv3 or later
+ * 
+ */
+
+#ifndef HFAL_SHABAL_H_
+#define HFAL_SHABAL_H_
+
+#include <avr/pgmspace.h>
+#include "hashfunction_descriptor.h"
+
+extern const hfdesc_t shabal192_desc;
+extern const hfdesc_t shabal224_desc;
+extern const hfdesc_t shabal256_desc;
+extern const hfdesc_t shabal384_desc;
+extern const hfdesc_t shabal512_desc;
+
+#endif /* HFAL_SHABAL_H_ */
index c1e3e2afd89b06a44e2600384046a78dece6735a..a60cde153a0eb29f517586347d7743ebb0988f35 100644 (file)
@@ -60,7 +60,7 @@ def process_hashfunction(fin, name)
   printf("| %20s || %3s || %3s || || %4d || || %4d || %4d ||" +
          " %6d || %6d || %7.2f || %6d || || || \n|-\n" , 
         name, $lang, $lang ,ctxsize, hashsize, blocksize, 
   printf("| %20s || %3s || %3s || || %4d || || %4d || %4d ||" +
          " %6d || %6d || %7.2f || %6d || || || \n|-\n" , 
         name, $lang, $lang ,ctxsize, hashsize, blocksize, 
-           inittime, nextblocktime, nextblocktime.to_f/blocksize*8,
+           inittime, nextblocktime, nextblocktime.to_f/(blocksize/8),
                lastblocktime+convtime)
 end
 
                lastblocktime+convtime)
 end
 
index 422d97acb2f8fae2bc5e643196131d57d3ad3824..dc79a7da16c1aee0f333ef4c5961a3a3a2d73ef6 100644 (file)
@@ -16,6 +16,7 @@
     You should have received a copy of the GNU General Public License
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
     You should have received a copy of the GNU General Public License
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
+
 #ifndef CLI_H_
 #define CLI_H_
 
 #ifndef CLI_H_
 #define CLI_H_