1#include <crypt.h> 2#include <unistd.h> 3 4char* __crypt_r(const char*, const char*, struct crypt_data*); 5 6char* crypt(const char* key, const char* salt) { 7 /* This buffer is sufficiently large for all 8 * currently-supported hash types. It needs to be updated if 9 * longer hashes are added. The cast to struct crypt_data * is 10 * purely to meet the public API requirements of the crypt_r 11 * function; the implementation of crypt_r uses the object 12 * purely as a char buffer. */ 13 static char buf[128]; 14 return __crypt_r(key, salt, (struct crypt_data*)buf); 15} 16