A minimal RedDSA implementation for use in Zebra and zcashd.

Related tags

Miscellaneous reddsa
Overview

A minimal RedDSA implementation for use in Zcash.

Two specializations of RedDSA are used in Zcash: RedJubjub and RedPallas. For each of these, two parameterizations are used, one for BindingSig and one for SpendAuthSig. This library distinguishes these in the type system, using the sealed SigType trait as a type-level enum.

In addition to the Signature, SigningKey, VerificationKey types, the library also provides VerificationKeyBytes, a refinement of a [u8; 32] indicating that bytes represent an encoding of a RedDSA verification key. This allows the VerificationKey type to cache verification checks related to the verification key encoding. For all specializations of RedDSA used in Zcash, encodings of signing and verification keys are 32 bytes.

Examples

Creating a BindingSig, serializing and deserializing it, and verifying the signature:

::new(thread_rng()); let sig = sk.sign(thread_rng(), msg); // Types can be converted to raw byte arrays using From/Into let sig_bytes: [u8; 64] = sig.into(); let pk_bytes: [u8; 32] = VerificationKey::from(&sk).into(); // Deserialize and verify the signature. let sig: Signature = sig_bytes.into(); assert!( VerificationKey::try_from(pk_bytes) .and_then(|pk| pk.verify(msg, &sig)) .is_ok() ); ">
# use std::convert::TryFrom;
use rand::thread_rng;
use reddsa::*;

let msg = b"Hello!";

// Generate a secret key and sign the message
let sk = SigningKey::<sapling::Binding>::new(thread_rng());
let sig = sk.sign(thread_rng(), msg);

// Types can be converted to raw byte arrays using From/Into
let sig_bytes: [u8; 64] = sig.into();
let pk_bytes: [u8; 32] = VerificationKey::from(&sk).into();

// Deserialize and verify the signature.
let sig: Signature<sapling::Binding> = sig_bytes.into();
assert!(
    VerificationKey::try_from(pk_bytes)
        .and_then(|pk| pk.verify(msg, &sig))
        .is_ok()
);

docs

cargo doc --features "nightly" --open
Comments
  • Add `no-std` support

    Add `no-std` support

    Add support for no-std builds.

    comments to this PR:

    • no code changed, except src/error.rs where I had to avoid usage of thiserror (crate has not no-std support)
    • module frost still depends on std
    • crate still depends on alloc because usage of Vec in VartimeMultiscalarMul implementations
    • tests/bincode.rs enabled only on std feature, because it depends on serde
    • serde enabled if std enabled, because #9
    opened by jarys 4
  • Update pasta_curves requirement from 0.2.1 to 0.3.0

    Update pasta_curves requirement from 0.2.1 to 0.3.0

    Updates the requirements on pasta_curves to permit the latest version.

    Changelog

    Sourced from pasta_curves's changelog.

    [0.3.0] - 2022-01-03

    Added

    • Support for no-std builds, via two new (default-enabled) feature flags:
      • alloc enables the pasta_curves::arithmetic::{CurveAffine, CurveExt} traits, as well as implementations of traits like group::WnafGroup.
      • sqrt-table depends on alloc, and enables the large precomputed tables (stored on the heap) that speed up square root computation.
    • pasta_curves::arithmetic::SqrtRatio trait, extending ff::PrimeField with square roots of ratios. This trait is likely to be moved into the ff crate in a future release (once we're satisfied with it).

    Removed

    • pasta_curves::arithmetic:
      • Field re-export (pasta_curves::group::ff::Field is equivalent).
      • FieldExt::ROOT_OF_UNITY (use ff::PrimeField::root_of_unity instead).
      • FieldExt::{T_MINUS1_OVER2, pow_by_t_minus1_over2, get_lower_32, sqrt_alt, sqrt_ratio} (moved to SqrtRatio trait).
      • FieldExt::{RESCUE_ALPHA, RESCUE_INVALPHA}
      • FieldExt::from_u64 (use From<u64> for ff::PrimeField instead).
      • FieldExt::{from_bytes, read, to_bytes, write} (use ff::PrimeField::{from_repr, to_repr} instead).
      • FieldExt::rand (use ff::Field::random instead).
      • CurveAffine::{read, write} (use group::GroupEncoding::{from_bytes, to_bytes} instead).

    [0.2.1] - 2021-09-17

    Changed

    • The crate is now licensed as MIT OR Apache-2.0.

    [0.2.0] - 2021-09-02

    Changed

    • Migrated to ff 0.11, group 0.11.

    [0.1.2] - 2021-08-06

    Added

    • Implementation of group::WnafGroup for Pallas and Vesta, enabling them to be used with group::Wnaf for targeted performance improvements.

    [0.1.1] - 2021-06-04

    Added

    • Implementations of group::cofactor::{CofactorCurve, CofactorCurveAffine} for Pallas and Vesta, enabling them to be used in cofactor-aware protocols that also want to leverage the affine point representation.

    [0.1.0] - 2021-06-01

    Initial release!

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 3
  • Update blake2b_simd requirement from 0.5 to 1.0

    Update blake2b_simd requirement from 0.5 to 1.0

    Updates the requirements on blake2b_simd to permit the latest version.

    Commits
    • 4e35d8b version 1.0.0
    • e678464 add From<[u8; OUTBYTES]> impls for the Hash types
    • 29df0a2 add Cross tests to CI
    • 4db6133 fix the test build on non-x86
    • 86c2d3a get rid of unused code warnings on non-x86 targets
    • 6336755 Refactor to use arrayvec 0.7
    • 7bf791e AES-CTR benchmarks
    • 0ecb8e4 add AES-GCM benchmarks
    • 95e87ef version 0.5.11
    • 4249d73 add the readme and keywords to the blake2_bin Cargo.toml
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 3
  • Fix alloc feature

    Fix alloc feature

    Problem

    pasta_curves/alloc, which requires #[global_allocator], is not disabled on default-features=false

    Solution

    • pasta_curves/alloc disabled by default
    • pasta_curves/alloc enabled in dev-dependencies
    opened by jarys 2
  • Update group requirement from 0.11 to 0.12

    Update group requirement from 0.11 to 0.12

    Updates the requirements on group to permit the latest version.

    Changelog

    Sourced from group's changelog.

    [0.12.0] - 2022-05-04

    Changed

    • MSRV is now 1.56.0.
    • Bumped ff to 0.12

    [0.11.0] - 2021-09-02

    Fixed

    • The affine scalar multiplication bounds on the following traits had typos that prevented multiplying by &Self::Scalar, which has now been fixed:
      • group::cofactor::{CofactorCurve::Affine, CofactorCurveAffine}
      • group::prime::{PrimeCurve::Affine, PrimeCurveAffine}

    Added

    • Copy + Send + Sync + 'static bounds on group::GroupEncoding::Repr.

    Changed

    • Bumped ff to 0.11.

    [0.10.0] - 2021-06-01

    Added

    • group::ff, which re-exports the ff crate to make version-matching easier.

    Changed

    • MSRV is now 1.51.0.
    • Bumped ff to 0.10.

    Removed

    • group::cofactor::CofactorGroup::is_torsion_free provided implementation (trait implementors must now implement this method themselves). This avoids a hard dependency on the ff/bits feature flag.

    [0.9.0] - 2021-01-06

    Changed

    • Bumped dependencies to ff 0.9, rand_core 0.6, rand 0.8.

    [0.8.0] - 2020-09-08

    Added

    • no_std support.

    Changed

    • MSRV is now 1.44.0.
    • Bumped ff to 0.8.
    • group::{wnaf, Wnaf, WnafGroup} are now gated behind the (default-enabled) alloc feature flag. The byteorder dependency is now optional.
    • group::tests is now gated behind the tests feature flag. The rand and rand_xorshift dependencies are now optional.

    Removed

    • fmt::Display bound from the following traits:
      • group::Group

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 2
  • Update jubjub requirement from 0.8 to 0.9

    Update jubjub requirement from 0.8 to 0.9

    Updates the requirements on jubjub to permit the latest version.

    Changelog

    Sourced from jubjub's changelog.

    0.9.0

    Changed

    • Bumped MSRV to 1.56.0
    • Bumped dependencies to bls12_381 0.7, ff 0.12, group 0.12, bitvec 1.0.

    0.8.0

    Added

    • jubjub::Base, as an alias for jubjub::Fq.
    • jubjub::AffinePoint::batch_from_bytes, which enables the inversion inside jubjub::AffinePoint::from_bytes to be batched.

    Changed

    • Bumped dependencies to bls12_381 0.6, ff 0.11, group 0.11.

    0.7.0

    Security

    • A bug in the jubjub::{AffinePoint, ExtendedPoint, SubgroupPoint}::from_bytes APIs (and their group::GroupEncoding implementations) has been fixed. The APIs were documented as rejecting non-canonical points, but were accidentally accepting two specific non-canonical encodings. This could potentially cause a problem in consensus-critical protocols that expect encodings to be round-trip compatible (i.e. AffinePoint::from_bytes(b).unwrap().to_bytes() == b). See ZIP 216 for more details.
      • A new API jubjub::AffinePoint::from_bytes_pre_zip216_compatibility preserves the previous behaviour, for use where consensus compatibility is required.

    Changed

    • Bumped dependencies to bitvec 0.22, bls12_381 0.5, ff 0.10, group 0.10.
    • MSRV is now 1.51.0.

    0.6.0

    Changed

    • Bumped dependencies to bitvec 0.20, bls12_381 0.4, ff 0.9, group 0.9, rand_core 0.6.
    • MSRV is now 1.47.0.

    0.5.1

    Fixed

    • The crate now compiles for non-64-bit targets, such as the wasm32-* targets.

    0.5.0

    This upgrade bumps our dependencies bls12_381, group and ff, while making corresponding changes to the APIs. This release now only supports Rust compilers version 1.44.0 or later.

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 2
  • Bump codecov/codecov-action from 2.1.0 to 3.0.0

    Bump codecov/codecov-action from 2.1.0 to 3.0.0

    Bumps codecov/codecov-action from 2.1.0 to 3.0.0.

    Release notes

    Sourced from codecov/codecov-action's releases.

    v3.0.0

    Breaking Changes

    • #689 Bump to node16 and small fixes

    Features

    • #688 Incorporate gcov arguments for the Codecov uploader

    Dependencies

    • #548 build(deps-dev): bump jest-junit from 12.2.0 to 13.0.0
    • #603 [Snyk] Upgrade @​actions/core from 1.5.0 to 1.6.0
    • #628 build(deps): bump node-fetch from 2.6.1 to 3.1.1
    • #634 build(deps): bump node-fetch from 3.1.1 to 3.2.0
    • #636 build(deps): bump openpgp from 5.0.1 to 5.1.0
    • #652 build(deps-dev): bump @​vercel/ncc from 0.30.0 to 0.33.3
    • #653 build(deps-dev): bump @​types/node from 16.11.21 to 17.0.18
    • #659 build(deps-dev): bump @​types/jest from 27.4.0 to 27.4.1
    • #667 build(deps): bump actions/checkout from 2 to 3
    • #673 build(deps): bump node-fetch from 3.2.0 to 3.2.3
    • #683 build(deps): bump minimist from 1.2.5 to 1.2.6
    • #685 build(deps): bump @​actions/github from 5.0.0 to 5.0.1
    • #681 build(deps-dev): bump @​types/node from 17.0.18 to 17.0.23
    • #682 build(deps-dev): bump typescript from 4.5.5 to 4.6.3
    • #676 build(deps): bump @​actions/exec from 1.1.0 to 1.1.1
    • #675 build(deps): bump openpgp from 5.1.0 to 5.2.1
    Changelog

    Sourced from codecov/codecov-action's changelog.

    3.0.0

    Breaking Changes

    • #689 Bump to node16 and small fixes

    Features

    • #688 Incorporate gcov arguments for the Codecov uploader

    Dependencies

    • #548 build(deps-dev): bump jest-junit from 12.2.0 to 13.0.0
    • #603 [Snyk] Upgrade @​actions/core from 1.5.0 to 1.6.0
    • #628 build(deps): bump node-fetch from 2.6.1 to 3.1.1
    • #634 build(deps): bump node-fetch from 3.1.1 to 3.2.0
    • #636 build(deps): bump openpgp from 5.0.1 to 5.1.0
    • #652 build(deps-dev): bump @​vercel/ncc from 0.30.0 to 0.33.3
    • #653 build(deps-dev): bump @​types/node from 16.11.21 to 17.0.18
    • #659 build(deps-dev): bump @​types/jest from 27.4.0 to 27.4.1
    • #667 build(deps): bump actions/checkout from 2 to 3
    • #673 build(deps): bump node-fetch from 3.2.0 to 3.2.3
    • #683 build(deps): bump minimist from 1.2.5 to 1.2.6
    • #685 build(deps): bump @​actions/github from 5.0.0 to 5.0.1
    • #681 build(deps-dev): bump @​types/node from 17.0.18 to 17.0.23
    • #682 build(deps-dev): bump typescript from 4.5.5 to 4.6.3
    • #676 build(deps): bump @​actions/exec from 1.1.0 to 1.1.1
    • #675 build(deps): bump openpgp from 5.1.0 to 5.2.1
    Commits
    • e3c5604 Merge pull request #689 from codecov/feat/gcov
    • 174efc5 Update package-lock.json
    • 6243a75 bump to 3.0.0
    • 0d6466f Bump to node16
    • d4729ee fetch.default
    • 351baf6 fix: bash
    • d8cf680 Merge pull request #675 from codecov/dependabot/npm_and_yarn/openpgp-5.2.1
    • b775e90 Merge pull request #676 from codecov/dependabot/npm_and_yarn/actions/exec-1.1.1
    • 2ebc2f0 Merge pull request #682 from codecov/dependabot/npm_and_yarn/typescript-4.6.3
    • 8e2ef2b Merge pull request #681 from codecov/dependabot/npm_and_yarn/types/node-17.0.23
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 2
  • Bump codecov/codecov-action from 2.1.0 to 3

    Bump codecov/codecov-action from 2.1.0 to 3

    Bumps codecov/codecov-action from 2.1.0 to 3.

    Release notes

    Sourced from codecov/codecov-action's releases.

    v3.0.0

    Breaking Changes

    • #689 Bump to node16 and small fixes

    Features

    • #688 Incorporate gcov arguments for the Codecov uploader

    Dependencies

    • #548 build(deps-dev): bump jest-junit from 12.2.0 to 13.0.0
    • #603 [Snyk] Upgrade @​actions/core from 1.5.0 to 1.6.0
    • #628 build(deps): bump node-fetch from 2.6.1 to 3.1.1
    • #634 build(deps): bump node-fetch from 3.1.1 to 3.2.0
    • #636 build(deps): bump openpgp from 5.0.1 to 5.1.0
    • #652 build(deps-dev): bump @​vercel/ncc from 0.30.0 to 0.33.3
    • #653 build(deps-dev): bump @​types/node from 16.11.21 to 17.0.18
    • #659 build(deps-dev): bump @​types/jest from 27.4.0 to 27.4.1
    • #667 build(deps): bump actions/checkout from 2 to 3
    • #673 build(deps): bump node-fetch from 3.2.0 to 3.2.3
    • #683 build(deps): bump minimist from 1.2.5 to 1.2.6
    • #685 build(deps): bump @​actions/github from 5.0.0 to 5.0.1
    • #681 build(deps-dev): bump @​types/node from 17.0.18 to 17.0.23
    • #682 build(deps-dev): bump typescript from 4.5.5 to 4.6.3
    • #676 build(deps): bump @​actions/exec from 1.1.0 to 1.1.1
    • #675 build(deps): bump openpgp from 5.1.0 to 5.2.1
    Changelog

    Sourced from codecov/codecov-action's changelog.

    3.0.0

    Breaking Changes

    • #689 Bump to node16 and small fixes

    Features

    • #688 Incorporate gcov arguments for the Codecov uploader

    Dependencies

    • #548 build(deps-dev): bump jest-junit from 12.2.0 to 13.0.0
    • #603 [Snyk] Upgrade @​actions/core from 1.5.0 to 1.6.0
    • #628 build(deps): bump node-fetch from 2.6.1 to 3.1.1
    • #634 build(deps): bump node-fetch from 3.1.1 to 3.2.0
    • #636 build(deps): bump openpgp from 5.0.1 to 5.1.0
    • #652 build(deps-dev): bump @​vercel/ncc from 0.30.0 to 0.33.3
    • #653 build(deps-dev): bump @​types/node from 16.11.21 to 17.0.18
    • #659 build(deps-dev): bump @​types/jest from 27.4.0 to 27.4.1
    • #667 build(deps): bump actions/checkout from 2 to 3
    • #673 build(deps): bump node-fetch from 3.2.0 to 3.2.3
    • #683 build(deps): bump minimist from 1.2.5 to 1.2.6
    • #685 build(deps): bump @​actions/github from 5.0.0 to 5.0.1
    • #681 build(deps-dev): bump @​types/node from 17.0.18 to 17.0.23
    • #682 build(deps-dev): bump typescript from 4.5.5 to 4.6.3
    • #676 build(deps): bump @​actions/exec from 1.1.0 to 1.1.1
    • #675 build(deps): bump openpgp from 5.1.0 to 5.2.1
    Commits
    • e3c5604 Merge pull request #689 from codecov/feat/gcov
    • 174efc5 Update package-lock.json
    • 6243a75 bump to 3.0.0
    • 0d6466f Bump to node16
    • d4729ee fetch.default
    • 351baf6 fix: bash
    • d8cf680 Merge pull request #675 from codecov/dependabot/npm_and_yarn/openpgp-5.2.1
    • b775e90 Merge pull request #676 from codecov/dependabot/npm_and_yarn/actions/exec-1.1.1
    • 2ebc2f0 Merge pull request #682 from codecov/dependabot/npm_and_yarn/typescript-4.6.3
    • 8e2ef2b Merge pull request #681 from codecov/dependabot/npm_and_yarn/types/node-17.0.23
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 2
  • Update digest requirement from 0.9 to 0.10

    Update digest requirement from 0.9 to 0.10

    Updates the requirements on digest to permit the latest version.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 2
  • Bump actions/checkout from 3.0.2 to 3.1.0

    Bump actions/checkout from 3.0.2 to 3.1.0

    Bumps actions/checkout from 3.0.2 to 3.1.0.

    Release notes

    Sourced from actions/checkout's releases.

    v3.1.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/actions/checkout/compare/v3.0.2...v3.1.0

    Changelog

    Sourced from actions/checkout's changelog.

    v3.1.0

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 1
  • v0.3.0 release

    v0.3.0 release

    Update changelog and TOML for 0.3.0 release.

    I was not sure about the html_root_url reference but it seems it's not used anymore so I deleted the comment.

    opened by conradoplg 1
  • Bump actions/checkout from 3.0.2 to 3.2.0

    Bump actions/checkout from 3.0.2 to 3.2.0

    Bumps actions/checkout from 3.0.2 to 3.2.0.

    Release notes

    Sourced from actions/checkout's releases.

    v3.2.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/actions/checkout/compare/v3...v3.2.0

    v3.1.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/actions/checkout/compare/v3.0.2...v3.1.0

    Changelog

    Sourced from actions/checkout's changelog.

    Changelog

    v3.1.0

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions no-review-reminders 
    opened by dependabot[bot] 0
  • Update group requirement from 0.12 to 0.13

    Update group requirement from 0.12 to 0.13

    Updates the requirements on group to permit the latest version.

    Changelog

    Sourced from group's changelog.

    [0.13.0] - 2022-12-06

    Changed

    • Bumped ff to 0.13

    [0.12.1] - 2022-10-13

    Added

    • group::{WnafBase, WnafScalar} structs for caching precomputations of both bases and scalars, for improved many-base many-scalar multiplication performance.
    • impl memuse::DynamicUsage for group::{Wnaf WnafBase, WnafScalar}, behind the new wnaf-memuse feature flag, to enable the heap usage of these types to be measured at runtime.

    Changed

    • Removed temporary allocations from Wnaf internals for improved performance.

    [0.12.0] - 2022-05-04

    Changed

    • MSRV is now 1.56.0.
    • Bumped ff to 0.12

    [0.11.0] - 2021-09-02

    Fixed

    • The affine scalar multiplication bounds on the following traits had typos that prevented multiplying by &Self::Scalar, which has now been fixed:
      • group::cofactor::{CofactorCurve::Affine, CofactorCurveAffine}
      • group::prime::{PrimeCurve::Affine, PrimeCurveAffine}

    Added

    • Copy + Send + Sync + 'static bounds on group::GroupEncoding::Repr.

    Changed

    • Bumped ff to 0.11.

    [0.10.0] - 2021-06-01

    Added

    • group::ff, which re-exports the ff crate to make version-matching easier.

    Changed

    • MSRV is now 1.51.0.
    • Bumped ff to 0.10.

    Removed

    • group::cofactor::CofactorGroup::is_torsion_free provided implementation (trait implementors must now implement this method themselves). This avoids a hard dependency on the ff/bits feature flag.

    [0.9.0] - 2021-01-06

    Changed

    • Bumped dependencies to ff 0.9, rand_core 0.6, rand 0.8.

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust no-review-reminders 
    opened by dependabot[bot] 0
  • Update pasta_curves requirement from 0.4 to 0.5

    Update pasta_curves requirement from 0.4 to 0.5

    Updates the requirements on pasta_curves to permit the latest version.

    Changelog

    Sourced from pasta_curves's changelog.

    [0.5.0] - 2022-12-06

    Added

    • serde feature flag, which enables Serde compatibility to the crate types. Field elements and points are serialized to their canonical byte encoding (encoded as hexadecimal if the data format is human readable).

    Changed

    • Migrated to ff 0.13, group 0.13, ec-gpu 0.2.
    • pasta_curves::arithmetic:
      • FieldExt bounds on associated types of CurveExt and CurveAffine have been replaced by bounds on ff::WithSmallOrderMulGroup<3> (and Ord in the case of CurveExt).
    • pasta_curves::hashtocurve:
      • FieldExt bounds on the module functions have been replaced by equivalent ff trait bounds.

    Removed

    • pasta_curves::arithmetic:
      • FieldExt (use ff::PrimeField or ff::WithSmallOrderMulGroup instead).
      • Group
      • SqrtRatio (use ff::Field::{sqrt_ratio, sqrt_alt} instead).
      • SqrtTables (from public API, as it isn't suitable for generic usage).

    [0.4.1] - 2022-10-13

    Added

    • uninline-portable feature flag, which disables inlining of some functions. This is useful for tiny microchips (such as ARM Cortex-M0), where inlining can hurt performance and blow up binary size.

    [0.4.0] - 2022-05-05

    Changed

    • MSRV is now 1.56.0.
    • Migrated to ff 0.12, group 0.12.

    [0.3.1] - 2022-04-20

    Added

    • gpu feature flag, which exposes implementations of the GpuField trait from the ec-gpu crate for pasta_curves::{Fp, Fq}. This flag will eventually control all GPU functionality.
    • repr-c feature flag, which helps to facilitate usage of this crate's types across FFI by conditionally adding repr(C) attribute to point structures.
    • pasta_curves::arithmetic::Coordinates::from_xy

    Changed

    • pasta_curves::{Fp, Fq} are now declared as repr(transparent), to enable their use across FFI. They remain opaque structs in Rust code.

    [0.3.0] - 2022-01-03

    Added

    • Support for no-std builds, via two new (default-enabled) feature flags:

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust no-review-reminders 
    opened by dependabot[bot] 0
  • clippy fixes; remove old FROST code

    clippy fixes; remove old FROST code

    Make clippy happy; and to avoid fixing uneeded stuff, remove old FROST code which should be replaced soon in https://github.com/ZcashFoundation/frost/issues/121

    Not sure if this will break someone's code (It shouldn't?), let me know

    no-review-reminders 
    opened by conradoplg 1
  • Bump codecov/codecov-action from 3.1.0 to 3.1.1

    Bump codecov/codecov-action from 3.1.0 to 3.1.1

    Bumps codecov/codecov-action from 3.1.0 to 3.1.1.

    Release notes

    Sourced from codecov/codecov-action's releases.

    3.1.1

    What's Changed

    New Contributors

    Full Changelog: https://github.com/codecov/codecov-action/compare/v3.1.0...v3.1.1

    Changelog

    Sourced from codecov/codecov-action's changelog.

    3.1.1

    Fixes

    • #661 Update deprecation warning
    • #593 Create codeql-analysis.yml
    • #712 README: fix typo
    • #725 fix: Remove a blank row
    • #726 Update README.md with correct badge version
    • #633 Create scorecards-analysis.yml
    • #747 fix: add more verbosity to validation
    • #750 Regenerate scorecards-analysis.yml
    • #774 Switch to v3
    • #783 Fix network entry in table
    • #791 Trim arguments after splitting them
    • #769 Plumb failCi into verification function.

    Dependencies

    • #713 build(deps-dev): bump typescript from 4.6.3 to 4.6.4
    • #714 build(deps): bump node-fetch from 3.2.3 to 3.2.4
    • #724 build(deps): bump github/codeql-action from 1 to 2
    • #717 build(deps-dev): bump @​types/jest from 27.4.1 to 27.5.0
    • #729 build(deps-dev): bump @​types/node from 17.0.25 to 17.0.33
    • #734 build(deps-dev): downgrade @​types/node to 16.11.35
    • #723 build(deps): bump actions/checkout from 2 to 3
    • #733 build(deps): bump @​actions/github from 5.0.1 to 5.0.3
    • #732 build(deps): bump @​actions/core from 1.6.0 to 1.8.2
    • #737 build(deps-dev): bump @​types/node from 16.11.35 to 16.11.36
    • #749 build(deps): bump ossf/scorecard-action from 1.0.1 to 1.1.0
    • #755 build(deps-dev): bump typescript from 4.6.4 to 4.7.3
    • #759 build(deps-dev): bump @​types/node from 16.11.36 to 16.11.39
    • #762 build(deps-dev): bump @​types/node from 16.11.39 to 16.11.40
    • #746 build(deps-dev): bump @​vercel/ncc from 0.33.4 to 0.34.0
    • #757 build(deps): bump ossf/scorecard-action from 1.1.0 to 1.1.1
    • #760 build(deps): bump openpgp from 5.2.1 to 5.3.0
    • #748 build(deps): bump actions/upload-artifact from 2.3.1 to 3.1.0
    • #766 build(deps-dev): bump typescript from 4.7.3 to 4.7.4
    • #799 build(deps): bump openpgp from 5.3.0 to 5.4.0
    • #798 build(deps): bump @​actions/core from 1.8.2 to 1.9.1
    Commits
    • d9f34f8 release: update changelog and version to 3.1.1 (#828)
    • 0e9e7b4 Plumb failCi into verification function. (#769)
    • 7f20bd4 build(deps): bump @​actions/core from 1.8.2 to 1.9.1 (#798)
    • 13bc253 build(deps): bump openpgp from 5.3.0 to 5.4.0 (#799)
    • 5c0da1b Trim arguments after splitting them (#791)
    • 68d5f6d Fix network entry in table (#783)
    • 2a829b9 Switch to v3 (#774)
    • 8e09eaf build(deps-dev): bump typescript from 4.7.3 to 4.7.4 (#766)
    • 39e2229 build(deps): bump actions/upload-artifact from 2.3.1 to 3.1.0 (#748)
    • b2b7703 build(deps): bump openpgp from 5.2.1 to 5.3.0 (#760)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions no-review-reminders 
    opened by dependabot[bot] 0
Releases(0.3.0)
  • 0.3.0(May 10, 2022)

    Changes

    • v0.3.0 release (#24)
    • ci: test no_std build (#23)
    • Add no-std support (#11)
    • Migrate to group 0.12 (#22)
    • Bump codecov/codecov-action from 2.1.0 to 3.1.0 (#18)
    • Bump actions/checkout from 3.0.0 to 3.0.2 (#19)
    • Bump actions/checkout from 2.4.0 to 3 (#14)
    • Fix typo (#13)
    Source code(tar.gz)
    Source code(zip)
  • 0.2.0(Jan 19, 2022)

    Changes

    • Migrate to pasta_curves 0.3, blake2b_simd 1 (#10)
    • Update the include_str support to fix CI on nightly (#12)

    Full Changelog: https://github.com/ZcashFoundation/reddsa/compare/0.1.0...0.2.0

    Source code(tar.gz)
    Source code(zip)
Owner
Zcash Foundation
Zcash Foundation
⚡rustygram is a minimal and blazing fast telegram notification framework for Rust

⚡rustygram ⚡rustygram is a minimal and blazing fast telegram notification framework using Rust. Abstracts away the Telegram API complexity so your app

Chia Yong Kang 15 Dec 1, 2023
My Minimal Fasta Toolkit

My (Max's?) Minimal Fasta Toolkit Nothing sophisticated. Minimal, simple fasta tools. It's stuff that's been done many times, but this way I can get i

tolkit 3 Sep 15, 2022
Minimal cargo but for c/c++

Introduction We all love cargo, having an idea, do cargo new, type our idea and cargo r, easy right? Well... sometimes you want to do that in C or C++

cdecompilador 6 Oct 31, 2022
A boilerplate++ for a minimal rust web backend

Boiler room A boilerplate++ for a minimal rust web backend Just fork/clone/download this repo and build your backend on it. Why? Both routing and erro

null 3 Nov 28, 2022
Default implementation of the Wayland protocol for use with wl

Wayland An implementation of core Wayland interfaces and convenience functions for accelerating the development of Wayland clients and servers using t

AidoP 1 Jan 24, 2022
MeiliSearch is a powerful, fast, open-source, easy to use and deploy search engine

MeiliSearch is a powerful, fast, open-source, easy to use and deploy search engine. Both searching and indexing are highly customizable. Features such as typo-tolerance, filters, and synonyms are provided out-of-the-box. For more information about features go to our documentation.

MeiliSearch 31.6k Dec 30, 2022
Use enum to predicate something, support | and & operator.

Predicate Use enum to predicate something. Just need to implement Predicate Trait with predicate-macros crate, support | and & operator. Don't impleme

上铺小哥 9 Feb 8, 2022
Use explicit container types with Scrypto! Leverage the Rust compiler's type checking to increase security and productivity when developing Radix blueprints.

Scrypto Static Types Use explicit container types with Scrypto! Leverage the Rust compiler's type checking to increase security and productivity when

null 7 Aug 5, 2022
A high-level Rust crate around the Discord API, aimed to be easy and straight-forward to use.

rs-cord A high-level Rust crate around the Discord API, aimed to be easy and straight-forward to use. Documentation • Crates.io • Discord Navigation M

Jay3332 4 Sep 24, 2022
Easy-to-use optional function arguments for Rust

OptArgs uses const generics to ensure compile-time correctness. I've taken the liberty of expanding and humanizing the macros in the reference examples.

Jonathan Kelley 37 Nov 18, 2022
very cool esoteric language pls use

okfrick has one memory pointer has less than 5 characters hopefully works well is turing complete (possibly) + - increase memeory pointer value ( - st

null 3 Jun 24, 2021
Achieve it! How you ask? Well, it's pretty simple; just use greatness!

Greatness! Achieve it! How you ask? Well, it's pretty simple; just use greatness! Disclaimer I do not believe that greatness is the best. It fits a me

Isacc Barker (Milo Banks) 107 Sep 28, 2022
use variant nesting information to flter overlapping sites from vg deconstruct output

vcfbub popping bubbles in vg deconstruct VCFs overview The VCF output produced by a command like vg deconstruct -e -a -H '#' ... includes information

null 11 Dec 28, 2022
little brother of gnu-copypasta-maker To compile, use make.

UWU Maker little brother of gnu-copypasta-maker To compile, use make. To install, use sudo make install or if you are root make install To uninstall,

Ahmet Efe AKYAZI 1 Jan 12, 2022
Here are a few cargo-generate templates for use when creating bevy applications

Bevy-template-rs Here are a few cargo-generate templates for use when creating bevy applications. Templates Game This is a template for starting a new

Johnny Tidemand Vestergaard 19 Nov 4, 2022
Minimalistic solana minter program if you don't want to use Metaplex

Minimalistic solana minter program The objective of this repository is to be only a minimalistic template for NFTs projects on Solana, so you can buil

Gabriel 23 Sep 6, 2022
A flexible, simple to use, immutable, clone-efficient String replacement for Rust

flexstr A flexible, simple to use, immutable, clone-efficient String replacement for Rust Overview Rust is great, but it's String type is optimized as

Scott Meeuwsen 119 Dec 12, 2022
The easiest way to use BotiCord API in Rust

The easiest way to use BotiCord API in Rust · Docs Usage [dependencies]

BotiCord 6 Feb 14, 2022
An abstraction build on top of discord-rich-presence that makes possible to use it in a more declarative way

Declarative Discord Rich Presence This library is an abstraction build on top of discord-rich-presence crate that allows you to use it in a more decla

null 2 Sep 7, 2022