mirror of
https://github.com/anyproto/any-sync.git
synced 2025-06-09 17:45:03 +09:00
Update space header validation
This commit is contained in:
parent
13f30aa60f
commit
a8ef63eca0
1 changed files with 7 additions and 8 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue