]> asedeno.scripts.mit.edu Git - PuTTY.git/blob - ssh.h
sunc with reality
[PuTTY.git] / ssh.h
1 #include <string.h>
2
3 #define SSH_CIPHER_IDEA         1
4 #define SSH_CIPHER_3DES         3
5 #define SSH_CIPHER_BLOWFISH     6
6
7 struct RSAKey {
8     int bits;
9     int bytes;
10     void *modulus;
11     void *exponent;
12 };
13
14 int makekey(unsigned char *data, struct RSAKey *result,
15             unsigned char **keystr);
16 void rsaencrypt(unsigned char *data, int length, struct RSAKey *key);
17 int rsastr_len(struct RSAKey *key);
18 void rsastr_fmt(char *str, struct RSAKey *key);
19
20 typedef unsigned int word32;
21 typedef unsigned int uint32;
22
23 unsigned long crc32(const unsigned char *s, unsigned int len);
24
25 struct MD5Context {
26         uint32 buf[4];
27         uint32 bits[2];
28         unsigned char in[64];
29 };
30
31 void MD5Init(struct MD5Context *context);
32 void MD5Update(struct MD5Context *context, unsigned char const *buf,
33                unsigned len);
34 void MD5Final(unsigned char digest[16], struct MD5Context *context);
35
36 struct ssh_cipher {
37     void (*sesskey)(unsigned char *key);
38     void (*encrypt)(unsigned char *blk, int len);
39     void (*decrypt)(unsigned char *blk, int len);
40 };
41
42 void SHATransform(word32 *digest, word32 *data);
43
44 int random_byte(void);
45 void random_add_noise(void *noise, int length);