Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/diegoandino/shamir-zig
A Zig implementation of Shamir's Secret Sharing Scheme
https://github.com/diegoandino/shamir-zig
secret-sharing shamir shamir-secret-sharing shamirs-secret-sharing sss ssss zig ziglang
Last synced: 10 days ago
JSON representation
A Zig implementation of Shamir's Secret Sharing Scheme
- Host: GitHub
- URL: https://github.com/diegoandino/shamir-zig
- Owner: diegoandino
- Created: 2024-11-07T01:03:47.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-12-31T05:01:01.000Z (about 1 month ago)
- Last Synced: 2024-12-31T06:17:49.865Z (about 1 month ago)
- Topics: secret-sharing, shamir, shamir-secret-sharing, shamirs-secret-sharing, sss, ssss, zig, ziglang
- Language: Zig
- Homepage:
- Size: 327 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Shamir-Zig
A Shamir's Secret Sharing Scheme library written in Zig.## Notes
- Not to be used in Production `yet` (as it's a research project).
- Doesn't support full miller-rabin primality test (the prime selection is left up to the user)## Get Started
### Basic Usage
```
const allocator = std.heap.c_allocator;var secret = try Managed.init(allocator);
defer secret.deinit();
try secret.setString(10, "12345678901234567890");var p = try Managed.init(allocator);
try p.setString(10, "2305843009213693951"); // 2^61 - 1 (Mersenne prime)var ssss = ShamirsSecretSharingScheme.init(allocator, 3, 5, p);
defer ssss.deinit();const shares = try ssss.compute_shares(secret);
defer allocator.free(shares);const reconstructed = try ssss.reconstruct_secret(shares[0..3]);
defer reconstructed.deinit();
```
For more usage, see `test/` directory### Basic Usage with httpz
See 'demo' branch
```
git checkout demo --> server/src/server.zig (contains full httpz server implementation)
```