cracknuts 0.0.3.dev3__tar.gz → 0.0.3.dev4__tar.gz
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.
- {cracknuts-0.0.3.dev3/src/cracknuts.egg-info → cracknuts-0.0.3.dev4}/PKG-INFO +1 -1
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/__init__.py +1 -1
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/cracker/basic_cracker.py +28 -6
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/cracker/cracker.py +31 -7
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/cracker/stateful_cracker.py +14 -2
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4/src/cracknuts.egg-info}/PKG-INFO +1 -1
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/LICENSE +0 -0
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/README.md +0 -0
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/pyproject.toml +0 -0
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/setup.cfg +0 -0
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/__main__.py +0 -0
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/acquisition/__init__.py +0 -0
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/acquisition/acquisition.py +0 -0
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/cracker/__init__.py +0 -0
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/cracker/mock_cracker.py +0 -0
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/cracker/protocol.py +0 -0
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/logger.py +0 -0
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/solver/__init__.py +0 -0
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/solver/trace.py +0 -0
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/utils/__init__.py +0 -0
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/utils/hex_util.py +0 -0
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts.egg-info/SOURCES.txt +0 -0
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts.egg-info/dependency_links.txt +0 -0
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts.egg-info/entry_points.txt +0 -0
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts.egg-info/requires.txt +0 -0
- {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts.egg-info/top_level.txt +0 -0
|
@@ -337,12 +337,34 @@ class CrackerS1(AbsCnpCracker):
|
|
|
337
337
|
self._logger.debug(f"scrat_force payload: {payload}")
|
|
338
338
|
return self.send_with_command(Commands.OSC_FORCE, payload=payload)
|
|
339
339
|
|
|
340
|
-
def
|
|
341
|
-
payload = struct.pack(">
|
|
342
|
-
self._logger.debug(f"
|
|
343
|
-
return self.send_with_command(Commands.
|
|
340
|
+
def osc_set_clock_base_freq_mul_div(self, mult_int: int, mult_fra: int, div: int):
|
|
341
|
+
payload = struct.pack(">BHB", mult_int, mult_fra, div)
|
|
342
|
+
self._logger.debug(f"osc_set_clock_base_freq_mul_div payload: {payload.hex()}")
|
|
343
|
+
return self.send_with_command(Commands.OSC_CLOCK_BASE_FREQ_MUL_DIV, payload=payload)
|
|
344
|
+
|
|
345
|
+
def osc_set_sample_divisor(self, div_int: int, div_frac: int):
|
|
346
|
+
payload = struct.pack(">BH", div_int, div_frac)
|
|
347
|
+
self._logger.debug(f"osc_set_sample_divisor payload: {payload.hex()}")
|
|
348
|
+
return self.send_with_command(Commands.OSC_CLOCK_SAMPLE_DIVISOR, payload=payload)
|
|
344
349
|
|
|
345
350
|
def osc_set_sample_phase(self, phase: int):
|
|
346
351
|
payload = struct.pack(">I", phase)
|
|
347
|
-
self._logger.debug(f"
|
|
348
|
-
return self.send_with_command(Commands.
|
|
352
|
+
self._logger.debug(f"osc_set_sample_phase payload: {payload.hex()}")
|
|
353
|
+
return self.send_with_command(Commands.OSC_CLOCK_SAMPLE_PHASE, payload=payload)
|
|
354
|
+
|
|
355
|
+
def set_clock_nut_divisor(self, div: int):
|
|
356
|
+
payload = struct.pack(">B", div)
|
|
357
|
+
self._logger.debug(f"set_clock_nut_divisor payload: {payload.hex()}")
|
|
358
|
+
return self.send_with_command(Commands.OSC_CLOCK_NUT_DIVISOR, payload=payload)
|
|
359
|
+
|
|
360
|
+
# def osc_set_sample_clock(self, clock: int):
|
|
361
|
+
# # payload = struct.pack(">I", clock)
|
|
362
|
+
# # self._logger.debug(f"scrat_sample_clock payload: {payload.hex()}")
|
|
363
|
+
# # return self.send_with_command(Commands.OSC_SAMPLE_CLOCK, payload=payload)
|
|
364
|
+
# ...
|
|
365
|
+
#
|
|
366
|
+
# def osc_set_sample_phase(self, phase: int):
|
|
367
|
+
# # payload = struct.pack(">I", phase)
|
|
368
|
+
# # self._logger.debug(f"scrat_sample_phase payload: {payload.hex()}")
|
|
369
|
+
# # return self.send_with_command(Commands.OSC_SAMPLE_PHASE, payload=payload)
|
|
370
|
+
# ...
|
|
@@ -85,6 +85,14 @@ class Cracker(typing.Protocol):
|
|
|
85
85
|
|
|
86
86
|
def osc_set_sample_len(self, length: int): ...
|
|
87
87
|
|
|
88
|
+
def osc_set_clock_base_freq_mul_div(self, mult_int: int, mult_fra: int, div: int): ...
|
|
89
|
+
|
|
90
|
+
def osc_set_sample_divisor(self, div_int: int, div_frac: int): ...
|
|
91
|
+
|
|
92
|
+
def osc_set_sample_phase(self, phase: int): ...
|
|
93
|
+
|
|
94
|
+
def set_clock_nut_divisor(self, div: int): ...
|
|
95
|
+
|
|
88
96
|
def osc_single(self): ...
|
|
89
97
|
|
|
90
98
|
def osc_force(self): ...
|
|
@@ -99,9 +107,9 @@ class Cracker(typing.Protocol):
|
|
|
99
107
|
|
|
100
108
|
def osc_set_analog_gain_raw(self, channel: int, gain: int): ...
|
|
101
109
|
|
|
102
|
-
def osc_set_sample_clock(self, clock: int): ...
|
|
103
|
-
|
|
104
|
-
def osc_set_sample_phase(self, phase: int): ...
|
|
110
|
+
# def osc_set_sample_clock(self, clock: int): ...
|
|
111
|
+
#
|
|
112
|
+
# def osc_set_sample_phase(self, phase: int): ...
|
|
105
113
|
|
|
106
114
|
def nut_enable(self, enable: int): ...
|
|
107
115
|
|
|
@@ -167,10 +175,14 @@ class Commands:
|
|
|
167
175
|
OSC_ANALOG_VOLTAGE = 0x0102
|
|
168
176
|
OSC_ANALOG_BIAS_VOLTAGE = 0x0103
|
|
169
177
|
OSC_ANALOG_GAIN = 0x0104
|
|
170
|
-
OSC_ANALOG_GAIN_RAW =
|
|
178
|
+
OSC_ANALOG_GAIN_RAW = 0x0105
|
|
179
|
+
OSC_CLOCK_BASE_FREQ_MUL_DIV = 0x0106
|
|
180
|
+
OSC_CLOCK_SAMPLE_DIVISOR = 0x0107
|
|
181
|
+
OSC_CLOCK_SAMPLE_PHASE = 0x0108
|
|
182
|
+
OSC_CLOCK_NUT_DIVISOR = 0x0109
|
|
171
183
|
|
|
172
|
-
OSC_SAMPLE_CLOCK = 0x0105
|
|
173
|
-
OSC_SAMPLE_PHASE = 0x0106
|
|
184
|
+
# OSC_SAMPLE_CLOCK = 0x0105
|
|
185
|
+
# OSC_SAMPLE_PHASE = 0x0106
|
|
174
186
|
|
|
175
187
|
OSC_DIGITAL_CHANNEL_ENABLE = 0x0110
|
|
176
188
|
OSC_DIGITAL_VOLTAGE = 0x0111
|
|
@@ -505,11 +517,23 @@ class AbsCnpCracker(ABC, Cracker):
|
|
|
505
517
|
def osc_set_analog_gain_raw(self, channel: int, gain: int): ...
|
|
506
518
|
|
|
507
519
|
@abc.abstractmethod
|
|
508
|
-
def
|
|
520
|
+
def osc_set_clock_base_freq_mul_div(self, mult_int: int, mult_fra: int, div: int): ...
|
|
521
|
+
|
|
522
|
+
@abc.abstractmethod
|
|
523
|
+
def osc_set_sample_divisor(self, div_int: int, div_frac: int): ...
|
|
509
524
|
|
|
510
525
|
@abc.abstractmethod
|
|
511
526
|
def osc_set_sample_phase(self, phase: int): ...
|
|
512
527
|
|
|
528
|
+
@abc.abstractmethod
|
|
529
|
+
def set_clock_nut_divisor(self, div: int): ...
|
|
530
|
+
|
|
531
|
+
# @abc.abstractmethod
|
|
532
|
+
# def osc_set_sample_clock(self, clock: int): ...
|
|
533
|
+
#
|
|
534
|
+
# @abc.abstractmethod
|
|
535
|
+
# def osc_set_sample_phase(self, phase: int): ...
|
|
536
|
+
|
|
513
537
|
@abc.abstractmethod
|
|
514
538
|
def nut_enable(self, enable: int): ...
|
|
515
539
|
|
|
@@ -123,12 +123,24 @@ class StatefulCracker(Cracker):
|
|
|
123
123
|
def osc_force(self):
|
|
124
124
|
return self._cracker.osc_force()
|
|
125
125
|
|
|
126
|
-
def
|
|
127
|
-
return self._cracker.
|
|
126
|
+
def osc_set_clock_base_freq_mul_div(self, mult_int: int, mult_fra: int, div: int):
|
|
127
|
+
return self._cracker.osc_set_clock_base_freq_mul_div(mult_int, mult_fra, div)
|
|
128
|
+
|
|
129
|
+
def osc_set_sample_divisor(self, div_int: int, div_frac: int):
|
|
130
|
+
return self._cracker.osc_set_sample_divisor(div_int, div_frac)
|
|
128
131
|
|
|
129
132
|
def osc_set_sample_phase(self, phase: int):
|
|
130
133
|
return self._cracker.osc_set_sample_phase(phase)
|
|
131
134
|
|
|
135
|
+
def set_clock_nut_divisor(self, div: int):
|
|
136
|
+
return self._cracker.set_clock_nut_divisor(div)
|
|
137
|
+
|
|
138
|
+
# def osc_set_sample_clock(self, clock: int):
|
|
139
|
+
# return self._cracker.osc_set_sample_clock(clock)
|
|
140
|
+
#
|
|
141
|
+
# def osc_set_sample_phase(self, phase: int):
|
|
142
|
+
# return self._cracker.osc_set_sample_phase(phase)
|
|
143
|
+
|
|
132
144
|
def osc_single(self):
|
|
133
145
|
return self._cracker.osc_single()
|
|
134
146
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|