summaryrefslogtreecommitdiffstats
path: root/twrpDigest.cpp
diff options
context:
space:
mode:
authorbigbiff bigbiff <bigbiff@teamw.in>2016-08-19 23:43:45 +0200
committerEthan Yonker <dees_troy@teamw.in>2017-06-17 14:05:45 +0200
commit56cf56465857e79e814b1e2d50f13e176170fcb3 (patch)
tree33b1ed63aa4e51f6e49fda5bd6ccb204e1e8fdab /twrpDigest.cpp
parentMerge "Fix minui issues for some build trees" into android-7.1 (diff)
downloadandroid_bootable_recovery-56cf56465857e79e814b1e2d50f13e176170fcb3.tar
android_bootable_recovery-56cf56465857e79e814b1e2d50f13e176170fcb3.tar.gz
android_bootable_recovery-56cf56465857e79e814b1e2d50f13e176170fcb3.tar.bz2
android_bootable_recovery-56cf56465857e79e814b1e2d50f13e176170fcb3.tar.lz
android_bootable_recovery-56cf56465857e79e814b1e2d50f13e176170fcb3.tar.xz
android_bootable_recovery-56cf56465857e79e814b1e2d50f13e176170fcb3.tar.zst
android_bootable_recovery-56cf56465857e79e814b1e2d50f13e176170fcb3.zip
Diffstat (limited to 'twrpDigest.cpp')
-rw-r--r--twrpDigest.cpp161
1 files changed, 0 insertions, 161 deletions
diff --git a/twrpDigest.cpp b/twrpDigest.cpp
deleted file mode 100644
index a9ba20a38..000000000
--- a/twrpDigest.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- Copyright 2012 to 2016 bigbiff/Dees_Troy TeamWin
- This file is part of TWRP/TeamWin Recovery Project.
-
- TWRP is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TWRP is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TWRP. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-extern "C"
-{
- #include "digest/md5.h"
- #include "libcrecovery/common.h"
-}
-
-#include <vector>
-#include <string>
-#include <sstream>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/wait.h>
-#include <string.h>
-#include <libgen.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <fstream>
-#include <sys/mman.h>
-#include "twcommon.h"
-#include "data.hpp"
-#include "variables.h"
-#include "twrp-functions.hpp"
-#include "twrpDigest.hpp"
-#include "set_metadata.h"
-#include "gui/gui.hpp"
-
-using namespace std;
-
-void twrpDigest::setfn(const string& fn) {
- md5fn = fn;
-}
-
-void twrpDigest::initMD5(void) {
- MD5Init(&md5c);
- md5string = "";
-}
-
-int twrpDigest::updateMD5stream(unsigned char* stream, int len) {
- if (md5fn.empty()) {
- MD5Update(&md5c, stream, len);
- }
- else {
- return -1;
- }
- return 0;
-}
-
-void twrpDigest::finalizeMD5stream() {
- MD5Final(md5sum, &md5c);
-}
-
-string twrpDigest::createMD5string() {
- int i;
- char hex[3];
-
- for (i = 0; i < 16; ++i) {
- snprintf(hex, 3, "%02x", md5sum[i]);
- md5string += hex;
- }
- if (!md5fn.empty()) {
- md5string += " ";
- md5string += basename((char*) md5fn.c_str());
- md5string += + "\n";
- }
- return md5string;
-}
-
-int twrpDigest::computeMD5(void) {
- string line;
- FILE *file;
- int len;
- unsigned char buf[1024];
- initMD5();
- file = fopen(md5fn.c_str(), "rb");
- if (file == NULL)
- return MD5_NOT_FOUND;
- while ((len = fread(buf, 1, sizeof(buf), file)) > 0) {
- MD5Update(&md5c, buf, len);
- }
- fclose(file);
- MD5Final(md5sum, &md5c);
- return 0;
-}
-
-int twrpDigest::write_md5digest(void) {
- string md5file, md5str;
- md5file = md5fn + ".md5";
-
- md5str = createMD5string();
- TWFunc::write_file(md5file, md5str);
- tw_set_default_metadata(md5file.c_str());
- LOGINFO("MD5 for %s: %s\n", md5fn.c_str(), md5str.c_str());
- return 0;
-}
-
-int twrpDigest::read_md5digest(void) {
- size_t i = 0;
- bool foundMd5File = false;
- string md5file = "";
- vector<string> md5ext;
- md5ext.push_back(".md5");
- md5ext.push_back(".md5sum");
-
- while (i < md5ext.size()) {
- md5file = md5fn + md5ext[i];
- if (TWFunc::Path_Exists(md5file)) {
- foundMd5File = true;
- break;
- }
- i++;
- }
-
- if (!foundMd5File)
- return MD5_NOT_FOUND;
- if (TWFunc::read_file(md5file, line) != 0)
- return MD5_FILE_UNREADABLE;
-
- return 0;
-}
-
-int twrpDigest::verify_md5digest(void) {
- string buf;
- char hex[3];
- int i, ret;
- string md5str;
-
- ret = read_md5digest();
- if (ret != 0)
- return ret;
- stringstream ss(line);
- vector<string> tokens;
- while (ss >> buf)
- tokens.push_back(buf);
- computeMD5();
- for (i = 0; i < 16; ++i) {
- snprintf(hex, 3, "%02x", md5sum[i]);
- md5str += hex;
- }
- if (tokens.empty() || tokens.at(0) != md5str)
- return MD5_MATCH_FAIL;
-
- return MD5_OK;
-}