github.com/line/ostracon@v1.0.10-0.20230328032236-7f20145f065d/crypto/vrf/vrf_libsodium_test.go (about)

     1  //go:build libsodium
     2  // +build libsodium
     3  
     4  package vrf
     5  
     6  import (
     7  	"crypto/ed25519"
     8  	"testing"
     9  
    10  	"github.com/stretchr/testify/require"
    11  
    12  	libsodium "github.com/line/ostracon/crypto/vrf/internal/vrf"
    13  )
    14  
    15  func TestProveAndVerifyLibsodiumByCryptoEd25519(t *testing.T) {
    16  	secret := [SEEDBYTES]byte{}
    17  	privateKey := ed25519.NewKeyFromSeed(secret[:])
    18  	publicKey := privateKey.Public().(ed25519.PublicKey)
    19  
    20  	verified, err := proveAndVerify(t, privateKey, publicKey)
    21  	//
    22  	// verified when using crypto ed25519
    23  	//
    24  	require.NoError(t, err)
    25  	require.True(t, verified)
    26  }
    27  
    28  func TestProveAndVerifyLibsodiumByLibsodiumEd25519(t *testing.T) {
    29  	secret := [SEEDBYTES]byte{}
    30  	publicKey, privateKey := libsodium.KeyPairFromSeed(&secret)
    31  
    32  	verified, err := proveAndVerify(t, privateKey[:], publicKey[:])
    33  	//
    34  	// verified when using libsodium ed25519
    35  	//
    36  	require.NoError(t, err)
    37  	require.True(t, verified)
    38  }