From a8ef63eca098a9d4cc69efacb7e3e1b9ea05b107 Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Tue, 28 Mar 2023 00:11:09 +0200 Subject: [PATCH] Update space header validation --- commonspace/spacestorage/spacestorage.go | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/commonspace/spacestorage/spacestorage.go b/commonspace/spacestorage/spacestorage.go index a2bf66a0..8d300a48 100644 --- a/commonspace/spacestorage/spacestorage.go +++ b/commonspace/spacestorage/spacestorage.go @@ -2,7 +2,6 @@ package spacestorage import ( - "bytes" "context" "errors" "github.com/anytypeio/any-sync/app" @@ -71,7 +70,7 @@ func ValidateSpaceStorageCreatePayload(payload SpaceStorageCreatePayload) (err e return nil } -func ValidateSpaceHeader(spaceId string, header, identity []byte) (err error) { +func ValidateSpaceHeader(spaceId string, header []byte, identity crypto.PubKey) (err error) { split := strings.Split(spaceId, ".") if len(split) != 2 { return ErrIncorrectSpaceHeader @@ -90,15 +89,15 @@ func ValidateSpaceHeader(spaceId string, header, identity []byte) (err error) { if err != nil { return } - if identity != nil && !bytes.Equal(identity, payload.Identity) { - err = ErrIncorrectSpaceHeader - return - } - key, err := crypto.NewSigningEd25519PubKeyFromBytes(payload.Identity) + payloadIdentity, err := crypto.UnmarshalEd25519PublicKeyProto(payload.Identity) if err != nil { return } - res, err := key.Verify(raw.SpaceHeader, raw.Signature) + if identity != nil && !payloadIdentity.Equals(identity) { + err = ErrIncorrectSpaceHeader + return + } + res, err := identity.Verify(raw.SpaceHeader, raw.Signature) if err != nil || !res { err = ErrIncorrectSpaceHeader return