bcrypt.rs
1 /* This file is part of DarkFi (https://dark.fi) 2 * 3 * Copyright (C) 2020-2025 Dyne.org foundation 4 * 5 * This program is free software: you can redistribute it and/or modify 6 * it under the terms of the GNU Affero General Public License as 7 * published by the Free Software Foundation, either version 3 of the 8 * License, or (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU Affero General Public License for more details. 14 * 15 * You should have received a copy of the GNU Affero General Public License 16 * along with this program. If not, see <https://www.gnu.org/licenses/>. 17 */ 18 19 use bcrypt::DEFAULT_COST; 20 21 /// Salt used for the IRC server connection password 22 pub const BCRYPT_PASSWORD_SALT: [u8; 16] = [ 23 0x22, 0x23, 0xff, 0x41, 0x57, 0x47, 0x48, 0xfe, 0xde, 0xca, 0x1c, 0xd1, 0x94, 0xef, 0xcc, 0xaa, 24 ]; 25 26 /// Encrypt the given password with bcrypt-2b 27 pub fn bcrypt_hash_password<P: AsRef<[u8]>>(password: P) -> String { 28 bcrypt::hash_with_salt(password, DEFAULT_COST, BCRYPT_PASSWORD_SALT) 29 .unwrap() 30 .format_for_version(bcrypt::Version::TwoB) 31 }