Initial checkin: beta 0.43
[u/mdw/putty] / ssh.h
1 struct RSAKey {
2 int bits;
3 int bytes;
4 void *modulus;
5 void *exponent;
6 };
7
8 int makekey(unsigned char *data, struct RSAKey *result,
9 unsigned char **keystr);
10 void rsaencrypt(unsigned char *data, int length, struct RSAKey *key);
11 int rsastr_len(struct RSAKey *key);
12 void rsastr_fmt(char *str, struct RSAKey *key);
13
14 typedef unsigned int word32;
15 typedef unsigned int uint32;
16
17 unsigned long crc32(const unsigned char *s, unsigned int len);
18
19 struct MD5Context {
20 uint32 buf[4];
21 uint32 bits[2];
22 unsigned char in[64];
23 };
24
25 void MD5Init(struct MD5Context *context);
26 void MD5Update(struct MD5Context *context, unsigned char const *buf,
27 unsigned len);
28 void MD5Final(unsigned char digest[16], struct MD5Context *context);
29
30 struct ssh_cipher {
31 void (*sesskey)(unsigned char *key);
32 void (*encrypt)(unsigned char *blk, int len);
33 void (*decrypt)(unsigned char *blk, int len);
34 };
35
36 void SHATransform(word32 *digest, word32 *data);
37
38 int random_byte(void);
39 void random_add_noise(void *noise, int length);