Mercurial > hg > orthanc-webviewer
comparison Orthanc/Core/Toolbox.cpp @ 90:a54260a7fe59
sync
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 27 Nov 2015 13:54:33 +0100 |
parents | bc05500ea317 |
children | 3809121c3290 |
comparison
equal
deleted
inserted
replaced
89:bc05500ea317 | 90:a54260a7fe59 |
---|---|
492 } | 492 } |
493 | 493 |
494 | 494 |
495 void Toolbox::ComputeMD5(std::string& result, | 495 void Toolbox::ComputeMD5(std::string& result, |
496 const void* data, | 496 const void* data, |
497 size_t length) | 497 size_t size) |
498 { | 498 { |
499 md5_state_s state; | 499 md5_state_s state; |
500 md5_init(&state); | 500 md5_init(&state); |
501 | 501 |
502 if (length > 0) | 502 if (size > 0) |
503 { | 503 { |
504 md5_append(&state, | 504 md5_append(&state, |
505 reinterpret_cast<const md5_byte_t*>(data), | 505 reinterpret_cast<const md5_byte_t*>(data), |
506 static_cast<int>(length)); | 506 static_cast<int>(size)); |
507 } | 507 } |
508 | 508 |
509 md5_byte_t actualHash[16]; | 509 md5_byte_t actualHash[16]; |
510 md5_finish(&state, actualHash); | 510 md5_finish(&state, actualHash); |
511 | 511 |
551 { | 551 { |
552 throw OrthancException(ErrorCode_BadFileFormat); | 552 throw OrthancException(ErrorCode_BadFileFormat); |
553 } | 553 } |
554 } | 554 } |
555 # endif | 555 # endif |
556 | |
557 | |
558 void Toolbox::EncodeDataUriScheme(std::string& result, | |
559 const std::string& mime, | |
560 const std::string& content) | |
561 { | |
562 result = "data:" + mime + ";base64," + base64_encode(content); | |
563 } | |
556 | 564 |
557 #endif | 565 #endif |
558 | 566 |
559 | 567 |
560 | 568 |
749 } | 757 } |
750 | 758 |
751 return result; | 759 return result; |
752 } | 760 } |
753 | 761 |
762 | |
754 void Toolbox::ComputeSHA1(std::string& result, | 763 void Toolbox::ComputeSHA1(std::string& result, |
755 const std::string& data) | 764 const void* data, |
765 size_t size) | |
756 { | 766 { |
757 boost::uuids::detail::sha1 sha1; | 767 boost::uuids::detail::sha1 sha1; |
758 | 768 |
759 if (data.size() > 0) | 769 if (size > 0) |
760 { | 770 { |
761 sha1.process_bytes(&data[0], data.size()); | 771 sha1.process_bytes(data, size); |
762 } | 772 } |
763 | 773 |
764 unsigned int digest[5]; | 774 unsigned int digest[5]; |
765 | 775 |
766 // Sanity check for the memory layout: A SHA-1 digest is 160 bits wide | 776 // Sanity check for the memory layout: A SHA-1 digest is 160 bits wide |
774 digest[1], | 784 digest[1], |
775 digest[2], | 785 digest[2], |
776 digest[3], | 786 digest[3], |
777 digest[4]); | 787 digest[4]); |
778 } | 788 } |
789 | |
790 void Toolbox::ComputeSHA1(std::string& result, | |
791 const std::string& data) | |
792 { | |
793 if (data.size() > 0) | |
794 { | |
795 ComputeSHA1(result, data.c_str(), data.size()); | |
796 } | |
797 else | |
798 { | |
799 ComputeSHA1(result, NULL, 0); | |
800 } | |
801 } | |
802 | |
779 | 803 |
780 bool Toolbox::IsSHA1(const char* str, | 804 bool Toolbox::IsSHA1(const char* str, |
781 size_t size) | 805 size_t size) |
782 { | 806 { |
783 if (size == 0) | 807 if (size == 0) |