本文整理汇总了Golang中github.com/keybase/client/go/protocol.UserPlusKeys类的典型用法代码示例。如果您正苦于以下问题:Golang UserPlusKeys类的具体用法?Golang UserPlusKeys怎么用?Golang UserPlusKeys使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了UserPlusKeys类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: LoadUserPlusKeys
func LoadUserPlusKeys(g *GlobalContext, uid keybase1.UID, cacheOK bool) (keybase1.UserPlusKeys, error) {
var up keybase1.UserPlusKeys
if uid.IsNil() {
return up, fmt.Errorf("Nil UID")
}
arg := NewLoadUserArg(g)
arg.UID = uid
arg.PublicKeyOptional = true
u, err := LoadUser(arg)
if err != nil {
return up, err
}
if u == nil {
return up, fmt.Errorf("Nil user, nil error from LoadUser")
}
// export user to UserPlusKeys
up.Uid = u.GetUID()
up.Username = u.GetNormalizedName().String()
if u.GetComputedKeyFamily() != nil {
up.DeviceKeys = u.GetComputedKeyFamily().ExportDeviceKeys()
}
return up, nil
}
示例2: ExportToUserPlusKeys
func (u *User) ExportToUserPlusKeys(idTime keybase1.Time) keybase1.UserPlusKeys {
ret := keybase1.UserPlusKeys{
Uid: u.GetUID(),
Username: u.GetName(),
}
ckf := u.GetComputedKeyFamily()
if ckf != nil {
ret.DeviceKeys, ret.PGPKeyCount = ckf.ExportDeviceKeys()
ret.RevokedDeviceKeys = ckf.ExportRevokedDeviceKeys()
}
ret.Uvv = u.ExportToVersionVector(idTime)
return ret
}
示例3: ExportToUserPlusKeys
func (u *User) ExportToUserPlusKeys(idTime keybase1.Time) keybase1.UserPlusKeys {
ret := keybase1.UserPlusKeys{
Uid: u.GetUID(),
Username: u.GetName(),
}
ckf := u.GetComputedKeyFamily()
if ckf != nil {
// DeviceKeys is poorly named, so let's deprecate it.
ret.DeviceKeys = ckf.Export()
ret.Keys = ret.DeviceKeys
}
ret.Uvv = u.ExportToVersionVector(idTime)
return ret
}
示例4: LoadUserPlusKeys
func LoadUserPlusKeys(g *GlobalContext, uid keybase1.UID, cacheOK bool) (keybase1.UserPlusKeys, error) {
var up keybase1.UserPlusKeys
if uid.IsNil() {
return up, fmt.Errorf("Nil UID")
}
if cacheOK {
up, err := g.UserCache.Get(uid)
if err == nil {
return *up, nil
}
if err != nil {
// not going to bail on cache error, just log it:
if _, ok := err.(NotFoundError); !ok {
g.Log.Debug("UserCache Get error: %s", err)
}
}
}
arg := NewLoadUserArg(g)
arg.UID = uid
arg.PublicKeyOptional = true
u, err := LoadUser(arg)
if err != nil {
return up, err
}
if u == nil {
return up, fmt.Errorf("Nil user, nil error from LoadUser")
}
// export user to UserPlusKeys
up.Uid = u.GetUID()
up.Username = u.GetNormalizedName().String()
if u.GetComputedKeyFamily() != nil {
up.DeviceKeys = u.GetComputedKeyFamily().ExportDeviceKeys()
}
err = g.UserCache.Insert(&up)
if err != nil {
g.Log.Debug("UserCache Set error: %s", err)
}
return up, nil
}
示例5: filterKeys
func (e *DeviceKeyfinder) filterKeys(upk *keybase1.UserPlusKeys) error {
var keys []keybase1.PublicKey
for _, key := range upk.DeviceKeys {
if len(key.PGPFingerprint) != 0 {
// this shouldn't happen
continue
}
if e.arg.NeedVerifyKeys && !libkb.KIDIsDeviceVerify(key.KID) {
continue
}
if e.arg.NeedEncryptKeys && !libkb.KIDIsDeviceEncrypt(key.KID) {
continue
}
keys = append(keys, key)
}
if len(keys) == 0 {
return libkb.NoNaClEncryptionKeyError{User: upk.Username, HasPGPKey: upk.PGPKeyCount > 0}
}
upk.DeviceKeys = keys
return nil
}