|
|
|
|
@ -600,18 +600,14 @@ func (b *LocalBackend) NetworkLockInit(keys []tka.Key, disablementValues [][]byt |
|
|
|
|
|
|
|
|
|
var ourNodeKey key.NodePublic |
|
|
|
|
var nlPriv key.NLPrivate |
|
|
|
|
b.mu.Lock() |
|
|
|
|
|
|
|
|
|
if !b.capTailnetLock { |
|
|
|
|
b.mu.Unlock() |
|
|
|
|
return errors.New("not permitted to enable tailnet lock") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
b.mu.Lock() |
|
|
|
|
if p := b.pm.CurrentPrefs(); p.Valid() && p.Persist().Valid() && !p.Persist().PrivateNodeKey().IsZero() { |
|
|
|
|
ourNodeKey = p.Persist().PublicNodeKey() |
|
|
|
|
nlPriv = p.Persist().NetworkLockKey() |
|
|
|
|
} |
|
|
|
|
b.mu.Unlock() |
|
|
|
|
|
|
|
|
|
if ourNodeKey.IsZero() || nlPriv.IsZero() { |
|
|
|
|
return errors.New("no node-key: is tailscale logged in?") |
|
|
|
|
} |
|
|
|
|
@ -671,6 +667,13 @@ func (b *LocalBackend) NetworkLockInit(keys []tka.Key, disablementValues [][]byt |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// NetworkLockAllowed reports whether the node is allowed to use Tailnet Lock.
|
|
|
|
|
func (b *LocalBackend) NetworkLockAllowed() bool { |
|
|
|
|
b.mu.Lock() |
|
|
|
|
defer b.mu.Unlock() |
|
|
|
|
return b.capTailnetLock |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Only use is in tests.
|
|
|
|
|
func (b *LocalBackend) NetworkLockVerifySignatureForTest(nks tkatype.MarshaledSignature, nodeKey key.NodePublic) error { |
|
|
|
|
b.mu.Lock() |
|
|
|
|
|