MD5 verification sanity

We can use switches and enums to make things more understandable
and work with results in a more sensible manner.

PS2: Move file MD5 verification and error handling into
     a separate function to reduce code.

PS3: Default to false in Check_Restore_File_MD5 function

Change-Id: Id3ee0bb444cf13be67bb5dec2c43f7c26a86b954
(cherry picked from commit 5c3950716e5c7c6279efd5f3f338d6d22e5215e2)
diff --git a/twrpDigest.cpp b/twrpDigest.cpp
index ab8f456..d1217cb 100644
--- a/twrpDigest.cpp
+++ b/twrpDigest.cpp
@@ -91,7 +91,7 @@
 	initMD5();
 	file = fopen(md5fn.c_str(), "rb");
 	if (file == NULL)
-		return -1;
+		return MD5_NOT_FOUND;
 	while ((len = fread(buf, 1, sizeof(buf), file)) > 0) {
 		MD5Update(&md5c, buf, len);
 	}
@@ -128,24 +128,14 @@
 		i++;
 	}
 
-	if (!foundMd5File) {
-		gui_msg("no_md5=Skipping MD5 check: no MD5 file found");
-		return -1;
-	} else if (TWFunc::read_file(md5file, line) != 0) {
-		LOGERR("Skipping MD5 check: MD5 file unreadable %s\n", strerror(errno));
-		return 1;
-	}
+	if (!foundMd5File)
+		return MD5_NOT_FOUND;
+	if (TWFunc::read_file(md5file, line) != 0)
+		return MD5_FILE_UNREADABLE;
 
 	return 0;
 }
 
-/* verify_md5digest return codes:
-	-2: md5 did not match
-	-1: no md5 file found
-	 0: md5 matches
-	 1: md5 file unreadable
-*/
-
 int twrpDigest::verify_md5digest(void) {
 	string buf;
 	char hex[3];
@@ -164,11 +154,8 @@
 		snprintf(hex, 3, "%02x", md5sum[i]);
 		md5str += hex;
 	}
-	if (tokens.at(0) != md5str) {
-		gui_err("md5_fail=MD5 does not match");
-		return -2;
-	}
+	if (tokens.at(0) != md5str)
+		return MD5_MATCH_FAIL;
 
-	gui_msg("md5_match=MD5 matched");
-	return 0;
+	return MD5_OK;
 }