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