mirror of https://github.com/poanetwork/quorum.git
24 lines
637 B
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)
|
|
}
|