From 33f65646ff13a7d0df1117456d853f580b0bf54c Mon Sep 17 00:00:00 2001 From: swrup Date: Sat, 18 Oct 2025 20:28:38 +0200 Subject: [PATCH] --- src/binary_formats.ml | 8 +++++--- src/types.ml | 15 ++++++++++----- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/binary_formats.ml b/src/binary_formats.ml index ad3f594e..4ddcc135 100644 --- a/src/binary_formats.ml +++ b/src/binary_formats.ml @@ -188,7 +188,9 @@ module UTIL = struct let hash s = match String.length s = 32 with - | false -> Fmt.failwith "SHA256 failure: data is not 32 bytes" + | false -> + Fmt.failwith "SHA256 failure: data is not 32 bytes, instead is %d" + (String.length s) | true -> hash s end @@ -218,7 +220,7 @@ module UTIL = struct val bin : t Bin.t val hash : M.src -> t end = struct - include Hash_64 + include HHH_64 let hash src = hash (M.to_octets src) end @@ -233,7 +235,7 @@ module UTIL = struct val bin : t Bin.t val hash : M.src -> t end = struct - include Hash_32 + include HHH_32 let hash src = hash (M.to_octets src) end diff --git a/src/types.ml b/src/types.ml index 7cf6b6ff..a376a10c 100644 --- a/src/types.ml +++ b/src/types.ml @@ -84,13 +84,18 @@ end = struct (* mirage_crypto: "The result is the concatenation of r and s, as specified in RFC 8032." *) Mirage_crypto_ec.Ed25519.sign ~key s - let of_b32 s = B32.decode s + let check_size t = + match String.length t = 64 with + | false -> Error "EddsaSignature: invalid string length" + | true -> Ok () - let to_b32 t = - let s = B32.encode t in - assert (String.length s = 64); - s + let of_b32 s = + let open Syntax in + let* t = B32.decode s in + let+ () = check_size t in + t + let to_b32 = B32.encode let jsont = Jsont.of_of_string ~kind:"EddsaSignature" of_b32 ~enc:to_b32 end