Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion rust/vetkeys/basic_bls_signing/backend/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ getrandom = { version = "0.2", features = ["custom"] }
ic-cdk = "0.20.1"
ic-cdk-management-canister = "0.1.1"
ic-stable-structures = "0.6.8"
ic-vetkeys = "0.8.1"
ic-vetkeys = "0.9.0"
serde = "1.0.217"
serde_bytes = "0.11.15"
serde_cbor = "0.11.2"
2 changes: 1 addition & 1 deletion rust/vetkeys/basic_ibe/backend/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ ic-cdk = "0.20.1"
ic-cdk-management-canister = "0.1.1"
ic-dummy-getrandom-for-wasm = "0.1.0"
ic-stable-structures = "0.6.8"
ic-vetkeys = "0.8.1"
ic-vetkeys = "0.9.0"
serde = "1.0.217"
serde_bytes = "0.11.15"
serde_cbor = "0.11.2"
Expand Down
2 changes: 1 addition & 1 deletion rust/vetkeys/basic_timelock_ibe/backend/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ ic-cdk-management-canister = "0.1.1"
ic-cdk-timers = "1.0.0"
ic-dummy-getrandom-for-wasm = "0.1.0"
ic-stable-structures = "0.6.8"
ic-vetkeys = "0.8.1"
ic-vetkeys = "0.9.0"
serde = "1.0.217"
serde_bytes = "0.11.15"
serde_cbor = "0.11.2"
Expand Down
2 changes: 1 addition & 1 deletion rust/vetkeys/password_manager/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ resolver = "2"
ic-cdk = "0.20.1"
ic-cdk-management-canister = "0.1.1"
ic-stable-structures = "0.7.0"
ic-vetkeys = "0.8.1"
ic-vetkeys = "0.9.0"

[profile.release]
lto = true
Expand Down
14 changes: 7 additions & 7 deletions rust/vetkeys/password_manager/backend/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// This canister is a thin wrapper around the `ic-vetkeys` EncryptedMaps
// library. The canister owns the single MemoryManager and hands EncryptedMaps
// the four Memory instances it needs; the `#[init]`/`#[post_upgrade]` and every
// `#[query]`/`#[update]` endpoint are generated by the library macro, which
// guarantees the exposed Candid matches what the `@icp-sdk/vetkeys` frontend
// expects.
//! This canister is a thin wrapper around the `ic-vetkeys` EncryptedMaps
//! library. The canister owns the single MemoryManager and hands EncryptedMaps
//! the four Memory instances it needs; the `#[init]`/`#[post_upgrade]` and every
//! `#[query]`/`#[update]` endpoint are generated by the library macro, which
//! guarantees the exposed Candid matches what the `@icp-sdk/vetkeys` frontend
//! expects.
use ic_stable_structures::memory_manager::{MemoryId, MemoryManager, VirtualMemory};
use ic_stable_structures::DefaultMemoryImpl;
use std::cell::RefCell;
Expand All @@ -25,7 +25,7 @@ fn memory(id: u8) -> Memory {
// it expects: config (which persists the domain separator and vetKD key id),
// access control, shared keys, and the encrypted values.
ic_vetkeys::export_encrypted_maps_canister!(
"encrypted_maps_app",
"password_manager_app",
[memory(0), memory(1), memory(2), memory(3)],
);

Expand Down
2 changes: 1 addition & 1 deletion rust/vetkeys/password_manager_with_metadata/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ icp network stop

An **Encrypted Maps**-enabled Rust canister that stores encrypted passwords together with unencrypted metadata (URLs, tags) in atomic update calls.

> **Note.** A plain Encrypted Maps canister can be generated in one line by the `ic_vetkeys::export_encrypted_maps_canister!(...)` macro — see the [`password_manager`](../password_manager/) example. This example deliberately hand-writes its canister instead: it maintains a custom invariant (every encrypted value has a matching metadata row) and exposes metadata-aware `*_with_metadata` methods. The macro emits a fixed endpoint set — including the plain `insert_encrypted_value`/`remove_encrypted_value` mutators that would bypass and desync the metadata — and offers no way to override or omit them, so it is not a fit here. Reach for the macro when the standard Encrypted Maps interface is enough, and hand-write (as here) when you need to layer your own state on top.
> **Note.** A plain Encrypted Maps canister is generated in one line by the `ic_vetkeys::export_encrypted_maps_canister!(...)` macro — see the [`password_manager`](../password_manager/) example. This example uses the macro's `custom_value_endpoints` form instead, because it maintains a custom invariant: every encrypted value has a matching metadata row. That form generates the stable state, the `#[init]`/`#[post_upgrade]` hooks and the control-plane endpoints (vetKD keys, access control, map-name enumeration), but **none** of the endpoints that read or write encrypted values — so the plain `insert_encrypted_value`/`remove_encrypted_value` mutators, which would write a value with no metadata row and desync the two stores, are never exposed. The canister writes its own `*_with_metadata` endpoints on top of the `with_encrypted_maps`/`with_encrypted_maps_mut` accessors the macro emits, reusing the library's crypto and access-control logic. Reach for the plain form when the standard Encrypted Maps interface is enough, and for `custom_value_endpoints` when you layer your own state on each value.

### Frontend (`frontend/`)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@ ic-cdk = "0.20.1"
ic-cdk-management-canister = "0.1.1"
ic-dummy-getrandom-for-wasm = "0.1.0"
ic-stable-structures = "0.7.2"
ic-vetkeys = "0.8.1"
ic-vetkeys = "0.9.0"
serde = "1.0.217"
serde_cbor = "0.11.2"
Loading
Loading