8da43335fa61956138baaed113cb44cfb3a0514b
[krb5.git] / src / lib / crypto / des / des_int.h
1 /*
2  * lib/crypto/des/des_int.h
3  *
4  * Copyright 1987, 1988, 1990 by the Massachusetts Institute of Technology.
5  * All Rights Reserved.
6  *
7  * Export of this software from the United States of America may
8  *   require a specific license from the United States Government.
9  *   It is the responsibility of any person or organization contemplating
10  *   export to obtain such a license before exporting.
11  * 
12  * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
13  * distribute this software and its documentation for any purpose and
14  * without fee is hereby granted, provided that the above copyright
15  * notice appear in all copies and that both that copyright notice and
16  * this permission notice appear in supporting documentation, and that
17  * the name of M.I.T. not be used in advertising or publicity pertaining
18  * to distribution of the software without specific, written prior
19  * permission.  M.I.T. makes no representations about the suitability of
20  * this software for any purpose.  It is provided "as is" without express
21  * or implied warranty.
22  * 
23  *
24  * Private include file for the Data Encryption Standard library.
25  */
26
27 /* only do the whole thing once  */
28 #ifndef DES_INTERNAL_DEFS
29 #define DES_INTERNAL_DEFS
30
31 #include "mit-des.h"            /* From include/krb5 */
32
33 /* cbc_cksum.c */
34 extern krb5_error_code INTERFACE mit_des_cbc_checksum
35     PROTOTYPE((krb5_pointer, size_t,krb5_pointer,size_t, krb5_checksum FAR * ));
36
37 /* cksum.c */
38 extern long INTERFACE mit_des_cbc_cksum
39     PROTOTYPE((krb5_octet *, krb5_octet *, long , mit_des_key_schedule ,
40                krb5_octet *));
41 /* des.c */
42 extern int INTERFACE mit_des_ecb_encrypt
43     PROTOTYPE((unsigned long *, unsigned long *, mit_des_key_schedule , int ));
44
45 /* f_cbc.c */
46 extern int INTERFACE mit_des_cbc_encrypt
47     PROTOTYPE((const mit_des_cblock *in, mit_des_cblock *out, long length,
48                mit_des_key_schedule schedule, mit_des_cblock ivec,
49                int encrypt));
50     
51 /* fin_rndkey.c */
52 extern krb5_error_code INTERFACE mit_des_finish_random_key
53     PROTOTYPE(( krb5_pointer *));
54
55 /* finish_key.c */
56 extern krb5_error_code INTERFACE mit_des_finish_key
57     PROTOTYPE(( krb5_encrypt_block FAR *));
58
59 /* init_rkey.c */
60 extern krb5_error_code INTERFACE mit_des_init_random_key
61     PROTOTYPE(( const krb5_keyblock *,  krb5_pointer *));
62
63 /* key_parity.c */
64 extern void INTERFACE mit_des_fixup_key_parity PROTOTYPE((mit_des_cblock ));
65 extern int INTERFACE mit_des_check_key_parity PROTOTYPE((mit_des_cblock ));
66
67 /* key_sched.c */
68 extern int INTERFACE mit_des_key_sched
69     PROTOTYPE((mit_des_cblock , mit_des_key_schedule ));
70
71 /* new_rnd_key.c */
72 extern int INTERFACE mit_des_new_random_key
73     PROTOTYPE((mit_des_cblock , mit_des_random_key_seed *));
74 extern void INTERFACE mit_des_init_random_number_generator
75     PROTOTYPE((mit_des_cblock, mit_des_random_key_seed *));
76 extern void INTERFACE mit_des_set_random_generator_seed
77     PROTOTYPE((mit_des_cblock , mit_des_random_key_seed *));
78 extern void INTERFACE mit_des_set_sequence_number
79     PROTOTYPE((mit_des_cblock , mit_des_random_key_seed *));
80 extern void INTERFACE mit_des_generate_random_block
81     PROTOTYPE((mit_des_cblock , mit_des_random_key_seed *));
82
83 /* process_ky.c */
84 extern krb5_error_code INTERFACE mit_des_process_key
85     PROTOTYPE(( krb5_encrypt_block *,  const krb5_keyblock *));
86
87 /* random_key.c */
88 extern krb5_error_code INTERFACE mit_des_random_key
89     PROTOTYPE(( const krb5_encrypt_block *, krb5_pointer ,  krb5_keyblock **));
90
91 /* string2key.c */
92 extern krb5_error_code INTERFACE mit_des_string_to_key
93     PROTOTYPE(( const krb5_encrypt_block *, const krb5_keytype,
94                krb5_keyblock *, const krb5_data *, const krb5_data *));
95
96 /* weak_key.c */
97 extern int INTERFACE mit_des_is_weak_key PROTOTYPE((mit_des_cblock ));
98
99 /* cmb_keys.c */
100 krb5_error_code mit_des_combine_subkeys
101     PROTOTYPE((const krb5_keyblock *, const krb5_keyblock *,
102                krb5_keyblock **));
103
104 /* f_pcbc.c */
105 int INTERFACE mit_des_pcbc_encrypt ();
106
107 /* f_sched.c */
108 int INTERFACE make_key_sched PROTOTYPE((mit_des_cblock, mit_des_key_schedule));
109
110
111 /* misc.c */
112 extern void swap_bits PROTOTYPE((char *));
113 extern unsigned long long_swap_bits PROTOTYPE((unsigned long ));
114 extern unsigned long swap_six_bits_to_ansi PROTOTYPE((unsigned long ));
115 extern unsigned long swap_four_bits_to_ansi PROTOTYPE((unsigned long ));
116 extern unsigned long swap_bit_pos_1 PROTOTYPE((unsigned long ));
117 extern unsigned long swap_bit_pos_0 PROTOTYPE((unsigned long ));
118 extern unsigned long swap_bit_pos_0_to_ansi PROTOTYPE((unsigned long ));
119 extern unsigned long rev_swap_bit_pos_0 PROTOTYPE((unsigned long ));
120 extern unsigned long swap_byte_bits PROTOTYPE((unsigned long ));
121 extern unsigned long swap_long_bytes_bit_number PROTOTYPE((unsigned long ));
122 #ifdef FILE
123 /* XXX depends on FILE being a #define! */
124 extern void test_set PROTOTYPE((FILE *, const char *, int, const char *, int));
125 #endif
126
127 #endif  /*DES_INTERNAL_DEFS*/