Merge session and service packages into session package

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
This commit is contained in:
Alex Vanin 2020-08-20 13:32:02 +03:00 committed by Stanislav Bogatyrev
parent 933bcf300f
commit 07f25bd012
12 changed files with 2122 additions and 2741 deletions

View file

@ -1,689 +0,0 @@
package service
import (
"fmt"
"github.com/nspcc-dev/neofs-api-go/v2/acl"
"github.com/nspcc-dev/neofs-api-go/v2/refs"
service "github.com/nspcc-dev/neofs-api-go/v2/service/grpc"
)
func VersionToGRPCMessage(v *Version) *service.Version {
if v == nil {
return nil
}
msg := new(service.Version)
msg.SetMajor(v.GetMajor())
msg.SetMinor(v.GetMinor())
return msg
}
func VersionFromGRPCMessage(m *service.Version) *Version {
if m == nil {
return nil
}
v := new(Version)
v.SetMajor(m.GetMajor())
v.SetMinor(m.GetMinor())
return v
}
func XHeaderToGRPCMessage(x *XHeader) *service.XHeader {
if x == nil {
return nil
}
m := new(service.XHeader)
m.SetKey(x.GetKey())
m.SetValue(x.GetValue())
return m
}
func XHeaderFromGRPCMessage(m *service.XHeader) *XHeader {
if m == nil {
return nil
}
x := new(XHeader)
x.SetKey(m.GetKey())
x.SetValue(m.GetValue())
return x
}
func SessionTokenToGRPCMessage(t *SessionToken) *service.SessionToken {
if t == nil {
return nil
}
m := new(service.SessionToken)
m.SetBody(
SessionTokenBodyToGRPCMessage(t.GetBody()),
)
m.SetSignature(
SignatureToGRPCMessage(t.GetSignature()),
)
return m
}
func SessionTokenFromGRPCMessage(m *service.SessionToken) *SessionToken {
if m == nil {
return nil
}
t := new(SessionToken)
t.SetBody(
SessionTokenBodyFromGRPCMessage(m.GetBody()),
)
t.SetSignature(
SignatureFromGRPCMessage(m.GetSignature()),
)
return t
}
func BearerTokenToGRPCMessage(t *BearerToken) *service.BearerToken {
if t == nil {
return nil
}
m := new(service.BearerToken)
m.SetBody(
BearerTokenBodyToGRPCMessage(t.GetBody()),
)
m.SetSignature(
SignatureToGRPCMessage(t.GetSignature()),
)
return m
}
func BearerTokenFromGRPCMessage(m *service.BearerToken) *BearerToken {
if m == nil {
return nil
}
bt := new(BearerToken)
bt.SetBody(
BearerTokenBodyFromGRPCMessage(m.GetBody()),
)
bt.SetSignature(
SignatureFromGRPCMessage(m.GetSignature()),
)
return bt
}
func RequestVerificationHeaderToGRPCMessage(r *RequestVerificationHeader) *service.RequestVerificationHeader {
if r == nil {
return nil
}
m := new(service.RequestVerificationHeader)
m.SetBodySignature(
SignatureToGRPCMessage(r.GetBodySignature()),
)
m.SetMetaSignature(
SignatureToGRPCMessage(r.GetMetaSignature()),
)
m.SetOriginSignature(
SignatureToGRPCMessage(r.GetOriginSignature()),
)
m.SetOrigin(
RequestVerificationHeaderToGRPCMessage(r.GetOrigin()),
)
return m
}
func RequestVerificationHeaderFromGRPCMessage(m *service.RequestVerificationHeader) *RequestVerificationHeader {
if m == nil {
return nil
}
r := new(RequestVerificationHeader)
r.SetBodySignature(
SignatureFromGRPCMessage(m.GetBodySignature()),
)
r.SetMetaSignature(
SignatureFromGRPCMessage(m.GetMetaSignature()),
)
r.SetOriginSignature(
SignatureFromGRPCMessage(m.GetOriginSignature()),
)
r.SetOrigin(
RequestVerificationHeaderFromGRPCMessage(m.GetOrigin()),
)
return r
}
func RequestMetaHeaderToGRPCMessage(r *RequestMetaHeader) *service.RequestMetaHeader {
if r == nil {
return nil
}
m := new(service.RequestMetaHeader)
m.SetTtl(r.GetTTL())
m.SetEpoch(r.GetEpoch())
m.SetVersion(
VersionToGRPCMessage(r.GetVersion()),
)
m.SetSessionToken(
SessionTokenToGRPCMessage(r.GetSessionToken()),
)
m.SetBearerToken(
BearerTokenToGRPCMessage(r.GetBearerToken()),
)
m.SetOrigin(
RequestMetaHeaderToGRPCMessage(r.GetOrigin()),
)
xHeaders := r.GetXHeaders()
xHdrMsg := make([]*service.XHeader, 0, len(xHeaders))
for i := range xHeaders {
xHdrMsg = append(xHdrMsg, XHeaderToGRPCMessage(xHeaders[i]))
}
m.SetXHeaders(xHdrMsg)
return m
}
func RequestMetaHeaderFromGRPCMessage(m *service.RequestMetaHeader) *RequestMetaHeader {
if m == nil {
return nil
}
r := new(RequestMetaHeader)
r.SetTTL(m.GetTtl())
r.SetEpoch(m.GetEpoch())
r.SetVersion(
VersionFromGRPCMessage(m.GetVersion()),
)
r.SetSessionToken(
SessionTokenFromGRPCMessage(m.GetSessionToken()),
)
r.SetBearerToken(
BearerTokenFromGRPCMessage(m.GetBearerToken()),
)
r.SetOrigin(
RequestMetaHeaderFromGRPCMessage(m.GetOrigin()),
)
xHdrMsg := m.GetXHeaders()
xHeaders := make([]*XHeader, 0, len(xHdrMsg))
for i := range xHdrMsg {
xHeaders = append(xHeaders, XHeaderFromGRPCMessage(xHdrMsg[i]))
}
r.SetXHeaders(xHeaders)
return r
}
func SignatureToGRPCMessage(s *Signature) *service.Signature {
if s == nil {
return nil
}
m := new(service.Signature)
m.SetKey(s.GetKey())
m.SetSign(s.GetSign())
return m
}
func SignatureFromGRPCMessage(m *service.Signature) *Signature {
if m == nil {
return nil
}
s := new(Signature)
s.SetKey(m.GetKey())
s.SetSign(m.GetSign())
return s
}
func TokenLifetimeToGRPCMessage(tl *TokenLifetime) *service.TokenLifetime {
if tl == nil {
return nil
}
m := new(service.TokenLifetime)
m.SetExp(tl.GetExp())
m.SetNbf(tl.GetNbf())
m.SetIat(tl.GetIat())
return m
}
func TokenLifetimeFromGRPCMessage(m *service.TokenLifetime) *TokenLifetime {
if m == nil {
return nil
}
tl := new(TokenLifetime)
tl.SetExp(m.GetExp())
tl.SetNbf(m.GetNbf())
tl.SetIat(m.GetIat())
return tl
}
func BearerTokenBodyToGRPCMessage(v *BearerTokenBody) *service.BearerToken_Body {
if v == nil {
return nil
}
m := new(service.BearerToken_Body)
m.SetEaclTable(
acl.TableToGRPCMessage(v.GetEACL()),
)
m.SetOwnerId(
refs.OwnerIDToGRPCMessage(v.GetOwnerID()),
)
m.SetLifetime(
TokenLifetimeToGRPCMessage(v.GetLifetime()),
)
return m
}
func BearerTokenBodyFromGRPCMessage(m *service.BearerToken_Body) *BearerTokenBody {
if m == nil {
return nil
}
bt := new(BearerTokenBody)
bt.SetEACL(
acl.TableFromGRPCMessage(m.GetEaclTable()),
)
bt.SetOwnerID(
refs.OwnerIDFromGRPCMessage(m.GetOwnerId()),
)
bt.SetLifetime(
TokenLifetimeFromGRPCMessage(m.GetLifetime()),
)
return bt
}
func RequestHeadersToGRPC(
src interface {
GetMetaHeader() *RequestMetaHeader
GetVerificationHeader() *RequestVerificationHeader
},
dst interface {
SetMetaHeader(*service.RequestMetaHeader)
SetVerifyHeader(*service.RequestVerificationHeader)
},
) {
dst.SetMetaHeader(
RequestMetaHeaderToGRPCMessage(src.GetMetaHeader()),
)
dst.SetVerifyHeader(
RequestVerificationHeaderToGRPCMessage(src.GetVerificationHeader()),
)
}
func RequestHeadersFromGRPC(
src interface {
GetMetaHeader() *service.RequestMetaHeader
GetVerifyHeader() *service.RequestVerificationHeader
},
dst interface {
SetMetaHeader(*RequestMetaHeader)
SetVerificationHeader(*RequestVerificationHeader)
},
) {
dst.SetMetaHeader(
RequestMetaHeaderFromGRPCMessage(src.GetMetaHeader()),
)
dst.SetVerificationHeader(
RequestVerificationHeaderFromGRPCMessage(src.GetVerifyHeader()),
)
}
func ResponseVerificationHeaderToGRPCMessage(r *ResponseVerificationHeader) *service.ResponseVerificationHeader {
if r == nil {
return nil
}
m := new(service.ResponseVerificationHeader)
m.SetBodySignature(
SignatureToGRPCMessage(r.GetBodySignature()),
)
m.SetMetaSignature(
SignatureToGRPCMessage(r.GetMetaSignature()),
)
m.SetOriginSignature(
SignatureToGRPCMessage(r.GetOriginSignature()),
)
m.SetOrigin(
ResponseVerificationHeaderToGRPCMessage(r.GetOrigin()),
)
return m
}
func ResponseVerificationHeaderFromGRPCMessage(m *service.ResponseVerificationHeader) *ResponseVerificationHeader {
if m == nil {
return nil
}
r := new(ResponseVerificationHeader)
r.SetBodySignature(
SignatureFromGRPCMessage(m.GetBodySignature()),
)
r.SetMetaSignature(
SignatureFromGRPCMessage(m.GetMetaSignature()),
)
r.SetOriginSignature(
SignatureFromGRPCMessage(m.GetOriginSignature()),
)
r.SetOrigin(
ResponseVerificationHeaderFromGRPCMessage(m.GetOrigin()),
)
return r
}
func ResponseMetaHeaderToGRPCMessage(r *ResponseMetaHeader) *service.ResponseMetaHeader {
if r == nil {
return nil
}
m := new(service.ResponseMetaHeader)
m.SetTtl(r.GetTTL())
m.SetEpoch(r.GetEpoch())
m.SetVersion(
VersionToGRPCMessage(r.GetVersion()),
)
m.SetOrigin(
ResponseMetaHeaderToGRPCMessage(r.GetOrigin()),
)
xHeaders := r.GetXHeaders()
xHdrMsg := make([]*service.XHeader, 0, len(xHeaders))
for i := range xHeaders {
xHdrMsg = append(xHdrMsg, XHeaderToGRPCMessage(xHeaders[i]))
}
m.SetXHeaders(xHdrMsg)
return m
}
func ResponseMetaHeaderFromGRPCMessage(m *service.ResponseMetaHeader) *ResponseMetaHeader {
if m == nil {
return nil
}
r := new(ResponseMetaHeader)
r.SetTTL(m.GetTtl())
r.SetEpoch(m.GetEpoch())
r.SetVersion(
VersionFromGRPCMessage(m.GetVersion()),
)
r.SetOrigin(
ResponseMetaHeaderFromGRPCMessage(m.GetOrigin()),
)
xHdrMsg := m.GetXHeaders()
xHeaders := make([]*XHeader, 0, len(xHdrMsg))
for i := range xHdrMsg {
xHeaders = append(xHeaders, XHeaderFromGRPCMessage(xHdrMsg[i]))
}
r.SetXHeaders(xHeaders)
return r
}
func ResponseHeadersToGRPC(
src interface {
GetMetaHeader() *ResponseMetaHeader
GetVerificationHeader() *ResponseVerificationHeader
},
dst interface {
SetMetaHeader(*service.ResponseMetaHeader)
SetVerifyHeader(*service.ResponseVerificationHeader)
},
) {
dst.SetMetaHeader(
ResponseMetaHeaderToGRPCMessage(src.GetMetaHeader()),
)
dst.SetVerifyHeader(
ResponseVerificationHeaderToGRPCMessage(src.GetVerificationHeader()),
)
}
func ResponseHeadersFromGRPC(
src interface {
GetMetaHeader() *service.ResponseMetaHeader
GetVerifyHeader() *service.ResponseVerificationHeader
},
dst interface {
SetMetaHeader(*ResponseMetaHeader)
SetVerificationHeader(*ResponseVerificationHeader)
},
) {
dst.SetMetaHeader(
ResponseMetaHeaderFromGRPCMessage(src.GetMetaHeader()),
)
dst.SetVerificationHeader(
ResponseVerificationHeaderFromGRPCMessage(src.GetVerifyHeader()),
)
}
func ObjectSessionVerbToGRPCField(v ObjectSessionVerb) service.ObjectSessionContext_Verb {
switch v {
case ObjectVerbPut:
return service.ObjectSessionContext_PUT
case ObjectVerbGet:
return service.ObjectSessionContext_GET
case ObjectVerbHead:
return service.ObjectSessionContext_HEAD
case ObjectVerbSearch:
return service.ObjectSessionContext_SEARCH
case ObjectVerbDelete:
return service.ObjectSessionContext_DELETE
case ObjectVerbRange:
return service.ObjectSessionContext_RANGE
case ObjectVerbRangeHash:
return service.ObjectSessionContext_RANGEHASH
default:
return service.ObjectSessionContext_VERB_UNSPECIFIED
}
}
func ObjectSessionVerbFromGRPCField(v service.ObjectSessionContext_Verb) ObjectSessionVerb {
switch v {
case service.ObjectSessionContext_PUT:
return ObjectVerbPut
case service.ObjectSessionContext_GET:
return ObjectVerbGet
case service.ObjectSessionContext_HEAD:
return ObjectVerbHead
case service.ObjectSessionContext_SEARCH:
return ObjectVerbSearch
case service.ObjectSessionContext_DELETE:
return ObjectVerbDelete
case service.ObjectSessionContext_RANGE:
return ObjectVerbRange
case service.ObjectSessionContext_RANGEHASH:
return ObjectVerbRangeHash
default:
return ObjectVerbUnknown
}
}
func ObjectSessionContextToGRPCMessage(c *ObjectSessionContext) *service.ObjectSessionContext {
if c == nil {
return nil
}
m := new(service.ObjectSessionContext)
m.SetVerb(
ObjectSessionVerbToGRPCField(c.GetVerb()),
)
m.SetAddress(
refs.AddressToGRPCMessage(c.GetAddress()),
)
return m
}
func ObjectSessionContextFromGRPCMessage(m *service.ObjectSessionContext) *ObjectSessionContext {
if m == nil {
return nil
}
c := new(ObjectSessionContext)
c.SetVerb(
ObjectSessionVerbFromGRPCField(m.GetVerb()),
)
c.SetAddress(
refs.AddressFromGRPCMessage(m.GetAddress()),
)
return c
}
func SessionTokenBodyToGRPCMessage(t *SessionTokenBody) *service.SessionToken_Body {
if t == nil {
return nil
}
m := new(service.SessionToken_Body)
switch v := t.GetContext(); t := v.(type) {
case nil:
case *ObjectSessionContext:
m.SetObjectServiceContext(
ObjectSessionContextToGRPCMessage(t),
)
default:
panic(fmt.Sprintf("unknown session context %T", t))
}
m.SetId(t.GetID())
m.SetOwnerId(
refs.OwnerIDToGRPCMessage(t.GetOwnerID()),
)
m.SetLifetime(
TokenLifetimeToGRPCMessage(t.GetLifetime()),
)
m.SetSessionKey(t.GetSessionKey())
return m
}
func SessionTokenBodyFromGRPCMessage(m *service.SessionToken_Body) *SessionTokenBody {
if m == nil {
return nil
}
t := new(SessionTokenBody)
switch v := m.GetContext().(type) {
case nil:
case *service.SessionToken_Body_Object:
t.SetContext(
ObjectSessionContextFromGRPCMessage(v.Object),
)
default:
panic(fmt.Sprintf("unknown session context %T", v))
}
t.SetID(m.GetId())
t.SetOwnerID(
refs.OwnerIDFromGRPCMessage(m.GetOwnerId()),
)
t.SetLifetime(
TokenLifetimeFromGRPCMessage(m.GetLifetime()),
)
t.SetSessionKey(m.GetSessionKey())
return t
}

View file

@ -1,71 +0,0 @@
package service
// SetKey sets public key in a binary format.
func (m *Signature) SetKey(v []byte) {
if m != nil {
m.Key = v
}
}
// SetSign sets signature.
func (m *Signature) SetSign(v []byte) {
if m != nil {
m.Sign = v
}
}
// SetBodySignature sets signature of the request body.
func (m *RequestVerificationHeader) SetBodySignature(v *Signature) {
if m != nil {
m.BodySignature = v
}
}
// SetMetaSignature sets signature of the request meta.
func (m *RequestVerificationHeader) SetMetaSignature(v *Signature) {
if m != nil {
m.MetaSignature = v
}
}
// SetOriginSignature sets signature of the origin verification header of the request.
func (m *RequestVerificationHeader) SetOriginSignature(v *Signature) {
if m != nil {
m.OriginSignature = v
}
}
// SetOrigin sets origin verification header of the request.
func (m *RequestVerificationHeader) SetOrigin(v *RequestVerificationHeader) {
if m != nil {
m.Origin = v
}
}
// SetBodySignature sets signature of the response body.
func (m *ResponseVerificationHeader) SetBodySignature(v *Signature) {
if m != nil {
m.BodySignature = v
}
}
// SetMetaSignature sets signature of the response meta.
func (m *ResponseVerificationHeader) SetMetaSignature(v *Signature) {
if m != nil {
m.MetaSignature = v
}
}
// SetOriginSignature sets signature of the origin verification header of the response.
func (m *ResponseVerificationHeader) SetOriginSignature(v *Signature) {
if m != nil {
m.OriginSignature = v
}
}
// SetOrigin sets origin verification header of the response.
func (m *ResponseVerificationHeader) SetOrigin(v *ResponseVerificationHeader) {
if m != nil {
m.Origin = v
}
}

View file

@ -1,3 +0,0 @@
package service
var APIVersion = Version{Major: 2, Minor: 0}

View file

@ -1,752 +0,0 @@
package service
import (
"github.com/nspcc-dev/neofs-api-go/util/proto"
)
const (
signatureKeyField = 1
signatureValueField = 2
versionMajorField = 1
versionMinorField = 2
xheaderKeyField = 1
xheaderValueField = 2
lifetimeExpirationField = 1
lifetimeNotValidBeforeField = 2
lifetimeIssuedAtField = 3
objectCtxVerbField = 1
objectCtxAddressField = 2
sessionTokenBodyIDField = 1
sessionTokenBodyOwnerField = 2
sessionTokenBodyLifetimeField = 3
sessionTokenBodyKeyField = 4
sessionTokenBodyObjectCtxField = 5
sessionTokenBodyField = 1
sessionTokenSignatureField = 2
bearerTokenBodyACLField = 1
bearerTokenBodyOwnerField = 2
bearerTokenBodyLifetimeField = 3
bearerTokenBodyField = 1
bearerTokenSignatureField = 2
reqMetaHeaderVersionField = 1
reqMetaHeaderEpochField = 2
reqMetaHeaderTTLField = 3
reqMetaHeaderXHeadersField = 4
reqMetaHeaderSessionTokenField = 5
reqMetaHeaderBearerTokenField = 6
reqMetaHeaderOriginField = 7
reqVerifHeaderBodySignatureField = 1
reqVerifHeaderMetaSignatureField = 2
reqVerifHeaderOriginSignatureField = 3
reqVerifHeaderOriginField = 4
respMetaHeaderVersionField = 1
respMetaHeaderEpochField = 2
respMetaHeaderTTLField = 3
respMetaHeaderXHeadersField = 4
respMetaHeaderOriginField = 5
respVerifHeaderBodySignatureField = 1
respVerifHeaderMetaSignatureField = 2
respVerifHeaderOriginSignatureField = 3
respVerifHeaderOriginField = 4
)
func (s *Signature) StableMarshal(buf []byte) ([]byte, error) {
if s == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, s.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.BytesMarshal(signatureKeyField, buf[offset:], s.key)
if err != nil {
return nil, err
}
offset += n
_, err = proto.BytesMarshal(signatureValueField, buf[offset:], s.sign)
if err != nil {
return nil, err
}
return buf, nil
}
func (s *Signature) StableSize() (size int) {
if s == nil {
return 0
}
size += proto.BytesSize(signatureKeyField, s.key)
size += proto.BytesSize(signatureValueField, s.sign)
return size
}
func (v *Version) StableMarshal(buf []byte) ([]byte, error) {
if v == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, v.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.UInt32Marshal(versionMajorField, buf[offset:], v.major)
if err != nil {
return nil, err
}
offset += n
_, err = proto.UInt32Marshal(versionMinorField, buf[offset:], v.minor)
if err != nil {
return nil, err
}
return buf, nil
}
func (v *Version) StableSize() (size int) {
if v == nil {
return 0
}
size += proto.UInt32Size(versionMajorField, v.major)
size += proto.UInt32Size(versionMinorField, v.minor)
return size
}
func (x *XHeader) StableMarshal(buf []byte) ([]byte, error) {
if x == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, x.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.StringMarshal(xheaderKeyField, buf[offset:], x.key)
if err != nil {
return nil, err
}
offset += n
_, err = proto.StringMarshal(xheaderValueField, buf[offset:], x.val)
if err != nil {
return nil, err
}
return buf, nil
}
func (x *XHeader) StableSize() (size int) {
if x == nil {
return 0
}
size += proto.StringSize(xheaderKeyField, x.key)
size += proto.StringSize(xheaderValueField, x.val)
return size
}
func (l *TokenLifetime) StableMarshal(buf []byte) ([]byte, error) {
if l == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, l.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.UInt64Marshal(lifetimeExpirationField, buf[offset:], l.exp)
if err != nil {
return nil, err
}
offset += n
n, err = proto.UInt64Marshal(lifetimeNotValidBeforeField, buf[offset:], l.nbf)
if err != nil {
return nil, err
}
offset += n
_, err = proto.UInt64Marshal(lifetimeIssuedAtField, buf[offset:], l.iat)
if err != nil {
return nil, err
}
return buf, nil
}
func (l *TokenLifetime) StableSize() (size int) {
if l == nil {
return 0
}
size += proto.UInt64Size(lifetimeExpirationField, l.exp)
size += proto.UInt64Size(lifetimeNotValidBeforeField, l.nbf)
size += proto.UInt64Size(lifetimeIssuedAtField, l.iat)
return size
}
func (c *ObjectSessionContext) StableMarshal(buf []byte) ([]byte, error) {
if c == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, c.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.EnumMarshal(objectCtxVerbField, buf[offset:], int32(c.verb))
if err != nil {
return nil, err
}
offset += n
_, err = proto.NestedStructureMarshal(objectCtxAddressField, buf[offset:], c.addr)
if err != nil {
return nil, err
}
return buf, nil
}
func (c *ObjectSessionContext) StableSize() (size int) {
if c == nil {
return 0
}
size += proto.EnumSize(objectCtxVerbField, int32(c.verb))
size += proto.NestedStructureSize(objectCtxAddressField, c.addr)
return size
}
func (t *SessionTokenBody) StableMarshal(buf []byte) ([]byte, error) {
if t == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, t.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.BytesMarshal(sessionTokenBodyIDField, buf[offset:], t.id)
if err != nil {
return nil, err
}
offset += n
n, err = proto.NestedStructureMarshal(sessionTokenBodyOwnerField, buf[offset:], t.ownerID)
if err != nil {
return nil, err
}
offset += n
n, err = proto.NestedStructureMarshal(sessionTokenBodyLifetimeField, buf[offset:], t.lifetime)
if err != nil {
return nil, err
}
offset += n
n, err = proto.BytesMarshal(sessionTokenBodyKeyField, buf[offset:], t.sessionKey)
if err != nil {
return nil, err
}
offset += n
if t.ctx != nil {
switch v := t.ctx.(type) {
case *ObjectSessionContext:
_, err = proto.NestedStructureMarshal(sessionTokenBodyObjectCtxField, buf[offset:], v)
if err != nil {
return nil, err
}
default:
panic("cannot marshal unknown session token context")
}
}
return buf, nil
}
func (t *SessionTokenBody) StableSize() (size int) {
if t == nil {
return 0
}
size += proto.BytesSize(sessionTokenBodyIDField, t.id)
size += proto.NestedStructureSize(sessionTokenBodyOwnerField, t.ownerID)
size += proto.NestedStructureSize(sessionTokenBodyLifetimeField, t.lifetime)
size += proto.BytesSize(sessionTokenBodyKeyField, t.sessionKey)
if t.ctx != nil {
switch v := t.ctx.(type) {
case *ObjectSessionContext:
size += proto.NestedStructureSize(sessionTokenBodyObjectCtxField, v)
default:
panic("cannot marshal unknown session token context")
}
}
return size
}
func (t *SessionToken) StableMarshal(buf []byte) ([]byte, error) {
if t == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, t.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.NestedStructureMarshal(sessionTokenBodyField, buf[offset:], t.body)
if err != nil {
return nil, err
}
offset += n
_, err = proto.NestedStructureMarshal(sessionTokenSignatureField, buf[offset:], t.sig)
if err != nil {
return nil, err
}
return buf, nil
}
func (t *SessionToken) StableSize() (size int) {
if t == nil {
return 0
}
size += proto.NestedStructureSize(sessionTokenBodyField, t.body)
size += proto.NestedStructureSize(sessionTokenSignatureField, t.sig)
return size
}
func (bt *BearerTokenBody) StableMarshal(buf []byte) ([]byte, error) {
if bt == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, bt.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.NestedStructureMarshal(bearerTokenBodyACLField, buf[offset:], bt.eacl)
if err != nil {
return nil, err
}
offset += n
n, err = proto.NestedStructureMarshal(bearerTokenBodyOwnerField, buf[offset:], bt.ownerID)
if err != nil {
return nil, err
}
offset += n
_, err = proto.NestedStructureMarshal(bearerTokenBodyLifetimeField, buf[offset:], bt.lifetime)
if err != nil {
return nil, err
}
return buf, nil
}
func (bt *BearerTokenBody) StableSize() (size int) {
if bt == nil {
return 0
}
size += proto.NestedStructureSize(bearerTokenBodyACLField, bt.eacl)
size += proto.NestedStructureSize(bearerTokenBodyOwnerField, bt.ownerID)
size += proto.NestedStructureSize(bearerTokenBodyLifetimeField, bt.lifetime)
return size
}
func (bt *BearerToken) StableMarshal(buf []byte) ([]byte, error) {
if bt == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, bt.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.NestedStructureMarshal(bearerTokenBodyField, buf[offset:], bt.body)
if err != nil {
return nil, err
}
offset += n
_, err = proto.NestedStructureMarshal(bearerTokenSignatureField, buf[offset:], bt.sig)
if err != nil {
return nil, err
}
return buf, nil
}
func (bt *BearerToken) StableSize() (size int) {
if bt == nil {
return 0
}
size += proto.NestedStructureSize(bearerTokenBodyField, bt.body)
size += proto.NestedStructureSize(bearerTokenSignatureField, bt.sig)
return size
}
func (r *RequestMetaHeader) StableMarshal(buf []byte) ([]byte, error) {
if r == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, r.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.NestedStructureMarshal(reqMetaHeaderVersionField, buf[offset:], r.version)
if err != nil {
return nil, err
}
offset += n
n, err = proto.UInt64Marshal(reqMetaHeaderEpochField, buf[offset:], r.epoch)
if err != nil {
return nil, err
}
offset += n
n, err = proto.UInt32Marshal(reqMetaHeaderTTLField, buf[offset:], r.ttl)
if err != nil {
return nil, err
}
offset += n
for i := range r.xHeaders {
n, err = proto.NestedStructureMarshal(reqMetaHeaderXHeadersField, buf[offset:], r.xHeaders[i])
if err != nil {
return nil, err
}
offset += n
}
n, err = proto.NestedStructureMarshal(reqMetaHeaderSessionTokenField, buf[offset:], r.sessionToken)
if err != nil {
return nil, err
}
offset += n
n, err = proto.NestedStructureMarshal(reqMetaHeaderBearerTokenField, buf[offset:], r.bearerToken)
if err != nil {
return nil, err
}
offset += n
_, err = proto.NestedStructureMarshal(reqMetaHeaderOriginField, buf[offset:], r.origin)
if err != nil {
return nil, err
}
return buf, nil
}
func (r *RequestMetaHeader) StableSize() (size int) {
if r == nil {
return 0
}
if r.version != nil {
size += proto.NestedStructureSize(reqMetaHeaderVersionField, r.version)
}
size += proto.UInt64Size(reqMetaHeaderEpochField, r.epoch)
size += proto.UInt32Size(reqMetaHeaderTTLField, r.ttl)
for i := range r.xHeaders {
size += proto.NestedStructureSize(reqMetaHeaderXHeadersField, r.xHeaders[i])
}
size += proto.NestedStructureSize(reqMetaHeaderSessionTokenField, r.sessionToken)
size += proto.NestedStructureSize(reqMetaHeaderBearerTokenField, r.bearerToken)
size += proto.NestedStructureSize(reqMetaHeaderOriginField, r.origin)
return size
}
func (r *RequestVerificationHeader) StableMarshal(buf []byte) ([]byte, error) {
if r == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, r.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.NestedStructureMarshal(reqVerifHeaderBodySignatureField, buf[offset:], r.bodySig)
if err != nil {
return nil, err
}
offset += n
n, err = proto.NestedStructureMarshal(reqVerifHeaderMetaSignatureField, buf[offset:], r.metaSig)
if err != nil {
return nil, err
}
offset += n
n, err = proto.NestedStructureMarshal(reqVerifHeaderOriginSignatureField, buf[offset:], r.originSig)
if err != nil {
return nil, err
}
offset += n
_, err = proto.NestedStructureMarshal(reqVerifHeaderOriginField, buf[offset:], r.origin)
if err != nil {
return nil, err
}
return buf, nil
}
func (r *RequestVerificationHeader) StableSize() (size int) {
if r == nil {
return 0
}
size += proto.NestedStructureSize(reqVerifHeaderBodySignatureField, r.bodySig)
size += proto.NestedStructureSize(reqVerifHeaderMetaSignatureField, r.metaSig)
size += proto.NestedStructureSize(reqVerifHeaderOriginSignatureField, r.originSig)
size += proto.NestedStructureSize(reqVerifHeaderOriginField, r.origin)
return size
}
func (r *ResponseMetaHeader) StableMarshal(buf []byte) ([]byte, error) {
if r == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, r.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.NestedStructureMarshal(respMetaHeaderVersionField, buf[offset:], r.version)
if err != nil {
return nil, err
}
offset += n
n, err = proto.UInt64Marshal(respMetaHeaderEpochField, buf[offset:], r.epoch)
if err != nil {
return nil, err
}
offset += n
n, err = proto.UInt32Marshal(respMetaHeaderTTLField, buf[offset:], r.ttl)
if err != nil {
return nil, err
}
offset += n
for i := range r.xHeaders {
n, err = proto.NestedStructureMarshal(respMetaHeaderXHeadersField, buf[offset:], r.xHeaders[i])
if err != nil {
return nil, err
}
offset += n
}
_, err = proto.NestedStructureMarshal(respMetaHeaderOriginField, buf[offset:], r.origin)
if err != nil {
return nil, err
}
return buf, nil
}
func (r *ResponseMetaHeader) StableSize() (size int) {
if r == nil {
return 0
}
if r.version != nil {
size += proto.NestedStructureSize(respMetaHeaderVersionField, r.version)
}
size += proto.UInt64Size(respMetaHeaderEpochField, r.epoch)
size += proto.UInt32Size(respMetaHeaderTTLField, r.ttl)
for i := range r.xHeaders {
size += proto.NestedStructureSize(respMetaHeaderXHeadersField, r.xHeaders[i])
}
size += proto.NestedStructureSize(respMetaHeaderOriginField, r.origin)
return size
}
func (r *ResponseVerificationHeader) StableMarshal(buf []byte) ([]byte, error) {
if r == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, r.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.NestedStructureMarshal(respVerifHeaderBodySignatureField, buf[offset:], r.bodySig)
if err != nil {
return nil, err
}
offset += n
n, err = proto.NestedStructureMarshal(respVerifHeaderMetaSignatureField, buf[offset:], r.metaSig)
if err != nil {
return nil, err
}
offset += n
n, err = proto.NestedStructureMarshal(respVerifHeaderOriginSignatureField, buf[offset:], r.originSig)
if err != nil {
return nil, err
}
offset += n
_, err = proto.NestedStructureMarshal(respVerifHeaderOriginField, buf[offset:], r.origin)
if err != nil {
return nil, err
}
return buf, nil
}
func (r *ResponseVerificationHeader) StableSize() (size int) {
if r == nil {
return 0
}
size += proto.NestedStructureSize(respVerifHeaderBodySignatureField, r.bodySig)
size += proto.NestedStructureSize(respVerifHeaderMetaSignatureField, r.metaSig)
size += proto.NestedStructureSize(respVerifHeaderOriginSignatureField, r.originSig)
size += proto.NestedStructureSize(respVerifHeaderOriginField, r.origin)
return size
}

View file

@ -1,401 +0,0 @@
package service_test
import (
"fmt"
"testing"
"github.com/nspcc-dev/neofs-api-go/v2/acl"
"github.com/nspcc-dev/neofs-api-go/v2/refs"
"github.com/nspcc-dev/neofs-api-go/v2/service"
grpc "github.com/nspcc-dev/neofs-api-go/v2/service/grpc"
"github.com/stretchr/testify/require"
)
func TestSignature_StableMarshal(t *testing.T) {
signatureFrom := generateSignature("Public Key", "Signature")
transport := new(grpc.Signature)
t.Run("non empty", func(t *testing.T) {
wire, err := signatureFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
signatureTo := service.SignatureFromGRPCMessage(transport)
require.Equal(t, signatureFrom, signatureTo)
})
}
func TestVersion_StableMarshal(t *testing.T) {
versionFrom := generateVersion(2, 0)
transport := new(grpc.Version)
t.Run("non empty", func(t *testing.T) {
wire, err := versionFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
versionTo := service.VersionFromGRPCMessage(transport)
require.Equal(t, versionFrom, versionTo)
})
}
func TestXHeader_StableMarshal(t *testing.T) {
xheaderFrom := generateXHeader("X-Header-Key", "X-Header-Value")
transport := new(grpc.XHeader)
t.Run("non empty", func(t *testing.T) {
wire, err := xheaderFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
xheaderTo := service.XHeaderFromGRPCMessage(transport)
require.Equal(t, xheaderFrom, xheaderTo)
})
}
func TestTokenLifetime_StableMarshal(t *testing.T) {
lifetimeFrom := generateLifetime(10, 20, 30)
transport := new(grpc.TokenLifetime)
t.Run("non empty", func(t *testing.T) {
wire, err := lifetimeFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
lifetimeTo := service.TokenLifetimeFromGRPCMessage(transport)
require.Equal(t, lifetimeFrom, lifetimeTo)
})
}
func TestObjectSessionContext_StableMarshal(t *testing.T) {
objectCtxFrom := generateObjectCtx("Object ID")
transport := new(grpc.ObjectSessionContext)
t.Run("non empty", func(t *testing.T) {
wire, err := objectCtxFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
objectCtxTo := service.ObjectSessionContextFromGRPCMessage(transport)
require.Equal(t, objectCtxFrom, objectCtxTo)
})
}
func TestSessionTokenBody_StableMarshal(t *testing.T) {
sessionTokenBodyFrom := generateSessionTokenBody("Session Token Body")
transport := new(grpc.SessionToken_Body)
t.Run("non empty", func(t *testing.T) {
wire, err := sessionTokenBodyFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
sessionTokenBodyTo := service.SessionTokenBodyFromGRPCMessage(transport)
require.Equal(t, sessionTokenBodyFrom, sessionTokenBodyTo)
})
}
func TestSessionToken_StableMarshal(t *testing.T) {
sessionTokenFrom := generateSessionToken("Session Token")
transport := new(grpc.SessionToken)
t.Run("non empty", func(t *testing.T) {
wire, err := sessionTokenFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
sessionTokenTo := service.SessionTokenFromGRPCMessage(transport)
require.Equal(t, sessionTokenFrom, sessionTokenTo)
})
}
func TestBearerTokenBody_StableMarshal(t *testing.T) {
bearerTokenBodyFrom := generateBearerTokenBody("Bearer Token Body")
transport := new(grpc.BearerToken_Body)
t.Run("non empty", func(t *testing.T) {
wire, err := bearerTokenBodyFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
bearerTokenBodyTo := service.BearerTokenBodyFromGRPCMessage(transport)
require.Equal(t, bearerTokenBodyFrom, bearerTokenBodyTo)
})
}
func TestBearerToken_StableMarshal(t *testing.T) {
bearerTokenFrom := generateBearerToken("Bearer Token")
transport := new(grpc.BearerToken)
t.Run("non empty", func(t *testing.T) {
wire, err := bearerTokenFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
bearerTokenTo := service.BearerTokenFromGRPCMessage(transport)
require.Equal(t, bearerTokenFrom, bearerTokenTo)
})
}
func TestRequestMetaHeader_StableMarshal(t *testing.T) {
metaHeaderOrigin := generateRequestMetaHeader(10, "Bearer One", "Session One")
metaHeaderFrom := generateRequestMetaHeader(20, "Bearer Two", "Session Two")
metaHeaderFrom.SetOrigin(metaHeaderOrigin)
transport := new(grpc.RequestMetaHeader)
t.Run("non empty", func(t *testing.T) {
wire, err := metaHeaderFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
metaHeaderTo := service.RequestMetaHeaderFromGRPCMessage(transport)
require.Equal(t, metaHeaderFrom, metaHeaderTo)
})
}
func TestRequestVerificationHeader_StableMarshal(t *testing.T) {
verifHeaderOrigin := generateRequestVerificationHeader("Key", "Inside")
verifHeaderFrom := generateRequestVerificationHeader("Value", "Outside")
verifHeaderFrom.SetOrigin(verifHeaderOrigin)
transport := new(grpc.RequestVerificationHeader)
t.Run("non empty", func(t *testing.T) {
wire, err := verifHeaderFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
verifHeaderTo := service.RequestVerificationHeaderFromGRPCMessage(transport)
require.Equal(t, verifHeaderFrom, verifHeaderTo)
})
}
func TestResponseMetaHeader_StableMarshal(t *testing.T) {
metaHeaderOrigin := generateResponseMetaHeader(10)
metaHeaderFrom := generateResponseMetaHeader(20)
metaHeaderFrom.SetOrigin(metaHeaderOrigin)
transport := new(grpc.ResponseMetaHeader)
t.Run("non empty", func(t *testing.T) {
wire, err := metaHeaderFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
metaHeaderTo := service.ResponseMetaHeaderFromGRPCMessage(transport)
require.Equal(t, metaHeaderFrom, metaHeaderTo)
})
}
func TestResponseVerificationHeader_StableMarshal(t *testing.T) {
verifHeaderOrigin := generateResponseVerificationHeader("Key", "Inside")
verifHeaderFrom := generateResponseVerificationHeader("Value", "Outside")
verifHeaderFrom.SetOrigin(verifHeaderOrigin)
transport := new(grpc.ResponseVerificationHeader)
t.Run("non empty", func(t *testing.T) {
wire, err := verifHeaderFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
verifHeaderTo := service.ResponseVerificationHeaderFromGRPCMessage(transport)
require.Equal(t, verifHeaderFrom, verifHeaderTo)
})
}
func generateSignature(k, v string) *service.Signature {
sig := new(service.Signature)
sig.SetKey([]byte(k))
sig.SetSign([]byte(v))
return sig
}
func generateVersion(maj, min uint32) *service.Version {
version := new(service.Version)
version.SetMajor(maj)
version.SetMinor(min)
return version
}
func generateXHeader(k, v string) *service.XHeader {
xheader := new(service.XHeader)
xheader.SetKey(k)
xheader.SetValue(v)
return xheader
}
func generateLifetime(exp, nbf, iat uint64) *service.TokenLifetime {
lifetime := new(service.TokenLifetime)
lifetime.SetExp(exp)
lifetime.SetNbf(nbf)
lifetime.SetIat(iat)
return lifetime
}
func generateObjectCtx(id string) *service.ObjectSessionContext {
objectCtx := new(service.ObjectSessionContext)
objectCtx.SetVerb(service.ObjectVerbPut)
cid := new(refs.ContainerID)
cid.SetValue([]byte("ContainerID"))
oid := new(refs.ObjectID)
oid.SetValue([]byte(id))
addr := new(refs.Address)
addr.SetContainerID(cid)
addr.SetObjectID(oid)
objectCtx.SetAddress(addr)
return objectCtx
}
func generateEACL(n int, k, v string) *acl.Table {
target := new(acl.TargetInfo)
target.SetTarget(acl.TargetUser)
keys := make([][]byte, n)
for i := 0; i < n; i++ {
s := fmt.Sprintf("Public Key %d", i+1)
keys[i] = []byte(s)
}
filter := new(acl.HeaderFilter)
filter.SetHeaderType(acl.HeaderTypeObject)
filter.SetMatchType(acl.MatchTypeStringEqual)
filter.SetName(k)
filter.SetValue(v)
record := new(acl.Record)
record.SetOperation(acl.OperationHead)
record.SetAction(acl.ActionDeny)
record.SetTargets([]*acl.TargetInfo{target})
record.SetFilters([]*acl.HeaderFilter{filter})
table := new(acl.Table)
cid := new(refs.ContainerID)
cid.SetValue([]byte("Container ID"))
table.SetContainerID(cid)
table.SetRecords([]*acl.Record{record})
return table
}
func generateSessionTokenBody(id string) *service.SessionTokenBody {
owner := new(refs.OwnerID)
owner.SetValue([]byte("Owner ID"))
tokenBody := new(service.SessionTokenBody)
tokenBody.SetID([]byte(id))
tokenBody.SetOwnerID(owner)
tokenBody.SetSessionKey([]byte(id))
tokenBody.SetLifetime(generateLifetime(1, 2, 3))
tokenBody.SetContext(generateObjectCtx(id))
return tokenBody
}
func generateSessionToken(id string) *service.SessionToken {
sessionToken := new(service.SessionToken)
sessionToken.SetBody(generateSessionTokenBody(id))
sessionToken.SetSignature(generateSignature("id", id))
return sessionToken
}
func generateBearerTokenBody(id string) *service.BearerTokenBody {
owner := new(refs.OwnerID)
owner.SetValue([]byte(id))
tokenBody := new(service.BearerTokenBody)
tokenBody.SetOwnerID(owner)
tokenBody.SetLifetime(generateLifetime(1, 2, 3))
tokenBody.SetEACL(generateEACL(10, "id", id))
return tokenBody
}
func generateBearerToken(id string) *service.BearerToken {
bearerToken := new(service.BearerToken)
bearerToken.SetBody(generateBearerTokenBody(id))
bearerToken.SetSignature(generateSignature("id", id))
return bearerToken
}
func generateRequestMetaHeader(n int, b, s string) *service.RequestMetaHeader {
reqMetaHeader := new(service.RequestMetaHeader)
reqMetaHeader.SetVersion(generateVersion(2, 0))
reqMetaHeader.SetEpoch(uint64(n))
reqMetaHeader.SetTTL(uint32(n))
reqMetaHeader.SetXHeaders([]*service.XHeader{
generateXHeader("key-one", "val-one"),
generateXHeader("key-two", "val-two"),
})
reqMetaHeader.SetBearerToken(generateBearerToken(b))
reqMetaHeader.SetSessionToken(generateSessionToken(s))
return reqMetaHeader
}
func generateRequestVerificationHeader(k, v string) *service.RequestVerificationHeader {
reqVerifHeader := new(service.RequestVerificationHeader)
reqVerifHeader.SetBodySignature(generateSignature(k+"body", v+"body"))
reqVerifHeader.SetMetaSignature(generateSignature(k+"meta", v+"meta"))
reqVerifHeader.SetOriginSignature(generateSignature(k+"orig", v+"orig"))
return reqVerifHeader
}
func generateResponseMetaHeader(n int) *service.ResponseMetaHeader {
respMetaHeader := new(service.ResponseMetaHeader)
respMetaHeader.SetVersion(generateVersion(2, 0))
respMetaHeader.SetEpoch(uint64(n))
respMetaHeader.SetTTL(uint32(n))
respMetaHeader.SetXHeaders([]*service.XHeader{
generateXHeader("key-one", "val-one"),
generateXHeader("key-two", "val-two"),
})
return respMetaHeader
}
func generateResponseVerificationHeader(k, v string) *service.ResponseVerificationHeader {
respVerifHeader := new(service.ResponseVerificationHeader)
respVerifHeader.SetBodySignature(generateSignature(k+"body", v+"body"))
respVerifHeader.SetMetaSignature(generateSignature(k+"meta", v+"meta"))
respVerifHeader.SetOriginSignature(generateSignature(k+"orig", v+"orig"))
return respVerifHeader
}

View file

@ -1,721 +0,0 @@
package service
import (
"github.com/nspcc-dev/neofs-api-go/v2/acl"
"github.com/nspcc-dev/neofs-api-go/v2/refs"
)
type Signature struct {
key, sign []byte
}
type Version struct {
major, minor uint32
}
type XHeader struct {
key, val string
}
type TokenLifetime struct {
exp, nbf, iat uint64
}
type ObjectSessionVerb uint32
type ObjectSessionContext struct {
verb ObjectSessionVerb
addr *refs.Address
}
type SessionTokenContext interface {
sessionTokenContext()
}
type SessionTokenBody struct {
id []byte
ownerID *refs.OwnerID
lifetime *TokenLifetime
sessionKey []byte
ctx SessionTokenContext
}
type SessionToken struct {
body *SessionTokenBody
sig *Signature
}
type BearerTokenBody struct {
eacl *acl.Table
ownerID *refs.OwnerID
lifetime *TokenLifetime
}
type BearerToken struct {
body *BearerTokenBody
sig *Signature
}
type RequestVerificationHeader struct {
bodySig, metaSig, originSig *Signature
origin *RequestVerificationHeader
}
type RequestMetaHeader struct {
version *Version
ttl uint32
epoch uint64
xHeaders []*XHeader
sessionToken *SessionToken
bearerToken *BearerToken
origin *RequestMetaHeader
}
type ResponseVerificationHeader struct {
bodySig, metaSig, originSig *Signature
origin *ResponseVerificationHeader
}
type ResponseMetaHeader struct {
version *Version
ttl uint32
epoch uint64
xHeaders []*XHeader
origin *ResponseMetaHeader
}
const (
ObjectVerbUnknown ObjectSessionVerb = iota
ObjectVerbPut
ObjectVerbGet
ObjectVerbHead
ObjectVerbSearch
ObjectVerbDelete
ObjectVerbRange
ObjectVerbRangeHash
)
func (s *Signature) GetKey() []byte {
if s != nil {
return s.key
}
return nil
}
func (s *Signature) SetKey(v []byte) {
if s != nil {
s.key = v
}
}
func (s *Signature) GetSign() []byte {
if s != nil {
return s.sign
}
return nil
}
func (s *Signature) SetSign(v []byte) {
if s != nil {
s.sign = v
}
}
func (v *Version) GetMajor() uint32 {
if v != nil {
return v.major
}
return 0
}
func (v *Version) SetMajor(val uint32) {
if v != nil {
v.major = val
}
}
func (v *Version) GetMinor() uint32 {
if v != nil {
return v.minor
}
return 0
}
func (v *Version) SetMinor(val uint32) {
if v != nil {
v.minor = val
}
}
func (x *XHeader) GetKey() string {
if x != nil {
return x.key
}
return ""
}
func (x *XHeader) SetKey(v string) {
if x != nil {
x.key = v
}
}
func (x *XHeader) GetValue() string {
if x != nil {
return x.val
}
return ""
}
func (x *XHeader) SetValue(v string) {
if x != nil {
x.val = v
}
}
func (r *RequestVerificationHeader) GetBodySignature() *Signature {
if r != nil {
return r.bodySig
}
return nil
}
func (r *RequestVerificationHeader) SetBodySignature(v *Signature) {
if r != nil {
r.bodySig = v
}
}
func (r *RequestVerificationHeader) GetMetaSignature() *Signature {
if r != nil {
return r.metaSig
}
return nil
}
func (r *RequestVerificationHeader) SetMetaSignature(v *Signature) {
if r != nil {
r.metaSig = v
}
}
func (r *RequestVerificationHeader) GetOriginSignature() *Signature {
if r != nil {
return r.originSig
}
return nil
}
func (r *RequestVerificationHeader) SetOriginSignature(v *Signature) {
if r != nil {
r.originSig = v
}
}
func (r *RequestVerificationHeader) GetOrigin() *RequestVerificationHeader {
if r != nil {
return r.origin
}
return nil
}
func (r *RequestVerificationHeader) SetOrigin(v *RequestVerificationHeader) {
if r != nil {
r.origin = v
}
}
func (r *RequestMetaHeader) GetVersion() *Version {
if r != nil {
return r.version
}
return nil
}
func (r *RequestMetaHeader) SetVersion(v *Version) {
if r != nil {
r.version = v
}
}
func (r *RequestMetaHeader) GetTTL() uint32 {
if r != nil {
return r.ttl
}
return 0
}
func (r *RequestMetaHeader) SetTTL(v uint32) {
if r != nil {
r.ttl = v
}
}
func (r *RequestMetaHeader) GetEpoch() uint64 {
if r != nil {
return r.epoch
}
return 0
}
func (r *RequestMetaHeader) SetEpoch(v uint64) {
if r != nil {
r.epoch = v
}
}
func (r *RequestMetaHeader) GetXHeaders() []*XHeader {
if r != nil {
return r.xHeaders
}
return nil
}
func (r *RequestMetaHeader) SetXHeaders(v []*XHeader) {
if r != nil {
r.xHeaders = v
}
}
func (r *RequestMetaHeader) GetSessionToken() *SessionToken {
if r != nil {
return r.sessionToken
}
return nil
}
func (r *RequestMetaHeader) SetSessionToken(v *SessionToken) {
if r != nil {
r.sessionToken = v
}
}
func (r *RequestMetaHeader) GetBearerToken() *BearerToken {
if r != nil {
return r.bearerToken
}
return nil
}
func (r *RequestMetaHeader) SetBearerToken(v *BearerToken) {
if r != nil {
r.bearerToken = v
}
}
func (r *RequestMetaHeader) GetOrigin() *RequestMetaHeader {
if r != nil {
return r.origin
}
return nil
}
func (r *RequestMetaHeader) SetOrigin(v *RequestMetaHeader) {
if r != nil {
r.origin = v
}
}
func (l *TokenLifetime) GetExp() uint64 {
if l != nil {
return l.exp
}
return 0
}
func (l *TokenLifetime) SetExp(v uint64) {
if l != nil {
l.exp = v
}
}
func (l *TokenLifetime) GetNbf() uint64 {
if l != nil {
return l.nbf
}
return 0
}
func (l *TokenLifetime) SetNbf(v uint64) {
if l != nil {
l.nbf = v
}
}
func (l *TokenLifetime) GetIat() uint64 {
if l != nil {
return l.iat
}
return 0
}
func (l *TokenLifetime) SetIat(v uint64) {
if l != nil {
l.iat = v
}
}
func (bt *BearerTokenBody) GetEACL() *acl.Table {
if bt != nil {
return bt.eacl
}
return nil
}
func (bt *BearerTokenBody) SetEACL(v *acl.Table) {
if bt != nil {
bt.eacl = v
}
}
func (bt *BearerTokenBody) GetOwnerID() *refs.OwnerID {
if bt != nil {
return bt.ownerID
}
return nil
}
func (bt *BearerTokenBody) SetOwnerID(v *refs.OwnerID) {
if bt != nil {
bt.ownerID = v
}
}
func (bt *BearerTokenBody) GetLifetime() *TokenLifetime {
if bt != nil {
return bt.lifetime
}
return nil
}
func (bt *BearerTokenBody) SetLifetime(v *TokenLifetime) {
if bt != nil {
bt.lifetime = v
}
}
func (bt *BearerToken) GetBody() *BearerTokenBody {
if bt != nil {
return bt.body
}
return nil
}
func (bt *BearerToken) SetBody(v *BearerTokenBody) {
if bt != nil {
bt.body = v
}
}
func (bt *BearerToken) GetSignature() *Signature {
if bt != nil {
return bt.sig
}
return nil
}
func (bt *BearerToken) SetSignature(v *Signature) {
if bt != nil {
bt.sig = v
}
}
func (r *ResponseVerificationHeader) GetBodySignature() *Signature {
if r != nil {
return r.bodySig
}
return nil
}
func (r *ResponseVerificationHeader) SetBodySignature(v *Signature) {
if r != nil {
r.bodySig = v
}
}
func (r *ResponseVerificationHeader) GetMetaSignature() *Signature {
if r != nil {
return r.metaSig
}
return nil
}
func (r *ResponseVerificationHeader) SetMetaSignature(v *Signature) {
if r != nil {
r.metaSig = v
}
}
func (r *ResponseVerificationHeader) GetOriginSignature() *Signature {
if r != nil {
return r.originSig
}
return nil
}
func (r *ResponseVerificationHeader) SetOriginSignature(v *Signature) {
if r != nil {
r.originSig = v
}
}
func (r *ResponseVerificationHeader) GetOrigin() *ResponseVerificationHeader {
if r != nil {
return r.origin
}
return nil
}
func (r *ResponseVerificationHeader) SetOrigin(v *ResponseVerificationHeader) {
if r != nil {
r.origin = v
}
}
func (r *ResponseMetaHeader) GetVersion() *Version {
if r != nil {
return r.version
}
return nil
}
func (r *ResponseMetaHeader) SetVersion(v *Version) {
if r != nil {
r.version = v
}
}
func (r *ResponseMetaHeader) GetTTL() uint32 {
if r != nil {
return r.ttl
}
return 0
}
func (r *ResponseMetaHeader) SetTTL(v uint32) {
if r != nil {
r.ttl = v
}
}
func (r *ResponseMetaHeader) GetEpoch() uint64 {
if r != nil {
return r.epoch
}
return 0
}
func (r *ResponseMetaHeader) SetEpoch(v uint64) {
if r != nil {
r.epoch = v
}
}
func (r *ResponseMetaHeader) GetXHeaders() []*XHeader {
if r != nil {
return r.xHeaders
}
return nil
}
func (r *ResponseMetaHeader) SetXHeaders(v []*XHeader) {
if r != nil {
r.xHeaders = v
}
}
func (r *ResponseMetaHeader) GetOrigin() *ResponseMetaHeader {
if r != nil {
return r.origin
}
return nil
}
func (r *ResponseMetaHeader) SetOrigin(v *ResponseMetaHeader) {
if r != nil {
r.origin = v
}
}
func (c *ObjectSessionContext) sessionTokenContext() {}
func (c *ObjectSessionContext) GetVerb() ObjectSessionVerb {
if c != nil {
return c.verb
}
return ObjectVerbUnknown
}
func (c *ObjectSessionContext) SetVerb(v ObjectSessionVerb) {
if c != nil {
c.verb = v
}
}
func (c *ObjectSessionContext) GetAddress() *refs.Address {
if c != nil {
return c.addr
}
return nil
}
func (c *ObjectSessionContext) SetAddress(v *refs.Address) {
if c != nil {
c.addr = v
}
}
func (t *SessionTokenBody) GetID() []byte {
if t != nil {
return t.id
}
return nil
}
func (t *SessionTokenBody) SetID(v []byte) {
if t != nil {
t.id = v
}
}
func (t *SessionTokenBody) GetOwnerID() *refs.OwnerID {
if t != nil {
return t.ownerID
}
return nil
}
func (t *SessionTokenBody) SetOwnerID(v *refs.OwnerID) {
if t != nil {
t.ownerID = v
}
}
func (t *SessionTokenBody) GetLifetime() *TokenLifetime {
if t != nil {
return t.lifetime
}
return nil
}
func (t *SessionTokenBody) SetLifetime(v *TokenLifetime) {
if t != nil {
t.lifetime = v
}
}
func (t *SessionTokenBody) GetSessionKey() []byte {
if t != nil {
return t.sessionKey
}
return nil
}
func (t *SessionTokenBody) SetSessionKey(v []byte) {
if t != nil {
t.sessionKey = v
}
}
func (t *SessionTokenBody) GetContext() SessionTokenContext {
if t != nil {
return t.ctx
}
return nil
}
func (t *SessionTokenBody) SetContext(v SessionTokenContext) {
if t != nil {
t.ctx = v
}
}
func (t *SessionToken) GetBody() *SessionTokenBody {
if t != nil {
return t.body
}
return nil
}
func (t *SessionToken) SetBody(v *SessionTokenBody) {
if t != nil {
t.body = v
}
}
func (t *SessionToken) GetSignature() *Signature {
if t != nil {
return t.sig
}
return nil
}
func (t *SessionToken) SetSignature(v *Signature) {
if t != nil {
t.sig = v
}
}

View file

@ -1,8 +1,10 @@
package session
import (
"fmt"
"github.com/nspcc-dev/neofs-api-go/v2/acl"
"github.com/nspcc-dev/neofs-api-go/v2/refs"
"github.com/nspcc-dev/neofs-api-go/v2/service"
session "github.com/nspcc-dev/neofs-api-go/v2/session/grpc"
)
@ -17,9 +19,7 @@ func CreateRequestBodyToGRPCMessage(c *CreateRequestBody) *session.CreateRequest
refs.OwnerIDToGRPCMessage(c.GetOwnerID()),
)
m.SetLifetime(
service.TokenLifetimeToGRPCMessage(c.GetLifetime()),
)
m.SetExpiration(c.GetExpiration())
return m
}
@ -35,9 +35,7 @@ func CreateRequestBodyFromGRPCMessage(m *session.CreateRequest_Body) *CreateRequ
refs.OwnerIDFromGRPCMessage(m.GetOwnerId()),
)
c.SetLifetime(
service.TokenLifetimeFromGRPCMessage(m.GetLifetime()),
)
c.SetExpiration(m.GetExpiration())
return c
}
@ -53,7 +51,7 @@ func CreateRequestToGRPCMessage(c *CreateRequest) *session.CreateRequest {
CreateRequestBodyToGRPCMessage(c.GetBody()),
)
service.RequestHeadersToGRPC(c, m)
RequestHeadersToGRPC(c, m)
return m
}
@ -69,7 +67,7 @@ func CreateRequestFromGRPCMessage(m *session.CreateRequest) *CreateRequest {
CreateRequestBodyFromGRPCMessage(m.GetBody()),
)
service.RequestHeadersFromGRPC(m, c)
RequestHeadersFromGRPC(m, c)
return c
}
@ -111,7 +109,7 @@ func CreateResponseToGRPCMessage(c *CreateResponse) *session.CreateResponse {
CreateResponseBodyToGRPCMessage(c.GetBody()),
)
service.ResponseHeadersToGRPC(c, m)
ResponseHeadersToGRPC(c, m)
return m
}
@ -127,7 +125,555 @@ func CreateResponseFromGRPCMessage(m *session.CreateResponse) *CreateResponse {
CreateResponseBodyFromGRPCMessage(m.GetBody()),
)
service.ResponseHeadersFromGRPC(m, c)
ResponseHeadersFromGRPC(m, c)
return c
}
func TokenLifetimeToGRPCMessage(tl *TokenLifetime) *session.SessionToken_Body_TokenLifetime {
if tl == nil {
return nil
}
m := new(session.SessionToken_Body_TokenLifetime)
m.SetExp(tl.GetExp())
m.SetNbf(tl.GetNbf())
m.SetIat(tl.GetIat())
return m
}
func TokenLifetimeFromGRPCMessage(m *session.SessionToken_Body_TokenLifetime) *TokenLifetime {
if m == nil {
return nil
}
tl := new(TokenLifetime)
tl.SetExp(m.GetExp())
tl.SetNbf(m.GetNbf())
tl.SetIat(m.GetIat())
return tl
}
func XHeaderToGRPCMessage(x *XHeader) *session.XHeader {
if x == nil {
return nil
}
m := new(session.XHeader)
m.SetKey(x.GetKey())
m.SetValue(x.GetValue())
return m
}
func XHeaderFromGRPCMessage(m *session.XHeader) *XHeader {
if m == nil {
return nil
}
x := new(XHeader)
x.SetKey(m.GetKey())
x.SetValue(m.GetValue())
return x
}
func SessionTokenToGRPCMessage(t *SessionToken) *session.SessionToken {
if t == nil {
return nil
}
m := new(session.SessionToken)
m.SetBody(
SessionTokenBodyToGRPCMessage(t.GetBody()),
)
m.SetSignature(
refs.SignatureToGRPCMessage(t.GetSignature()),
)
return m
}
func SessionTokenFromGRPCMessage(m *session.SessionToken) *SessionToken {
if m == nil {
return nil
}
t := new(SessionToken)
t.SetBody(
SessionTokenBodyFromGRPCMessage(m.GetBody()),
)
t.SetSignature(
refs.SignatureFromGRPCMessage(m.GetSignature()),
)
return t
}
func RequestVerificationHeaderToGRPCMessage(r *RequestVerificationHeader) *session.RequestVerificationHeader {
if r == nil {
return nil
}
m := new(session.RequestVerificationHeader)
m.SetBodySignature(
refs.SignatureToGRPCMessage(r.GetBodySignature()),
)
m.SetMetaSignature(
refs.SignatureToGRPCMessage(r.GetMetaSignature()),
)
m.SetOriginSignature(
refs.SignatureToGRPCMessage(r.GetOriginSignature()),
)
m.SetOrigin(
RequestVerificationHeaderToGRPCMessage(r.GetOrigin()),
)
return m
}
func RequestVerificationHeaderFromGRPCMessage(m *session.RequestVerificationHeader) *RequestVerificationHeader {
if m == nil {
return nil
}
r := new(RequestVerificationHeader)
r.SetBodySignature(
refs.SignatureFromGRPCMessage(m.GetBodySignature()),
)
r.SetMetaSignature(
refs.SignatureFromGRPCMessage(m.GetMetaSignature()),
)
r.SetOriginSignature(
refs.SignatureFromGRPCMessage(m.GetOriginSignature()),
)
r.SetOrigin(
RequestVerificationHeaderFromGRPCMessage(m.GetOrigin()),
)
return r
}
func RequestMetaHeaderToGRPCMessage(r *RequestMetaHeader) *session.RequestMetaHeader {
if r == nil {
return nil
}
m := new(session.RequestMetaHeader)
m.SetTtl(r.GetTTL())
m.SetEpoch(r.GetEpoch())
m.SetVersion(
refs.VersionToGRPCMessage(r.GetVersion()),
)
m.SetSessionToken(
SessionTokenToGRPCMessage(r.GetSessionToken()),
)
m.SetBearerToken(
acl.BearerTokenToGRPCMessage(r.GetBearerToken()),
)
m.SetOrigin(
RequestMetaHeaderToGRPCMessage(r.GetOrigin()),
)
xHeaders := r.GetXHeaders()
xHdrMsg := make([]*session.XHeader, 0, len(xHeaders))
for i := range xHeaders {
xHdrMsg = append(xHdrMsg, XHeaderToGRPCMessage(xHeaders[i]))
}
m.SetXHeaders(xHdrMsg)
return m
}
func RequestMetaHeaderFromGRPCMessage(m *session.RequestMetaHeader) *RequestMetaHeader {
if m == nil {
return nil
}
r := new(RequestMetaHeader)
r.SetTTL(m.GetTtl())
r.SetEpoch(m.GetEpoch())
r.SetVersion(
refs.VersionFromGRPCMessage(m.GetVersion()),
)
r.SetSessionToken(
SessionTokenFromGRPCMessage(m.GetSessionToken()),
)
r.SetBearerToken(
acl.BearerTokenFromGRPCMessage(m.GetBearerToken()),
)
r.SetOrigin(
RequestMetaHeaderFromGRPCMessage(m.GetOrigin()),
)
xHdrMsg := m.GetXHeaders()
xHeaders := make([]*XHeader, 0, len(xHdrMsg))
for i := range xHdrMsg {
xHeaders = append(xHeaders, XHeaderFromGRPCMessage(xHdrMsg[i]))
}
r.SetXHeaders(xHeaders)
return r
}
func RequestHeadersToGRPC(
src interface {
GetMetaHeader() *RequestMetaHeader
GetVerificationHeader() *RequestVerificationHeader
},
dst interface {
SetMetaHeader(*session.RequestMetaHeader)
SetVerifyHeader(*session.RequestVerificationHeader)
},
) {
dst.SetMetaHeader(
RequestMetaHeaderToGRPCMessage(src.GetMetaHeader()),
)
dst.SetVerifyHeader(
RequestVerificationHeaderToGRPCMessage(src.GetVerificationHeader()),
)
}
func RequestHeadersFromGRPC(
src interface {
GetMetaHeader() *session.RequestMetaHeader
GetVerifyHeader() *session.RequestVerificationHeader
},
dst interface {
SetMetaHeader(*RequestMetaHeader)
SetVerificationHeader(*RequestVerificationHeader)
},
) {
dst.SetMetaHeader(
RequestMetaHeaderFromGRPCMessage(src.GetMetaHeader()),
)
dst.SetVerificationHeader(
RequestVerificationHeaderFromGRPCMessage(src.GetVerifyHeader()),
)
}
func ResponseVerificationHeaderToGRPCMessage(r *ResponseVerificationHeader) *session.ResponseVerificationHeader {
if r == nil {
return nil
}
m := new(session.ResponseVerificationHeader)
m.SetBodySignature(
refs.SignatureToGRPCMessage(r.GetBodySignature()),
)
m.SetMetaSignature(
refs.SignatureToGRPCMessage(r.GetMetaSignature()),
)
m.SetOriginSignature(
refs.SignatureToGRPCMessage(r.GetOriginSignature()),
)
m.SetOrigin(
ResponseVerificationHeaderToGRPCMessage(r.GetOrigin()),
)
return m
}
func ResponseVerificationHeaderFromGRPCMessage(m *session.ResponseVerificationHeader) *ResponseVerificationHeader {
if m == nil {
return nil
}
r := new(ResponseVerificationHeader)
r.SetBodySignature(
refs.SignatureFromGRPCMessage(m.GetBodySignature()),
)
r.SetMetaSignature(
refs.SignatureFromGRPCMessage(m.GetMetaSignature()),
)
r.SetOriginSignature(
refs.SignatureFromGRPCMessage(m.GetOriginSignature()),
)
r.SetOrigin(
ResponseVerificationHeaderFromGRPCMessage(m.GetOrigin()),
)
return r
}
func ResponseMetaHeaderToGRPCMessage(r *ResponseMetaHeader) *session.ResponseMetaHeader {
if r == nil {
return nil
}
m := new(session.ResponseMetaHeader)
m.SetTtl(r.GetTTL())
m.SetEpoch(r.GetEpoch())
m.SetVersion(
refs.VersionToGRPCMessage(r.GetVersion()),
)
m.SetOrigin(
ResponseMetaHeaderToGRPCMessage(r.GetOrigin()),
)
xHeaders := r.GetXHeaders()
xHdrMsg := make([]*session.XHeader, 0, len(xHeaders))
for i := range xHeaders {
xHdrMsg = append(xHdrMsg, XHeaderToGRPCMessage(xHeaders[i]))
}
m.SetXHeaders(xHdrMsg)
return m
}
func ResponseMetaHeaderFromGRPCMessage(m *session.ResponseMetaHeader) *ResponseMetaHeader {
if m == nil {
return nil
}
r := new(ResponseMetaHeader)
r.SetTTL(m.GetTtl())
r.SetEpoch(m.GetEpoch())
r.SetVersion(
refs.VersionFromGRPCMessage(m.GetVersion()),
)
r.SetOrigin(
ResponseMetaHeaderFromGRPCMessage(m.GetOrigin()),
)
xHdrMsg := m.GetXHeaders()
xHeaders := make([]*XHeader, 0, len(xHdrMsg))
for i := range xHdrMsg {
xHeaders = append(xHeaders, XHeaderFromGRPCMessage(xHdrMsg[i]))
}
r.SetXHeaders(xHeaders)
return r
}
func ResponseHeadersToGRPC(
src interface {
GetMetaHeader() *ResponseMetaHeader
GetVerificationHeader() *ResponseVerificationHeader
},
dst interface {
SetMetaHeader(*session.ResponseMetaHeader)
SetVerifyHeader(*session.ResponseVerificationHeader)
},
) {
dst.SetMetaHeader(
ResponseMetaHeaderToGRPCMessage(src.GetMetaHeader()),
)
dst.SetVerifyHeader(
ResponseVerificationHeaderToGRPCMessage(src.GetVerificationHeader()),
)
}
func ResponseHeadersFromGRPC(
src interface {
GetMetaHeader() *session.ResponseMetaHeader
GetVerifyHeader() *session.ResponseVerificationHeader
},
dst interface {
SetMetaHeader(*ResponseMetaHeader)
SetVerificationHeader(*ResponseVerificationHeader)
},
) {
dst.SetMetaHeader(
ResponseMetaHeaderFromGRPCMessage(src.GetMetaHeader()),
)
dst.SetVerificationHeader(
ResponseVerificationHeaderFromGRPCMessage(src.GetVerifyHeader()),
)
}
func ObjectSessionVerbToGRPCField(v ObjectSessionVerb) session.ObjectSessionContext_Verb {
switch v {
case ObjectVerbPut:
return session.ObjectSessionContext_PUT
case ObjectVerbGet:
return session.ObjectSessionContext_GET
case ObjectVerbHead:
return session.ObjectSessionContext_HEAD
case ObjectVerbSearch:
return session.ObjectSessionContext_SEARCH
case ObjectVerbDelete:
return session.ObjectSessionContext_DELETE
case ObjectVerbRange:
return session.ObjectSessionContext_RANGE
case ObjectVerbRangeHash:
return session.ObjectSessionContext_RANGEHASH
default:
return session.ObjectSessionContext_VERB_UNSPECIFIED
}
}
func ObjectSessionVerbFromGRPCField(v session.ObjectSessionContext_Verb) ObjectSessionVerb {
switch v {
case session.ObjectSessionContext_PUT:
return ObjectVerbPut
case session.ObjectSessionContext_GET:
return ObjectVerbGet
case session.ObjectSessionContext_HEAD:
return ObjectVerbHead
case session.ObjectSessionContext_SEARCH:
return ObjectVerbSearch
case session.ObjectSessionContext_DELETE:
return ObjectVerbDelete
case session.ObjectSessionContext_RANGE:
return ObjectVerbRange
case session.ObjectSessionContext_RANGEHASH:
return ObjectVerbRangeHash
default:
return ObjectVerbUnknown
}
}
func ObjectSessionContextToGRPCMessage(c *ObjectSessionContext) *session.ObjectSessionContext {
if c == nil {
return nil
}
m := new(session.ObjectSessionContext)
m.SetVerb(
ObjectSessionVerbToGRPCField(c.GetVerb()),
)
m.SetAddress(
refs.AddressToGRPCMessage(c.GetAddress()),
)
return m
}
func ObjectSessionContextFromGRPCMessage(m *session.ObjectSessionContext) *ObjectSessionContext {
if m == nil {
return nil
}
c := new(ObjectSessionContext)
c.SetVerb(
ObjectSessionVerbFromGRPCField(m.GetVerb()),
)
c.SetAddress(
refs.AddressFromGRPCMessage(m.GetAddress()),
)
return c
}
func SessionTokenBodyToGRPCMessage(t *SessionTokenBody) *session.SessionToken_Body {
if t == nil {
return nil
}
m := new(session.SessionToken_Body)
switch v := t.GetContext(); t := v.(type) {
case nil:
case *ObjectSessionContext:
m.SetObjectSessionContext(
ObjectSessionContextToGRPCMessage(t),
)
default:
panic(fmt.Sprintf("unknown session context %T", t))
}
m.SetId(t.GetID())
m.SetOwnerId(
refs.OwnerIDToGRPCMessage(t.GetOwnerID()),
)
m.SetLifetime(
TokenLifetimeToGRPCMessage(t.GetLifetime()),
)
m.SetSessionKey(t.GetSessionKey())
return m
}
func SessionTokenBodyFromGRPCMessage(m *session.SessionToken_Body) *SessionTokenBody {
if m == nil {
return nil
}
t := new(SessionTokenBody)
switch v := m.GetContext().(type) {
case nil:
case *session.SessionToken_Body_Object:
t.SetContext(
ObjectSessionContextFromGRPCMessage(v.Object),
)
default:
panic(fmt.Sprintf("unknown session context %T", v))
}
t.SetID(m.GetId())
t.SetOwnerID(
refs.OwnerIDFromGRPCMessage(m.GetOwnerId()),
)
t.SetLifetime(
TokenLifetimeFromGRPCMessage(m.GetLifetime()),
)
t.SetSessionKey(m.GetSessionKey())
return t
}

View file

@ -2,7 +2,6 @@ package session
import (
refs "github.com/nspcc-dev/neofs-api-go/v2/refs/grpc"
service "github.com/nspcc-dev/neofs-api-go/v2/service/grpc"
)
// SetOwnerId sets identifier of the session initiator.
@ -12,10 +11,10 @@ func (m *CreateRequest_Body) SetOwnerId(v *refs.OwnerID) {
}
}
// SetLifetime sets lifetime of the session.
func (m *CreateRequest_Body) SetLifetime(v *service.TokenLifetime) {
// SetExpiration sets lifetime of the session.
func (m *CreateRequest_Body) SetExpiration(v uint64) {
if m != nil {
m.Lifetime = v
m.Expiration = v
}
}
@ -27,14 +26,14 @@ func (m *CreateRequest) SetBody(v *CreateRequest_Body) {
}
// SetMetaHeader sets meta header of the request.
func (m *CreateRequest) SetMetaHeader(v *service.RequestMetaHeader) {
func (m *CreateRequest) SetMetaHeader(v *RequestMetaHeader) {
if m != nil {
m.MetaHeader = v
}
}
// SetVerifyHeader sets verification header of the request.
func (m *CreateRequest) SetVerifyHeader(v *service.RequestVerificationHeader) {
func (m *CreateRequest) SetVerifyHeader(v *RequestVerificationHeader) {
if m != nil {
m.VerifyHeader = v
}
@ -62,14 +61,14 @@ func (m *CreateResponse) SetBody(v *CreateResponse_Body) {
}
// SetMetaHeader sets meta header of the response.
func (m *CreateResponse) SetMetaHeader(v *service.ResponseMetaHeader) {
func (m *CreateResponse) SetMetaHeader(v *ResponseMetaHeader) {
if m != nil {
m.MetaHeader = v
}
}
// SetVerifyHeader sets verification header of the response.
func (m *CreateResponse) SetVerifyHeader(v *service.ResponseVerificationHeader) {
func (m *CreateResponse) SetVerifyHeader(v *ResponseVerificationHeader) {
if m != nil {
m.VerifyHeader = v
}

View file

@ -1,4 +1,4 @@
package service
package session
import (
acl "github.com/nspcc-dev/neofs-api-go/v2/acl/grpc"
@ -19,36 +19,22 @@ func (m *XHeader) SetValue(v string) {
}
}
// SetMajor sets major version number.
func (m *Version) SetMajor(v uint32) {
if m != nil {
m.Major = v
}
}
// SetMinor sets minor version number.
func (m *Version) SetMinor(v uint32) {
if m != nil {
m.Minor = v
}
}
// SetExp sets epoch number of the token expiration.
func (m *TokenLifetime) SetExp(v uint64) {
func (m *SessionToken_Body_TokenLifetime) SetExp(v uint64) {
if m != nil {
m.Exp = v
}
}
// SetNbf sets starting epoch number of the token.
func (m *TokenLifetime) SetNbf(v uint64) {
func (m *SessionToken_Body_TokenLifetime) SetNbf(v uint64) {
if m != nil {
m.Nbf = v
}
}
// SetIat sets the number of the epoch in which the token was issued.
func (m *TokenLifetime) SetIat(v uint64) {
func (m *SessionToken_Body_TokenLifetime) SetIat(v uint64) {
if m != nil {
m.Iat = v
}
@ -69,7 +55,7 @@ func (m *SessionToken_Body) SetOwnerId(v *refs.OwnerID) {
}
// SetLifetime sets lifetime of the session token.
func (m *SessionToken_Body) SetLifetime(v *TokenLifetime) {
func (m *SessionToken_Body) SetLifetime(v *SessionToken_Body_TokenLifetime) {
if m != nil {
m.Lifetime = v
}
@ -83,7 +69,7 @@ func (m *SessionToken_Body) SetSessionKey(v []byte) {
}
// SetObjectAddressContext sets object context of the session token.
func (m *SessionToken_Body) SetObjectServiceContext(v *ObjectSessionContext) {
func (m *SessionToken_Body) SetObjectSessionContext(v *ObjectSessionContext) {
if m != nil {
m.Context = &SessionToken_Body_Object{
Object: v,
@ -113,49 +99,14 @@ func (m *SessionToken) SetBody(v *SessionToken_Body) {
}
// SetSignature sets session token signature.
func (m *SessionToken) SetSignature(v *Signature) {
if m != nil {
m.Signature = v
}
}
// SetEaclTable sets eACL table of the bearer token.
func (m *BearerToken_Body) SetEaclTable(v *acl.EACLTable) {
if m != nil {
m.EaclTable = v
}
}
// SetOwnerId sets identifier of the bearer token owner.
func (m *BearerToken_Body) SetOwnerId(v *refs.OwnerID) {
if m != nil {
m.OwnerId = v
}
}
// SetLifetime sets lifetime of the bearer token.
func (m *BearerToken_Body) SetLifetime(v *TokenLifetime) {
if m != nil {
m.Lifetime = v
}
}
// SetBody sets bearer token body.
func (m *BearerToken) SetBody(v *BearerToken_Body) {
if m != nil {
m.Body = v
}
}
// SetSignature sets bearer token signature.
func (m *BearerToken) SetSignature(v *Signature) {
func (m *SessionToken) SetSignature(v *refs.Signature) {
if m != nil {
m.Signature = v
}
}
// SetVersion sets client protocol version.
func (m *RequestMetaHeader) SetVersion(v *Version) {
func (m *RequestMetaHeader) SetVersion(v *refs.Version) {
if m != nil {
m.Version = v
}
@ -190,7 +141,7 @@ func (m *RequestMetaHeader) SetSessionToken(v *SessionToken) {
}
// SetBearerToken sets bearer token of the request.
func (m *RequestMetaHeader) SetBearerToken(v *BearerToken) {
func (m *RequestMetaHeader) SetBearerToken(v *acl.BearerToken) {
if m != nil {
m.BearerToken = v
}
@ -204,7 +155,7 @@ func (m *RequestMetaHeader) SetOrigin(v *RequestMetaHeader) {
}
// SetVersion sets server protocol version.
func (m *ResponseMetaHeader) SetVersion(v *Version) {
func (m *ResponseMetaHeader) SetVersion(v *refs.Version) {
if m != nil {
m.Version = v
}
@ -237,3 +188,59 @@ func (m *ResponseMetaHeader) SetOrigin(v *ResponseMetaHeader) {
m.Origin = v
}
}
// SetBodySignature sets signature of the request body.
func (m *RequestVerificationHeader) SetBodySignature(v *refs.Signature) {
if m != nil {
m.BodySignature = v
}
}
// SetMetaSignature sets signature of the request meta.
func (m *RequestVerificationHeader) SetMetaSignature(v *refs.Signature) {
if m != nil {
m.MetaSignature = v
}
}
// SetOriginSignature sets signature of the origin verification header of the request.
func (m *RequestVerificationHeader) SetOriginSignature(v *refs.Signature) {
if m != nil {
m.OriginSignature = v
}
}
// SetOrigin sets origin verification header of the request.
func (m *RequestVerificationHeader) SetOrigin(v *RequestVerificationHeader) {
if m != nil {
m.Origin = v
}
}
// SetBodySignature sets signature of the response body.
func (m *ResponseVerificationHeader) SetBodySignature(v *refs.Signature) {
if m != nil {
m.BodySignature = v
}
}
// SetMetaSignature sets signature of the response meta.
func (m *ResponseVerificationHeader) SetMetaSignature(v *refs.Signature) {
if m != nil {
m.MetaSignature = v
}
}
// SetOriginSignature sets signature of the origin verification header of the response.
func (m *ResponseVerificationHeader) SetOriginSignature(v *refs.Signature) {
if m != nil {
m.OriginSignature = v
}
}
// SetOrigin sets origin verification header of the response.
func (m *ResponseVerificationHeader) SetOrigin(v *ResponseVerificationHeader) {
if m != nil {
m.Origin = v
}
}

View file

@ -6,10 +6,53 @@ import (
const (
createReqBodyOwnerField = 1
createReqBodyLifetimeField = 2
createReqBodyExpirationField = 2
createRespBodyIDField = 1
createRespBodyKeyField = 2
xheaderKeyField = 1
xheaderValueField = 2
lifetimeExpirationField = 1
lifetimeNotValidBeforeField = 2
lifetimeIssuedAtField = 3
objectCtxVerbField = 1
objectCtxAddressField = 2
sessionTokenBodyIDField = 1
sessionTokenBodyOwnerField = 2
sessionTokenBodyLifetimeField = 3
sessionTokenBodyKeyField = 4
sessionTokenBodyObjectCtxField = 5
sessionTokenBodyField = 1
sessionTokenSignatureField = 2
reqMetaHeaderVersionField = 1
reqMetaHeaderEpochField = 2
reqMetaHeaderTTLField = 3
reqMetaHeaderXHeadersField = 4
reqMetaHeaderSessionTokenField = 5
reqMetaHeaderBearerTokenField = 6
reqMetaHeaderOriginField = 7
reqVerifHeaderBodySignatureField = 1
reqVerifHeaderMetaSignatureField = 2
reqVerifHeaderOriginSignatureField = 3
reqVerifHeaderOriginField = 4
respMetaHeaderVersionField = 1
respMetaHeaderEpochField = 2
respMetaHeaderTTLField = 3
respMetaHeaderXHeadersField = 4
respMetaHeaderOriginField = 5
respVerifHeaderBodySignatureField = 1
respVerifHeaderMetaSignatureField = 2
respVerifHeaderOriginSignatureField = 3
respVerifHeaderOriginField = 4
)
func (c *CreateRequestBody) StableMarshal(buf []byte) ([]byte, error) {
@ -33,7 +76,7 @@ func (c *CreateRequestBody) StableMarshal(buf []byte) ([]byte, error) {
offset += n
_, err = proto.NestedStructureMarshal(createReqBodyLifetimeField, buf[offset:], c.lifetime)
_, err = proto.UInt64Marshal(createReqBodyExpirationField, buf[offset:], c.expiration)
if err != nil {
return nil, err
}
@ -47,7 +90,7 @@ func (c *CreateRequestBody) StableSize() (size int) {
}
size += proto.NestedStructureSize(createReqBodyOwnerField, c.ownerID)
size += proto.NestedStructureSize(createReqBodyLifetimeField, c.lifetime)
size += proto.UInt64Size(createReqBodyExpirationField, c.expiration)
return size
}
@ -91,3 +134,524 @@ func (c *CreateResponseBody) StableSize() (size int) {
return size
}
func (x *XHeader) StableMarshal(buf []byte) ([]byte, error) {
if x == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, x.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.StringMarshal(xheaderKeyField, buf[offset:], x.key)
if err != nil {
return nil, err
}
offset += n
_, err = proto.StringMarshal(xheaderValueField, buf[offset:], x.val)
if err != nil {
return nil, err
}
return buf, nil
}
func (x *XHeader) StableSize() (size int) {
if x == nil {
return 0
}
size += proto.StringSize(xheaderKeyField, x.key)
size += proto.StringSize(xheaderValueField, x.val)
return size
}
func (l *TokenLifetime) StableMarshal(buf []byte) ([]byte, error) {
if l == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, l.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.UInt64Marshal(lifetimeExpirationField, buf[offset:], l.exp)
if err != nil {
return nil, err
}
offset += n
n, err = proto.UInt64Marshal(lifetimeNotValidBeforeField, buf[offset:], l.nbf)
if err != nil {
return nil, err
}
offset += n
_, err = proto.UInt64Marshal(lifetimeIssuedAtField, buf[offset:], l.iat)
if err != nil {
return nil, err
}
return buf, nil
}
func (l *TokenLifetime) StableSize() (size int) {
if l == nil {
return 0
}
size += proto.UInt64Size(lifetimeExpirationField, l.exp)
size += proto.UInt64Size(lifetimeNotValidBeforeField, l.nbf)
size += proto.UInt64Size(lifetimeIssuedAtField, l.iat)
return size
}
func (c *ObjectSessionContext) StableMarshal(buf []byte) ([]byte, error) {
if c == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, c.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.EnumMarshal(objectCtxVerbField, buf[offset:], int32(c.verb))
if err != nil {
return nil, err
}
offset += n
_, err = proto.NestedStructureMarshal(objectCtxAddressField, buf[offset:], c.addr)
if err != nil {
return nil, err
}
return buf, nil
}
func (c *ObjectSessionContext) StableSize() (size int) {
if c == nil {
return 0
}
size += proto.EnumSize(objectCtxVerbField, int32(c.verb))
size += proto.NestedStructureSize(objectCtxAddressField, c.addr)
return size
}
func (t *SessionTokenBody) StableMarshal(buf []byte) ([]byte, error) {
if t == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, t.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.BytesMarshal(sessionTokenBodyIDField, buf[offset:], t.id)
if err != nil {
return nil, err
}
offset += n
n, err = proto.NestedStructureMarshal(sessionTokenBodyOwnerField, buf[offset:], t.ownerID)
if err != nil {
return nil, err
}
offset += n
n, err = proto.NestedStructureMarshal(sessionTokenBodyLifetimeField, buf[offset:], t.lifetime)
if err != nil {
return nil, err
}
offset += n
n, err = proto.BytesMarshal(sessionTokenBodyKeyField, buf[offset:], t.sessionKey)
if err != nil {
return nil, err
}
offset += n
if t.ctx != nil {
switch v := t.ctx.(type) {
case *ObjectSessionContext:
_, err = proto.NestedStructureMarshal(sessionTokenBodyObjectCtxField, buf[offset:], v)
if err != nil {
return nil, err
}
default:
panic("cannot marshal unknown session token context")
}
}
return buf, nil
}
func (t *SessionTokenBody) StableSize() (size int) {
if t == nil {
return 0
}
size += proto.BytesSize(sessionTokenBodyIDField, t.id)
size += proto.NestedStructureSize(sessionTokenBodyOwnerField, t.ownerID)
size += proto.NestedStructureSize(sessionTokenBodyLifetimeField, t.lifetime)
size += proto.BytesSize(sessionTokenBodyKeyField, t.sessionKey)
if t.ctx != nil {
switch v := t.ctx.(type) {
case *ObjectSessionContext:
size += proto.NestedStructureSize(sessionTokenBodyObjectCtxField, v)
default:
panic("cannot marshal unknown session token context")
}
}
return size
}
func (t *SessionToken) StableMarshal(buf []byte) ([]byte, error) {
if t == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, t.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.NestedStructureMarshal(sessionTokenBodyField, buf[offset:], t.body)
if err != nil {
return nil, err
}
offset += n
_, err = proto.NestedStructureMarshal(sessionTokenSignatureField, buf[offset:], t.sig)
if err != nil {
return nil, err
}
return buf, nil
}
func (t *SessionToken) StableSize() (size int) {
if t == nil {
return 0
}
size += proto.NestedStructureSize(sessionTokenBodyField, t.body)
size += proto.NestedStructureSize(sessionTokenSignatureField, t.sig)
return size
}
func (r *RequestMetaHeader) StableMarshal(buf []byte) ([]byte, error) {
if r == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, r.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.NestedStructureMarshal(reqMetaHeaderVersionField, buf[offset:], r.version)
if err != nil {
return nil, err
}
offset += n
n, err = proto.UInt64Marshal(reqMetaHeaderEpochField, buf[offset:], r.epoch)
if err != nil {
return nil, err
}
offset += n
n, err = proto.UInt32Marshal(reqMetaHeaderTTLField, buf[offset:], r.ttl)
if err != nil {
return nil, err
}
offset += n
for i := range r.xHeaders {
n, err = proto.NestedStructureMarshal(reqMetaHeaderXHeadersField, buf[offset:], r.xHeaders[i])
if err != nil {
return nil, err
}
offset += n
}
n, err = proto.NestedStructureMarshal(reqMetaHeaderSessionTokenField, buf[offset:], r.sessionToken)
if err != nil {
return nil, err
}
offset += n
n, err = proto.NestedStructureMarshal(reqMetaHeaderBearerTokenField, buf[offset:], r.bearerToken)
if err != nil {
return nil, err
}
offset += n
_, err = proto.NestedStructureMarshal(reqMetaHeaderOriginField, buf[offset:], r.origin)
if err != nil {
return nil, err
}
return buf, nil
}
func (r *RequestMetaHeader) StableSize() (size int) {
if r == nil {
return 0
}
if r.version != nil {
size += proto.NestedStructureSize(reqMetaHeaderVersionField, r.version)
}
size += proto.UInt64Size(reqMetaHeaderEpochField, r.epoch)
size += proto.UInt32Size(reqMetaHeaderTTLField, r.ttl)
for i := range r.xHeaders {
size += proto.NestedStructureSize(reqMetaHeaderXHeadersField, r.xHeaders[i])
}
size += proto.NestedStructureSize(reqMetaHeaderSessionTokenField, r.sessionToken)
size += proto.NestedStructureSize(reqMetaHeaderBearerTokenField, r.bearerToken)
size += proto.NestedStructureSize(reqMetaHeaderOriginField, r.origin)
return size
}
func (r *RequestVerificationHeader) StableMarshal(buf []byte) ([]byte, error) {
if r == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, r.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.NestedStructureMarshal(reqVerifHeaderBodySignatureField, buf[offset:], r.bodySig)
if err != nil {
return nil, err
}
offset += n
n, err = proto.NestedStructureMarshal(reqVerifHeaderMetaSignatureField, buf[offset:], r.metaSig)
if err != nil {
return nil, err
}
offset += n
n, err = proto.NestedStructureMarshal(reqVerifHeaderOriginSignatureField, buf[offset:], r.originSig)
if err != nil {
return nil, err
}
offset += n
_, err = proto.NestedStructureMarshal(reqVerifHeaderOriginField, buf[offset:], r.origin)
if err != nil {
return nil, err
}
return buf, nil
}
func (r *RequestVerificationHeader) StableSize() (size int) {
if r == nil {
return 0
}
size += proto.NestedStructureSize(reqVerifHeaderBodySignatureField, r.bodySig)
size += proto.NestedStructureSize(reqVerifHeaderMetaSignatureField, r.metaSig)
size += proto.NestedStructureSize(reqVerifHeaderOriginSignatureField, r.originSig)
size += proto.NestedStructureSize(reqVerifHeaderOriginField, r.origin)
return size
}
func (r *ResponseMetaHeader) StableMarshal(buf []byte) ([]byte, error) {
if r == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, r.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.NestedStructureMarshal(respMetaHeaderVersionField, buf[offset:], r.version)
if err != nil {
return nil, err
}
offset += n
n, err = proto.UInt64Marshal(respMetaHeaderEpochField, buf[offset:], r.epoch)
if err != nil {
return nil, err
}
offset += n
n, err = proto.UInt32Marshal(respMetaHeaderTTLField, buf[offset:], r.ttl)
if err != nil {
return nil, err
}
offset += n
for i := range r.xHeaders {
n, err = proto.NestedStructureMarshal(respMetaHeaderXHeadersField, buf[offset:], r.xHeaders[i])
if err != nil {
return nil, err
}
offset += n
}
_, err = proto.NestedStructureMarshal(respMetaHeaderOriginField, buf[offset:], r.origin)
if err != nil {
return nil, err
}
return buf, nil
}
func (r *ResponseMetaHeader) StableSize() (size int) {
if r == nil {
return 0
}
if r.version != nil {
size += proto.NestedStructureSize(respMetaHeaderVersionField, r.version)
}
size += proto.UInt64Size(respMetaHeaderEpochField, r.epoch)
size += proto.UInt32Size(respMetaHeaderTTLField, r.ttl)
for i := range r.xHeaders {
size += proto.NestedStructureSize(respMetaHeaderXHeadersField, r.xHeaders[i])
}
size += proto.NestedStructureSize(respMetaHeaderOriginField, r.origin)
return size
}
func (r *ResponseVerificationHeader) StableMarshal(buf []byte) ([]byte, error) {
if r == nil {
return []byte{}, nil
}
if buf == nil {
buf = make([]byte, r.StableSize())
}
var (
offset, n int
err error
)
n, err = proto.NestedStructureMarshal(respVerifHeaderBodySignatureField, buf[offset:], r.bodySig)
if err != nil {
return nil, err
}
offset += n
n, err = proto.NestedStructureMarshal(respVerifHeaderMetaSignatureField, buf[offset:], r.metaSig)
if err != nil {
return nil, err
}
offset += n
n, err = proto.NestedStructureMarshal(respVerifHeaderOriginSignatureField, buf[offset:], r.originSig)
if err != nil {
return nil, err
}
offset += n
_, err = proto.NestedStructureMarshal(respVerifHeaderOriginField, buf[offset:], r.origin)
if err != nil {
return nil, err
}
return buf, nil
}
func (r *ResponseVerificationHeader) StableSize() (size int) {
if r == nil {
return 0
}
size += proto.NestedStructureSize(respVerifHeaderBodySignatureField, r.bodySig)
size += proto.NestedStructureSize(respVerifHeaderMetaSignatureField, r.metaSig)
size += proto.NestedStructureSize(respVerifHeaderOriginSignatureField, r.originSig)
size += proto.NestedStructureSize(respVerifHeaderOriginField, r.origin)
return size
}

View file

@ -1,10 +1,11 @@
package session_test
import (
"fmt"
"testing"
"github.com/nspcc-dev/neofs-api-go/v2/acl"
"github.com/nspcc-dev/neofs-api-go/v2/refs"
"github.com/nspcc-dev/neofs-api-go/v2/service"
"github.com/nspcc-dev/neofs-api-go/v2/session"
grpc "github.com/nspcc-dev/neofs-api-go/v2/session/grpc"
"github.com/stretchr/testify/require"
@ -42,8 +43,160 @@ func TestCreateResponseBody_StableMarshal(t *testing.T) {
})
}
func TestXHeader_StableMarshal(t *testing.T) {
xheaderFrom := generateXHeader("X-Header-Key", "X-Header-Value")
transport := new(grpc.XHeader)
t.Run("non empty", func(t *testing.T) {
wire, err := xheaderFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
xheaderTo := session.XHeaderFromGRPCMessage(transport)
require.Equal(t, xheaderFrom, xheaderTo)
})
}
func TestTokenLifetime_StableMarshal(t *testing.T) {
lifetimeFrom := generateLifetime(10, 20, 30)
transport := new(grpc.SessionToken_Body_TokenLifetime)
t.Run("non empty", func(t *testing.T) {
wire, err := lifetimeFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
lifetimeTo := session.TokenLifetimeFromGRPCMessage(transport)
require.Equal(t, lifetimeFrom, lifetimeTo)
})
}
func TestObjectSessionContext_StableMarshal(t *testing.T) {
objectCtxFrom := generateObjectCtx("Object ID")
transport := new(grpc.ObjectSessionContext)
t.Run("non empty", func(t *testing.T) {
wire, err := objectCtxFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
objectCtxTo := session.ObjectSessionContextFromGRPCMessage(transport)
require.Equal(t, objectCtxFrom, objectCtxTo)
})
}
func TestSessionTokenBody_StableMarshal(t *testing.T) {
sessionTokenBodyFrom := generateSessionTokenBody("Session Token Body")
transport := new(grpc.SessionToken_Body)
t.Run("non empty", func(t *testing.T) {
wire, err := sessionTokenBodyFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
sessionTokenBodyTo := session.SessionTokenBodyFromGRPCMessage(transport)
require.Equal(t, sessionTokenBodyFrom, sessionTokenBodyTo)
})
}
func TestSessionToken_StableMarshal(t *testing.T) {
sessionTokenFrom := generateSessionToken("Session Token")
transport := new(grpc.SessionToken)
t.Run("non empty", func(t *testing.T) {
wire, err := sessionTokenFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
sessionTokenTo := session.SessionTokenFromGRPCMessage(transport)
require.Equal(t, sessionTokenFrom, sessionTokenTo)
})
}
func TestRequestMetaHeader_StableMarshal(t *testing.T) {
metaHeaderOrigin := generateRequestMetaHeader(10, "Bearer One", "Session One")
metaHeaderFrom := generateRequestMetaHeader(20, "Bearer Two", "Session Two")
metaHeaderFrom.SetOrigin(metaHeaderOrigin)
transport := new(grpc.RequestMetaHeader)
t.Run("non empty", func(t *testing.T) {
wire, err := metaHeaderFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
metaHeaderTo := session.RequestMetaHeaderFromGRPCMessage(transport)
require.Equal(t, metaHeaderFrom, metaHeaderTo)
})
}
func TestRequestVerificationHeader_StableMarshal(t *testing.T) {
verifHeaderOrigin := generateRequestVerificationHeader("Key", "Inside")
verifHeaderFrom := generateRequestVerificationHeader("Value", "Outside")
verifHeaderFrom.SetOrigin(verifHeaderOrigin)
transport := new(grpc.RequestVerificationHeader)
t.Run("non empty", func(t *testing.T) {
wire, err := verifHeaderFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
verifHeaderTo := session.RequestVerificationHeaderFromGRPCMessage(transport)
require.Equal(t, verifHeaderFrom, verifHeaderTo)
})
}
func TestResponseMetaHeader_StableMarshal(t *testing.T) {
metaHeaderOrigin := generateResponseMetaHeader(10)
metaHeaderFrom := generateResponseMetaHeader(20)
metaHeaderFrom.SetOrigin(metaHeaderOrigin)
transport := new(grpc.ResponseMetaHeader)
t.Run("non empty", func(t *testing.T) {
wire, err := metaHeaderFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
metaHeaderTo := session.ResponseMetaHeaderFromGRPCMessage(transport)
require.Equal(t, metaHeaderFrom, metaHeaderTo)
})
}
func TestResponseVerificationHeader_StableMarshal(t *testing.T) {
verifHeaderOrigin := generateResponseVerificationHeader("Key", "Inside")
verifHeaderFrom := generateResponseVerificationHeader("Value", "Outside")
verifHeaderFrom.SetOrigin(verifHeaderOrigin)
transport := new(grpc.ResponseVerificationHeader)
t.Run("non empty", func(t *testing.T) {
wire, err := verifHeaderFrom.StableMarshal(nil)
require.NoError(t, err)
err = transport.Unmarshal(wire)
require.NoError(t, err)
verifHeaderTo := session.ResponseVerificationHeaderFromGRPCMessage(transport)
require.Equal(t, verifHeaderFrom, verifHeaderTo)
})
}
func generateCreateSessionRequestBody(id string) *session.CreateRequestBody {
lifetime := new(service.TokenLifetime)
lifetime := new(session.TokenLifetime)
lifetime.SetIat(1)
lifetime.SetNbf(2)
lifetime.SetExp(3)
@ -53,7 +206,7 @@ func generateCreateSessionRequestBody(id string) *session.CreateRequestBody {
s := new(session.CreateRequestBody)
s.SetOwnerID(owner)
s.SetLifetime(lifetime)
s.SetExpiration(10)
return s
}
@ -65,3 +218,185 @@ func generateCreateSessionResponseBody(id, key string) *session.CreateResponseBo
return s
}
func generateSignature(k, v string) *refs.Signature {
sig := new(refs.Signature)
sig.SetKey([]byte(k))
sig.SetSign([]byte(v))
return sig
}
func generateVersion(maj, min uint32) *refs.Version {
version := new(refs.Version)
version.SetMajor(maj)
version.SetMinor(min)
return version
}
func generateXHeader(k, v string) *session.XHeader {
xheader := new(session.XHeader)
xheader.SetKey(k)
xheader.SetValue(v)
return xheader
}
func generateLifetime(exp, nbf, iat uint64) *session.TokenLifetime {
lifetime := new(session.TokenLifetime)
lifetime.SetExp(exp)
lifetime.SetNbf(nbf)
lifetime.SetIat(iat)
return lifetime
}
func generateBearerLifetime(exp, nbf, iat uint64) *acl.TokenLifetime {
lifetime := new(acl.TokenLifetime)
lifetime.SetExp(exp)
lifetime.SetNbf(nbf)
lifetime.SetIat(iat)
return lifetime
}
func generateObjectCtx(id string) *session.ObjectSessionContext {
objectCtx := new(session.ObjectSessionContext)
objectCtx.SetVerb(session.ObjectVerbPut)
cid := new(refs.ContainerID)
cid.SetValue([]byte("ContainerID"))
oid := new(refs.ObjectID)
oid.SetValue([]byte(id))
addr := new(refs.Address)
addr.SetContainerID(cid)
addr.SetObjectID(oid)
objectCtx.SetAddress(addr)
return objectCtx
}
func generateEACL(n int, k, v string) *acl.Table {
target := new(acl.TargetInfo)
target.SetTarget(acl.TargetUser)
keys := make([][]byte, n)
for i := 0; i < n; i++ {
s := fmt.Sprintf("Public Key %d", i+1)
keys[i] = []byte(s)
}
filter := new(acl.HeaderFilter)
filter.SetHeaderType(acl.HeaderTypeObject)
filter.SetMatchType(acl.MatchTypeStringEqual)
filter.SetName(k)
filter.SetValue(v)
record := new(acl.Record)
record.SetOperation(acl.OperationHead)
record.SetAction(acl.ActionDeny)
record.SetTargets([]*acl.TargetInfo{target})
record.SetFilters([]*acl.HeaderFilter{filter})
table := new(acl.Table)
cid := new(refs.ContainerID)
cid.SetValue([]byte("Container ID"))
table.SetContainerID(cid)
table.SetRecords([]*acl.Record{record})
return table
}
func generateSessionTokenBody(id string) *session.SessionTokenBody {
owner := new(refs.OwnerID)
owner.SetValue([]byte("Owner ID"))
tokenBody := new(session.SessionTokenBody)
tokenBody.SetID([]byte(id))
tokenBody.SetOwnerID(owner)
tokenBody.SetSessionKey([]byte(id))
tokenBody.SetLifetime(generateLifetime(1, 2, 3))
tokenBody.SetContext(generateObjectCtx(id))
return tokenBody
}
func generateSessionToken(id string) *session.SessionToken {
sessionToken := new(session.SessionToken)
sessionToken.SetBody(generateSessionTokenBody(id))
sessionToken.SetSignature(generateSignature("id", id))
return sessionToken
}
func generateBearerTokenBody(id string) *acl.BearerTokenBody {
owner := new(refs.OwnerID)
owner.SetValue([]byte(id))
tokenBody := new(acl.BearerTokenBody)
tokenBody.SetOwnerID(owner)
tokenBody.SetLifetime(generateBearerLifetime(1, 2, 3))
tokenBody.SetEACL(generateEACL(10, "id", id))
return tokenBody
}
func generateBearerToken(id string) *acl.BearerToken {
bearerToken := new(acl.BearerToken)
bearerToken.SetBody(generateBearerTokenBody(id))
bearerToken.SetSignature(generateSignature("id", id))
return bearerToken
}
func generateRequestMetaHeader(n int, b, s string) *session.RequestMetaHeader {
reqMetaHeader := new(session.RequestMetaHeader)
reqMetaHeader.SetVersion(generateVersion(2, 0))
reqMetaHeader.SetEpoch(uint64(n))
reqMetaHeader.SetTTL(uint32(n))
reqMetaHeader.SetXHeaders([]*session.XHeader{
generateXHeader("key-one", "val-one"),
generateXHeader("key-two", "val-two"),
})
reqMetaHeader.SetBearerToken(generateBearerToken(b))
reqMetaHeader.SetSessionToken(generateSessionToken(s))
return reqMetaHeader
}
func generateRequestVerificationHeader(k, v string) *session.RequestVerificationHeader {
reqVerifHeader := new(session.RequestVerificationHeader)
reqVerifHeader.SetBodySignature(generateSignature(k+"body", v+"body"))
reqVerifHeader.SetMetaSignature(generateSignature(k+"meta", v+"meta"))
reqVerifHeader.SetOriginSignature(generateSignature(k+"orig", v+"orig"))
return reqVerifHeader
}
func generateResponseMetaHeader(n int) *session.ResponseMetaHeader {
respMetaHeader := new(session.ResponseMetaHeader)
respMetaHeader.SetVersion(generateVersion(2, 0))
respMetaHeader.SetEpoch(uint64(n))
respMetaHeader.SetTTL(uint32(n))
respMetaHeader.SetXHeaders([]*session.XHeader{
generateXHeader("key-one", "val-one"),
generateXHeader("key-two", "val-two"),
})
return respMetaHeader
}
func generateResponseVerificationHeader(k, v string) *session.ResponseVerificationHeader {
respVerifHeader := new(session.ResponseVerificationHeader)
respVerifHeader.SetBodySignature(generateSignature(k+"body", v+"body"))
respVerifHeader.SetMetaSignature(generateSignature(k+"meta", v+"meta"))
respVerifHeader.SetOriginSignature(generateSignature(k+"orig", v+"orig"))
return respVerifHeader
}

View file

@ -1,22 +1,22 @@
package session
import (
"github.com/nspcc-dev/neofs-api-go/v2/acl"
"github.com/nspcc-dev/neofs-api-go/v2/refs"
"github.com/nspcc-dev/neofs-api-go/v2/service"
)
type CreateRequestBody struct {
ownerID *refs.OwnerID
lifetime *service.TokenLifetime
expiration uint64
}
type CreateRequest struct {
body *CreateRequestBody
metaHeader *service.RequestMetaHeader
metaHeader *RequestMetaHeader
verifyHeader *service.RequestVerificationHeader
verifyHeader *RequestVerificationHeader
}
type CreateResponseBody struct {
@ -28,11 +28,100 @@ type CreateResponseBody struct {
type CreateResponse struct {
body *CreateResponseBody
metaHeader *service.ResponseMetaHeader
metaHeader *ResponseMetaHeader
verifyHeader *service.ResponseVerificationHeader
verifyHeader *ResponseVerificationHeader
}
type XHeader struct {
key, val string
}
type TokenLifetime struct {
exp, nbf, iat uint64
}
type ObjectSessionVerb uint32
type ObjectSessionContext struct {
verb ObjectSessionVerb
addr *refs.Address
}
type SessionTokenContext interface {
sessionTokenContext()
}
type SessionTokenBody struct {
id []byte
ownerID *refs.OwnerID
lifetime *TokenLifetime
sessionKey []byte
ctx SessionTokenContext
}
type SessionToken struct {
body *SessionTokenBody
sig *refs.Signature
}
type RequestVerificationHeader struct {
bodySig, metaSig, originSig *refs.Signature
origin *RequestVerificationHeader
}
type RequestMetaHeader struct {
version *refs.Version
ttl uint32
epoch uint64
xHeaders []*XHeader
sessionToken *SessionToken
bearerToken *acl.BearerToken
origin *RequestMetaHeader
}
type ResponseVerificationHeader struct {
bodySig, metaSig, originSig *refs.Signature
origin *ResponseVerificationHeader
}
type ResponseMetaHeader struct {
version *refs.Version
ttl uint32
epoch uint64
xHeaders []*XHeader
origin *ResponseMetaHeader
}
const (
ObjectVerbUnknown ObjectSessionVerb = iota
ObjectVerbPut
ObjectVerbGet
ObjectVerbHead
ObjectVerbSearch
ObjectVerbDelete
ObjectVerbRange
ObjectVerbRangeHash
)
func (c *CreateRequestBody) GetOwnerID() *refs.OwnerID {
if c != nil {
return c.ownerID
@ -47,17 +136,17 @@ func (c *CreateRequestBody) SetOwnerID(v *refs.OwnerID) {
}
}
func (c *CreateRequestBody) GetLifetime() *service.TokenLifetime {
func (c *CreateRequestBody) GetExpiration() uint64 {
if c != nil {
return c.lifetime
return c.expiration
}
return nil
return 0
}
func (c *CreateRequestBody) SetLifetime(v *service.TokenLifetime) {
func (c *CreateRequestBody) SetExpiration(v uint64) {
if c != nil {
c.lifetime = v
c.expiration = v
}
}
@ -75,7 +164,7 @@ func (c *CreateRequest) SetBody(v *CreateRequestBody) {
}
}
func (c *CreateRequest) GetMetaHeader() *service.RequestMetaHeader {
func (c *CreateRequest) GetMetaHeader() *RequestMetaHeader {
if c != nil {
return c.metaHeader
}
@ -83,13 +172,13 @@ func (c *CreateRequest) GetMetaHeader() *service.RequestMetaHeader {
return nil
}
func (c *CreateRequest) SetMetaHeader(v *service.RequestMetaHeader) {
func (c *CreateRequest) SetMetaHeader(v *RequestMetaHeader) {
if c != nil {
c.metaHeader = v
}
}
func (c *CreateRequest) GetVerificationHeader() *service.RequestVerificationHeader {
func (c *CreateRequest) GetVerificationHeader() *RequestVerificationHeader {
if c != nil {
return c.verifyHeader
}
@ -97,7 +186,7 @@ func (c *CreateRequest) GetVerificationHeader() *service.RequestVerificationHead
return nil
}
func (c *CreateRequest) SetVerificationHeader(v *service.RequestVerificationHeader) {
func (c *CreateRequest) SetVerificationHeader(v *RequestVerificationHeader) {
if c != nil {
c.verifyHeader = v
}
@ -145,7 +234,7 @@ func (c *CreateResponse) SetBody(v *CreateResponseBody) {
}
}
func (c *CreateResponse) GetMetaHeader() *service.ResponseMetaHeader {
func (c *CreateResponse) GetMetaHeader() *ResponseMetaHeader {
if c != nil {
return c.metaHeader
}
@ -153,13 +242,13 @@ func (c *CreateResponse) GetMetaHeader() *service.ResponseMetaHeader {
return nil
}
func (c *CreateResponse) SetMetaHeader(v *service.ResponseMetaHeader) {
func (c *CreateResponse) SetMetaHeader(v *ResponseMetaHeader) {
if c != nil {
c.metaHeader = v
}
}
func (c *CreateResponse) GetVerificationHeader() *service.ResponseVerificationHeader {
func (c *CreateResponse) GetVerificationHeader() *ResponseVerificationHeader {
if c != nil {
return c.verifyHeader
}
@ -167,8 +256,486 @@ func (c *CreateResponse) GetVerificationHeader() *service.ResponseVerificationHe
return nil
}
func (c *CreateResponse) SetVerificationHeader(v *service.ResponseVerificationHeader) {
func (c *CreateResponse) SetVerificationHeader(v *ResponseVerificationHeader) {
if c != nil {
c.verifyHeader = v
}
}
func (x *XHeader) GetKey() string {
if x != nil {
return x.key
}
return ""
}
func (x *XHeader) SetKey(v string) {
if x != nil {
x.key = v
}
}
func (x *XHeader) GetValue() string {
if x != nil {
return x.val
}
return ""
}
func (x *XHeader) SetValue(v string) {
if x != nil {
x.val = v
}
}
func (r *RequestVerificationHeader) GetBodySignature() *refs.Signature {
if r != nil {
return r.bodySig
}
return nil
}
func (r *RequestVerificationHeader) SetBodySignature(v *refs.Signature) {
if r != nil {
r.bodySig = v
}
}
func (r *RequestVerificationHeader) GetMetaSignature() *refs.Signature {
if r != nil {
return r.metaSig
}
return nil
}
func (r *RequestVerificationHeader) SetMetaSignature(v *refs.Signature) {
if r != nil {
r.metaSig = v
}
}
func (r *RequestVerificationHeader) GetOriginSignature() *refs.Signature {
if r != nil {
return r.originSig
}
return nil
}
func (r *RequestVerificationHeader) SetOriginSignature(v *refs.Signature) {
if r != nil {
r.originSig = v
}
}
func (r *RequestVerificationHeader) GetOrigin() *RequestVerificationHeader {
if r != nil {
return r.origin
}
return nil
}
func (r *RequestVerificationHeader) SetOrigin(v *RequestVerificationHeader) {
if r != nil {
r.origin = v
}
}
func (r *RequestMetaHeader) GetVersion() *refs.Version {
if r != nil {
return r.version
}
return nil
}
func (r *RequestMetaHeader) SetVersion(v *refs.Version) {
if r != nil {
r.version = v
}
}
func (r *RequestMetaHeader) GetTTL() uint32 {
if r != nil {
return r.ttl
}
return 0
}
func (r *RequestMetaHeader) SetTTL(v uint32) {
if r != nil {
r.ttl = v
}
}
func (r *RequestMetaHeader) GetEpoch() uint64 {
if r != nil {
return r.epoch
}
return 0
}
func (r *RequestMetaHeader) SetEpoch(v uint64) {
if r != nil {
r.epoch = v
}
}
func (r *RequestMetaHeader) GetXHeaders() []*XHeader {
if r != nil {
return r.xHeaders
}
return nil
}
func (r *RequestMetaHeader) SetXHeaders(v []*XHeader) {
if r != nil {
r.xHeaders = v
}
}
func (r *RequestMetaHeader) GetSessionToken() *SessionToken {
if r != nil {
return r.sessionToken
}
return nil
}
func (r *RequestMetaHeader) SetSessionToken(v *SessionToken) {
if r != nil {
r.sessionToken = v
}
}
func (r *RequestMetaHeader) GetBearerToken() *acl.BearerToken {
if r != nil {
return r.bearerToken
}
return nil
}
func (r *RequestMetaHeader) SetBearerToken(v *acl.BearerToken) {
if r != nil {
r.bearerToken = v
}
}
func (r *RequestMetaHeader) GetOrigin() *RequestMetaHeader {
if r != nil {
return r.origin
}
return nil
}
func (r *RequestMetaHeader) SetOrigin(v *RequestMetaHeader) {
if r != nil {
r.origin = v
}
}
func (l *TokenLifetime) GetExp() uint64 {
if l != nil {
return l.exp
}
return 0
}
func (l *TokenLifetime) SetExp(v uint64) {
if l != nil {
l.exp = v
}
}
func (l *TokenLifetime) GetNbf() uint64 {
if l != nil {
return l.nbf
}
return 0
}
func (l *TokenLifetime) SetNbf(v uint64) {
if l != nil {
l.nbf = v
}
}
func (l *TokenLifetime) GetIat() uint64 {
if l != nil {
return l.iat
}
return 0
}
func (l *TokenLifetime) SetIat(v uint64) {
if l != nil {
l.iat = v
}
}
func (r *ResponseVerificationHeader) GetBodySignature() *refs.Signature {
if r != nil {
return r.bodySig
}
return nil
}
func (r *ResponseVerificationHeader) SetBodySignature(v *refs.Signature) {
if r != nil {
r.bodySig = v
}
}
func (r *ResponseVerificationHeader) GetMetaSignature() *refs.Signature {
if r != nil {
return r.metaSig
}
return nil
}
func (r *ResponseVerificationHeader) SetMetaSignature(v *refs.Signature) {
if r != nil {
r.metaSig = v
}
}
func (r *ResponseVerificationHeader) GetOriginSignature() *refs.Signature {
if r != nil {
return r.originSig
}
return nil
}
func (r *ResponseVerificationHeader) SetOriginSignature(v *refs.Signature) {
if r != nil {
r.originSig = v
}
}
func (r *ResponseVerificationHeader) GetOrigin() *ResponseVerificationHeader {
if r != nil {
return r.origin
}
return nil
}
func (r *ResponseVerificationHeader) SetOrigin(v *ResponseVerificationHeader) {
if r != nil {
r.origin = v
}
}
func (r *ResponseMetaHeader) GetVersion() *refs.Version {
if r != nil {
return r.version
}
return nil
}
func (r *ResponseMetaHeader) SetVersion(v *refs.Version) {
if r != nil {
r.version = v
}
}
func (r *ResponseMetaHeader) GetTTL() uint32 {
if r != nil {
return r.ttl
}
return 0
}
func (r *ResponseMetaHeader) SetTTL(v uint32) {
if r != nil {
r.ttl = v
}
}
func (r *ResponseMetaHeader) GetEpoch() uint64 {
if r != nil {
return r.epoch
}
return 0
}
func (r *ResponseMetaHeader) SetEpoch(v uint64) {
if r != nil {
r.epoch = v
}
}
func (r *ResponseMetaHeader) GetXHeaders() []*XHeader {
if r != nil {
return r.xHeaders
}
return nil
}
func (r *ResponseMetaHeader) SetXHeaders(v []*XHeader) {
if r != nil {
r.xHeaders = v
}
}
func (r *ResponseMetaHeader) GetOrigin() *ResponseMetaHeader {
if r != nil {
return r.origin
}
return nil
}
func (r *ResponseMetaHeader) SetOrigin(v *ResponseMetaHeader) {
if r != nil {
r.origin = v
}
}
func (c *ObjectSessionContext) sessionTokenContext() {}
func (c *ObjectSessionContext) GetVerb() ObjectSessionVerb {
if c != nil {
return c.verb
}
return ObjectVerbUnknown
}
func (c *ObjectSessionContext) SetVerb(v ObjectSessionVerb) {
if c != nil {
c.verb = v
}
}
func (c *ObjectSessionContext) GetAddress() *refs.Address {
if c != nil {
return c.addr
}
return nil
}
func (c *ObjectSessionContext) SetAddress(v *refs.Address) {
if c != nil {
c.addr = v
}
}
func (t *SessionTokenBody) GetID() []byte {
if t != nil {
return t.id
}
return nil
}
func (t *SessionTokenBody) SetID(v []byte) {
if t != nil {
t.id = v
}
}
func (t *SessionTokenBody) GetOwnerID() *refs.OwnerID {
if t != nil {
return t.ownerID
}
return nil
}
func (t *SessionTokenBody) SetOwnerID(v *refs.OwnerID) {
if t != nil {
t.ownerID = v
}
}
func (t *SessionTokenBody) GetLifetime() *TokenLifetime {
if t != nil {
return t.lifetime
}
return nil
}
func (t *SessionTokenBody) SetLifetime(v *TokenLifetime) {
if t != nil {
t.lifetime = v
}
}
func (t *SessionTokenBody) GetSessionKey() []byte {
if t != nil {
return t.sessionKey
}
return nil
}
func (t *SessionTokenBody) SetSessionKey(v []byte) {
if t != nil {
t.sessionKey = v
}
}
func (t *SessionTokenBody) GetContext() SessionTokenContext {
if t != nil {
return t.ctx
}
return nil
}
func (t *SessionTokenBody) SetContext(v SessionTokenContext) {
if t != nil {
t.ctx = v
}
}
func (t *SessionToken) GetBody() *SessionTokenBody {
if t != nil {
return t.body
}
return nil
}
func (t *SessionToken) SetBody(v *SessionTokenBody) {
if t != nil {
t.body = v
}
}
func (t *SessionToken) GetSignature() *refs.Signature {
if t != nil {
return t.sig
}
return nil
}
func (t *SessionToken) SetSignature(v *refs.Signature) {
if t != nil {
t.sig = v
}
}