Commit | Line | Data |
---|---|---|
059be884 DB |
1 | /*- |
2 | * Copyright (c) 1991 The Regents of the University of California. | |
3 | * All rights reserved. | |
4 | * | |
af359dea C |
5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions | |
7 | * are met: | |
8 | * 1. Redistributions of source code must retain the above copyright | |
9 | * notice, this list of conditions and the following disclaimer. | |
10 | * 2. Redistributions in binary form must reproduce the above copyright | |
11 | * notice, this list of conditions and the following disclaimer in the | |
12 | * documentation and/or other materials provided with the distribution. | |
13 | * 3. All advertising materials mentioning features or use of this software | |
14 | * must display the following acknowledgement: | |
15 | * This product includes software developed by the University of | |
16 | * California, Berkeley and its contributors. | |
17 | * 4. Neither the name of the University nor the names of its contributors | |
18 | * may be used to endorse or promote products derived from this software | |
19 | * without specific prior written permission. | |
059be884 | 20 | * |
af359dea C |
21 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
22 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
23 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
24 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |
25 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
26 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |
27 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |
28 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |
29 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |
30 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |
31 | * SUCH DAMAGE. | |
32 | * | |
33 | * @(#)encrypt.h 5.2 (Berkeley) 3/22/91 | |
059be884 DB |
34 | */ |
35 | ||
36 | /* | |
37 | * Copyright (C) 1990 by the Massachusetts Institute of Technology | |
38 | * | |
39 | * Export of this software from the United States of America is assumed | |
40 | * to require a specific license from the United States Government. | |
41 | * It is the responsibility of any person or organization contemplating | |
42 | * export to obtain such a license before exporting. | |
43 | * | |
44 | * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and | |
45 | * distribute this software and its documentation for any purpose and | |
46 | * without fee is hereby granted, provided that the above copyright | |
47 | * notice appear in all copies and that both that copyright notice and | |
48 | * this permission notice appear in supporting documentation, and that | |
49 | * the name of M.I.T. not be used in advertising or publicity pertaining | |
50 | * to distribution of the software without specific, written prior | |
51 | * permission. M.I.T. makes no representations about the suitability of | |
52 | * this software for any purpose. It is provided "as is" without express | |
53 | * or implied warranty. | |
54 | */ | |
55 | ||
56 | #ifndef __ENCRYPT__ | |
57 | #define __ENCRYPT__ | |
58 | ||
59 | #define DIR_DECRYPT 1 | |
60 | #define DIR_ENCRYPT 2 | |
61 | ||
62 | typedef unsigned char Block[8]; | |
63 | typedef unsigned char *BlockT; | |
64 | typedef struct { Block _; } Schedule[16]; | |
65 | ||
66 | #define VALIDKEY(key) ( key[0] | key[1] | key[2] | key[3] | \ | |
67 | key[4] | key[5] | key[6] | key[7]) | |
68 | ||
69 | #define SAMEKEY(k1, k2) (!bcmp((void *)k1, (void *)k2, sizeof(Block))) | |
70 | ||
71 | typedef struct { | |
72 | short type; | |
73 | int length; | |
74 | unsigned char *data; | |
75 | } Session_Key; | |
76 | ||
77 | #if !defined(P) | |
78 | #ifdef __STDC__ | |
79 | #define P(x) x | |
80 | #else | |
81 | #define P(x) () | |
82 | #endif | |
83 | #endif | |
84 | ||
85 | typedef struct { | |
86 | char *name; | |
87 | int type; | |
88 | void (*output) P((unsigned char *, int)); | |
89 | int (*input) P((int)); | |
90 | void (*init) P((int)); | |
91 | int (*start) P((int, int)); | |
92 | int (*is) P((unsigned char *, int)); | |
93 | int (*reply) P((unsigned char *, int)); | |
94 | void (*session) P((Session_Key *, int)); | |
b7c8f459 | 95 | int (*keyid) P((int, unsigned char *, int *)); |
059be884 DB |
96 | void (*printsub) P((unsigned char *, int, unsigned char *, int)); |
97 | } Encryptions; | |
98 | ||
99 | #define SK_DES 1 /* Matched Kerberos v5 KEYTYPE_DES */ | |
100 | ||
101 | #include "enc-proto.h" | |
102 | ||
103 | extern int encrypt_debug_mode; | |
104 | extern int (*decrypt_input) P((int)); | |
105 | extern void (*encrypt_output) P((unsigned char *, int)); | |
106 | #endif |