Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

C implemententation of Satoshi Labs Slip-0039 Proposal #1

merged 13 commits into from Jun 28, 2019


Copy link

commented Jun 28, 2019


The folks over at Satoshi Labs (SL) have been proposing a Shamir Secret Sharing Scheme to protect the master entropy used to create HD wallets. Here's a link to the proposal Slip-0039

SL has also provided a python reference implementation.

We here at my employer, Unchained Capital, would love it if Slip-0039 was adopted on a larger scale. To that end, we have written a little implementation fo Slip-0039 in C, and we post it here in the hopes that it finds a wider audience.



howech added 13 commits Jun 25, 2019
Beginnings of a C implementation of slip39 in C (in wordlist.c).
While it is self consistant, (generate and combine work appropriately together),
it does not recover the exact same secrets that the python implmentation does,
(with data taken from the test vectors.

The code will need some restructuring, and integration with a real random
number generator.
Added encrypt/decrypt share functions.
Linked test_generate_combine with a real random number generator.
Moved slip39 stuff to a subdirectory
Added a quick and dirty command line tool.

This comment has been minimized.

Copy link

commented Jun 28, 2019

Thanks! HTC (@Seclabs-htc) has also just released a C version as well at (and forked here in Blockchain Commons). We should compare the versions. In the meantime, I'm merging.

cc: @dsprenkels @andrewkozlik @maaku @wolfmcnally

@ChristopherA ChristopherA merged commit 2b5ed7b into BlockchainCommons:master Jun 28, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
2 participants
You can’t perform that action at this time.