Index: sources/storage/FileHandler.cpp =================================================================== diff -u -rf6c480d06e4b8c770012115d20df2a44e0da8031 -rabd0e958420f25e5b8dd8ce6e21131f8561b99e0 --- sources/storage/FileHandler.cpp (.../FileHandler.cpp) (revision f6c480d06e4b8c770012115d20df2a44e0da8031) +++ sources/storage/FileHandler.cpp (.../FileHandler.cpp) (revision abd0e958420f25e5b8dd8ce6e21131f8561b99e0) @@ -19,6 +19,7 @@ #include #include #include +#include // Project @@ -438,3 +439,22 @@ QFileInfo fileInfo(vFilePath); return fileInfo.canonicalFilePath() != fileInfo.filePath(); } + +/*! + * \brief FileHandler::sha256sum + * \param vFileName - the file name including path to generate the sha256sum for + * \param vOk - if used will contain the success/true, fail/false of the checksum generation + * \return The checksum result in hex sting. + */ +QString FileHandler::sha256sum(QString vFileName, bool *vOk) { + bool ok = true; + QByteArray shasum; + QCryptographicHash hash(QCryptographicHash::Sha256); + QFile file(vFileName); + if ( ! file.open(QIODevice::ReadOnly)) { ok = false; goto lOut; } + hash.addData(&file); + shasum = hash.result().toHex(); +lOut: + if (vOk) *vOk = ok; + return shasum; +}