diff --git a/.gitignore b/.gitignore index ea8c4bf..36a351c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -/target +# Cargo +target/ diff --git a/Cargo.lock b/Cargo.lock index 9f0b8b4..4193671 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,12 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "anyhow" +version = "1.0.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc" + [[package]] name = "autocfg" version = "1.1.0" @@ -77,6 +83,7 @@ dependencies = [ name = "crypto-utils" version = "0.2.0" dependencies = [ + "anyhow", "chrono", "hex", "jsonwebtoken", @@ -119,9 +126,9 @@ checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" [[package]] name = "js-sys" -version = "0.3.57" +version = "0.3.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671a26f820db17c2a2750743f1dd03bafd15b98c9f30c7c2628c024c05d73397" +checksum = "c3fac17f7123a73ca62df411b1bf727ccc805daa070338fda671c86dac1bdc27" dependencies = [ "wasm-bindgen", ] @@ -393,9 +400,9 @@ checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" [[package]] name = "unicode-ident" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee" +checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c" [[package]] name = "untrusted" @@ -417,9 +424,9 @@ checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" [[package]] name = "wasm-bindgen" -version = "0.2.80" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27370197c907c55e3f1a9fbe26f44e937fe6451368324e009cba39e139dc08ad" +checksum = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -427,9 +434,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.80" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e04185bfa3a779273da532f5025e33398409573f348985af9a1cbf3774d3f4" +checksum = "5491a68ab4500fa6b4d726bd67408630c3dbe9c4fe7bda16d5c82a1fd8c7340a" dependencies = [ "bumpalo", "lazy_static", @@ -442,9 +449,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.80" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17cae7ff784d7e83a2fe7611cfe766ecf034111b49deb850a3dc7699c08251f5" +checksum = "c441e177922bc58f1e12c022624b6216378e5febc2f0533e41ba443d505b80aa" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -452,9 +459,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.80" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99ec0dc7a4756fffc231aab1b9f2f578d23cd391390ab27f952ae0c9b3ece20b" +checksum = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048" dependencies = [ "proc-macro2", "quote", @@ -465,15 +472,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.80" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744" +checksum = "6a89911bd99e5f3659ec4acf9c4d93b0a90fe4a2a11f15328472058edc5261be" [[package]] name = "web-sys" -version = "0.3.57" +version = "0.3.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283" +checksum = "2fed94beee57daf8dd7d51f2b15dc2bcde92d7a72304cdf662a4371008b71b90" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/Cargo.toml b/Cargo.toml index 4ba8226..2dd03ee 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,4 +24,5 @@ serde = { version = "1.0.137", optional = true } jsonwebtoken = { version = "8.1.1", optional = true } [dev-dependencies] +anyhow = "1.0.57" hex = { version = "0.4.3" } diff --git a/examples/jwt.rs b/examples/jwt.rs new file mode 100644 index 0000000..0afb08e --- /dev/null +++ b/examples/jwt.rs @@ -0,0 +1,21 @@ +use crypto_utils::jsonwebtoken::{Claims, Token}; + +fn main() -> anyhow::Result<()> { + let secret = b"secret"; + let user_id = "1234"; + + // create claims + let claims = Claims::new(user_id, 24); + + // create token + let token = Token::new(secret, claims)?; + + println!("token = `{}`", token.encoded); + + // decode token + let decoded = Token::decode(secret, token.encoded)?; + + println!("user_id = `{}`", decoded.claims.sub); + + Ok(()) +} diff --git a/examples/sha.rs b/examples/sha.rs new file mode 100644 index 0000000..363d718 --- /dev/null +++ b/examples/sha.rs @@ -0,0 +1,19 @@ +use crypto_utils::sha::{CryptographicHash, Algorithm}; + +fn main() { + let input = "This is a input text to be hashed"; + + println!("input = `{input}`"); + + let sha1 = CryptographicHash::hash(Algorithm::SHA1, input.as_bytes()); + + println!("sha1 = `{}`", hex::encode(sha1)); + + let sha256 = CryptographicHash::hash(Algorithm::SHA256, input.as_bytes()); + + println!("sha256 = `{}`", hex::encode(sha256)); + + let sha512 = CryptographicHash::hash(Algorithm::SHA512, input.as_bytes()); + + println!("sha512 = `{}`", hex::encode(sha512)); +}