Skip to content

Commit

Permalink
core/crypto/blake2: Add the ability to easily alter digest size
Browse files Browse the repository at this point in the history
  • Loading branch information
Yawning committed Nov 16, 2024
1 parent d3c4bc2 commit 850c413
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 6 deletions.
9 changes: 6 additions & 3 deletions core/crypto/blake2b/blake2b.odin
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ package blake2b
import "../_blake2"

// DIGEST_SIZE is the BLAKE2b digest size in bytes.
DIGEST_SIZE :: 64
DIGEST_SIZE :: _blake2.BLAKE2B_SIZE

// BLOCK_SIZE is the BLAKE2b block size in bytes.
BLOCK_SIZE :: _blake2.BLAKE2B_BLOCK_SIZE
Expand All @@ -27,9 +27,12 @@ BLOCK_SIZE :: _blake2.BLAKE2B_BLOCK_SIZE
Context :: _blake2.Blake2b_Context

// init initializes a Context with the default BLAKE2b config.
init :: proc(ctx: ^Context) {
init :: proc(ctx: ^Context, digest_size := DIGEST_SIZE) {
if digest_size > 255 {
panic("blake2b: invalid digest size")
}
cfg: _blake2.Blake2_Config
cfg.size = _blake2.BLAKE2B_SIZE
cfg.size = u8(digest_size)
_blake2.init(ctx, &cfg)
}

Expand Down
9 changes: 6 additions & 3 deletions core/crypto/blake2s/blake2s.odin
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ package blake2s
import "../_blake2"

// DIGEST_SIZE is the BLAKE2s digest size in bytes.
DIGEST_SIZE :: 32
DIGEST_SIZE :: _blake2.BLAKE2S_SIZE

// BLOCK_SIZE is the BLAKE2s block size in bytes.
BLOCK_SIZE :: _blake2.BLAKE2S_BLOCK_SIZE
Expand All @@ -27,9 +27,12 @@ BLOCK_SIZE :: _blake2.BLAKE2S_BLOCK_SIZE
Context :: _blake2.Blake2s_Context

// init initializes a Context with the default BLAKE2s config.
init :: proc(ctx: ^Context) {
init :: proc(ctx: ^Context, digest_size := DIGEST_SIZE) {
if digest_size > 255 {
panic("blake2s: invalid digest size")
}
cfg: _blake2.Blake2_Config
cfg.size = _blake2.BLAKE2S_SIZE
cfg.size = u8(digest_size)
_blake2.init(ctx, &cfg)
}

Expand Down

0 comments on commit 850c413

Please sign in to comment.