Initial revision
[silc.git] / lib / silccrypt / rc5_internal.h
1 /*
2
3   rc5_internal.h
4
5   Author: Pekka Riikonen <priikone@poseidon.pspt.fi>
6
7   Copyright (C) 1997 - 2000 Pekka Riikonen
8
9   This program is free software; you can redistribute it and/or modify
10   it under the terms of the GNU General Public License as published by
11   the Free Software Foundation; either version 2 of the License, or
12   (at your option) any later version.
13   
14   This program is distributed in the hope that it will be useful,
15   but WITHOUT ANY WARRANTY; without even the implied warranty of
16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   GNU General Public License for more details.
18
19 */
20
21 #ifndef RC5_INTERNAL_H
22 #define RC5_INTERNAL_H
23
24 #include "ciphers_def.h"
25
26 /* RC5 definitions */
27 #define w       32      /* word size, in bits */
28 #define r       16      /* rounds */
29 #define b       16      /* minimum key size in bytes */
30 #define c       8       /* same for 128,  192 and 256 bits key */
31 #define t       34      /* size of table S, t = 2 * (r + 1) */
32
33 /* Cipher's context */
34 typedef struct {
35   u32 out_key[t];
36 } RC5Context;
37
38 /* Prototypes */
39 int rc5_set_key(RC5Context *ctx, char *key, int key_len);
40 int rc5_encrypt(RC5Context *ctx, u32 *in, u32 *out);
41 int rc5_decrypt(RC5Context *ctx, u32 *in, u32 *out);
42
43 #endif