Expand description
§altcha
ALTCHA Proof-of-Work v2 implementation in Rust.
This crate provides server-side challenge creation and verification as well as client-side challenge solving for the ALTCHA PoW v2 protocol.
§Quick start
use altcha::{
CreateChallengeOptions, SolveChallengeOptions, VerifySolutionOptions,
create_challenge, solve_challenge, verify_solution,
};
// Server: create a challenge
let options = CreateChallengeOptions {
algorithm: "PBKDF2/SHA-256".to_string(),
cost: 5000,
hmac_signature_secret: Some("my-secret".to_string()),
..Default::default()
};
let challenge = create_challenge(options).unwrap();
// Client: solve the challenge
let solution = solve_challenge(SolveChallengeOptions::new(&challenge))
.unwrap()
.expect("solution not found within timeout");
// Server: verify the solution
let result = verify_solution(VerifySolutionOptions::new(
&challenge,
&solution,
"my-secret",
))
.unwrap();
assert!(result.verified);Re-exports§
pub use error::Error;pub use error::Result;pub use types::Challenge;pub use types::ChallengeParameters;pub use types::CreateChallengeOptions;pub use types::HmacAlgorithm;pub use types::Payload;pub use types::Solution;pub use types::ServerSignaturePayload;pub use types::ServerSignatureVerificationData;pub use types::SolveChallengeOptions;pub use types::VerifySolutionOptions;pub use types::VerifySolutionResult;pub use types::VerifyServerSignatureResult;
Modules§
Functions§
- create_
challenge - Creates a new ALTCHA PoW v2 challenge.
- parse_
verification_ data - Parses a URL-encoded
verificationDatastring into aServerSignatureVerificationDatastruct. - sign_
challenge - Signs challenge parameters and returns a
Challengewith a signature. - solve_
challenge - Solves a challenge by iterating counter values until the derived key matches the required prefix.
- verify_
fields_ hash - Verifies a hash of selected form fields against an expected hex digest.
- verify_
server_ signature - Verifies a
ServerSignaturePayloadissued by ALTCHA Sentinel. - verify_
solution - Verifies a submitted solution against a challenge.