tag:github.com,2008:https://github.com/newaetech/chipwhisperer/releases Release notes from chipwhisperer 2023-01-16T19:12:42Z tag:github.com,2008:Repository/23514290/5.7.0 2023-01-17T18:13:12Z ChipWhisperer 5.7.0 <p>New Features:</p> <ul> <li>Automatically setup husky_userio pins for MPSSE when <code>enable_MPSSE()</code> called</li> <li>Add SAM4S bootloader support - allows programming SAM4S target boards</li> <li>Add SAM4S target HAL</li> <li>Add <code>openocd/run_openocd.sh</code> for easier JTAG/SWD programming and debugging</li> <li>Add <code>openocd/fe310.cfg</code> to allow fe310 programming via MPSSE</li> <li>Common build system for capture boards/cw305/cw310</li> <li>Add context manager support to ChipWhisperer (thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/wallento/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/wallento">@wallento</a> !)</li> <li>Add <code>cglitch_setup()</code>, <code>vglitch_setup()</code>, and <code>glitch_disable()</code> to scopes for easy glitch setup/disable.</li> <li>Add <code>cw.list_devices()</code> to list attached NewAE devices</li> <li>Add <code>scope.reset_clock_phase()</code> for CWNano</li> <li>New and improved <code>GlitchController</code> with glitch map support</li> <li>Full Husky support for SCA101 and Fault101</li> <li>Improve glitch performance on replacement CWNano glitch transistor</li> </ul> <p>Fixes:</p> <ul> <li>Fix MPSSE timeout on CWPro</li> <li>Change logger to use temp files (Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/S-Vaes/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/S-Vaes">@S-Vaes</a> !)</li> <li>Fix <code>dict_repr</code> for nano ADC</li> <li>Fix f3 linkerscript stack location</li> <li>Correctly set openocd srst signal pin</li> <li>Identify srst signal as push pull</li> <li>Add glitch/clock AUX out for Pro</li> <li>Fix baud rate for simpleserial version not being applied to non simpleserial firmware</li> <li>Fix FE310 baud rate not being set to 38400bps @ 7.37MHz</li> </ul> alex-dewar tag:github.com,2008:Repository/23514290/5.6.1 2022-06-14T16:29:26Z ChipWhisperer 5.6.1 <p><strong>VM Update recommended</strong></p> <p><strong>Installer Update recommended</strong></p> <p>Do not expose the VM/Jupyter over the internet.</p> <p>New Features:</p> <ul> <li><strong>ChipWhisperer-Husky and CW310 Bergen Board support</strong></li> <li><strong>Add debugger support (via OpenOCD) to Lite, Pro, Nano, and Husky</strong></li> <li><strong>Add debugger demo (jupyter/demos/Debugging the CW308_STM32F3 Using ChipWhisperer)</strong></li> <li>Add <code>scope.fw_version_str</code></li> <li>Switch from pyusb to libusb1 - deprecates libusb0.dll on Windows</li> <li>Add <code>as_int</code> parameter to <code>scope.get_last_trace()</code> to return traces as integers</li> <li>Add driver detection for Windows</li> <li>Add force and bitstream option to <code>cw.scope()</code></li> <li>Improve 50-naeusb.rules</li> <li>Add SimpleSerial 2.1 and deprecate SimpleSerial 2.0</li> <li>Add ChipWhisperer version check.</li> <li>Add SAM3U firmware feature list and checks</li> <li>Add common interface for USB scopes/targets</li> <li>Add ability to connect to scope via hardware location</li> <li>Add GUI based Windows firmware installer</li> <li>Add linting, automatic hardware testing, and firmware building actions</li> <li>Add FW_CHANGES.txt</li> <li>Add SPI target programming</li> </ul> <p>Fixes:</p> <ul> <li>Fix SS_VER_1_X and XMega simplserial-rsa</li> <li>Fix SSV2 unstuff data for &gt;30 zeros</li> <li>Fix AVR lock bits read</li> <li>Fix Nano connect status</li> <li>Fix Nano scope.adc.clk_src not being changeable.</li> <li>Explicit memory ordering in bootloader-glitch</li> <li>Cast analyzer CPA calculations to long double to avoid precision issues in large projects</li> <li>Fix Pro screen getting stuck when capturing</li> <li>Checkout master branch for ChipWhisperer-Jupyter in installer</li> <li>Fix timeout length on simpleserial reads</li> <li>More versionadded/versionchanged for docs</li> <li>Fix FPGA target.dis()</li> <li>Fix DCM lock on glitch - caused issues with enable_only glitching (most noticable at high frequencies)</li> <li>Fix TraceWhisperer verilog files not being installed in user mode</li> <li>Fix issues with unintended double glitch on CWLite and Pro</li> <li>Fix simple_PGE when key is numpy array</li> <li>Don't try calculating pge if known_key not set</li> <li>No longer overwrite builtins.bytearray</li> <li>Fix memory numbers in STM32F3 linkerscript</li> <li>Revert to old NewAE rules</li> </ul> <p>Firmware:</p> <ul> <li>CWLite: 0.62.0</li> <li>CWNano: 0.62.0</li> <li>CWPro : 1.62.0</li> <li>CW305 : 0.52.0</li> <li>CWHusky: 1.3.1</li> <li>CWBergen: 1.2.0</li> </ul> alex-dewar tag:github.com,2008:Repository/23514290/BHUSA2021 2021-07-22T00:46:51Z Blackhat 2021 <p>Special release for Black Hat USA 2021.</p> <p>USB library change, better firmware update process, and various small fixes</p> alex-dewar tag:github.com,2008:Repository/23514290/5.5.2 2022-04-13T06:57:55Z ChipWhisperer 5.5.2 <p>This release fixes a ValueError issue with the previous release.</p> <p>NOTE: ChipWhisperer shortcuts on Windows don't work - you'll need to navigate to where you installed ChipWhisperer and run <code>ChipWhisperer</code> manually.</p> alex-dewar tag:github.com,2008:Repository/23514290/5.5.1 2021-05-04T15:35:57Z ChipWhisperer 5.5.1 <p><strong>USE ChipWhisperer 5.5.2 Instead</strong></p> <p>New Features:</p> <ul> <li>Add new logging system that uses multiple loggers instead of just the default/root one. Allows setting different levels for<br> different parts of the chipwhisperer API (scope, target, naeusb, etc)</li> <li>Add correlation-vs-trace (thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Xuyang-Huang/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Xuyang-Huang">@Xuyang-Huang</a> !)</li> </ul> <p>Fixes:</p> <ul> <li>Fix <code>cw.plot([...]) * cw.plot([...])</code> being broken in VM and Windows installer. If you don't want to reinstall, this can be fixed by running:</li> </ul> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="!pip uninstall holoviews -y !pip install holoviews"><pre class="notranslate"><code>!pip uninstall holoviews -y !pip install holoviews </code></pre></div> <p>in Jupyter.</p> <ul> <li>Fix CW1200 not having nRST trigger</li> <li>Fix installer</li> <li>Fix STM32F2 programming</li> <li>Disable ILAs in CW305 AES build by default</li> <li>Improve CW305 define slurping</li> <li>Make SimpleSerial target.read() better reflect docs</li> <li>Fix SCA101/password bypass simulated trace notebook</li> <li>Fix STM32F0 for low SRAM F0s</li> </ul> alex-dewar tag:github.com,2008:Repository/23514290/5.5 2021-04-01T21:35:06Z ChipWhisperer 5.5 <p>New Features:</p> <ul> <li>Re-add SAKURA-G support</li> <li><strong>TraceWhisperer cleanup + convenience functions</strong></li> <li>ChipWhisperer firmware <code>auto_program()</code></li> <li><strong>Add segmented capture to ChipWhisperer, allowing for super fast capture</strong></li> <li><strong>Add simpleserial-ecc</strong></li> <li><strong>New demo: uECC attack</strong></li> <li><strong>New ChipWhisperer Firmware: CDC serial ports for UART communication (i.e. communication with <code>"COMX"</code>/<code>"/dev/ttyACMX"</code></strong></li> <li><strong>New target class: SimpleSerial2_CDC with automatic serial port detection (no need to figure out <code>"COMX"</code>/<code>"/dev/ttyACMX"</code>)</strong></li> <li>Add simpleserial documentation (thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/coastalwhite/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/coastalwhite">@coastalwhite</a> !)</li> <li>Add new simpleserial commands to get available commands</li> <li>Add maskedAES for more targets (thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jmichelp/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jmichelp">@jmichelp</a> !)</li> <li>Add better method for loading new CW bitstream</li> <li>Add avr-gcc and arm-gcc to installer (optional)</li> </ul> <p>Fixes:</p> <ul> <li>Add CWPro aux_out</li> <li>Update ESP32 build for newer build system version</li> <li>Reset Xmega if programming fails (should prevent programming from immediately failing next call)</li> <li>Setup script improvements</li> <li>Fix outdated 99-rules.newae</li> <li>Fix voltage range on CW305 VCCINT</li> <li>Fix STM32F4 HW floating point (thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mcsmonk/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mcsmonk">@mcsmonk</a> !)</li> <li>Fix Nano crash when &gt;128 bytes read from USART</li> <li>VM now supports uploading firmware to chipwhisperer</li> <li>Fix pipe error caused by interrupting USB communications</li> </ul> <h2>Installer Notes</h2> <ol> <li><strong>The ChipWhisperer Installer now includes everything you need to use ChipWhisperer!</strong></li> <li>ChipWhisperer files are now located in <code>ChipWhisperer5_64\git\home\portable\chipwhisperer</code></li> </ol> <h2>Firmware Updater Usage</h2> <p>This tool only works on a ChipWhisperer that has already had its firmware erased. Must be used from the command line as follows:</p> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cw_firmware_updater_5_5_0.exe &lt;COM_PORT&gt; &lt;HARDWARE_TYPE&gt;"><pre>cw_firmware_updater_5_5_0.exe <span class="pl-k">&lt;</span>COM_PORT<span class="pl-k">&gt;</span> <span class="pl-k">&lt;</span>HARDWARE_TYPE<span class="pl-k">&gt;</span></pre></div> <p>where <code>&lt;COM_PORT&gt;</code> is the AT91 Serial Bootloader's port (you can find this in Device Manager) and<br> <code>&lt;HARDWARE_TYPE&gt;</code> is one of:</p> <ul> <li><code>cwlite</code></li> <li><code>cwnano</code></li> <li><code>cw1200</code></li> <li><code>cw305</code></li> </ul> alex-dewar tag:github.com,2008:Repository/23514290/5.4 2020-11-05T14:39:46Z 5.4 <h1>V5.4</h1> <h2>New Features:</h2> <ul> <li>AES MixColumns Attack and Variable Vector KTP (requires scared/estraces)</li> <li>Update FW for USB devices - auto configure as WinUSB</li> <li>Update FW to increase serial buffer</li> <li>Support both libusb0 and libusb1</li> <li>Add automated plotting functions for analyzer plots</li> <li>Add TraceWhisperer</li> <li>Improve CW305 AES implementation</li> <li>Add cw.plot()</li> <li>Add scope.sn</li> <li>Major CWNano speedup</li> <li>Analyzer autoplots</li> <li>Add SimpleSerialV2 (not used by default) binary serial protocol <ul> <li>Use 230400bps for SSV2 baud</li> <li>Major capture speedup when using SSV2</li> </ul> </li> <li>New experiment/target class: CW305 HW ECC</li> <li>Add CW305 register name autodetect</li> <li>Add glitch arm timing of "no_glitch" (moderate speedup for SSV2)</li> </ul> <h2>Fixes:</h2> <ul> <li>target.baud not being reset correctly after programming STM32</li> <li>Turn off STM32 HW floating point</li> <li>VM: Fix firmware programming</li> </ul> <h2>Firmware updates:</h2> <ol> <li>Auto driver configuration on Windows: Once updated firmware is installed, device will automatically configure as a WinUSB device if no other drivers present. See <a href="https://docs.microsoft.com/en-us/windows-hardware/drivers/install/using-device-manager-to-uninstall-devices-and-driver-packages" rel="nofollow">https://docs.microsoft.com/en-us/windows-hardware/drivers/install/using-device-manager-to-uninstall-devices-and-driver-packages</a> for uninstalling drivers.</li> <li>Serial buffer size increase from 128 bytes to 200 bytes. Allows 99 bytes of data to be sent with SimpleSerial v1 and 192 bytes to be sent with SimpleSerial V2</li> </ol> <h2>SimpleSerial 2</h2> <p>New serial communication protocol. Improved communication speed + data integrity, more flexibility with commands, longer data length supported. Normal capture speed with SSV2 is roughly 110 captures/second, but can be increased to ~150 captures/second by not reading response + setting <code>scope.glitch.arm_timing="no_glitch"</code> (disables glitch)</p> <p>Use in sca101/fault101 by setting <code>SS_VER='SS_VER_2_0'</code>. Build SSV2 firmware by <code>make PLATFORM=X CRYPTO_TARGET=Y SS_VER=SS_VER_2_0</code>. See <a href="https://chipwhisperer.readthedocs.io/en/latest/api.html#simple-serial-v2-target" rel="nofollow">readthedocs</a> for documentation.</p> <h2>Firmware update tool</h2> <p>In some cases, users may be unable to reprogram the ChipWhisperer scope (not target) firmware from inside the VM. As such, there is a firmware updater Windows executable that will allow reprogramming of the ChipWhisperer from a native Windows install without requiring a full ChipWhisperer install. It can be used with the syntax <code>cw_firmware_updater_5_4_0.exe &lt;COM_PORT&gt; &lt;HARDWARE_TYPE&gt;</code> where <code>&lt;COM_PORT&gt;</code> is the AT91 serial bootloader serial port name (i.e. <code>COM4</code>) and <code>&lt;HARDWARE_TYPE&gt;</code> is one of <code>cwlite</code>, <code>cw1200</code>, <code>cwnano</code>, or <code>cw305</code>.</p> <p>NOTE: This tool can only reprogram the ChipWhisperer. It cannot put the ChipWhisperer into bootloader mode, which is a prerequisite to reprogramming the ChipWhisperer.</p> alex-dewar tag:github.com,2008:Repository/23514290/5.3.1 2020-08-31T15:13:54Z ChipWhisperer 5.3.1 <p>New CWPro firmware and small fixes. For VM/Windows installer/Windows drivers, see release 5.3.0 and update from there.</p> <h1>New Features</h1> <ul> <li>New CWPro firmware</li> <li><code>target.in_waiting_tx()</code> support</li> <li>SAMFWLoader programming support for CWPro</li> <li>Add CWPro USB binary</li> </ul> <h1>Fixes</h1> <ul> <li>TIO state read on CWPro</li> <li>TX buffer overrun on CWPro</li> </ul> alex-dewar tag:github.com,2008:Repository/23514290/5.3.0 2020-08-31T12:12:43Z ChipWhisperer 5.3.0 <p>V5.3.0</p> <h1>New Features:</h1> <ul> <li>New CW305 USB firmware</li> <li>New CWLite/CWNano USB firmware</li> <li>Major tutorial overhaul <ul> <li>Tutorials now built for <a href="https://learn.chipwhisperer.io" rel="nofollow">https://learn.chipwhisperer.io</a></li> <li>Includes both remastered and all new tutorials</li> <li>Add prerecorded traces to power analysis labs</li> </ul> </li> <li>New tutorials (SCA101): <ul> <li>Lab 3_1 - Recovering Data from a Single Bit</li> <li>Lab 6_4 - Jittery Triggering on UART</li> </ul> </li> <li>New tutorials (Fault101): <ul> <li>Voltage glitch versions of clock glitch tutorials</li> </ul> </li> <li>New tutorials (SCA201): <ul> <li>Dynamic Time Warp resync</li> <li>Hardware AES lab</li> </ul> </li> <li>New tutorials (Fault201): <ul> <li>Introduction to AES Fault Attacks</li> <li>AES Loop Skip Fault attack</li> <li>1.5 Round AES Attack</li> <li>DFA Attack Against Final MixColumns</li> </ul> </li> <li>New hardware documentation at <a href="https://rtfm.newae.com" rel="nofollow">https://rtfm.newae.com</a></li> <li>Add documented way to read state of TIO1-4 on Lite/Pro</li> <li>Add glitch controller for improved glitch recording</li> <li>Add API reprogramming supports for Nano and CW305</li> <li>Add T-Table enc/dec leakage models</li> <li>Add __array__() function to IndividualIterable (allows conversion to numpy array)</li> <li>Add tqdm to preprocessing</li> <li>Add batch run for CW305 for fast capture</li> <li>Add SPI Programming for CW305</li> <li>Add default FPGA programming for CW305</li> </ul> <h1>Fixes:</h1> <ul> <li>Make Nano serial and capture more reliable</li> <li>Improve Nano reliablity in VM</li> <li>Build fixes for STM32F3 and STM32L5</li> <li>Greatly improved reliablity OpenADC long offset captures</li> <li>Make target.SimpleSerial more robust</li> <li>Fix tx buffer overrun</li> </ul> <h1>Quick Start:</h1> <ul> <li>The "ChipWhisperer Virtual Machine" is recommended to get started with, as it includes all compilers required. It will need to be added to a VirtualBox Install.</li> <li>The "Windows Installer" provides you with a Jupyter instance setup with ChipWhisperer, but requires you to install arm or avr compilers, as well as make.</li> </ul> alex-dewar tag:github.com,2008:Repository/23514290/5.2.1 2020-05-27T21:20:58Z ChipWhisperer 5.2.1 <h2>Important Notes</h2> <ul> <li>The VM now does not force a password change on the user account (SSH is off by default so should not be exposed). You will now be automatically prompted for a Jupyter password if one was not set - this step is required for Jupyter to start.</li> </ul> <h2>New Features:</h2> <ul> <li>CW-Lite/Pro: Increase maximum glitch repeat to 8192</li> <li>CW-Lite/Pro: Add nRESET as trigger input</li> <li>Targets: Add RT1062 HAL (NXP Cross-over MCU)</li> <li>Targets: Add EFR32MG21 HAL (SiLabs with 'secure element')</li> <li>Targets: Add FE310 HAL (RISC-V)</li> <li>Targets: Add STM32L5 HAL (NXP M33)</li> <li>Add option to allow more specific hardware AES engine triggers</li> <li>Add SAD section to SPA_1</li> <li>Small fixes to SPA_2</li> <li>SimpleSerial additions: <ul> <li>simpleserial_read_witherrors</li> <li>Define return for simpleserial_wait_ack</li> <li>simpleserial_last_sent</li> <li>simpleserial_last_read</li> </ul> </li> </ul> <h2>Fixes:</h2> <ul> <li>CW-Lite/Pro: Fix glitch logic which was not correctly gating output - start and end edge were slightly off</li> <li>Fix HW float being used on STM32F3 instead of software float <ul> <li>This also fixes a crash related to the wrong C library being used on older (pre q2-2018) gcc versions</li> </ul> </li> <li>Allow STM32F3 to use different input clock speeds (was previously fixed to 7.37MHz)</li> <li>Fix STM32F3 programming timeout</li> <li>Expand tests</li> <li>Add ack option to capture_trace()</li> <li>Fix project not saving correctly when multiple segments used</li> <li>Code cleanup</li> <li>Various other fixes</li> </ul> colinoflynn