1 /*
2  * Written by Solar Designer <solar at openwall.com> in 2000-2011.
3  * No copyright is claimed, and the software is hereby placed in the public
4  * domain.  In case this attempt to disclaim copyright and place the software
5  * in the public domain is deemed null and void, then the software is
6  * Copyright (c) 2000-2011 Solar Designer and it is hereby released to the
7  * general public under the following terms:
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted.
11  *
12  * There's ABSOLUTELY NO WARRANTY, express or implied.
13  *
14  * See crypt_blowfish.c for more information.
15  */
16 
17 #ifndef _CRYPT_BLOWFISH_H
18 #define _CRYPT_BLOWFISH_H
19 
20 #ifndef __GNUC__
21 #undef __const
22 #define __const const
23 #endif
24 
25 extern char *bcrypt(__const char *key, __const char *setting);
26 extern char *_crypt_r(__const char *key, __const char *setting, void *data);
27 
28 #ifndef __SKIP_OW
29 extern char *crypt_rn(__const char *key, __const char *setting,
30 	void *data, int size);
31 extern char *crypt_ra(__const char *key, __const char *setting,
32 	void **data, int *size);
33 extern char *bcrypt_gensalt(__const char *prefix, unsigned long count,
34 	__const char *input, int size);
35 extern char *crypt_gensalt_rn(__const char *prefix, unsigned long count,
36 	__const char *input, int size, char *output, int output_size);
37 extern char *crypt_gensalt_ra(__const char *prefix, unsigned long count,
38 	__const char *input, int size);
39 #endif
40 
41 extern int _crypt_output_magic(const char *setting, char *output, int size);
42 extern char *_crypt_blowfish_rn(const char *key, const char *setting,
43 	char *output, int size);
44 extern char *_crypt_gensalt_blowfish_rn(const char *prefix,
45 	unsigned long count,
46 	const char *input, int size, char *output, int output_size);
47 extern unsigned char _crypt_itoa64[];
48 extern char *_crypt_gensalt_traditional_rn(const char *prefix,
49 	unsigned long count,
50 	const char *input, int size, char *output, int output_size);
51 extern char *_crypt_gensalt_extended_rn(const char *prefix,
52 	unsigned long count,
53 	const char *input, int size, char *output, int output_size);
54 extern char *_crypt_gensalt_md5_rn(const char *prefix, unsigned long count,
55 	const char *input, int size, char *output, int output_size);
56 
57 #endif
58