Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

core-keys — split-key authenticator · protocol

corekeys-protocol

Shared wire logic for core-keys, a split-key hardware authenticator for SSH and FIDO2: the desktop daemon and a dedicated hardware device must both participate in every authentication, and the device explicitly approves each use on its own button and display.

This crate is no_std. It holds the parts of the wire that both sides need:

  • CKVP framing (docs §3) — START/CONT reassembly into logical messages capped at 2048 B (src/ckvp.rs).
  • Pairing — the commit/SAS ceremony (src/pairing.rs).
  • Records — the CBOR record types carried inside a Noise transport message (src/records.rs).

The firmware does not link this crate — it reimplements the same wire in C. Every wire change is a two-sided edit, and the second side lives in core-keys/mule-esp32s3.

Build

cargo test

No hardware needed.

The core-keys repositories

repo what
spec frozen design decisions and the section-numbered co-authorization wire protocol
protocol corekeys-protocol, the shared no_std wire crate
daemon corekeys-daemon, the desktop ssh-agent front end and Noise session owner
mule-esp32s3 ESP-IDF firmware for the protocol mule (LilyGO T-Display-S3)
mechanical 3D-printed enclosures for the boards

License

Dual-licensed under either the Apache License, Version 2.0 or the MIT license, at your option. Unless you state otherwise, any contribution you intentionally submit for inclusion in this work shall be dual-licensed as above, without additional terms or conditions.

Status

Design frozen; M1 (mule bring-up) in progress. Nothing here is fit for real credentials yet.

About

Shared no_std core for core-keys: CKVP framing, pairing SAS, and co-authorization record types

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages