1
0
Fork 0
mirror of https://github.com/anyproto/any-sync.git synced 2025-06-11 10:18:08 +09:00

Add old account to coordinator proto

This commit is contained in:
mcrakhman 2023-04-02 18:53:02 +02:00
parent 20a4d85836
commit 13df75d0e0
No known key found for this signature in database
GPG key ID: DED12CFEF5B8396B
5 changed files with 195 additions and 79 deletions

View file

@ -3,18 +3,11 @@ package credentialprovider
import ( import (
"context" "context"
"github.com/anytypeio/any-sync/app"
"github.com/anytypeio/any-sync/commonspace/spacesyncproto" "github.com/anytypeio/any-sync/commonspace/spacesyncproto"
"github.com/anytypeio/any-sync/coordinator/coordinatorclient"
"github.com/gogo/protobuf/proto"
) )
const CName = "common.commonspace.credentialprovider" const CName = "common.commonspace.credentialprovider"
func New() app.Component {
return &credentialProvider{}
}
func NewNoOp() CredentialProvider { func NewNoOp() CredentialProvider {
return &noOpProvider{} return &noOpProvider{}
} }
@ -29,24 +22,3 @@ type noOpProvider struct {
func (n noOpProvider) GetCredential(ctx context.Context, spaceHeader *spacesyncproto.RawSpaceHeaderWithId) ([]byte, error) { func (n noOpProvider) GetCredential(ctx context.Context, spaceHeader *spacesyncproto.RawSpaceHeaderWithId) ([]byte, error) {
return nil, nil return nil, nil
} }
type credentialProvider struct {
client coordinatorclient.CoordinatorClient
}
func (c *credentialProvider) Init(a *app.App) (err error) {
c.client = a.MustComponent(coordinatorclient.CName).(coordinatorclient.CoordinatorClient)
return
}
func (c *credentialProvider) Name() (name string) {
return CName
}
func (c *credentialProvider) GetCredential(ctx context.Context, spaceHeader *spacesyncproto.RawSpaceHeaderWithId) ([]byte, error) {
receipt, err := c.client.SpaceSign(ctx, spaceHeader.Id, spaceHeader.RawHeader)
if err != nil {
return nil, err
}
return proto.Marshal(receipt)
}

View file

@ -85,6 +85,10 @@ func (a *aclRecordBuilder) Unmarshall(rawIdRecord *aclrecordproto.RawAclRecordWi
} }
func (a *aclRecordBuilder) BuildRoot(content RootContent) (rec *aclrecordproto.RawAclRecordWithId, err error) { func (a *aclRecordBuilder) BuildRoot(content RootContent) (rec *aclrecordproto.RawAclRecordWithId, err error) {
rawIdentity, err := content.PrivKey.GetPublic().Raw()
if err != nil {
return
}
identity, err := content.PrivKey.GetPublic().Marshall() identity, err := content.PrivKey.GetPublic().Marshall()
if err != nil { if err != nil {
return return
@ -93,7 +97,7 @@ func (a *aclRecordBuilder) BuildRoot(content RootContent) (rec *aclrecordproto.R
if err != nil { if err != nil {
return return
} }
identitySignature, err := content.MasterKey.Sign(identity) identitySignature, err := content.MasterKey.Sign(rawIdentity)
if err != nil { if err != nil {
return return
} }

View file

@ -9,6 +9,7 @@ import (
"github.com/anytypeio/any-sync/net/pool" "github.com/anytypeio/any-sync/net/pool"
"github.com/anytypeio/any-sync/net/rpc/rpcerr" "github.com/anytypeio/any-sync/net/rpc/rpcerr"
"github.com/anytypeio/any-sync/nodeconf" "github.com/anytypeio/any-sync/nodeconf"
"github.com/anytypeio/any-sync/util/crypto"
) )
const CName = "common.coordinator.coordinatorclient" const CName = "common.coordinator.coordinatorclient"
@ -20,11 +21,18 @@ func New() CoordinatorClient {
type CoordinatorClient interface { type CoordinatorClient interface {
ChangeStatus(ctx context.Context, spaceId string, deleteRaw *treechangeproto.RawTreeChangeWithId) (status *coordinatorproto.SpaceStatusPayload, err error) ChangeStatus(ctx context.Context, spaceId string, deleteRaw *treechangeproto.RawTreeChangeWithId) (status *coordinatorproto.SpaceStatusPayload, err error)
StatusCheck(ctx context.Context, spaceId string) (status *coordinatorproto.SpaceStatusPayload, err error) StatusCheck(ctx context.Context, spaceId string) (status *coordinatorproto.SpaceStatusPayload, err error)
SpaceSign(ctx context.Context, spaceId string, spaceHeader []byte) (receipt *coordinatorproto.SpaceReceiptWithSignature, err error) SpaceSign(ctx context.Context, payload SpaceSignPayload) (receipt *coordinatorproto.SpaceReceiptWithSignature, err error)
FileLimitCheck(ctx context.Context, spaceId string, identity []byte) (limit uint64, err error) FileLimitCheck(ctx context.Context, spaceId string, identity []byte) (limit uint64, err error)
app.Component app.Component
} }
type SpaceSignPayload struct {
SpaceId string
SpaceHeader []byte
OldAccount crypto.PrivKey
Identity crypto.PrivKey
}
type coordinatorClient struct { type coordinatorClient struct {
pool pool.Pool pool pool.Pool
nodeConf nodeconf.Service nodeConf nodeconf.Service
@ -74,14 +82,28 @@ func (c *coordinatorClient) Name() (name string) {
return CName return CName
} }
func (c *coordinatorClient) SpaceSign(ctx context.Context, spaceId string, spaceHeader []byte) (receipt *coordinatorproto.SpaceReceiptWithSignature, err error) { func (c *coordinatorClient) SpaceSign(ctx context.Context, payload SpaceSignPayload) (receipt *coordinatorproto.SpaceReceiptWithSignature, err error) {
cl, err := c.client(ctx) cl, err := c.client(ctx)
if err != nil { if err != nil {
return return
} }
newRaw, err := payload.Identity.GetPublic().Raw()
if err != nil {
return
}
newSignature, err := payload.OldAccount.Sign(newRaw)
if err != nil {
return
}
oldIdentity, err := payload.OldAccount.GetPublic().Marshall()
if err != nil {
return
}
resp, err := cl.SpaceSign(ctx, &coordinatorproto.SpaceSignRequest{ resp, err := cl.SpaceSign(ctx, &coordinatorproto.SpaceSignRequest{
SpaceId: spaceId, SpaceId: payload.SpaceId,
Header: spaceHeader, Header: payload.SpaceHeader,
OldIdentity: oldIdentity,
NewIdentitySignature: newSignature,
}) })
if err != nil { if err != nil {
err = rpcerr.Unwrap(err) err = rpcerr.Unwrap(err)

View file

@ -91,8 +91,14 @@ func (SpaceStatus) EnumDescriptor() ([]byte, []int) {
} }
type SpaceSignRequest struct { type SpaceSignRequest struct {
// SpaceId is the id of the signed space
SpaceId string `protobuf:"bytes,1,opt,name=spaceId,proto3" json:"spaceId,omitempty"` SpaceId string `protobuf:"bytes,1,opt,name=spaceId,proto3" json:"spaceId,omitempty"`
Header []byte `protobuf:"bytes,2,opt,name=header,proto3" json:"header,omitempty"` // Header is the header of the signed space
Header []byte `protobuf:"bytes,2,opt,name=header,proto3" json:"header,omitempty"`
// OldIdentity is the old identity of the space owner
OldIdentity []byte `protobuf:"bytes,3,opt,name=oldIdentity,proto3" json:"oldIdentity,omitempty"`
// NewIdentitySignature is the new identity signed by the old one
NewIdentitySignature []byte `protobuf:"bytes,4,opt,name=newIdentitySignature,proto3" json:"newIdentitySignature,omitempty"`
} }
func (m *SpaceSignRequest) Reset() { *m = SpaceSignRequest{} } func (m *SpaceSignRequest) Reset() { *m = SpaceSignRequest{} }
@ -142,6 +148,20 @@ func (m *SpaceSignRequest) GetHeader() []byte {
return nil return nil
} }
func (m *SpaceSignRequest) GetOldIdentity() []byte {
if m != nil {
return m.OldIdentity
}
return nil
}
func (m *SpaceSignRequest) GetNewIdentitySignature() []byte {
if m != nil {
return m.NewIdentitySignature
}
return nil
}
type SpaceStatusPayload struct { type SpaceStatusPayload struct {
Status SpaceStatus `protobuf:"varint,1,opt,name=status,proto3,enum=coordinator.SpaceStatus" json:"status,omitempty"` Status SpaceStatus `protobuf:"varint,1,opt,name=status,proto3,enum=coordinator.SpaceStatus" json:"status,omitempty"`
DeletionTimestamp int64 `protobuf:"varint,2,opt,name=deletionTimestamp,proto3" json:"deletionTimestamp,omitempty"` DeletionTimestamp int64 `protobuf:"varint,2,opt,name=deletionTimestamp,proto3" json:"deletionTimestamp,omitempty"`
@ -689,51 +709,53 @@ func init() {
} }
var fileDescriptor_d94f6f99586adae2 = []byte{ var fileDescriptor_d94f6f99586adae2 = []byte{
// 704 bytes of a gzipped FileDescriptorProto // 728 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0x4d, 0x4f, 0x13, 0x4f, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0xcf, 0x4e, 0x13, 0x41,
0x18, 0xef, 0xb6, 0x05, 0xd2, 0xa7, 0xa4, 0xff, 0x65, 0xfe, 0x80, 0x6b, 0x83, 0x2b, 0x59, 0x95, 0x18, 0xef, 0xb6, 0x05, 0xd2, 0xaf, 0xa4, 0x2e, 0x23, 0xe0, 0xda, 0xe0, 0xda, 0xac, 0x4a, 0x1a,
0x34, 0xc4, 0x00, 0x29, 0x6a, 0xe2, 0xcd, 0x58, 0x30, 0xc1, 0x18, 0x24, 0x8b, 0xd5, 0xa8, 0x07, 0x62, 0x80, 0x14, 0x35, 0xf1, 0x66, 0xac, 0x98, 0x60, 0x0c, 0x92, 0xc5, 0x6a, 0xd4, 0x83, 0x59,
0xb3, 0xec, 0x3e, 0xc0, 0x84, 0x65, 0x67, 0xdd, 0x99, 0x1a, 0x38, 0x98, 0xf8, 0x11, 0x3c, 0xf9, 0x76, 0x3f, 0x60, 0xc2, 0xb2, 0xb3, 0xee, 0x4c, 0x15, 0x0e, 0x26, 0x3e, 0x82, 0x27, 0x0f, 0x3e,
0x29, 0xfc, 0x08, 0x7e, 0x00, 0x8f, 0x1c, 0x3d, 0x1a, 0xf8, 0x14, 0xde, 0xcc, 0xbe, 0x4c, 0x3b, 0x83, 0x8f, 0xe0, 0x03, 0x78, 0xe4, 0xe8, 0xd1, 0xc0, 0x53, 0x78, 0x33, 0x9d, 0xdd, 0x6d, 0x67,
0xdb, 0x6e, 0xcb, 0xc1, 0x0b, 0x74, 0x7e, 0xcf, 0xcb, 0xef, 0xf7, 0xbc, 0xcc, 0x2c, 0x3c, 0x74, 0xdb, 0x6d, 0x39, 0x78, 0x81, 0xce, 0xef, 0xfb, 0x7d, 0x7f, 0x7f, 0xdf, 0xcc, 0xc2, 0x7d, 0x97,
0x19, 0x8b, 0x3c, 0x1a, 0x38, 0x82, 0x45, 0xeb, 0xca, 0xef, 0x30, 0x62, 0x82, 0xad, 0x27, 0x7f, 0xb1, 0xc8, 0xa3, 0x81, 0x23, 0x58, 0xb4, 0xa6, 0xfc, 0x0e, 0x23, 0x26, 0xd8, 0x9a, 0xfc, 0xcb,
0xb9, 0x8a, 0xaf, 0x25, 0x10, 0xa9, 0x2b, 0x90, 0xb5, 0x05, 0xfa, 0x7e, 0xe8, 0xb8, 0xb8, 0x4f, 0x55, 0x7c, 0x55, 0x42, 0xa4, 0xaa, 0x40, 0xd6, 0x77, 0x0d, 0xf4, 0xdd, 0xd0, 0x71, 0x71, 0x97,
0x8f, 0x02, 0x1b, 0x3f, 0xf6, 0x90, 0x0b, 0x62, 0xc0, 0x0c, 0x8f, 0xb1, 0x1d, 0xcf, 0xd0, 0x96, 0x1e, 0x04, 0x36, 0x7e, 0xe8, 0x22, 0x17, 0xc4, 0x80, 0x19, 0xde, 0xc3, 0xb6, 0x3c, 0x43, 0x6b,
0xb5, 0x56, 0xcd, 0x96, 0x47, 0xb2, 0x08, 0xd3, 0xc7, 0xe8, 0x78, 0x18, 0x19, 0xe5, 0x65, 0xad, 0x68, 0xcd, 0x8a, 0x9d, 0x1e, 0xc9, 0x22, 0x4c, 0x1f, 0xa2, 0xe3, 0x61, 0x64, 0x14, 0x1b, 0x5a,
0x35, 0x6b, 0x67, 0x27, 0x4b, 0x00, 0x49, 0xb3, 0x08, 0x47, 0xf4, 0xf8, 0x9e, 0x73, 0xee, 0x33, 0x73, 0xd6, 0x4e, 0x4e, 0xa4, 0x01, 0x55, 0xe6, 0x7b, 0x5b, 0x1e, 0x06, 0x82, 0x8a, 0x53, 0xa3,
0xc7, 0x23, 0x1b, 0x30, 0xcd, 0x13, 0x20, 0x49, 0xd3, 0x68, 0x1b, 0x6b, 0xaa, 0x18, 0x25, 0xc0, 0x24, 0x8d, 0x2a, 0x44, 0x5a, 0x30, 0x1f, 0xe0, 0xa7, 0xf4, 0xd8, 0xcb, 0xe6, 0x88, 0x6e, 0x84,
0xce, 0xfc, 0xc8, 0x7d, 0x98, 0xf3, 0xd0, 0x47, 0x41, 0x59, 0xf0, 0x8a, 0x9e, 0x22, 0x17, 0xce, 0x46, 0x59, 0x52, 0x73, 0x6d, 0x96, 0x00, 0x12, 0xd7, 0x26, 0x1c, 0xd1, 0xe5, 0x3b, 0xce, 0xa9,
0x69, 0x98, 0x50, 0x55, 0xec, 0x51, 0x83, 0xd5, 0x85, 0x39, 0x45, 0x3b, 0x0f, 0x59, 0xc0, 0x91, 0xcf, 0x1c, 0x8f, 0xac, 0xc3, 0x34, 0x97, 0x80, 0x2c, 0xae, 0xd6, 0x32, 0x56, 0xd5, 0x1e, 0x15,
0x3c, 0x81, 0x99, 0x08, 0x5d, 0xa4, 0xa1, 0x48, 0x58, 0xeb, 0xed, 0x95, 0x51, 0x56, 0x3b, 0x75, 0x07, 0x3b, 0xe1, 0x91, 0xbb, 0x30, 0xe7, 0xa1, 0x8f, 0x82, 0xb2, 0xe0, 0x25, 0x3d, 0x46, 0x2e,
0x78, 0x43, 0xc5, 0x71, 0x1c, 0xeb, 0x88, 0x5e, 0x84, 0xb6, 0x0c, 0xb3, 0x4e, 0xe0, 0xe6, 0x58, 0x9c, 0xe3, 0x50, 0x36, 0x50, 0xb2, 0x47, 0x0d, 0x56, 0x07, 0xe6, 0x94, 0x89, 0xf0, 0x90, 0x05,
0x2f, 0xb2, 0x01, 0xff, 0x73, 0xc5, 0x98, 0x95, 0x9a, 0x50, 0xcd, 0xda, 0x45, 0x26, 0xb2, 0x04, 0x1c, 0xc9, 0x23, 0x98, 0x89, 0xd0, 0x45, 0x1a, 0x0a, 0x99, 0xb5, 0xda, 0x5a, 0x1e, 0xcd, 0x6a,
0x35, 0x2e, 0xc3, 0xb3, 0xb6, 0x0d, 0x00, 0xeb, 0x87, 0x06, 0xb3, 0x2a, 0xdb, 0xe4, 0xe6, 0x87, 0xc7, 0x84, 0xd7, 0x54, 0x1c, 0xf6, 0x7b, 0xb0, 0x53, 0x37, 0xeb, 0x08, 0xae, 0x8f, 0x65, 0x91,
0x88, 0xd1, 0x8e, 0x97, 0x64, 0xa9, 0xd9, 0xd9, 0x89, 0xb4, 0xe0, 0x3f, 0xc7, 0x75, 0x59, 0x2f, 0x75, 0xb8, 0xca, 0x15, 0x63, 0xd2, 0xaa, 0x4c, 0x35, 0x6b, 0xe7, 0x99, 0xc8, 0x12, 0x54, 0x78,
0x10, 0x3b, 0x1e, 0x06, 0x82, 0x8a, 0x73, 0xa3, 0x92, 0xd0, 0x0c, 0xc3, 0xb1, 0x78, 0x97, 0x05, 0x7f, 0x88, 0xb1, 0x18, 0x03, 0xc0, 0xfa, 0xa9, 0xc1, 0xac, 0x9a, 0x6d, 0xb2, 0xa4, 0x21, 0x62,
0x22, 0x62, 0xfe, 0x2e, 0xf3, 0xb0, 0xef, 0x5d, 0x4d, 0xc5, 0x17, 0x98, 0x88, 0x09, 0xf0, 0xc9, 0xb4, 0xe5, 0xc9, 0x28, 0x15, 0x3b, 0x39, 0x91, 0x26, 0x5c, 0x71, 0x5c, 0x97, 0x75, 0x03, 0x31,
0xf1, 0xa9, 0xd7, 0x0d, 0x04, 0xf5, 0x8d, 0xa9, 0x65, 0xad, 0x55, 0xb5, 0x15, 0xc4, 0x7a, 0x0f, 0x24, 0xeb, 0x30, 0xdc, 0x2b, 0xde, 0x65, 0x81, 0x88, 0x98, 0xbf, 0xcd, 0x3c, 0xec, 0xb3, 0x63,
0x0b, 0xcf, 0xa8, 0x8f, 0x2f, 0xe8, 0x29, 0x15, 0x9d, 0x63, 0x74, 0x4f, 0xe4, 0x0e, 0x15, 0x88, 0x65, 0xf3, 0x4c, 0xc4, 0x04, 0xf8, 0xe8, 0xf8, 0xd4, 0xeb, 0x04, 0x82, 0xfa, 0xc6, 0x54, 0x43,
0xd2, 0x8a, 0x45, 0x29, 0x05, 0x97, 0x73, 0x05, 0x5b, 0x6b, 0xb0, 0x38, 0x9c, 0x3c, 0x1b, 0xf2, 0x6b, 0x96, 0x6d, 0x05, 0xb1, 0xde, 0xc1, 0xc2, 0x53, 0xea, 0xe3, 0x73, 0x7a, 0x4c, 0x45, 0xfb,
0x3c, 0x4c, 0xf9, 0x31, 0x9a, 0xe4, 0xac, 0xda, 0xe9, 0xc1, 0xda, 0x84, 0x1b, 0xca, 0x52, 0xe5, 0x10, 0xdd, 0xa3, 0x74, 0x33, 0x73, 0x8a, 0xd2, 0xf2, 0x8b, 0x52, 0x1a, 0x2e, 0x66, 0x1a, 0xb6,
0xe4, 0x8c, 0xed, 0xaa, 0xd5, 0x05, 0x63, 0x34, 0x28, 0xa3, 0x79, 0x0c, 0x33, 0xa1, 0x32, 0xe0, 0x56, 0x61, 0x71, 0x38, 0x78, 0x22, 0xf2, 0x3c, 0x4c, 0xf9, 0x3d, 0x54, 0xc6, 0x2c, 0xdb, 0xf1,
0x7a, 0xfb, 0xf6, 0xb8, 0x0d, 0xce, 0x86, 0x6d, 0x4b, 0x7f, 0xeb, 0x9b, 0x36, 0x94, 0xd7, 0x09, 0xc1, 0xda, 0x80, 0x6b, 0xca, 0x52, 0x65, 0xca, 0x19, 0x3b, 0x55, 0xab, 0x03, 0xc6, 0xa8, 0x53,
0x8e, 0xf0, 0xfa, 0x0b, 0xb6, 0x0a, 0xba, 0xdc, 0xf3, 0x34, 0xa4, 0xdf, 0x95, 0x11, 0x9c, 0x3c, 0x92, 0xe6, 0x21, 0xcc, 0x84, 0x8a, 0xc0, 0xd5, 0xd6, 0xcd, 0x71, 0x1b, 0x9c, 0x88, 0x6d, 0xa7,
0x80, 0x85, 0x3c, 0x26, 0x97, 0x31, 0x9d, 0x7e, 0xb1, 0xd1, 0x7a, 0x9d, 0x6d, 0x77, 0x5e, 0xd7, 0x7c, 0xeb, 0x9b, 0x36, 0x14, 0xd7, 0x09, 0x0e, 0xf0, 0xf2, 0x6b, 0xbb, 0x02, 0x7a, 0xba, 0xe7,
0x3f, 0x17, 0xbc, 0xfa, 0x45, 0x03, 0xd8, 0x8e, 0x22, 0x16, 0x75, 0x98, 0x87, 0x9c, 0x34, 0x00, 0xb1, 0x4b, 0x7f, 0x2a, 0x23, 0x38, 0xb9, 0x07, 0x0b, 0x59, 0x2c, 0x5d, 0xc6, 0x58, 0xfd, 0x7c,
0xba, 0x01, 0x9e, 0x85, 0xe8, 0x0a, 0xf4, 0xf4, 0x12, 0xd1, 0xb3, 0x35, 0xdf, 0x8a, 0x45, 0xa1, 0xa3, 0xf5, 0x2a, 0xd9, 0xee, 0x6c, 0x5d, 0xff, 0xdd, 0xf0, 0xca, 0x17, 0x0d, 0x60, 0x33, 0x8a,
0xa7, 0x6b, 0xc4, 0x80, 0xf9, 0x01, 0x42, 0x59, 0xb0, 0x87, 0x81, 0x47, 0x83, 0x23, 0xbd, 0xdc, 0x58, 0xd4, 0x66, 0x1e, 0x72, 0x52, 0x03, 0xe8, 0x04, 0x78, 0x12, 0xa2, 0x2b, 0xd0, 0xd3, 0x0b,
0xf7, 0xed, 0x44, 0xe8, 0xc4, 0xbe, 0x15, 0x42, 0xa0, 0x91, 0x20, 0xbb, 0x4c, 0x6c, 0x9f, 0x51, 0x44, 0x4f, 0xd6, 0xfc, 0x49, 0xaf, 0x28, 0xf4, 0x74, 0x8d, 0x18, 0x30, 0x3f, 0x40, 0x28, 0x0b,
0x2e, 0xb8, 0x5e, 0x25, 0x3a, 0xd4, 0x13, 0xbe, 0x97, 0x87, 0x87, 0x1c, 0x85, 0xfe, 0xbd, 0xbc, 0x76, 0x30, 0xf0, 0x68, 0x70, 0xa0, 0x17, 0xfb, 0xdc, 0x76, 0x84, 0x4e, 0x8f, 0x5b, 0x22, 0x04,
0xfa, 0x19, 0xea, 0x8a, 0x42, 0xb2, 0x98, 0x7b, 0x94, 0x64, 0xb2, 0x12, 0x31, 0xa1, 0xa9, 0x16, 0x6a, 0x12, 0xd9, 0x66, 0x62, 0xf3, 0x84, 0x72, 0xc1, 0xf5, 0x32, 0xd1, 0xa1, 0x2a, 0xf3, 0xbd,
0x92, 0xd2, 0x4a, 0x15, 0xba, 0x36, 0x64, 0x97, 0x86, 0x7d, 0xe1, 0x44, 0x71, 0x7c, 0x79, 0x28, 0xd8, 0xdf, 0xe7, 0x28, 0xf4, 0x1f, 0xc5, 0x95, 0xcf, 0x50, 0x55, 0x2a, 0x24, 0x8b, 0x99, 0x47,
0xaf, 0x2c, 0xa8, 0xd2, 0xfe, 0x53, 0x86, 0x7a, 0x67, 0xd0, 0x2d, 0xf2, 0x1c, 0x6a, 0xfd, 0xe7, 0x29, 0x0d, 0x56, 0x20, 0x26, 0xd4, 0xd5, 0x46, 0xe2, 0xb4, 0x69, 0x15, 0xba, 0x36, 0x64, 0x4f,
0x89, 0xdc, 0x2a, 0x68, 0xe4, 0xe0, 0xc9, 0x6d, 0x9a, 0xe3, 0xcc, 0xd9, 0x60, 0xde, 0x42, 0x23, 0x0d, 0xbb, 0xc2, 0x89, 0x7a, 0xfe, 0xc5, 0xa1, 0xb8, 0x69, 0x43, 0xa5, 0xd6, 0xdf, 0x22, 0x54,
0x7f, 0x15, 0x88, 0x95, 0x8b, 0x28, 0xbc, 0x84, 0xcd, 0x3b, 0x13, 0x7d, 0xb2, 0xd4, 0x1f, 0xe4, 0xdb, 0x83, 0x69, 0x91, 0x67, 0x50, 0xe9, 0x3f, 0x4f, 0xe4, 0x46, 0xce, 0x20, 0x07, 0x0f, 0x79,
0x17, 0x60, 0x70, 0x01, 0xc8, 0xdd, 0x71, 0x63, 0xcf, 0xa5, 0xbf, 0x77, 0x8d, 0x57, 0x46, 0x70, 0xdd, 0x1c, 0x67, 0x4e, 0x84, 0x79, 0x03, 0xb5, 0xec, 0x55, 0x20, 0x56, 0xc6, 0x23, 0xf7, 0x12,
0x20, 0x9f, 0x69, 0x65, 0xe3, 0xc8, 0x84, 0x58, 0xe5, 0xa6, 0x34, 0x57, 0xae, 0x73, 0x4b, 0x39, 0xd6, 0x6f, 0x4d, 0xe4, 0x24, 0xa1, 0xdf, 0xa7, 0xdf, 0x95, 0xc1, 0x05, 0x20, 0xb7, 0xc7, 0xc9,
0x9e, 0x3e, 0xfa, 0x79, 0x69, 0x6a, 0x17, 0x97, 0xa6, 0xf6, 0xfb, 0xd2, 0xd4, 0xbe, 0x5e, 0x99, 0x9e, 0x09, 0x7f, 0xe7, 0x12, 0x56, 0x92, 0x60, 0x2f, 0x7d, 0xa6, 0x95, 0x8d, 0x23, 0x13, 0x7c,
0xa5, 0x8b, 0x2b, 0xb3, 0xf4, 0xeb, 0xca, 0x2c, 0xbd, 0x5b, 0x9a, 0xf4, 0x91, 0x3c, 0x98, 0x4e, 0x95, 0x9b, 0x52, 0x5f, 0xbe, 0x8c, 0x16, 0xe7, 0x78, 0xfc, 0xe0, 0xd7, 0xb9, 0xa9, 0x9d, 0x9d,
0xfe, 0x6d, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xe4, 0x76, 0x96, 0x0f, 0x4b, 0x07, 0x00, 0x00, 0x9b, 0xda, 0x9f, 0x73, 0x53, 0xfb, 0x7a, 0x61, 0x16, 0xce, 0x2e, 0xcc, 0xc2, 0xef, 0x0b, 0xb3,
0xf0, 0x76, 0x69, 0xd2, 0xb7, 0x77, 0x6f, 0x5a, 0xfe, 0xdb, 0xf8, 0x17, 0x00, 0x00, 0xff, 0xff,
0x86, 0x2f, 0x30, 0xee, 0xa2, 0x07, 0x00, 0x00,
} }
func (m *SpaceSignRequest) Marshal() (dAtA []byte, err error) { func (m *SpaceSignRequest) Marshal() (dAtA []byte, err error) {
@ -756,6 +778,20 @@ func (m *SpaceSignRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i _ = i
var l int var l int
_ = l _ = l
if len(m.NewIdentitySignature) > 0 {
i -= len(m.NewIdentitySignature)
copy(dAtA[i:], m.NewIdentitySignature)
i = encodeVarintCoordinator(dAtA, i, uint64(len(m.NewIdentitySignature)))
i--
dAtA[i] = 0x22
}
if len(m.OldIdentity) > 0 {
i -= len(m.OldIdentity)
copy(dAtA[i:], m.OldIdentity)
i = encodeVarintCoordinator(dAtA, i, uint64(len(m.OldIdentity)))
i--
dAtA[i] = 0x1a
}
if len(m.Header) > 0 { if len(m.Header) > 0 {
i -= len(m.Header) i -= len(m.Header)
copy(dAtA[i:], m.Header) copy(dAtA[i:], m.Header)
@ -1168,6 +1204,14 @@ func (m *SpaceSignRequest) Size() (n int) {
if l > 0 { if l > 0 {
n += 1 + l + sovCoordinator(uint64(l)) n += 1 + l + sovCoordinator(uint64(l))
} }
l = len(m.OldIdentity)
if l > 0 {
n += 1 + l + sovCoordinator(uint64(l))
}
l = len(m.NewIdentitySignature)
if l > 0 {
n += 1 + l + sovCoordinator(uint64(l))
}
return n return n
} }
@ -1434,6 +1478,74 @@ func (m *SpaceSignRequest) Unmarshal(dAtA []byte) error {
m.Header = []byte{} m.Header = []byte{}
} }
iNdEx = postIndex iNdEx = postIndex
case 3:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field OldIdentity", wireType)
}
var byteLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowCoordinator
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if byteLen < 0 {
return ErrInvalidLengthCoordinator
}
postIndex := iNdEx + byteLen
if postIndex < 0 {
return ErrInvalidLengthCoordinator
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.OldIdentity = append(m.OldIdentity[:0], dAtA[iNdEx:postIndex]...)
if m.OldIdentity == nil {
m.OldIdentity = []byte{}
}
iNdEx = postIndex
case 4:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field NewIdentitySignature", wireType)
}
var byteLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowCoordinator
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if byteLen < 0 {
return ErrInvalidLengthCoordinator
}
postIndex := iNdEx + byteLen
if postIndex < 0 {
return ErrInvalidLengthCoordinator
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.NewIdentitySignature = append(m.NewIdentitySignature[:0], dAtA[iNdEx:postIndex]...)
if m.NewIdentitySignature == nil {
m.NewIdentitySignature = []byte{}
}
iNdEx = postIndex
default: default:
iNdEx = preIndex iNdEx = preIndex
skippy, err := skipCoordinator(dAtA[iNdEx:]) skippy, err := skipCoordinator(dAtA[iNdEx:])

View file

@ -21,8 +21,14 @@ service Coordinator {
} }
message SpaceSignRequest { message SpaceSignRequest {
// SpaceId is the id of the signed space
string spaceId = 1; string spaceId = 1;
// Header is the header of the signed space
bytes header = 2; bytes header = 2;
// OldIdentity is the old identity of the space owner
bytes oldIdentity = 3;
// NewIdentitySignature is the new identity signed by the old one
bytes newIdentitySignature = 4;
} }
enum ErrorCodes { enum ErrorCodes {