本文整理汇总了Golang中github.com/keybase/go-jsonw.Wrapper类的典型用法代码示例。如果您正苦于以下问题:Golang Wrapper类的具体用法?Golang Wrapper怎么用?Golang Wrapper使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Wrapper类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: GetMerkleTriple
func GetMerkleTriple(jw *jsonw.Wrapper) (ret *MerkleTriple, err error) {
var tmp MerkleTriple
if err = jw.UnmarshalAgain(&tmp); err != nil {
ret = &tmp
}
return ret, err
}
开发者ID:paul-pearce,项目名称:client-beta,代码行数:7,代码来源:merkle_client.go
示例2: ToUntrackingStatement
func (u *User) ToUntrackingStatement(w *jsonw.Wrapper) (err error) {
untrack := jsonw.NewDictionary()
untrack.SetKey("basics", u.ToUntrackingStatementBasics())
untrack.SetKey("id", UIDWrapper(u.GetUID()))
w.SetKey("untrack", untrack)
return
}
开发者ID:polluks,项目名称:client,代码行数:7,代码来源:kbsig.go
示例3: checkAppStatus
func (a *InternalAPIEngine) checkAppStatus(arg APIArg, jw *jsonw.Wrapper) (string, error) {
var set []string
resName, err := jw.AtKey("name").GetString()
if err != nil {
err = fmt.Errorf("Cannot find status name in reply")
return "", err
}
if arg.AppStatus == nil || len(arg.AppStatus) == 0 {
set = []string{"OK"}
} else {
set = arg.AppStatus
}
for _, status := range set {
if resName == status {
return resName, nil
}
}
// check if there was a bad session error:
if err := a.checkSessionExpired(arg, jw); err != nil {
return "", err
}
return "", NewAppStatusError(jw)
}
开发者ID:polluks,项目名称:client,代码行数:27,代码来源:api.go
示例4: checkReverseSig
// checkReverseSig verifies that the reverse sig in jw is valid
// and matches jw.
func (e *Kex2Provisioner) checkReverseSig(jw *jsonw.Wrapper) error {
kid, err := jw.AtPath("body.sibkey.kid").GetString()
if err != nil {
return err
}
keypair, err := libkb.ImportKeypairFromKID(keybase1.KIDFromString(kid))
if err != nil {
return err
}
revsig, err := jw.AtPath("body.sibkey.reverse_sig").GetString()
if err != nil {
return err
}
// set reverse_sig to nil to verify it:
jw.SetValueAtPath("body.sibkey.reverse_sig", jsonw.NewNil())
msg, err := jw.Marshal()
if err != nil {
return err
}
_, err = keypair.VerifyString(revsig, msg)
if err != nil {
return err
}
// put reverse_sig back in
jw.SetValueAtPath("body.sibkey.reverse_sig", jsonw.NewString(revsig))
return nil
}
开发者ID:alex,项目名称:client-beta,代码行数:34,代码来源:kex2_provisioner.go
示例5: checkAppStatusFromJSONWrapper
func (a *InternalAPIEngine) checkAppStatusFromJSONWrapper(arg APIArg, jw *jsonw.Wrapper) (*AppStatus, error) {
var ast AppStatus
if err := jw.UnmarshalAgain(&ast); err != nil {
return nil, err
}
return &ast, a.checkAppStatus(arg, &ast)
}
开发者ID:qbit,项目名称:client,代码行数:7,代码来源:api.go
示例6: addDeviceSibkey
func (e *Kex2Provisionee) addDeviceSibkey(jw *jsonw.Wrapper) error {
if e.device.Description == nil {
e.G().Log.Debug("prompting for device name")
// TODO: get existing device names
arg := keybase1.PromptNewDeviceNameArg{}
name, err := e.ctx.ProvisionUI.PromptNewDeviceName(context.TODO(), arg)
if err != nil {
return err
}
e.device.Description = &name
e.G().Log.Debug("got device name: %q", name)
}
s := libkb.DeviceStatusActive
e.device.Status = &s
e.device.Kid = e.eddsa.GetKID()
dw, err := e.device.Export(libkb.SibkeyType)
if err != nil {
return err
}
jw.SetValueAtPath("body.device", dw)
if err = jw.SetValueAtPath("body.sibkey.kid", jsonw.NewString(e.eddsa.GetKID().String())); err != nil {
return err
}
return nil
}
开发者ID:alex,项目名称:client-beta,代码行数:28,代码来源:kex2_provisionee.go
示例7: checkSessionExpired
func (a *InternalAPIEngine) checkSessionExpired(arg APIArg, status *jsonw.Wrapper) error {
code, err := status.AtKey("code").GetInt()
if err != nil {
return fmt.Errorf("Cannot find status 'code' in reply")
}
if code != SCBadSession {
return nil
}
var loggedIn bool
if arg.SessionR != nil {
loggedIn = arg.SessionR.IsLoggedIn()
} else {
loggedIn = a.G().LoginState().LoggedIn()
}
if !loggedIn {
return nil
}
a.G().Log.Debug("local session -> is logged in, remote -> not logged in. invalidating local session:")
if arg.SessionR != nil {
arg.SessionR.Invalidate()
} else {
a.G().LoginState().LocalSession(func(s *Session) { s.Invalidate() }, "api - checkSessionExpired")
}
return LoginRequiredError{Context: "your session has expired."}
}
开发者ID:polluks,项目名称:client,代码行数:25,代码来源:api.go
示例8: Put
func (j *JSONLocalDb) Put(id DbKey, aliases []DbKey, val *jsonw.Wrapper) error {
bytes, err := val.Marshal()
if err == nil {
err = j.engine.Put(id, aliases, bytes)
}
return err
}
开发者ID:mark-adams,项目名称:client,代码行数:7,代码来源:db.go
示例9: GetSigID
func GetSigID(w *jsonw.Wrapper, suffix bool) (keybase1.SigID, error) {
s, err := w.GetString()
if err != nil {
return "", err
}
return keybase1.SigIDFromString(s, suffix)
}
开发者ID:mark-adams,项目名称:client,代码行数:7,代码来源:sig.go
示例10: GetPGPFingerprint
func GetPGPFingerprint(w *jsonw.Wrapper) (*PGPFingerprint, error) {
s, err := w.GetString()
if err != nil {
return nil, err
}
return PGPFingerprintFromHex(s)
}
开发者ID:paul-pearce,项目名称:client-beta,代码行数:7,代码来源:pgp_key.go
示例11: ParseDevice
func ParseDevice(jw *jsonw.Wrapper) (ret *Device, err error) {
var obj Device
if err = jw.UnmarshalAgain(&obj); err == nil {
ret = &obj
}
return
}
开发者ID:polluks,项目名称:client,代码行数:7,代码来源:device.go
示例12: GetOneKey
func GetOneKey(jw *jsonw.Wrapper) (*PGPKeyBundle, error) {
s, err := jw.GetString()
if err != nil {
return nil, err
}
return ReadOneKeyFromString(s)
}
开发者ID:paul-pearce,项目名称:client-beta,代码行数:7,代码来源:pgp_key.go
示例13: VerifyUser
func (vp *VerificationPath) VerifyUser() (user *MerkleUserLeaf, err error) {
curr := vp.root.rootHash
var leaf *jsonw.Wrapper
leaf, err = vp.path.VerifyPath(curr, vp.uid.String())
if leaf != nil && err == nil {
if leaf, err = leaf.ToArray(); err != nil {
msg := fmt.Sprintf("Didn't find a leaf for user in tree: %s", err)
err = MerkleNotFoundError{vp.uid.String(), msg}
}
}
if err == nil {
// noop
} else if _, ok := err.(MerkleNotFoundError); ok {
vp.G().Log.Debug(fmt.Sprintf("In checking Merkle tree: %s", err))
} else {
return
}
user, err = parseMerkleUserLeaf(leaf, vp.G())
if user != nil {
user.uid = vp.uid
}
return
}
开发者ID:paul-pearce,项目名称:client-beta,代码行数:27,代码来源:merkle_client.go
示例14: parseV2
func parseV2(jw *jsonw.Wrapper) (*MerkleUserLeaf, error) {
user := MerkleUserLeaf{}
l, err := jw.Len()
if err != nil {
return nil, err
}
if l < 2 {
return nil, fmt.Errorf("No public chain.")
}
user.public, err = parseTriple(jw.AtIndex(1))
if err != nil {
return nil, err
}
if l >= 3 {
user.private, err = parseTriple(jw.AtIndex(2))
if err != nil {
return nil, err
}
}
if l >= 4 && !jw.AtIndex(3).IsNil() {
eldest, err := GetKID(jw.AtIndex(3))
if err != nil {
return nil, err
}
user.eldest = eldest
}
return &user, nil
}
开发者ID:paul-pearce,项目名称:client-beta,代码行数:33,代码来源:merkle_client.go
示例15: GetNodeHash
func GetNodeHash(w *jsonw.Wrapper) (NodeHash, error) {
s, err := w.GetString()
if err != nil {
return nil, err
}
ret, err := NodeHashFromHex(s)
return ret, err
}
开发者ID:paul-pearce,项目名称:client-beta,代码行数:8,代码来源:merkle_client.go
示例16: GetUID
func GetUID(w *jsonw.Wrapper) (keybase1.UID, error) {
s, err := w.GetString()
var nilUID keybase1.UID
if err != nil {
return nilUID, err
}
return UIDFromHex(s)
}
开发者ID:paul-pearce,项目名称:client-beta,代码行数:8,代码来源:uid.go
示例17: verifyPleaseSign
func (k *KexProvisioner) verifyPleaseSign(jw *jsonw.Wrapper, newKID keybase1.KID) (err error) {
jw.AssertEqAtPath("body.key.kid", k.sigKey.GetKID().ToJsonw(), &err)
jw.AssertEqAtPath("body.key.uid", libkb.UIDWrapper(k.user.GetUID()), &err)
jw.AssertEqAtPath("body.key.eldest_kid", k.user.GetEldestKID().ToJsonw(), &err)
jw.AssertEqAtPath("body.key.username", jsonw.NewString(k.user.GetName()), &err)
jw.AssertEqAtPath("body.device.kid", newKID.ToJsonw(), &err)
jw.AssertEqAtPath("body.type", jsonw.NewString("sibkey"), &err)
return err
}
开发者ID:paul-pearce,项目名称:client-beta,代码行数:9,代码来源:kex_provisioner.go
示例18: ParseDevice
func ParseDevice(jw *jsonw.Wrapper, t time.Time) (ret *Device, err error) {
var obj Device
if err = jw.UnmarshalAgain(&obj); err == nil {
ret = &obj
ret.CTime = keybase1.ToTime(t)
ret.MTime = keybase1.ToTime(t)
}
return
}
开发者ID:qbit,项目名称:client,代码行数:9,代码来源:device.go
示例19: GetKID
func GetKID(w *jsonw.Wrapper) (kid keybase1.KID, err error) {
var s string
s, err = w.GetString()
if err != nil {
return
}
kid = keybase1.KIDFromString(s)
return
}
开发者ID:polluks,项目名称:client,代码行数:9,代码来源:kid.go
示例20: ParseKeyFamily
// ParseKeyFamily takes as input a dictionary from a JSON file and returns
// a parsed version for manipulation in the program.
func ParseKeyFamily(jw *jsonw.Wrapper) (ret *KeyFamily, err error) {
G.Log.Debug("+ ParseKeyFamily")
defer func() {
G.Log.Debug("- ParseKeyFamily -> %s", ErrToOk(err))
}()
if jw == nil || jw.IsNil() {
err = KeyFamilyError{"nil record from server"}
return
}
kf := KeyFamily{
pgp2kid: make(map[PGPFingerprint]keybase1.KID),
kid2pgp: make(map[keybase1.KID]PGPFingerprint),
Contextified: NewContextified(G),
}
// Fill in AllKeys. Somewhat wasteful but probably faster than
// using Jsonw wrappers, and less error-prone.
var rkf RawKeyFamily
if err = jw.UnmarshalAgain(&rkf); err != nil {
return
}
kf.BundlesForTesting = rkf.AllBundles
// Parse the keys, and collect the PGP keys to map their fingerprints.
kf.AllKIDs = make(map[keybase1.KID]bool)
kf.PGPKeySets = make(map[keybase1.KID]*PGPKeySet)
kf.SingleKeys = make(map[keybase1.KID]GenericKey)
for _, bundle := range rkf.AllBundles {
newKey, err := ParseGenericKey(bundle)
if err != nil {
return nil, err
}
kid := newKey.GetKID()
if pgp, isPGP := newKey.(*PGPKeyBundle); isPGP {
ks, ok := kf.PGPKeySets[kid]
if !ok {
ks = &PGPKeySet{nil, make(map[string]*PGPKeyBundle)}
kf.PGPKeySets[kid] = ks
fp := pgp.GetFingerprint()
kf.pgp2kid[fp] = kid
kf.kid2pgp[kid] = fp
}
ks.addKey(pgp)
} else {
kf.SingleKeys[kid] = newKey
}
kf.AllKIDs[kid] = true
}
ret = &kf
return
}
开发者ID:mark-adams,项目名称:client,代码行数:59,代码来源:keyfamily.go
注:本文中的github.com/keybase/go-jsonw.Wrapper类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论