Files
mtgodot-poc/audit/port-map/EterBase/CRC32.cpp.json
T

57 lines
2.3 KiB
JSON

{
"reference": "EterBase/CRC32.cpp",
"reference_sha256": "80bbbc71a273097830279d96c7d7ac28df6d043675711eb1b6f28a9801a83016",
"priority": "P4",
"contracts": [],
"functions": {
"GetCRC32": {
"impl": [
"src/platform/EterBase/CRC32.cpp:GetCRC32"
],
"status": "ADAPTED",
"note": "platform CRC32 table implementation; same polynomial and GetCRC32 values (checked against every stored filename_crc)",
"test": "tests/port/port_eterpack_test.cpp (103 packs, 54891 entries, first-registered wins, 4 SECURITY rejects)"
},
"GetCaseCRC32": {
"status": "PORTED",
"impl": [
"src/platform/EterBase/CRC32.cpp:GetCaseCRC32"
],
"test": [
"tests/port/port_utils_test.cpp"
],
"note": "Verbatim 40250 loop (UPPER fold); CRCTable generated from 0xEDB88320, identical to the literal 40250 table."
},
"GetHFILECRC32": {
"status": "ADAPTED",
"impl": [
"src/platform/EterBase/CRC32.cpp:GetHFILECRC32"
],
"test": [
"tests/port/port_utils_test.cpp"
],
"note": "40250 maps the file (CreateFile + CreateFileMapping/MapViewOfFile from offset 0) and CRCs the whole view; the port reads the whole FILE* into a buffer. Invariant: same CRC of the full file, the handle's position is unchanged, 0 when the file cannot be opened."
},
"GetFileCRC32": {
"status": "ADAPTED",
"impl": [
"src/platform/EterBase/CRC32.cpp:GetFileCRC32"
],
"test": [
"tests/port/port_utils_test.cpp"
],
"note": "40250 maps the file (CreateFile + CreateFileMapping/MapViewOfFile from offset 0) and CRCs the whole view; the port reads the whole FILE* into a buffer. Invariant: same CRC of the full file, the handle's position is unchanged, 0 when the file cannot be opened. Callers: GuildMarkUploader/GuildMarkDownloader symbol CRC, root pack CRC report."
},
"GetFileSize": {
"status": "ADAPTED",
"impl": [
"src/platform/EterBase/CRC32.cpp:GetFileSize"
],
"test": [
"tests/port/port_utils_test.cpp"
],
"note": "CreateFile + GetFileSize -> fopen + ftell(SEEK_END); 0 when the file is missing (40250 returns 0 on INVALID_HANDLE_VALUE). Caller: GuildMarkDownloader symbol size."
}
}
}