blob: 28b4fb94b7434561e832672345bc389288828322 (
plain) (
tree)
|
|
open Ctypes
module Sha256 = struct
let compute_hash content =
let size_with_null_terminator = C.Types.hash_size + 1 in
let buf = Ctypes.allocate_n char ~count:size_with_null_terminator in
let () = C.Functions.compute_hash buf (Bytes.to_string content) in
Ctypes.coerce (ptr char) Ctypes.string buf
end
module Merkle = struct
let merkle_generate_root hashes =
let size_with_null_terminator = C.Types.hash_size + 1 in
let buf = Ctypes.allocate_n char ~count:size_with_null_terminator in
let len = List.length hashes in
let hashes = CArray.of_list string hashes in
C.Functions.merkle_generate_root (CArray.start hashes) len buf;
Ctypes.coerce (ptr char) Ctypes.string buf
let register_to_merkle content =
C.Functions.register_to_merkle "/tmp/relational-engine/tree" content
end
|