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
35 changes: 35 additions & 0 deletions CGGMP21_MIGRATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -199,4 +199,39 @@ cargo clean
cargo test
```

## Step 11: Update `Cargo.toml` to use `cggmp24 v0.7.0-alpha.4`
Update version of `cggmp24`:

```toml
[dependencies]
cggmp24 = "0.7.0-alpha.4"
```

## Step 12: New release of `generic-ec`
In this release, a few deps were updated:
* `generic-ec` to `v0.5`
* `key-share` to `v0.7`

If you use one of those dependency directly, make sure to update your `Cargo.toml`:

```toml
[dependencies]
generic-ec = "0.5" # only if you're using
key-share = "0.7" # them directly
```

Although the releases contain breaking changes, they are minimal, you're not likely to encounter
any problems unless you implemented your own `generic_ec::Curve` (in this case, you need to change
implementation of a few traits but that's it). Resolve any errors before proceeding.

## Step 13: Compile and Test

At this point, your project should compile and work perfectly fine with `cggmp24 v0.7.0-alpha.3`.
Make sure it is the case:

```bash
cargo clean
cargo test
```

If it compiles and all tests pass successfully, then you've completed migration!
81 changes: 37 additions & 44 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 7 additions & 7 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@ exclude = [
]

[workspace.dependencies]
cggmp24 = { version = "0.7.0-alpha.3", default-features = false, path = "cggmp24" }
cggmp24-keygen = { version = "0.7.0-alpha.3", path = "cggmp24-keygen" }
key-share = { version = "0.6.1", path = "key-share", default-features = false }
paillier-zk = { version = "0.7.0-alpha.3", path = "paillier-zk", default-features = false }
cggmp24 = { version = "0.7.0-alpha.4", default-features = false, path = "cggmp24" }
cggmp24-keygen = { version = "0.7.0-alpha.4", path = "cggmp24-keygen" }
key-share = { version = "0.7", path = "key-share", default-features = false }
paillier-zk = { version = "0.7.0-alpha.4", path = "paillier-zk", default-features = false }

fast-paillier = { version = "0.3.2", default-features = false }
generic-ec = { version = "0.4.1", default-features = false }
generic-ec-zkp = { version = "0.4.1", default-features = false }
generic-ec = { version = "0.5", default-features = false }
generic-ec-zkp = { version = "0.5", default-features = false }
round-based = { version = "0.4.1", default-features = false }

udigest = { version = "0.2.1", default-features = false }
Expand All @@ -44,7 +44,7 @@ serde_with = { version = "2", default-features = false }
serde_json = "1"
hex = { version = "0.4", default-features = false }

hd-wallet = { version = "0.6", default-features = false }
hd-wallet = { version = "0.7", default-features = false }

generic-tests = "0.1"

Expand Down
6 changes: 5 additions & 1 deletion cggmp24-keygen/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
# CGGMP24 releases

## v0.7.0
Update key generation protocol to follow the latest CGGMP24 paper revision.
* Update key generation protocol to follow the latest CGGMP24 paper revision.
* Add support of `secp384r1` curve [#173]
* Update `generic-ec` dep to `v0.5` [#173]

[#173]: https://github.com/LFDT-Lockness/cggmp21/pull/173

# CGGMP21 releases

Expand Down
2 changes: 1 addition & 1 deletion cggmp24-keygen/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "cggmp24-keygen"
version = "0.7.0-alpha.3"
version = "0.7.0-alpha.4"
edition = "2021"
license = "MIT OR Apache-2.0"
description = "UC-secure DKG implementation based on CGGMP24 paper"
Expand Down
5 changes: 5 additions & 0 deletions cggmp24-keygen/src/security_level.rs
Original file line number Diff line number Diff line change
Expand Up @@ -104,3 +104,8 @@ pub use define_security_level;
#[derive(Clone)]
pub struct SecurityLevel128;
define_security_level!(SecurityLevel128 { kappa_bits: 256 });

/// 192-bits security level
#[derive(Clone)]
pub struct SecurityLevel192;
define_security_level!(SecurityLevel192 { kappa_bits: 48 * 8 });
3 changes: 3 additions & 0 deletions cggmp24/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
Changes:
* All protocols have been updated to follow the latest CGGMP24 paper revision.
* Change big integer backend to be abstract, selectable between rug and num-bigint
* Add support of `secp384r1` curve [#173]

Breaking changes:
* The structure `cggmp24::key_share::AuxInfo` has been updated and consequently `cggmp24::KeyShare`
Expand All @@ -18,10 +19,12 @@ Breaking changes:
* Using HD derivation when signing with presignature is prohibited, as it significantly decreases security.
Read our [blog post][vuln-disclosure] to learn more.
* Big Integer API has been changed
* Update `generic-ec` dep to `v0.5` [#173]

Please refer to the [migration manual](./../CGGMP21_MIGRATION.md) for detailed instructions on how
to upgrade your existing key share data.

[#173]: https://github.com/LFDT-Lockness/cggmp21/pull/173
[vuln-disclosure]: https://www.dfns.co/article/cggmp21-vulnerabilities-patched-and-explained

# CGGMP21 releases
Expand Down
5 changes: 3 additions & 2 deletions cggmp24/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "cggmp24"
version = "0.7.0-alpha.3"
version = "0.7.0-alpha.4"
edition = "2021"
license = "MIT OR Apache-2.0"
description = "TSS ECDSA implementation based on CGGMP24 paper"
Expand Down Expand Up @@ -48,9 +48,10 @@ generic-tests = { workspace = true }
[features]
default = ["std", "backend-num-bigint"]

all-curves = ["curve-secp256k1", "curve-secp256r1", "curve-stark"]
all-curves = ["curve-secp256k1", "curve-secp256r1", "curve-secp384r1", "curve-stark"]
curve-secp256k1 = ["generic-ec/curve-secp256k1", "hd-wallet?/curve-secp256k1"]
curve-secp256r1 = ["generic-ec/curve-secp256r1", "hd-wallet?/curve-secp256r1"]
curve-secp384r1 = ["generic-ec/curve-secp384r1"]
curve-stark = ["generic-ec/curve-stark", "hd-wallet?/curve-stark"]
hd-wallet = ["dep:hd-wallet", "cggmp24-keygen/hd-wallet"]
hd-slip10 = ["hd-wallet/slip10"]
Expand Down
2 changes: 1 addition & 1 deletion cggmp24/src/key_refresh.rs
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ where
R: RngCore + CryptoRng,
M: Mpc<ProtocolMessage = aux_only::Msg<D, L>>,
L: SecurityLevel,
D: Digest<OutputSize = digest::typenum::U32> + Clone + 'static,
D: Digest + Clone + 'static,
{
aux_only::run_aux_gen(
self.i,
Expand Down
Loading
Loading