github.com/keybase/client/go@v0.0.0-20241007131713-f10651d043c8/protocol/keybase1/login_ui.go (about) 1 // Auto-generated to Go types and interfaces using avdl-compiler v1.4.10 (https://github.com/keybase/node-avdl-compiler) 2 // Input file: avdl/keybase1/login_ui.avdl 3 4 package keybase1 5 6 import ( 7 "errors" 8 "fmt" 9 "github.com/keybase/go-framed-msgpack-rpc/rpc" 10 context "golang.org/x/net/context" 11 "time" 12 ) 13 14 type ResetPromptType int 15 16 const ( 17 ResetPromptType_COMPLETE ResetPromptType = 0 18 ResetPromptType_ENTER_NO_DEVICES ResetPromptType = 1 19 ResetPromptType_ENTER_FORGOT_PW ResetPromptType = 2 20 ResetPromptType_ENTER_RESET_PW ResetPromptType = 3 21 ) 22 23 func (o ResetPromptType) DeepCopy() ResetPromptType { return o } 24 25 var ResetPromptTypeMap = map[string]ResetPromptType{ 26 "COMPLETE": 0, 27 "ENTER_NO_DEVICES": 1, 28 "ENTER_FORGOT_PW": 2, 29 "ENTER_RESET_PW": 3, 30 } 31 32 var ResetPromptTypeRevMap = map[ResetPromptType]string{ 33 0: "COMPLETE", 34 1: "ENTER_NO_DEVICES", 35 2: "ENTER_FORGOT_PW", 36 3: "ENTER_RESET_PW", 37 } 38 39 func (e ResetPromptType) String() string { 40 if v, ok := ResetPromptTypeRevMap[e]; ok { 41 return v 42 } 43 return fmt.Sprintf("%v", int(e)) 44 } 45 46 type ResetPromptInfo struct { 47 HasWallet bool `codec:"hasWallet" json:"hasWallet"` 48 } 49 50 func (o ResetPromptInfo) DeepCopy() ResetPromptInfo { 51 return ResetPromptInfo{ 52 HasWallet: o.HasWallet, 53 } 54 } 55 56 type ResetPrompt struct { 57 T__ ResetPromptType `codec:"t" json:"t"` 58 Complete__ *ResetPromptInfo `codec:"complete,omitempty" json:"complete,omitempty"` 59 } 60 61 func (o *ResetPrompt) T() (ret ResetPromptType, err error) { 62 switch o.T__ { 63 case ResetPromptType_COMPLETE: 64 if o.Complete__ == nil { 65 err = errors.New("unexpected nil value for Complete__") 66 return ret, err 67 } 68 } 69 return o.T__, nil 70 } 71 72 func (o ResetPrompt) Complete() (res ResetPromptInfo) { 73 if o.T__ != ResetPromptType_COMPLETE { 74 panic("wrong case accessed") 75 } 76 if o.Complete__ == nil { 77 return 78 } 79 return *o.Complete__ 80 } 81 82 func NewResetPromptWithComplete(v ResetPromptInfo) ResetPrompt { 83 return ResetPrompt{ 84 T__: ResetPromptType_COMPLETE, 85 Complete__: &v, 86 } 87 } 88 89 func NewResetPromptDefault(t ResetPromptType) ResetPrompt { 90 return ResetPrompt{ 91 T__: t, 92 } 93 } 94 95 func (o ResetPrompt) DeepCopy() ResetPrompt { 96 return ResetPrompt{ 97 T__: o.T__.DeepCopy(), 98 Complete__: (func(x *ResetPromptInfo) *ResetPromptInfo { 99 if x == nil { 100 return nil 101 } 102 tmp := (*x).DeepCopy() 103 return &tmp 104 })(o.Complete__), 105 } 106 } 107 108 type ResetPromptResponse int 109 110 const ( 111 ResetPromptResponse_NOTHING ResetPromptResponse = 0 112 ResetPromptResponse_CANCEL_RESET ResetPromptResponse = 1 113 ResetPromptResponse_CONFIRM_RESET ResetPromptResponse = 2 114 ) 115 116 func (o ResetPromptResponse) DeepCopy() ResetPromptResponse { return o } 117 118 var ResetPromptResponseMap = map[string]ResetPromptResponse{ 119 "NOTHING": 0, 120 "CANCEL_RESET": 1, 121 "CONFIRM_RESET": 2, 122 } 123 124 var ResetPromptResponseRevMap = map[ResetPromptResponse]string{ 125 0: "NOTHING", 126 1: "CANCEL_RESET", 127 2: "CONFIRM_RESET", 128 } 129 130 func (e ResetPromptResponse) String() string { 131 if v, ok := ResetPromptResponseRevMap[e]; ok { 132 return v 133 } 134 return fmt.Sprintf("%v", int(e)) 135 } 136 137 type PassphraseRecoveryPromptType int 138 139 const ( 140 PassphraseRecoveryPromptType_ENCRYPTED_PGP_KEYS PassphraseRecoveryPromptType = 0 141 ) 142 143 func (o PassphraseRecoveryPromptType) DeepCopy() PassphraseRecoveryPromptType { return o } 144 145 var PassphraseRecoveryPromptTypeMap = map[string]PassphraseRecoveryPromptType{ 146 "ENCRYPTED_PGP_KEYS": 0, 147 } 148 149 var PassphraseRecoveryPromptTypeRevMap = map[PassphraseRecoveryPromptType]string{ 150 0: "ENCRYPTED_PGP_KEYS", 151 } 152 153 func (e PassphraseRecoveryPromptType) String() string { 154 if v, ok := PassphraseRecoveryPromptTypeRevMap[e]; ok { 155 return v 156 } 157 return fmt.Sprintf("%v", int(e)) 158 } 159 160 type ResetMessage int 161 162 const ( 163 ResetMessage_ENTERED_VERIFIED ResetMessage = 0 164 ResetMessage_ENTERED_PASSWORDLESS ResetMessage = 1 165 ResetMessage_REQUEST_VERIFIED ResetMessage = 2 166 ResetMessage_NOT_COMPLETED ResetMessage = 3 167 ResetMessage_CANCELED ResetMessage = 4 168 ResetMessage_COMPLETED ResetMessage = 5 169 ResetMessage_RESET_LINK_SENT ResetMessage = 6 170 ) 171 172 func (o ResetMessage) DeepCopy() ResetMessage { return o } 173 174 var ResetMessageMap = map[string]ResetMessage{ 175 "ENTERED_VERIFIED": 0, 176 "ENTERED_PASSWORDLESS": 1, 177 "REQUEST_VERIFIED": 2, 178 "NOT_COMPLETED": 3, 179 "CANCELED": 4, 180 "COMPLETED": 5, 181 "RESET_LINK_SENT": 6, 182 } 183 184 var ResetMessageRevMap = map[ResetMessage]string{ 185 0: "ENTERED_VERIFIED", 186 1: "ENTERED_PASSWORDLESS", 187 2: "REQUEST_VERIFIED", 188 3: "NOT_COMPLETED", 189 4: "CANCELED", 190 5: "COMPLETED", 191 6: "RESET_LINK_SENT", 192 } 193 194 func (e ResetMessage) String() string { 195 if v, ok := ResetMessageRevMap[e]; ok { 196 return v 197 } 198 return fmt.Sprintf("%v", int(e)) 199 } 200 201 type GetEmailOrUsernameArg struct { 202 SessionID int `codec:"sessionID" json:"sessionID"` 203 } 204 205 type PromptRevokePaperKeysArg struct { 206 SessionID int `codec:"sessionID" json:"sessionID"` 207 Device Device `codec:"device" json:"device"` 208 Index int `codec:"index" json:"index"` 209 } 210 211 type DisplayPaperKeyPhraseArg struct { 212 SessionID int `codec:"sessionID" json:"sessionID"` 213 Phrase string `codec:"phrase" json:"phrase"` 214 } 215 216 type DisplayPrimaryPaperKeyArg struct { 217 SessionID int `codec:"sessionID" json:"sessionID"` 218 Phrase string `codec:"phrase" json:"phrase"` 219 } 220 221 type PromptResetAccountArg struct { 222 SessionID int `codec:"sessionID" json:"sessionID"` 223 Prompt ResetPrompt `codec:"prompt" json:"prompt"` 224 } 225 226 type DisplayResetProgressArg struct { 227 SessionID int `codec:"sessionID" json:"sessionID"` 228 Text string `codec:"text" json:"text"` 229 EndTime Time `codec:"endTime" json:"endTime"` 230 NeedVerify bool `codec:"needVerify" json:"needVerify"` 231 } 232 233 type ExplainDeviceRecoveryArg struct { 234 SessionID int `codec:"sessionID" json:"sessionID"` 235 Kind DeviceType `codec:"kind" json:"kind"` 236 Name string `codec:"name" json:"name"` 237 } 238 239 type PromptPassphraseRecoveryArg struct { 240 SessionID int `codec:"sessionID" json:"sessionID"` 241 Kind PassphraseRecoveryPromptType `codec:"kind" json:"kind"` 242 } 243 244 type ChooseDeviceToRecoverWithArg struct { 245 SessionID int `codec:"sessionID" json:"sessionID"` 246 Devices []Device `codec:"devices" json:"devices"` 247 } 248 249 type DisplayResetMessageArg struct { 250 SessionID int `codec:"sessionID" json:"sessionID"` 251 Kind ResetMessage `codec:"kind" json:"kind"` 252 } 253 254 type LoginUiInterface interface { 255 GetEmailOrUsername(context.Context, int) (string, error) 256 PromptRevokePaperKeys(context.Context, PromptRevokePaperKeysArg) (bool, error) 257 DisplayPaperKeyPhrase(context.Context, DisplayPaperKeyPhraseArg) error 258 DisplayPrimaryPaperKey(context.Context, DisplayPrimaryPaperKeyArg) error 259 // Called during login / provisioning flows to ask the user whether they 260 // would like to either enter the autoreset pipeline and perform the reset 261 // of the account. 262 PromptResetAccount(context.Context, PromptResetAccountArg) (ResetPromptResponse, error) 263 // In some flows the user will get notified of the reset progress 264 DisplayResetProgress(context.Context, DisplayResetProgressArg) error 265 // During recovery the service might want to explain to the user how they can change 266 // their password by using the "change password" functionality on other devices. 267 ExplainDeviceRecovery(context.Context, ExplainDeviceRecoveryArg) error 268 PromptPassphraseRecovery(context.Context, PromptPassphraseRecoveryArg) (bool, error) 269 // Different from ProvisionUI's chooseDevice due to phrasing in the UI. 270 ChooseDeviceToRecoverWith(context.Context, ChooseDeviceToRecoverWithArg) (DeviceID, error) 271 // Simply displays a message in the recovery flow. 272 DisplayResetMessage(context.Context, DisplayResetMessageArg) error 273 } 274 275 func LoginUiProtocol(i LoginUiInterface) rpc.Protocol { 276 return rpc.Protocol{ 277 Name: "keybase.1.loginUi", 278 Methods: map[string]rpc.ServeHandlerDescription{ 279 "getEmailOrUsername": { 280 MakeArg: func() interface{} { 281 var ret [1]GetEmailOrUsernameArg 282 return &ret 283 }, 284 Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) { 285 typedArgs, ok := args.(*[1]GetEmailOrUsernameArg) 286 if !ok { 287 err = rpc.NewTypeError((*[1]GetEmailOrUsernameArg)(nil), args) 288 return 289 } 290 ret, err = i.GetEmailOrUsername(ctx, typedArgs[0].SessionID) 291 return 292 }, 293 }, 294 "promptRevokePaperKeys": { 295 MakeArg: func() interface{} { 296 var ret [1]PromptRevokePaperKeysArg 297 return &ret 298 }, 299 Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) { 300 typedArgs, ok := args.(*[1]PromptRevokePaperKeysArg) 301 if !ok { 302 err = rpc.NewTypeError((*[1]PromptRevokePaperKeysArg)(nil), args) 303 return 304 } 305 ret, err = i.PromptRevokePaperKeys(ctx, typedArgs[0]) 306 return 307 }, 308 }, 309 "displayPaperKeyPhrase": { 310 MakeArg: func() interface{} { 311 var ret [1]DisplayPaperKeyPhraseArg 312 return &ret 313 }, 314 Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) { 315 typedArgs, ok := args.(*[1]DisplayPaperKeyPhraseArg) 316 if !ok { 317 err = rpc.NewTypeError((*[1]DisplayPaperKeyPhraseArg)(nil), args) 318 return 319 } 320 err = i.DisplayPaperKeyPhrase(ctx, typedArgs[0]) 321 return 322 }, 323 }, 324 "displayPrimaryPaperKey": { 325 MakeArg: func() interface{} { 326 var ret [1]DisplayPrimaryPaperKeyArg 327 return &ret 328 }, 329 Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) { 330 typedArgs, ok := args.(*[1]DisplayPrimaryPaperKeyArg) 331 if !ok { 332 err = rpc.NewTypeError((*[1]DisplayPrimaryPaperKeyArg)(nil), args) 333 return 334 } 335 err = i.DisplayPrimaryPaperKey(ctx, typedArgs[0]) 336 return 337 }, 338 }, 339 "promptResetAccount": { 340 MakeArg: func() interface{} { 341 var ret [1]PromptResetAccountArg 342 return &ret 343 }, 344 Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) { 345 typedArgs, ok := args.(*[1]PromptResetAccountArg) 346 if !ok { 347 err = rpc.NewTypeError((*[1]PromptResetAccountArg)(nil), args) 348 return 349 } 350 ret, err = i.PromptResetAccount(ctx, typedArgs[0]) 351 return 352 }, 353 }, 354 "displayResetProgress": { 355 MakeArg: func() interface{} { 356 var ret [1]DisplayResetProgressArg 357 return &ret 358 }, 359 Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) { 360 typedArgs, ok := args.(*[1]DisplayResetProgressArg) 361 if !ok { 362 err = rpc.NewTypeError((*[1]DisplayResetProgressArg)(nil), args) 363 return 364 } 365 err = i.DisplayResetProgress(ctx, typedArgs[0]) 366 return 367 }, 368 }, 369 "explainDeviceRecovery": { 370 MakeArg: func() interface{} { 371 var ret [1]ExplainDeviceRecoveryArg 372 return &ret 373 }, 374 Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) { 375 typedArgs, ok := args.(*[1]ExplainDeviceRecoveryArg) 376 if !ok { 377 err = rpc.NewTypeError((*[1]ExplainDeviceRecoveryArg)(nil), args) 378 return 379 } 380 err = i.ExplainDeviceRecovery(ctx, typedArgs[0]) 381 return 382 }, 383 }, 384 "promptPassphraseRecovery": { 385 MakeArg: func() interface{} { 386 var ret [1]PromptPassphraseRecoveryArg 387 return &ret 388 }, 389 Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) { 390 typedArgs, ok := args.(*[1]PromptPassphraseRecoveryArg) 391 if !ok { 392 err = rpc.NewTypeError((*[1]PromptPassphraseRecoveryArg)(nil), args) 393 return 394 } 395 ret, err = i.PromptPassphraseRecovery(ctx, typedArgs[0]) 396 return 397 }, 398 }, 399 "chooseDeviceToRecoverWith": { 400 MakeArg: func() interface{} { 401 var ret [1]ChooseDeviceToRecoverWithArg 402 return &ret 403 }, 404 Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) { 405 typedArgs, ok := args.(*[1]ChooseDeviceToRecoverWithArg) 406 if !ok { 407 err = rpc.NewTypeError((*[1]ChooseDeviceToRecoverWithArg)(nil), args) 408 return 409 } 410 ret, err = i.ChooseDeviceToRecoverWith(ctx, typedArgs[0]) 411 return 412 }, 413 }, 414 "displayResetMessage": { 415 MakeArg: func() interface{} { 416 var ret [1]DisplayResetMessageArg 417 return &ret 418 }, 419 Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) { 420 typedArgs, ok := args.(*[1]DisplayResetMessageArg) 421 if !ok { 422 err = rpc.NewTypeError((*[1]DisplayResetMessageArg)(nil), args) 423 return 424 } 425 err = i.DisplayResetMessage(ctx, typedArgs[0]) 426 return 427 }, 428 }, 429 }, 430 } 431 } 432 433 type LoginUiClient struct { 434 Cli rpc.GenericClient 435 } 436 437 func (c LoginUiClient) GetEmailOrUsername(ctx context.Context, sessionID int) (res string, err error) { 438 __arg := GetEmailOrUsernameArg{SessionID: sessionID} 439 err = c.Cli.Call(ctx, "keybase.1.loginUi.getEmailOrUsername", []interface{}{__arg}, &res, 0*time.Millisecond) 440 return 441 } 442 443 func (c LoginUiClient) PromptRevokePaperKeys(ctx context.Context, __arg PromptRevokePaperKeysArg) (res bool, err error) { 444 err = c.Cli.Call(ctx, "keybase.1.loginUi.promptRevokePaperKeys", []interface{}{__arg}, &res, 0*time.Millisecond) 445 return 446 } 447 448 func (c LoginUiClient) DisplayPaperKeyPhrase(ctx context.Context, __arg DisplayPaperKeyPhraseArg) (err error) { 449 err = c.Cli.Call(ctx, "keybase.1.loginUi.displayPaperKeyPhrase", []interface{}{__arg}, nil, 0*time.Millisecond) 450 return 451 } 452 453 func (c LoginUiClient) DisplayPrimaryPaperKey(ctx context.Context, __arg DisplayPrimaryPaperKeyArg) (err error) { 454 err = c.Cli.Call(ctx, "keybase.1.loginUi.displayPrimaryPaperKey", []interface{}{__arg}, nil, 0*time.Millisecond) 455 return 456 } 457 458 // Called during login / provisioning flows to ask the user whether they 459 // would like to either enter the autoreset pipeline and perform the reset 460 // of the account. 461 func (c LoginUiClient) PromptResetAccount(ctx context.Context, __arg PromptResetAccountArg) (res ResetPromptResponse, err error) { 462 err = c.Cli.Call(ctx, "keybase.1.loginUi.promptResetAccount", []interface{}{__arg}, &res, 0*time.Millisecond) 463 return 464 } 465 466 // In some flows the user will get notified of the reset progress 467 func (c LoginUiClient) DisplayResetProgress(ctx context.Context, __arg DisplayResetProgressArg) (err error) { 468 err = c.Cli.Call(ctx, "keybase.1.loginUi.displayResetProgress", []interface{}{__arg}, nil, 0*time.Millisecond) 469 return 470 } 471 472 // During recovery the service might want to explain to the user how they can change 473 // their password by using the "change password" functionality on other devices. 474 func (c LoginUiClient) ExplainDeviceRecovery(ctx context.Context, __arg ExplainDeviceRecoveryArg) (err error) { 475 err = c.Cli.Call(ctx, "keybase.1.loginUi.explainDeviceRecovery", []interface{}{__arg}, nil, 0*time.Millisecond) 476 return 477 } 478 479 func (c LoginUiClient) PromptPassphraseRecovery(ctx context.Context, __arg PromptPassphraseRecoveryArg) (res bool, err error) { 480 err = c.Cli.Call(ctx, "keybase.1.loginUi.promptPassphraseRecovery", []interface{}{__arg}, &res, 0*time.Millisecond) 481 return 482 } 483 484 // Different from ProvisionUI's chooseDevice due to phrasing in the UI. 485 func (c LoginUiClient) ChooseDeviceToRecoverWith(ctx context.Context, __arg ChooseDeviceToRecoverWithArg) (res DeviceID, err error) { 486 err = c.Cli.Call(ctx, "keybase.1.loginUi.chooseDeviceToRecoverWith", []interface{}{__arg}, &res, 0*time.Millisecond) 487 return 488 } 489 490 // Simply displays a message in the recovery flow. 491 func (c LoginUiClient) DisplayResetMessage(ctx context.Context, __arg DisplayResetMessageArg) (err error) { 492 err = c.Cli.Call(ctx, "keybase.1.loginUi.displayResetMessage", []interface{}{__arg}, nil, 0*time.Millisecond) 493 return 494 }