Files
Olares/cli/pkg/web5/crypto/keymanager_test.go

52 lines
1.2 KiB
Go

package crypto_test
import (
"testing"
"github.com/beclab/Olares/cli/pkg/web5/crypto"
"github.com/beclab/Olares/cli/pkg/web5/crypto/dsa"
"github.com/alecthomas/assert/v2"
)
func TestGeneratePrivateKey(t *testing.T) {
keyManager := crypto.NewLocalKeyManager()
keyID, err := keyManager.GeneratePrivateKey(dsa.AlgorithmIDSECP256K1)
assert.NoError(t, err)
assert.True(t, keyID != "", "keyID is empty")
}
func TestGetPublicKey(t *testing.T) {
keyManager := crypto.NewLocalKeyManager()
keyID, err := keyManager.GeneratePrivateKey(dsa.AlgorithmIDSECP256K1)
assert.NoError(t, err)
publicKey, err := keyManager.GetPublicKey(keyID)
assert.NoError(t, err)
thumbprint, err := publicKey.ComputeThumbprint()
assert.NoError(t, err)
assert.Equal[string](t, keyID, thumbprint, "unexpected keyID")
}
func TestSign(t *testing.T) {
keyManager := crypto.NewLocalKeyManager()
keyID, err := keyManager.GeneratePrivateKey(dsa.AlgorithmIDSECP256K1)
assert.NoError(t, err)
payload := []byte("hello world")
signature, err := keyManager.Sign(keyID, payload)
assert.NoError(t, err)
if signature == nil {
t.Errorf("signature is nil")
}
assert.True(t, signature != nil, "signature is nil")
}