mte/.jjconflict-side-0/src/data_file.ml
2026-02-12 15:33:57 +01:00

35 lines
875 B
OCaml

open Bos.OS
open Syntax
open Crypto
let read fname =
let* b = File.exists fname |> Syntax.unwrap_err_msg in
match b with
| false -> Ok None
| true ->
let+ content = File.read fname |> Syntax.unwrap_err_msg in
Some content
let write_eddsa fname priv =
EddsaPrivateKey.to_octets priv |> File.write fname |> Syntax.unwrap_err_msg
let write_rsa fname priv =
RsaPrivateKey.to_octets priv |> File.write fname |> Syntax.unwrap_err_msg
let read_eddsa fname =
let* opt = read fname in
match opt with
| None -> Ok None
| Some data -> (
EddsaPrivateKey.of_octets data |> function
| Error e -> Error e
| Ok v -> Ok (Some v))
let read_rsa fname =
let* opt = read fname in
match opt with
| None -> Ok None
| Some data -> (
RsaPrivateKey.of_octets data |> function
| Error e -> Error e
| Ok v -> Ok (Some v))