本文整理汇总了Golang中github.com/snapcore/snapd/asserts/sysdb.InjectTrusted函数的典型用法代码示例。如果您正苦于以下问题:Golang InjectTrusted函数的具体用法?Golang InjectTrusted怎么用?Golang InjectTrusted使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了InjectTrusted函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: SetUpTest
func (s *assertMgrSuite) SetUpTest(c *C) {
dirs.SetRootDir(c.MkDir())
rootPrivKey, _ := assertstest.GenerateKey(1024)
storePrivKey, _ := assertstest.GenerateKey(752)
s.storeSigning = assertstest.NewStoreStack("can0nical", rootPrivKey, storePrivKey)
s.restore = sysdb.InjectTrusted(s.storeSigning.Trusted)
dev1PrivKey, _ := assertstest.GenerateKey(752)
s.dev1Acct = assertstest.NewAccount(s.storeSigning, "developer1", nil, "")
err := s.storeSigning.Add(s.dev1Acct)
c.Assert(err, IsNil)
// developer signing
dev1AcctKey := assertstest.NewAccountKey(s.storeSigning, s.dev1Acct, nil, dev1PrivKey.PublicKey(), "")
err = s.storeSigning.Add(dev1AcctKey)
c.Assert(err, IsNil)
s.dev1Signing = assertstest.NewSigningDB(s.dev1Acct.AccountID(), dev1PrivKey)
s.state = state.New(nil)
mgr, err := assertstate.Manager(s.state)
c.Assert(err, IsNil)
s.mgr = mgr
s.state.Lock()
snapstate.ReplaceStore(s.state, &fakeStore{
state: s.state,
db: s.storeSigning,
})
s.state.Unlock()
}
示例2: SetUpTest
func (s *FirstBootTestSuite) SetUpTest(c *C) {
tempdir := c.MkDir()
dirs.SetRootDir(tempdir)
// mock the world!
err := os.MkdirAll(filepath.Join(dirs.SnapSeedDir, "snaps"), 0755)
c.Assert(err, IsNil)
err = os.MkdirAll(filepath.Join(dirs.SnapSeedDir, "assertions"), 0755)
c.Assert(err, IsNil)
err = os.MkdirAll(dirs.SnapServicesDir, 0755)
c.Assert(err, IsNil)
os.Setenv("SNAPPY_SQUASHFS_UNPACK_FOR_TESTS", "1")
s.systemctl = testutil.MockCommand(c, "systemctl", "")
s.mockUdevAdm = testutil.MockCommand(c, "udevadm", "")
err = ioutil.WriteFile(filepath.Join(dirs.SnapSeedDir, "seed.yaml"), nil, 0644)
c.Assert(err, IsNil)
rootPrivKey, _ := assertstest.GenerateKey(1024)
storePrivKey, _ := assertstest.GenerateKey(752)
s.storeSigning = assertstest.NewStoreStack("can0nical", rootPrivKey, storePrivKey)
s.restore = sysdb.InjectTrusted(s.storeSigning.Trusted)
s.brandPrivKey, _ = assertstest.GenerateKey(752)
s.brandSigning = assertstest.NewSigningDB("my-brand", s.brandPrivKey)
ovld, err := overlord.New()
c.Assert(err, IsNil)
s.overlord = ovld
}
示例3: SetUpTest
func (ms *mgrsSuite) SetUpTest(c *C) {
ms.tempdir = c.MkDir()
dirs.SetRootDir(ms.tempdir)
err := os.MkdirAll(filepath.Dir(dirs.SnapStateFile), 0755)
c.Assert(err, IsNil)
os.Setenv("SNAPPY_SQUASHFS_UNPACK_FOR_TESTS", "1")
// create a fake systemd environment
os.MkdirAll(filepath.Join(dirs.SnapServicesDir, "multi-user.target.wants"), 0755)
ms.prevctlCmd = systemd.SystemctlCmd
systemd.SystemctlCmd = func(cmd ...string) ([]byte, error) {
return []byte("ActiveState=inactive\n"), nil
}
ms.aa = testutil.MockCommand(c, "apparmor_parser", "")
ms.udev = testutil.MockCommand(c, "udevadm", "")
ms.umount = testutil.MockCommand(c, "umount", "")
ms.snapDiscardNs = testutil.MockCommand(c, "snap-discard-ns", "")
dirs.LibExecDir = ms.snapDiscardNs.BinDir()
ms.storeSigning = assertstest.NewStoreStack("can0nical", rootPrivKey, storePrivKey)
ms.restoreTrusted = sysdb.InjectTrusted(ms.storeSigning.Trusted)
ms.devAcct = assertstest.NewAccount(ms.storeSigning, "devdevev", map[string]interface{}{
"account-id": "devdevdev",
}, "")
err = ms.storeSigning.Add(ms.devAcct)
c.Assert(err, IsNil)
o, err := overlord.New()
c.Assert(err, IsNil)
ms.o = o
}
示例4: TestTrusted
func (sdbs *sysDBSuite) TestTrusted(c *C) {
trusted := sysdb.Trusted()
c.Check(trusted, HasLen, 2)
restore := sysdb.InjectTrusted(sdbs.extraTrusted)
defer restore()
trustedEx := sysdb.Trusted()
c.Check(trustedEx, HasLen, 4)
}
示例5: TestOpenSysDatabaseExtras
func (sdbs *sysDBSuite) TestOpenSysDatabaseExtras(c *C) {
restore := sysdb.InjectTrusted(sdbs.extraTrusted)
defer restore()
db, err := sysdb.Open()
c.Assert(err, IsNil)
c.Check(db, NotNil)
err = db.Check(sdbs.probeAssert)
c.Check(err, IsNil)
}
示例6: Inject
// Inject includes the test trusted assertions in the system trusted set.
func Inject() {
sysdb.InjectTrusted([]asserts.Assertion{TestRootAccount, TestRootAccountKey})
}
示例7: TestBootstrapToRootDirDevmodeSnap
func (s *imageSuite) TestBootstrapToRootDirDevmodeSnap(c *C) {
restore := sysdb.InjectTrusted(s.storeSigning.Trusted)
defer restore()
rootdir := filepath.Join(c.MkDir(), "imageroot")
// FIXME: bootstrapToRootDir needs an unpacked gadget yaml
gadgetUnpackDir := filepath.Join(c.MkDir(), "gadget")
err := os.MkdirAll(gadgetUnpackDir, 0755)
c.Assert(err, IsNil)
err = ioutil.WriteFile(filepath.Join(gadgetUnpackDir, "grub.conf"), nil, 0644)
c.Assert(err, IsNil)
s.setupSnaps(c, gadgetUnpackDir)
s.downloadedSnaps["devmode-snap"] = snaptest.MakeTestSnapWithFiles(c, devmodeSnap, nil)
s.storeSnapInfo["devmode-snap"] = infoFromSnapYaml(c, devmodeSnap, snap.R(0))
// mock the mount cmds (for the extract kernel assets stuff)
c1 := testutil.MockCommand(c, "mount", "")
defer c1.Restore()
c2 := testutil.MockCommand(c, "umount", "")
defer c2.Restore()
opts := &image.Options{
Snaps: []string{s.downloadedSnaps["devmode-snap"]},
RootDir: rootdir,
GadgetUnpackDir: gadgetUnpackDir,
}
local, err := image.LocalSnaps(opts)
c.Assert(err, IsNil)
err = image.BootstrapToRootDir(s, s.model, opts, local)
c.Assert(err, IsNil)
// check seed yaml
seed, err := snap.ReadSeedYaml(filepath.Join(rootdir, "var/lib/snapd/seed/seed.yaml"))
c.Assert(err, IsNil)
c.Check(seed.Snaps, HasLen, 5)
// check devmode-snap
info := &snap.Info{
SideInfo: snap.SideInfo{
RealName: "devmode-snap",
Revision: snap.R("x1"),
},
}
fn := filepath.Base(info.MountFile())
p := filepath.Join(rootdir, "var/lib/snapd/seed/snaps", fn)
c.Check(osutil.FileExists(p), Equals, true)
// ensure local snaps are put last in seed.yaml
last := len(seed.Snaps) - 1
c.Check(seed.Snaps[last], DeepEquals, &snap.SeedSnap{
Name: "devmode-snap",
File: fn,
DevMode: true,
Unasserted: true,
})
}
示例8: TestBootstrapToRootDirLocalCore
func (s *imageSuite) TestBootstrapToRootDirLocalCore(c *C) {
restore := sysdb.InjectTrusted(s.storeSigning.Trusted)
defer restore()
rootdir := filepath.Join(c.MkDir(), "imageroot")
// FIXME: bootstrapToRootDir needs an unpacked gadget yaml
gadgetUnpackDir := filepath.Join(c.MkDir(), "gadget")
s.setupSnaps(c, gadgetUnpackDir)
// mock the mount cmds (for the extract kernel assets stuff)
c1 := testutil.MockCommand(c, "mount", "")
defer c1.Restore()
c2 := testutil.MockCommand(c, "umount", "")
defer c2.Restore()
opts := &image.Options{
Snaps: []string{
s.downloadedSnaps["core"],
s.downloadedSnaps["required-snap1"],
},
RootDir: rootdir,
GadgetUnpackDir: gadgetUnpackDir,
}
local, err := image.LocalSnaps(opts)
c.Assert(err, IsNil)
err = image.BootstrapToRootDir(s, s.model, opts, local)
c.Assert(err, IsNil)
// check seed yaml
seed, err := snap.ReadSeedYaml(filepath.Join(rootdir, "var/lib/snapd/seed/seed.yaml"))
c.Assert(err, IsNil)
c.Check(seed.Snaps, HasLen, 4)
// check the files are in place
for i, name := range []string{"core_x1.snap", "pc-kernel", "pc", "required-snap1_x1.snap"} {
unasserted := false
info := s.storeSnapInfo[name]
if info == nil {
switch name {
case "core_x1.snap":
info = &snap.Info{
SideInfo: snap.SideInfo{
RealName: "core",
Revision: snap.R("x1"),
},
}
unasserted = true
case "required-snap1_x1.snap":
info = &snap.Info{
SideInfo: snap.SideInfo{
RealName: "required-snap1",
Revision: snap.R("x1"),
},
}
unasserted = true
}
}
fn := filepath.Base(info.MountFile())
p := filepath.Join(rootdir, "var/lib/snapd/seed/snaps", fn)
c.Check(osutil.FileExists(p), Equals, true)
c.Check(seed.Snaps[i], DeepEquals, &snap.SeedSnap{
Name: info.Name(),
SnapID: info.SnapID,
File: fn,
Unasserted: unasserted,
})
}
l, err := ioutil.ReadDir(filepath.Join(rootdir, "var/lib/snapd/seed/snaps"))
c.Assert(err, IsNil)
c.Check(l, HasLen, 4)
storeAccountKey := s.storeSigning.StoreAccountKey("")
brandPubKey, err := s.brandSigning.PublicKey("")
c.Assert(err, IsNil)
// check the assertions are in place
for _, fn := range []string{"model", brandPubKey.ID() + ".account-key", "my-brand.account", storeAccountKey.PublicKeyID() + ".account-key"} {
p := filepath.Join(rootdir, "var/lib/snapd/seed/assertions", fn)
c.Check(osutil.FileExists(p), Equals, true)
}
b, err := ioutil.ReadFile(filepath.Join(rootdir, "var/lib/snapd/seed/assertions", "model"))
c.Assert(err, IsNil)
c.Check(b, DeepEquals, asserts.Encode(s.model))
b, err = ioutil.ReadFile(filepath.Join(rootdir, "var/lib/snapd/seed/assertions", "my-brand.account"))
c.Assert(err, IsNil)
a, err := asserts.Decode(b)
c.Assert(err, IsNil)
c.Check(a.Type(), Equals, asserts.AccountType)
c.Check(a.HeaderString("account-id"), Equals, "my-brand")
decls, err := filepath.Glob(filepath.Join(rootdir, "var/lib/snapd/seed/assertions", "*.snap-declaration"))
//.........这里部分代码省略.........
示例9: TestBootstrapToRootDir
func (s *imageSuite) TestBootstrapToRootDir(c *C) {
restore := sysdb.InjectTrusted(s.storeSigning.Trusted)
defer restore()
rootdir := filepath.Join(c.MkDir(), "imageroot")
// FIXME: bootstrapToRootDir needs an unpacked gadget yaml
gadgetUnpackDir := filepath.Join(c.MkDir(), "gadget")
s.setupSnaps(c, gadgetUnpackDir)
// mock the mount cmds (for the extract kernel assets stuff)
c1 := testutil.MockCommand(c, "mount", "")
defer c1.Restore()
c2 := testutil.MockCommand(c, "umount", "")
defer c2.Restore()
opts := &image.Options{
RootDir: rootdir,
GadgetUnpackDir: gadgetUnpackDir,
}
local, err := image.LocalSnaps(opts)
c.Assert(err, IsNil)
err = image.BootstrapToRootDir(s, s.model, opts, local)
c.Assert(err, IsNil)
// check seed yaml
seed, err := snap.ReadSeedYaml(filepath.Join(rootdir, "var/lib/snapd/seed/seed.yaml"))
c.Assert(err, IsNil)
c.Check(seed.Snaps, HasLen, 4)
// check the files are in place
for i, name := range []string{"core", "pc-kernel", "pc"} {
info := s.storeSnapInfo[name]
fn := filepath.Base(info.MountFile())
p := filepath.Join(rootdir, "var/lib/snapd/seed/snaps", fn)
c.Check(osutil.FileExists(p), Equals, true)
c.Check(seed.Snaps[i], DeepEquals, &snap.SeedSnap{
Name: name,
SnapID: name + "-Id",
File: fn,
})
}
storeAccountKey := s.storeSigning.StoreAccountKey("")
brandPubKey, err := s.brandSigning.PublicKey("")
c.Assert(err, IsNil)
// check the assertions are in place
for _, fn := range []string{"model", brandPubKey.ID() + ".account-key", "my-brand.account", storeAccountKey.PublicKeyID() + ".account-key"} {
p := filepath.Join(rootdir, "var/lib/snapd/seed/assertions", fn)
c.Check(osutil.FileExists(p), Equals, true)
}
b, err := ioutil.ReadFile(filepath.Join(rootdir, "var/lib/snapd/seed/assertions", "model"))
c.Assert(err, IsNil)
c.Check(b, DeepEquals, asserts.Encode(s.model))
b, err = ioutil.ReadFile(filepath.Join(rootdir, "var/lib/snapd/seed/assertions", "my-brand.account"))
c.Assert(err, IsNil)
a, err := asserts.Decode(b)
c.Assert(err, IsNil)
c.Check(a.Type(), Equals, asserts.AccountType)
c.Check(a.HeaderString("account-id"), Equals, "my-brand")
// check the snap assertions are also in place
for _, snapId := range []string{"pc-Id", "pc-kernel-Id", "core-Id"} {
p := filepath.Join(rootdir, "var/lib/snapd/seed/assertions", fmt.Sprintf("16,%s.snap-declaration", snapId))
c.Check(osutil.FileExists(p), Equals, true)
}
// check the bootloader config
m, err := s.bootloader.GetBootVars("snap_kernel", "snap_core")
c.Assert(err, IsNil)
c.Check(m["snap_kernel"], Equals, "pc-kernel_2.snap")
c.Check(m["snap_core"], Equals, "core_3.snap")
}
示例10: SetUpTest
func (s *authContextSetupSuite) SetUpTest(c *C) {
tempdir := c.MkDir()
dirs.SetRootDir(tempdir)
err := os.MkdirAll(filepath.Dir(dirs.SnapStateFile), 0755)
c.Assert(err, IsNil)
captureAuthContext := func(_ *store.Config, ac auth.AuthContext) *store.Store {
s.ac = ac
return nil
}
r := overlord.MockStoreNew(captureAuthContext)
defer r()
s.storeSigning = assertstest.NewStoreStack("can0nical", rootPrivKey, storePrivKey)
s.restoreTrusted = sysdb.InjectTrusted(s.storeSigning.Trusted)
s.brandSigning = assertstest.NewSigningDB("my-brand", brandPrivKey)
brandAcct := assertstest.NewAccount(s.storeSigning, "my-brand", map[string]interface{}{
"account-id": "my-brand",
"verification": "certified",
}, "")
s.storeSigning.Add(brandAcct)
brandAccKey := assertstest.NewAccountKey(s.storeSigning, brandAcct, nil, brandPrivKey.PublicKey(), "")
s.storeSigning.Add(brandAccKey)
model, err := s.brandSigning.Sign(asserts.ModelType, map[string]interface{}{
"series": "16",
"authority-id": "my-brand",
"brand-id": "my-brand",
"model": "my-model",
"architecture": "amd64",
"store": "my-brand-store-id",
"gadget": "pc",
"kernel": "pc-kernel",
"timestamp": time.Now().Format(time.RFC3339),
}, nil, "")
c.Assert(err, IsNil)
s.model = model.(*asserts.Model)
encDevKey, err := asserts.EncodePublicKey(deviceKey.PublicKey())
c.Assert(err, IsNil)
serial, err := s.brandSigning.Sign(asserts.SerialType, map[string]interface{}{
"authority-id": "my-brand",
"brand-id": "my-brand",
"model": "my-model",
"serial": "7878",
"device-key": string(encDevKey),
"device-key-sha3-384": deviceKey.PublicKey().ID(),
"timestamp": time.Now().Format(time.RFC3339),
}, nil, "")
c.Assert(err, IsNil)
s.serial = serial.(*asserts.Serial)
o, err := overlord.New()
c.Assert(err, IsNil)
s.o = o
st := o.State()
st.Lock()
defer st.Unlock()
prereqs := []asserts.Assertion{s.storeSigning.StoreAccountKey(""), brandAcct, brandAccKey}
for _, a := range prereqs {
err = assertstate.Add(st, a)
c.Assert(err, IsNil)
}
}