const std::string getHash(std::string fname){
  std::ifstream f;
  f.open(fname.c_str());
  SHA256 digest;
  const size_t BufferSize = 144 * 7 * 1024;
  char * buffer = new char[BufferSize];
  if (f != NULL){
    f.read(buffer, BufferSize);//read(char *s, streamsize n)
    std::size_t numByte = size_t(f.gcount());//gcount(): return the number of characters extracted by the last unformatted input operation
    digest.add(buffer, numByte);
  }
  f.close();
  delete[] buffer;
  return digest.getHash();
}
Exemple #2
0
    std::string GetSha256ForFile(std::filesystem::path Filename)
    {
        SHA256 SHA;
        std::ifstream InStream(Filename.string());
        unsigned char tmpbuf[256];

        if (!InStream.is_open())
            return "";

        while (!InStream.eof())
        {
            InStream.read((char*)tmpbuf, 256);
            size_t cnt = InStream.gcount();

            SHA.add(tmpbuf, cnt);
        }

        return std::string(SHA.getHash());
    }
Exemple #3
0
    std::string GetSha256ForFile(std::string Filename)
    {
        SHA256 SHA;
#ifndef WIN32
        std::ifstream InStream(Filename.c_str());
#else
        std::ifstream InStream(Utility::Widen(Filename).c_str());
#endif
        unsigned char tmpbuf[256];

        if (!InStream.is_open())
            return "";

        while (!InStream.eof())
        {
            InStream.read((char*)tmpbuf, 256);
            size_t cnt = InStream.gcount();

            SHA.add(tmpbuf, cnt);
        }

        return std::string(SHA.getHash());
    }