/* 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 . */ extern "C" { #include "digest/md5.h" } /* verify_md5digest return codes */ enum { MD5_MATCH_FAIL = -2, // -2: md5 did not match MD5_NOT_FOUND, // -1: no md5 file found MD5_OK, // 0: md5 matches MD5_FILE_UNREADABLE // 1: md5 file unreadable }; using namespace std; class twrpDigest { public: void setfn(const string& fn); int computeMD5(void); int verify_md5digest(void); int write_md5digest(void); int updateMD5stream(unsigned char* stream, int len); void finalizeMD5stream(void); string createMD5string(void); void initMD5(void); private: int read_md5digest(void); struct MD5Context md5c; string md5fn; string line; unsigned char md5sum[MD5LENGTH]; string md5string; };