From ea4a95625df63fdfb789d402fd7910b920ec9351 Mon Sep 17 00:00:00 2001
From: Conrado Gouvea <conradoplg@gmail.com>
Date: Mon, 19 Feb 2024 15:58:13 -0300
Subject: [PATCH] 1.0.0 release

---
 README.md                      | 30 +++++++++++++++++++++++++++---
 book/src/tutorial/importing.md |  2 +-
 frost-core/CHANGELOG.md        | 12 ++++++++++--
 frost-core/Cargo.toml          |  2 +-
 frost-ed25519/Cargo.toml       | 10 +++++-----
 frost-ed448/Cargo.toml         | 10 +++++-----
 frost-p256/Cargo.toml          | 10 +++++-----
 frost-rerandomized/Cargo.toml  |  4 ++--
 frost-ristretto255/Cargo.toml  | 10 +++++-----
 frost-secp256k1/Cargo.toml     | 10 +++++-----
 10 files changed, 66 insertions(+), 34 deletions(-)

diff --git a/README.md b/README.md
index a1c35cb8..0101e837 100644
--- a/README.md
+++ b/README.md
@@ -40,9 +40,33 @@ Refer to the [ZF FROST book](https://frost.zfnd.org/).
 ## Status ⚠
 
 The FROST specification is not yet finalized, though no significant changes are
-expected at this point. This code base has been audited by NCC. The APIs and
-types in `frost-core` are subject to change during the release candidate phase,
-and will follow SemVer guarantees after 1.0.0.
+expected at this point. This code base has been partially audited by NCC, see
+below for details. The APIs and types in the crates contained in this repository
+follow SemVer guarantees.
+
+### NCC Audit
+
+NCC performed [an
+audit](https://research.nccgroup.com/2023/10/23/public-report-zcash-frost-security-assessment/)
+of the v0.6.0 release (corresponding to commit 5fa17ed) of the following crates:
+
+- frost-core
+- frost-ed25519
+- frost-ed448
+- frost-p256
+- frost-secp256k1
+- frost-ristretto255
+
+This includes key generation (both trusted dealer and DKG) and FROST signing.
+This does not include rerandomized FROST.
+
+The parts of the
+[`Ed448-Goldilocks`](https://github.com/crate-crypto/Ed448-Goldilocks)
+dependency that are used by `frost-ed448` were also in scope, namely the
+elliptic curve operations.
+
+All issues identified in the audit were addressed by us and reviewed by NCC.
+
 
 ## Usage
 
diff --git a/book/src/tutorial/importing.md b/book/src/tutorial/importing.md
index 1988bbed..7fd3c563 100644
--- a/book/src/tutorial/importing.md
+++ b/book/src/tutorial/importing.md
@@ -6,7 +6,7 @@ Add to your `Cargo.toml` file:
 
 ```
 [dependencies]
-frost-ristretto255 = "1.0.0-rc.0"
+frost-ristretto255 = "1.0.0"
 ```
 
 ## Handling errors
diff --git a/frost-core/CHANGELOG.md b/frost-core/CHANGELOG.md
index ebff51b8..4821c475 100644
--- a/frost-core/CHANGELOG.md
+++ b/frost-core/CHANGELOG.md
@@ -4,10 +4,18 @@ Entries are listed in reverse chronological order.
 
 ## Unreleased
 
+## Released
+
+## 1.0.0
+
 * Exposed the `SigningKey::from_scalar()` and `to_scalar()` methods. This
   helps interoperability with other implementations.
-
-## Released
+* Exposed the `SigningNonces::from_nonces()` method to allow it to be
+  deserialized.
+* Fixed bug that prevented deserialization with in some cases (e.g. JSON
+  containing escape codes).
+* Added `new()` methods for `VerifirableSecretSharingCommitment` and
+  `CoefficientCommitment`.
 
 ## 1.0.0-rc.0
 
diff --git a/frost-core/Cargo.toml b/frost-core/Cargo.toml
index 7b1d248d..0dcaa8b6 100644
--- a/frost-core/Cargo.toml
+++ b/frost-core/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
 # When releasing to crates.io:
 # - Update CHANGELOG.md
 # - Create git tag.
-version = "1.0.0-rc.0"
+version = "1.0.0"
 authors = [
     "Deirdre Connolly <durumcrustulum@gmail.com>",
     "Chelsea Komlo <me@chelseakomlo.com>",
diff --git a/frost-ed25519/Cargo.toml b/frost-ed25519/Cargo.toml
index 24e2cfb0..4bd685af 100644
--- a/frost-ed25519/Cargo.toml
+++ b/frost-ed25519/Cargo.toml
@@ -5,7 +5,7 @@ edition = "2021"
 # - Update html_root_url
 # - Update CHANGELOG.md
 # - Create git tag.
-version = "1.0.0-rc.0"
+version = "1.0.0"
 authors = [
     "Deirdre Connolly <durumcrustulum@gmail.com>",
     "Chelsea Komlo <me@chelseakomlo.com>",
@@ -25,15 +25,15 @@ rustdoc-args = ["--cfg", "docsrs"]
 [dependencies]
 curve25519-dalek = { version = "=4.1.2", features = ["rand_core"] }
 document-features = "0.2.7"
-frost-core = { path = "../frost-core", version = "1.0.0-rc.0" }
-frost-rerandomized = { path = "../frost-rerandomized", version = "1.0.0-rc.0" }
+frost-core = { path = "../frost-core", version = "1.0.0" }
+frost-rerandomized = { path = "../frost-rerandomized", version = "1.0.0" }
 rand_core = "0.6"
 sha2 = "0.10.2"
 
 [dev-dependencies]
 criterion = "0.5"
-frost-core = { path = "../frost-core", version = "1.0.0-rc.0", features = ["test-impl"] }
-frost-rerandomized = { path = "../frost-rerandomized", version = "1.0.0-rc.0", features = ["test-impl"] }
+frost-core = { path = "../frost-core", version = "1.0.0", features = ["test-impl"] }
+frost-rerandomized = { path = "../frost-rerandomized", version = "1.0.0", features = ["test-impl"] }
 ed25519-dalek = "2.0.0"
 insta = { version = "1.31.0", features = ["yaml"] }
 hex = "0.4.3"
diff --git a/frost-ed448/Cargo.toml b/frost-ed448/Cargo.toml
index 6463229b..dcae381d 100644
--- a/frost-ed448/Cargo.toml
+++ b/frost-ed448/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
 # When releasing to crates.io:
 # - Update CHANGELOG.md
 # - Create git tag.
-version = "1.0.0-rc.0"
+version = "1.0.0"
 authors = [
     "Deirdre Connolly <durumcrustulum@gmail.com>",
     "Chelsea Komlo <me@chelseakomlo.com>",
@@ -24,15 +24,15 @@ rustdoc-args = ["--cfg", "docsrs"]
 [dependencies]
 document-features = "0.2.7"
 ed448-goldilocks = { version = "0.9.0" }
-frost-core = { path = "../frost-core", version = "1.0.0-rc.0" }
-frost-rerandomized = { path = "../frost-rerandomized", version = "1.0.0-rc.0" }
+frost-core = { path = "../frost-core", version = "1.0.0" }
+frost-rerandomized = { path = "../frost-rerandomized", version = "1.0.0" }
 rand_core = "0.6"
 sha3 = "0.10.6"
 
 [dev-dependencies]
 criterion = "0.5"
-frost-core = { path = "../frost-core", version = "1.0.0-rc.0", features = ["test-impl"] }
-frost-rerandomized = { path = "../frost-rerandomized", version = "1.0.0-rc.0", features = ["test-impl"] }
+frost-core = { path = "../frost-core", version = "1.0.0", features = ["test-impl"] }
+frost-rerandomized = { path = "../frost-rerandomized", version = "1.0.0", features = ["test-impl"] }
 lazy_static = "1.4"
 insta = { version = "1.31.0", features = ["yaml"] }
 hex = "0.4.3"
diff --git a/frost-p256/Cargo.toml b/frost-p256/Cargo.toml
index 276ca65d..f0dd0786 100644
--- a/frost-p256/Cargo.toml
+++ b/frost-p256/Cargo.toml
@@ -5,7 +5,7 @@ edition = "2021"
 # - Update html_root_url
 # - Update CHANGELOG.md
 # - Create git tag.
-version = "1.0.0-rc.0"
+version = "1.0.0"
 authors = [
         "Deirdre Connolly <durumcrustulum@gmail.com>",
         "Chelsea Komlo <me@chelseakomlo.com>",
@@ -25,15 +25,15 @@ rustdoc-args = ["--cfg", "docsrs"]
 [dependencies]
 document-features = "0.2.7"
 p256 = { version = "0.13.0", features = ["hash2curve"] }
-frost-core = { path = "../frost-core", version = "1.0.0-rc.0" }
-frost-rerandomized = { path = "../frost-rerandomized", version = "1.0.0-rc.0" }
+frost-core = { path = "../frost-core", version = "1.0.0" }
+frost-rerandomized = { path = "../frost-rerandomized", version = "1.0.0" }
 rand_core = "0.6"
 sha2 = "0.10.2"
 
 [dev-dependencies]
 criterion = "0.5"
-frost-core = { path = "../frost-core", version = "1.0.0-rc.0", features = ["test-impl"] }
-frost-rerandomized = { path = "../frost-rerandomized", version = "1.0.0-rc.0", features = ["test-impl"] }
+frost-core = { path = "../frost-core", version = "1.0.0", features = ["test-impl"] }
+frost-rerandomized = { path = "../frost-rerandomized", version = "1.0.0", features = ["test-impl"] }
 insta = { version = "1.31.0", features = ["yaml"] }
 hex = "0.4.3"
 lazy_static = "1.4"
diff --git a/frost-rerandomized/Cargo.toml b/frost-rerandomized/Cargo.toml
index 32684ea5..71c37335 100644
--- a/frost-rerandomized/Cargo.toml
+++ b/frost-rerandomized/Cargo.toml
@@ -5,7 +5,7 @@ edition = "2021"
 # - Update html_root_url
 # - Update CHANGELOG.md
 # - Create git tag.
-version = "1.0.0-rc.0"
+version = "1.0.0"
 authors = ["Deirdre Connolly <durumcrustulum@gmail.com>", "Chelsea Komlo <me@chelseakomlo.com>",
     "Conrado Gouvea <conradoplg@gmail.com>"]
 readme = "README.md"
@@ -22,7 +22,7 @@ rustdoc-args = ["--cfg", "docsrs"]
 [dependencies]
 derive-getters = "0.3.0"
 document-features = "0.2.7"
-frost-core = { path = "../frost-core", version = "1.0.0-rc.0", features = ["internals"] }
+frost-core = { path = "../frost-core", version = "1.0.0", features = ["internals"] }
 rand_core = "0.6"
 
 [dev-dependencies]
diff --git a/frost-ristretto255/Cargo.toml b/frost-ristretto255/Cargo.toml
index 16b90359..a886f8e8 100644
--- a/frost-ristretto255/Cargo.toml
+++ b/frost-ristretto255/Cargo.toml
@@ -5,7 +5,7 @@ edition = "2021"
 # - Update html_root_url
 # - Update CHANGELOG.md
 # - Create git tag.
-version = "1.0.0-rc.0"
+version = "1.0.0"
 authors = ["Deirdre Connolly <durumcrustulum@gmail.com>", "Chelsea Komlo <me@chelseakomlo.com>", "Conrado Gouvea <conradoplg@gmail.com>"]
 readme = "README.md"
 license = "MIT OR Apache-2.0"
@@ -21,15 +21,15 @@ rustdoc-args = ["--cfg", "docsrs"]
 [dependencies]
 curve25519-dalek = { version = "=4.1.2", features = ["serde", "rand_core"] }
 document-features = "0.2.7"
-frost-core = { path = "../frost-core", version = "1.0.0-rc.0" }
-frost-rerandomized = { path = "../frost-rerandomized", version = "1.0.0-rc.0" }
+frost-core = { path = "../frost-core", version = "1.0.0" }
+frost-rerandomized = { path = "../frost-rerandomized", version = "1.0.0" }
 rand_core = "0.6"
 sha2 = "0.10.2"
 
 [dev-dependencies]
 criterion = { version = "0.5", features = ["html_reports"] }
-frost-core = { path = "../frost-core", version = "1.0.0-rc.0", features = ["test-impl"] }
-frost-rerandomized = { path = "../frost-rerandomized", version = "1.0.0-rc.0", features = ["test-impl"] }
+frost-core = { path = "../frost-core", version = "1.0.0", features = ["test-impl"] }
+frost-rerandomized = { path = "../frost-rerandomized", version = "1.0.0", features = ["test-impl"] }
 insta = { version = "1.31.0", features = ["yaml"] }
 hex = "0.4.3"
 lazy_static = "1.4"
diff --git a/frost-secp256k1/Cargo.toml b/frost-secp256k1/Cargo.toml
index bed22b35..30e726a3 100644
--- a/frost-secp256k1/Cargo.toml
+++ b/frost-secp256k1/Cargo.toml
@@ -4,7 +4,7 @@ edition = "2021"
 # When releasing to crates.io:
 # - Update CHANGELOG.md
 # - Create git tag.
-version = "1.0.0-rc.0"
+version = "1.0.0"
 authors = [
     "Deirdre Connolly <durumcrustulum@gmail.com>",
     "Chelsea Komlo <me@chelseakomlo.com>",
@@ -23,16 +23,16 @@ rustdoc-args = ["--cfg", "docsrs"]
 
 [dependencies]
 document-features = "0.2.7"
-frost-core = { path = "../frost-core", version = "1.0.0-rc.0" }
-frost-rerandomized = { path = "../frost-rerandomized", version = "1.0.0-rc.0" }
+frost-core = { path = "../frost-core", version = "1.0.0" }
+frost-rerandomized = { path = "../frost-rerandomized", version = "1.0.0" }
 k256 = { version = "0.13.0", features = ["arithmetic", "expose-field", "hash2curve"] }
 rand_core = "0.6"
 sha2 = "0.10.2"
 
 [dev-dependencies]
 criterion = "0.5"
-frost-core = { path = "../frost-core", version = "1.0.0-rc.0", features = ["test-impl"] }
-frost-rerandomized = { path = "../frost-rerandomized", version = "1.0.0-rc.0", features = ["test-impl"] }
+frost-core = { path = "../frost-core", version = "1.0.0", features = ["test-impl"] }
+frost-rerandomized = { path = "../frost-rerandomized", version = "1.0.0", features = ["test-impl"] }
 insta = { version = "1.31.0", features = ["yaml"] }
 hex = "0.4.3"
 lazy_static = "1.4"