| ... | ... | @@ -20,14 +20,14 @@ pub const HkdfSha512 = Hkdf(hmac.sha2.HmacSha512); |
| 20 | 20 | pub fn Hkdf(comptime Hmac: type) type { |
| 21 | 21 | return struct { |
| 22 | 22 | /// Return a master key from a salt and initial keying material. |
| 23 | | fn extract(salt: []const u8, ikm: []const u8) [Hmac.mac_length]u8 { |
| 23 | pub fn extract(salt: []const u8, ikm: []const u8) [Hmac.mac_length]u8 { |
| 24 | 24 | var prk: [Hmac.mac_length]u8 = undefined; |
| 25 | 25 | Hmac.create(&prk, ikm, salt); |
| 26 | 26 | return prk; |
| 27 | 27 | } |
| 28 | 28 | |
| 29 | 29 | /// Derive a subkey from a master key `prk` and a subkey description `ctx`. |
| 30 | | fn expand(out: []u8, ctx: []const u8, prk: [Hmac.mac_length]u8) void { |
| 30 | pub fn expand(out: []u8, ctx: []const u8, prk: [Hmac.mac_length]u8) void { |
| 31 | 31 | assert(out.len < Hmac.mac_length * 255); // output size is too large for the Hkdf construction |
| 32 | 32 | var i: usize = 0; |
| 33 | 33 | var counter = [1]u8{1}; |