version 1.40, 2000/12/09 13:41:52 |
version 1.41, 2000/12/19 23:17:56 |
|
|
void |
void |
blowfish_setkey(CipherContext *cc, const u_char *key, u_int keylen) |
blowfish_setkey(CipherContext *cc, const u_char *key, u_int keylen) |
{ |
{ |
BF_set_key(&cc->u.bf.key, keylen, (unsigned char *)key); |
BF_set_key(&cc->u.bf.key, keylen, (u_char *)key); |
} |
} |
void |
void |
blowfish_setiv(CipherContext *cc, const u_char *iv, u_int ivlen) |
blowfish_setiv(CipherContext *cc, const u_char *iv, u_int ivlen) |
|
|
* and after encryption/decryption. Thus the swap_bytes stuff (yuk). |
* and after encryption/decryption. Thus the swap_bytes stuff (yuk). |
*/ |
*/ |
static void |
static void |
swap_bytes(const unsigned char *src, unsigned char *dst, int n) |
swap_bytes(const u_char *src, u_char *dst, int n) |
{ |
{ |
char c[4]; |
char c[4]; |
|
|
|
|
void |
void |
cast_setkey(CipherContext *cc, const u_char *key, u_int keylen) |
cast_setkey(CipherContext *cc, const u_char *key, u_int keylen) |
{ |
{ |
CAST_set_key(&cc->u.cast.key, keylen, (unsigned char *) key); |
CAST_set_key(&cc->u.cast.key, keylen, (u_char *) key); |
} |
} |
void |
void |
cast_setiv(CipherContext *cc, const u_char *iv, u_int ivlen) |
cast_setiv(CipherContext *cc, const u_char *iv, u_int ivlen) |
|
|
|
|
/*--*/ |
/*--*/ |
|
|
unsigned int |
u_int |
cipher_mask_ssh1(int client) |
cipher_mask_ssh1(int client) |
{ |
{ |
unsigned int mask = 0; |
u_int mask = 0; |
mask |= 1 << SSH_CIPHER_3DES; /* Mandatory */ |
mask |= 1 << SSH_CIPHER_3DES; /* Mandatory */ |
mask |= 1 << SSH_CIPHER_BLOWFISH; |
mask |= 1 << SSH_CIPHER_BLOWFISH; |
if (client) { |
if (client) { |
|
|
const char *passphrase) |
const char *passphrase) |
{ |
{ |
MD5_CTX md; |
MD5_CTX md; |
unsigned char digest[16]; |
u_char digest[16]; |
|
|
MD5_Init(&md); |
MD5_Init(&md); |
MD5_Update(&md, (const u_char *)passphrase, strlen(passphrase)); |
MD5_Update(&md, (const u_char *)passphrase, strlen(passphrase)); |