Selaa lähdekoodia

fix(dashboard): change hash from sha3_256 to sha256

old version os has no support for it
Zaiming Shi 4 vuotta sitten
vanhempi
commit
6ca6d60858

+ 4 - 4
apps/emqx_dashboard/src/emqx_dashboard_admin.erl

@@ -171,7 +171,7 @@ check(_, undefined) ->
 check(Username, Password) ->
     case lookup_user(Username) of
         [#?ADMIN{pwdhash = <<Salt:4/binary, Hash/binary>>}] ->
-            case Hash =:= sha3_hash(Salt, Password) of
+            case Hash =:= sha256(Salt, Password) of
                 true  -> ok;
                 false -> {error, <<"BAD_USERNAME_OR_PASSWORD">>}
             end;
@@ -206,10 +206,10 @@ destroy_token_by_username(Username, Token) ->
 
 hash(Password) ->
     SaltBin = emqx_dashboard_token:salt(),
-    <<SaltBin/binary, (sha3_hash(SaltBin, Password))/binary>>.
+    <<SaltBin/binary, (sha256(SaltBin, Password))/binary>>.
 
-sha3_hash(SaltBin, Password) ->
-    crypto:hash('sha3_256', <<SaltBin/binary, Password/binary>>).
+sha256(SaltBin, Password) ->
+    crypto:hash('sha256', <<SaltBin/binary, Password/binary>>).
 
 add_default_user() ->
     add_default_user(binenv(default_username), binenv(default_password)).

+ 2 - 2
apps/emqx_dashboard/test/emqx_dashboard_SUITE.erl

@@ -150,11 +150,11 @@ t_cli(_Config) ->
     emqx_dashboard_cli:admins(["add", "username", "password"]),
     [#?ADMIN{ username = <<"username">>, pwdhash = <<Salt:4/binary, Hash/binary>>}] =
         emqx_dashboard_admin:lookup_user(<<"username">>),
-    ?assertEqual(Hash, crypto:hash(sha3_256, <<Salt/binary, <<"password">>/binary>>)),
+    ?assertEqual(Hash, crypto:hash(sha256, <<Salt/binary, <<"password">>/binary>>)),
     emqx_dashboard_cli:admins(["passwd", "username", "newpassword"]),
     [#?ADMIN{username = <<"username">>, pwdhash = <<Salt1:4/binary, Hash1/binary>>}] =
         emqx_dashboard_admin:lookup_user(<<"username">>),
-    ?assertEqual(Hash1, crypto:hash(sha3_256, <<Salt1/binary, <<"newpassword">>/binary>>)),
+    ?assertEqual(Hash1, crypto:hash(sha256, <<Salt1/binary, <<"newpassword">>/binary>>)),
     emqx_dashboard_cli:admins(["del", "username"]),
     [] = emqx_dashboard_admin:lookup_user(<<"username">>),
     emqx_dashboard_cli:admins(["add", "admin1", "pass1"]),