2024-08-21 22:25:09 +02:00
2024-08-21 21:38:32 +02:00
2024-08-21 21:45:15 +02:00
2024-08-21 21:52:59 +02:00
2024-08-19 01:11:58 +02:00
2024-08-21 22:25:09 +02:00
2024-08-21 19:02:39 +02:00
2024-08-21 22:25:09 +02:00

Community ALTCHA Rust Library Build & test

Community implementation of the Altcha library in Rust for your own server applications to create and validate challenges and responses.


Setup

[dependencies]
altcha-lib-rs = { version = "1.0", features = ["json"] }

Example

use altcha_lib_rs::{create_challenge, verify_json_solution, 
                    Payload, Challenge, ChallengeOptions};

// create a challenge
let challenge = create_challenge(ChallengeOptions {
    hmac_key: "super-secret",
    expires: Some(Utc::now() + chrono::TimeDelta::minutes(1)),
    ..Default::default()
}).expect("should be ok");

// transmit the challenge to the client and let the clint solve it
let res = solve_challenge(&challenge.challenge, &challenge.salt, None, None, 0)
    .expect("need to be solved");
// pack the solution into a json string
let payload = Payload {
    algorithm: challenge.algorithm,
    challenge: challenge.challenge,
    number: res,
    salt: challenge.salt,
    signature: challenge.signature,
    took: None,
};
let string_payload = serde_json::to_string(&payload).unwrap();

// receive the solution from the client and verify it
verify_json_solution(&string_payload, "super-secret", true).expect("should be verified");
Description
Community implementation of the ALTCHA library in Rust for your own server application to create and validate challenges and responses.
Readme Apache-2.0 120 KiB
Languages
Rust 100%