Keccak/SHA-3 Reference Implementation
diff --git a/README.md b/README.md
index 50afb26..8df2249 100644
--- a/README.md
+++ b/README.md
@@ -6,6 +6,26 @@
The **MUtilities** library is a collection of routines and classes to extend the [*Qt cross-platform framework*](http://qt-project.org/). It contains various convenience and utility functions as well as wrappers for OS-specific functionalities. The library was originally created as a "side product" of the [**LameXP**](http://lamexp.sourceforge.net/) application: Over the years, a lot of code, **not** really specific to *LameXP*, had accumulated in the *LameXP* code base. Some of that code even had been used in other projects too, in a "copy & paste" fashion – which had lead to redundancy and much complicated maintenance. In order to clean-up the LameXP code base, to eliminate the ugly redundancy and to simplify maintenance, the code in question has finally been refactored into the **MUtilities** (aka "MuldeR's Utilities for Qt") library. This library now forms the foundation of *LameXP* and [*other OpenSource projects*](https://github.com/lordmulder).
+# Project Structure
+
+The *MUtilities* project directory is structured as follows:
+
+* `bin/` – compiled library files (static or shared), link those files in projects that use the MUtilities library
+* `docs/` – programming interface documentation, generated with Doxygen tool
+* `etc/` – miscellaneous files, everything that doesn't fit in anywhere else
+* `include/` – public header files, include this directory in projects that use the MUtilities library
+* `obj/` – object code files, intermediate files generated during the build process
+* `res/` – resouce files, required for building the MUtilities library
+* `src/` – source code files, required for building the MUtilities library (third-party code in `src/3rd_party/`)
+* `test/` – unit tests, based on Google Test framework
+* `tmp/` – temporary files, automatically generated during the build process
+
+
+# API Documentation
+
+A fully-fledged documentation of the *MUtilities* programming interface (API) is available thanks to [*Doxygen*](http://www.stack.nl/~dimitri/doxygen/). Please see [**`docs/index.html`**](docs/index.html) for details!
+
+
# License
This library is free software. It is released under the terms of the [*GNU Lesser General Public License (LGPL), Version 2.1*](https://www.gnu.org/licenses/lgpl-2.1.html).
diff --git a/docs/annotated.html b/docs/annotated.html
index 0191c9d..a7a0b86 100644
--- a/docs/annotated.html
+++ b/docs/annotated.html
@@ -90,7 +90,7 @@ $(function() {
diff --git a/docs/classes.html b/docs/classes.html
index ea51ae1..6ff9afb 100644
--- a/docs/classes.html
+++ b/docs/classes.html
@@ -90,7 +90,7 @@ $(function() {
diff --git a/docs/d0/d8a/class_m_utils_1_1_update_checker.html b/docs/d0/d8a/class_m_utils_1_1_update_checker.html
index 7a5d16f..e32234e 100644
--- a/docs/d0/d8a/class_m_utils_1_1_update_checker.html
+++ b/docs/d0/d8a/class_m_utils_1_1_update_checker.html
@@ -158,7 +158,7 @@ void testKnownHosts (v
diff --git a/docs/d0/dd7/_version_8h_source.html b/docs/d0/dd7/_version_8h_source.html
index be549e6..b011ce0 100644
--- a/docs/d0/dd7/_version_8h_source.html
+++ b/docs/d0/dd7/_version_8h_source.html
@@ -73,7 +73,7 @@ $(function() {
diff --git a/docs/d0/dd8/struct_m_utils_1_1_hash_1_1_internal_1_1_keccak_impl_1_1sponge_state_struct.html b/docs/d0/dd8/struct_m_utils_1_1_hash_1_1_internal_1_1_keccak_impl_1_1sponge_state_struct.html
index 26e338c..02a4990 100644
--- a/docs/d0/dd8/struct_m_utils_1_1_hash_1_1_internal_1_1_keccak_impl_1_1sponge_state_struct.html
+++ b/docs/d0/dd8/struct_m_utils_1_1_hash_1_1_internal_1_1_keccak_impl_1_1sponge_state_struct.html
@@ -104,7 +104,7 @@ unsigned int | bitsAvailable
diff --git a/docs/d1/d01/class_m_utils_1_1_hash_1_1_blake2.html b/docs/d1/d01/class_m_utils_1_1_hash_1_1_blake2.html
index b8fc95c..218d624 100644
--- a/docs/d1/d01/class_m_utils_1_1_hash_1_1_blake2.html
+++ b/docs/d1/d01/class_m_utils_1_1_hash_1_1_blake2.html
@@ -92,7 +92,7 @@ QByteArray | finalize (c
diff --git a/docs/d1/d08/class_m_utils_1_1_job_object-members.html b/docs/d1/d08/class_m_utils_1_1_job_object-members.html
index 5faa66c..56f7afc 100644
--- a/docs/d1/d08/class_m_utils_1_1_job_object-members.html
+++ b/docs/d1/d08/class_m_utils_1_1_job_object-members.html
@@ -77,7 +77,7 @@ $(function() {
diff --git a/docs/d1/d0a/_taskbar7_8h_source.html b/docs/d1/d0a/_taskbar7_8h_source.html
index 996eeb6..965cb97 100644
--- a/docs/d1/d0a/_taskbar7_8h_source.html
+++ b/docs/d1/d0a/_taskbar7_8h_source.html
@@ -73,7 +73,7 @@ $(function() {
diff --git a/docs/d1/d0d/class_m_utils_1_1_update_checker_info.html b/docs/d1/d0d/class_m_utils_1_1_update_checker_info.html
index 9dc5571..b5ec11d 100644
--- a/docs/d1/d0d/class_m_utils_1_1_update_checker_info.html
+++ b/docs/d1/d0d/class_m_utils_1_1_update_checker_info.html
@@ -114,7 +114,7 @@ class | UpdateChecker
diff --git a/docs/d1/d32/class_m_utils_1_1_version.html b/docs/d1/d32/class_m_utils_1_1_version.html
index 59c176b..ce1b2ca 100644
--- a/docs/d1/d32/class_m_utils_1_1_version.html
+++ b/docs/d1/d32/class_m_utils_1_1_version.html
@@ -104,7 +104,7 @@ static const char *const | c
diff --git a/docs/d1/d37/_hash___blake2_8h_source.html b/docs/d1/d37/_hash___blake2_8h_source.html
index dc13245..e4c982b 100644
--- a/docs/d1/d37/_hash___blake2_8h_source.html
+++ b/docs/d1/d37/_hash___blake2_8h_source.html
@@ -73,7 +73,7 @@ $(function() {
diff --git a/docs/d1/d93/_i_p_c_channel_8h_source.html b/docs/d1/d93/_i_p_c_channel_8h_source.html
index 4684263..6c5bc3b 100644
--- a/docs/d1/d93/_i_p_c_channel_8h_source.html
+++ b/docs/d1/d93/_i_p_c_channel_8h_source.html
@@ -73,7 +73,7 @@ $(function() {
diff --git a/docs/d1/d9c/class_m_utils_1_1_hash_1_1_keccak-members.html b/docs/d1/d9c/class_m_utils_1_1_hash_1_1_keccak-members.html
index d3cb152..d00d462 100644
--- a/docs/d1/d9c/class_m_utils_1_1_hash_1_1_keccak-members.html
+++ b/docs/d1/d9c/class_m_utils_1_1_hash_1_1_keccak-members.html
@@ -88,7 +88,7 @@ $(function() {
diff --git a/docs/d1/dd9/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t-members.html b/docs/d1/dd9/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t-members.html
index b8b7865..9d621f4 100644
--- a/docs/d1/dd9/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t-members.html
+++ b/docs/d1/dd9/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t-members.html
@@ -82,7 +82,7 @@ $(function() {
diff --git a/docs/d2/d13/_startup_8h_source.html b/docs/d2/d13/_startup_8h_source.html
index eb9802d..0e1f535 100644
--- a/docs/d2/d13/_startup_8h_source.html
+++ b/docs/d2/d13/_startup_8h_source.html
@@ -72,7 +72,7 @@ $(function() {
diff --git a/docs/d2/d52/class_m_utils_1_1_taskbar7.html b/docs/d2/d52/class_m_utils_1_1_taskbar7.html
index d21570d..dcac4a1 100644
--- a/docs/d2/d52/class_m_utils_1_1_taskbar7.html
+++ b/docs/d2/d52/class_m_utils_1_1_taskbar7.html
@@ -106,7 +106,7 @@ bool | setOverlayIcon (c
diff --git a/docs/d2/d7d/class_m_utils_1_1_update_checker-members.html b/docs/d2/d7d/class_m_utils_1_1_update_checker-members.html
index b3c0243..1033746 100644
--- a/docs/d2/d7d/class_m_utils_1_1_update_checker-members.html
+++ b/docs/d2/d7d/class_m_utils_1_1_update_checker-members.html
@@ -96,7 +96,7 @@ $(function() {
diff --git a/docs/d2/db5/_c_p_u_features_8h_source.html b/docs/d2/db5/_c_p_u_features_8h_source.html
index ab5e4c8..c9d9f38 100644
--- a/docs/d2/db5/_c_p_u_features_8h_source.html
+++ b/docs/d2/db5/_c_p_u_features_8h_source.html
@@ -73,7 +73,7 @@ $(function() {
diff --git a/docs/d2/ddd/class_m_utils_1_1_update_checker_info-members.html b/docs/d2/ddd/class_m_utils_1_1_update_checker_info-members.html
index b35a5a7..6765cd6 100644
--- a/docs/d2/ddd/class_m_utils_1_1_update_checker_info-members.html
+++ b/docs/d2/ddd/class_m_utils_1_1_update_checker_info-members.html
@@ -84,7 +84,7 @@ $(function() {
diff --git a/docs/d3/d13/class_m_utils_1_1_version-members.html b/docs/d3/d13/class_m_utils_1_1_version-members.html
index 2fd653c..ce9f154 100644
--- a/docs/d3/d13/class_m_utils_1_1_version-members.html
+++ b/docs/d3/d13/class_m_utils_1_1_version-members.html
@@ -81,7 +81,7 @@ $(function() {
diff --git a/docs/d3/d35/struct_m_utils_1_1_hash_1_1_internal_1_1_keccak_impl_1_1sponge_state_struct-members.html b/docs/d3/d35/struct_m_utils_1_1_hash_1_1_internal_1_1_keccak_impl_1_1sponge_state_struct-members.html
index 6c59cb4..33b9142 100644
--- a/docs/d3/d35/struct_m_utils_1_1_hash_1_1_internal_1_1_keccak_impl_1_1sponge_state_struct-members.html
+++ b/docs/d3/d35/struct_m_utils_1_1_hash_1_1_internal_1_1_keccak_impl_1_1sponge_state_struct-members.html
@@ -81,7 +81,7 @@ $(function() {
diff --git a/docs/d3/d5c/_registry_8h_source.html b/docs/d3/d5c/_registry_8h_source.html
index 23d6d4f..4a613e0 100644
--- a/docs/d3/d5c/_registry_8h_source.html
+++ b/docs/d3/d5c/_registry_8h_source.html
@@ -73,7 +73,7 @@ $(function() {
diff --git a/docs/d3/dc1/_o_s_support_8h_source.html b/docs/d3/dc1/_o_s_support_8h_source.html
index f7aebf7..3162122 100644
--- a/docs/d3/dc1/_o_s_support_8h_source.html
+++ b/docs/d3/dc1/_o_s_support_8h_source.html
@@ -73,7 +73,7 @@ $(function() {
diff --git a/docs/d3/dc6/class_m_utils_1_1_taskbar7-members.html b/docs/d3/dc6/class_m_utils_1_1_taskbar7-members.html
index 0c9de67..348fa8f 100644
--- a/docs/d3/dc6/class_m_utils_1_1_taskbar7-members.html
+++ b/docs/d3/dc6/class_m_utils_1_1_taskbar7-members.html
@@ -84,7 +84,7 @@ $(function() {
diff --git a/docs/d3/dd5/_error_handler_8h_source.html b/docs/d3/dd5/_error_handler_8h_source.html
index 7d69977..0c951f5 100644
--- a/docs/d3/dd5/_error_handler_8h_source.html
+++ b/docs/d3/dd5/_error_handler_8h_source.html
@@ -72,7 +72,7 @@ $(function() {
diff --git a/docs/d4/d85/_job_object_8h_source.html b/docs/d4/d85/_job_object_8h_source.html
index aa12a30..17b5734 100644
--- a/docs/d4/d85/_job_object_8h_source.html
+++ b/docs/d4/d85/_job_object_8h_source.html
@@ -73,7 +73,7 @@ $(function() {
diff --git a/docs/d5/d3b/_global_8h.html b/docs/d5/d3b/_global_8h.html
index a00fe09..77e87ab 100644
--- a/docs/d5/d3b/_global_8h.html
+++ b/docs/d5/d3b/_global_8h.html
@@ -624,7 +624,7 @@ int | MUtils::Internal::self
diff --git a/docs/d5/d3b/_global_8h_source.html b/docs/d5/d3b/_global_8h_source.html
index a6e5a30..1348325 100644
--- a/docs/d5/d3b/_global_8h_source.html
+++ b/docs/d5/d3b/_global_8h_source.html
@@ -83,7 +83,7 @@ $(function() {
diff --git a/docs/d5/db0/_sound_8h_source.html b/docs/d5/db0/_sound_8h_source.html
index 9f09146..d5c02e7 100644
--- a/docs/d5/db0/_sound_8h_source.html
+++ b/docs/d5/db0/_sound_8h_source.html
@@ -72,7 +72,7 @@ $(function() {
diff --git a/docs/d5/de1/struct_m_utils_1_1_o_s_1_1_version_1_1__os__version__t-members.html b/docs/d5/de1/struct_m_utils_1_1_o_s_1_1_version_1_1__os__version__t-members.html
index 8fe40d3..cbe8cf0 100644
--- a/docs/d5/de1/struct_m_utils_1_1_o_s_1_1_version_1_1__os__version__t-members.html
+++ b/docs/d5/de1/struct_m_utils_1_1_o_s_1_1_version_1_1__os__version__t-members.html
@@ -84,7 +84,7 @@ $(function() {
diff --git a/docs/d5/dfe/class_m_utils_1_1_i_p_c_channel.html b/docs/d5/dfe/class_m_utils_1_1_i_p_c_channel.html
index 3e42b6f..a783fef 100644
--- a/docs/d5/dfe/class_m_utils_1_1_i_p_c_channel.html
+++ b/docs/d5/dfe/class_m_utils_1_1_i_p_c_channel.html
@@ -112,7 +112,7 @@ static const quint32 | MAX_P
diff --git a/docs/d6/d83/_update_checker_8h_source.html b/docs/d6/d83/_update_checker_8h_source.html
index 36e70ff..baf0779 100644
--- a/docs/d6/d83/_update_checker_8h_source.html
+++ b/docs/d6/d83/_update_checker_8h_source.html
@@ -74,7 +74,7 @@ $(function() {
diff --git a/docs/d6/ddd/_terminal_8h_source.html b/docs/d6/ddd/_terminal_8h_source.html
index 3cabde2..9f01ee8 100644
--- a/docs/d6/ddd/_terminal_8h_source.html
+++ b/docs/d6/ddd/_terminal_8h_source.html
@@ -72,7 +72,7 @@ $(function() {
diff --git a/docs/d7/d73/_translation_8h_source.html b/docs/d7/d73/_translation_8h_source.html
index ee273bb..a201fe0 100644
--- a/docs/d7/d73/_translation_8h_source.html
+++ b/docs/d7/d73/_translation_8h_source.html
@@ -72,7 +72,7 @@ $(function() {
diff --git a/docs/d7/dee/class_m_utils_1_1_i_p_c_channel-members.html b/docs/d7/dee/class_m_utils_1_1_i_p_c_channel-members.html
index 41fc356..8693014 100644
--- a/docs/d7/dee/class_m_utils_1_1_i_p_c_channel-members.html
+++ b/docs/d7/dee/class_m_utils_1_1_i_p_c_channel-members.html
@@ -85,7 +85,7 @@ $(function() {
diff --git a/docs/da/d35/class_m_utils_1_1_registry_1_1_registry_key.html b/docs/da/d35/class_m_utils_1_1_registry_1_1_registry_key.html
index 5b72fd3..5fd0f62 100644
--- a/docs/da/d35/class_m_utils_1_1_registry_1_1_registry_key.html
+++ b/docs/da/d35/class_m_utils_1_1_registry_1_1_registry_key.html
@@ -104,7 +104,7 @@ bool | enum_subkeys (QSt
diff --git a/docs/da/d5d/_g_u_i_8h_source.html b/docs/da/d5d/_g_u_i_8h_source.html
index d98de3c..b5dad3d 100644
--- a/docs/da/d5d/_g_u_i_8h_source.html
+++ b/docs/da/d5d/_g_u_i_8h_source.html
@@ -72,7 +72,7 @@ $(function() {
diff --git a/docs/dc/d55/struct_m_utils_1_1_o_s_1_1_version_1_1__os__version__t.html b/docs/dc/d55/struct_m_utils_1_1_o_s_1_1_version_1_1__os__version__t.html
index 9c22a68..70d63d2 100644
--- a/docs/dc/d55/struct_m_utils_1_1_o_s_1_1_version_1_1__os__version__t.html
+++ b/docs/dc/d55/struct_m_utils_1_1_o_s_1_1_version_1_1__os__version__t.html
@@ -117,7 +117,7 @@ bool | overrideFlag |
diff --git a/docs/dc/db3/class_m_utils_1_1_registry_1_1_registry_key-members.html b/docs/dc/db3/class_m_utils_1_1_registry_1_1_registry_key-members.html
index 48b31b2..6c0263f 100644
--- a/docs/dc/db3/class_m_utils_1_1_registry_1_1_registry_key-members.html
+++ b/docs/dc/db3/class_m_utils_1_1_registry_1_1_registry_key-members.html
@@ -82,7 +82,7 @@ $(function() {
diff --git a/docs/dc/dd3/class_m_utils_1_1_job_object.html b/docs/dc/dd3/class_m_utils_1_1_job_object.html
index 3b49be7..2a7dc4e 100644
--- a/docs/dc/dd3/class_m_utils_1_1_job_object.html
+++ b/docs/dc/dd3/class_m_utils_1_1_job_object.html
@@ -86,7 +86,7 @@ bool terminateJob (uns
diff --git a/docs/dc/df9/class_m_utils_1_1_hash_1_1_blake2-members.html b/docs/dc/df9/class_m_utils_1_1_hash_1_1_blake2-members.html
index f3e5ccb..fcb70d1 100644
--- a/docs/dc/df9/class_m_utils_1_1_hash_1_1_blake2-members.html
+++ b/docs/dc/df9/class_m_utils_1_1_hash_1_1_blake2-members.html
@@ -78,7 +78,7 @@ $(function() {
diff --git a/docs/dd/d9f/class_m_utils_1_1_hash_1_1_keccak.html b/docs/dd/d9f/class_m_utils_1_1_hash_1_1_keccak.html
index 247a79b..7f4afb2 100644
--- a/docs/dd/d9f/class_m_utils_1_1_hash_1_1_keccak.html
+++ b/docs/dd/d9f/class_m_utils_1_1_hash_1_1_keccak.html
@@ -122,7 +122,7 @@ QByteArray | m_hashResult
diff --git a/docs/dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html b/docs/dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html
index 2496937..85d25dd 100644
--- a/docs/dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html
+++ b/docs/dd/de2/struct_m_utils_1_1_c_p_u_fetaures_1_1__cpu__info__t.html
@@ -107,7 +107,7 @@ char | brand [0x40] |
diff --git a/docs/dd/dea/_hash___keccak_8h_source.html b/docs/dd/dea/_hash___keccak_8h_source.html
index 59a52dd..624a180 100644
--- a/docs/dd/dea/_hash___keccak_8h_source.html
+++ b/docs/dd/dea/_hash___keccak_8h_source.html
@@ -74,7 +74,7 @@ $(function() {
diff --git a/docs/df/d98/_exception_8h_source.html b/docs/df/d98/_exception_8h_source.html
index d7e6170..edb3d44 100644
--- a/docs/df/d98/_exception_8h_source.html
+++ b/docs/df/d98/_exception_8h_source.html
@@ -70,7 +70,7 @@ $(function() {
26 #define MUTILS_PRINT_ERROR(FORMAT, ...) do \ 29 fprintf(stderr, (FORMAT), __VA_ARGS__); \ 34 #define MUTILS_EXCEPTION_HANDLER(COMMAND) do \ 38 do { COMMAND; } while(0); \ 40 catch(const std::exception &error) \ 42 MUTILS_PRINT_ERROR("\nGURU MEDITATION !!!\n\nException error:\n%s\n", error.what()); \ 43 MUtils::OS::fatal_exit(L"Unhandeled C++ exception error, application will exit!"); \ 47 MUTILS_PRINT_ERROR("\nGURU MEDITATION !!!\n\nUnknown exception error!\n"); \ 48 MUtils::OS::fatal_exit(L"Unhandeled C++ exception error, application will exit!"); \ 53 #define MUTILS_THROW(MESSAGE) do \ 55 throw std::runtime_error((MESSAGE)); \ 59 #define MUTILS_THROW_FMT(MESSAGE, ...) do \ 62 _snprintf_s(_message, 256, _TRUNCATE, (MESSAGE), __VA_ARGS__); \ 63 throw std::runtime_error(_message); \
diff --git a/docs/dir_b076b53667bc06ebb413a190e197fc7b.html b/docs/dir_b076b53667bc06ebb413a190e197fc7b.html
index fc08296..d3c8fce 100644
--- a/docs/dir_b076b53667bc06ebb413a190e197fc7b.html
+++ b/docs/dir_b076b53667bc06ebb413a190e197fc7b.html
@@ -77,7 +77,7 @@ Files
diff --git a/docs/dir_d44c64559bbebec7f509842c48db8b23.html b/docs/dir_d44c64559bbebec7f509842c48db8b23.html
index 58f9ac4..9177167 100644
--- a/docs/dir_d44c64559bbebec7f509842c48db8b23.html
+++ b/docs/dir_d44c64559bbebec7f509842c48db8b23.html
@@ -74,7 +74,7 @@ Directories
diff --git a/docs/files.html b/docs/files.html
index b5dc624..bbb85e6 100644
--- a/docs/files.html
+++ b/docs/files.html
@@ -90,7 +90,7 @@ $(function() {
diff --git a/docs/hierarchy.html b/docs/hierarchy.html
index f50fc6f..52f8864 100644
--- a/docs/hierarchy.html
+++ b/docs/hierarchy.html
@@ -83,7 +83,7 @@ $(function() {
diff --git a/docs/index.html b/docs/index.html
index 1837ab0..bb34ebe 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -73,7 +73,7 @@ $(function() {
MUtilities - MuldeR's Utilities for Qt
Copyright (C) 2004-2016 LoRd_MuldeR <MuldeR2@GMX.de>. Some rights reserved.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.