Commit Graph

29 Commits

Author SHA1 Message Date
Andreas Fackler 7a0b397233 Add node transaction messages to Dynamic HB. 2018-07-02 14:14:19 +02:00
Andreas Fackler 2b4f77f11c Avoid redundant key computations. 2018-06-27 14:47:05 +02:00
Andreas Fackler 062b35ab3a 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-06-25 13:07:31 +02:00
Vladimir Komendantskiy c7f4994e3a threshold encryption of proposals in HoneyBadger 2018-06-22 10:12:38 +01:00
Andreas Fackler e11f183db2 Remove generic E: Engine from crypto. 2018-06-22 10:08:23 +02:00
Andreas Fackler 7eb487f329 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-06-22 10:06:29 +02:00
Peter van Nostrand 73368b7a32 Fix formatting. 2018-06-21 13:06:48 -04:00
Peter van Nostrand 05da712c20 Added clear-on-drop secret-keys to 'NetworkInfo'. 2018-06-21 12:08:48 -04:00
Andreas Fackler a47123c4dd Improve Hash impl for Ciphertext.
This formulation makes it harder to forget updating the `Hash`
implementation if the `Ciphertext` type changes.
2018-06-20 22:09:43 +02:00
Andreas Fackler 1f27fa6891 Implement Hash for "public" cryptographic types.
This adds a `Hash` implementation for public keys, commitments,
ciphertexts and signatures — types that might make sense to be included
in special transactions. The `DynamicHoneyBadger` implementation will
require some of them.
2018-06-20 22:09:43 +02:00
Andreas Fackler 6484242afc Simplify serde implementations, add Ciphertext. 2018-06-20 10:43:59 +02:00
Andreas Fackler 83f8d61402 Support serde by default.
This removes the `serialization-serde` feature, since serde is already
used internally and therefore a dependency anyway.
2018-06-20 10:21:52 +02:00
Andreas Fackler c84c60d826 Rename crypto::keygen to crypto::poly. 2018-06-20 10:05:03 +02:00
Vladimir Komendantskiy 3393052b4b review comment coverage 2018-06-14 12:28:38 +01:00
Vladimir Komendantskiy b82ac64148 note in the broadcast example about the use of keys 2018-06-13 18:24:35 +01:00
Vladimir Komendantskiy d5794cb5fe extended the common coin nonce with a global UID and the top-level epoch 2018-06-13 15:18:27 +01:00
Vladimir Komendantskiy 94049e8636 fixed propagation of common coin messages to the top level 2018-06-13 15:17:11 +01:00
Vladimir Komendantskiy 40eeee90fc protobuf serialization 2018-06-13 15:17:11 +01:00
Vladimir Komendantskiy 122f1fc6f1 updated the tests with key initialisation 2018-06-13 15:15:41 +01:00
Vladimir Komendantskiy cf45a4e3cb common coin implementation 2018-06-13 15:15:41 +01:00
Vladimir Komendantskiy 17dc9df78e Common Coin module template; added keys in NetworkInfo 2018-06-13 15:09:12 +01:00
Andreas Fackler 6cc2302e61 Implement polynomials for distributed key generation. 2018-06-11 16:45:08 +02:00
Andreas Fackler a0a8582f0b Expand crypto tests. 2018-05-30 14:15:54 +02:00
Andreas Fackler 661bae6438 Implement threshold encryption. 2018-05-30 13:50:09 +02:00
Andreas Fackler 45a7c07106 Implement simple encryption. 2018-05-30 11:42:17 +02:00
Andreas Fackler 0017a2a7c0 Make public keys and signatures serializable. 2018-05-30 10:08:43 +02:00
Andreas Fackler 56ab6a5037 Simplify hash_g2. 2018-05-29 21:59:21 +02:00
Andreas Fackler 527b1c8c17 Use SHA256 and byteorder in hash_g2. 2018-05-29 17:59:50 +02:00
Andreas Fackler d999792234 Implement threshold signatures. 2018-05-29 17:06:02 +02:00