100 Commits
Author SHA1 Message Date
Suyog Tandel 71ad72d4da chore: bump app ver to 0.8 2026-07-28 16:52:23 +05:30
Suyog Tandel a07bc5a9a4 merge: PicoApp Func parity - #111 2026-07-28 16:17:21 +05:30
Suyog Tandel 0763cc625b fix: rustdoc issues 2026-07-28 16:04:11 +05:30
Suyog Tandel f3b0dfe555 fix: clippy issues on latest rustc 2026-07-28 15:34:57 +05:30
Suyog Tandel c71d2b0820 chore(fmt): run cargo fmt with latest rustc 2026-07-28 15:21:17 +05:30
Suyog TandelandGitHub 4b16c4754b Merge pull request #110 from librekeys/ci/update-nix-channel
ci: update nix channel and action versions
2026-07-23 15:15:52 +05:30
Suyog Tandel eebcc6617d ci(fix): appimage build script metainfo asset 2026-07-21 16:06:19 +05:30
Suyog TandelandGitHub d4130ad002 Merge pull request #109 from librekeys/ci/drop-deb-pkg-support
Drop packaging and release of .deb and .tar.gz pkgs
2026-07-21 15:36:48 +05:30
Suyog Tandel 6abb460096 ci: drop .deb and .tar.gz pkgs from releases 2026-07-21 15:35:12 +05:30
Suyog TandelandGitHub 65003a0956 Merge pull request #108 from librekeys/ci/auto-update-appimages
Support for Auto-Updating AppImages.
2026-07-21 11:04:38 +05:30
Suyog Tandel 28963093c9 refactor: flatpak build script 2026-07-21 00:33:12 +05:30
Suyog Tandel a9e95ca2cb ci[release]: refactor appimage build script to include appimage auto update info 2026-07-21 00:23:16 +05:30
Suyog TandelandGitHub ac0a29895f Merge pull request #107 from librekeys/ci/improved-appimage-builds
ci/cd: new improved appimage builds for picoforge release workflow
2026-07-20 21:26:39 +05:30
Suyog Tandel b11b5baa9f ci/cd: new improved appimage builds for picoforge release workflow 2026-07-20 21:04:02 +05:30
Suyog Tandel d3c41a8f6d chore: clean unused workflows 2026-07-20 19:19:49 +05:30
Suyog Tandel 74eff4a1aa docs: update installation guide for openSUSE Tumbleweed 2026-07-20 01:29:16 +05:30
Suyog TandelandGitHub 906c8fa6bf Merge pull request #105 from librekeys/spec-sync/0.7.1-1
chore: sync spec to 0.7.1-1
2026-07-20 00:32:50 +05:30
Suyog Tandel 9e81973ee0 Automatic commit of package [picoforge] release [0.7.1-1].
Created by command:

/usr/bin/tito tag --offline --accept-auto-changelog --keep-version
2026-07-19 18:56:45 +00:00
Suyog Tandel 0f8a09094a chore: sync spec to 0.7.1-1 [skip ci] 2026-07-19 18:56:44 +00:00
Suyog Tandel 58b3a480f7 feat: update flathub metainfo and increment app ver to 0.7.1 2026-07-19 23:56:47 +05:30
Suyog TandelandGitHub d8c012d536 Merge pull request #104 from librekeys/spec-sync/0.7.0-2
chore: sync spec to 0.7.0-2
2026-07-19 23:30:10 +05:30
Suyog Tandel a683307991 Automatic commit of package [picoforge] release [0.7.0-2].
Created by command:

/usr/bin/tito tag --offline --accept-auto-changelog --keep-version
2026-07-19 17:51:24 +00:00
Suyog Tandel 22feb92bdd chore: sync spec to 0.7.0-2 [skip ci] 2026-07-19 17:51:24 +00:00
Suyog Tandel afb316e41b feat: add wiki button in about screen and update application description 2026-07-19 22:36:24 +05:30
Suyog Tandel dfc11b5770 merge:PR 103 that adds RS-Key firmware support and fixes bugs 2026-07-19 22:14:10 +05:30
Suyog Tandel fd0752b152 chore: make UI more responsive and more wide 2026-07-19 16:44:43 +05:30
Suyog TandelandGitHub ef51114758 Merge pull request #101 from librekeys/build/update-nix-package
build(package.nix): update
2026-07-12 16:16:12 +05:30
Suyog Tandel 0e9ca1a8c3 chore: automate spec sync via PRs and update release workflow 2026-07-10 19:47:15 +05:30
Suyog Tandel f72c5fc45d fix(ci): security audit issues 2026-07-09 23:18:45 +05:30
Suyog Tandel e8f379a248 fix(ci): add write perms to code CI workflow for security audit step 2026-07-09 22:51:24 +05:30
Suyog Tandel 86dfa606aa chore: rename local variables across UI module for readability
- dialog.rs: pin entity/text bindings (current/new/confirm)
- config/view_model.rs: entity→weak_self, parsed_gpio/driver_value, new_* form fields
- config/view.rs: fido_no_rskey→is_fido_no_rskey
- passkeys/view_model.rs: entity→weak_self, new→new_pin_value, s→submit_clone/status_content
- passkeys/view.rs: ep_set→enterprise_attestation_set
- home/view.rs: rk→resident_keys_supported, ep_set→enterprise_attestation_set
- sidebar.rs: t→padding_anim_t
- ci.yml: fix audit-check short SHA→full SHA
2026-07-09 22:42:53 +05:30
Suyog Tandel c24999d3a4 refactor(hal): rename variables for clarity and extract format_firmware_version helper
- fido/mod.rs: extract format_firmware_version, rename v→entry, s→error_text,
  val→field_data in TLV parsers
- fido/ops.rs: rename auth_x/y→auth_point_x/y, rng→system_rng, err_str→error_string
- rescue/ops.rs: rename rx_*→*_response, rdr→cursor, i→offset, val→field_data,
  opts_val→options_raw, curves_val→raw_curves_value
- rescue/constants.rs: rename val→tag_value/color_value in from_u8 methods
- transport/fido.rs: rename drain_buf→stale_packet_buffer, buf→packet_buf,
  start_time→deadline_start, status→keepalive_status/ctap_status_byte
- firmwares/mod.rs: rename fw_type→firmware_variant, ver→firmware_version
2026-07-09 21:48:12 +05:30
Suyog Tandel a43f840a1a fix(ci): codeql build failure and securiy audit node 20 deprecation 2026-07-09 20:56:28 +05:30
Suyog Tandel fa96a849f6 fix(ci): docs workflow deps step missing 2026-07-09 20:45:31 +05:30
Suyog Tandel 2707ff6602 fix: codebase formatting 2026-07-09 20:34:13 +05:30
Suyog Tandel c272e148da fix: replace manual and_then/filter pattern with Option::filter
Fixes clippy::manual_filter lint on Rust 1.97 (CI), while
keeping compatibility with 1.96 (local).
2026-07-09 20:29:12 +05:30
Suyog Tandel 8a769bc169 ci: replace Nix with rust-toolchain, add audit-check and CodeQL jobs
- Switch `checks` and docs jobs from Nix to dtolnay/rust-toolchain +
  Swatinem/rust-cache + apt system deps for faster setup
- Add dependency vulnerability scanning via rustsec/audit-check@v2.0.0
- Add CodeQL static analysis via github/codeql-action@v4 (manual build)
2026-07-09 20:22:32 +05:30
Suyog Tandel 5121bb011d feat: RS-Key curve selection card, transport priority fix, RescueCurves re-export
- Reversed transport priority: PCSC/Rescue preferred over FIDO
- Added `RescueCurves` bitflags re-export to `hal/types.rs`
- Replaced single secp256k1 toggle with full "Supported Curves" card
  (11 curves) gated on RS-Key, with mask-building in apply_changes
- Updated FIDO/Rescue write status messages to match transport behavior
- Cleaned up device status display (green "Online" for RS-Key)

Changes: src/ui/screens/config/view.rs, view_model.rs, hal/io.rs, hal/transport/mod.rs, hal/types.rs.
2026-07-09 00:04:38 +05:30
Suyog TandelandGitHub 8ad80adbc3 Merge pull request #100 from librekeys/feat/rskey-0.3.1-support
feat: RSKey v0.3.x support and refactor hal module
2026-07-08 23:07:53 +05:30
Suyog Tandel 20c56d947d docs: add module/item docs across all 43 source files and enable #![deny(missing_docs)]
- Add //! module-level headers and /// item-level docs to every source file
- Fix unresolved doc links in hal/mod.rs, ui/mod.rs, transport/pcsc.rs, transport/fido.rs
- Add #![deny(missing_docs)] at crate root to enforce doc completeness in CI
2026-07-08 22:57:20 +05:30
Suyog Tandel 423b5ae470 refactor(hal): extract transport layer and split rescue/fido ops
- Move HidTransport from hal/fido/hid.rs to hal/transport/fido.rs
- Add PcscTransport in hal/transport/pcsc.rs for CCID communication
- Refactor DeviceHandle::Rescue to hold PcscTransport instead of bare FirmwareType
- Split monolithic rescue/mod.rs into high-level interface and ops.rs with APDU logic
- Rename hal/fido/hid.rs → hal/fido/ops.rs (FidoOperations), depend on transport::fido
- Update FIDO config-write capability checks with more specific trait methods
- Fix all import paths in hal/io.rs and ui/models/device.rs
2026-07-08 22:20:35 +05:30
Suyog Tandel c76b059ae6 feat(hal): introduce RS-Key(0.3.x) support and FirmwareTrait architecture
This commit significantly refactors the HAL layer to introduce proper support for the RS-Key firmware and abstraction across different hardware profiles
  (PicoFido, RSKey, LkOne).

    Key changes include:
    - **Firmware Abstraction**: Added `FirmwareTrait` and `AnyFirmware` in `src/hal/firmwares/mod.rs` with specific implementations for `PicoFidoFirmware` and
  `RSKeyFirmware` to decouple hardware-specific logic from the high-level `io.rs` layer.
    - **RS-Key FIDO Support**: Implemented RS-Key payload logic in `src/hal/fido/mod.rs` to support reading/writing LED configuration and DEV_CONF directly over
  the CTAPHID FIDO transport using TLV and custom command targets.
    - **Constants Cleanup**: Stripped out and consolidated 200+ lines of raw CTAP2 constants and vendor opcodes from `src/hal/fido/constants.rs` to clean up the
  module.
    - **UI & PIN Dialogs**: Updated `src/ui/screens/config/view_model.rs` to route `DeviceMethod` correctly when applying configurations. Added
  `StatusDialogHandle` integration to prompt the user for their FIDO PIN and instruct them to "Please touch your device if it flashes" when performing hardware
  config writes over FIDO.
    - **LkOne Type**: Added the `LkOne` AAGUID and firmware types to the hardware definition tree.
    - **Home View Check**: Fixed a UI issue in `home/view.rs` to conditionally display the LED config card based on whether the `FirmwareType` actually supports
  FIDO config modifications (like RS-Key).

    This lays the architectural foundation needed to handle FIDO configurations dynamically based on the discovered firmware type.
2026-07-08 21:14:55 +05:30
Suyog Tandel b293e294f5 feat: refactor hal module architecture and add tests in fido module 2026-07-07 01:23:26 +05:30
Suyog Tandel f8fc40c6cc fix(ci/cd): test build for macos-x64 2026-07-06 23:16:45 +05:30
Suyog Tandel ae8a12946e chore: Remove firmware type label from sidebar online status
- Drop firmware variant display (RS-Key/pico-fido) in sidebar status footer
- Rename workflow job to verify-build
2026-07-06 22:11:29 +05:30
Suyog Tandel 8f32c7c217 ci: add build matrix and cancel-in-progress concurrency 2026-07-06 19:53:37 +05:30
Suyog Tandel f05f42eb39 chore: update contributing.md with new mirror sources for picoforge 2026-07-05 20:54:17 +05:30
Suyog Tandel 2f1a9b97f2 feat(ci/cd): new workflow to keep mirror repos synced 2026-07-05 20:41:13 +05:30
Suyog TandelandGitHub 0f2b6dfdff Merge pull request #99 from librekeys/chore/clean-frontend-codebase
chore: refactor the UI rendering logic
2026-07-05 20:08:16 +05:30
Suyog Tandel c61f905dbb refactor: establish DeviceRepo as sole HAL gateway; fix passkeys lifecycle regressions
Break the UI→HAL dependency: Views and ViewModels no longer import
`crate::hal` directly. DeviceRepo is the single bridge — it re-exports
all needed types, provides 16 blocking static methods for background
tasks, and owns all state mutations + event emissions.

- device.rs: Add FreshDeviceState, apply_fresh_state(), update_fido_info(),
  read_device_serial_blocking(), 16 *_blocking() wrappers, full re-exports
- app.rs: Remove unconditional passkeys nilling on sidebar navigation;
  only invalidate on device_changed (replug). Remove stale
  refresh_device_status method.
- config/view_model.rs: Replace all io::* / fido::* calls with
  DeviceRepo::*_blocking(). Use apply_fresh_state() instead of refresh()
  for RS-Key LED/management writes.
- passkeys/view_model.rs: Replace all io::* calls with
  DeviceRepo::*_blocking(). Fix sync_fido_state to use
  repo.update_fido_info() instead of manual field mutation.
  Restore refresh_if_unlocked via DeviceEvent subscriber.
- Update all view imports: hal::types → ui::models::device,
  hal::rescue::constants → ui::models::device
- Update docs in main.rs, app.rs, ui/mod.rs to reflect the new architecture
2026-07-05 20:06:30 +05:30
Suyog Tandel de338512ba chore(docs): refactor and update the docs to point to correct dir locations and explain the new UI architecture.
- updated mod doc in main.rs
- added mod doc in ui/mod.rs
- added few documentation to symbols in app.rs
2026-07-05 16:36:29 +05:30
Suyog Tandel 5fede906b0 refactor: extract screens into view/view_model dirs, add AppModels DI, switch to Entity<DeviceRepo>
- Decompose flat about.rs/home.rs/security.rs/config.rs/passkeys.rs into
  per-screen directories with mod.rs, view.rs, view_model.rs
- Extract ApplicationRoot, LayoutState, ActiveView, ViewModelStore into new app.rs
- Replace DeviceConnectionState (snapshot-based) with reactive Entity<DeviceRepo>
- Replace ViewCache with ViewModelStore using uniform get_or_insert_with lazy init
- Add AppModels DI bag shared across all view constructors
- Move side types (UsbIdentityPreset, LedDriverType, etc.) into local view_model files
- Delete src/ui/types.rs
2026-07-05 16:02:14 +05:30
Suyog Tandel 7688cc3b13 chore: rename device dir to hal and create models module for repo storage 2026-07-05 02:14:33 +05:30
Suyog TandelandGitHub f4c4e0b145 Merge pull request #98 from kralonur/fix/sync-fido-state-after-mutations
fix(ui): sync cached FIDO state after mutations
2026-06-30 00:08:51 +05:30
Suyog Tandel e6f9c4df6d fix: pr98 review, lock the storage before performing a sync to get new status after device reset 2026-06-30 00:04:31 +05:30
Suyog Tandel 7762dccdc5 chore: remove verbose internal-dialogue comments and minor code cleanup
- Strip thinking-out-loud and notes-to-self comments from
  device/fido/hid.rs, device/rescue/mod.rs, error.rs, ui/views/passkeys.rs
- Replace redundant let c_i = i binding with direct i usage (Copy type)
- Replace magic number 8 with LedColor::all().len() in config.rs
2026-06-24 13:50:14 +05:30
Suyog Tandel 8df78c753d feat: add project info in project documentation 2026-06-24 10:40:40 +05:30
Suyog Tandel e5c2812269 feat(device): add ML-DSA COSE algorithms and expand rescue curves
Summary of changes:
- src/device/fido/constants.rs — added ML-DSA-44/65/87 post-quantum COSE algorithm variants (-48 to -50); updated from_raw/Display; refreshed VendorCommand docs with version history and RS-Key caveat; removed stale CTAP2-vs-firmware discrepancy comment
- src/device/rescue/constants.rs — added 8 new curve flags to RescueCurves (SECP256R1, SECP384R1, SECP521R1, BP256R1/384R1/512R1, ED25519, ED448, CURVE25519, CURVE448); corrected MANAGEMENT_AID doc to say it's available on both firmwares
Non-breaking. All additions are purely additive:
- CoseAlgorithm — only accessed via from_raw() (has _ => None catch-all) — existing match arms unaffected
- RescueCurves — bitflags! type, existing code only touches SECP256K1 via contains/bits — new flags don't affect those
- cargo check and cargo clippy both pass clean with no warnings
2026-06-24 08:57:55 +05:30
Suyog Tandel a4356444ef fix: picoforge docs workflow failure due to missing libs 2026-06-23 23:54:04 +05:30
Suyog Tandel 720adb6a17 feat: add documentation page for picoforge source code 2026-06-23 23:45:11 +05:30
Suyog TandelandGitHub 7503ee52d2 Merge pull request #97 from librekeys/RS-Key-Support
Add RS-Keys Support and improve code documentation
2026-06-23 23:26:52 +05:30
Suyog Tandel c268d8ac28 fix: clippy errors in new documentedation of code in device mod 2026-06-23 23:11:55 +05:30
Suyog Tandel 0a0a7b46f0 fix: ci workflow name 2026-06-23 23:08:20 +05:30
Suyog Tandel 77db0aec49 feat: add basic rust ci workflow 2026-06-23 23:03:27 +05:30
Suyog Tandel e3dc8fc1c6 docs: add documentation to src/device/module 2026-06-23 21:53:00 +05:30
Suyog Tandel 2852893187 chore: format code using cargo fmt 2026-06-23 20:29:56 +05:30
Suyog Tandel 5157c0616c fix: tests and update crates to latest versions 2026-06-23 15:03:30 +05:30
Suyog Tandel cc72224252 fix: bug in fido curve config 2026-06-23 00:24:00 +05:30
Suyog Tandel 22708b0e0c feat: add hardware-endpoints panel to control usb interfaces for rskey 2026-06-23 00:06:11 +05:30
Suyog Tandel 796c14462d chore: format code using cargo fmt 2026-06-22 22:05:07 +05:30
Suyog Tandel c27ff57d78 fix: config errors in config view 2026-06-22 21:57:53 +05:30
Suyog Tandel 6b5d591e28 feat: add support for RS-Keys firmware and add optito reset the device 2026-06-22 21:26:39 +05:30
Suyog Tandel 1c53fc8c40 Automatic commit of package [picoforge] release [0.6.0-1].
Created by command:

/usr/bin/tito tag --offline --accept-auto-changelog --keep-version
2026-06-22 07:37:32 +00:00
Suyog Tandel 8a40c3e7b9 chore: sync spec to 0.6.0 [skip ci] 2026-06-22 07:37:32 +00:00
Suyog Tandel b549eebfb7 chore: update deps and fix tito spec update script 2026-06-22 12:56:43 +05:30
Suyog Tandel 30f5b98eec chore: Modify Readme.md with firmware support info 2026-06-22 12:01:53 +05:30
Suyog Tandel 1281577bf5 chore: update screenshots and readme.md 2026-06-22 11:46:40 +05:30
Suyog TandelandGitHub 7a45f6452c Merge pull request #96 from librekeys/0.6.0rc
0.6.0rc
2026-06-22 11:13:34 +05:30
Suyog Tandel fd1e058d6b chore: format code 2026-06-17 23:56:00 +05:30
Suyog Tandel 512c0e8674 fix: edge cases in conditional clauses for version check of firmware 2026-06-17 23:54:35 +05:30
Suyog Tandel 9401d10d6e fix: update the device not connected message in config view 2026-06-17 23:25:25 +05:30
Suyog TandelandGitHub ce75094e5c Merge pull request #94 from kralonur/feat/picofido-7.6-support
Picofido 7.6 support
2026-06-04 19:57:23 +05:30
Suyog TandelandGitHub 4167ed0352 Merge pull request #92 from sylvainpelissier/attestation
Add Enterprise attestation features
2026-05-04 22:31:10 +05:30
Suyog Tandel 6c003ed6fa chore(docs): update readme.md with flathub link 2026-03-15 19:25:49 +05:30
Suyog Tandel 2a3112b8ff fix(pkg): appstream syntax error 2026-03-07 23:25:04 +05:30
Suyog Tandel ebf1028a18 chore: update appstream for flathub 2026-03-07 23:06:34 +05:30
Suyog Tandel f5e9f6f669 Automatic commit of package [picoforge] release [0.5.0-1].
Created by command:

/usr/bin/tito tag --offline --accept-auto-changelog --keep-version
2026-03-06 16:19:00 +00:00
Suyog Tandel 3cf8cabb2d chore: sync spec to 0.5.0 [skip ci] 2026-03-06 16:19:00 +00:00
Suyog Tandel 9c37eb2da9 chore: bump app version to 0.5.0 2026-03-06 20:56:05 +05:30
Suyog Tandel 30c926e049 fix(ui): migrate views to read device state from ApplicationRoot 2026-03-06 00:38:45 +05:30
Suyog Tandel e7a1cab8ac refactor: ApplicationRoot restructure 2026-03-05 23:19:07 +05:30
Suyog Tandel ad4c577418 refactor: rename GlobalDeviceState to DeviceConnectionState 2026-03-04 22:36:20 +05:30
Suyog TandelandGitHub f1625aa831 Merge pull request #76 from librekeys/dev/pico-fido-v7.4
refactor: backend and UI for v0.5.0
2026-03-04 18:46:59 +05:30
Suyog Tandel 44851e25c4 fix: clippy errors and remove logs view
This commit basically removes the logs view from the
application(redundant). And also fixes all the clippy errors in the UI.
2026-03-04 18:11:19 +05:30
Suyog Tandel 895f4a7ce1 feat(ui): Add LibreKeys One Vendor Config to PicoForge 2026-03-03 19:55:17 +05:30
Suyog Tandel 093a72f46b fix(ui): bottom drawer issue when deleting a passkey 2026-03-03 19:46:32 +05:30
Suyog Tandel 2047952b94 fix(ui): Fido version displayed in fido information 2026-03-03 19:25:09 +05:30
Suyog Tandel 4be736c9c2 fix:(ui): set min pin length dialog : the enter key is triggering cancel instead of update 2026-03-03 18:22:31 +05:30
Suyog Tandel 15c2a9acb4 fix(ui): error message colors in dialogs 2026-03-03 17:36:32 +05:30
Suyog Tandel 85cac6ffc5 fix(ui): logs terminal overflowing to the right of the window 2026-03-03 15:40:37 +05:30