Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/crypto/heimdal/appl/telnet/libtelnet/encrypt.h
34889 views
1
/*-
2
* Copyright (c) 1991, 1993
3
* The Regents of the University of California. All rights reserved.
4
*
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.
20
*
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 8.1 (Berkeley) 6/4/93
34
*
35
* @(#)encrypt.h 5.2 (Berkeley) 3/22/91
36
*/
37
38
/*
39
* Copyright (C) 1990 by the Massachusetts Institute of Technology
40
*
41
* Export of this software from the United States of America is assumed
42
* to require a specific license from the United States Government.
43
* It is the responsibility of any person or organization contemplating
44
* export to obtain such a license before exporting.
45
*
46
* WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
47
* distribute this software and its documentation for any purpose and
48
* without fee is hereby granted, provided that the above copyright
49
* notice appear in all copies and that both that copyright notice and
50
* this permission notice appear in supporting documentation, and that
51
* the name of M.I.T. not be used in advertising or publicity pertaining
52
* to distribution of the software without specific, written prior
53
* permission. M.I.T. makes no representations about the suitability of
54
* this software for any purpose. It is provided "as is" without express
55
* or implied warranty.
56
*/
57
58
/* $Id$ */
59
60
#ifndef __ENCRYPT__
61
#define __ENCRYPT__
62
63
#define DIR_DECRYPT 1
64
#define DIR_ENCRYPT 2
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) (!memcmp(k1, k2, sizeof(des_cblock)))
70
71
typedef struct {
72
short type;
73
int length;
74
unsigned char *data;
75
} Session_Key;
76
77
typedef struct {
78
char *name;
79
int type;
80
void (*output) (unsigned char *, int);
81
int (*input) (int);
82
void (*init) (int);
83
int (*start) (int, int);
84
int (*is) (unsigned char *, int);
85
int (*reply) (unsigned char *, int);
86
void (*session) (Session_Key *, int);
87
int (*keyid) (int, unsigned char *, int *);
88
void (*printsub) (unsigned char *, size_t, unsigned char *, size_t);
89
} Encryptions;
90
91
#define SK_DES 1 /* Matched Kerberos v5 KEYTYPE_DES */
92
93
#include "crypto-headers.h"
94
#ifdef HAVE_OPENSSL
95
#define des_new_random_key des_random_key
96
#endif
97
98
#include "enc-proto.h"
99
100
extern int encrypt_debug_mode;
101
extern int (*decrypt_input) (int);
102
extern void (*encrypt_output) (unsigned char *, int);
103
#endif
104
105