aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib.zig')
-rw-r--r--src/lib.zig9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/lib.zig b/src/lib.zig
index 05922bd..23f0e05 100644
--- a/src/lib.zig
+++ b/src/lib.zig
@@ -116,6 +116,13 @@ pub const SeedKeyPair = struct {
116 return Self{ .role = role, .kp = try Ed25519.KeyPair.create(raw_seed) }; 116 return Self{ .role = role, .kp = try Ed25519.KeyPair.create(raw_seed) };
117 } 117 }
118 118
119 pub fn generateWithCustomEntropy(role: Role, reader: anytype) !Self {
120 var raw_seed: [Ed25519.seed_length]u8 = undefined;
121 try reader.readNoEof(&raw_seed);
122 defer wipeBytes(&raw_seed);
123 return Self{ .role = role, .kp = try Ed25519.KeyPair.create(raw_seed) };
124 }
125
119 pub fn fromTextSeed(text: *const text_seed) SeedDecodeError!Self { 126 pub fn fromTextSeed(text: *const text_seed) SeedDecodeError!Self {
120 var decoded = try decode(2, Ed25519.seed_length, text); 127 var decoded = try decode(2, Ed25519.seed_length, text);
121 defer decoded.wipe(); // gets copied 128 defer decoded.wipe(); // gets copied
@@ -455,7 +462,7 @@ fn wipeBytes(bs: []u8) void {
455 for (bs) |*b| b.* = 0; 462 for (bs) |*b| b.* = 0;
456} 463}
457 464
458test "reference all delcarations" { 465test "reference all declarations" {
459 testing.refAllDecls(@This()); 466 testing.refAllDecls(@This());
460 testing.refAllDecls(Role); 467 testing.refAllDecls(Role);
461 testing.refAllDecls(SeedKeyPair); 468 testing.refAllDecls(SeedKeyPair);