summaryrefslogtreecommitdiff
path: root/src/misc/crypt_r.c
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2012-08-10 00:20:00 -0400
committerRich Felker <dalias@aerifal.cx>2012-08-10 00:20:00 -0400
commita02bf5fc508c32e8617ff0528d1cc89ed56e3d03 (patch)
treef4d8201b7308ad5488c383ae7e447a761107387c /src/misc/crypt_r.c
parent2f437040e7911d9bef239588ea7ed6f4b9102922 (diff)
downloadmusl-a02bf5fc508c32e8617ff0528d1cc89ed56e3d03.tar.gz
musl-a02bf5fc508c32e8617ff0528d1cc89ed56e3d03.tar.bz2
musl-a02bf5fc508c32e8617ff0528d1cc89ed56e3d03.tar.xz
musl-a02bf5fc508c32e8617ff0528d1cc89ed56e3d03.zip
add blowfish hash support to crypt
there are still some discussions going on about tweaking the code, but at least thing brings us to the point of having something working in the repository. hopefully the remaining major hashes (md5,sha) will follow soon.
Diffstat (limited to 'src/misc/crypt_r.c')
-rw-r--r--src/misc/crypt_r.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/misc/crypt_r.c b/src/misc/crypt_r.c
index d16ab48d..f4716d6f 100644
--- a/src/misc/crypt_r.c
+++ b/src/misc/crypt_r.c
@@ -5,19 +5,19 @@ 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_r(const char *key, const char *salt, struct crypt_data *data)
{
char *output = (char *)data;
+ if (salt[0] == '$' && salt[1] && salt[2]) {
#if 0
- /* MD5 or SHA? */
- if (salt[0] == '$' && salt[1] && salt[2] == '$') {
- if (salt[1] == '1')
- return __crypt_md5((char *)data, key, salt);
- else
- return "x";
- }
+ if (salt[1] == '1' && salt[2] == '$')
+ return __crypt_md5(key, salt, output);
#endif
+ if (salt[1] == '2' && salt[3] == '$')
+ return __crypt_blowfish(key, salt, output);
+ }
return __crypt_des(key, salt, output);
}