code: def _CalculateDigestHash(self, file_entry, data_stream_name):
      
      file_object = file_entry.GetFileObject(data_stream_name=data_stream_name)
      if not file_object:
        return None
  
      try:
        file_object.seek(0, os.SEEK_SET)
  
        hasher_object = hashers_manager.HashersManager.GetHasher('sha256')
  
        data = file_object.read(self._READ_BUFFER_SIZE)
        while data:
          hasher_object.Update(data)
          data = file_object.read(self._READ_BUFFER_SIZE)
  
      finally:
        file_object.close()
  
      return hasher_object.GetStringDigest()
docs: Calculates a SHA-256 digest of the contents of the file entry.
  
      Args:
        file_entry (dfvfs.FileEntry): file entry whose content will be hashed.
        data_stream_name (str): name of the data stream whose content is to be
            hashed.
  
      Returns:
        str: hexadecimal representation of the SHA-256 hash or None if the digest
            cannot be determined.