本文整理匯總了Golang中github.com/jlmucb/cloudproxy/go/tao/auth.Prin.Identical方法的典型用法代碼示例。如果您正苦於以下問題:Golang Prin.Identical方法的具體用法?Golang Prin.Identical怎麽用?Golang Prin.Identical使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/jlmucb/cloudproxy/go/tao/auth.Prin
的用法示例。
在下文中一共展示了Prin.Identical方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: Extend
func (m Manifest) Extend(p *auth.Prin, stmt auth.Form) {
switch stmt := stmt.(type) {
case auth.And:
for _, f := range stmt.Conjunct {
m.Extend(p, f)
}
case auth.Pred:
if stmt.Name != "Manifest" || len(stmt.Arg) < 3 {
return
}
if !p.Identical(stmt.Arg[0]) {
return
}
s, ok := stmt.Arg[1].(auth.Str)
if !ok {
glog.Errorf("Ignoring manifest key of non-string type %T\n", stmt.Arg[1])
return
}
for i := 2; i < len(stmt.Arg)-1; i++ {
if m[string(s)] == nil {
m2 := Manifest{}
m, m[string(s)] = m2, m2
} else {
m2, ok := m[string(s)].(Manifest)
if !ok {
// Name clash with existing key, ignore new data.
return
}
m = m2
}
s, ok = stmt.Arg[i].(auth.Str)
if !ok {
glog.Errorf("Ignoring manifest key of non-string type %T\n", stmt.Arg[i])
return
}
}
m[string(s)] = stmt.Arg[len(stmt.Arg)-1]
}
}