9c5e62cc47f32ac2f5cdccaf770bff503be836da
[openafs.git] / src / des / des_prototypes.h
1 #ifndef DES_PROTOTYPES_H
2 #define DES_PROTOTYPES_H
3
4 /* misc.c */
5 extern afs_uint32 long_swap_bits(afs_uint32 x);
6 extern afs_uint32 swap_six_bits_to_ansi(afs_uint32 old);
7 extern afs_uint32 swap_four_bits_to_ansi(afs_uint32 old);
8 extern afs_uint32 swap_bit_pos_1(afs_uint32 x);
9 extern afs_uint32 swap_bit_pos_0(afs_uint32 x);
10 extern afs_uint32 swap_bit_pos_0_to_ansi(afs_uint32 x);
11 extern afs_uint32 rev_swap_bit_pos_0(afs_uint32 x);
12 extern afs_uint32 swap_byte_bits(afs_uint32 x);
13 extern int swap_long_bytes_bit_number(afs_uint32 x);
14 #if !defined(KERNEL)
15 extern void test_set(FILE * stream, const char *src, int testbit,
16                      const char *dest, int setbit);
17 #endif
18 extern int des_debug;
19
20 static_inline unsigned char *
21 cblockptr_to_cblock(des_cblock *key) {
22     return (unsigned char *)key;
23 }
24
25 static_inline unsigned char *
26 charptr_to_cblock(char *key) {
27     return (unsigned char *)key;
28 }
29
30 static_inline des_cblock *
31 charptr_to_cblockptr(char *key) {
32     return (unsigned char (*)[])key;
33 }
34
35 /* cbc_encrypt.c */
36 extern afs_int32 des_cbc_encrypt(void * in, void * out,
37                                  afs_int32 length,
38                                  des_key_schedule key, des_cblock * iv,
39                                  int encrypt);
40
41 /* pcbc_encrypt.c */
42 extern afs_int32 des_pcbc_encrypt(void * in, void * out,
43                                   afs_int32 length,
44                                   des_key_schedule key, des_cblock * iv,
45                                   int encrypt);
46
47 /* des.c */
48 extern afs_int32 des_ecb_encrypt(void * clear, void * cipher,
49                                  des_key_schedule schedule,
50                                  int encrypt);
51
52 /* util.c */
53 #if !defined(KERNEL)
54 extern int des_cblock_print_file(des_cblock * x, FILE * fp);
55 #endif
56
57 /* make_*.c */
58 #if !defined(KERNEL)
59 extern void gen(FILE * stream);
60 #endif
61
62 /* weak_key.c */
63 extern int des_is_weak_key(des_cblock key);
64
65 /* key_parity.c */
66 extern void des_fixup_key_parity(des_cblock key);
67 extern int des_check_key_parity(des_cblock key);
68
69 /* cksum.c */
70 extern afs_uint32 des_cbc_cksum(des_cblock * in, des_cblock * out,
71                                 afs_int32 length,
72                                 des_key_schedule key, des_cblock * iv);
73
74 /* quad_cksum.c */
75 extern afs_uint32 des_quad_cksum(unsigned char *in, afs_uint32 * out,
76                                  afs_int32 length, int out_count,
77                                  des_cblock * c_seed);
78
79 /* key_sched.c */
80 extern int afs_des_key_sched(des_cblock k,
81                              des_key_schedule schedule);
82 extern int des_key_sched(des_cblock k, des_key_schedule schedule);
83
84
85 /* strng_to_key.c */
86 extern void des_string_to_key(char *str, des_cblock * key);
87
88 /* new_rnd_key.c */
89 extern int des_random_key(des_cblock key);
90 extern void des_init_random_number_generator(des_cblock key);
91 extern void des_set_random_generator_seed(des_cblock key);
92
93 /* read_pssword.c */
94 extern int des_read_password(des_cblock * k, char *prompt, int verify);
95 extern int des_read_pw_string(char *, int, char *, int);
96
97 #endif