frostfs-api-go/pkg/token/session.go
Alex Vanin dfcc21242b [#144] sdk/token: Define session token structure
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:45:11 +03:00

35 lines
517 B
Go

package token
import (
"github.com/google/uuid"
)
type SessionToken struct {
id uuid.UUID
pubKey []byte
}
func CreateSessionToken(id, pub []byte) (*SessionToken, error) {
var tokenID uuid.UUID
err := tokenID.UnmarshalBinary(id)
if err != nil {
return nil, err
}
key := make([]byte, len(pub))
copy(key[:], pub)
return &SessionToken{
id: tokenID,
pubKey: key,
}, nil
}
func (s SessionToken) SessionKey() []byte {
return s.pubKey
}
func (s SessionToken) ID() []byte {
return s.id[:]
}