Skip to content

Commit

Permalink
init
Browse files Browse the repository at this point in the history
  • Loading branch information
venuswhispers committed Aug 15, 2024
0 parents commit f92252d
Show file tree
Hide file tree
Showing 63 changed files with 12,993 additions and 0 deletions.
28 changes: 28 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Build

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
schedule:
- cron: '0 5 * * *'
workflow_call:

env:
CARGO_TERM_COLOR: always

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: Swatinem/rust-cache@v1
- name: Build
run: cargo build --verbose
- name: Run tests
run: cargo test --verbose
- name: Check formatting
run: cargo fmt --all -- --check
- name: Run clippy
run: cargo clippy -- -D clippy::all
19 changes: 19 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Publish

on:
push:
tags:
- v*.*.*

jobs:
build:
uses: ZenGo-X/multi-party-ecdsa/.github/workflows/build.yml@master
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Publish crate
env:
TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
run: |
cargo publish --token "$TOKEN"
17 changes: 17 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Generated by Cargo
# will have compiled files and executables
/target/

# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
Cargo.lock

# These are backup files generated by rustfmt
**/*.rs.bk

.idea
.DS_Store

keys*.store
signature

1 change: 1 addition & 0 deletions .rustfmt.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
edition = "2018"
59 changes: 59 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
Contributing to the Multi-party ECDSA project
=====================================

Pull requests are always welcome, and the KZen dev team appreciates any help the community can
give to help make Multi-party ECDSA project better.

Contributor Agreement (CA)
----------------

Any contributor must sign the Contributor Agreement (CA).

### How to sign the Contributor Agreement (CA)?

Please send an email to [github@kzencorp.com](mailto:github@kzencorp.com) containing your github username, the CA will be send to you by email.
After signature you will be added to the team as a contributor.

Communication Channels
----------------

* Most communication about KZen cryptography happens on Telegram, feel free to send us an email with your contact details.

* Discussion about code base improvements happens in GitHub issues and on pull requests.

Contributor Workflow
----------------

The codebase is maintained using the "contributor workflow" where everyone contributes patch proposals using "pull requests". This facilitates social contribution, easy testing and peer review.

To contribute a patch, the workflow is as follows:

* Fork repository
* Create topic branch
* Commit patches
* Push changes to your fork
* Create pull request

Make sure to provide a clear description in your Pull Request (PR).

### Header

Make sure to include the following header (by configuring your IDE) in all files:

```rust
/*
Multi-party ECDSA
Copyright 2018 by Kzen Networks
This file is part of Multi-party ECDSA library
(https://github.com/KZen-networks/multi-party-ecdsa)
Multi-party ECDSA is free software: you can redistribute
it and/or modify it under the terms of the GNU General Public
License as published by the Free Software Foundation, either
version 3 of the License, or (at your option) any later version.
@license GPL-3.0+ <https://github.com/KZen-networks/multi-party-ecdsa/blob/master/LICENSE>
*/
```
114 changes: 114 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
[package]
name = "multi-party-ecdsa"
version = "0.8.1"
edition = "2018"
authors = [
"Gary <gary@kzencorp.com>",
"Omer <omer.shlomovits@gmail.com>"
]
keywords = [
"ecdsa",
"multi-party-ecdsa",
"signature",
"rust",
"secret-shares",
"blockchain",
"cryptography",
"cryptocurrency"
]

homepage = "https://github.com/KZen-networks/multi-party-ecdsa"
repository = "https://github.com/KZen-networks/multi-party-ecdsa"
license = "GPL-3.0-or-later"
categories = ["cryptography"]

[lib]
crate-type = ["lib"]

[features]
default = ["curv-kzen/rust-gmp-kzen"]
cclst = ["class_group"]

[dependencies]
subtle = { version = "2" }
serde = { version = "1.0", features = ["derive"] }
zeroize = "1"
curv-kzen = { version = "0.9", default-features = false }
centipede = { version = "0.3", default-features = false }
zk-paillier = { version = "0.4.3", default-features = false }
round-based = { version = "0.1.4", features = [] }
thiserror = "1.0.23"
derivative = "2"
sha2 = "0.9"

[dependencies.paillier]
version = "0.4.2"
package = "kzen-paillier"
default-features = false

[dependencies.class_group]
version = "0.6"
default-features = false
optional = true

[dev-dependencies]
criterion = "0.3"
aes-gcm = "0.9.4"
hex = "0.4"
tokio = { version = "1", default-features = false, features = ["macros"] }
futures = "0.3"
rocket = { version = "0.5.0-rc.1", default-features = false, features = ["json"] }
reqwest = { version = "0.9", default-features = false }
uuid = { version = "0.8", features = ["v4"] }
serde_json = "1.0"
rand = "0.8"
surf = "2"
async-sse = "5"
anyhow = "1"
structopt = "0.3"
secp256k1 = { version = "0.20", features = ["global-context"]}

thiserror = "1.0.23"
round-based = { version = "0.1.4", features = ["dev"] }

[[example]]
name = "gg18_sm_manager"

[[example]]
name = "gg18_sign_client"

[[example]]
name = "gg18_keygen_client"

[[example]]
name = "common"
crate-type = ["lib"]

[[bench]]
name = "cclst_keygen"
path = "benches/two_party_ecdsa/cclst_2019/keygen.rs"
required-features = ["cclst"]
harness = false

[[bench]]
name = "cclst_sign"
path = "benches/two_party_ecdsa/cclst_2019/sign.rs"
required-features = ["cclst"]
harness = false


[[bench]]
name = "gg18"
path = "benches/multi_party_ecdsa/gg18/keygen.rs"
harness = false

[[bench]]
name = "lindel2017_keygen"
path = "benches/two_party_ecdsa/lindell_2017/keygen.rs"
harness = false


[[bench]]
name = "lindel2017_sign"
path = "benches/two_party_ecdsa/lindell_2017/sign.rs"
harness = false
Loading

0 comments on commit f92252d

Please sign in to comment.