This commit is contained in:
swrup 2025-10-18 20:28:38 +02:00
parent 1674e338ac
commit 33f65646ff
2 changed files with 15 additions and 8 deletions

View file

@ -188,7 +188,9 @@ module UTIL = struct
let hash s = let hash s =
match String.length s = 32 with 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 | true -> hash s
end end
@ -218,7 +220,7 @@ module UTIL = struct
val bin : t Bin.t val bin : t Bin.t
val hash : M.src -> t val hash : M.src -> t
end = struct end = struct
include Hash_64 include HHH_64
let hash src = hash (M.to_octets src) let hash src = hash (M.to_octets src)
end end
@ -233,7 +235,7 @@ module UTIL = struct
val bin : t Bin.t val bin : t Bin.t
val hash : M.src -> t val hash : M.src -> t
end = struct end = struct
include Hash_32 include HHH_32
let hash src = hash (M.to_octets src) let hash src = hash (M.to_octets src)
end end

View file

@ -84,13 +84,18 @@ end = struct
(* mirage_crypto: "The result is the concatenation of r and s, as specified in RFC 8032." *) (* mirage_crypto: "The result is the concatenation of r and s, as specified in RFC 8032." *)
Mirage_crypto_ec.Ed25519.sign ~key s 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 of_b32 s =
let s = B32.encode t in let open Syntax in
assert (String.length s = 64); let* t = B32.decode s in
s let+ () = check_size t in
t
let to_b32 = B32.encode
let jsont = Jsont.of_of_string ~kind:"EddsaSignature" of_b32 ~enc:to_b32 let jsont = Jsont.of_of_string ~kind:"EddsaSignature" of_b32 ~enc:to_b32
end end