181cb6ddcSMark Murray /*- 281cb6ddcSMark Murray * Copyright (c) 1991, 1993 381cb6ddcSMark Murray * The Regents of the University of California. All rights reserved. 481cb6ddcSMark Murray * 581cb6ddcSMark Murray * Redistribution and use in source and binary forms, with or without 681cb6ddcSMark Murray * modification, are permitted provided that the following conditions 781cb6ddcSMark Murray * are met: 881cb6ddcSMark Murray * 1. Redistributions of source code must retain the above copyright 981cb6ddcSMark Murray * notice, this list of conditions and the following disclaimer. 1081cb6ddcSMark Murray * 2. Redistributions in binary form must reproduce the above copyright 1181cb6ddcSMark Murray * notice, this list of conditions and the following disclaimer in the 1281cb6ddcSMark Murray * documentation and/or other materials provided with the distribution. 13*83129c0bSEd Maste * 3. Neither the name of the University nor the names of its contributors 1481cb6ddcSMark Murray * may be used to endorse or promote products derived from this software 1581cb6ddcSMark Murray * without specific prior written permission. 1681cb6ddcSMark Murray * 1781cb6ddcSMark Murray * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 1881cb6ddcSMark Murray * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1981cb6ddcSMark Murray * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2081cb6ddcSMark Murray * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 2181cb6ddcSMark Murray * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2281cb6ddcSMark Murray * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2381cb6ddcSMark Murray * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2481cb6ddcSMark Murray * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2581cb6ddcSMark Murray * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2681cb6ddcSMark Murray * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2781cb6ddcSMark Murray * SUCH DAMAGE. 2881cb6ddcSMark Murray * 2981cb6ddcSMark Murray * @(#)encrypt.h 8.1 (Berkeley) 6/4/93 30bf4f84d4SMark Murray * $FreeBSD$ 3181cb6ddcSMark Murray */ 3281cb6ddcSMark Murray 3381cb6ddcSMark Murray /* 3481cb6ddcSMark Murray * Copyright (C) 1990 by the Massachusetts Institute of Technology 3581cb6ddcSMark Murray * 3681cb6ddcSMark Murray * Export of this software from the United States of America is assumed 3781cb6ddcSMark Murray * to require a specific license from the United States Government. 3881cb6ddcSMark Murray * It is the responsibility of any person or organization contemplating 3981cb6ddcSMark Murray * export to obtain such a license before exporting. 4081cb6ddcSMark Murray * 4181cb6ddcSMark Murray * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and 4281cb6ddcSMark Murray * distribute this software and its documentation for any purpose and 4381cb6ddcSMark Murray * without fee is hereby granted, provided that the above copyright 4481cb6ddcSMark Murray * notice appear in all copies and that both that copyright notice and 4581cb6ddcSMark Murray * this permission notice appear in supporting documentation, and that 4681cb6ddcSMark Murray * the name of M.I.T. not be used in advertising or publicity pertaining 4781cb6ddcSMark Murray * to distribution of the software without specific, written prior 4881cb6ddcSMark Murray * permission. M.I.T. makes no representations about the suitability of 4981cb6ddcSMark Murray * this software for any purpose. It is provided "as is" without express 5081cb6ddcSMark Murray * or implied warranty. 5181cb6ddcSMark Murray */ 5281cb6ddcSMark Murray 5381cb6ddcSMark Murray #ifdef ENCRYPTION 5481cb6ddcSMark Murray # ifndef __ENCRYPTION__ 5581cb6ddcSMark Murray # define __ENCRYPTION__ 5681cb6ddcSMark Murray 5781cb6ddcSMark Murray #define DIR_DECRYPT 1 5881cb6ddcSMark Murray #define DIR_ENCRYPT 2 5981cb6ddcSMark Murray 60bf4f84d4SMark Murray #include <openssl/des.h> 6181cb6ddcSMark Murray typedef unsigned char Block[8]; 6281cb6ddcSMark Murray typedef unsigned char *BlockT; 630f8c8396SNick Sayer #if 0 6404c426ccSMark Murray typedef struct { Block __; } Schedule[16]; 650f8c8396SNick Sayer #else 66b285c5dfSJung-uk Kim #define Schedule DES_key_schedule 670f8c8396SNick Sayer #endif 6881cb6ddcSMark Murray 6981cb6ddcSMark Murray #define VALIDKEY(key) ( key[0] | key[1] | key[2] | key[3] | \ 7081cb6ddcSMark Murray key[4] | key[5] | key[6] | key[7]) 7181cb6ddcSMark Murray 7281cb6ddcSMark Murray #define SAMEKEY(k1, k2) (!bcmp((void *)k1, (void *)k2, sizeof(Block))) 7381cb6ddcSMark Murray 7481cb6ddcSMark Murray typedef struct { 7581cb6ddcSMark Murray short type; 7681cb6ddcSMark Murray int length; 7781cb6ddcSMark Murray unsigned char *data; 7881cb6ddcSMark Murray } Session_Key; 7981cb6ddcSMark Murray 8081cb6ddcSMark Murray typedef struct { 818fa113e5SMark Murray const char *name; 8281cb6ddcSMark Murray int type; 838fa113e5SMark Murray void (*output)(unsigned char *, int); 848fa113e5SMark Murray int (*input)(int); 858fa113e5SMark Murray void (*init)(int); 868fa113e5SMark Murray int (*start)(int, int); 878fa113e5SMark Murray int (*is)(unsigned char *, int); 888fa113e5SMark Murray int (*reply)(unsigned char *, int); 898fa113e5SMark Murray void (*session)(Session_Key *, int); 908fa113e5SMark Murray int (*keyid)(int, unsigned char *, int *); 918fa113e5SMark Murray void (*printsub)(unsigned char *, int, unsigned char *, int); 9281cb6ddcSMark Murray } Encryptions; 9381cb6ddcSMark Murray 9481cb6ddcSMark Murray #define SK_DES 1 /* Matched Kerberos v5 KEYTYPE_DES */ 9581cb6ddcSMark Murray 9681cb6ddcSMark Murray #include "enc-proto.h" 9781cb6ddcSMark Murray 9881cb6ddcSMark Murray extern int encrypt_debug_mode; 998fa113e5SMark Murray extern int (*decrypt_input)(int); 1008fa113e5SMark Murray extern void (*encrypt_output)(unsigned char *, int); 10181cb6ddcSMark Murray # endif /* __ENCRYPTION__ */ 10281cb6ddcSMark Murray #endif /* ENCRYPTION */ 103