The secured data of an SCP80 packet is a stream of C-APDUs (e.g. SELECT / UPDATE BINARY sequences for OTA file management). Vendor the working C-APDU parser from the otaman project (frontend-only, ~10 KB): PARSE_INS table, describeP1P2, describeInstallDataLv, parseOneApdu and parseCompactApdus (concatenated streams with implied-CLA handling). Detail view now shows an "Application message" section for secured packets: - unciphered packets (SPI1.b3=0): the on-wire secured data decodes immediately; - ciphered packets: decodes from the client-side decrypted payload once the user supplies the key (before that, ciphertext rows only); - each C-APDU renders as a numbered row with indented CLA/INS/P1/P2/ Lc/Data/Le + descriptions (nested LV for INSTALL), with implied-CLA annotation; raw-hex fallback when nothing parses; - vendored parser uppercases input (otaman's expects uppercase hex). Tests deferred to the follow-up step (node:test infra, planned). Version 1.20.0, SW cache simtrace-analyser-v28.
22 lines
626 B
TOML
22 lines
626 B
TOML
[build-system]
|
|
requires = ["setuptools>=64"]
|
|
build-backend = "setuptools.backends._legacy:_Backend"
|
|
|
|
[project]
|
|
name = "simtrace2-pysniff"
|
|
version = "1.20.0"
|
|
description = "Python-based sniffing tool for SIMtrace2 hardware (SIM card communication sniffer)"
|
|
readme = {file = "README.md", content-type = "text/markdown"}
|
|
license = {text = "GPL-2.0-or-later"}
|
|
requires-python = ">=3.9"
|
|
dependencies = [
|
|
"pyusb>=1.2",
|
|
]
|
|
|
|
[project.scripts]
|
|
simtrace2-pysniff = "simtrace2_pysniff.__main__:main"
|
|
simtrace2-pysniff-server = "simtrace2_pysniff.server.__main__:main"
|
|
|
|
[tool.setuptools.packages.find]
|
|
include = ["simtrace2_pysniff*"]
|