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

Update space header validation

This commit is contained in:
mcrakhman 2023-03-28 00:11:09 +02:00
parent 13f30aa60f
commit a8ef63eca0
No known key found for this signature in database
GPG key ID: DED12CFEF5B8396B

View file

@ -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