1*e044bafaSDavid van Moolenbroek /* $NetBSD: authenc.c,v 1.12 2005/02/06 05:58:20 perry Exp $ */
2*e044bafaSDavid van Moolenbroek
3*e044bafaSDavid van Moolenbroek /*-
4*e044bafaSDavid van Moolenbroek * Copyright (c) 1991, 1993
5*e044bafaSDavid van Moolenbroek * The Regents of the University of California. All rights reserved.
6*e044bafaSDavid van Moolenbroek *
7*e044bafaSDavid van Moolenbroek * Redistribution and use in source and binary forms, with or without
8*e044bafaSDavid van Moolenbroek * modification, are permitted provided that the following conditions
9*e044bafaSDavid van Moolenbroek * are met:
10*e044bafaSDavid van Moolenbroek * 1. Redistributions of source code must retain the above copyright
11*e044bafaSDavid van Moolenbroek * notice, this list of conditions and the following disclaimer.
12*e044bafaSDavid van Moolenbroek * 2. Redistributions in binary form must reproduce the above copyright
13*e044bafaSDavid van Moolenbroek * notice, this list of conditions and the following disclaimer in the
14*e044bafaSDavid van Moolenbroek * documentation and/or other materials provided with the distribution.
15*e044bafaSDavid van Moolenbroek * 3. Neither the name of the University nor the names of its contributors
16*e044bafaSDavid van Moolenbroek * may be used to endorse or promote products derived from this software
17*e044bafaSDavid van Moolenbroek * without specific prior written permission.
18*e044bafaSDavid van Moolenbroek *
19*e044bafaSDavid van Moolenbroek * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20*e044bafaSDavid van Moolenbroek * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21*e044bafaSDavid van Moolenbroek * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22*e044bafaSDavid van Moolenbroek * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23*e044bafaSDavid van Moolenbroek * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24*e044bafaSDavid van Moolenbroek * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25*e044bafaSDavid van Moolenbroek * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26*e044bafaSDavid van Moolenbroek * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27*e044bafaSDavid van Moolenbroek * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28*e044bafaSDavid van Moolenbroek * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29*e044bafaSDavid van Moolenbroek * SUCH DAMAGE.
30*e044bafaSDavid van Moolenbroek */
31*e044bafaSDavid van Moolenbroek
32*e044bafaSDavid van Moolenbroek #include <sys/cdefs.h>
33*e044bafaSDavid van Moolenbroek #ifndef lint
34*e044bafaSDavid van Moolenbroek #if 0
35*e044bafaSDavid van Moolenbroek static char sccsid[] = "@(#)authenc.c 8.2 (Berkeley) 5/30/95";
36*e044bafaSDavid van Moolenbroek #else
37*e044bafaSDavid van Moolenbroek __RCSID("$NetBSD: authenc.c,v 1.12 2005/02/06 05:58:20 perry Exp $");
38*e044bafaSDavid van Moolenbroek #endif
39*e044bafaSDavid van Moolenbroek #endif /* not lint */
40*e044bafaSDavid van Moolenbroek
41*e044bafaSDavid van Moolenbroek #if defined(AUTHENTICATION) || defined(ENCRYPTION)
42*e044bafaSDavid van Moolenbroek #include "telnetd.h"
43*e044bafaSDavid van Moolenbroek #include <libtelnet/misc.h>
44*e044bafaSDavid van Moolenbroek
45*e044bafaSDavid van Moolenbroek int
telnet_net_write(unsigned char * str,int len)46*e044bafaSDavid van Moolenbroek telnet_net_write(unsigned char *str, int len)
47*e044bafaSDavid van Moolenbroek {
48*e044bafaSDavid van Moolenbroek if (nfrontp + len < netobuf + BUFSIZ) {
49*e044bafaSDavid van Moolenbroek output_datalen((const char *)str, len);
50*e044bafaSDavid van Moolenbroek return(len);
51*e044bafaSDavid van Moolenbroek }
52*e044bafaSDavid van Moolenbroek return(0);
53*e044bafaSDavid van Moolenbroek }
54*e044bafaSDavid van Moolenbroek
55*e044bafaSDavid van Moolenbroek void
net_encrypt(void)56*e044bafaSDavid van Moolenbroek net_encrypt(void)
57*e044bafaSDavid van Moolenbroek {
58*e044bafaSDavid van Moolenbroek #ifdef ENCRYPTION
59*e044bafaSDavid van Moolenbroek char *s = (nclearto > nbackp) ? nclearto : nbackp;
60*e044bafaSDavid van Moolenbroek if (s < nfrontp && encrypt_output) {
61*e044bafaSDavid van Moolenbroek (*encrypt_output)((unsigned char *)s, nfrontp - s);
62*e044bafaSDavid van Moolenbroek }
63*e044bafaSDavid van Moolenbroek nclearto = nfrontp;
64*e044bafaSDavid van Moolenbroek #endif /* ENCRYPTION */
65*e044bafaSDavid van Moolenbroek }
66*e044bafaSDavid van Moolenbroek
67*e044bafaSDavid van Moolenbroek int
telnet_spin(void)68*e044bafaSDavid van Moolenbroek telnet_spin(void)
69*e044bafaSDavid van Moolenbroek {
70*e044bafaSDavid van Moolenbroek ttloop();
71*e044bafaSDavid van Moolenbroek return(0);
72*e044bafaSDavid van Moolenbroek }
73*e044bafaSDavid van Moolenbroek
74*e044bafaSDavid van Moolenbroek char *
telnet_getenv(char * val)75*e044bafaSDavid van Moolenbroek telnet_getenv(char *val)
76*e044bafaSDavid van Moolenbroek {
77*e044bafaSDavid van Moolenbroek return(getenv(val));
78*e044bafaSDavid van Moolenbroek }
79*e044bafaSDavid van Moolenbroek
80*e044bafaSDavid van Moolenbroek char *
telnet_gets(char * prompt,char * result,int length,int echo)81*e044bafaSDavid van Moolenbroek telnet_gets(char *prompt, char *result, int length, int echo)
82*e044bafaSDavid van Moolenbroek {
83*e044bafaSDavid van Moolenbroek return((char *)0);
84*e044bafaSDavid van Moolenbroek }
85*e044bafaSDavid van Moolenbroek #endif /* defined(AUTHENTICATION) || defined(ENCRYPTION) */
86