tag:github.com,2008:https://github.com/newaetech/chipwhisperer/releasesRelease notes from chipwhisperer2023-01-16T19:12:42Ztag:github.com,2008:Repository/23514290/5.7.02023-01-17T18:13:12ZChipWhisperer 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-dewartag:github.com,2008:Repository/23514290/5.6.12022-06-14T16:29:26ZChipWhisperer 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 >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-dewartag:github.com,2008:Repository/23514290/BHUSA20212021-07-22T00:46:51ZBlackhat 2021<p>Special release for Black Hat USA 2021.</p>
<p>USB library change, better firmware update process, and various small fixes</p>alex-dewartag:github.com,2008:Repository/23514290/5.5.22022-04-13T06:57:55ZChipWhisperer 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-dewartag:github.com,2008:Repository/23514290/5.5.12021-05-04T15:35:57ZChipWhisperer 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-dewartag:github.com,2008:Repository/23514290/5.52021-04-01T21:35:06ZChipWhisperer 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 >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 <COM_PORT> <HARDWARE_TYPE>"><pre>cw_firmware_updater_5_5_0.exe <span class="pl-k"><</span>COM_PORT<span class="pl-k">></span> <span class="pl-k"><</span>HARDWARE_TYPE<span class="pl-k">></span></pre></div>
<p>where <code><COM_PORT></code> is the AT91 Serial Bootloader's port (you can find this in Device Manager) and<br>
<code><HARDWARE_TYPE></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-dewartag:github.com,2008:Repository/23514290/5.42020-11-05T14:39:46Z5.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 <COM_PORT> <HARDWARE_TYPE></code> where <code><COM_PORT></code> is the AT91 serial bootloader serial port name (i.e. <code>COM4</code>) and <code><HARDWARE_TYPE></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-dewartag:github.com,2008:Repository/23514290/5.3.12020-08-31T15:13:54ZChipWhisperer 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-dewartag:github.com,2008:Repository/23514290/5.3.02020-08-31T12:12:43ZChipWhisperer 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-dewartag:github.com,2008:Repository/23514290/5.2.12020-05-27T21:20:58ZChipWhisperer 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