google / google/go-tpm-tools

[KeyManager] Decouple KEM and Binding key algorithms

Open
#673 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
309
Forks
118
Avg merge
1d 16h
Merged PRs (30d)
33

Description

The `GenerateKEM` FFI and its associated internal structure currently track a single algorithm.

```rust
pub unsafe extern "C" fn key_manager_generate_kem_keypair(
algo_ptr: *const u8,
algo_len: usize,
binding_pubkey: *const u8,
binding_pubkey_len: usize,
expiry_secs: u64,
out_uuid: *mut u8,
out_pubkey: *mut u8,
out_pubkey_len: usize,
)
```
This tightly couples the DHKEM and HPKE operations to a single algorithm type. We need to decouple them so that the crypto operation algorithms can evolve independently of each other.

Contributor guide

Open the contributing guide

Research direction

Start with the GenerateKEM FFI, especially key_manager_generate_kem_keypair, and trace the associated internal structure that stores the algorithm. Determine how the DHKEM and HPKE algorithm inputs are currently coupled and define separate inputs for them. Done means the two crypto operation algorithms can evolve independently while preserving the key-generation interface behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cryptography, security
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.