Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.0.0 release #615

Merged
merged 1 commit into from
Feb 19, 2024
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
30 changes: 27 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion book/src/tutorial/importing.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
12 changes: 10 additions & 2 deletions frost-core/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion frost-core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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 <[email protected]>",
"Chelsea Komlo <[email protected]>",
Expand Down
10 changes: 5 additions & 5 deletions frost-ed25519/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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 <[email protected]>",
"Chelsea Komlo <[email protected]>",
Expand All @@ -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"
Expand Down
10 changes: 5 additions & 5 deletions frost-ed448/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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 <[email protected]>",
"Chelsea Komlo <[email protected]>",
Expand All @@ -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"
Expand Down
10 changes: 5 additions & 5 deletions frost-p256/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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 <[email protected]>",
"Chelsea Komlo <[email protected]>",
Expand All @@ -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"
Expand Down
4 changes: 2 additions & 2 deletions frost-rerandomized/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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 <[email protected]>", "Chelsea Komlo <[email protected]>",
"Conrado Gouvea <[email protected]>"]
readme = "README.md"
Expand All @@ -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]
Expand Down
10 changes: 5 additions & 5 deletions frost-ristretto255/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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 <[email protected]>", "Chelsea Komlo <[email protected]>", "Conrado Gouvea <[email protected]>"]
readme = "README.md"
license = "MIT OR Apache-2.0"
Expand All @@ -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"
Expand Down
10 changes: 5 additions & 5 deletions frost-secp256k1/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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 <[email protected]>",
"Chelsea Komlo <[email protected]>",
Expand All @@ -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"
Expand Down
Loading