Skip to content

Commit a767d8b

Browse files
Use --hashing-algorithm sha512 in a test
1 parent 3ae245f commit a767d8b

2 files changed

Lines changed: 35 additions & 4 deletions

File tree

src/commands.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -915,7 +915,7 @@ pub fn declare_user(client: APIClient, command_args: &ArgMatches) -> ClientResul
915915
.unwrap();
916916
let salt = password_hashing::salt();
917917
let hash = hashing_algo.salt_and_hash(&salt, password).unwrap();
918-
String::from_utf8_lossy(hash.as_slice()).to_string()
918+
String::from_utf8(hash).unwrap().to_string()
919919
} else {
920920
provided_hash.to_string()
921921
};

tests/users_tests.rs

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,12 @@ fn test_list_users_with_table_styles() -> Result<(), Box<dyn std::error::Error>>
8686
}
8787

8888
#[test]
89-
fn test_create_user() -> Result<(), Box<dyn std::error::Error>> {
90-
let username = "test_create_user.1";
91-
let password = "pa$$w0rd///8*9";
89+
fn test_create_user_using_sha256_for_hashing() -> Result<(), Box<dyn std::error::Error>> {
90+
let username = "test_create_user_using_sha256_for_hashing.1";
91+
let password = "pa$$w0rd_9w798f__sd8f7";
92+
93+
run_succeeds(["users", "delete", "--name", username, "--idempotently"]);
94+
9295
run_succeeds([
9396
"users",
9497
"declare",
@@ -107,5 +110,33 @@ fn test_create_user() -> Result<(), Box<dyn std::error::Error>> {
107110

108111
run_succeeds(["list", "users"]).stdout(predicate::str::contains(username).not());
109112

113+
Ok(())
114+
}
115+
116+
#[test]
117+
fn test_create_user_using_sha512_for_hashing() -> Result<(), Box<dyn std::error::Error>> {
118+
let username = "test_create_user_using_sha512_for_hashing.1";
119+
let password = "pa$$w0rd///8*9";
120+
121+
run_succeeds(["users", "delete", "--name", username, "--idempotently"]);
122+
123+
run_succeeds([
124+
"users",
125+
"declare",
126+
"--name",
127+
username,
128+
"--password",
129+
password,
130+
"--hashing-algorithm",
131+
"sha512",
132+
"--tags",
133+
"administrator",
134+
]);
135+
// unless the node is also configured to use SHA-512, we cannot try this
136+
// password the same way we do in the SHA-256 version, by passing in --username and --password
137+
run_succeeds(["users", "delete", "--name", username]);
138+
139+
run_succeeds(["list", "users"]).stdout(predicate::str::contains(username).not());
140+
110141
Ok(())
111142
}

0 commit comments

Comments
 (0)