16#ifndef LIEF_PE_PDBCHECKSUM_H
17#define LIEF_PE_PDBCHECKSUM_H
31 static std::unique_ptr<PDBChecksum>
42 hash_(std::move(
hash)) {}
45 std::vector<uint8_t>
hash) :
48 hash_(std::move(
hash)) {}
56 std::unique_ptr<Debug>
clone()
const override {
57 return std::unique_ptr<Debug>(
new PDBChecksum(*
this));
69 void hash(std::vector<uint8_t> h) {
92 std::vector<uint8_t> hash_;
span< uint8_t > payload()
Debug data associated with this entry.
const Section * section() const
The section where debug data is located.
Definition debug/Debug.hpp:170
TYPES
The entry types.
Definition debug/Debug.hpp:46
@ PDBCHECKSUM
Checksum of the PDB file.
Definition debug/Debug.hpp:97
PDBChecksum(HASH_ALGO algo, std::vector< uint8_t > hash)
Definition PDBChecksum.hpp:39
PDBChecksum & operator=(const PDBChecksum &other)=default
PDBChecksum & operator=(PDBChecksum &&other)=default
HASH_ALGO algorithm() const
Algorithm used for hashing the PDB content.
Definition PDBChecksum.hpp:74
std::unique_ptr< Debug > clone() const override
Definition PDBChecksum.hpp:56
std::string to_string() const override
void algorithm(HASH_ALGO algo)
Definition PDBChecksum.hpp:78
span< uint8_t > hash()
Definition PDBChecksum.hpp:65
PDBChecksum(PDBChecksum &&)=default
PDBChecksum(const details::pe_debug &dbg, Section *sec, HASH_ALGO algo, std::vector< uint8_t > hash)
Definition PDBChecksum.hpp:44
span< const uint8_t > hash() const
Hash of the PDB content.
Definition PDBChecksum.hpp:61
~PDBChecksum() override=default
static bool classof(const Debug *debug)
Definition PDBChecksum.hpp:82
void hash(std::vector< uint8_t > h)
Definition PDBChecksum.hpp:69
HASH_ALGO
Definition PDBChecksum.hpp:34
@ UNKNOWN
Definition PDBChecksum.hpp:35
PDBChecksum(const PDBChecksum &other)=default
static std::unique_ptr< PDBChecksum > parse(const details::pe_debug &hdr, Section *section, span< uint8_t > payload)
Class which represents a PE section.
Definition PE/Section.hpp:47
#define LIEF_LIFETIMEBOUND
Definition compiler_attributes.hpp:72
Namespace related to the LIEF's PE module.
Definition Abstract/Header.hpp:32
const char * to_string(CODE_PAGES e)
LIEF namespace.
Definition Abstract/Binary.hpp:41
tcb::span< ElementType, Extent > span
Definition span.hpp:22
#define LIEF_API
Definition visibility.h:45