25 {
26 std::ifstream input_file(file, std::ios::binary);
27
28 if (!input_file) {
29 std::cerr << "Error opening file: " << file << std::endl;
30 checksum_list.push_back(std::make_tuple(file,
"XXXXXXXXXXXXXXXX"));
31 return "XXXXXXXXXXXXXXXX";
32 }
33
34 md5_state_t state;
35 md5_init(&state);
36
38 int cont=1;
39
40 while ( cont == 1){
42 int count = input_file.gcount();
43 md5_append(&state, ( md5_byte_t *)buffer, count);
45 cont=0;
46 }
47 }
48 input_file.close();
49
50 unsigned char digest[16];
51 md5_finish(&state, digest);
52
53 std::ostringstream formatted_line;
54 for (int i = 0; i < 16; ++i) {
55 formatted_line << std::hex << std::setw(2) << std::setfill('0') << static_cast<int>(digest[i]);
56 }
57 checksum_list.push_back(std::make_tuple(file, formatted_line.str()));
58 return formatted_line.str();
59}
std::list< std::tuple< std::string, std::string > > checksum_list