]> git.cryptolib.org Git - avr-crypto-lib.git/blob - rc5/rc5.h
[keccak-asm] keccak_f1600 in asm
[avr-crypto-lib.git] / rc5 / rc5.h
1 /* rc5.h */
2 /*
3     This file is part of the AVR-Crypto-Lib.
4     Copyright (C) 2008  Daniel Otte (daniel.otte@rub.de)
5
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.
10
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.
15
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/>.
18 */
19 /* rc5.h a C implementation of RC5 for AVR microcontrollers
20  * 
21  * author: Daniel Otte 
22  * email:  daniel.otte@rub.de
23  * license: GPLv3
24  * 
25  * this implementation is limited to 64bit blocks and a maximum of 255 rounds
26  * 
27  */
28 #ifndef RC5_H_
29 #define RC5_H_
30
31
32 #include <stdint.h>
33 #include <stdlib.h> /* malloc() & free() */
34 #include <string.h> /* memset() & memcpy() */
35  
36 typedef struct rc5_ctx_st {
37         uint8_t rounds;
38         uint32_t *s;
39 }rc5_ctx_t; 
40
41 void rc5_enc(void* buffer, const rc5_ctx_t* ctx);
42 void rc5_dec(void* buffer, const rc5_ctx_t* ctx);
43 void rc5_init(void* key, uint16_t keysize_b, uint8_t rounds, rc5_ctx_t* ctx);
44 void rc5_free(rc5_ctx_t* ctx);
45
46 #endif /*RC5_H_*/