Skip to content

onlykey-agent 1.1.16: composite PQC GPG keys, derived-v2 identities - #19

Merged
onlykey merged 1 commit into
masterfrom
release-onlykey-agent-1.1.16
Oct 23, 2026
Merged

onlykey merged 1 commit into
masterfrom
release-onlykey-agent-1.1.16

Conversation

@onlykey

@onlykey onlykey commented Sep 23, 2026 •

Copy link
Copy Markdown
Owner

One commit, for OnlyKey firmware v3.1.0 and python-onlykey 1.3.0 (trustcrypto/python-onlykey).

New

  • Composite post-quantum GPG keys (libagent/device/onlykey_pqc.py): ML-KEM-768 + X25519 decryption and ML-DSA-65 + Ed25519 signing, using keys in the PQC1–PQC4 slots. Follows draft-ietf-openpgp-pqc-10.
  • Derived identities v2: --skey derived-v2 / --dkey derived-v2 (or ECC32v2) selects the HKDF-based derivation, which needs firmware v3.1.0. The default is unchanged, so existing SSH and GPG keys stay the same.
  • The OnlyKey device module opens the HID handle once and always closes it on failure. It uses python-onlykey's shared challenge-code rule and response classifier.

Packaging: onlykey-agent 1.1.16 requires onlykey>=1.3.0 (it imports onlykey.protocol), lib-agent>=1.0.8 and Python 3.10+. It also gains a PyPI project description. The lib-agent version stays at 1.0.8, which is not on PyPI yet (PyPI has 1.0.6).

Tests: pytest libagent gives 80 passed and 1 failed. The failure is test_get_agent_sock_path, because there is no gpgconf on the test machine. On the firmware emulator, the onlykey-agent SSH tests, the onlykey-gpg init tests and the derived-v2 tests all pass (v1 default, v2 keys, ECDH, GPG init).

Publish order: python-onlykey 1.3.0 first, then lib-agent 1.0.8, then onlykey-agent 1.1.16.

Related open PRs that overlap: #14 (X-Wing age), #13 and #16 (upstream sync).

@onlykey
onlykey force-pushed the release-onlykey-agent-1.1.16 branch from 9cd4416 to d1318f8 Compare September 28, 2026 17:30
@onlykey
onlykey force-pushed the release-onlykey-agent-1.1.16 branch 3 times, most recently from ca32153 to 8d30637 Compare October 12, 2026 21:00
@onlykey
onlykey force-pushed the release-onlykey-agent-1.1.16 branch 2 times, most recently from e70f7ee to 6816745 Compare October 23, 2026 16:24
For OnlyKey firmware v3.0.5 and python-onlykey 1.3.0.

- Composite post-quantum GPG keys (libagent/device/onlykey_pqc.py):
  ML-KEM-768 + X25519 decryption and ML-DSA-65 + Ed25519 signing with keys
  in the PQC1-PQC4 slots, following draft-ietf-openpgp-pqc-10.
- Derived identities v2: --skey/--dkey derived-v2 (or ECC32v2) selects the
  HKDF-based derivation (firmware v3.0.5+). The default is unchanged, so
  existing SSH and GPG keys stay the same.
- The OnlyKey device module opens the HID handle once and always closes it
  on failure, and uses python-onlykey's shared challenge-code rule and
  response classifier (onlykey.protocol).
- Packaging: onlykey-agent requires onlykey>=1.3.0 and lib-agent>=1.0.8, and
  Python 3.10+; PyPI project description added.
@onlykey
onlykey force-pushed the release-onlykey-agent-1.1.16 branch from 6816745 to 4793784 Compare October 23, 2026 19:46
@onlykey
onlykey merged commit 1569bfd into master Oct 23, 2026
0 of 7 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.

1 participant