mirror of
https://github.com/planetmint/planetmint-go.git
synced 2025-06-05 21:56:45 +00:00
add trust anchor check to attest machine and fix test cases
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
This commit is contained in:
parent
8b072d3186
commit
6d7158d124
@ -24,6 +24,14 @@ func (k msgServer) isNFTCreationRequest(machine *types.Machine) bool {
|
||||
func (k msgServer) AttestMachine(goCtx context.Context, msg *types.MsgAttestMachine) (*types.MsgAttestMachineResponse, error) {
|
||||
ctx := sdk.UnwrapSDKContext(goCtx)
|
||||
|
||||
ta, activated, found := k.GetTrustAnchor(ctx, msg.Machine.MachineId)
|
||||
if !found {
|
||||
return nil, errors.New("no preregistered trust anchor found for machine id")
|
||||
}
|
||||
if activated {
|
||||
return nil, errors.New("trust anchor has already been used for attestation")
|
||||
}
|
||||
|
||||
isValidIssuerPlanetmint := validateExtendedPublicKey(msg.Machine.IssuerPlanetmint, config.PlmntNetParams)
|
||||
if !isValidIssuerPlanetmint {
|
||||
return nil, errors.New("invalid planetmint key")
|
||||
@ -45,6 +53,7 @@ func (k msgServer) AttestMachine(goCtx context.Context, msg *types.MsgAttestMach
|
||||
|
||||
k.StoreMachine(ctx, *msg.Machine)
|
||||
k.StoreMachineIndex(ctx, *msg.Machine)
|
||||
k.StoreTrustAnchor(ctx, ta, true)
|
||||
|
||||
return &types.MsgAttestMachineResponse{}, nil
|
||||
}
|
||||
|
@ -28,9 +28,13 @@ func TestMsgServer(t *testing.T) {
|
||||
|
||||
func TestMsgServerAttestMachine(t *testing.T) {
|
||||
_, pk := sample.KeyPair()
|
||||
machine := sample.Machine(pk, pk)
|
||||
ta := sample.TrustAnchor()
|
||||
taMsg := types.NewMsgRegisterTrustAnchor(pk, &ta)
|
||||
machine := sample.Machine(pk, ta.Pubkey)
|
||||
msg := types.NewMsgAttestMachine(pk, &machine)
|
||||
msgServer, ctx := setupMsgServer(t)
|
||||
_, err := msgServer.RegisterTrustAnchor(ctx, taMsg)
|
||||
assert.NoError(t, err)
|
||||
res, err := msgServer.AttestMachine(ctx, msg)
|
||||
if assert.NoError(t, err) {
|
||||
assert.Equal(t, &types.MsgAttestMachineResponse{}, res)
|
||||
@ -39,11 +43,15 @@ func TestMsgServerAttestMachine(t *testing.T) {
|
||||
|
||||
func TestMsgServerAttestMachineInvalidLiquidKey(t *testing.T) {
|
||||
_, pk := sample.KeyPair()
|
||||
machine := sample.Machine(pk, pk)
|
||||
ta := sample.TrustAnchor()
|
||||
taMsg := types.NewMsgRegisterTrustAnchor(pk, &ta)
|
||||
machine := sample.Machine(pk, ta.Pubkey)
|
||||
machine.IssuerLiquid = "invalidkey"
|
||||
msg := types.NewMsgAttestMachine(pk, &machine)
|
||||
msgServer, ctx := setupMsgServer(t)
|
||||
_, err := msgServer.AttestMachine(ctx, msg)
|
||||
_, err := msgServer.RegisterTrustAnchor(ctx, taMsg)
|
||||
assert.NoError(t, err)
|
||||
_, err = msgServer.AttestMachine(ctx, msg)
|
||||
assert.EqualError(t, err, "invalid liquid key")
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user