Added SILC Thread Queue API
[silc.git] / lib / silccrypt / rc5_internal.h
1 /*
2
3   rc5_internal.h
4
5   Author: Pekka Riikonen <priikone@silcnet.org>
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; version 2 of the License.
12   
13   This program is distributed in the hope that it will be useful,
14   but WITHOUT ANY WARRANTY; without even the implied warranty of
15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16   GNU General Public License for more details.
17
18 */
19
20 #ifndef RC5_INTERNAL_H
21 #define RC5_INTERNAL_H
22
23 #include "ciphers_def.h"
24
25 /* RC5 definitions */
26 #define w       32      /* word size, in bits */
27 #define r       16      /* rounds */
28 #define b       16      /* minimum key size in bytes */
29 #define c       8       /* same for 128,  192 and 256 bits key */
30 #define t       34      /* size of table S, t = 2 * (r + 1) */
31
32 /* Cipher's context */
33 typedef struct {
34   u32 out_key[t];
35 } RC5Context;
36
37 /* Prototypes */
38 int rc5_set_key(RC5Context *ctx, const SilcUInt32 in_key[], int key_len);
39 int rc5_encrypt(RC5Context *ctx, u32 *in, u32 *out);
40 int rc5_decrypt(RC5Context *ctx, u32 *in, u32 *out);
41
42 #endif