INNER CODE UNIT · Go
verify
aead/minisign · minisign.go:191
func verify(publicKey PublicKey, message, signature []byte, isHashed bool) bool {
var s Signature
if err := s.UnmarshalText(signature); err != nil {
return false
}
if s.KeyID != publicKey.ID() {
return false
}
if s.Algorithm == HashEdDSA && !isHashed {
h := blake2b.Sum512(message)
message = h[:]
}
if !ed25519.Verify(ed25519.PublicKey(publicKey.bytes[:]), message, s.Signature[:]) {
return false
}
globalMessage := append(s.Signature[:], []byte(s.TrustedComment)...)
return ed25519.Verify(ed25519.PublicKey(publicKey.bytes[:]), globalMessage, s.CommentSignature[:])
}