diff options
author | bigbiff bigbiff <bigbiff@teamw.in> | 2016-08-19 23:43:45 +0200 |
---|---|---|
committer | Ethan Yonker <dees_troy@teamw.in> | 2017-06-17 14:05:45 +0200 |
commit | 56cf56465857e79e814b1e2d50f13e176170fcb3 (patch) | |
tree | 33b1ed63aa4e51f6e49fda5bd6ccb204e1e8fdab /twrpDigest.cpp | |
parent | Merge "Fix minui issues for some build trees" into android-7.1 (diff) | |
download | android_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.cpp | 161 |
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; -} |