An implementation of an auditable key directory

37 releases

0.11.0 Oct 27, 2023
0.9.0 Aug 21, 2023
0.8.9 Mar 15, 2023
0.8.2 Dec 16, 2022
0.2.0 Nov 5, 2021

#35 in Caching

Download history 73/week @ 2023-08-17 83/week @ 2023-08-24 40/week @ 2023-08-31 147/week @ 2023-09-07 121/week @ 2023-09-14 132/week @ 2023-09-21 168/week @ 2023-09-28 150/week @ 2023-10-05 141/week @ 2023-10-12 269/week @ 2023-10-19 199/week @ 2023-10-26 155/week @ 2023-11-02 270/week @ 2023-11-09 143/week @ 2023-11-16 209/week @ 2023-11-23 221/week @ 2023-11-30

869 downloads per month
Used in akd_mysql


11K SLoC

akd Build Status

An implementation of an auditable key directory (also known as a verifiable registry or authenticated dictionary).

Auditable key directories can be used to help provide key transparency for end-to-end encrypted messaging.

This implementation is based off of the protocols described in SEEMless, with ideas incorporated from Parakeet.

This library provides a stateless API for an auditable key directory, meaning that a consumer of this library must provide their own solution for the storage of the entries of the directory.


The API can be found here along with an example for usage. To learn more about the technical details behind how the directory is constructed, see here.


Add the following line to the dependencies of your Cargo.toml:

akd = "0.11"

Minimum Supported Rust Version

Rust 1.51 or higher.

Top-Level Directory Organization

Subfolder On crates.io? Description
akd Main implementation of AKD which a service provider that manages the underlying directory would need to run. A good starting point for diving into this implementation.
akd_core Minimal library consisting of core operations in AKD.
examples Contains various examples for using AKD, along with utilities such as locally verifying audit proofs that are produced by WhatsApp's key transparency deployment. More details are contained here.
xtask Used for running the code coverage pipeline.


The original authors of this code are Evan Au (@afterdusk), Alex Chernyak (@alexme22), Dillon George (@dillonrg), Sean Lawlor (@slawlor), Kevin Lewi (@kevinlewi), Jasleen Malvai (@jasleen1), and Ercan Ozturk (@eozturk1). To learn more about contributing to this project, see this document.


This project is dual-licensed under either the MIT license or the Apache License, Version 2.0. You may select, at your option, one of the above-listed licenses.


~289K SLoC