version 1.94, 2014/01/25 10:12:50 |
version 1.95, 2014/01/27 19:18:54 |
|
|
|
|
#include <sys/types.h> |
#include <sys/types.h> |
|
|
#include <openssl/md5.h> |
|
|
|
#include <string.h> |
#include <string.h> |
#include <stdarg.h> |
#include <stdarg.h> |
#include <stdio.h> |
#include <stdio.h> |
|
|
#include "log.h" |
#include "log.h" |
#include "misc.h" |
#include "misc.h" |
#include "cipher.h" |
#include "cipher.h" |
|
#include "buffer.h" |
|
#include "digest.h" |
|
|
extern const EVP_CIPHER *evp_ssh1_bf(void); |
extern const EVP_CIPHER *evp_ssh1_bf(void); |
extern const EVP_CIPHER *evp_ssh1_3des(void); |
extern const EVP_CIPHER *evp_ssh1_3des(void); |
|
|
cipher_set_key_string(CipherContext *cc, const Cipher *cipher, |
cipher_set_key_string(CipherContext *cc, const Cipher *cipher, |
const char *passphrase, int do_encrypt) |
const char *passphrase, int do_encrypt) |
{ |
{ |
MD5_CTX md; |
|
u_char digest[16]; |
u_char digest[16]; |
|
|
MD5_Init(&md); |
if (ssh_digest_memory(SSH_DIGEST_MD5, passphrase, strlen(passphrase), |
MD5_Update(&md, (const u_char *)passphrase, strlen(passphrase)); |
digest, sizeof(digest)) < 0) |
MD5_Final(digest, &md); |
fatal("%s: md5 failed", __func__); |
|
|
cipher_init(cc, cipher, digest, 16, NULL, 0, do_encrypt); |
cipher_init(cc, cipher, digest, 16, NULL, 0, do_encrypt); |
|
|
memset(digest, 0, sizeof(digest)); |
memset(digest, 0, sizeof(digest)); |
memset(&md, 0, sizeof(md)); |
|
} |
} |
|
|
/* |
/* |