本文整理匯總了Golang中github.com/keybase/go-jsonw.Wrapper類的典型用法代碼示例。如果您正苦於以下問題:Golang Wrapper類的具體用法?Golang Wrapper怎麽用?Golang Wrapper使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了Wrapper類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的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
}
示例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
}
示例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)
}
示例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
}
示例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)
}
示例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
}
示例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."}
}
示例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
}
示例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)
}
示例10: GetPGPFingerprint
func GetPGPFingerprint(w *jsonw.Wrapper) (*PGPFingerprint, error) {
s, err := w.GetString()
if err != nil {
return nil, err
}
return PGPFingerprintFromHex(s)
}
示例11: ParseDevice
func ParseDevice(jw *jsonw.Wrapper) (ret *Device, err error) {
var obj Device
if err = jw.UnmarshalAgain(&obj); err == nil {
ret = &obj
}
return
}
示例12: GetOneKey
func GetOneKey(jw *jsonw.Wrapper) (*PGPKeyBundle, error) {
s, err := jw.GetString()
if err != nil {
return nil, err
}
return ReadOneKeyFromString(s)
}
示例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
}
示例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
}
示例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
}