]> asedeno.scripts.mit.edu Git - PuTTY.git/blobdiff - cproxy.c
first pass
[PuTTY.git] / cproxy.c
index 7efcc234b446d6fbda1e4a5fde34a2d9ce917b0d..4f9a3ffa591c8b00833d0f6b24c69f83ca64ec06 100644 (file)
--- a/cproxy.c
+++ b/cproxy.c
@@ -21,7 +21,7 @@ static void hmacmd5_chap(const unsigned char *challenge, int challen,
     void *hmacmd5_ctx;
     int pwlen;
 
-    hmacmd5_ctx = hmacmd5_make_context();
+    hmacmd5_ctx = hmacmd5_make_context(NULL);
 
     pwlen = strlen(passwd);
     if (pwlen>64) {
@@ -130,8 +130,9 @@ int proxy_socks5_handlechap (Proxy_Socket p)
                outbuf[2] = 0x04; /* Response */
                outbuf[3] = 0x10; /* Length */
                hmacmd5_chap(data, p->chap_current_datalen,
-                            p->cfg.proxy_password, &outbuf[4]);
-               sk_write(p->sub_socket, outbuf, 20);
+                            conf_get_str(p->conf, CONF_proxy_password),
+                            &outbuf[4]);
+               sk_write(p->sub_socket, (char *)outbuf, 20);
              break;
              case 0x11:
                /* Chose a protocol */
@@ -159,7 +160,9 @@ int proxy_socks5_handlechap (Proxy_Socket p)
 
 int proxy_socks5_selectchap(Proxy_Socket p)
 {
-    if (p->cfg.proxy_username[0] || p->cfg.proxy_password[0]) {
+    char *username = conf_get_str(p->conf, CONF_proxy_username);
+    char *password = conf_get_str(p->conf, CONF_proxy_password);
+    if (username[0] || password[0]) {
        char chapbuf[514];
        int ulen;
        chapbuf[0] = '\x01'; /* Version */
@@ -169,11 +172,12 @@ int proxy_socks5_selectchap(Proxy_Socket p)
        chapbuf[4] = '\x85'; /* ...and it's HMAC-MD5, the core one */
        chapbuf[5] = '\x02'; /* Second attribute - username */
 
-       ulen = strlen(p->cfg.proxy_username);
-       if (ulen > 255) ulen = 255; if (ulen < 1) ulen = 1;
+       ulen = strlen(username);
+       if (ulen > 255) ulen = 255;
+       if (ulen < 1) ulen = 1;
 
        chapbuf[6] = ulen;
-       memcpy(chapbuf+7, p->cfg.proxy_username, ulen);
+       memcpy(chapbuf+7, username, ulen);
 
        sk_write(p->sub_socket, chapbuf, ulen + 7);
        p->chap_num_attributes = 0;