Initial revision
[silc.git] / lib / silccrypt / rsa_internal.h
1 /*
2
3   rsa_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 RSA_INTERNAL_H
22 #define RSA_INTERNAL_H
23
24 /* RSA Keys, includes both Private and Public key */
25 typedef struct {
26   int bits;                     /* bits in key */
27   SilcInt p;                    /* prime p */
28   SilcInt q;                    /* prime q */
29   SilcInt n;                    /* modulus */
30   SilcInt e;                    /* public exponent */
31   SilcInt d;                    /* private exponent */
32 } RsaKey;
33
34 void rsa_generate_keys(RsaKey *key, unsigned int bits, 
35                        SilcInt *p, SilcInt *q);
36 void rsa_clear_keys(RsaKey *key);
37 void rsa_en_de_crypt(SilcInt *cm, SilcInt *mc, 
38                      SilcInt *expo, SilcInt *modu);
39
40 #endif