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.
Files changed (26) hide show
  1. {cracknuts-0.0.3.dev3/src/cracknuts.egg-info → cracknuts-0.0.3.dev4}/PKG-INFO +1 -1
  2. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/__init__.py +1 -1
  3. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/cracker/basic_cracker.py +28 -6
  4. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/cracker/cracker.py +31 -7
  5. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/cracker/stateful_cracker.py +14 -2
  6. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4/src/cracknuts.egg-info}/PKG-INFO +1 -1
  7. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/LICENSE +0 -0
  8. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/README.md +0 -0
  9. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/pyproject.toml +0 -0
  10. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/setup.cfg +0 -0
  11. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/__main__.py +0 -0
  12. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/acquisition/__init__.py +0 -0
  13. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/acquisition/acquisition.py +0 -0
  14. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/cracker/__init__.py +0 -0
  15. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/cracker/mock_cracker.py +0 -0
  16. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/cracker/protocol.py +0 -0
  17. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/logger.py +0 -0
  18. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/solver/__init__.py +0 -0
  19. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/solver/trace.py +0 -0
  20. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/utils/__init__.py +0 -0
  21. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts/utils/hex_util.py +0 -0
  22. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts.egg-info/SOURCES.txt +0 -0
  23. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts.egg-info/dependency_links.txt +0 -0
  24. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts.egg-info/entry_points.txt +0 -0
  25. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts.egg-info/requires.txt +0 -0
  26. {cracknuts-0.0.3.dev3 → cracknuts-0.0.3.dev4}/src/cracknuts.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cracknuts
3
- Version: 0.0.3.dev3
3
+ Version: 0.0.3.dev4
4
4
  Summary: A library for cracknuts device.
5
5
  Author-email: Dingzb <dingzibiao@gmail.com>
6
6
  Maintainer-email: Dingzb <dingzibiao@gmail.com>
@@ -1,4 +1,4 @@
1
- __version__ = "0.0.3.dev3"
1
+ __version__ = "0.0.3.dev4"
2
2
 
3
3
 
4
4
  def version():
@@ -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 osc_set_sample_clock(self, clock: int):
341
- payload = struct.pack(">I", clock)
342
- self._logger.debug(f"scrat_sample_clock payload: {payload.hex()}")
343
- return self.send_with_command(Commands.OSC_SAMPLE_CLOCK, payload=payload)
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"scrat_sample_phase payload: {payload.hex()}")
348
- return self.send_with_command(Commands.OSC_SAMPLE_PHASE, payload=payload)
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 = 0x0107
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 osc_set_sample_clock(self, clock: int): ...
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 osc_set_sample_clock(self, clock: int):
127
- return self._cracker.osc_set_sample_clock(clock)
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
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cracknuts
3
- Version: 0.0.3.dev3
3
+ Version: 0.0.3.dev4
4
4
  Summary: A library for cracknuts device.
5
5
  Author-email: Dingzb <dingzibiao@gmail.com>
6
6
  Maintainer-email: Dingzb <dingzibiao@gmail.com>
File without changes
File without changes
File without changes