113e3f4d6SMark Murray /*- 213e3f4d6SMark Murray * Copyright (c) 1991, 1993 313e3f4d6SMark Murray * The Regents of the University of California. All rights reserved. 413e3f4d6SMark Murray * 513e3f4d6SMark Murray * Redistribution and use in source and binary forms, with or without 613e3f4d6SMark Murray * modification, are permitted provided that the following conditions 713e3f4d6SMark Murray * are met: 813e3f4d6SMark Murray * 1. Redistributions of source code must retain the above copyright 913e3f4d6SMark Murray * notice, this list of conditions and the following disclaimer. 1013e3f4d6SMark Murray * 2. Redistributions in binary form must reproduce the above copyright 1113e3f4d6SMark Murray * notice, this list of conditions and the following disclaimer in the 1213e3f4d6SMark Murray * documentation and/or other materials provided with the distribution. 1313e3f4d6SMark Murray * 3. All advertising materials mentioning features or use of this software 1413e3f4d6SMark Murray * must display the following acknowledgement: 1513e3f4d6SMark Murray * This product includes software developed by the University of 1613e3f4d6SMark Murray * California, Berkeley and its contributors. 1713e3f4d6SMark Murray * 4. Neither the name of the University nor the names of its contributors 1813e3f4d6SMark Murray * may be used to endorse or promote products derived from this software 1913e3f4d6SMark Murray * without specific prior written permission. 2013e3f4d6SMark Murray * 2113e3f4d6SMark Murray * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 2213e3f4d6SMark Murray * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2313e3f4d6SMark Murray * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2413e3f4d6SMark Murray * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 2513e3f4d6SMark Murray * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2613e3f4d6SMark Murray * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2713e3f4d6SMark Murray * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2813e3f4d6SMark Murray * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2913e3f4d6SMark Murray * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 3013e3f4d6SMark Murray * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3113e3f4d6SMark Murray * SUCH DAMAGE. 3213e3f4d6SMark Murray */ 3313e3f4d6SMark Murray 3413e3f4d6SMark Murray #include <config.h> 3513e3f4d6SMark Murray 3613e3f4d6SMark Murray RCSID("$Id: misc.c,v 1.15 2000/01/25 23:24:58 assar Exp $"); 3713e3f4d6SMark Murray 3813e3f4d6SMark Murray #include <stdio.h> 3913e3f4d6SMark Murray #include <stdlib.h> 4013e3f4d6SMark Murray #include <string.h> 4113e3f4d6SMark Murray #include <roken.h> 4213e3f4d6SMark Murray #ifdef SOCKS 4313e3f4d6SMark Murray #include <socks.h> 4413e3f4d6SMark Murray #endif 4513e3f4d6SMark Murray #include "misc.h" 4613e3f4d6SMark Murray #include "auth.h" 4713e3f4d6SMark Murray #include "encrypt.h" 4813e3f4d6SMark Murray 4913e3f4d6SMark Murray 5013e3f4d6SMark Murray const char *RemoteHostName; 5113e3f4d6SMark Murray const char *LocalHostName; 5213e3f4d6SMark Murray char *UserNameRequested = 0; 5313e3f4d6SMark Murray int ConnectedCount = 0; 5413e3f4d6SMark Murray 5513e3f4d6SMark Murray void 5613e3f4d6SMark Murray auth_encrypt_init(const char *local, const char *remote, const char *name, 5713e3f4d6SMark Murray int server) 5813e3f4d6SMark Murray { 5913e3f4d6SMark Murray RemoteHostName = remote; 6013e3f4d6SMark Murray LocalHostName = local; 6113e3f4d6SMark Murray #ifdef AUTHENTICATION 6213e3f4d6SMark Murray auth_init(name, server); 6313e3f4d6SMark Murray #endif 6413e3f4d6SMark Murray #ifdef ENCRYPTION 6513e3f4d6SMark Murray encrypt_init(name, server); 6613e3f4d6SMark Murray #endif 6713e3f4d6SMark Murray if (UserNameRequested) { 6813e3f4d6SMark Murray free(UserNameRequested); 6913e3f4d6SMark Murray UserNameRequested = 0; 7013e3f4d6SMark Murray } 7113e3f4d6SMark Murray } 7213e3f4d6SMark Murray 7313e3f4d6SMark Murray void 7413e3f4d6SMark Murray auth_encrypt_user(const char *name) 7513e3f4d6SMark Murray { 7613e3f4d6SMark Murray if (UserNameRequested) 7713e3f4d6SMark Murray free(UserNameRequested); 7813e3f4d6SMark Murray UserNameRequested = name ? strdup(name) : 0; 7913e3f4d6SMark Murray } 8013e3f4d6SMark Murray 8113e3f4d6SMark Murray void 8213e3f4d6SMark Murray auth_encrypt_connect(int cnt) 8313e3f4d6SMark Murray { 8413e3f4d6SMark Murray } 8513e3f4d6SMark Murray 8613e3f4d6SMark Murray void 8713e3f4d6SMark Murray printd(const unsigned char *data, int cnt) 8813e3f4d6SMark Murray { 8913e3f4d6SMark Murray if (cnt > 16) 9013e3f4d6SMark Murray cnt = 16; 9113e3f4d6SMark Murray while (cnt-- > 0) { 9213e3f4d6SMark Murray printf(" %02x", *data); 9313e3f4d6SMark Murray ++data; 9413e3f4d6SMark Murray } 9513e3f4d6SMark Murray } 96