2 * lib/crypto/des/des_int.h
4 * Copyright 1987, 1988, 1990 by the Massachusetts Institute of Technology.
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.
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.
24 * Private include file for the Data Encryption Standard library.
27 /* only do the whole thing once */
28 #ifndef DES_INTERNAL_DEFS
29 #define DES_INTERNAL_DEFS
31 #include "mit-des.h" /* From include/krb5 */
34 extern krb5_error_code INTERFACE mit_des_cbc_checksum
35 PROTOTYPE((krb5_pointer, size_t,krb5_pointer,size_t, krb5_checksum FAR * ));
38 extern long INTERFACE mit_des_cbc_cksum
39 PROTOTYPE((krb5_octet *, krb5_octet *, long , mit_des_key_schedule ,
42 extern int INTERFACE mit_des_ecb_encrypt
43 PROTOTYPE((unsigned long *, unsigned long *, mit_des_key_schedule , int ));
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,
52 extern krb5_error_code INTERFACE mit_des_finish_random_key
53 PROTOTYPE(( krb5_pointer *));
56 extern krb5_error_code INTERFACE mit_des_finish_key
57 PROTOTYPE(( krb5_encrypt_block FAR *));
60 extern krb5_error_code INTERFACE mit_des_init_random_key
61 PROTOTYPE(( const krb5_keyblock *, krb5_pointer *));
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 ));
68 extern int INTERFACE mit_des_key_sched
69 PROTOTYPE((mit_des_cblock , mit_des_key_schedule ));
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 *));
84 extern krb5_error_code INTERFACE mit_des_process_key
85 PROTOTYPE(( krb5_encrypt_block *, const krb5_keyblock *));
88 extern krb5_error_code INTERFACE mit_des_random_key
89 PROTOTYPE(( const krb5_encrypt_block *, krb5_pointer , krb5_keyblock **));
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 *));
97 extern int INTERFACE mit_des_is_weak_key PROTOTYPE((mit_des_cblock ));
100 krb5_error_code mit_des_combine_subkeys
101 PROTOTYPE((const krb5_keyblock *, const krb5_keyblock *,
105 int INTERFACE mit_des_pcbc_encrypt ();
108 int INTERFACE make_key_sched PROTOTYPE((mit_des_cblock, mit_des_key_schedule));
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 ));
123 /* XXX depends on FILE being a #define! */
124 extern void test_set PROTOTYPE((FILE *, const char *, int, const char *, int));
127 #endif /*DES_INTERNAL_DEFS*/