Commit Graph

17 Commits

Author SHA1 Message Date
Fang
d53e33a3e0 Implement argon2.
Fully configurable as per the spec. Includes a new type, in addition to
i, d, and id: u. Similar to id in that it is a hybrid solution, but
slightly tweaked to be unique to Urbit's implementation.

Initially implemented as a direct port from the pure Python
implementation, then lightly rewritten to be more Hoon-ish.
https://pypi.org/project/argon2pure/
2018-07-05 22:44:37 +02:00
Fang
fb08ab8fd1 Use face over lark when available. 2018-07-05 22:40:03 +02:00
Fang
287d10619e Implement blake2b.
It's not generalized yet, so blake2s isn't supported.
2018-07-02 22:10:06 +02:00
Fang
7c34009e8e Use ++rep over ++can when we can 2018-06-29 13:10:38 +02:00
Fang
23b177a3d2 Use ++rev over ++swp, for safety. 2018-06-29 13:08:58 +02:00
Fang
004ac54d28 Clean up base58 en/decoding 2018-06-29 01:11:55 +02:00
Fang
4352293d44 Rename secp point serialization arms 2018-06-29 00:52:42 +02:00
Fang
19144c7610 Add HMAC-SHA1 2018-06-29 00:46:08 +02:00
Fang
a756d69b8f Put +=byts to use 2018-06-29 00:34:07 +02:00
Fang
9aba5593a6 Restructure and complete BIP32 core
It now contains features it was missing, and those have been verified
for correctness. Behaves more like an object now, with initialization
and state change arms, and easy ways to get data out.
2018-06-29 00:12:14 +02:00
Fang
7a02a6c796 Fix bug in RIPEMD-160 implementation. 2018-06-28 20:39:45 +02:00
Fang
125956413d BIP32 key derivation logic.
Messy, in dire need of restructuring.
2018-06-28 00:47:20 +02:00
Fang
d2770cd221 Fix bug in HMAC implementation. 2018-06-27 23:17:03 +02:00
Fang
2d7163876c SHA-1 re-implementation, can account for leading zeroes. 2018-06-27 20:21:16 +02:00
Fang
beae8cc01a Converting points on curve to un/compressed numbers. 2018-06-27 20:20:35 +02:00
Fang
3ac9b33697 RIPEMD-160 implementation. 2018-06-27 01:03:18 +02:00
Fang
f5f9c209d0 Start work on BIP32 support.
Library file includes wrappers for the SHA family to make it take and produce sane byte order data, and a new HMAC implementation that depends on it.
Also includes @belisarius222's secp256k1 implementation, plus experimental (and broken) support for other secp variants.
2018-06-22 20:33:53 +02:00