The Edwards-curve Digital Signature Algorithm (ECDSA) is used to create a digital signature using an enhancement of the Schnorr signature with Twisted Edwards curves. Overall it is faster that many other digital signature methods, and is strong for security. One example of ECDSA is Ed25519, and which is based on Curve 25519. It generates a 64-byte signature value of (R,s), and has 32-byte values for the public and the private keys.
Example :
package main import ( "crypto/ed25519" "crypto/rand" "encoding/hex" "fmt" "log" ) func main() { publickey, privatekey, err := ed25519.GenerateKey(rand.Reader) if err != nil { fmt.Println("cannot generate ecdsa keys") log.Fatal(err) } msg := "hello" signedBytes := ed25519.Sign(privatekey, []byte(msg)) fmt.Println("Signed Message :", hex.EncodeToString(signedBytes)) if !ed25519.Verify(publickey, []byte(msg), signedBytes) { fmt.Println("verifying error") log.Fatal(err) } fmt.Println("Message verified Successfully") }
Output:
Signed Message : 1f9f46a244c30f3dadc75f4407c8e8de0aac294d2cf734376af6a13866effe622986ec4e20c29a3cfffe2d92d9e8acb64744f416aedb200eb55a79572263db09
Message verified Successfully
Comments
Post a Comment