5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-06 02:41:28 +08:00
wails/v3/examples/plugins/hashes/plugin.go
2024-04-14 21:41:33 +10:00

59 lines
1.0 KiB
Go

package hashes
import (
"crypto/md5"
"crypto/sha1"
"crypto/sha256"
"encoding/hex"
"github.com/wailsapp/wails/v3/pkg/application"
"io/fs"
)
// ---------------- Plugin Setup ----------------
type Plugin struct{}
func NewPlugin() *Plugin {
return &Plugin{}
}
func (r *Plugin) Shutdown() error { return nil }
func (r *Plugin) Name() string {
return "Hashes Plugin"
}
func (r *Plugin) Init(api application.PluginAPI) error {
return nil
}
func (r *Plugin) CallableByJS() []string {
return []string{
"Generate",
}
}
func (r *Plugin) Assets() fs.FS {
return nil
}
// ---------------- Plugin Methods ----------------
type Hashes struct {
MD5 string `json:"md5"`
SHA1 string `json:"sha1"`
SHA256 string `json:"sha256"`
}
func (r *Plugin) Generate(s string) Hashes {
md5Hash := md5.Sum([]byte(s))
sha1Hash := sha1.Sum([]byte(s))
sha256Hash := sha256.Sum256([]byte(s))
return Hashes{
MD5: hex.EncodeToString(md5Hash[:]),
SHA1: hex.EncodeToString(sha1Hash[:]),
SHA256: hex.EncodeToString(sha256Hash[:]),
}
}