| Index: fusl/src/crypt/crypt_r.c
|
| diff --git a/fusl/src/crypt/crypt_r.c b/fusl/src/crypt/crypt_r.c
|
| index 5982c4c9abc7db638b9c949c905ad37a03824f02..d7663e3b38b7321271aa16f7b1a86271840bd2ac 100644
|
| --- a/fusl/src/crypt/crypt_r.c
|
| +++ b/fusl/src/crypt/crypt_r.c
|
| @@ -3,30 +3,29 @@
|
|
|
| struct crypt_data;
|
|
|
| -char *__crypt_des(const char *, const char *, char *);
|
| -char *__crypt_md5(const char *, const char *, char *);
|
| -char *__crypt_blowfish(const char *, const char *, char *);
|
| -char *__crypt_sha256(const char *, const char *, char *);
|
| -char *__crypt_sha512(const char *, const char *, char *);
|
| +char* __crypt_des(const char*, const char*, char*);
|
| +char* __crypt_md5(const char*, const char*, char*);
|
| +char* __crypt_blowfish(const char*, const char*, char*);
|
| +char* __crypt_sha256(const char*, const char*, char*);
|
| +char* __crypt_sha512(const char*, const char*, char*);
|
|
|
| -char *__crypt_r(const char *key, const char *salt, struct crypt_data *data)
|
| -{
|
| - /* Per the crypt_r API, the caller has provided a pointer to
|
| - * struct crypt_data; however, this implementation does not
|
| - * use the structure to store any internal state, and treats
|
| - * it purely as a char buffer for storing the result. */
|
| - char *output = (char *)data;
|
| - if (salt[0] == '$' && salt[1] && salt[2]) {
|
| - if (salt[1] == '1' && salt[2] == '$')
|
| - return __crypt_md5(key, salt, output);
|
| - if (salt[1] == '2' && salt[3] == '$')
|
| - return __crypt_blowfish(key, salt, output);
|
| - if (salt[1] == '5' && salt[2] == '$')
|
| - return __crypt_sha256(key, salt, output);
|
| - if (salt[1] == '6' && salt[2] == '$')
|
| - return __crypt_sha512(key, salt, output);
|
| - }
|
| - return __crypt_des(key, salt, output);
|
| +char* __crypt_r(const char* key, const char* salt, struct crypt_data* data) {
|
| + /* Per the crypt_r API, the caller has provided a pointer to
|
| + * struct crypt_data; however, this implementation does not
|
| + * use the structure to store any internal state, and treats
|
| + * it purely as a char buffer for storing the result. */
|
| + char* output = (char*)data;
|
| + if (salt[0] == '$' && salt[1] && salt[2]) {
|
| + if (salt[1] == '1' && salt[2] == '$')
|
| + return __crypt_md5(key, salt, output);
|
| + if (salt[1] == '2' && salt[3] == '$')
|
| + return __crypt_blowfish(key, salt, output);
|
| + if (salt[1] == '5' && salt[2] == '$')
|
| + return __crypt_sha256(key, salt, output);
|
| + if (salt[1] == '6' && salt[2] == '$')
|
| + return __crypt_sha512(key, salt, output);
|
| + }
|
| + return __crypt_des(key, salt, output);
|
| }
|
|
|
| weak_alias(__crypt_r, crypt_r);
|
|
|