Changes

Cw3to4

3,535 bytes added, 14:08, 1 May 2018
no edit summary
= ChipWhisperer V3v3.5 x to 4.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 ==Example 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">>>> scopecwlite Devicegain = mode = low gain = 45 db = 22.50390625adc = state = False basic_mode = rising_edge timeout = 4.0 offset = 0 presamples = 0 samples = 3000 decimate = 1 trig_count = 8clock = 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 = Truetrigger = triggers = tio4 module = basicio = 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 = Trueglitch = 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.