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 * @(#)encrypt.h 8.1 (Berkeley) 6/4/93 3413e3f4d6SMark Murray * 3513e3f4d6SMark Murray * @(#)encrypt.h 5.2 (Berkeley) 3/22/91 3613e3f4d6SMark Murray */ 3713e3f4d6SMark Murray 3813e3f4d6SMark Murray /* 3913e3f4d6SMark Murray * Copyright (C) 1990 by the Massachusetts Institute of Technology 4013e3f4d6SMark Murray * 4113e3f4d6SMark Murray * Export of this software from the United States of America is assumed 4213e3f4d6SMark Murray * to require a specific license from the United States Government. 4313e3f4d6SMark Murray * It is the responsibility of any person or organization contemplating 4413e3f4d6SMark Murray * export to obtain such a license before exporting. 4513e3f4d6SMark Murray * 4613e3f4d6SMark Murray * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and 4713e3f4d6SMark Murray * distribute this software and its documentation for any purpose and 4813e3f4d6SMark Murray * without fee is hereby granted, provided that the above copyright 4913e3f4d6SMark Murray * notice appear in all copies and that both that copyright notice and 5013e3f4d6SMark Murray * this permission notice appear in supporting documentation, and that 5113e3f4d6SMark Murray * the name of M.I.T. not be used in advertising or publicity pertaining 5213e3f4d6SMark Murray * to distribution of the software without specific, written prior 5313e3f4d6SMark Murray * permission. M.I.T. makes no representations about the suitability of 5413e3f4d6SMark Murray * this software for any purpose. It is provided "as is" without express 5513e3f4d6SMark Murray * or implied warranty. 5613e3f4d6SMark Murray */ 5713e3f4d6SMark Murray 58*ae771770SStanislav Sedov /* $Id$ */ 5913e3f4d6SMark Murray 6013e3f4d6SMark Murray #ifndef __ENCRYPT__ 6113e3f4d6SMark Murray #define __ENCRYPT__ 6213e3f4d6SMark Murray 6313e3f4d6SMark Murray #define DIR_DECRYPT 1 6413e3f4d6SMark Murray #define DIR_ENCRYPT 2 6513e3f4d6SMark Murray 6613e3f4d6SMark Murray #define VALIDKEY(key) ( key[0] | key[1] | key[2] | key[3] | \ 6713e3f4d6SMark Murray key[4] | key[5] | key[6] | key[7]) 6813e3f4d6SMark Murray 6913e3f4d6SMark Murray #define SAMEKEY(k1, k2) (!memcmp(k1, k2, sizeof(des_cblock))) 7013e3f4d6SMark Murray 7113e3f4d6SMark Murray typedef struct { 7213e3f4d6SMark Murray short type; 7313e3f4d6SMark Murray int length; 7413e3f4d6SMark Murray unsigned char *data; 7513e3f4d6SMark Murray } Session_Key; 7613e3f4d6SMark Murray 7713e3f4d6SMark Murray typedef struct { 7813e3f4d6SMark Murray char *name; 7913e3f4d6SMark Murray int type; 8013e3f4d6SMark Murray void (*output) (unsigned char *, int); 8113e3f4d6SMark Murray int (*input) (int); 8213e3f4d6SMark Murray void (*init) (int); 8313e3f4d6SMark Murray int (*start) (int, int); 8413e3f4d6SMark Murray int (*is) (unsigned char *, int); 8513e3f4d6SMark Murray int (*reply) (unsigned char *, int); 8613e3f4d6SMark Murray void (*session) (Session_Key *, int); 8713e3f4d6SMark Murray int (*keyid) (int, unsigned char *, int *); 88*ae771770SStanislav Sedov void (*printsub) (unsigned char *, size_t, unsigned char *, size_t); 8913e3f4d6SMark Murray } Encryptions; 9013e3f4d6SMark Murray 9113e3f4d6SMark Murray #define SK_DES 1 /* Matched Kerberos v5 KEYTYPE_DES */ 9213e3f4d6SMark Murray 930cadf2f4SJacques Vidrine #include "crypto-headers.h" 944137ff4cSJacques Vidrine #ifdef HAVE_OPENSSL 95adb0ddaeSAssar Westerlund #define des_new_random_key des_random_key 96adb0ddaeSAssar Westerlund #endif 97adb0ddaeSAssar Westerlund 9813e3f4d6SMark Murray #include "enc-proto.h" 9913e3f4d6SMark Murray 10013e3f4d6SMark Murray extern int encrypt_debug_mode; 10113e3f4d6SMark Murray extern int (*decrypt_input) (int); 10213e3f4d6SMark Murray extern void (*encrypt_output) (unsigned char *, int); 10313e3f4d6SMark Murray #endif 104