Commit Graph

71 Commits

Author SHA1 Message Date
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
Peter van Nostrand 5bf57d5d1d Added clear-on-drop secret-keys to 'NetworkInfo'. 2018-07-30 23:52:34 +01:00
Andreas Fackler 34d642f709 Improve Hash impl for Ciphertext.
This formulation makes it harder to forget updating the `Hash`
implementation if the `Ciphertext` type changes.
2018-07-30 23:52:34 +01:00