quorum/plugin/online_verifier.go

24 lines
637 B
Go

package plugin
// Implementation of plugin.Verifier that uses remote server to verify plugins.
type OnlineVerifier struct {
centralClient *CentralClient
}
func NewOnlineVerifier(centralClient *CentralClient) *OnlineVerifier {
return &OnlineVerifier{centralClient: centralClient}
}
// Verify a plugin giving its name from Central
func (v *OnlineVerifier) VerifySignature(definition *PluginDefinition, checksum string) error {
sig, err := v.centralClient.PluginSignature(definition)
if err != nil {
return err
}
pubkey, err := v.centralClient.PublicKey()
if err != nil {
return err
}
return verify(sig, pubkey, checksum)
}