Skip to content

fix: send_device_attestation yields challenge status#254

Merged
djc merged 2 commits intodjc:mainfrom
christianhoelzl:attestation_fix_challenge_status
Feb 16, 2026
Merged

fix: send_device_attestation yields challenge status#254
djc merged 2 commits intodjc:mainfrom
christianhoelzl:attestation_fix_challenge_status

Conversation

@christianhoelzl
Copy link
Contributor

The pull request extends the function send_device_attestation. It yields the ChallengeStatus instead of an empty success result. This is useful to check if the attestation object was validated by the ACME CA immediately after sending the attestation object.

@christianhoelzl christianhoelzl force-pushed the attestation_fix_challenge_status branch from 35c7e9b to 2de7aaf Compare February 12, 2026 09:56
Copy link
Owner

@djc djc left a comment

Choose a reason for hiding this comment

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

LGTM -- is this from a spec change, or just a different kind of testing?

@christianhoelzl
Copy link
Contributor Author

This is from a different kind of testing with a real CA (Step CA), not from a spec change.

@djc
Copy link
Owner

djc commented Feb 12, 2026

Okay. I think it would be good to add some testing for this stuff. In an ideal world, it would be nice to get support for this draft into Pebble -- do you think that's something that could be in scope for you?

@christianhoelzl
Copy link
Contributor Author

Tough question. That could be in scope. I thought about automated testing for a while now and there a some options:

  • One is to extend Pebble (as device-attest-01 is not in scope of Lets Encrypt, this might never become upstream).
  • Another option is to extend instant-acme testing with Step CA (this is heavy).
  • A third option is to have a basic Rust based ACME server in instant-acme (another huge effort).

@djc
Copy link
Owner

djc commented Feb 12, 2026

Forking Pebble doesn't seem appealing, I don't think adding a custom Rust-based ACME server would help if we build it.

Would be good if you can file an issue against Pebble to at least ask if they'd be open to supporting it (and linking that here).

Copy link
Collaborator

@cpu cpu left a comment

Choose a reason for hiding this comment

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

As mentioned in https://github.com/djc/instant-acme/pull/255/changes#r2799709957 I think this is semver breaking, but I don't think it's worth bumping our minor version or leaving it broken. I suspect adoption is very low and provided we mark this stuff experimental it feels like the right-trade off to ignore semver and fix it.

@christianhoelzl christianhoelzl force-pushed the attestation_fix_challenge_status branch from 2de7aaf to 1a60792 Compare February 13, 2026 12:43
@christianhoelzl
Copy link
Contributor Author

To mark the device-attest as experimental, I could add a bullet "* Device attestation support is experimental" to the section Liminations in the README.md. Or better add this sentence to the struct DeviceAttestation and method send_device_attestation?

@cpu
Copy link
Collaborator

cpu commented Feb 13, 2026

I like the idea of doing it both in README and in the related rustdoc of the types/functions.

Copy link
Collaborator

@cpu cpu left a comment

Choose a reason for hiding this comment

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

Thanks, LGTM mod the rust fmt CI failure.

@christianhoelzl christianhoelzl force-pushed the attestation_fix_challenge_status branch from 16e0c7e to af8bec4 Compare February 13, 2026 15:48
@djc djc merged commit ab1c6d5 into djc:main Feb 16, 2026
12 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.

3 participants