diff options
author | Alex Auvolat <alex@adnab.me> | 2018-11-02 16:26:59 +0100 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2018-11-02 16:26:59 +0100 |
commit | a26dd9284352000cca6338b68c03594dcd900494 (patch) | |
tree | b51c1a9ba734d0fba9a7d4a97df4ddca85dafbca /shard/lib/data/data.ex | |
parent | 353769402b6fd2ca4ea1807c2733e161a768f85e (diff) | |
download | shard-a26dd9284352000cca6338b68c03594dcd900494.tar.gz shard-a26dd9284352000cca6338b68c03594dcd900494.zip |
WIP for file upload (Merkle tree for signatures)
Diffstat (limited to 'shard/lib/data/data.ex')
-rw-r--r-- | shard/lib/data/data.ex | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/shard/lib/data/data.ex b/shard/lib/data/data.ex index 78c73cd..33dca09 100644 --- a/shard/lib/data/data.ex +++ b/shard/lib/data/data.ex @@ -26,6 +26,12 @@ defmodule SData do :crypto.hash(algo, bin) end + def file_hash(path, algo \\ :sha256) do + File.stream!(path, [], 65536) + |> Enum.reduce(:crypto.hash_init(algo), &(:crypto.hash_update(&2, &1))) + |> :crypto.hash_final() + end + def term_unbin(bin) do :erlang.binary_to_term(bin, [:safe]) end |