Displaying 1 to 20 from 20 results

tweetnacl-js - Port of TweetNaCl cryptographic library to JavaScript

  •    Javascript

Port of TweetNaCl / NaCl to JavaScript for modern browsers and Node.js. Public domain.The primary goal of this project is to produce a translation of TweetNaCl to JavaScript which is as close as possible to the original C implementation, plus a thin layer of idiomatic high-level API on top of it.

bulletproofs - Bulletproofs are short non-interactive zero-knowledge proofs that require no trusted setup

  •    Haskell

Bulletproofs are short zero-knowledge arguments of knowledge that do not require a trusted setup. Argument systems are proof systems with computational soundness. Bulletproofs are suitable for proving statements on committed values, such as range proofs, verifiable suffles, arithmetic circuits, etc. They rely on the discrete logarithmic assumption and are made non-interactive using the Fiat-Shamir heuristic.

coincurve - Cross-platform Python CFFI bindings for libsecp256k1

  •    Python

This library provides well-tested Python CFFI bindings for libsecp256k1, the heavily optimized C library used by Bitcoin Core for operations on elliptic curve secp256k1.Coincurve replaces secp256k1-py.




crypto-deck - Cryptographically secure Mental Card Deck implementation

  •    Javascript

Cryptographically secure Mental Card Deck implementation.This software is licensed under the MIT License.

Bitcoin-Cryptography-Library - Nayuki's implementation of cryptographic primitives used in Bitcoin.

  •    C++

This project implements the cryptographic primitives used in the Bitcoin system, especially elliptic curve operations and hash functions. The code is written in two independent versions in C++ and Java. It includes a test suite of over a thousand test vectors that cover every feature provided by the library.

kyber - Advanced crypto library for the Go language

  •    Go

This package provides a toolbox of advanced cryptographic primitives for Go, targeting applications like Cothority that need more than straightforward signing and encryption. Please see the Godoc documentation for this package for details on the library's purpose and API functionality. First make sure you have Go version 1.8 or newer installed.

secp256k1-ml - Elliptic curve library secp256k1 wrapper for Ocaml

  •    OCaml

All exchanged data (pubkey, signature, seckey) are represented as hex strings. You can improve this wrapper by submitting a pull request.


sigtool - Ed25519 signing & verification for arbitary files; like OpenBSD signifiy but written in Golang - only easier and simpler

  •    Go

sigtool is an opinionated tool to generate, sign and verify Ed25519 signatures on files. In many ways, it is like like OpenBSD's signify_ -- except written in Golang and definitely easier to use. It can sign and verify very large files - it prehashes the files with SHA-512 and then signs the SHA-512 checksum.

ed448 - A golang implementation of Ed448-Goldilocks

  •    Go

This is an implementation of the Edwards elliptic curve with a field size of 448, as described by Mike Hamburg in his paper "Ed448-Goldilocks, a new elliptic curve". This code is provided as is and does not have any warranty. Use it at your own risk. This code is still unstable and under constant development so you might want to wait for a future release in order to use it.

libgoldilocks - An implementation of Mike Hamburg's Ed448 (Goldilocks) curve - derived from libdecaf

  •    C

The Goldilocks library is a production library, providing the ed448 elliptic curve. It is based on Mike Hamburg's libdecaf library: ed448goldilocks. This library is intended for developers who have experience with cryptography. It doesn't (yet?) include documentation on how to use digital signatures or key exchange securely. Consult your local cryptographer for advice.

jc_curve25519 - Javacard implementation of Curve25519 (prototype, work-in-progress)

  •    Java

Javacard implementation of Curve25519 (prototype, work-in-progress). This code is in the public domain.

zkp - Experimental zero-knowledge proof compiler in Rust macros

  •    Rust

This crate has an experimental zero-knowledge proof compiler implemented using Rust macros. This code has not yet received sufficient peer review by other qualified cryptographers to be considered in any way, shape, or form, safe.

curve25519-dalek - A pure-Rust implementation of group operations on Ristretto and Curve25519

  •    Rust

A pure-Rust implementation of group operations on Ristretto and Curve25519. curve25519-dalek is a library providing group operations on the Edwards and Montgomery forms of Curve25519, and on the prime-order Ristretto group.

aos-signature - Abe-Ohkubo-Suzuki Linkable Ring Signatures

  •    Haskell

A ring signature, also know as a Spontaneous Anonymous Group (SAG) or 1-out-of-n signature, convinces a verifier that a message is signed by any member in a group of n independent signers without allowing the verifier to identify who the signer was. In their paper, "1-out-of-n Signatures from a Variety of Keys"[1], Abe, Ohkubo and Suzuki (AOS) present a method to construct a 1-out-of-n signature scheme that allows mixture use of different flavours of keys at the same time.

oblivious-transfer - 1-out-of-N oblivious transfer

  •    Haskell

Oblivious Transfer (OT) is a cryptographic primitive in which a sender transfers some of potentially many pieces of information to a receiver. The sender doesn't know which pieces of information have been transferred. Oblivious transfer is central to many of the constructions for secure multiparty computation. In its most basic form, the sender has two secret messages as inputs, m0 and m1; the receiver has a choice bit c as input. At the end of the 1-out-of-2 OT protocol, the receiver should only learn message Mc, while the sender should not learn the value of the receiver's input c.

pedersen-commitment - Cryptographic Commitment Schemes

  •    Haskell

Commitment schemes are a way for one counterparty to commit to a value such that the value committed remains private, but can be revealed at a later time when the committing party divulges a necessary parameter of the commitment process. Strong commitment schemes must be both information hiding and computationally binding. Using Pedersen commitments we implement mutually independent commitments system, a secure multiparty communication protocol in which counterparties can commit to arbitrary messages or data in a binding way.

schnorr-nizk - Schnorr Protocol for Non-interactive Zero-Knowledge Proofs

  •    Haskell

The purpose of the Schnorr protocol is to allow one to prove the knowledge of a discrete logarithm without revealing its value. The protocol is defined for a cyclic group of order n.

BulletproofJS - Set of JavaScript based tools and Ethereum Solidity contracts for BulletProof based range proofs and confidential transactions

  •    Javascript

All source code and information in this repository is available under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. See the LICENSE file for more info.

hacl - :camel::key: OCaml bindings for HACL* elliptic curves

  •    C

These are bindings to the various primitives present in Project Everest. In particular, the C code comes from this snapshot, originally for use in the Tezos project.