]> git.cryptolib.org Git - avr-crypto-lib.git/blobdiff - A5_1.h
JH and Blake updated for round 3 (testvectors)
[avr-crypto-lib.git] / A5_1.h
diff --git a/A5_1.h b/A5_1.h
index 8803198b644698283761b4c5e1105054670af0b1..fab01719149c30c7a803ab34367eae887940b2a2 100644 (file)
--- a/A5_1.h
+++ b/A5_1.h
@@ -1,7 +1,25 @@
+/* A5_1.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:               A5_1.h
- * Author:     Daniel Otte
- * Date:       24.06.2006
+ * File:    A5_1.h
+ * Author:  Daniel Otte
+ * Date:    24.06.2006
  * License: GPL
  * Description: Implementation of the A5/1 stream cipher algorithm, as used in GSM.
  * ! Warning, this is weak crypto !
 #define PARITY_LOOKUP 0x96
 
 typedef struct {
-       uint32_t r1,r2,r3; /* the three regs, 19,22,23 bit in length  */
+       /* we are wasting one byte here but this allows a much faster implementation */
+       uint8_t r1[3], r2[3], r3[3]; /* the three regs, 19,22,23 bit in length  */
 } a5_1_ctx_t;
  
 
-void           a5_1_init(a5_1_ctx_t *c, uint8_t *key, uint8_t length);
-bool           a5_1_clock(a5_1_ctx_t *c);
-uint8_t a5_1_gen(a5_   1_ctx_t *c);
+void           a5_1_init(a5_1_ctx_t *c, void* key, uint8_t keylength_b, void* iv, uint8_t ivlength_b);
+uint8_t                a5_1_clock(a5_1_ctx_t *c);
+uint8_t        a5_1_gen(a5_1_ctx_t *c);
 
 #endif