Skip to content

Commit

Permalink
feat: support crypto/ed25519
Browse files Browse the repository at this point in the history
Co-authored-by: Miguel Victoria Villaquiran <Villaquiranm@users.noreply.github.com>
  • Loading branch information
omarsy and Villaquiranm committed Mar 30, 2024
1 parent 6760265 commit 786e2ea
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 0 deletions.
8 changes: 8 additions & 0 deletions gnovm/stdlibs/crypto/ed25519/ed25519.gno
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package ed25519

// Verify returns true if the signature is valid for the message and public key.
func Verify(publicKey []byte, message []byte, signature []byte) bool {
return verify(publicKey, message, signature)
}

func verify(publicKey []byte, message []byte, signature []byte) bool // injected
9 changes: 9 additions & 0 deletions gnovm/stdlibs/crypto/ed25519/ed25519.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package ed25519

import (
"crypto/ed25519"
)

func X_verify(publicKey []byte, message []byte, signature []byte) bool {
return ed25519.Verify(publicKey, message, signature)
}
16 changes: 16 additions & 0 deletions gnovm/stdlibs/crypto/ed25519/ed25519_test.gno
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package ed25519

import (
"crypto/ed25519"
"encoding/hex"
"std"
"testing"
)

func TestED25519Verify(t *testing.T) {
publicKey, _ := hex.DecodeString("0D853FA898A07EB91F618BB3E8B738B0E45BE9B3053799A2C42F8204F5FA3505")
signature, _ := hex.DecodeString("2B39638983858715AD2FA059665ADFE267936B8F20C4DA01E9650958E0CA65C0255C75164360F468087FE8385140E48EE3471E332472A50AEE599F9D0EADD106")
if !ed25519.Verify(publicKey, []byte("hello gno.land"), signature) {
t.Error("verify failed")
}
}
36 changes: 36 additions & 0 deletions gnovm/stdlibs/native.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 786e2ea

Please sign in to comment.