version 1.11, 2000/03/22 09:55:10 |
version 1.12, 2000/03/28 20:24:50 |
|
|
|
|
#include <ssl/des.h> |
#include <ssl/des.h> |
#include <ssl/blowfish.h> |
#include <ssl/blowfish.h> |
|
#include <ssl/rc4.h> |
|
#include <ssl/cast.h> |
|
|
/* Cipher types. New types can be added, but old types should not be removed |
/* Cipher types. New types can be added, but old types should not be removed |
for compatibility. The maximum allowed value is 31. */ |
for compatibility. The maximum allowed value is 31. */ |
|
|
#define SSH_CIPHER_BROKEN_TSS 4 /* TRI's Simple Stream encryption CBC */ |
#define SSH_CIPHER_BROKEN_TSS 4 /* TRI's Simple Stream encryption CBC */ |
#define SSH_CIPHER_BROKEN_RC4 5 /* Alleged RC4 */ |
#define SSH_CIPHER_BROKEN_RC4 5 /* Alleged RC4 */ |
#define SSH_CIPHER_BLOWFISH 6 |
#define SSH_CIPHER_BLOWFISH 6 |
|
#define SSH_CIPHER_RESERVED 7 |
|
|
|
/* these ciphers are used in SSH2: */ |
|
#define SSH_CIPHER_BLOWFISH_CBC 8 |
|
#define SSH_CIPHER_3DES_CBC 9 |
|
#define SSH_CIPHER_ARCFOUR 10 /* Alleged RC4 */ |
|
#define SSH_CIPHER_CAST128_CBC 11 |
|
|
typedef struct { |
typedef struct { |
unsigned int type; |
unsigned int type; |
union { |
union { |
|
|
struct bf_key_st key; |
struct bf_key_st key; |
unsigned char iv[8]; |
unsigned char iv[8]; |
} bf; |
} bf; |
|
struct { |
|
CAST_KEY key; |
|
unsigned char iv[8]; |
|
} cast; |
|
RC4_KEY rc4; |
} u; |
} u; |
} CipherContext; |
} CipherContext; |
/* |
/* |
|
|
void |
void |
cipher_set_key(CipherContext * context, int cipher, |
cipher_set_key(CipherContext * context, int cipher, |
const unsigned char *key, int keylen, int for_encryption); |
const unsigned char *key, int keylen, int for_encryption); |
|
void |
|
cipher_set_key_iv(CipherContext * context, int cipher, |
|
const unsigned char *key, int keylen, |
|
const unsigned char *iv, int ivlen); |
|
|
/* |
/* |
* Sets key for the cipher by computing the MD5 checksum of the passphrase, |
* Sets key for the cipher by computing the MD5 checksum of the passphrase, |