crates/nornir-identity-session/Cargo.toml
[package]
name = "nornir-identity-session"
version = "0.1.1"
edition = "2021"
authors = ["Ignalina ApS"]
description = "Sessions, invites and step-up for the nordisk servers, one copy for every product (A34 M-5): session revocation floors, single-use hashed invites that never make an admin, the step-up window and the user-verified step-up of a person's own passkey over a challenge the server issued. Storage, clock and audit stay the product's; every feature is off by default."
license = "MIT OR Apache-2.0"
repository = "https://git.gunnar.rs/nordisk/edda"
keywords = ["auth", "session", "invite", "step-up", "passkey"]
categories = ["authentication"]
[lib]
name = "nornir_identity_session"
[features]
default = []
# `session` — revocation floors under a session's auth time (one person's
# logout, or everyone's), persisted by the product as it likes (serde), and the
# `__Host-` HttpOnly session cookie (render + duplicate-refusing read, A34-38).
session = ["dep:serde"]
# `invites` — single-use enrolment invites: the secret is never stored (its
# blake3 hash is the id), an expired, used, revoked or unknown invite is refused
# with ONE answer, and an invite never grants an admin.
invites = ["dep:serde", "dep:blake3", "dep:base64", "dep:getrandom"]
# `step-up` — the step-up window and code, the user-verification policy (the
# server decides, a relay may only raise it: A34-12), and the verification of a
# person's OWN passkey over a fresh challenge (Gunnar's two copies, A34-21).
step-up = ["dep:nornir-auth-webauthn"]
[dependencies]
nornir-auth-webauthn = { version = "0.2.1", path = "../nornir-auth-webauthn", default-features = false, features = ["ceremony"], optional = true }
serde = { version = "1", features = ["derive"], optional = true }
blake3 = { version = "1", optional = true }
base64 = { version = "0.23", optional = true }
getrandom = { version = "0.4", optional = true }
[dev-dependencies]
p256 = { version = "0.14", features = ["ecdsa"] }
sha2 = "0.11"
serde_json = "1"