diff --git a/src/Mod/Cloud/App/AppCloud.cpp b/src/Mod/Cloud/App/AppCloud.cpp index bf187c27ce..54f37a979c 100644 --- a/src/Mod/Cloud/App/AppCloud.cpp +++ b/src/Mod/Cloud/App/AppCloud.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include @@ -319,6 +320,8 @@ struct Cloud::AmzData *Cloud::ComputeDigestAmzS3v2(char *operation, char *data_t if ( ptr != NULL ) { returnData->MD5=Cloud::MD5Sum(ptr,size); + printf("Target: %s\n",target); + printf("SHA256: %s\n", Cloud::SHA256Sum(ptr,size)); sprintf(StringToSign,"%s\n%s\n%s\n%s\n%s", operation, returnData->MD5, data_type, date_formatted, target); } else @@ -335,6 +338,17 @@ struct Cloud::AmzData *Cloud::ComputeDigestAmzS3v2(char *operation, char *data_t } +char *Cloud::SHA256Sum(const char *ptr, long size) +{ + char *output; + std::string local; + unsigned char result[SHA256_DIGEST_LENGTH]; + output=(char *)malloc(SHA256_DIGEST_LENGTH*sizeof(char)); + SHA256((unsigned char*) ptr, size, result); + strcpy(output,(const char *)(&(result[0]))); + return(output); +} + char *Cloud::MD5Sum(const char *ptr, long size) { char *output; diff --git a/src/Mod/Cloud/App/AppCloud.h b/src/Mod/Cloud/App/AppCloud.h index 2c59c4985f..3372ed652c 100644 --- a/src/Mod/Cloud/App/AppCloud.h +++ b/src/Mod/Cloud/App/AppCloud.h @@ -60,6 +60,7 @@ size_t CurlWrite_CallbackFunc_StdString(void *contents, size_t size, size_t nmem struct AmzData *ComputeDigestAmzS3v2(char *operation, char *data_type, const char *target, const char *Secret, const char *ptr, long size); struct curl_slist *BuildHeaderAmzS3v2(const char *URL, const char *TCPPort, const char *PublicKey, struct AmzData *Data); char *MD5Sum(const char *ptr, long size); +char *SHA256Sum(const char *ptr, long size); class CloudAppExport CloudReader {