Rizin
unix-like reverse engineering framework and cli tools
|
Validate Index by using a hash function. More...
Go to the source code of this file.
Typedefs | |
typedef struct lzma_index_hash_s | lzma_index_hash |
Opaque data type to hold the Index hash. More... | |
Functions | |
LZMA_API (lzma_index_hash *) lzma_index_hash_init(lzma_index_hash *index_hash | |
Allocate and initialize a new lzma_index_hash structure. More... | |
LZMA_API (void) lzma_index_hash_end(lzma_index_hash *index_hash | |
Deallocate lzma_index_hash structure. More... | |
LZMA_API (lzma_ret) lzma_index_hash_append(lzma_index_hash *index_hash | |
Add a new Record to an Index hash. More... | |
LZMA_API (lzma_vli) lzma_index_hash_size(const lzma_index_hash *index_hash) lzma_nothrow lzma_attr_pure | |
Get the size of the Index field as bytes. More... | |
Validate Index by using a hash function.
Hashing makes it possible to use constant amount of memory to validate Index of arbitrary size.
Definition in file index_hash.h.
typedef struct lzma_index_hash_s lzma_index_hash |
Opaque data type to hold the Index hash.
Definition at line 1 of file index_hash.h.
LZMA_API | ( | lzma_index_hash * | ) |
Allocate and initialize a new lzma_index_hash structure.
If index_hash is NULL, a new lzma_index_hash structure is allocated, initialized, and a pointer to it returned. If allocation fails, NULL is returned.
If index_hash is non-NULL, it is reinitialized and the same pointer returned. In this case, return value cannot be NULL or a different pointer than the index_hash that was given as an argument.
LZMA_API | ( | lzma_ret | ) |
Add a new Record to an Index hash.
Decode and validate the Index field.
index | Pointer to a lzma_index_hash structure |
unpadded_size | Unpadded Size of a Block |
uncompressed_size | Uncompressed Size of a Block |
After telling the sizes of all Blocks with lzma_index_hash_append(), the actual Index field is decoded with this function. Specifically, once decoding of the Index field has been started, no more Records can be added using lzma_index_hash_append().
This function doesn't use lzma_stream structure to pass the input data. Instead, the input buffer is specified using three arguments. This is because it matches better the internal APIs of liblzma.
index_hash | Pointer to a lzma_index_hash structure |
in | Pointer to the beginning of the input buffer |
in_pos | in[*in_pos] is the next byte to process |
in_size | in[in_size] is the first byte not to process |
LZMA_API | ( | uint64_t | ) | const |
Get the size of the Index field as bytes.
This is needed to verify the Backward Size field in the Stream Footer.
Get the size of the Index field as bytes.
Calculate approximate memory requirements for raw encoder.
Calculate Unpadded Size.
Get the memory usage of decoder filter chain.
Calculate CRC64 using the polynomial from the ECMA-182 standard.
This function is used similarly to lzma_crc32(). See its documentation.
Definition at line 131 of file block_util.c.
LZMA_API | ( | void | ) |
Deallocate lzma_index_hash structure.
Definition at line 96 of file index_hash.h.
Definition at line 96 of file index_hash.h.
Definition at line 41 of file index_hash.h.
const lzma_allocator* allocator lzma_nothrow |
Definition at line 49 of file index_hash.h.
lzma_vli unpadded_size |
Definition at line 66 of file index_hash.h.