|
35 | 35 | #![cfg_attr(all(feature = "alloc", feature = "getrandom"), doc = "```")] |
36 | 36 | #![cfg_attr(not(all(feature = "alloc", feature = "getrandom")), doc = "```ignore")] |
37 | 37 | //! # fn main() -> Result<(), Box<dyn core::error::Error>> { |
| 38 | +//! // NOTE: example requires `getrandom` feature is enabled |
| 39 | +//! |
38 | 40 | //! use argon2::{ |
39 | | -//! password_hash::{PasswordHash, PasswordHasher, PasswordVerifier, phc::Salt}, |
| 41 | +//! password_hash::{PasswordHasher, PasswordVerifier, phc::PasswordHash}, |
40 | 42 | //! Argon2 |
41 | 43 | //! }; |
42 | 44 | //! |
43 | 45 | //! let password = b"hunter42"; // Bad password; don't actually use! |
44 | | -//! let salt = Salt::generate(); // Note: needs the `getrandom` feature of `argon2` enabled |
45 | 46 | //! |
46 | | -//! // Argon2 with default params (Argon2id v19) |
| 47 | +//! // Argon2 with default params (Argon2id v19), generating a random salt |
47 | 48 | //! let argon2 = Argon2::default(); |
48 | 49 | //! |
49 | 50 | //! // Hash password to PHC string ($argon2id$v=19$...) |
50 | | -//! let password_hash = argon2.hash_password(password, &salt)?.to_string(); |
| 51 | +//! let password_hash = argon2.hash_password(password)?.to_string(); |
51 | 52 | //! |
52 | 53 | //! // Verify password against PHC string. |
53 | 54 | //! // |
|
66 | 67 | #![cfg_attr(all(feature = "alloc", feature = "getrandom"), doc = "```")] |
67 | 68 | #![cfg_attr(not(all(feature = "alloc", feature = "getrandom")), doc = "```ignore")] |
68 | 69 | //! # fn main() -> Result<(), Box<dyn core::error::Error>> { |
| 70 | +//! // NOTE: example requires `getrandom` feature is enabled |
| 71 | +//! |
69 | 72 | //! use argon2::{ |
70 | | -//! password_hash::{ |
71 | | -//! phc::{PasswordHash, Salt}, |
72 | | -//! PasswordHasher, PasswordVerifier, |
73 | | -//! }, |
| 73 | +//! password_hash::{PasswordHasher, PasswordVerifier, phc::PasswordHash}, |
74 | 74 | //! Algorithm, Argon2, Params, Version |
75 | 75 | //! }; |
76 | 76 | //! |
77 | 77 | //! let password = b"hunter42"; // Bad password; don't actually use! |
78 | | -//! let salt = Salt::generate(); // Note: needs the `getrandom` feature of `argon2` enabled |
79 | 78 | //! |
80 | 79 | //! // Argon2 with default params (Argon2id v19) and pepper |
81 | 80 | //! let argon2 = Argon2::new_with_secret( |
82 | 81 | //! b"secret pepper", |
83 | 82 | //! Algorithm::default(), |
84 | 83 | //! Version::default(), |
85 | 84 | //! Params::default() |
86 | | -//! ) |
87 | | -//! .unwrap(); |
| 85 | +//! )?; |
88 | 86 | //! |
89 | | -//! // Hash password to PHC string ($argon2id$v=19$...) |
90 | | -//! let password_hash = argon2.hash_password(password, &salt)?.to_string(); |
| 87 | +//! // Hash password to PHC string ($argon2id$v=19$...), generating a random salt |
| 88 | +//! let password_hash = argon2.hash_password(password)?.to_string(); |
91 | 89 | //! |
92 | 90 | //! // Verify password against PHC string. |
93 | 91 | //! // |
@@ -640,13 +638,17 @@ impl CustomizedPasswordHasher<PasswordHash> for Argon2<'_> { |
640 | 638 | #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] |
641 | 639 | cpu_feat_avx2: self.cpu_feat_avx2, |
642 | 640 | } |
643 | | - .hash_password(password, salt) |
| 641 | + .hash_password_with_salt(password, salt) |
644 | 642 | } |
645 | 643 | } |
646 | 644 |
|
647 | 645 | #[cfg(all(feature = "alloc", feature = "password-hash"))] |
648 | 646 | impl PasswordHasher<PasswordHash> for Argon2<'_> { |
649 | | - fn hash_password(&self, password: &[u8], salt: &[u8]) -> password_hash::Result<PasswordHash> { |
| 647 | + fn hash_password_with_salt( |
| 648 | + &self, |
| 649 | + password: &[u8], |
| 650 | + salt: &[u8], |
| 651 | + ) -> password_hash::Result<PasswordHash> { |
650 | 652 | let salt = Salt::new(salt).map_err(|_| password_hash::Error::SaltInvalid)?; |
651 | 653 |
|
652 | 654 | let output_len = self |
@@ -719,7 +721,7 @@ mod tests { |
719 | 721 | let params = Params::new(m_cost, t_cost, p_cost, None).unwrap(); |
720 | 722 | let hasher = Argon2::new(Algorithm::default(), version, params); |
721 | 723 | let hash = hasher |
722 | | - .hash_password(EXAMPLE_PASSWORD, EXAMPLE_SALT) |
| 724 | + .hash_password_with_salt(EXAMPLE_PASSWORD, EXAMPLE_SALT) |
723 | 725 | .unwrap(); |
724 | 726 |
|
725 | 727 | assert_eq!(hash.version.unwrap(), version.into()); |
|
0 commit comments