Skip to content

Commit e43db4e

Browse files
authored
docs: CRP-2676 improve rust backend docs (#105)
1 parent 1a9a2fd commit e43db4e

File tree

9 files changed

+218
-406
lines changed

9 files changed

+218
-406
lines changed

.github/workflows/backend-rust.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ jobs:
2727
export CARGO_TERM_COLOR=always # ensure output has colors
2828
cargo build --release --target wasm32-unknown-unknown -p ic-vetkeys-manager-canister -p ic-vetkeys-encrypted-maps-canister
2929
cargo test
30+
cargo test --doc
3031
cargo-test-backend-darwin:
3132
runs-on: macos-15
3233
steps:
@@ -40,3 +41,4 @@ jobs:
4041
export CARGO_TERM_COLOR=always # ensure output has colors
4142
cargo build --release --target wasm32-unknown-unknown -p ic-vetkeys-manager-canister -p ic-vetkeys-encrypted-maps-canister
4243
cargo test
44+
cargo test --doc

README.md

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,52 @@
1-
# VetKeys
1+
# vetKeys
22

33
> [!IMPORTANT]
44
> These support libraries are under active development and are subject to change. Access to the repositories has been opened to allow for early feedback. Check back regularly for updates.
55
>
66
> Please share your feedback on the [developer forum](https://forum.dfinity.org/t/threshold-key-derivation-privacy-on-the-ic/16560/179).
77
8-
This repository contains a set of tools designed to help canister developers as well as frontend developers integrate **VetKeys** into their Internet Computer (ICP) applications.
8+
This repository contains a set of tools designed to help canister developers as well as frontend developers integrate **vetKeys** into their Internet Computer (ICP) applications.
99

10-
**VetKeys** – Verifiable Encrypted Threshold Keys – on the Internet Computer addresses the fundamental challenge of storing secrets on-chain by allowing cryptographic key derivation without exposing private keys to anyone but the user. By leveraging **threshold cryptography**, VetKeys make it possible to generate, transport, and use encrypted keys securely, unlocking **privacy-preserving smart contracts** and **externally verifiable randomness**.
10+
**vetKeys** – Verifiable Encrypted Threshold Keys – on the Internet Computer addresses the fundamental challenge of storing secrets on-chain by allowing cryptographic key derivation without exposing private keys to anyone but the user. By leveraging **threshold cryptography**, vetKeys make it possible to generate, transport, and use encrypted keys securely, unlocking **privacy-preserving smart contracts** and **externally verifiable randomness**.
1111

12-
In slightly more detail, VetKeys enables use cases such as:
12+
In slightly more detail, vetKeys enables use cases such as:
1313

1414
- **Decentralized key management**, secure threshold key derivation without relying on a traditional PKI - only the user knows the key.
1515
- **Threshold BLS Signatures**, enabling secure, decentralized signing of messages.
1616
- **Identity Based Encryption (IBE)**, enabling secure communication between users without exchanging public keys.
1717
- **Verifiable Random Beacons**, providing a secure source of verifiable randomness for decentralized applications.
18-
- **Smart contract defined VetKeys**, defining the constraints for obtaining derived keys/BLS signatures/verifiable randomness.
18+
- **Smart contract defined vetKeys**, defining the constraints for obtaining derived keys/BLS signatures/verifiable randomness.
1919

20-
The management canister API for VetKeys exposes two endpoints, one for retrieving a public key and another one for deriving encrypted keys.
20+
The management canister API for vetKeys exposes two endpoints, one for retrieving a public key and another one for deriving encrypted keys.
2121

2222
```
2323
vetkd_public_key : (vetkd_public_key_args) -> (vetkd_public_key_result);
2424
vetkd_derive_key : (vetkd_derive_key_args) -> (vetkd_derive_key_result);
2525
```
2626

27-
For more documentation on VetKeys and the management canister API, see the [VetKeys documentation](https://internetcomputer.org/docs/building-apps/network-features/encryption/vetkeys).
27+
For more documentation on vetKeys and the management canister API, see the [vetKeys documentation](https://internetcomputer.org/docs/building-apps/network-features/encryption/vetkeys).
2828

2929
## Key Features
3030

31-
### **1. [VetKeys Backend Library](./backend/rs/ic_vetkeys)** - Supports canister developers
31+
### **1. [vetKeys Backend Library](./frontend/rs/ic_vetkeys)** - Supports canister developers
3232

33-
Tools to help canister developers integrate VetKeys into their Internet Computer (ICP) applications.
33+
Tools to help canister developers integrate vetKeys into their Internet Computer (ICP) applications.
3434

35-
- **[KeyManager](./backend/rs/ic_vetkeys/src/key_manager)** – a library for deriving and managing encrypted cryptographic keys.
36-
- **[EncryptedMaps](./backend/rs/ic_vetkeys/src/encrypted_maps)** – a library for encrypting using vetkeys, and securely storing and sharing encrypted key-value pairs.
35+
- **[KeyManager](https://docs.rs/ic-vetkeys/latest/key_manager/struct.KeyManager.html)** – a library for deriving and managing encrypted cryptographic keys.
36+
- **[EncryptedMaps](https://docs.rs/ic-vetkeys/latest/encrypted_maps/struct.EncryptedMaps.html)** – a library for encrypting using vetkeys, and securely storing and sharing encrypted key-value pairs.
37+
- **[Utils](https://docs.rs/ic-vetkeys/latest/)** – Utility functions for working with vetKeys.
3738

38-
### **2. [VetKeys Frontend Library](./frontend/ic_vetkeys)** - Supports frontend developers
39+
### **2. [vetKeys Frontend Library](./frontend/ic_vetkeys)** - Supports frontend developers
3940

4041
Tools for frontend developers to interact with VetKD enabled canisters.
4142

4243
- **[KeyManager](https://5lfyp-mqaaa-aaaag-aleqa-cai.icp0.io/classes/_dfinity_vetkeys_key_manager.KeyManager.html)** – Facilitates interaction with a KeyManager-enabled canister.
4344
- **[EncryptedMaps](https://5lfyp-mqaaa-aaaag-aleqa-cai.icp0.io/classes/_dfinity_vetkeys_encrypted_maps.EncryptedMaps.html)** – Facilitates interaction with a EncryptedMaps-enabled canister.
44-
- **[Utils](https://5lfyp-mqaaa-aaaag-aleqa-cai.icp0.io/modules/_dfinity_vetkeys.html)** – Utility functions for working with VetKeys.
45+
- **[Utils](https://5lfyp-mqaaa-aaaag-aleqa-cai.icp0.io/modules/_dfinity_vetkeys.html)** – Utility functions for working with vetKeys.
4546

46-
### **3. VetKeys Password Manager** - Example application
47+
### **3. vetKeys Password Manager** - Example application
4748

48-
The **VetKey Password Manager** is an example application demonstrating how to use VetKeys and Encrypted Maps to build a secure, decentralized password manager on the Internet Computer (IC). This application allows users to create password vaults, store encrypted passwords, and share vaults with other users via their Internet Identity Principal.
49+
The **VetKey Password Manager** is an example application demonstrating how to use vetKeys and Encrypted Maps to build a secure, decentralized password manager on the Internet Computer (IC). This application allows users to create password vaults, store encrypted passwords, and share vaults with other users via their Internet Identity Principal.
4950

5051
The example application is available in two versions:
5152

backend/rs/ic_vetkeys/README.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
1-
# Internet Computer (IC) VetKeys
1+
# Internet Computer (IC) vetKeys
2+
3+
This crate contains a set of tools designed to help canister developers integrate **vetKeys** into their Internet Computer (ICP) applications.
24

35
> [!IMPORTANT]
46
> These support libraries are under active development and are subject to change. Access to the repositories has been opened to allow for early feedback. Check back regularly for updates.
57
>
68
> Please share your feedback on the [developer forum](https://forum.dfinity.org/t/threshold-key-derivation-privacy-on-the-ic/16560/179).
79
8-
This crate contains a set of tools designed to help canister developers integrate **VetKeys** into their Internet Computer (ICP) applications.
9-
10-
## Utilities for obtaining and decrypting verifiably-encrypted keys via the Internet Computer's proposed vetKD system API. The API is located in the crate root.
10+
## [Key Manager](https://docs.rs/ic-vetkeys/latest/key_manager/struct.KeyManager.html)
11+
A canister library for derivation of encrypted vetkeys from arbitrary strings. It can be used in combination with the [frontend key manager library](https://5lfyp-mqaaa-aaaag-aleqa-cai.icp0.io/classes/_dfinity_vetkeys_key_manager.KeyManager.html).
1112

12-
## [Encrypted Maps](./src/encrypted_maps/README.md)
13-
An efficient canister library facilitating access control and encrypted storage for a collection of maps contatining key-value pairs. It can be used in combination with the [frontend encrypted maps library](https://github.com/dfinity/vetkd-devkit/blob/main/frontend/ic_vetkeys/src/encrypted_maps/README.md).
13+
## [Encrypted Maps](https://docs.rs/ic-vetkeys/latest/encrypted_maps/struct.EncryptedMaps.html)
14+
An efficient canister library facilitating access control and encrypted storage for a collection of maps contatining key-value pairs. It can be used in combination with the [frontend encrypted maps library](https://5lfyp-mqaaa-aaaag-aleqa-cai.icp0.io/classes/_dfinity_vetkeys_encrypted_maps.EncryptedMaps.html).
1415

15-
## [Key Manager](./src/key_manager/README.md)
16-
A canister library for derivation of encrypted vetkeys from arbitrary strings. It can be used in combination with the [frontend key manager library](https://github.com/dfinity/vetkd-devkit/blob/main/frontend/ic_vetkeys/src/encrypted_maps/README.md).
16+
## [Utils](https://docs.rs/ic-vetkeys/latest/)
17+
For obtaining and decrypting verifiably-encrypted threshold keys via the Internet Computer vetKD system API. The API is located in the crate root.

backend/rs/ic_vetkeys/src/encrypted_maps/README.md

Lines changed: 0 additions & 162 deletions
This file was deleted.

0 commit comments

Comments
 (0)