summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'segget/checksum.cpp')
-rw-r--r--segget/checksum.cpp63
1 files changed, 49 insertions, 14 deletions
diff --git a/segget/checksum.cpp b/segget/checksum.cpp
index cb36561..396c196 100644
--- a/segget/checksum.cpp
+++ b/segget/checksum.cpp
@@ -28,16 +28,21 @@
bool rmd160_ok(string distfile_filename, string portage_hash){
try{
+ if (portage_hash=="") return true;
std::string digest;
CryptoPP::RIPEMD160 hash;
CryptoPP::FileSource distfile_to_hash(distfile_filename.c_str(), true,
new CryptoPP::HashFilter(hash,
new CryptoPP::HexEncoder(
new CryptoPP::StringSink(digest))));
- if (portage_hash==noupper(digest))
+ if (portage_hash==noupper(digest)){
+ log("RMD160 checksum for distfile:"+distfile_filename+" is [OK]");
return true;
- else
+ }else{
+ log("Error: RMD160 checksum for distfile:"+distfile_filename+" [FAILED]");
+ error_log("Error: RMD160 checksum for distfile:"+distfile_filename+" [FAILED]");
return false;
+ }
}catch(...){
error_log("Error in checksum.cpp : rmd160_ok()");
return false;
@@ -45,6 +50,7 @@ bool rmd160_ok(string distfile_filename, string portage_hash){
}
bool sha1_ok(string distfile_filename, string portage_hash){
try{
+ if (portage_hash=="") return true;
std::string digest;
CryptoPP::SHA1 hash;
CryptoPP::FileSource distfile_to_hash(distfile_filename.c_str(), true,
@@ -52,10 +58,14 @@ bool sha1_ok(string distfile_filename, string portage_hash){
new CryptoPP::HexEncoder(
new CryptoPP::StringSink(digest))));
// debug("SHA1:"+noupper(digest));
- if (portage_hash==noupper(digest))
+ if (portage_hash==noupper(digest)){
+ log("SHA1 checksum for distfile:"+distfile_filename+" is [OK]");
return true;
- else
+ }else{
+ log("Error: SHA1 checksum for distfile:"+distfile_filename+" [FAILED]");
+ error_log("Error: SHA1 checksum for distfile:"+distfile_filename+" [FAILED]");
return false;
+ }
}catch(...){
error_log("Error in checksum.cpp : sha1_ok()");
return false;
@@ -63,6 +73,7 @@ bool sha1_ok(string distfile_filename, string portage_hash){
}
bool sha256_ok(string distfile_filename, string portage_hash){
try{
+ if (portage_hash=="") return true;
std::string digest;
CryptoPP::SHA256 hash;
CryptoPP::FileSource distfile_to_hash(distfile_filename.c_str(), true,
@@ -70,10 +81,14 @@ bool sha256_ok(string distfile_filename, string portage_hash){
new CryptoPP::HexEncoder(
new CryptoPP::StringSink(digest))));
// debug("SHA256:"+noupper(digest));
- if (portage_hash==noupper(digest))
+ if (portage_hash==noupper(digest)){
+ log("SHA256 checksum for distfile:"+distfile_filename+" is [OK]");
return true;
- else
+ }else{
+ log("Error: SHA256 checksum for distfile:"+distfile_filename+" [FAILED]");
+ error_log("Error: SHA256 checksum for distfile:"+distfile_filename+" [FAILED]");
return false;
+ }
}catch(...){
error_log("Error in checksum.cpp : sha256_ok()");
return false;
@@ -81,6 +96,7 @@ bool sha256_ok(string distfile_filename, string portage_hash){
}
bool sha512_ok(string distfile_filename, string portage_hash){
try{
+ if (portage_hash=="") return true;
std::string digest;
CryptoPP::SHA512 hash;
CryptoPP::FileSource distfile_to_hash(distfile_filename.c_str(), true,
@@ -88,10 +104,14 @@ bool sha512_ok(string distfile_filename, string portage_hash){
new CryptoPP::HexEncoder(
new CryptoPP::StringSink(digest))));
// debug("SHA256:"+noupper(digest));
- if (portage_hash==noupper(digest))
+ if (portage_hash==noupper(digest)){
+ log("SHA512 checksum for distfile:"+distfile_filename+" is [OK]");
return true;
- else
+ }else{
+ log("Error: SHA512 checksum for distfile:"+distfile_filename+" [FAILED]");
+ error_log("Error: SHA512 checksum for distfile:"+distfile_filename+" [FAILED]");
return false;
+ }
}catch(...){
error_log("Error in checksum.cpp : sha512_ok()");
return false;
@@ -99,6 +119,7 @@ bool sha512_ok(string distfile_filename, string portage_hash){
}
bool whirlpool_ok(string distfile_filename, string portage_hash){
try{
+ if (portage_hash=="") return true;
std::string digest;
CryptoPP::Whirlpool hash;
CryptoPP::FileSource distfile_to_hash(distfile_filename.c_str(), true,
@@ -106,10 +127,14 @@ bool whirlpool_ok(string distfile_filename, string portage_hash){
new CryptoPP::HexEncoder(
new CryptoPP::StringSink(digest))));
// debug("SHA256:"+noupper(digest));
- if (portage_hash==noupper(digest))
+ if (portage_hash==noupper(digest)){
+ log("WHIRLPOOL checksum for distfile:"+distfile_filename+" is [OK]");
return true;
- else
+ }else{
+ log("Error: WHIRLPOOL checksum for distfile:"+distfile_filename+" [FAILED]");
+ error_log("Error: WHIRLPOOL checksum for distfile:"+distfile_filename+" [FAILED]");
return false;
+ }
}catch(...){
error_log("Error in checksum.cpp : whirlpool_ok()");
return false;
@@ -117,6 +142,7 @@ bool whirlpool_ok(string distfile_filename, string portage_hash){
}
bool md5_ok(string distfile_filename, string portage_hash){
try{
+ if (portage_hash=="") return true;
std::string digest;
CryptoPP::Weak::MD5 hash;
CryptoPP::FileSource distfile_to_hash(distfile_filename.c_str(), true,
@@ -124,10 +150,14 @@ bool md5_ok(string distfile_filename, string portage_hash){
new CryptoPP::HexEncoder(
new CryptoPP::StringSink(digest))));
// debug("SHA256:"+noupper(digest));
- if (portage_hash==noupper(digest))
+ if (portage_hash==noupper(digest)){
+ log("MD5 checksum for distfile:"+distfile_filename+" is [OK]");
return true;
- else
+ }else{
+ log("Error: MD5 checksum for distfile:"+distfile_filename+" [FAILED]");
+ error_log("Error: MD5 checksum for distfile:"+distfile_filename+" [FAILED]");
return false;
+ }
}catch(...){
error_log("Error in checksum.cpp : md5_ok()");
return false;
@@ -135,6 +165,7 @@ bool md5_ok(string distfile_filename, string portage_hash){
}
bool crc32_ok(string distfile_filename, string portage_hash){
try{
+ if (portage_hash=="") return true;
std::string digest;
CryptoPP::CRC32 hash;
CryptoPP::FileSource distfile_to_hash(distfile_filename.c_str(), true,
@@ -142,10 +173,14 @@ bool crc32_ok(string distfile_filename, string portage_hash){
new CryptoPP::HexEncoder(
new CryptoPP::StringSink(digest))));
// debug("SHA256:"+noupper(digest));
- if (portage_hash==noupper(digest))
+ if (portage_hash==noupper(digest)){
+ log("CRC32 checksum for distfile:"+distfile_filename+" is [OK]");
return true;
- else
+ }else{
+ log("Error: CRC32 checksum for distfile:"+distfile_filename+" [FAILED]");
+ error_log("Error: CRC32 checksum for distfile:"+distfile_filename+" [FAILED]");
return false;
+ }
}catch(...){
error_log("Error in checksum.cpp : crc32_ok()");
return false;