Функция ed25519.Verify
Функция ed25519.Verify проверяет,
является ли цифровая подпись действительной для
указанного сообщения и открытого ключа. Она возвращает
true, если подпись верна, и
false в противном случае. Первым параметром
функция принимает открытый ключ в виде байтового среза,
вторым параметром - сообщение для проверки,
третьим - подпись, которую нужно проверить.
Синтаксис
ed25519.Verify(publicKey, message, signature)
Пример
Давайте создадим ключевую пару, подпишем сообщение и проверим подпись:
package main
import (
"crypto/ed25519"
"fmt"
)
func main() {
// Generate key pair
publicKey, privateKey, err := ed25519.GenerateKey(nil)
if err != nil {
panic(err)
}
// Message to sign
message := []byte("Hello, Ed25519!")
// Sign the message
signature := ed25519.Sign(privateKey, message)
// Verify the signature
res := ed25519.Verify(publicKey, message, signature)
fmt.Println(res)
}
Результат выполнения кода:
true
Пример
Давайте проверим подпись с изменённым сообщением:
package main
import (
"crypto/ed25519"
"fmt"
)
func main() {
// Generate key pair
publicKey, privateKey, err := ed25519.GenerateKey(nil)
if err != nil {
panic(err)
}
// Original message
message := []byte("Hello, Ed25519!")
signature := ed25519.Sign(privateKey, message)
// Tampered message
tamperedMessage := []byte("Hello, Ed25519?")
res := ed25519.Verify(publicKey, tamperedMessage, signature)
fmt.Println(res)
}
Результат выполнения кода:
false
Пример
Давайте проверим подпись с неправильным открытым ключом:
package main
import (
"crypto/ed25519"
"fmt"
)
func main() {
// Generate two different key pairs
publicKey1, privateKey1, err := ed25519.GenerateKey(nil)
if err != nil {
panic(err)
}
publicKey2, _, err := ed25519.GenerateKey(nil)
if err != nil {
panic(err)
}
// Sign message with first private key
message := []byte("Hello, Ed25519!")
signature := ed25519.Sign(privateKey1, message)
// Verify with second public key
res := ed25519.Verify(publicKey2, message, signature)
fmt.Println(res)
}
Результат выполнения кода:
false
Смотрите также
-
функцию
ed25519.GenerateKey,
которая генерирует новую ключевую пару Ed25519 -
функцию
ed25519.Sign,
которая создаёт цифровую подпись Ed25519 -
функцию
ecdsa.Verify,
которая проверяет подпись ECDSA -
функцию
rsa.VerifyPKCS1v15,
которая проверяет подпись RSA PKCS1v15