本文整理汇总了Golang中github.com/snapcore/snapd/asserts.NewEncoder函数的典型用法代码示例。如果您正苦于以下问题:Golang NewEncoder函数的具体用法?Golang NewEncoder怎么用?Golang NewEncoder使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewEncoder函数的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestBatchAddStreamReturnsEffectivelyAddedRefs
func (s *assertMgrSuite) TestBatchAddStreamReturnsEffectivelyAddedRefs(c *C) {
s.state.Lock()
defer s.state.Unlock()
b := &bytes.Buffer{}
enc := asserts.NewEncoder(b)
// wrong order is ok
err := enc.Encode(s.dev1Acct)
c.Assert(err, IsNil)
enc.Encode(s.storeSigning.StoreAccountKey(""))
c.Assert(err, IsNil)
batch := assertstate.NewBatch()
err = batch.Add(s.storeSigning.StoreAccountKey(""))
c.Assert(err, IsNil)
refs, err := batch.AddStream(b)
c.Assert(err, IsNil)
c.Check(refs, DeepEquals, []*asserts.Ref{
{Type: asserts.AccountType, PrimaryKey: []string{s.dev1Acct.AccountID()}},
})
err = batch.Commit(s.state)
c.Assert(err, IsNil)
db := assertstate.DB(s.state)
devAcct, err := db.Find(asserts.AccountType, map[string]string{
"account-id": s.dev1Acct.AccountID(),
})
c.Assert(err, IsNil)
c.Check(devAcct.(*asserts.Account).Username(), Equals, "developer1")
}
开发者ID:elopio,项目名称:snappy,代码行数:33,代码来源:assertmgr_test.go
示例2: Execute
func (x *cmdKnown) Execute(args []string) error {
if len(args) > 0 {
return ErrExtraArgs
}
// TODO: share this kind of parsing once it's clearer how often is used in snap
headers := map[string]string{}
for _, headerFilter := range x.KnownOptions.HeaderFilters {
parts := strings.SplitN(headerFilter, "=", 2)
if len(parts) != 2 {
return fmt.Errorf(i18n.G("invalid header filter: %q (want key=value)"), headerFilter)
}
headers[parts[0]] = parts[1]
}
var assertions []asserts.Assertion
var err error
if x.Remote {
assertions, err = downloadAssertion(x.KnownOptions.AssertTypeName, headers)
} else {
assertions, err = Client().Known(x.KnownOptions.AssertTypeName, headers)
}
if err != nil {
return err
}
enc := asserts.NewEncoder(Stdout)
for _, a := range assertions {
enc.Encode(a)
}
return nil
}
开发者ID:niemeyer,项目名称:snapd,代码行数:33,代码来源:cmd_known.go
示例3: TestEncoderSingleDecodeOK
func (as *assertsSuite) TestEncoderSingleDecodeOK(c *C) {
encoded := []byte("type: test-only\n" +
"authority-id: auth-id2\n" +
"primary-key: abc\n" +
"revision: 5\n" +
"header1: value1\n" +
"header2: value2\n" +
"body-length: 8\n" +
"sign-key-sha3-384: Jv8_JiHiIzJVcO9M55pPdqSDWUvuhfDIBJUS-3VW7F_idjix7Ffn5qMxB21ZQuij\n\n" +
"THE-BODY" +
"\n\n" +
"AXNpZw==")
a0, err := asserts.Decode(encoded)
c.Assert(err, IsNil)
cont0, _ := a0.Signature()
stream := new(bytes.Buffer)
enc := asserts.NewEncoder(stream)
enc.Encode(a0)
a1, err := asserts.Decode(stream.Bytes())
c.Assert(err, IsNil)
cont1, _ := a1.Signature()
c.Check(cont1, DeepEquals, cont0)
}
开发者ID:niemeyer,项目名称:snapd,代码行数:26,代码来源:asserts_test.go
示例4: TestEncoderDecoderHappy
func (as *assertsSuite) TestEncoderDecoderHappy(c *C) {
stream := new(bytes.Buffer)
enc := asserts.NewEncoder(stream)
asserts.EncoderAppend(enc, []byte(exampleEmptyBody2NlNl))
asserts.EncoderAppend(enc, []byte(exampleBodyAndExtraHeaders))
asserts.EncoderAppend(enc, []byte(exampleEmptyBodyAllDefaults))
decoder := asserts.NewDecoder(stream)
a, err := decoder.Decode()
c.Assert(err, IsNil)
c.Check(a.Type(), Equals, asserts.TestOnlyType)
_, ok := a.(*asserts.TestOnly)
c.Check(ok, Equals, true)
checkContent(c, a, exampleEmptyBody2NlNl)
a, err = decoder.Decode()
c.Assert(err, IsNil)
checkContent(c, a, exampleBodyAndExtraHeaders)
a, err = decoder.Decode()
c.Assert(err, IsNil)
checkContent(c, a, exampleEmptyBodyAllDefaults)
a, err = decoder.Decode()
c.Assert(err, Equals, io.EOF)
}
开发者ID:niemeyer,项目名称:snapd,代码行数:26,代码来源:asserts_test.go
示例5: formatSignResponse
func formatSignResponse(success bool, errorCode, errorSubcode, message string, assertion asserts.Assertion, w http.ResponseWriter) error {
w.Header().Set("Content-Type", asserts.MediaType)
w.WriteHeader(http.StatusOK)
encoder := asserts.NewEncoder(w)
err := encoder.Encode(assertion)
if err != nil {
// Not much we can do if we're here - apart from panic!
log.Println("Error encoding the assertion.")
return err
}
return nil
}
开发者ID:ubuntu-core,项目名称:identity-vault,代码行数:13,代码来源:utils.go
示例6: writeAssertionsToFile
func writeAssertionsToFile(fn string, assertions []asserts.Assertion) {
multifn := filepath.Join(dirs.SnapSeedDir, "assertions", fn)
f, err := os.Create(multifn)
if err != nil {
panic(err)
}
defer f.Close()
enc := asserts.NewEncoder(f)
for _, a := range assertions {
err := enc.Encode(a)
if err != nil {
panic(err)
}
}
}
开发者ID:pedronis,项目名称:snappy,代码行数:15,代码来源:firstboot_test.go
示例7: ServeHTTP
func (ar assertResponse) ServeHTTP(w http.ResponseWriter, r *http.Request) {
t := asserts.MediaType
if ar.bundle {
t = mime.FormatMediaType(t, map[string]string{"bundle": "y"})
}
w.Header().Set("Content-Type", t)
w.Header().Set("X-Ubuntu-Assertions-Count", strconv.Itoa(len(ar.assertions)))
w.WriteHeader(http.StatusOK)
enc := asserts.NewEncoder(w)
for _, a := range ar.assertions {
err := enc.Encode(a)
if err != nil {
logger.Noticef("cannot write encoded assertion into response: %v", err)
break
}
}
}
开发者ID:niemeyer,项目名称:snapd,代码行数:18,代码来源:response.go
示例8: fetchSnapAssertions
func fetchSnapAssertions(sto *store.Store, snapPath string, snapInfo *snap.Info, dlOpts *image.DownloadOptions) error {
db, err := asserts.OpenDatabase(&asserts.DatabaseConfig{
Backstore: asserts.NewMemoryBackstore(),
Trusted: sysdb.Trusted(),
})
if err != nil {
return err
}
w, err := os.Create(snapPath + ".assertions")
if err != nil {
return fmt.Errorf(i18n.G("cannot create assertions file: %v"), err)
}
defer w.Close()
encoder := asserts.NewEncoder(w)
save := func(a asserts.Assertion) error {
return encoder.Encode(a)
}
f := image.StoreAssertionFetcher(sto, dlOpts, db, save)
return image.FetchAndCheckSnapAssertions(snapPath, snapInfo, f, db)
}
开发者ID:clobrano,项目名称:snappy,代码行数:23,代码来源:cmd_download.go
注:本文中的github.com/snapcore/snapd/asserts.NewEncoder函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论