While it might seem obvious to people familiar with this crate, I am actually confused how to use this crate after just landing on it looking for a constant comparison crate.
What I want to do is:
if password_in_request != password_in_the_config {
bail!("Wrong password");
}
for usual reasons.
I open https://docs.rs/subtle/ , I can see ConstantTimeEq and it is clear I should use ct_eq. But then ... why is it returning Choice? Am I supposed to call .into() on it? It seems so... ? But why can't ct_eq return bool right away by doing that .into() under the hood? Unclear.
So, it seems to me that the documentation can be improved in two ways:
- Please add an idiomatic example on a front page of a correct usage. It will take one short paragraph and give an immediate answer to developers that are just looking for a solution.
- Please somewhere early in the documentation of
Choice explain why: Why does it exist, why can't ct_eq just return bool.
While it might seem obvious to people familiar with this crate, I am actually confused how to use this crate after just landing on it looking for a constant comparison crate.
What I want to do is:
for usual reasons.
I open https://docs.rs/subtle/ , I can see
ConstantTimeEqand it is clear I should usect_eq. But then ... why is it returningChoice? Am I supposed to call.into()on it? It seems so... ? But why can'tct_eqreturnboolright away by doing that.into()under the hood? Unclear.So, it seems to me that the documentation can be improved in two ways:
Choiceexplain why: Why does it exist, why can'tct_eqjust returnbool.