]> asedeno.scripts.mit.edu Git - PuTTY.git/blob - ssh.h
oops - keys[] should be static
[PuTTY.git] / ssh.h
1 #include <string.h>
2
3 #define SSH_CIPHER_IDEA         1
4 #define SSH_CIPHER_DES          2
5 #define SSH_CIPHER_3DES         3
6 #define SSH_CIPHER_BLOWFISH     6
7
8 struct RSAKey {
9     int bits;
10     int bytes;
11 #ifdef MSCRYPTOAPI
12     unsigned long exponent;
13     unsigned char *modulus;
14 #else
15     void *modulus;
16     void *exponent;
17 #endif
18 };
19
20 int makekey(unsigned char *data, struct RSAKey *result,
21             unsigned char **keystr);
22 void rsaencrypt(unsigned char *data, int length, struct RSAKey *key);
23 int rsastr_len(struct RSAKey *key);
24 void rsastr_fmt(char *str, struct RSAKey *key);
25
26 typedef unsigned int word32;
27 typedef unsigned int uint32;
28
29 unsigned long crc32(const void *s, size_t len);
30
31 struct MD5Context {
32 #ifdef MSCRYPTOAPI
33     unsigned long hHash;
34 #else
35     uint32 buf[4];
36     uint32 bits[2];
37     unsigned char in[64];
38 #endif
39 };
40
41 void MD5Init(struct MD5Context *context);
42 void MD5Update(struct MD5Context *context, unsigned char const *buf,
43                unsigned len);
44 void MD5Final(unsigned char digest[16], struct MD5Context *context);
45
46 struct ssh_cipher {
47     void (*sesskey)(unsigned char *key);
48     void (*encrypt)(unsigned char *blk, int len);
49     void (*decrypt)(unsigned char *blk, int len);
50 };
51
52 #ifndef MSCRYPTOAPI
53 void SHATransform(word32 *digest, word32 *data);
54 #endif
55
56 int random_byte(void);
57 void random_add_noise(void *noise, int length);
58
59 void logevent (char *);