Integrity checks.
More...
|
#define | LZMA_CHECK_ID_MAX 15 |
| Maximum valid Check ID.
|
|
#define | LZMA_CHECK_SIZE_MAX 64 |
| Maximum size of a Check field.
|
|
Integrity checks.
- Note
- Never include this file directly. Use <lzma.h> instead.
◆ LZMA_CHECK_ID_MAX
#define LZMA_CHECK_ID_MAX 15 |
Maximum valid Check ID.
The .xz file format specification specifies 16 Check IDs (0-15). Some of them are only reserved, that is, no actual Check algorithm has been assigned. When decoding, liblzma still accepts unknown Check IDs for future compatibility. If a valid but unsupported Check ID is detected, liblzma can indicate a warning; see the flags LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK, and LZMA_TELL_ANY_CHECK in container.h.
◆ lzma_check
Type of the integrity check (Check ID)
The .xz format supports multiple types of checks that are calculated from the uncompressed data. They vary in both speed and ability to detect errors.
Enumerator |
---|
LZMA_CHECK_NONE | No Check is calculated.
Size of the Check field: 0 bytes
|
LZMA_CHECK_CRC32 | CRC32 using the polynomial from the IEEE 802.3 standard
Size of the Check field: 4 bytes
|
LZMA_CHECK_CRC64 | CRC64 using the polynomial from the ECMA-182 standard
Size of the Check field: 8 bytes
|
LZMA_CHECK_SHA256 | SHA-256
Size of the Check field: 32 bytes
|
◆ lzma_check_is_supported()
Test if the given Check ID is supported.
LZMA_CHECK_NONE and LZMA_CHECK_CRC32 are always supported (even if liblzma is built with limited features).
- Note
- It is safe to call this with a value that is not in the range [0, 15]; in that case the return value is always false.
- Parameters
-
- Returns
- lzma_bool:
- true if Check ID is supported by this liblzma build.
- false otherwise.
◆ lzma_check_size()
uint32_t lzma_check_size |
( |
lzma_check |
check | ) |
const |
|
extern |
Get the size of the Check field with the given Check ID.
Although not all Check IDs have a check algorithm associated, the size of every Check is already frozen. This function returns the size (in bytes) of the Check field with the specified Check ID. The values are: { 0, 4, 4, 4, 8, 8, 8, 16, 16, 16, 32, 32, 32, 64, 64, 64 }
- Parameters
-
- Returns
- Size of the Check field in bytes. If the argument is not in the range [0, 15], UINT32_MAX is returned.
◆ lzma_crc32()
uint32_t lzma_crc32 |
( |
const uint8_t * |
buf, |
|
|
size_t |
size, |
|
|
uint32_t |
crc |
|
) |
| |
|
extern |
Calculate CRC32.
Calculate CRC32 using the polynomial from the IEEE 802.3 standard.
- Parameters
-
buf | Pointer to the input buffer |
size | Size of the input buffer |
crc | Previously returned CRC value. This is used to calculate the CRC of a big buffer in smaller chunks. Set to zero when starting a new calculation. |
- Returns
- Updated CRC value, which can be passed to this function again to continue CRC calculation.
◆ lzma_crc64()
uint64_t lzma_crc64 |
( |
const uint8_t * |
buf, |
|
|
size_t |
size, |
|
|
uint64_t |
crc |
|
) |
| |
|
extern |
Calculate CRC64.
Calculate CRC64 using the polynomial from the ECMA-182 standard.
This function is used similarly to lzma_crc32().
- Parameters
-
buf | Pointer to the input buffer |
size | Size of the input buffer |
crc | Previously returned CRC value. This is used to calculate the CRC of a big buffer in smaller chunks. Set to zero when starting a new calculation. |
- Returns
- Updated CRC value, which can be passed to this function again to continue CRC calculation.
◆ lzma_get_check()
Get the type of the integrity check.
This function can be called only immediately after lzma_code() has returned LZMA_NO_CHECK, LZMA_UNSUPPORTED_CHECK, or LZMA_GET_CHECK. Calling this function in any other situation has undefined behavior.
- Parameters
-
strm | Pointer to lzma_stream meeting the above conditions. |
- Returns
- Check ID in the lzma_stream, or undefined if called improperly.