From 2aa16eac445f484617241874225728bb54211020 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 7 Sep 2021 13:29:11 +0200 Subject: [PATCH] using md5.h --- slsDetectorSoftware/CMakeLists.txt | 2 ++ slsDetectorSoftware/src/Module.cpp | 15 +++++++++++++-- slsDetectorSoftware/src/Module.h | 1 + 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/slsDetectorSoftware/CMakeLists.txt b/slsDetectorSoftware/CMakeLists.txt index 91697a939..5b8335387 100755 --- a/slsDetectorSoftware/CMakeLists.txt +++ b/slsDetectorSoftware/CMakeLists.txt @@ -5,6 +5,7 @@ set(SOURCES src/CmdProxy.cpp src/CmdParser.cpp src/Pattern.cpp + ../slsSupportLib/opensslMd5/md5.c ) add_library(slsDetectorObject OBJECT @@ -34,6 +35,7 @@ set(PUBLICHEADERS include/sls/Detector.h include/sls/Result.h include/sls/Pattern.h + ../slsSupportLib/opensslMd5/md5.h ) #Shared library diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index dcdd0b82f..b021c5634 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -1,5 +1,6 @@ #include "Module.h" #include "SharedMemory.h" +#include "md5.h" #include "sls/ClientSocket.h" #include "sls/ToString.h" #include "sls/bit_utils.h" @@ -11,7 +12,6 @@ #include "sls/string_utils.h" #include "sls/versionAPI.h" - #include #include #include @@ -3412,10 +3412,21 @@ sls_detector_module Module::readSettingsFile(const std::string &fname, return myMod; } +std::string Module::calculateChecksum(char *buffer, ssize_t bytes) { + MD5_CTX c; + MD5_Init(&c); + MD5_Update(&c, bufer, bytes); + unsigned char out[MD5_DIGEST_LENGTH]; + MD5_Final(out, &c); + return std::string(out); +} + void Module::programFPGAviaBlackfin(std::vector buffer, const std::string &checksum) { uint64_t filesize = buffer.size(); - LOG(logDEBUG1) << "checksum:" << checksum; + LOG(logINFOBLUE) << "checksum 1:" << checksum; + LOG(logINFOBLUE) << "checksum 2:" + << calculateChecksum(buffer.data(), filesize); // send program from memory to detector LOG(logINFO) << "Sending programming binary (from pof) to module " diff --git a/slsDetectorSoftware/src/Module.h b/slsDetectorSoftware/src/Module.h index 89d9bfd77..a36c757d3 100644 --- a/slsDetectorSoftware/src/Module.h +++ b/slsDetectorSoftware/src/Module.h @@ -744,6 +744,7 @@ class Module : public virtual slsDetectorDefs { std::string getTrimbitFilename(detectorSettings settings, int e_eV); sls_detector_module readSettingsFile(const std::string &fname, bool trimbits = true); + std::string calculateChecksum(char *buffer, ssize_t bytes); void programFPGAviaBlackfin(std::vector buffer, const std::string &checksum); void programFPGAviaNios(std::vector buffer);