schnorrkel | Schnorr VRFs and signatures on the Ristretto group | Cryptography library
kandi X-RAY | schnorrkel Summary
kandi X-RAY | schnorrkel Summary
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
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of schnorrkel
schnorrkel Key Features
schnorrkel Examples and Code Snippets
Community Discussions
Trending Discussions on schnorrkel
QUESTION
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:37It 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
:
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install schnorrkel
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
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page