diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2016-02-28 13:15:23 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2016-02-28 13:15:23 +0200 |
commit | d928de165f8bb896ee77f5668f35611f57429c93 (patch) | |
tree | 13161cec5af997984aaeac22c54b8c934cb8e0c6 /tests/sha256 | |
parent | e4a63cd55c6347dd24938ec8a1ef203409be058e (diff) |
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.
Diffstat (limited to 'tests/sha256')
-rw-r--r-- | tests/sha256/buildfile | 7 | ||||
-rw-r--r-- | tests/sha256/driver.cxx | 34 |
2 files changed, 41 insertions, 0 deletions
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 <string> +#include <cassert> +#include <iostream> + +#include <butl/sha256> + +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"); +} |