CI / Rustfmt (push) Canceled after 0s
CI / Clippy (push) Canceled after 0s
CI / Test (workspace all features) (push) Canceled after 0s
CI / Test (workspace default features) (push) Canceled after 0s
CI / Test (mytheclipse / bg only) (push) Canceled after 0s
CI / Test (mytheclipse / compute only) (push) Canceled after 0s
CI / Test (mytheclipse / io only) (push) Canceled after 0s
CI / Test (mytheclipse / lifecycle only) (push) Canceled after 0s
CI / Test (mytheclipse / observability only) (push) Canceled after 0s
CI / Test (mytheclipse / resiliency only) (push) Canceled after 0s
CI / Test (mytheclipse / traffic only) (push) Canceled after 0s
CI / Test (mytheclipse-cache / l2-redis) (push) Canceled after 0s
CI / Test (mytheclipse-cache / l1-moka) (push) Canceled after 0s
CI / Test (mytheclipse-cache / default) (push) Canceled after 0s
CI / Test (mytheclipse-config / default) (push) Canceled after 0s
CI / Test (mytheclipse-crypto / default) (push) Canceled after 0s
CI / Test (mytheclipse-event / amqp) (push) Canceled after 0s
CI / Test (mytheclipse-event / nats) (push) Canceled after 0s
CI / Test (mytheclipse-event / default (mem)) (push) Canceled after 0s
CI / Test (mytheclipse-storage / gcs) (push) Canceled after 0s
CI / Test (mytheclipse-storage / s3) (push) Canceled after 0s
CI / Test (mytheclipse-storage / default (local)) (push) Canceled after 0s
CI / Run mytheclipse example (push) Canceled after 0s
CI / Docs check (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse) (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse-cache) (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse-config) (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse-crypto) (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse-event) (push) Canceled after 0s
CI / Cargo package dry-run (mytheclipse-storage) (push) Canceled after 0s
Release / Semantic Release (push) Canceled after 0s
Rename all `corex-cache`, `corex-storage`, `corex-event`, `corex-config`, and `corex-crypto` crates to `mytheclipse-cache`, `mytheclipse-storage`, `mytheclipse-event`, `mytheclipse-config`, and `mytheclipse-crypto` respectively, aligning with the `mytheclipse` root crate naming convention. - Convert root `Cargo.toml` from a package manifest to a workspace manifest with explicit member paths - Update crate names in each `Cargo.toml` and docs.rs URLs - Update all import paths, module doc comments, and error/panic messages from `corex-*` to `mytheclipse-*` across source and README files - Update CI workflow and publish script to reference the new crate names<tool_call></think>chore: rename corex-* crates to mytheclipse-* namespace Rename all `corex-cache`, `corex-storage`, `corex-event`, `corex-config`, and `corex-crypto` crates to `mytheclipse-cache`, `mytheclipse-storage`, `mytheclipse-event`, `mytheclipse-config`, and `mytheclipse-crypto` respectively, aligning with the `mytheclipse` root crate naming convention. - Convert root `Cargo.toml` from a package manifest to a workspace manifest with explicit member paths - Update crate names in each `Cargo.toml` and docs.rs URLs - Update all import paths, module doc comments, and error/panic messages from `corex-*` to `mytheclipse-*` across source and README files - Update CI workflow and publish script to reference the new crate names
37 lines
1.2 KiB
Markdown
37 lines
1.2 KiB
Markdown
# mytheclipse-crypto
|
|
|
|
Safe, one-line security helpers that are easy to get wrong when hand-rolled:
|
|
|
|
- **Argon2id** password hashing & verification (PHC-encoded, RFC 9106-style).
|
|
- **AES-256-GCM** authenticated encryption with a fresh random nonce per op.
|
|
- **JWT** (HS256) token generation & validation.
|
|
- **Key rotation** via `KeyRing` — reads keep working with the previous key
|
|
during a rotation window.
|
|
|
|
## Features
|
|
|
|
- `password` (default) — Argon2id hashing.
|
|
- `encryption` (default) — AES-256-GCM.
|
|
- `tokens` (default) — JSON Web Tokens.
|
|
|
|
Zero features enabled by default? No — all three are on, but each is cheap and
|
|
independent.
|
|
|
|
## Usage
|
|
|
|
```rust
|
|
use mytheclipse_crypto::{PasswordHasher, Encryptor, TokenSigner};
|
|
|
|
let hasher = PasswordHasher::new();
|
|
let hash = hasher.hash("letmein").unwrap();
|
|
assert!(hasher.verify(&hash, "letmein"));
|
|
|
|
let enc = Encryptor::new(&[0u8; 32]);
|
|
let (nonce, ct) = enc.encrypt(b"secret");
|
|
assert_eq!(enc.decrypt(&nonce, &ct).unwrap(), b"secret");
|
|
|
|
let signer = TokenSigner::new("my-secret");
|
|
let token = signer.sign(&serde_json::json!({"sub":"u1"}), std::time::Duration::from_secs(3600)).unwrap();
|
|
assert_eq!(signer.verify(&token).unwrap()["sub"], "u1");
|
|
```
|