oxidecomputer / offline-keystore

yubihsm-setup replacing the yubico cruft with our own cruft!
Mozilla Public License 2.0
10 stars 1 forks source link

vsss-rs upgrade #239

Open flihp opened 1 month ago

flihp commented 1 month ago

It's a very small crate / API but this is a non-trivial upgrade. Several types that we've serialized in past ceremonies have been removed so we'll need our own types for the serialization and we'll need to be able to transform these types to the ones required by the API.

andrewjstone commented 1 month ago

We've actually stopped upgrading this library in omicron for the time being because newer versions seem to be much more complex in an attempt to become more flexible. Unfortunately this seems to have introduced some major bugs and some of the comments are a a bit concerning.

I'm not actually sure what we should do here long term. We may want to actually switch to a crate that only provides Shamir secret sharing over GF(2^8) without the verifiable bits as we don't actually need those. They are really only relevant for interactive key generation protocols when the dealer isn't trusted.

Crates that only implement shamir should be very small.. This crate looked promising last I looked but I'm no expert. We'd want to get any new crate audited, as we did with vsss_rs. However, I'm not sure that audit is even relevant anymore since the upgrades. Maybe, what we should do is fork vsss_rs from the audited version and strip out everything but the Shamir and GF(2^8) impls and then stick with it. I don't think we'd ever actually need to upgrade, because the functionality is fixed.

andrewjstone commented 1 month ago

Oh, and here is the issue regarding not upgrading: https://github.com/oxidecomputer/omicron/pull/5255