Expand description
A pass’s grant binding (DIRECTORY-089 R2): the signed statement, separate from the pass, of the grant log, the revision and the complete ancestry each of the pass’s rights was decided from.
The binding is its own compact JWS, typed BINDING_TYPE, signed by the
same issuer key as the pass and published beside it in the token answer
only when the product asks for it. The pass’s bytes are never changed:
the binding names the pass by the SHA-256 of its exact compact bytes, its
issuer, holder, audience and lifetime, so it cannot be moved to another
pass. A product maps each right to its dependency, keys its cache by
(grant log, grant id), and admits only once its grant stream stands at
BindingClaims::revision or later. A revocation names one grant; its
descendants are resolved here, from the paths.
A product that requires bindings refuses a pass without one by
BINDING_REQUIRED and never assumes a revision of zero; a product
that does not ask keeps verifying passes exactly as before.
Structs§
- Binding
Claims - A binding’s signed claims.
- Bound
- What a binding must name of its pass: the pass’s digest, issuer, holder, audience and lifetime, and exactly the grants its rights rest on.
- Dependency
- One right’s grant and its complete ancestry.
- Verified
Binding - A binding whose signature, pass, issuer, holder, audience, lifetime, grant log and ancestry were checked against one verified pass.
Constants§
- BINDING_
ANCESTRY - A dependency’s ancestry is missing, repeated or not the pass’s rights.
- BINDING_
LOG_ MISMATCH - The binding names another grant log or reset epoch.
- BINDING_
MISMATCH - The binding names another pass, issuer, holder, audience or lifetime.
- BINDING_
REQUEST - The token request form value asking for a binding of this version.
- BINDING_
REQUIRED - A binding is required and absent.
- BINDING_
TYPE - The JWS
typa binding is signed under, never a pass’sJWT. - BINDING_
UNSUPPORTED - The binding is of a version this crate does not read.
- BINDING_
VERSION - The binding version this crate reads and the issuer produces.
Functions§
- pass_
digest - The SHA-256, lowercase hex, of a pass’s exact compact bytes.
- required
- The binding a revocation-enabled product requires, or its absence by name.