mirror of
https://github.com/anyproto/any-sync.git
synced 2025-06-11 10:18:08 +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
|
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…
Add table
Add a link
Reference in a new issue