Signature typedef
Verifiers (e.g. Kritis implementations) MUST verify signatures with respect to the trust anchors defined in policy (e.g. a Kritis policy).
Typically this means that the verifier has been configured with a map from
public_key_id
to public key material (and any required parameters, e.g.
signing algorithm). In particular, verification implementations MUST NOT
treat the signature public_key_id
as anything more than a key lookup hint.
The public_key_id
DOES NOT validate or authenticate a public key; it only
provides a mechanism for quickly selecting a public key ALREADY CONFIGURED
on the verifier through a trusted channel. Verification implementations MUST
reject signatures in any of the following circumstances: * The
public_key_id
is not recognized by the verifier. * The public key that
public_key_id
refers to does not verify the signature with respect to the
payload. The signature
contents SHOULD NOT be "attached" (where the
payload is included with the serialized signature
bytes). Verifiers MUST
ignore any "attached" payload and only verify signatures with respect to
explicitly provided payload (e.g. a payload
field on the proto message
that holds this Signature, or the canonical serialization of the proto
message that holds this signature).
Implementation
typedef Signature = $Signature;