Changes

Cw3to4

2,618 bytes added, 14:08, 1 May 2018
no edit summary
= ChipWhisperer V3v3.5 x to V44.0 =
ChipWhisperer software release V4.0.0 has drastically changed the API and interface. The V4.0.0 architecture tries to open up the program internals, and force you (the user) to use the API instead of clicking buttons. While it's a little harder to get started, it's MUCH easier to perform complex tasks, or even to use the command line for interactive work.
The "example scripts" and "glitch explorer" have all been replaced with true Python scripts. You write small (or large) snippets of code, and run those code to perform automated tasks.
 
If you have used ChipWhisperer before see [[Tutorial_B5_Breaking_AES_(Straightforward)]] for a quick overview of how things changed.
 
== Analyzer Changes ==
 
The analyzer interface looks different. Most noteably:
 
* The "Attack" button is disabled (will be re-enabled once better integrated). Instead you just run a script which explicitly configures things.
 
* The GUI does not affect the actual script being run. You can view settings from the GUI, but you must manually copy things into the scripts.
== Example Scripts ==
TODOExample scripts that can be run inside the ChipWhisperer python console can be found in  chipwhisperer\software\chipwhisperer\capture\scripts  chipwhisperer\software\chipwhisperer\analyzer\scripts Example scripts for using the ChipWhisperer tool as a python package (scripting without the gui) can be found [[Making_Scripts | here]].
== Glitch Explorer ==
The Glitch Explorer has drastically changed in 4.0.0. Previously the Glitch Explorer used the "Scripting" interface and relied on you specifying some arbitrary data to change. Now instead you define a Python function that changes the glitch parameters, and use the existing "auxiliary" links to execute the functions.
 
== API Changes ==
 
The ChipWhisperer is moving towards a "sane" API. This means that now for example you can inspect the value of a "scope" object, and it will print all current settings:<syntaxhighlight lang="python">
>>> scope
cwlite Device
gain =
mode = low
gain = 45
db = 22.50390625
adc =
state = False
basic_mode = rising_edge
timeout = 4.0
offset = 0
presamples = 0
samples = 3000
decimate = 1
trig_count = 8
clock =
adc_src = clkgen_x4
adc_phase = 0
adc_freq = 29538459
adc_rate = 29538459
adc_locked = True
freq_ctr = 0
freq_ctr_src = extclk
clkgen_src = system
extclk_freq = 10000000
clkgen_mul = 2
clkgen_div = 26
clkgen_freq = 7384615
clkgen_locked = True
trigger =
triggers = tio4
module = basic
io =
tio1 = serial_rx
tio2 = serial_tx
tio3 = high_z
tio4 = high_z
pdid = high_z
pdic = high_z
nrst = high_z
glitch_hp = 0
glitch_lp = 0
extclk_src = hs1
hs2 = glitch
target_pwr = True
glitch =
clk_src = clkgen
width = 5.078125
width_fine = 0
offset = -7.03125
offset_fine = 0
trigger_src = ext_single
arm_timing = after_scope
ext_offset = 20
repeat = 4
output = clock_xor
</syntaxhighlight>It also allows you to now modify settings via simple set statements:<syntaxhighlight lang="python">
>>> scope.io.nrst = False
>>> scope.io.nrst = True
>>> scope.clock.clkgen_freq = 4E6
</syntaxhighlight>
== Using ChipWhisperer as a python package ==
Find [[Making Scripts|scripting examples]] of how to use ChipWhisperer as python package.