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)