ACL Payload validation fix
This commit is contained in:
parent
4773eb1d06
commit
a2e6fccac6
@ -88,7 +88,6 @@ func ValidateSpaceStorageCreatePayload(payload SpaceStorageCreatePayload) (err e
|
|||||||
err = ErrIncorrectSpaceHeader
|
err = ErrIncorrectSpaceHeader
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -148,7 +147,7 @@ func validateCreateSpaceAclPayload(rawWithId *aclrecordproto.RawAclRecordWithId)
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
payloadIdentity, err := crypto.UnmarshalEd25519PublicKey(aclRoot.Identity)
|
payloadIdentity, err := crypto.UnmarshalEd25519PublicKeyProto(aclRoot.Identity)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -161,8 +160,11 @@ func validateCreateSpaceAclPayload(rawWithId *aclrecordproto.RawAclRecordWithId)
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
rawIdentity, err := payloadIdentity.Raw()
|
||||||
res, err = masterKey.Verify(aclRoot.Identity, aclRoot.IdentitySignature)
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
res, err = masterKey.Verify(rawIdentity, aclRoot.IdentitySignature)
|
||||||
if err != nil || !res {
|
if err != nil || !res {
|
||||||
err = ErrIncorrectSpaceHeader
|
err = ErrIncorrectSpaceHeader
|
||||||
return
|
return
|
||||||
|
|||||||
@ -215,12 +215,13 @@ func TestFailedAclPayloadSpace_IncorrectSignature(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
rawIdentity, err := accountKeys.SignKey.GetPublic().Raw()
|
rawIdentity, err := accountKeys.SignKey.GetPublic().Raw()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
identity, err := accountKeys.SignKey.GetPublic().Marshall()
|
||||||
identitySignature, err := masterKey.Sign(rawIdentity)
|
identitySignature, err := masterKey.Sign(rawIdentity)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
rawMasterKey, err := masterKey.GetPublic().Raw()
|
rawMasterKey, err := masterKey.GetPublic().Raw()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
aclRoot := aclrecordproto.AclRoot{
|
aclRoot := aclrecordproto.AclRoot{
|
||||||
Identity: rawIdentity,
|
Identity: identity,
|
||||||
MasterKey: rawMasterKey,
|
MasterKey: rawMasterKey,
|
||||||
SpaceId: "SpaceId",
|
SpaceId: "SpaceId",
|
||||||
EncryptedReadKey: readKey,
|
EncryptedReadKey: readKey,
|
||||||
@ -264,7 +265,7 @@ func TestFailedAclPayloadSpace_IncorrectIdentitySignature(t *testing.T) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
masterPubKey := masterKey.GetPublic()
|
masterPubKey := masterKey.GetPublic()
|
||||||
rawIdentity, err := accountKeys.SignKey.GetPublic().Raw()
|
identity, err := accountKeys.SignKey.GetPublic().Marshall()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -273,12 +274,12 @@ func TestFailedAclPayloadSpace_IncorrectIdentitySignature(t *testing.T) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
aclRoot := aclrecordproto.AclRoot{
|
aclRoot := aclrecordproto.AclRoot{
|
||||||
Identity: rawIdentity,
|
Identity: identity,
|
||||||
MasterKey: rawMasterKey,
|
MasterKey: rawMasterKey,
|
||||||
SpaceId: spaceId,
|
SpaceId: spaceId,
|
||||||
EncryptedReadKey: readKey,
|
EncryptedReadKey: readKey,
|
||||||
Timestamp: time.Now().Unix(),
|
Timestamp: time.Now().Unix(),
|
||||||
IdentitySignature: rawIdentity,
|
IdentitySignature: identity,
|
||||||
}
|
}
|
||||||
marshalled, err := aclRoot.Marshal()
|
marshalled, err := aclRoot.Marshal()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -550,6 +551,7 @@ func rawAclWithId(accountKeys *accountdata.AccountKeys, spaceId string) (aclHead
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
masterKey, _, err := crypto.GenerateRandomEd25519KeyPair()
|
masterKey, _, err := crypto.GenerateRandomEd25519KeyPair()
|
||||||
|
identity, err := accountKeys.SignKey.GetPublic().Marshall()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -567,7 +569,7 @@ func rawAclWithId(accountKeys *accountdata.AccountKeys, spaceId string) (aclHead
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
aclRoot := aclrecordproto.AclRoot{
|
aclRoot := aclrecordproto.AclRoot{
|
||||||
Identity: rawIdentity,
|
Identity: identity,
|
||||||
MasterKey: rawMasterKey,
|
MasterKey: rawMasterKey,
|
||||||
SpaceId: spaceId,
|
SpaceId: spaceId,
|
||||||
EncryptedReadKey: readKey,
|
EncryptedReadKey: readKey,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user