schnorrkel | Schnorr VRFs and signatures on the Ristretto group | Cryptography library

 by   w3f Rust Version: Current License: BSD-3-Clause

kandi X-RAY | schnorrkel Summary

kandi X-RAY | schnorrkel Summary

schnorrkel is a Rust library typically used in Security, Cryptography applications. schnorrkel has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.

Schnorrkel implements Schnorr signature on Ristretto compressed Ed25519 points, as well as related protocols like HDKD, MuSig, and a verifiable random function (VRF). Ristretto implements roughly section 7 of Mike Hamburg's Decaf paper to provide the 2-torsion free points of the Ed25519 curve as a prime order group. (related). We employ the merlin strategy of type specific hashing methods with sound domain separation. These wrap Mike Hamburg's STROBE128 construction for symmetric cryptography, itself based on Keccak. In practice, all our methods consume either a merlin::Transcript which developers create handily by feeding data to context specific builders. We do however also support &mut merlin::Transcript like the merlin crate prefers. We shall exploit this in future to adapt schnorrkel to better conform with the dalek ecosystem's zero-knowledge proof tooling. We model the VRF itself on "Making NSEC5 Practical for DNSSEC" by Dimitrios Papadopoulos, Duane Wessels, Shumon Huque, Moni Naor, Jan Včelák, Leonid Rezyin, andd Sharon Goldberg. We note the V(X)EdDSA signature scheme by Trevor Perrin at is basically identical to the NSEC5 construction. Also, the VRF supports individual signers merging numerous VRF outputs created with the same keypair, which parallels the "DLEQ Proofs" and "Batching the Proofs" sections of "Privacy Pass - The Math" by Alex Davidson, and "Privacy Pass: Bypassing Internet Challenges Anonymously" by Alex Davidson, Ian Goldberg, Nick Sullivan, George Tankersley, and Filippo Valsorda. Aside from some naive sequential VRF construction, we currently only support the three-round MuSig for Schnorr multi-signatures, due to all other Schnorr multi-signatures being somewhat broken. In future, we should develop secure schemes like mBCJ from section 5.1 starting page 21 of however mBCJ itself works by proof-of-possession, while a delinearized variant sounds more applicable. There are partial bindings for C, JavaScript, and Python as well.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              schnorrkel has a low active ecosystem.
              It has 261 star(s) with 79 fork(s). There are 15 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              There are 22 open issues and 39 have been closed. On average issues are closed in 111 days. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of schnorrkel is current.

            kandi-Quality Quality

              schnorrkel has 0 bugs and 0 code smells.

            kandi-Security Security

              schnorrkel has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              schnorrkel code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              schnorrkel is licensed under the BSD-3-Clause License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              schnorrkel releases are not available. You will need to build from source code and install.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of schnorrkel
            Get all kandi verified functions for this library.

            schnorrkel Key Features

            No Key Features are available at this moment for schnorrkel.

            schnorrkel Examples and Code Snippets

            No Code Snippets are available at this moment for schnorrkel.

            Community Discussions

            QUESTION

            Rust/Wasm: Module not found: Error: Can't resolve 'env' in
            Asked 2019-Feb-11 at 23:37

            I am trying to port a wrapper for this crate into wasm. My current toolchain is:

            • wasm-pack
            • webpack
            • wasm-bindgen

            A bit more info on the build system:

            In my rust crate (which is a --lib crate), I only call wasm-pack build --target browser. This will create a pkg folder containing wasm blobs and associated js files. No complaints from the compiler here.

            Then, inside pkg, I run npm link (just once).

            Then, cargo generate --git https://github.com/rustwasm/wasm-pack-template creates the required web-app boilerplate. Inside the folder generated by this command, I run npm link schnorrkel-js to make it visible. npm run start runs the webpack dev server.

            initial tests like binding simple calculation functions and alert work fine.

            Everything breaks when I start using some (not any) functions from the mentioned crate (example). Unfortunately, the error message that I get is quite un-informative and does not help at all:

            ...

            ANSWER

            Answered 2019-Feb-11 at 23:37

            It looks like this could be an issue with the C code used by the clear_on_drop dependency, as mentioned here.

            Try enabling the nightly feature on the schnorrkel crate, which in turn enables the nightly feature on clear_on_drop that disables its usage of C. On your Cargo.toml:

            Source https://stackoverflow.com/questions/54598317

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install schnorrkel

            You can download it from GitHub.
            Rust is installed and managed by the rustup tool. Rust has a 6-week rapid release process and supports a great number of platforms, so there are many builds of Rust available at any time. Please refer rust-lang.org for more information.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/w3f/schnorrkel.git

          • CLI

            gh repo clone w3f/schnorrkel

          • sshUrl

            git@github.com:w3f/schnorrkel.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Cryptography Libraries

            dogecoin

            by dogecoin

            tink

            by google

            crypto-js

            by brix

            Ciphey

            by Ciphey

            libsodium

            by jedisct1

            Try Top Libraries by w3f

            Grants-Program

            by w3fJavaScript

            polkadot-wiki

            by w3fJavaScript

            polkadot-validator-setup

            by w3fJavaScript

            Web3-wiki

            by w3fHTML