[PATCH] chpasswd: support -c argument and respect DEFAULT_PASSWD_ALGO

Tito farmatito at tiscali.it
Tue Dec 22 20:05:07 UTC 2015



On 12/22/2015 08:32 PM, Isaac Dunham wrote:
> On Tue, Dec 22, 2015 at 02:32:49PM +0100, Tito wrote:
>>
>>
>> On 12/18/2015 07:00 PM, Denys Vlasenko wrote:
>>> On Fri, Dec 18, 2015 at 2:45 PM, Pascal Bach <pascal.bach at siemens.com> wrote:
>>>> @@ -77,15 +79,14 @@ int chpasswd_main(int argc UNUSED_PARAM, char **argv)
>>>>
>>>>                  free_me = NULL;
>>>>                  if (!(opt & OPT_ENC)) {
>>>> -                       char salt[sizeof("$N$XXXXXXXX")];
>>>> +                       char salt[MAX_PW_SALT_LEN];
>>>>
>>>> -                       crypt_make_salt(salt, 1);
>>>>                          if (opt & OPT_MD5) {
>>>> -                               salt[0] = '$';
>>>> -                               salt[1] = '1';
>>>> -                               salt[2] = '$';
>>>> -                               crypt_make_salt(salt + 3, 4);
>>>> +                               /* Force MD5 if the -m flag is set */
>>>> +                               algo = "md5";
>>>>                          }
>>>> +
>>>> +                       crypt_make_pw_salt(salt, algo);
>>>
>>> crypt_make_pw_salt() accepts lowercase algos, such as "md5".
>>> chpasswd examples I googled use uppercase: "MD5".
>>> So, this won't be compatible.
>>>
>>>>                          free_me = pass = pw_encrypt(pass, salt, 0);
>>>>                  }
>> Hi,
>> maybe we could change crypt_make_salt to accept lowercase and uppercase algo
>> arguments to keep compatibility with both ways
>
> It looks to me like pw_encrypt(pass, str_tolower(salt), 0); would be
> simpler and perhaps smaller.
> Alternately, you could call that in crypt_make_salt() if you want to
> make it consistent.
>
> HTH,
> Isaac Dunham

Hi,

Denys already fixed it in git, I should have checked it before writing.
Sorry for the noise.

Ciao,
Tito


More information about the busybox mailing list