electron/shell/common/asar/asar_util.h

42 lines
1.1 KiB
C
Raw Normal View History

// Copyright (c) 2015 GitHub, Inc.
// Use of this source code is governed by the MIT license that can be
// found in the LICENSE file.
#ifndef ELECTRON_SHELL_COMMON_ASAR_ASAR_UTIL_H_
#define ELECTRON_SHELL_COMMON_ASAR_ASAR_UTIL_H_
#include <memory>
2015-02-12 04:50:28 -07:00
#include <string>
namespace base {
class FilePath;
}
namespace asar {
class Archive;
struct IntegrityPayload;
// Gets or creates and caches a new Archive from the path.
std::shared_ptr<Archive> GetOrCreateAsarArchive(const base::FilePath& path);
2017-03-10 01:33:27 -07:00
// Destroy cached Archive objects.
void ClearArchives();
2015-02-12 02:31:14 -07:00
// Separates the path to Archive out.
bool GetAsarArchivePath(const base::FilePath& full_path,
base::FilePath* asar_path,
base::FilePath* relative_path,
bool allow_root = false);
2015-02-12 02:31:14 -07:00
// Same with base::ReadFileToString but supports asar Archive.
bool ReadFileToString(const base::FilePath& path, std::string* contents);
void ValidateIntegrityOrDie(const char* data,
size_t size,
const IntegrityPayload& integrity);
} // namespace asar
#endif // ELECTRON_SHELL_COMMON_ASAR_ASAR_UTIL_H_