Vladimir Komendantskiy
e28b77d86d
use Rust 1.29
2018-09-22 10:19:36 +02:00
Fletcher Haynes
e0c488a214
Adds a few more benchmarks for poly operators. Changed benchmarks to use a seeded rng for reproducibility.
2018-09-19 08:52:00 +02:00
DrPeterVanNostrand
5f09f96345
Added type for clearing temporary values.
2018-09-14 13:34:35 -07:00
Andrew Gross
b48a4b6812
Merge pull request #32 from poanetwork/ag_typos
...
Typo fixes, added Code of Conduct file
2018-09-12 20:44:44 -06:00
Andrew Gross
b39cc1f909
Typo fixes, added Code of Conduct file
2018-09-12 11:28:23 -06:00
Vladimir Komendantskiy
a2fa8a4b8f
Merge pull request #28 from poanetwork/try-prefixed-constructors
...
Added 'try_' constructors to secret types.
2018-09-04 19:19:15 +01:00
DrPeterVanNostrand
f7d9c26b9a
Added 'Testing' section to readme.
2018-09-04 08:37:45 -07:00
DrPeterVanNostrand
72d1c607f8
Added 'try_' constructors to secret types.
2018-09-04 15:10:20 +00:00
Andreas Fackler
ded335f236
Simplify Poly multiplication, speed up interpolation. ( #23 )
...
* Simplify Poly multiplication, speed up interpolation.
Also add more `Mul` implementations.
* Postpone division: speed up interpolation some more.
* Speed up interpolation: re-use base polynomial.
2018-09-03 17:30:52 +02:00
Vladimir Komendantskiy
76ac2a5415
Merge pull request #22 from poanetwork/afck-fmt
...
Use Formatter debug helpers. Hide SecretKeyShares.
2018-09-03 11:16:32 +01:00
Andreas Fackler
a03d258e9d
Use Formatter debug helpers. Hide SecretKeyShares.
...
Output "..." in the `Debug` implementation of `SecretKeyShare`, to make
it consistent with `SecretKey`.
2018-09-03 11:47:18 +02:00
Marc Brinkmann
a7cd6e0529
Update to Rust `beta` channel.
2018-08-31 15:53:50 +02:00
Andreas Fackler
02109b586e
Benchmark polynomials of different degrees.
2018-08-30 14:35:23 +02:00
DrPeterVanNostrand
d783f2756e
Added benchmarks for polynomial multiplication and interpolation.
2018-08-30 09:47:05 +02:00
Andrew Gross
2f3b061b82
Merge pull request #15 from andogro/ag-README-edits
...
Minor README modifications, added environment variables section.
2018-08-29 19:26:41 -06:00
c0gent
43799fc0cf
Travis: Enable cpu-specific optimizations.
2018-08-29 19:35:29 +02:00
Andrew Gross
9839566799
Minor README modifications, added environment variables section
2018-08-29 10:35:12 -06:00
DrPeterVanNostrand
824eef95ae
Added basic public-key cryptography example.
2018-08-29 06:06:52 -07:00
DrPeterVanNostrand
29498c4d89
Added an example for threshold signing.
2018-08-27 16:33:07 +02:00
Igor Barinov
fdfeeae821
Update README.md
2018-08-17 02:14:27 +03:00
c0gent
ec037173b1
Change license, flesh out README a bit.
...
* The example should eventually be expanded upon.
* The language may need more refinement.
2018-08-15 16:42:22 -07:00
DrPeterVanNostrand
3e6df11c4b
Added example for threshold encryption.
2018-08-13 09:08:53 -04:00
Igor Barinov
d81953b55d
Create LICENSE
...
Add MIT License
2018-08-10 16:29:47 +03:00
Igor Barinov
af4ef8e98a
Delete LICENSE
...
Remove GPL3
2018-08-10 16:28:49 +03:00
DrPeterVanNostrand
69ff326430
Added env-var 'MLOCK_SECRETS' to disable memory locks.
2018-08-09 10:07:31 -04:00
DrPeterVanNostrand
8f6dce18f2
Added mlocking for secret types.
2018-08-09 10:07:31 -04:00
Andreas Fackler
2d17d0e783
Replace ring with tiny-keccak.
2018-08-09 14:38:31 +02:00
Vladimir Komendantskiy
4c533e6873
changed Travis URL from .com to .org
2018-07-31 15:10:56 +01:00
Vladimir Komendantskiy
4fc709a0a3
added Travis build status on github home page
2018-07-31 15:06:55 +01:00
Vladimir Komendantskiy
bf98f1271f
removed protobuf support
2018-07-31 12:25:45 +01:00
Vladimir Komendantskiy
150389c591
allow for using Error with inside other errors outside this crate
2018-07-31 11:51:52 +01:00
Vladimir Komendantskiy
b7ab849a16
converted errors from error_chain to failure
2018-07-31 11:02:22 +01:00
Vladimir Komendantskiy
394e4ce140
separated crypto module from hbbft crate
2018-07-30 23:52:34 +01:00
Andreas Fackler
da3bc0b930
Remove output and message queue from HoneyBadger.
2018-07-30 23:52:34 +01:00
Andreas Fackler
ec16c801ac
Add more arithmetic ops to Poly.
2018-07-30 23:52:34 +01:00
Andreas Fackler
23e8ebe967
Accept more types in threshold crypto API.
...
This removes some unnecessary allocation and conversion by accepting
more primitive types and references as the index in threshold decryption
and signing, and as the argument to a polynomial.
2018-07-30 23:52:34 +01:00
Andreas Fackler
a78a14fa9d
Separate keys and key shares.
2018-07-30 23:52:34 +01:00
c0gent
368430be1c
Add `Copy` to `PublicKey` derived impls.
2018-07-30 23:52:34 +01:00
Peter van Nostrand
bd10494d5d
Clear 'Poly' and 'BivarPoly' coeffs on drop.
2018-07-30 23:52:34 +01:00
Peter van Nostrand
77a5829c1d
Replaced clear-on-drop with 'std::ptr::write_volatile'.
2018-07-30 23:52:34 +01:00
Marc Brinkmann
8af4b502ae
Added `RandomAdversary` and the necessary auxiliary functions.
...
Random adversaries are created for `broadcast` and `honey_badger`. Random value generation was added for all type-dependencies of these algorithms, causing the `Rand` trait to be implement for a large portion of the codebase.
Additionally, `MessageWithSender` turned into an actual struct, making it much easier to handle. Tuple-like construction is still available through `MessageWithSender::new()`.
2018-07-30 23:52:34 +01:00
Andreas Fackler
1f3768f2b6
Add coin docs, change parity computation.
...
This makes the signature parity computation take into account all bits,
not just the last one of each byte.
2018-07-30 23:52:34 +01:00
Marc Brinkmann
b7d12585f8
Implemented `Rand` for `SecretKey`.
2018-07-30 23:52:34 +01:00
Andreas Fackler
51b87b8bae
Add node transaction messages to Dynamic HB.
2018-07-30 23:52:34 +01:00
Andreas Fackler
c0cef3b50b
Avoid redundant key computations.
2018-07-30 23:52:34 +01:00
Andreas Fackler
e3a401bcb9
Make SyncKeyGen NodeUid-aware.
...
This allows the caller to address nodes by ID instead of by index.
Also contains a few other minor changes that will be needed for
`DynamicHoneyBadger`.
2018-07-30 23:52:34 +01:00
Vladimir Komendantskiy
17fdffa90f
threshold encryption of proposals in HoneyBadger
2018-07-30 23:52:34 +01:00
Andreas Fackler
0c66e16010
Remove generic E: Engine from crypto.
2018-07-30 23:52:34 +01:00
Andreas Fackler
81cbe5a63b
Implement SyncKeyGen.
...
This is a _synchronous_ key generation algorithm. We will use it in
`DynamicHoneyBadger`, on top of `HoneyBadger` to satisfy the synchrony
requirements.
It can also be used independently e.g. on top of a blockchain.
2018-07-30 23:52:34 +01:00
Peter van Nostrand
1c3afe85eb
Fix formatting.
2018-07-30 23:52:34 +01:00