From 7b5663318593e1b7e5a9d84b7a73d6c8966f6cc4 Mon Sep 17 00:00:00 2001 From: Leonard Lyubich Date: Mon, 24 Aug 2020 17:54:48 +0300 Subject: [PATCH] [#12] services/session: Implement Sign/Verify service Signed-off-by: Leonard Lyubich --- pkg/services/session/sign.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 pkg/services/session/sign.go diff --git a/pkg/services/session/sign.go b/pkg/services/session/sign.go new file mode 100644 index 000000000..c42319a83 --- /dev/null +++ b/pkg/services/session/sign.go @@ -0,0 +1,33 @@ +package session + +import ( + "context" + "crypto/ecdsa" + + "github.com/nspcc-dev/neofs-api-go/v2/session" + "github.com/nspcc-dev/neofs-node/pkg/services/util" +) + +type signService struct { + unarySigService *util.UnarySignService +} + +func NewSignService(key *ecdsa.PrivateKey, svc session.Service) session.Service { + return &signService{ + unarySigService: util.NewUnarySignService( + key, + func(ctx context.Context, req interface{}) (interface{}, error) { + return svc.Create(ctx, req.(*session.CreateRequest)) + }, + ), + } +} + +func (s *signService) Create(ctx context.Context, req *session.CreateRequest) (*session.CreateResponse, error) { + resp, err := s.unarySigService.HandleUnaryRequest(ctx, req) + if err != nil { + return nil, err + } + + return resp.(*session.CreateResponse), nil +}