Ver código fonte

Update version to 0.4.0

- Derive the CMZ generator `A` automatically via a RFC 9380
  hash-to-group of the generator.  Applications no longer need to call
  `cmz_group_init` at startup.

- Add `CMZGroup` trait, `cmz_generator_a` function, and curve features
  for the automatic derivation. Ristretto support is enabled by default;
  P-256 and secp256k1 are available through the `p256` and `k256`
  features.

- Depend on `sigma-compiler` 0.3.0, `rand` 0.10, `group` 0.14, `ff` 0.14

- CMZ credential `Point` types must now implement
  `group::prime::PrimeGroup`, `group::GroupEncoding`, and
  `hash2group::FromHash<hash2group::rfc9380::ExpandMsgXmd<sha2::Sha512>>`.
  This combination of traits is now called `CMZGroup`.

- The `rng` parameter in various APIs generated by `cmz` changed from
  type `&mut (impl CryptoRng + RngCore)` to type `&mut (impl CryptoRng +
  Rng)` (due to the update to `rand` 0.10)

- The ability to use `cmz` simultaneously for more than one group was
  broken before, and is now fixed.
Ian Goldberg 1 dia atrás
pai
commit
51e317f924
7 arquivos alterados com 40 adições e 24 exclusões
  1. 21 8
      CHANGELOG.md
  2. 8 6
      Cargo.lock
  3. 5 4
      Cargo.toml
  4. 1 1
      cmz-core/Cargo.lock
  5. 1 1
      cmz-core/Cargo.toml
  6. 2 2
      cmz-derive/Cargo.lock
  7. 2 2
      cmz-derive/Cargo.toml

+ 21 - 8
CHANGELOG.md

@@ -5,21 +5,33 @@ All notable changes to this project will be documented in this file.
 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 
-## [Unreleased]
+## [0.4.0] - 2026-11-10
 
 ### Added
 
-- Derive the CMZ generator `A` automatically via a RFC 9380 hash-to-group of the generator.
-  Applications no longer need to call `cmz_group_init` at startup.
-- Add `CMZGroup`, `cmz_generator_a`, and curve features for the automatic
-  derivation. Ristretto support is enabled by default; P-256 and secp256k1 are
-  available through the `p256` and `k256` features.
+- Derive the CMZ generator `A` automatically via a RFC 9380
+  hash-to-group of the generator.  Applications no longer need to call
+  `cmz_group_init` at startup.
+- Add `CMZGroup` trait, `cmz_generator_a` function, and curve features
+  for the automatic derivation. Ristretto support is enabled by default;
+  P-256 and secp256k1 are available through the `p256` and `k256`
+  features.
 
 ### Changes
 
-- CMZ credential point types must now implement
-  `group::prime::PrimeGroup + group::GroupEncoding`, and
+- Depend on `sigma-compiler` 0.3.0, `rand` 0.10, `group` 0.14, `ff` 0.14
+- CMZ credential `Point` types must now implement
+  `group::prime::PrimeGroup`, `group::GroupEncoding`, and
   `hash2group::FromHash<hash2group::rfc9380::ExpandMsgXmd<sha2::Sha512>>`.
+  This combination of traits is now called `CMZGroup`.
+- The `rng` parameter in various APIs generated by `cmz` changed from
+  type `&mut (impl CryptoRng + RngCore)` to type `&mut (impl CryptoRng +
+  Rng)` (due to the update to `rand` 0.10)
+
+## Fixes
+
+- The ability to use `cmz` simultaneously for more than one group was
+  broken before, and is now fixed.
 
 ## [0.3.0] - 2026-08-04
 
@@ -85,6 +97,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 - Initial release
 
+[0.4.0]: https://git-crysp.uwaterloo.ca/SigmaProtocol/cmz/src/0.4.0
 [0.3.0]: https://git-crysp.uwaterloo.ca/SigmaProtocol/cmz/src/0.3.0
 [0.2.1]: https://git-crysp.uwaterloo.ca/SigmaProtocol/cmz/src/0.2.1
 [0.2.0]: https://git-crysp.uwaterloo.ca/SigmaProtocol/cmz/src/0.2.0

+ 8 - 6
Cargo.lock

@@ -262,7 +262,7 @@ checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a"
 
 [[package]]
 name = "cmz"
-version = "0.3.0"
+version = "0.4.0"
 dependencies = [
  "chrono",
  "cmz-derive",
@@ -286,7 +286,7 @@ dependencies = [
 
 [[package]]
 name = "cmz-core"
-version = "0.3.0"
+version = "0.4.0"
 dependencies = [
  "clap",
  "darling 0.20.11",
@@ -298,7 +298,7 @@ dependencies = [
 
 [[package]]
 name = "cmz-derive"
-version = "0.3.0"
+version = "0.4.0"
 dependencies = [
  "cmz-core",
  "darling 0.20.11",
@@ -1442,7 +1442,7 @@ checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
 
 [[package]]
 name = "sigma-compiler"
-version = "0.2.3"
+version = "0.3.0"
 dependencies = [
  "group",
  "rand",
@@ -1453,7 +1453,7 @@ dependencies = [
 
 [[package]]
 name = "sigma-compiler-core"
-version = "0.2.3"
+version = "0.3.0"
 dependencies = [
  "clap",
  "prettyplease",
@@ -1464,7 +1464,7 @@ dependencies = [
 
 [[package]]
 name = "sigma-compiler-derive"
-version = "0.2.3"
+version = "0.3.0"
 dependencies = [
  "sigma-compiler-core",
  "syn 2.0.119",
@@ -1473,6 +1473,8 @@ dependencies = [
 [[package]]
 name = "sigma-proofs"
 version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e40300550599f0585ff5f785126bdda1a136b1ca4e39c45de5c8a482aac2d5e"
 dependencies = [
  "bls12_381",
  "curve25519-dalek",

+ 5 - 4
Cargo.toml

@@ -1,13 +1,13 @@
 [package]
 name = "cmz"
-version = "0.3.0"
+version = "0.4.0"
 edition = "2021"
 license = "MIT"
 repository = "https://git-crysp.uwaterloo.ca/SigmaProtocol/cmz"
 description = "A crate to automatically create protocols that use CMZ14 or µCMZ credentials, by specifying an extremely compact description of the protocol."
 
 [dependencies]
-cmz-derive = "=0.3.0"
+cmz-derive = "=0.4.0"
 ff = "0.14"
 generic_static = "0.2"
 group = "0.14"
@@ -20,7 +20,7 @@ serde = { version = "1", features = [ "derive" ] }
 serde_bytes = "0.11"
 serde_with = "3"
 sha2 = "0.11"
-sigma-compiler = "0.2.3"
+sigma-compiler = "0.3.0"
 thiserror = "2"
 
 [dev-dependencies]
@@ -37,7 +37,8 @@ cmz-core = { path = "cmz-core" }
 sigma-compiler = { path = "../sigma-compiler" }
 sigma-compiler-derive = { path = "../sigma-compiler/sigma-compiler-derive" }
 sigma-compiler-core = { path = "../sigma-compiler/sigma-compiler-core" }
-sigma-proofs = { path = "../sigma-proofs" }
+# sigma-proofs = { path = "../sigma-proofs" }
+# spongefish = { path = "../spongefish/spongefish" }
 
 [features]
 # Hash-to-group implementations available to the automatic CMZ generator

+ 1 - 1
cmz-core/Cargo.lock

@@ -94,7 +94,7 @@ checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
 
 [[package]]
 name = "cmz-core"
-version = "0.3.0"
+version = "0.4.0"
 dependencies = [
  "clap",
  "darling",

+ 1 - 1
cmz-core/Cargo.toml

@@ -1,6 +1,6 @@
 [package]
 name = "cmz-core"
-version = "0.3.0"
+version = "0.4.0"
 edition = "2021"
 license = "MIT"
 repository = "https://git-crysp.uwaterloo.ca/SigmaProtocol/cmz"

+ 2 - 2
cmz-derive/Cargo.lock

@@ -94,7 +94,7 @@ checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
 
 [[package]]
 name = "cmz-core"
-version = "0.3.0"
+version = "0.4.0"
 dependencies = [
  "clap",
  "darling",
@@ -106,7 +106,7 @@ dependencies = [
 
 [[package]]
 name = "cmz-derive"
-version = "0.3.0"
+version = "0.4.0"
 dependencies = [
  "cmz-core",
  "darling",

+ 2 - 2
cmz-derive/Cargo.toml

@@ -1,6 +1,6 @@
 [package]
 name = "cmz-derive"
-version = "0.3.0"
+version = "0.4.0"
 edition = "2021"
 license = "MIT"
 repository = "https://git-crysp.uwaterloo.ca/SigmaProtocol/cmz"
@@ -10,7 +10,7 @@ description = "Derive macros for the cmz crate"
 proc-macro = true
 
 [dependencies]
-cmz-core = "=0.3.0"
+cmz-core = "=0.4.0"
 syn = { version = "2.0", features = ["extra-traits", "visit-mut"] }
 quote = "1.0"
 darling = "0.20"