ocaml-dpop: new library for RFC 9449 DPoP proof-of-possession
Splits DPoP out of the ocaml-oauth client so authorization servers and
resource servers can verify proofs without pulling in the full HTTP
client stack. The library is self-contained on crypto-ec (P-256,
Ed25519), digestif, and base64.
Supports the two algorithms that actually matter for DPoP:
- ES256 (ECDSA P-256 + SHA-256), mandatory per RFC 9449 §5.1.
- EdDSA (Ed25519), RFC 8037.
Canonical JWK thumbprints follow RFC 7638 (lexicographic keys, no
whitespace). Signatures use JOSE P-1363 format (r||s) for ECDSA and
raw 64-byte Ed25519. jti defaults to 128 random bits base64url-encoded.
13 tests cover JWK ordering, thumbprint stability, RFC 9449 §4.3 ath
vector, proof segment layout, header/payload claims, and round-trip
signature verification for both algorithms.