forked from TrueCloudLab/frostfs-api-go
session: implement function for receiving session public key bytes
After recent changes PrivateToken cannot directly return public key bytes. In order to provide this ability, this commit implements a function over PrivateToken interface.
This commit is contained in:
parent
af28735ca6
commit
291d512840
3 changed files with 49 additions and 1 deletions
|
@ -3,6 +3,7 @@ package session
|
|||
import (
|
||||
"testing"
|
||||
|
||||
crypto "github.com/nspcc-dev/neofs-crypto"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
|
@ -49,3 +50,27 @@ func TestPrivateTokenKey_SetTokenID(t *testing.T) {
|
|||
|
||||
require.Equal(t, tokenID, s.token)
|
||||
}
|
||||
|
||||
func TestPublicSessionToken(t *testing.T) {
|
||||
var err error
|
||||
|
||||
// nil PrivateToken
|
||||
_, err = PublicSessionToken(nil)
|
||||
require.EqualError(t, err, ErrNilPrivateToken.Error())
|
||||
|
||||
// empty private key
|
||||
var pToken PrivateToken = new(pToken)
|
||||
_, err = PublicSessionToken(pToken)
|
||||
require.EqualError(t, err, crypto.ErrEmptyPrivateKey.Error())
|
||||
|
||||
// correct PrivateToken
|
||||
pToken, err = NewPrivateToken(0)
|
||||
require.NoError(t, err)
|
||||
|
||||
key := pToken.PrivateKey()
|
||||
require.NotNil(t, key)
|
||||
|
||||
res, err := PublicSessionToken(pToken)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, res, crypto.MarshalPublicKey(&key.PublicKey))
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue