char *config_file;
char *key_file;
char *user;
+ RC4_KEY rc4_recv_key;
+ RC4_KEY rc4_send_key;
+
char *in_buf;
size_t *in_loaded;
char *out_buf;
return ret;
}
-static RC4_KEY rc4_recv_key;
-static RC4_KEY rc4_send_key;
-static unsigned char rc4_buf[2 * RC4_KEY_LEN];
-
-static void rc4_send(unsigned long len, const unsigned char *indata, unsigned char *outdata)
+static void rc4_send(unsigned long len, const unsigned char *indata,
+ unsigned char *outdata)
{
- RC4(&rc4_send_key, len, indata, outdata);
+ RC4(&pcd->rc4_send_key, len, indata, outdata);
}
-static void rc4_recv(unsigned long len, const unsigned char *indata, unsigned char *outdata)
+static void rc4_recv(unsigned long len, const unsigned char *indata,
+ unsigned char *outdata)
{
- RC4(&rc4_recv_key, len, indata, outdata);
+ RC4(&pcd->rc4_recv_key, len, indata, outdata);
}
-void (*crypt_function_recv)(unsigned long len, const unsigned char *indata, unsigned char *outdata);
-void (*crypt_function_send)(unsigned long len, const unsigned char *indata, unsigned char *outdata);
-
static void append_str(char **data, const char* append)
{
char buf[8192];
char *auth_str;
long unsigned challenge_nr;
+ unsigned char rc4_buf[2 * RC4_KEY_LEN] = "";
ret = client_parse_config(argc, argv, &pcd);
if (ret < 0)
/* concat args */
for (i = 0; i < pcd->conf.inputs_num; i++)
append_str(&command, pcd->conf.inputs[i]);
- crypt_function_recv = NULL;
- crypt_function_send = NULL;
/* get the host info */
PARA_NOTICE_LOG("getting host info of %s\n",
pcd->conf.hostname_arg);
numbytes - PROCEED_MSG_LEN - 1);
if (ret < 0)
goto out;
- RC4_set_key(&rc4_send_key, RC4_KEY_LEN, rc4_buf);
- RC4_set_key(&rc4_recv_key, RC4_KEY_LEN, rc4_buf + RC4_KEY_LEN);
- PARA_INFO_LOG("rc4 encrytion activated: %x:%x:%x:%x\n",
+ RC4_set_key(&pcd->rc4_send_key, RC4_KEY_LEN, rc4_buf);
+ RC4_set_key(&pcd->rc4_recv_key, RC4_KEY_LEN, rc4_buf + RC4_KEY_LEN);
+ PARA_INFO_LOG("rc4 encryption activated: %x:%x:%x:%x\n",
rc4_buf[0], rc4_buf[1], rc4_buf[2], rc4_buf[3]);
- crypt_function_recv = rc4_recv;
- crypt_function_send = rc4_send;
+ enable_crypt(pcd->fd, rc4_recv, rc4_send);
}
/* send command */
PARA_INFO_LOG("--> %s\n", command);