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