// check device key for arg.Bundles match. func matchingDeviceKey(g *libkb.GlobalContext, secretUI libkb.SecretUI, arg keybase1.UnboxBytes32AnyArg, me *libkb.User) (key libkb.GenericKey, index int, err error) { ekey, err := me.GetDeviceSubkey() if err == nil { if n, ok := kidMatch(ekey, arg.Bundles); ok { // unlock this key parg := libkb.SecretKeyPromptArg{ Ska: libkb.SecretKeyArg{ Me: me, KeyType: libkb.DeviceEncryptionKeyType, }, SecretUI: secretUI, Reason: arg.Reason, UseCancelCache: true, } key, err := g.Keyrings.GetSecretKeyWithPrompt(parg) if err != nil { return nil, 0, err } return key, n, nil } g.Log.Debug("matchingDeviceKey: no match found for ekey in arg.Bundles") logNoMatch(g, ekey, arg.Bundles) } else { g.Log.Debug("matchingDeviceKey: ignoring error getting device subkey: %s", err) } return nil, 0, nil }
// check device key for arg.Bundles match. func matchingDeviceKey(g *libkb.GlobalContext, secretUI libkb.SecretUI, arg keybase1.UnboxBytes32AnyArg, me *libkb.User) (key libkb.GenericKey, index int, err error) { ekey, err := me.GetDeviceSubkey() if err == nil { if n, ok := kidMatch(ekey, arg.Bundles); ok { // unlock this key skarg := libkb.SecretKeyArg{ Me: me, KeyType: libkb.DeviceEncryptionKeyType, } key, err := g.Keyrings.GetSecretKeyWithPrompt(nil, skarg, secretUI, arg.Reason) if err != nil { return nil, 0, err } return key, n, nil } } return nil, 0, nil }