Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

24.11.0 Release Candidate #475

Merged
merged 118 commits into from
Nov 12, 2024
Merged

24.11.0 Release Candidate #475

merged 118 commits into from
Nov 12, 2024

Conversation

odudex
Copy link
Member

@odudex odudex commented Nov 6, 2024

24.11.0 Release Candidate

Tamper Check Flash Hash and Tamper Check Code (Experimental)

The Tamper Check Flash Hash (TC Flash Hash) feature verifies the integrity of the device's flash memory by generating a unique tamper indicator that relies on hash properties. After setting up a Tamper Check Code (TC Code), this check can be performed at every boot or manually via Tools -> Flash Tools. The TC Code is a key component, required to execute the verification and detect unauthorized changes to the device's memory. Users can also fill unused memory blocks with camera-generated entropy to further mitigate tampering attempts.

Flash Map

Flash Map is an auxiliary tool that allows users to visualize the regions of the device's memory that are empty. This helps users verify the results of actions such as:

  • Wiping the device's memory
  • Erasing the user's area
  • Saving settings and encrypted mnemonics
  • Filling empty blocks with camera-generated entropy

Japanese Translation

Japanese translation has been added.

BIP85: Allow Export Base64 Passwords

In addition to BIP39 Mnemonics, users can now derive Base64 passwords from their keys. These passwords, which can be used in standard logins, can be noted down, saved to an SD card, or exported as a QR code.

Vulnerability Fix: Block Import of Python Modules from SD Card

A feature of MicroPython, commonly used for general-purpose development, is the ability to run Python code directly from an SD card. However, with the recent implementation of tamper detection tools, this behavior is now considered a vulnerability. It was discovered that MicroPython would prioritize importing .pyc (Python frozen modules) from an SD card before checking the internal flash, which could be exploited to run unintended code from the SD card. To address this, a block has been implemented in MicroPython to prevent running any code from the SD card, enhancing the overall security of the device.

Add Compatibility to Partial Text Mnemonic QR Codes

Partial Text Mnemonic QR Codes, like Coldcard's backups, where mnemonics words are cropped and contain only the first 3 or 4 letters, are now auto-completed and loaded.

Multi-keypad Position Indicator

An indicator has been added to the bottom of keypads to help users identify the keypad index while swiping between them.

WonderMV Simulator

Computer simulator for WonderMV device has been added.

Krux Ethos

Guidelines have been created to assist with decision-making regarding the Krux project's interactions with contributors, users, and businesses that may create products or services related to Krux.

Minor Bugfixes and Refactors

Several code improvements for better reliability and efficiency.

What is the purpose of this pull request?

  • Bug fix
  • New feature
  • Docs update
  • Other

odudex and others added 30 commits September 10, 2024 22:55
add introduction to anti-tamper doc
allow PIN with letters and special chars
allow disabling PIN
flash snapshot has words dedicated to SPIFFS
README info about add user to docker group before using ./krux build
adapt fill_flash to all devices
update flash hash docs
@@ -146,19 +148,24 @@ def capture_from_keypad(
"""
buffer = starting_buffer
pad = Keypad(self.ctx, keysets, possible_keys_fn)
big_tittle = len(self.ctx.display.to_lines(title)) > 1
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo "big_tittle" becomes "big_title" but not currently a bug, would need to get altered below too.

Copy link
Collaborator

@jdlcdl jdlcdl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Up to date w/ code-review of changes up to commit 790604d
edited: thru 8b00482.

Copy link

codecov bot commented Nov 11, 2024

Codecov Report

Attention: Patch coverage is 94.85420% with 30 lines in your changes missing coverage. Please review.

Project coverage is 94.91%. Comparing base (f02ee78) to head (8b00482).
Report is 119 commits behind head on main.

Files with missing lines Patch % Lines
src/krux/pages/flash_tools.py 95.26% 8 Missing ⚠️
src/krux/pages/fill_flash.py 92.00% 6 Missing ⚠️
src/krux/pages/home_pages/bip85.py 93.54% 4 Missing ⚠️
src/krux/pages/settings_page.py 89.74% 4 Missing ⚠️
src/krux/pages/tiny_seed.py 90.24% 4 Missing ⚠️
src/krux/pages/keypads.py 85.71% 2 Missing ⚠️
src/krux/pages/__init__.py 94.44% 1 Missing ⚠️
src/krux/pages/tc_code_verification.py 96.15% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #475      +/-   ##
==========================================
+ Coverage   94.70%   94.91%   +0.21%     
==========================================
  Files          70       74       +4     
  Lines        7573     7951     +378     
==========================================
+ Hits         7172     7547     +375     
- Misses        401      404       +3     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@odudex odudex merged commit 64863c0 into main Nov 12, 2024
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants