Skip to content

refactor: create pxp - #311

Open
michaelbeaumont wants to merge 9 commits into
linux-credentials:masterfrom
michaelbeaumont:pxp-crate-split
Open

michaelbeaumont wants to merge 9 commits into
linux-credentials:masterfrom
michaelbeaumont:pxp-crate-split

Conversation

@michaelbeaumont

@michaelbeaumont michaelbeaumont commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

I was pretty aggressive with the renaming but "caBLE" is now two generations back, it's getting hard to find references to it in any specs so it should go, IMO.

I've used the new libwebauthn-pxp crate alone for non-CTAP purposes and it works.

Fixes #307

One thing that's missing as described in the spec is technically:

> Every message transmitted over this socket MUST be prefixed with a 4-byte big-endian length prefix, representing the length of the message payload in bytes.

But of course this is a breaking change. Maybe we need a toggle for framing? Otherwise everything should "just work".

@AlfioEmanueleFresta

Copy link
Copy Markdown
Member

Thank you @michaelbeaumont! I'm supportive of the change overall, will review this PR more thoroughly as soon as I can - aiming for this or next weekend.

What would you think about renaming this drop the libwebauthn prefix, given PXP can be used outside of WebAuthn? We can still host it within the repo at first, for convenience.

@michaelbeaumont

Copy link
Copy Markdown
Contributor Author

Thank you @michaelbeaumont! I'm supportive of the change overall, will review this PR more thoroughly as soon as I can - aiming for this or next weekend.

What would you think about renaming this drop the libwebauthn prefix, given PXP can be used outside of WebAuthn? We can still host it within the repo at first, for convenience.

Done!

@AlfioEmanueleFresta AlfioEmanueleFresta left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thank you so much for working on this! Looks good to me - a few comments inline to be addressed before merging.

Also, could you rebase this on top of #314 - making sure we apply the same ScanGuard fixes to the ble code in the new create?

Comment thread .github/workflows/rust-latest.yml Outdated
Comment thread pxp/src/connection.rs Outdated
#[derive(Debug)]
pub struct TunnelHandle {
/// The connection task: proximity check, handshake, then message exchange.
pub task: task::JoinHandle<()>,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nit: can we make anything we don't need to be public here private?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

changed visibility of a couple things

Comment thread pxp/Cargo.toml
@AlfioEmanueleFresta AlfioEmanueleFresta changed the title refactor: create libwebauthn-pxp refactor: create pxp Oct 24, 2026
Comment thread pxp/Cargo.toml
[package]
name = "pxp"
description = "FIDO Proximity Exchange Protocol (PXP, formerly CTAP hybrid / caBLE) client for Linux, written in Rust"
version = "0.10.0"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Do we want to start at version 0.10.0? 🤷

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.

Consider splitting PXP into a separate crate

2 participants