|
1 | | -# VetKeys |
| 1 | +# vetKeys |
2 | 2 |
|
3 | 3 | > [!IMPORTANT] |
4 | 4 | > 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. |
5 | 5 | > |
6 | 6 | > Please share your feedback on the [developer forum](https://forum.dfinity.org/t/threshold-key-derivation-privacy-on-the-ic/16560/179). |
7 | 7 |
|
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. |
9 | 9 |
|
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**. |
11 | 11 |
|
12 | | -In slightly more detail, VetKeys enables use cases such as: |
| 12 | +In slightly more detail, vetKeys enables use cases such as: |
13 | 13 |
|
14 | 14 | - **Decentralized key management**, secure threshold key derivation without relying on a traditional PKI - only the user knows the key. |
15 | 15 | - **Threshold BLS Signatures**, enabling secure, decentralized signing of messages. |
16 | 16 | - **Identity Based Encryption (IBE)**, enabling secure communication between users without exchanging public keys. |
17 | 17 | - **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. |
19 | 19 |
|
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. |
21 | 21 |
|
22 | 22 | ``` |
23 | 23 | vetkd_public_key : (vetkd_public_key_args) -> (vetkd_public_key_result); |
24 | 24 | vetkd_derive_key : (vetkd_derive_key_args) -> (vetkd_derive_key_result); |
25 | 25 | ``` |
26 | 26 |
|
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). |
28 | 28 |
|
29 | 29 | ## Key Features |
30 | 30 |
|
31 | | -### **1. [VetKeys Backend Library](./backend/rs/ic_vetkeys)** - Supports canister developers |
| 31 | +### **1. [vetKeys Backend Library](./frontend/rs/ic_vetkeys)** - Supports canister developers |
32 | 32 |
|
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. |
34 | 34 |
|
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. |
37 | 38 |
|
38 | | -### **2. [VetKeys Frontend Library](./frontend/ic_vetkeys)** - Supports frontend developers |
| 39 | +### **2. [vetKeys Frontend Library](./frontend/ic_vetkeys)** - Supports frontend developers |
39 | 40 |
|
40 | 41 | Tools for frontend developers to interact with VetKD enabled canisters. |
41 | 42 |
|
42 | 43 | - **[KeyManager](https://5lfyp-mqaaa-aaaag-aleqa-cai.icp0.io/classes/_dfinity_vetkeys_key_manager.KeyManager.html)** – Facilitates interaction with a KeyManager-enabled canister. |
43 | 44 | - **[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. |
45 | 46 |
|
46 | | -### **3. VetKeys Password Manager** - Example application |
| 47 | +### **3. vetKeys Password Manager** - Example application |
47 | 48 |
|
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. |
49 | 50 |
|
50 | 51 | The example application is available in two versions: |
51 | 52 |
|
|
0 commit comments