-
Notifications
You must be signed in to change notification settings - Fork 34
Open
Labels
multi-verifiermulti-verifier supportmulti-verifier support
Description
This issue tracks the implementation of Lead verifier's "Veraison client plugin".
The plugin must satisfy the following interface:
type IComponentVerifierClientHandler interface {
plugin.IPluggable
AppraiseComponentEvidence(
evidence []byte,
mediaType string,
nonce []byte,
clientCfg []byte,
) (*ear.Appraisal, error)
}The plugin will implement a Veraison challenge-response API client in RP mode using the veraison/apiclient package.
The plugin is tasked with the following actions:
- Receive component evidence and the nonce from the CE handler.
- Get the verifier's public key and C-R session endpoint by querying the well-known interface.
- Initiate a challenge-response session in RP mode with the configured verifier, supplying the component evidence and nonce.
- Obtain an EAR from the verifier.
- Verify the signature of the EAR.
- Return the EAR appraisal to the CE Handler.
Configuration
The clientCfg parameter supplied by the CE handler contains the relevant connectivity and trust settings as a serialised JSON byte string.
When de-serialised, the JSON object contains the following keys:
"url"(mandatory): the verifier’s discovery URL"ca-certs"(optional): one or more files containing the trust anchors used to authenticate server certificates"insecure"(optional): whether certificate verification can skip the trust-related settings
Example:
{
"url": "https://downstream-verifier.example:8443/.well-known/veraison/verification",
"ca-certs": [ "/path/to/ca1.pem", "/path/to/ca2.pem" ]
}Metadata
Metadata
Assignees
Labels
multi-verifiermulti-verifier supportmulti-verifier support
Type
Projects
Status
In review