version 1.21, 2000/03/28 20:24:49 |
version 1.22, 2000/04/04 21:37:27 |
|
|
*/ |
*/ |
|
|
unsigned int |
unsigned int |
cipher_mask() |
cipher_mask1() |
{ |
{ |
unsigned int mask = 0; |
unsigned 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; |
|
return mask; |
|
} |
|
unsigned int |
|
cipher_mask2() |
|
{ |
|
unsigned int mask = 0; |
mask |= 1 << SSH_CIPHER_BLOWFISH_CBC; |
mask |= 1 << SSH_CIPHER_BLOWFISH_CBC; |
mask |= 1 << SSH_CIPHER_3DES_CBC; |
mask |= 1 << SSH_CIPHER_3DES_CBC; |
mask |= 1 << SSH_CIPHER_ARCFOUR; |
mask |= 1 << SSH_CIPHER_ARCFOUR; |
mask |= 1 << SSH_CIPHER_CAST128_CBC; |
mask |= 1 << SSH_CIPHER_CAST128_CBC; |
return mask; |
return mask; |
} |
} |
|
unsigned int |
|
cipher_mask() |
|
{ |
|
return cipher_mask1() | cipher_mask2(); |
|
} |
|
|
/* Returns the name of the cipher. */ |
/* Returns the name of the cipher. */ |
|
|
|
|
*/ |
*/ |
|
|
void |
void |
cipher_set_key_string(CipherContext *context, int cipher, |
cipher_set_key_string(CipherContext *context, int cipher, const char *passphrase) |
const char *passphrase, int for_encryption) |
|
{ |
{ |
MD5_CTX md; |
MD5_CTX md; |
unsigned char digest[16]; |
unsigned char digest[16]; |
|
|
MD5_Update(&md, (const unsigned char *) passphrase, strlen(passphrase)); |
MD5_Update(&md, (const unsigned char *) passphrase, strlen(passphrase)); |
MD5_Final(digest, &md); |
MD5_Final(digest, &md); |
|
|
cipher_set_key(context, cipher, digest, 16, for_encryption); |
cipher_set_key(context, cipher, digest, 16); |
|
|
memset(digest, 0, sizeof(digest)); |
memset(digest, 0, sizeof(digest)); |
memset(&md, 0, sizeof(md)); |
memset(&md, 0, sizeof(md)); |
|
|
/* Selects the cipher to use and sets the key. */ |
/* Selects the cipher to use and sets the key. */ |
|
|
void |
void |
cipher_set_key(CipherContext *context, int cipher, |
cipher_set_key(CipherContext *context, int cipher, const unsigned char *key, |
const unsigned char *key, int keylen, int for_encryption) |
int keylen) |
{ |
{ |
unsigned char padded[32]; |
unsigned char padded[32]; |
|
|