Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
d31257f
ci: pin nightly toolchain when using minimal-versions (#742)
conradoplg Oct 2, 2024
30977f6
Add `internal` feature for `validate_num_of_signers` (#740)
StackOverflowExcept1on Oct 2, 2024
0da1938
chore(docs): fix rustdoc warning (#745)
StackOverflowExcept1on Oct 7, 2024
16d527c
Add missing `derive(Getters)` for `dkg::{round1, round2}` (#741)
StackOverflowExcept1on Oct 7, 2024
cef4217
chore(frost-core): fix dead_code warning (#748)
StackOverflowExcept1on Oct 8, 2024
b1f946f
add a verify_signature_share() function (#727)
conradoplg Oct 15, 2024
cd352bb
ci: improve coverage speed (#743)
conradoplg Oct 15, 2024
cffaff6
Release v2.0.0 (#756)
natalieesk Oct 16, 2024
2d88edf
Expose to_element() for GroupCommitment (#757)
natalieesk Oct 21, 2024
ae6d2e8
docs: make clearer the risks of refresh shares (#753)
conradoplg Oct 23, 2024
9a4394c
allow identifying culprit in error returned by dkg::part3() (#728)
conradoplg Nov 4, 2024
ca33dad
fix(changelog): now it's possible to identify culprit in part3(), but…
StackOverflowExcept1on Nov 4, 2024
958fde3
chore(frost-p256, frost-secp256k1): do not use allocator for domain s…
StackOverflowExcept1on Nov 11, 2024
c88fadd
Add frost-secp256k1-tr crate (BIP340/BIP341) [moved] (#730)
conduition Nov 14, 2024
94c0042
fix: typos in documentation files (#774)
leopardracer Nov 19, 2024
cf6b0c0
docs: add secp256k1-tr to changelog and book (#776)
StackOverflowExcept1on Nov 19, 2024
6c452a2
build(deps): bump reviewdog/action-actionlint from 1.54.0 to 1.57.0 (…
dependabot[bot] Nov 19, 2024
682ab50
build(deps): bump actions/checkout from 4.1.7 to 4.2.2 (#760)
dependabot[bot] Nov 19, 2024
95e1641
secp256k1-tr: fix hashes_to_scalar to avoid panics (#777)
conradoplg Nov 20, 2024
5abeb84
build(deps): update thiserror requirement from 1.0.29 to 2.0.3 (#771)
dependabot[bot] Nov 20, 2024
102320b
Typo fix Update importing.md (#788)
mdqst Nov 22, 2024
908289d
secp256k1-tr: fix no-std support (#782)
conradoplg Nov 25, 2024
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
6 changes: 3 additions & 3 deletions .github/workflows/coverage.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
branches:
- main
pull_request:
path:

Check warning on line 9 in .github/workflows/coverage.yaml

View workflow job for this annotation

GitHub Actions / actionlint

[actionlint] reported by reviewdog 🐶 unexpected key "path" for "pull_request" section. expected one of "branches", "branches-ignore", "paths", "paths-ignore", "tags", "tags-ignore", "types", "workflows" [syntax-check] Raw Output: .github/workflows/coverage.yaml:9:5: unexpected key "path" for "pull_request" section. expected one of "branches", "branches-ignore", "paths", "paths-ignore", "tags", "tags-ignore", "types", "workflows" [syntax-check]
- '**/*.rs'
- '**/*.txt'
- '**/Cargo.toml'
Expand All @@ -23,7 +23,7 @@
RUST_BACKTRACE: full

steps:
- uses: actions/checkout@v4.1.7
- uses: actions/checkout@v4.2.2
with:
persist-credentials: false

Expand All @@ -38,10 +38,10 @@
run: cargo install cargo-llvm-cov

- name: Run tests
run: cargo llvm-cov --lcov --no-report --ignore-filename-regex '.*(tests).*|benches.rs|gencode|helpers.rs'
run: cargo llvm-cov --lcov --no-report --ignore-filename-regex '.*(tests).*|benches.rs|gencode|helpers.rs|interoperability_tests.rs'

- name: Generate coverage report
run: cargo llvm-cov report --lcov --ignore-filename-regex '.*(tests).*|benches.rs|gencode|helpers.rs' --output-path lcov.info
run: cargo llvm-cov report --lcov --ignore-filename-regex '.*(tests).*|benches.rs|gencode|helpers.rs|interoperability_tests.rs' --output-path lcov.info

- name: Upload coverage report to Codecov
uses: codecov/codecov-action@v4.5.0
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,12 @@
runs-on: ubuntu-latest
steps:
- name: Checkout the source code
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.2.2
with:
persist-credentials: false

- name: Install latest beta
uses: actions-rs/toolchain@v1

Check warning on line 44 in .github/workflows/docs.yml

View workflow job for this annotation

GitHub Actions / actionlint

[actionlint] reported by reviewdog 🐶 the runner of "actions-rs/toolchain@v1" action is too old to run on GitHub Actions. update the action's version to fix this issue [action] Raw Output: .github/workflows/docs.yml:44:15: the runner of "actions-rs/toolchain@v1" action is too old to run on GitHub Actions. update the action's version to fix this issue [action]
with:
toolchain: beta
components: rust-docs
Expand Down
33 changes: 19 additions & 14 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4.1.7
- uses: actions/checkout@v4.2.2
- uses: actions-rs/toolchain@v1.0.7
with:
toolchain: beta
Expand All @@ -29,9 +29,14 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4.1.7
# Re-resolve Cargo.lock with minimal versions
- uses: dtolnay/rust-toolchain@nightly
- uses: actions/checkout@v4.2.2
# Re-resolve Cargo.lock with minimal versions.
# This only works with nightly. We pin to a specific version because
# newer versions use lock file version 4, but the MSRV cargo does not
# support that.
- uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly-2024-09-20
- run: cargo update -Z minimal-versions
# Now check that `cargo build` works with respect to the oldest possible
# deps and the stated MSRV
Expand All @@ -46,7 +51,7 @@ jobs:
# runs-on: ubuntu-latest

# steps:
# - uses: actions/checkout@v4.1.7
# - uses: actions/checkout@v4.2.2
# - uses: dtolnay/rust-toolchain@stable
# - run: cargo install cargo-all-features
# # We check and then test because some test dependencies could help
Expand All @@ -64,9 +69,9 @@ jobs:
# Skip ed448 which does not support it.
strategy:
matrix:
crate: [ristretto255, ed25519, p256, secp256k1, rerandomized]
crate: [ristretto255, ed25519, p256, secp256k1, secp256k1-tr, rerandomized]
steps:
- uses: actions/checkout@v4.1.7
- uses: actions/checkout@v4.2.2
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
Expand All @@ -79,7 +84,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4.1.7
- uses: actions/checkout@v4.2.2
- uses: actions-rs/toolchain@v1.0.7
with:
toolchain: beta
Expand All @@ -94,7 +99,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4.1.7
- uses: actions/checkout@v4.2.2
with:
persist-credentials: false

Expand Down Expand Up @@ -129,7 +134,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4.1.7
- uses: actions/checkout@v4.2.2
with:
persist-credentials: false

Expand All @@ -151,7 +156,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4.1.7
- uses: actions/checkout@v4.2.2
with:
persist-credentials: false

Expand All @@ -173,7 +178,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4.1.7
- uses: actions/checkout@v4.2.2
with:
persist-credentials: false

Expand All @@ -192,8 +197,8 @@ jobs:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4.1.7
- uses: reviewdog/action-actionlint@v1.54.0
- uses: actions/checkout@v4.2.2
- uses: reviewdog/action-actionlint@v1.57.0
with:
level: warning
fail_on_error: false
4 changes: 4 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ members = [
"frost-p256",
"frost-ristretto255",
"frost-secp256k1",
"frost-secp256k1-tr",
"frost-rerandomized",
"gencode"
]

[profile.test.package."*"]
opt-level = 3
21 changes: 11 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@

[![CI](https://github.com/ZcashFoundation/frost/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/ZcashFoundation/frost/actions/workflows/main.yml)

| Crate | | Crates.io | Documentation |
| ---------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| Generic FROST implementation | [`frost-core`] | [![crates.io](https://img.shields.io/crates/v/frost-core.svg)](https://crates.io/crates/frost-core) | [![Documentation](https://docs.rs/frost-core/badge.svg)](https://docs.rs/frost-core) |
| Ristretto255 ciphersuite | [`frost-ristretto255`] | [![crates.io](https://img.shields.io/crates/v/frost-ristretto255.svg)](https://crates.io/crates/frost-ristretto255) | [![Documentation](https://docs.rs/frost-ristretto255/badge.svg)](https://docs.rs/frost-ristretto255) |
| Ed25519 ciphersuite | [`frost-ed25519`] | [![crates.io](https://img.shields.io/crates/v/frost-ed25519.svg)](https://crates.io/crates/frost-ed25519) | [![Documentation](https://docs.rs/frost-ed25519/badge.svg)](https://docs.rs/frost-ed25519) |
| Ed448 ciphersuite | [`frost-ed448`] | [![crates.io](https://img.shields.io/crates/v/frost-ed448.svg)](https://crates.io/crates/frost-ed448) | [![Documentation](https://docs.rs/frost-ed448/badge.svg)](https://docs.rs/frost-ed448) |
| P-256 ciphersuite | [`frost-p256`] | [![crates.io](https://img.shields.io/crates/v/frost-p256.svg)](https://crates.io/crates/frost-p256) | [![Documentation](https://docs.rs/frost-p256/badge.svg)](https://docs.rs/frost-p256) |
| secp256k1 ciphersuite | [`frost-secp256k1`] | [![crates.io](https://img.shields.io/crates/v/frost-secp256k1.svg)](https://crates.io/crates/frost-secp256k1) | [![Documentation](https://docs.rs/frost-secp256k1/badge.svg)](https://docs.rs/frost-secp256k1) |
| Generic Re-randomized FROST | [`frost-rerandomized`] | [![crates.io](https://img.shields.io/crates/v/frost-rerandomized.svg)](https://crates.io/crates/frost-rerandomized) | [![Documentation](https://docs.rs/frost-rerandomized/badge.svg)](https://docs.rs/frost-rerandomized) |
| Crate | | Crates.io | Documentation |
| ------------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| Generic FROST implementation | [`frost-core`] | [![crates.io](https://img.shields.io/crates/v/frost-core.svg)](https://crates.io/crates/frost-core) | [![Documentation](https://docs.rs/frost-core/badge.svg)](https://docs.rs/frost-core) |
| Ristretto255 ciphersuite | [`frost-ristretto255`] | [![crates.io](https://img.shields.io/crates/v/frost-ristretto255.svg)](https://crates.io/crates/frost-ristretto255) | [![Documentation](https://docs.rs/frost-ristretto255/badge.svg)](https://docs.rs/frost-ristretto255) |
| Ed25519 ciphersuite | [`frost-ed25519`] | [![crates.io](https://img.shields.io/crates/v/frost-ed25519.svg)](https://crates.io/crates/frost-ed25519) | [![Documentation](https://docs.rs/frost-ed25519/badge.svg)](https://docs.rs/frost-ed25519) |
| Ed448 ciphersuite | [`frost-ed448`] | [![crates.io](https://img.shields.io/crates/v/frost-ed448.svg)](https://crates.io/crates/frost-ed448) | [![Documentation](https://docs.rs/frost-ed448/badge.svg)](https://docs.rs/frost-ed448) |
| P-256 ciphersuite | [`frost-p256`] | [![crates.io](https://img.shields.io/crates/v/frost-p256.svg)](https://crates.io/crates/frost-p256) | [![Documentation](https://docs.rs/frost-p256/badge.svg)](https://docs.rs/frost-p256) |
| secp256k1 ciphersuite | [`frost-secp256k1`] | [![crates.io](https://img.shields.io/crates/v/frost-secp256k1.svg)](https://crates.io/crates/frost-secp256k1) | [![Documentation](https://docs.rs/frost-secp256k1/badge.svg)](https://docs.rs/frost-secp256k1) |
| secp256k1 ciphersuite (Taproot) | [`frost-secp256k1-tr`] | [![crates.io](https://img.shields.io/crates/v/frost-secp256k1-tr.svg)](https://crates.io/crates/frost-secp256k1-tr) | [![Documentation](https://docs.rs/frost-secp256k1-tr/badge.svg)](https://docs.rs/frost-secp256k1-tr) |
| Generic Re-randomized FROST | [`frost-rerandomized`] | [![crates.io](https://img.shields.io/crates/v/frost-rerandomized.svg)](https://crates.io/crates/frost-rerandomized) | [![Documentation](https://docs.rs/frost-rerandomized/badge.svg)](https://docs.rs/frost-rerandomized) |

Rust implementations of ['Two-Round Threshold Schnorr Signatures with FROST'](https://datatracker.ietf.org/doc/draft-irtf-cfrg-frost/).

Expand Down Expand Up @@ -59,7 +60,7 @@ of the v0.6.0 release (corresponding to commit 5fa17ed) of the following crates:
- frost-ristretto255

This includes key generation (both trusted dealer and DKG) and FROST signing.
This does not include rerandomized FROST.
This does not include frost-secp256k1-tr and rerandomized FROST.

The parts of the
[`Ed448-Goldilocks`](https://github.com/crate-crypto/Ed448-Goldilocks)
Expand Down
1 change: 1 addition & 0 deletions book/src/dev/frost-dependencies-for-audit.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ The following crates and dependencies are out of scope for the audit.
| Name | Version | Notes
|------| ------- | -----
| frost-rerandomized | v0.2.0 | To be audited after the security proof is complete.
| frost-secp256k1-tr | N/A | frost-secp256k1 with Taproot support, has not been audited yet.

### `frost-core` Dependencies

Expand Down
10 changes: 6 additions & 4 deletions book/src/dev/release-checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
5. [Frost re randomized version number](https://github.com/ZcashFoundation/frost/blob/main/frost-rerandomized/Cargo.toml#L8)
6. [Frost ristretto255 version number](https://github.com/ZcashFoundation/frost/blob/main/frost-ristretto255/Cargo.toml#L8)
7. [Frost secp256k1 version number](https://github.com/ZcashFoundation/frost/blob/main/frost-secp256k1/Cargo.toml#L7)
8. [Frost secp256k1 tr version number](https://github.com/ZcashFoundation/frost/blob/main/frost-secp256k1-tr/Cargo.toml#L7)

5. Decide which version to tag the release with (e.g. v0.3.0). Currently we always use the same release number for all crates, but it's possible for them to get out of sync in the future.

Expand Down Expand Up @@ -74,7 +75,7 @@

20. Publish it with `cargo publish -p frost-rerandomized`

21. Check if other crates are ready to be published: `for cs in ristretto255 ed25519 secp256k1 p256 ed448; do cargo publish -p frost-$cs --dry-run; done`. Fix any issues if needed.
21. Check if other crates are ready to be published: `for cs in ristretto255 ed25519 secp256k1 secp256k1-tr p256 ed448; do cargo publish -p frost-$cs --dry-run; done`. Fix any issues if needed.

1. If you get an error like this:

Expand All @@ -86,20 +87,21 @@

1. Use the same process as described for frost-core above (actions 1 - 3), but you can leave the changelog empty and **uncheck** “Set as the latest release”

23. Publish those crates: `for cs in ristretto255 ed25519 secp256k1 p256 ed448; do cargo publish -p frost-$cs; done`
23. Publish those crates: `for cs in ristretto255 ed25519 secp256k1 secp256k1-tr p256 ed448; do cargo publish -p frost-$cs; done`


## Confirm

24. Check versions in the crates to confirm everything worked: 
24. Check versions in the crates to confirm everything worked:

1. [Frost core](https://crates.io/crates/frost-core/versions)
2. [Frost ed25519](https://crates.io/crates/frost-ed25519/versions)
3. [Frost ed448](https://crates.io/crates/frost-ed448/versions)
4. [Frost p256](https://crates.io/crates/frost-p256/versions)
5. [Frost ristretto255](https://crates.io/crates/frost-ristretto255/versions)
6. [Frost secp256k1](https://crates.io/crates/frost-secp256k1/versions)
7. [Frost rerandomized](https://crates.io/crates/frost-rerandomized/versions)
7. [Frost secp256k1 tr](https://crates.io/crates/frost-secp256k1-tr/versions)
8. [Frost rerandomized](https://crates.io/crates/frost-rerandomized/versions)

25. Let the team know in the #frost slack channel that the release is complete and successful

Expand Down
21 changes: 18 additions & 3 deletions book/src/frost.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,12 +78,12 @@ be able to produce the final signature. Of course, the Coordinator
is still free to start the process with only 2 participants if they wish.
```

## Verifying
## Verifying Signatures

Signature verification is carried out as normal with single-party signatures,
along with the signed message and the group verifying key as inputs.

## Repairing
## Repairing Shares

Repairing shares allow participants to help another participant recover their
share if they have lost it, or also issue a new share to a new participant
Expand All @@ -97,7 +97,7 @@ The functionality works in such a way that each participant running the repair
share function is not able to obtain the share that is being recovered or
issued.

## Refreshing
## Refreshing Shares

Refreshing shares allow participants (or a subset of them) to update their
shares in a way that maintains the same group public key. Some applications are:
Expand All @@ -117,6 +117,21 @@ This is also possible via Distributed Key Generation but this has not yet been
implemented.
```

```admonish danger
It is critically important to keep in mind that the **Refresh Shares
functionality does not "restore full security" to a group**. While the group
evolves and participants are removed and new participants are added, the
security of the group does not depend only on the threshold of the current
participants being honest, but also **on the threshold of all previous set of
participants being honest**! For example, if Alice, Mallory and Eve form a group
and Mallory is eventually excluded from the group and replaced with Bob, it is
not enough to trust 2 out of 3 between Alice, Bob and Eve. **You also need to
trust that Mallory won't collude with, say, Eve which could have kept her
original pre-refresh share and they could both together recompute the original
key and compromise the group.** If that's a unnaceptable risk to your use case,
you will need to migrate to a new group if that makes sense to your application.
```

## Ciphersuites

FROST is a generic protocol that works with any adequate prime-order group,
Expand Down
4 changes: 2 additions & 2 deletions book/src/tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ a generic implementation of the protocol, which can't be used directly
without a concrete instantiation.

The ciphersuite crates (`frost-ristretto255`, `frost-ed25519`, `frost-ed448`,
`frost-p256`, and `frost-secp256k1`) provide ciphersuites to use with
`frost-core`, but also re-expose the `frost-core` functions without
`frost-p256`, `frost-secp256k1` and `frost-secp256k1-tr`) provide ciphersuites
to use with `frost-core`, but also re-expose the `frost-core` functions without
generics. If you will only use a single ciphersuite, then we recommend
using those functions, and this tutorial will follow this approach.
If you need to support multiple ciphersuites then feel free to use
Expand Down
6 changes: 3 additions & 3 deletions 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 = "2.0.0-rc.0"
frost-ristretto255 = "2.0.0"
```

## Handling errors
Expand All @@ -31,14 +31,14 @@ Format](../user/serialization.md).

### serde

Alternatively, if you would like to user another format such as JSON, you can
Alternatively, if you would like to use another format such as JSON, you can
enable the `serde` feature (which is *not* enabled by default). When it is
enabled, you can use [serde](https://serde.rs/) to serialize any structure that
needs to be transmitted. The importing would look like:

```
[dependencies]
frost-ristretto255 = { version = "2.0.0-rc.0", features = ["serde"] }
frost-ristretto255 = { version = "2.0.0", features = ["serde"] }
```

Note that serde usage is optional. Applications can use different encodings, and
Expand Down
6 changes: 6 additions & 0 deletions book/src/tutorial/refreshing-shares.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,9 @@ Applications should first ensure that all participants who refreshed their
`KeyPackages`. How this is done is up to the application; it might require
sucessfully generating a signature with all of those participants.
```

```admonish danger
Refreshing Shares may be not enough to address security concerns
after a share has been compromised. Refer to to the [Understanding
FROST](../frost.md#refreshing-shares) section.
```
1 change: 1 addition & 0 deletions book/src/user.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@
- [frost-p256](https://docs.rs/frost-p256/)
- [frost-ristretto255](https://docs.rs/frost-ristretto255/)
- [frost-secp256k1](https://docs.rs/frost-secp256k1/)
- [frost-secp256k1-tr](https://docs.rs/frost-secp256k1-tr/)
1 change: 1 addition & 0 deletions book/src/user/frost-secp256k1-tr.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{{#include ../../../frost-secp256k1-tr/README.md}}
1 change: 1 addition & 0 deletions book/src/user/frost-secp256k1-tr/dkg.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{{#include ../../../../frost-secp256k1-tr/dkg.md}}
16 changes: 16 additions & 0 deletions frost-core/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,28 @@ Entries are listed in reverse chronological order.

## Unreleased

* It is now possible to identify the culprit in `frost_core::keys::dkg::part3()`
if an invalid secret share was sent by one of the participants (by calling
frost_core::Error<C>::culprit()`).
* Added frost-secp256k1-tr crate, allowing to generate Bitcoin Taproot (BIP340/BIP341)
compatible signatures.

## 2.0.0

* Updated docs
* Added missing `derive(Getters)` for `dkg::{round1, round2}`
* Added `internal` feature for `validate_num_of_signers`
* Added refresh share functionality for trusted dealer:
`frost_core::keys::refresh::{compute_refreshing_shares, refresh_share}`
* Added a `'static` bound to the `Ciphersuite` trait. This is a breaking change,
but it's likely to not require any code changes since most ciphersuite
implementations are probably just empty structs. The bound makes it possible
to use `frost_core::Error<C>` in `Box<dyn std::error::Error>`.
* Added getters to `round1::SecretPackage` and `round2::SecretPackage`.
* Added a `frost_core::verify_signature_share()` function which allows verifying
individual signature shares. This is not required for regular FROST usage but
might useful in certain situations where it is desired to verify each
individual signature share before aggregating the signature.

## 2.0.0-rc.0

Expand Down
4 changes: 2 additions & 2 deletions 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 = "2.0.0-rc.0"
version = "2.0.0"
authors = [
"Deirdre Connolly <durumcrustulum@gmail.com>",
"Chelsea Komlo <me@chelseakomlo.com>",
Expand Down Expand Up @@ -33,7 +33,7 @@ rand_core = { version = "0.6", default-features = false }
serde = { version = "1.0.160", default-features = false, features = ["derive"], optional = true }
serdect = { version = "0.2.0", optional = true }
thiserror-nostd-notrait = { version = "1.0.29", default-features = false }
thiserror = { version = "1.0.29", default-features = false, optional = true }
thiserror = { version = "2.0.3", default-features = false, optional = true }
visibility = "0.1.0"
zeroize = { version = "1.5.4", default-features = false, features = ["derive"] }
itertools = { version = "0.13.0", default-features = false }
Expand Down
Loading
Loading