Skip to content

Quicr/privacypass-cpp

Repository files navigation

privacypass-cpp

CI License C++23

Platform Status
Linux Linux
macOS macOS
Windows Windows

C++ implementation of the Privacy Pass protocol (RFC9576, RFC9577, RFC9578) with optional MOQ extension (draft-ietf-moq-privacy-pass-auth-02) support.

Features

  • Blind RSA (Token Type 0x0002) and VOPRF P-384 (Token Type 0x0001)
  • Token challenges, requests, responses, and redemption
  • Optional MOQ extension (draft-ietf-moq-privacy-pass-auth-02)
  • Modern C++23 with std::expected error handling
  • Pluggable crypto backend: OpenSSL 3.x or BoringSSL (details)

Building

Requires CMake 3.20+, C++23 compiler, and OpenSSL (1.1 or 3.x) or BoringSSL. See docs/crypto_backend.md for multi-backend setup.

cmake -B build
cmake --build build --parallel

Or with just:

just build          # Build with MOQ extension (default)
just moq=OFF build  # Build without MOQ extension

Testing

just test                # Test with system OpenSSL
just test-openssl3       # Test with OpenSSL 3.x
just test-openssl11      # Test with OpenSSL 1.1
just test-boringssl      # Test with BoringSSL
just test-all-crypto     # Test all three variants

Custom OpenSSL paths:

just test-openssl11 dir=/path/to/openssl-1.1
just test-openssl3 dir=/path/to/openssl-3.0

License

BSD-2-Clause. See LICENSE.

About

C++ Implementation of Privacy Pass Standards

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages