crates/nornir-auth-apikey/Cargo.toml
[package]
name = "nornir-auth-apikey"
version = "0.1.1"
edition = "2021"
authors = ["Ignalina ApS"]
description = "Hashed static API-key auth PROVIDER for the nordisk servers — verifies a presented key against a store of SHA-256-HASHED keys (hashed-at-rest, distinct from `nornir-auth-bearer`'s single plaintext secret). Enables rotating / multi-tenant key stores where the plaintext key is never persisted. Implements the shared `nornir_service::AuthProvider` seam via `verify_bearer`. REUSES the shared primitives (`nornir-hash::sha256_hex` for the digest, `nornir_service::token_matches` for the constant-time compare) — no crypto/HTTP of its own, so it is a tiny provider every tier can pin cheaply. Consumed by holger (reference impl), korp, dwarves."
license = "MIT OR Apache-2.0"
repository = "https://git.gunnar.rs/nordisk/edda"
keywords = ["auth", "api-key", "hashed", "grpc", "tonic"]
categories = ["authentication"]
[lib]
name = "nornir_auth_apikey"
[dependencies]
# The ONE shared auth-provider seam.
nornir-service = { version = "0.1.5", path = "../nornir-service", features = ["auth-provider"] }
tonic = { version = "0.14", default-features = false }
# REUSE the shared SHA-256 primitive (Law #1/#5) — the API key is hashed with the
# same `sha256_hex` every content-addressed store uses; the plaintext is never
# stored. No twin hashing here.
nornir-hash = { version = "0.1.0", path = "../nornir-hash" }
log = "0.4"
[dev-dependencies]
tokio = { version = "1", features = ["macros", "rt"] }