Mercurial > hg > orthanc
comparison OrthancFramework/Sources/Toolbox.cpp @ 5377:daf4807631c5
ComputeMD5 for std::set
author | Alain Mazy <am@osimis.io> |
---|---|
date | Thu, 24 Aug 2023 13:35:18 +0200 |
parents | 123a94dd57df |
children | be0b9c407985 |
comparison
equal
deleted
inserted
replaced
5376:4ab905749aed | 5377:daf4807631c5 |
---|---|
494 { | 494 { |
495 result[2 * i] = GetHexadecimalCharacter(static_cast<uint8_t>(actualHash[i] / 16)); | 495 result[2 * i] = GetHexadecimalCharacter(static_cast<uint8_t>(actualHash[i] / 16)); |
496 result[2 * i + 1] = GetHexadecimalCharacter(static_cast<uint8_t>(actualHash[i] % 16)); | 496 result[2 * i + 1] = GetHexadecimalCharacter(static_cast<uint8_t>(actualHash[i] % 16)); |
497 } | 497 } |
498 } | 498 } |
499 | |
500 void Toolbox::ComputeMD5(std::string& result, | |
501 const std::set<std::string>& data) | |
502 { | |
503 md5_state_s state; | |
504 md5_init(&state); | |
505 | |
506 if (data.size() > 0) | |
507 { | |
508 for (std::set<std::string>::const_iterator it = data.begin(); it != data.end(); ++it) | |
509 { | |
510 md5_append(&state, | |
511 reinterpret_cast<const md5_byte_t*>(it->c_str()), | |
512 static_cast<int>(it->size())); | |
513 } | |
514 } | |
515 | |
516 md5_byte_t actualHash[16]; | |
517 md5_finish(&state, actualHash); | |
518 | |
519 result.resize(32); | |
520 for (unsigned int i = 0; i < 16; i++) | |
521 { | |
522 result[2 * i] = GetHexadecimalCharacter(static_cast<uint8_t>(actualHash[i] / 16)); | |
523 result[2 * i + 1] = GetHexadecimalCharacter(static_cast<uint8_t>(actualHash[i] % 16)); | |
524 } | |
525 } | |
526 | |
499 #endif | 527 #endif |
500 | 528 |
501 | 529 |
502 #if ORTHANC_ENABLE_BASE64 == 1 | 530 #if ORTHANC_ENABLE_BASE64 == 1 |
503 void Toolbox::EncodeBase64(std::string& result, | 531 void Toolbox::EncodeBase64(std::string& result, |