Conversation

twitter.com/GrapheneOS/sta Our CameraX-based QR scanning is now drastically better than the legacy third party library we were using in Auditor v29 and earlier. It still needs work but it's nice that it's now actually way better instead of just using a modern implementation for it.
Quote Tweet
Auditor app version 31 released: github.com/GrapheneOS/Aud. See the linked release notes for an overview of the improvements and a link to the full list of changes.
Show this thread
1
6
Auditor pushes the limit on what can be done with a single QR code. The attestation response QR codes can be very dense. It would be significantly beyond the size of what could fit into a single QR code at all without the pre-shared dictionary DEFLATE compression we use for it.
1
2
Replying to
Needs to be far enough away for the camera to focus on it properly while still being decent resolution. Most libraries like zxing are very bad at scanning if the QR code isn't at least 90% of the image. Combination of overly high resolution (slow) and weak support for finding it.
1
2
We use the ability to set an initial dictionary for DEFLATE to have a sample attestation certificate chain as a pre-shared dictionary. We also make sure to include both the new and old attestation root certificates so that DEFLATE can always compress them out completely from it.
1
4
Attestation roots still use huge RSA keys which is unfortunate but ends up not mattering due to pre-shared dictionary DEFLATE. Intermediates are P-384 and the batch keys are P-256 along with the hardware-backed keys we generate in the HSM ourselves. Tricky to make it work well.
3