129088Smarkm/*- 229088Smarkm * Copyright (c) 1991, 1993 329088Smarkm * The Regents of the University of California. All rights reserved. 429088Smarkm * 529088Smarkm * Redistribution and use in source and binary forms, with or without 629088Smarkm * modification, are permitted provided that the following conditions 729088Smarkm * are met: 829088Smarkm * 1. Redistributions of source code must retain the above copyright 929088Smarkm * notice, this list of conditions and the following disclaimer. 1029088Smarkm * 2. Redistributions in binary form must reproduce the above copyright 1129088Smarkm * notice, this list of conditions and the following disclaimer in the 1229088Smarkm * documentation and/or other materials provided with the distribution. 1329088Smarkm * 3. All advertising materials mentioning features or use of this software 1429088Smarkm * must display the following acknowledgement: 1529088Smarkm * This product includes software developed by the University of 1629088Smarkm * California, Berkeley and its contributors. 1729088Smarkm * 4. Neither the name of the University nor the names of its contributors 1829088Smarkm * may be used to endorse or promote products derived from this software 1929088Smarkm * without specific prior written permission. 2029088Smarkm * 2129088Smarkm * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 2229088Smarkm * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2329088Smarkm * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2429088Smarkm * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 2529088Smarkm * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2629088Smarkm * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2729088Smarkm * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2829088Smarkm * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2929088Smarkm * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 3029088Smarkm * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3129088Smarkm * SUCH DAMAGE. 3229088Smarkm * 3329088Smarkm * @(#)encrypt.h 8.1 (Berkeley) 6/4/93 3457442Smarkm * $FreeBSD: releng/10.3/contrib/telnet/libtelnet/encrypt.h 87139 2001-11-30 21:06:38Z markm $ 3529088Smarkm */ 3629088Smarkm 3729088Smarkm/* 3829088Smarkm * Copyright (C) 1990 by the Massachusetts Institute of Technology 3929088Smarkm * 4029088Smarkm * Export of this software from the United States of America is assumed 4129088Smarkm * to require a specific license from the United States Government. 4229088Smarkm * It is the responsibility of any person or organization contemplating 4329088Smarkm * export to obtain such a license before exporting. 4429088Smarkm * 4529088Smarkm * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and 4629088Smarkm * distribute this software and its documentation for any purpose and 4729088Smarkm * without fee is hereby granted, provided that the above copyright 4829088Smarkm * notice appear in all copies and that both that copyright notice and 4929088Smarkm * this permission notice appear in supporting documentation, and that 5029088Smarkm * the name of M.I.T. not be used in advertising or publicity pertaining 5129088Smarkm * to distribution of the software without specific, written prior 5229088Smarkm * permission. M.I.T. makes no representations about the suitability of 5329088Smarkm * this software for any purpose. It is provided "as is" without express 5429088Smarkm * or implied warranty. 5529088Smarkm */ 5629088Smarkm 5729088Smarkm#ifdef ENCRYPTION 5829088Smarkm# ifndef __ENCRYPTION__ 5929088Smarkm# define __ENCRYPTION__ 6029088Smarkm 6129088Smarkm#define DIR_DECRYPT 1 6229088Smarkm#define DIR_ENCRYPT 2 6329088Smarkm 6457442Smarkm#include <openssl/des.h> 6529088Smarkmtypedef unsigned char Block[8]; 6629088Smarkmtypedef unsigned char *BlockT; 6749887Snsayer#if 0 6829181Smarkmtypedef struct { Block __; } Schedule[16]; 6949887Snsayer#else 7049887Snsayer#define Schedule des_key_schedule 7149887Snsayer#endif 7229088Smarkm 7329088Smarkm#define VALIDKEY(key) ( key[0] | key[1] | key[2] | key[3] | \ 7429088Smarkm key[4] | key[5] | key[6] | key[7]) 7529088Smarkm 7629088Smarkm#define SAMEKEY(k1, k2) (!bcmp((void *)k1, (void *)k2, sizeof(Block))) 7729088Smarkm 7829088Smarkmtypedef struct { 7929088Smarkm short type; 8029088Smarkm int length; 8129088Smarkm unsigned char *data; 8229088Smarkm} Session_Key; 8329088Smarkm 8429088Smarkmtypedef struct { 8587139Smarkm const char *name; 8629088Smarkm int type; 8787139Smarkm void (*output)(unsigned char *, int); 8887139Smarkm int (*input)(int); 8987139Smarkm void (*init)(int); 9087139Smarkm int (*start)(int, int); 9187139Smarkm int (*is)(unsigned char *, int); 9287139Smarkm int (*reply)(unsigned char *, int); 9387139Smarkm void (*session)(Session_Key *, int); 9487139Smarkm int (*keyid)(int, unsigned char *, int *); 9587139Smarkm void (*printsub)(unsigned char *, int, unsigned char *, int); 9629088Smarkm} Encryptions; 9729088Smarkm 9829088Smarkm#define SK_DES 1 /* Matched Kerberos v5 KEYTYPE_DES */ 9929088Smarkm 10029088Smarkm#include "enc-proto.h" 10129088Smarkm 10229088Smarkmextern int encrypt_debug_mode; 10387139Smarkmextern int (*decrypt_input)(int); 10487139Smarkmextern void (*encrypt_output)(unsigned char *, int); 10529088Smarkm# endif /* __ENCRYPTION__ */ 10629088Smarkm#endif /* ENCRYPTION */ 107