Update space header validation
This commit is contained in:
parent
61819f04a2
commit
7246126f84
@ -2,7 +2,6 @@
|
|||||||
package spacestorage
|
package spacestorage
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"github.com/anytypeio/any-sync/app"
|
"github.com/anytypeio/any-sync/app"
|
||||||
@ -71,7 +70,7 @@ func ValidateSpaceStorageCreatePayload(payload SpaceStorageCreatePayload) (err e
|
|||||||
return nil
|
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, ".")
|
split := strings.Split(spaceId, ".")
|
||||||
if len(split) != 2 {
|
if len(split) != 2 {
|
||||||
return ErrIncorrectSpaceHeader
|
return ErrIncorrectSpaceHeader
|
||||||
@ -90,15 +89,15 @@ func ValidateSpaceHeader(spaceId string, header, identity []byte) (err error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if identity != nil && !bytes.Equal(identity, payload.Identity) {
|
payloadIdentity, err := crypto.UnmarshalEd25519PublicKeyProto(payload.Identity)
|
||||||
err = ErrIncorrectSpaceHeader
|
|
||||||
return
|
|
||||||
}
|
|
||||||
key, err := crypto.NewSigningEd25519PubKeyFromBytes(payload.Identity)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
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 {
|
if err != nil || !res {
|
||||||
err = ErrIncorrectSpaceHeader
|
err = ErrIncorrectSpaceHeader
|
||||||
return
|
return
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user