From d928de165f8bb896ee77f5668f35611f57429c93 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Sun, 28 Feb 2016 13:15:23 +0200 Subject: Add SHA256 calculator Based on the sha256c.c file from the FreeBSD project and ported to compile on Linux, Mac OS, and Windows. The file is licensed under the simplified/2-clause BSD license so the library is now MIT/BSD-licensed. --- tests/buildfile | 2 +- tests/sha256/buildfile | 7 +++++++ tests/sha256/driver.cxx | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 tests/sha256/buildfile create mode 100644 tests/sha256/driver.cxx (limited to 'tests') diff --git a/tests/buildfile b/tests/buildfile index 57e632e..0ad40e5 100644 --- a/tests/buildfile +++ b/tests/buildfile @@ -2,6 +2,6 @@ # copyright : Copyright (c) 2014-2016 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file -d = dir-iterator/ path/ prefix-map/ triplet/ +d = dir-iterator/ path/ prefix-map/ sha256/ triplet/ .: $d include $d diff --git a/tests/sha256/buildfile b/tests/sha256/buildfile new file mode 100644 index 0000000..4116ff6 --- /dev/null +++ b/tests/sha256/buildfile @@ -0,0 +1,7 @@ +# file : tests/sha256/buildfile +# copyright : Copyright (c) 2014-2016 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +exe{driver}: cxx{driver} ../../butl/lib{butl} + +include ../../butl/ diff --git a/tests/sha256/driver.cxx b/tests/sha256/driver.cxx new file mode 100644 index 0000000..12928b2 --- /dev/null +++ b/tests/sha256/driver.cxx @@ -0,0 +1,34 @@ +// file : tests/triplet/driver.cxx -*- C++ -*- +// copyright : Copyright (c) 2014-2016 Code Synthesis Ltd +// license : MIT; see accompanying LICENSE file + +#include +#include +#include + +#include + +using namespace std; +using namespace butl; + +int +main () +{ + assert (string (sha256 ().string ()) == + "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"); + + assert (string (sha256 ("123").string ()) == + "a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3"); + + sha256 h; + h.append ("1"); + h.append (string ("2")); + h.append ("3", 1); + + auto& b (h.binary ()); + assert (b[0] == 0xa6 && b[31] == 0xe3); + + string s (h.string ()); + assert (s == + "a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3"); +} -- cgit v1.1