pyxcp 0.25.2__cp314-cp314-win_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pyxcp/__init__.py +20 -0
- pyxcp/aml/EtasCANMonitoring.a2l +82 -0
- pyxcp/aml/EtasCANMonitoring.aml +67 -0
- pyxcp/aml/XCP_Common.aml +408 -0
- pyxcp/aml/XCPonCAN.aml +78 -0
- pyxcp/aml/XCPonEth.aml +33 -0
- pyxcp/aml/XCPonFlx.aml +113 -0
- pyxcp/aml/XCPonSxI.aml +66 -0
- pyxcp/aml/XCPonUSB.aml +106 -0
- pyxcp/aml/ifdata_CAN.a2l +20 -0
- pyxcp/aml/ifdata_Eth.a2l +11 -0
- pyxcp/aml/ifdata_Flx.a2l +94 -0
- pyxcp/aml/ifdata_SxI.a2l +13 -0
- pyxcp/aml/ifdata_USB.a2l +81 -0
- pyxcp/asam/__init__.py +0 -0
- pyxcp/asam/types.py +131 -0
- pyxcp/asamkeydll.c +116 -0
- pyxcp/asamkeydll.exe +0 -0
- pyxcp/asamkeydll.sh +2 -0
- pyxcp/checksum.py +732 -0
- pyxcp/cmdline.py +83 -0
- pyxcp/config/__init__.py +1257 -0
- pyxcp/config/legacy.py +120 -0
- pyxcp/constants.py +47 -0
- pyxcp/cpp_ext/__init__.py +0 -0
- pyxcp/cpp_ext/aligned_buffer.hpp +168 -0
- pyxcp/cpp_ext/bin.hpp +105 -0
- pyxcp/cpp_ext/blockmem.hpp +58 -0
- pyxcp/cpp_ext/cpp_ext.cp310-win_arm64.pyd +0 -0
- pyxcp/cpp_ext/cpp_ext.cp311-win_arm64.pyd +0 -0
- pyxcp/cpp_ext/cpp_ext.cp312-win_arm64.pyd +0 -0
- pyxcp/cpp_ext/cpp_ext.cp313-win_arm64.pyd +0 -0
- pyxcp/cpp_ext/cpp_ext.cp314-win_arm64.pyd +0 -0
- pyxcp/cpp_ext/daqlist.hpp +374 -0
- pyxcp/cpp_ext/event.hpp +67 -0
- pyxcp/cpp_ext/extension_wrapper.cpp +131 -0
- pyxcp/cpp_ext/framing.hpp +360 -0
- pyxcp/cpp_ext/helper.hpp +280 -0
- pyxcp/cpp_ext/mcobject.hpp +248 -0
- pyxcp/cpp_ext/sxi_framing.hpp +332 -0
- pyxcp/cpp_ext/tsqueue.hpp +46 -0
- pyxcp/daq_stim/__init__.py +306 -0
- pyxcp/daq_stim/optimize/__init__.py +67 -0
- pyxcp/daq_stim/optimize/binpacking.py +41 -0
- pyxcp/daq_stim/scheduler.cpp +62 -0
- pyxcp/daq_stim/scheduler.hpp +75 -0
- pyxcp/daq_stim/stim.cp310-win_arm64.pyd +0 -0
- pyxcp/daq_stim/stim.cp311-win_arm64.pyd +0 -0
- pyxcp/daq_stim/stim.cp312-win_arm64.pyd +0 -0
- pyxcp/daq_stim/stim.cp313-win_arm64.pyd +0 -0
- pyxcp/daq_stim/stim.cp314-win_arm64.pyd +0 -0
- pyxcp/daq_stim/stim.cpp +13 -0
- pyxcp/daq_stim/stim.hpp +604 -0
- pyxcp/daq_stim/stim_wrapper.cpp +50 -0
- pyxcp/dllif.py +100 -0
- pyxcp/errormatrix.py +878 -0
- pyxcp/examples/conf_can.toml +19 -0
- pyxcp/examples/conf_can_user.toml +16 -0
- pyxcp/examples/conf_can_vector.json +11 -0
- pyxcp/examples/conf_can_vector.toml +11 -0
- pyxcp/examples/conf_eth.toml +9 -0
- pyxcp/examples/conf_nixnet.json +20 -0
- pyxcp/examples/conf_socket_can.toml +12 -0
- pyxcp/examples/run_daq.py +165 -0
- pyxcp/examples/xcp_policy.py +60 -0
- pyxcp/examples/xcp_read_benchmark.py +38 -0
- pyxcp/examples/xcp_skel.py +48 -0
- pyxcp/examples/xcp_unlock.py +38 -0
- pyxcp/examples/xcp_user_supplied_driver.py +43 -0
- pyxcp/examples/xcphello.py +79 -0
- pyxcp/examples/xcphello_recorder.py +107 -0
- pyxcp/master/__init__.py +10 -0
- pyxcp/master/errorhandler.py +677 -0
- pyxcp/master/master.py +2645 -0
- pyxcp/py.typed +0 -0
- pyxcp/recorder/.idea/.gitignore +8 -0
- pyxcp/recorder/.idea/misc.xml +4 -0
- pyxcp/recorder/.idea/modules.xml +8 -0
- pyxcp/recorder/.idea/recorder.iml +6 -0
- pyxcp/recorder/.idea/sonarlint/issuestore/3/8/3808afc69ac1edb9d760000a2f137335b1b99728 +7 -0
- pyxcp/recorder/.idea/sonarlint/issuestore/9/a/9a2aa4db38d3115ed60da621e012c0efc0172aae +0 -0
- pyxcp/recorder/.idea/sonarlint/issuestore/b/4/b49006702b459496a8e8c94ebe60947108361b91 +0 -0
- pyxcp/recorder/.idea/sonarlint/issuestore/index.pb +7 -0
- pyxcp/recorder/.idea/sonarlint/securityhotspotstore/3/8/3808afc69ac1edb9d760000a2f137335b1b99728 +0 -0
- pyxcp/recorder/.idea/sonarlint/securityhotspotstore/9/a/9a2aa4db38d3115ed60da621e012c0efc0172aae +0 -0
- pyxcp/recorder/.idea/sonarlint/securityhotspotstore/b/4/b49006702b459496a8e8c94ebe60947108361b91 +0 -0
- pyxcp/recorder/.idea/sonarlint/securityhotspotstore/index.pb +7 -0
- pyxcp/recorder/.idea/vcs.xml +10 -0
- pyxcp/recorder/__init__.py +96 -0
- pyxcp/recorder/build_clang.cmd +1 -0
- pyxcp/recorder/build_clang.sh +2 -0
- pyxcp/recorder/build_gcc.cmd +1 -0
- pyxcp/recorder/build_gcc.sh +2 -0
- pyxcp/recorder/build_gcc_arm.sh +2 -0
- pyxcp/recorder/converter/__init__.py +445 -0
- pyxcp/recorder/lz4.c +2829 -0
- pyxcp/recorder/lz4.h +879 -0
- pyxcp/recorder/lz4hc.c +2041 -0
- pyxcp/recorder/lz4hc.h +413 -0
- pyxcp/recorder/mio.hpp +1714 -0
- pyxcp/recorder/reader.hpp +138 -0
- pyxcp/recorder/reco.py +278 -0
- pyxcp/recorder/recorder.rst +0 -0
- pyxcp/recorder/rekorder.cp310-win_arm64.pyd +0 -0
- pyxcp/recorder/rekorder.cp311-win_arm64.pyd +0 -0
- pyxcp/recorder/rekorder.cp312-win_arm64.pyd +0 -0
- pyxcp/recorder/rekorder.cp313-win_arm64.pyd +0 -0
- pyxcp/recorder/rekorder.cp314-win_arm64.pyd +0 -0
- pyxcp/recorder/rekorder.cpp +59 -0
- pyxcp/recorder/rekorder.hpp +274 -0
- pyxcp/recorder/setup.py +41 -0
- pyxcp/recorder/test_reko.py +34 -0
- pyxcp/recorder/unfolder.hpp +1354 -0
- pyxcp/recorder/wrap.cpp +184 -0
- pyxcp/recorder/writer.hpp +302 -0
- pyxcp/scripts/__init__.py +0 -0
- pyxcp/scripts/pyxcp_probe_can_drivers.py +20 -0
- pyxcp/scripts/xcp_examples.py +64 -0
- pyxcp/scripts/xcp_fetch_a2l.py +40 -0
- pyxcp/scripts/xcp_id_scanner.py +18 -0
- pyxcp/scripts/xcp_info.py +144 -0
- pyxcp/scripts/xcp_profile.py +26 -0
- pyxcp/scripts/xmraw_converter.py +31 -0
- pyxcp/stim/__init__.py +0 -0
- pyxcp/tests/test_asam_types.py +24 -0
- pyxcp/tests/test_binpacking.py +186 -0
- pyxcp/tests/test_can.py +1324 -0
- pyxcp/tests/test_checksum.py +95 -0
- pyxcp/tests/test_daq.py +193 -0
- pyxcp/tests/test_daq_opt.py +426 -0
- pyxcp/tests/test_frame_padding.py +156 -0
- pyxcp/tests/test_framing.py +262 -0
- pyxcp/tests/test_master.py +2116 -0
- pyxcp/tests/test_transport.py +177 -0
- pyxcp/tests/test_utils.py +30 -0
- pyxcp/timing.py +60 -0
- pyxcp/transport/__init__.py +13 -0
- pyxcp/transport/base.py +484 -0
- pyxcp/transport/base_transport.hpp +0 -0
- pyxcp/transport/can.py +660 -0
- pyxcp/transport/eth.py +254 -0
- pyxcp/transport/sxi.py +209 -0
- pyxcp/transport/transport_ext.hpp +214 -0
- pyxcp/transport/transport_wrapper.cpp +249 -0
- pyxcp/transport/usb_transport.py +229 -0
- pyxcp/types.py +987 -0
- pyxcp/utils.py +127 -0
- pyxcp/vector/__init__.py +0 -0
- pyxcp/vector/map.py +82 -0
- pyxcp-0.25.2.dist-info/METADATA +341 -0
- pyxcp-0.25.2.dist-info/RECORD +154 -0
- pyxcp-0.25.2.dist-info/WHEEL +4 -0
- pyxcp-0.25.2.dist-info/entry_points.txt +9 -0
- pyxcp-0.25.2.dist-info/licenses/LICENSE +165 -0
pyxcp/asamkeydll.c
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
#include <stdlib.h>
|
|
4
|
+
#include <stdint.h>
|
|
5
|
+
#include <string.h>
|
|
6
|
+
#include <stdio.h>
|
|
7
|
+
|
|
8
|
+
#if defined(_WIN32)
|
|
9
|
+
#include <windows.h>
|
|
10
|
+
|
|
11
|
+
#define LOAD_LIB(name) LoadLibrary((name))
|
|
12
|
+
#define GET_SYM(module, sym) GetProcAddress((module), (sym))
|
|
13
|
+
|
|
14
|
+
#else
|
|
15
|
+
|
|
16
|
+
#define _GNU_SOURCE
|
|
17
|
+
#include <dlfcn.h>
|
|
18
|
+
|
|
19
|
+
typedef uint8_t BYTE;
|
|
20
|
+
typedef uint32_t DWORD;
|
|
21
|
+
typedef void * HANDLE;
|
|
22
|
+
|
|
23
|
+
#define LOAD_LIB(name) dlopen((name), RTLD_LAZY)
|
|
24
|
+
#define GET_SYM(module, sym) dlsym((module), (sym))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
#endif
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
#define NP_BUFSIZE (4096)
|
|
33
|
+
#define KEY_BUFSIZE (255)
|
|
34
|
+
|
|
35
|
+
#define ERR_OK (0)
|
|
36
|
+
|
|
37
|
+
#define ERR_INVALID_CMD_LINE (2)
|
|
38
|
+
|
|
39
|
+
#define ERR_COULD_NOT_LOAD_DLL (16)
|
|
40
|
+
#define ERR_COULD_NOT_LOAD_FUNC (17)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
char dllname[NP_BUFSIZE] = {0};
|
|
44
|
+
|
|
45
|
+
DWORD GetKey(char * const dllName, BYTE privilege, BYTE lenSeed, BYTE * seed, BYTE * lenKey, BYTE * key);
|
|
46
|
+
void hexlify(uint8_t const * const buf, uint16_t len);
|
|
47
|
+
|
|
48
|
+
typedef DWORD (*XCP_GetAvailablePrivilegesType)(BYTE * privilege);
|
|
49
|
+
typedef DWORD (*XCP_ComputeKeyFromSeedType)(BYTE privilege, BYTE lenSeed, BYTE *seed, BYTE * lenKey, BYTE * key);
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
uint8_t keyBuffer[KEY_BUFSIZE] = {0};
|
|
53
|
+
uint8_t seedBuffer[KEY_BUFSIZE] = {0};
|
|
54
|
+
char nameBuffer[KEY_BUFSIZE] = {0};
|
|
55
|
+
uint8_t keylen = KEY_BUFSIZE;
|
|
56
|
+
uint8_t seedlen = 0;
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
void hexlify(uint8_t const * const buf, uint16_t len)
|
|
60
|
+
{
|
|
61
|
+
for (uint16_t idx = 0; idx < len; ++idx) {
|
|
62
|
+
printf("%02X", buf[idx]);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
DWORD GetKey(char * const dllName, BYTE privilege, BYTE lenSeed, BYTE * seed, BYTE * lenKey, BYTE * key)
|
|
67
|
+
{
|
|
68
|
+
HANDLE hModule = LOAD_LIB(dllName);
|
|
69
|
+
XCP_ComputeKeyFromSeedType XCP_ComputeKeyFromSeed;
|
|
70
|
+
|
|
71
|
+
if (hModule != NULL) {
|
|
72
|
+
XCP_ComputeKeyFromSeed = (XCP_ComputeKeyFromSeedType)GET_SYM(hModule, "XCP_ComputeKeyFromSeed");
|
|
73
|
+
//printf("fp: %p\n", XCP_ComputeKeyFromSeed);
|
|
74
|
+
if (XCP_ComputeKeyFromSeed != NULL) {
|
|
75
|
+
return XCP_ComputeKeyFromSeed(privilege, lenSeed, seed, lenKey, key);
|
|
76
|
+
} else {
|
|
77
|
+
return ERR_COULD_NOT_LOAD_FUNC;
|
|
78
|
+
}
|
|
79
|
+
} else {
|
|
80
|
+
return ERR_COULD_NOT_LOAD_DLL;
|
|
81
|
+
}
|
|
82
|
+
return ERR_OK;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
int main(int argc, char ** argv)
|
|
88
|
+
{
|
|
89
|
+
BYTE privilege = 0;
|
|
90
|
+
int idx;
|
|
91
|
+
DWORD res;
|
|
92
|
+
char cbuf[3] = {0};
|
|
93
|
+
|
|
94
|
+
for (idx = 1; idx < argc; ++idx) {
|
|
95
|
+
if (idx == 1) {
|
|
96
|
+
strcpy(dllname, argv[idx]);
|
|
97
|
+
} else if (idx == 2) {
|
|
98
|
+
privilege = atoi(argv[idx]);
|
|
99
|
+
} else if (idx == 3) {
|
|
100
|
+
strcpy(nameBuffer, argv[idx]);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
seedlen = strlen(nameBuffer) >> 1;
|
|
105
|
+
for (idx = 0; idx < seedlen; ++idx) {
|
|
106
|
+
cbuf[0] = nameBuffer[idx * 2];
|
|
107
|
+
cbuf[1] = nameBuffer[(idx * 2) + 1 ];
|
|
108
|
+
cbuf[2] = '\x00';
|
|
109
|
+
seedBuffer[idx] = strtol(cbuf, 0, 16);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
res = GetKey((char *)&dllname, privilege, seedlen, (BYTE *)&seedBuffer, &keylen, (BYTE *)&keyBuffer);
|
|
113
|
+
if (res == 0) {
|
|
114
|
+
hexlify(keyBuffer, keylen);
|
|
115
|
+
}
|
|
116
|
+
}
|
pyxcp/asamkeydll.exe
ADDED
|
Binary file
|
pyxcp/asamkeydll.sh
ADDED