github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/protocol/keybase1/upk.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/upk.avdl 3 4 package keybase1 5 6 import ( 7 "errors" 8 "fmt" 9 "github.com/keybase/go-framed-msgpack-rpc/rpc" 10 ) 11 12 type KeyType int 13 14 const ( 15 KeyType_NONE KeyType = 0 16 KeyType_NACL KeyType = 1 17 KeyType_PGP KeyType = 2 18 ) 19 20 func (o KeyType) DeepCopy() KeyType { return o } 21 22 var KeyTypeMap = map[string]KeyType{ 23 "NONE": 0, 24 "NACL": 1, 25 "PGP": 2, 26 } 27 28 var KeyTypeRevMap = map[KeyType]string{ 29 0: "NONE", 30 1: "NACL", 31 2: "PGP", 32 } 33 34 func (e KeyType) String() string { 35 if v, ok := KeyTypeRevMap[e]; ok { 36 return v 37 } 38 return fmt.Sprintf("%v", int(e)) 39 } 40 41 type UPK2MinorVersion int 42 43 const ( 44 UPK2MinorVersion_V0 UPK2MinorVersion = 0 45 UPK2MinorVersion_V1 UPK2MinorVersion = 1 46 UPK2MinorVersion_V2 UPK2MinorVersion = 2 47 UPK2MinorVersion_V3 UPK2MinorVersion = 3 48 UPK2MinorVersion_V4 UPK2MinorVersion = 4 49 UPK2MinorVersion_V5 UPK2MinorVersion = 5 50 UPK2MinorVersion_V6 UPK2MinorVersion = 6 51 ) 52 53 func (o UPK2MinorVersion) DeepCopy() UPK2MinorVersion { return o } 54 55 var UPK2MinorVersionMap = map[string]UPK2MinorVersion{ 56 "V0": 0, 57 "V1": 1, 58 "V2": 2, 59 "V3": 3, 60 "V4": 4, 61 "V5": 5, 62 "V6": 6, 63 } 64 65 var UPK2MinorVersionRevMap = map[UPK2MinorVersion]string{ 66 0: "V0", 67 1: "V1", 68 2: "V2", 69 3: "V3", 70 4: "V4", 71 5: "V5", 72 6: "V6", 73 } 74 75 func (e UPK2MinorVersion) String() string { 76 if v, ok := UPK2MinorVersionRevMap[e]; ok { 77 return v 78 } 79 return fmt.Sprintf("%v", int(e)) 80 } 81 82 type MerkleRootV2 struct { 83 Seqno Seqno `codec:"seqno" json:"seqno"` 84 HashMeta HashMeta `codec:"hashMeta" json:"hashMeta"` 85 } 86 87 func (o MerkleRootV2) DeepCopy() MerkleRootV2 { 88 return MerkleRootV2{ 89 Seqno: o.Seqno.DeepCopy(), 90 HashMeta: o.HashMeta.DeepCopy(), 91 } 92 } 93 94 type SigChainLocation struct { 95 Seqno Seqno `codec:"seqno" json:"seqno"` 96 SeqType SeqType `codec:"seqType" json:"seqType"` 97 } 98 99 func (o SigChainLocation) DeepCopy() SigChainLocation { 100 return SigChainLocation{ 101 Seqno: o.Seqno.DeepCopy(), 102 SeqType: o.SeqType.DeepCopy(), 103 } 104 } 105 106 type MerkleTreeLocation struct { 107 Leaf UserOrTeamID `codec:"leaf" json:"leaf"` 108 Loc SigChainLocation `codec:"loc" json:"loc"` 109 } 110 111 func (o MerkleTreeLocation) DeepCopy() MerkleTreeLocation { 112 return MerkleTreeLocation{ 113 Leaf: o.Leaf.DeepCopy(), 114 Loc: o.Loc.DeepCopy(), 115 } 116 } 117 118 type SignatureMetadata struct { 119 SigningKID KID `codec:"signingKID" json:"signingKID"` 120 PrevMerkleRootSigned MerkleRootV2 `codec:"prevMerkleRootSigned" json:"prevMerkleRootSigned"` 121 FirstAppearedUnverified Seqno `codec:"firstAppearedUnverified" json:"firstAppearedUnverified"` 122 Time Time `codec:"time" json:"time"` 123 SigChainLocation SigChainLocation `codec:"sigChainLocation" json:"sigChainLocation"` 124 } 125 126 func (o SignatureMetadata) DeepCopy() SignatureMetadata { 127 return SignatureMetadata{ 128 SigningKID: o.SigningKID.DeepCopy(), 129 PrevMerkleRootSigned: o.PrevMerkleRootSigned.DeepCopy(), 130 FirstAppearedUnverified: o.FirstAppearedUnverified.DeepCopy(), 131 Time: o.Time.DeepCopy(), 132 SigChainLocation: o.SigChainLocation.DeepCopy(), 133 } 134 } 135 136 type PublicKeyV2Base struct { 137 Kid KID `codec:"kid" json:"kid"` 138 IsSibkey bool `codec:"isSibkey" json:"isSibkey"` 139 IsEldest bool `codec:"isEldest" json:"isEldest"` 140 CTime Time `codec:"cTime" json:"cTime"` 141 ETime Time `codec:"eTime" json:"eTime"` 142 Provisioning SignatureMetadata `codec:"provisioning" json:"provisioning"` 143 Revocation *SignatureMetadata `codec:"revocation,omitempty" json:"revocation,omitempty"` 144 } 145 146 func (o PublicKeyV2Base) DeepCopy() PublicKeyV2Base { 147 return PublicKeyV2Base{ 148 Kid: o.Kid.DeepCopy(), 149 IsSibkey: o.IsSibkey, 150 IsEldest: o.IsEldest, 151 CTime: o.CTime.DeepCopy(), 152 ETime: o.ETime.DeepCopy(), 153 Provisioning: o.Provisioning.DeepCopy(), 154 Revocation: (func(x *SignatureMetadata) *SignatureMetadata { 155 if x == nil { 156 return nil 157 } 158 tmp := (*x).DeepCopy() 159 return &tmp 160 })(o.Revocation), 161 } 162 } 163 164 type PublicKeyV2NaCl struct { 165 Base PublicKeyV2Base `codec:"base" json:"base"` 166 Parent *KID `codec:"parent,omitempty" json:"parent,omitempty"` 167 DeviceID DeviceID `codec:"deviceID" json:"deviceID"` 168 DeviceDescription string `codec:"deviceDescription" json:"deviceDescription"` 169 DeviceType DeviceTypeV2 `codec:"deviceType" json:"deviceType"` 170 } 171 172 func (o PublicKeyV2NaCl) DeepCopy() PublicKeyV2NaCl { 173 return PublicKeyV2NaCl{ 174 Base: o.Base.DeepCopy(), 175 Parent: (func(x *KID) *KID { 176 if x == nil { 177 return nil 178 } 179 tmp := (*x).DeepCopy() 180 return &tmp 181 })(o.Parent), 182 DeviceID: o.DeviceID.DeepCopy(), 183 DeviceDescription: o.DeviceDescription, 184 DeviceType: o.DeviceType.DeepCopy(), 185 } 186 } 187 188 type PGPFingerprint [20]byte 189 190 func (o PGPFingerprint) DeepCopy() PGPFingerprint { 191 var ret PGPFingerprint 192 copy(ret[:], o[:]) 193 return ret 194 } 195 196 type PublicKeyV2PGPSummary struct { 197 Base PublicKeyV2Base `codec:"base" json:"base"` 198 Fingerprint PGPFingerprint `codec:"fingerprint" json:"fingerprint"` 199 Identities []PGPIdentity `codec:"identities" json:"identities"` 200 } 201 202 func (o PublicKeyV2PGPSummary) DeepCopy() PublicKeyV2PGPSummary { 203 return PublicKeyV2PGPSummary{ 204 Base: o.Base.DeepCopy(), 205 Fingerprint: o.Fingerprint.DeepCopy(), 206 Identities: (func(x []PGPIdentity) []PGPIdentity { 207 if x == nil { 208 return nil 209 } 210 ret := make([]PGPIdentity, len(x)) 211 for i, v := range x { 212 vCopy := v.DeepCopy() 213 ret[i] = vCopy 214 } 215 return ret 216 })(o.Identities), 217 } 218 } 219 220 type PublicKeyV2 struct { 221 KeyType__ KeyType `codec:"keyType" json:"keyType"` 222 Nacl__ *PublicKeyV2NaCl `codec:"nacl,omitempty" json:"nacl,omitempty"` 223 PGP__ *PublicKeyV2PGPSummary `codec:"pgp,omitempty" json:"pgp,omitempty"` 224 } 225 226 func (o *PublicKeyV2) KeyType() (ret KeyType, err error) { 227 switch o.KeyType__ { 228 case KeyType_NACL: 229 if o.Nacl__ == nil { 230 err = errors.New("unexpected nil value for Nacl__") 231 return ret, err 232 } 233 case KeyType_PGP: 234 if o.PGP__ == nil { 235 err = errors.New("unexpected nil value for PGP__") 236 return ret, err 237 } 238 } 239 return o.KeyType__, nil 240 } 241 242 func (o PublicKeyV2) Nacl() (res PublicKeyV2NaCl) { 243 if o.KeyType__ != KeyType_NACL { 244 panic("wrong case accessed") 245 } 246 if o.Nacl__ == nil { 247 return 248 } 249 return *o.Nacl__ 250 } 251 252 func (o PublicKeyV2) Pgp() (res PublicKeyV2PGPSummary) { 253 if o.KeyType__ != KeyType_PGP { 254 panic("wrong case accessed") 255 } 256 if o.PGP__ == nil { 257 return 258 } 259 return *o.PGP__ 260 } 261 262 func NewPublicKeyV2WithNacl(v PublicKeyV2NaCl) PublicKeyV2 { 263 return PublicKeyV2{ 264 KeyType__: KeyType_NACL, 265 Nacl__: &v, 266 } 267 } 268 269 func NewPublicKeyV2WithPgp(v PublicKeyV2PGPSummary) PublicKeyV2 { 270 return PublicKeyV2{ 271 KeyType__: KeyType_PGP, 272 PGP__: &v, 273 } 274 } 275 276 func NewPublicKeyV2Default(keyType KeyType) PublicKeyV2 { 277 return PublicKeyV2{ 278 KeyType__: keyType, 279 } 280 } 281 282 func (o PublicKeyV2) DeepCopy() PublicKeyV2 { 283 return PublicKeyV2{ 284 KeyType__: o.KeyType__.DeepCopy(), 285 Nacl__: (func(x *PublicKeyV2NaCl) *PublicKeyV2NaCl { 286 if x == nil { 287 return nil 288 } 289 tmp := (*x).DeepCopy() 290 return &tmp 291 })(o.Nacl__), 292 PGP__: (func(x *PublicKeyV2PGPSummary) *PublicKeyV2PGPSummary { 293 if x == nil { 294 return nil 295 } 296 tmp := (*x).DeepCopy() 297 return &tmp 298 })(o.PGP__), 299 } 300 } 301 302 type UserPlusKeysV2 struct { 303 Uid UID `codec:"uid" json:"uid"` 304 Username string `codec:"username" json:"username"` 305 EldestSeqno Seqno `codec:"eldestSeqno" json:"eldestSeqno"` 306 Status StatusCode `codec:"status" json:"status"` 307 PerUserKeys []PerUserKey `codec:"perUserKeys" json:"perUserKeys"` 308 DeviceKeys map[KID]PublicKeyV2NaCl `codec:"deviceKeys" json:"deviceKeys"` 309 PGPKeys map[KID]PublicKeyV2PGPSummary `codec:"pgpKeys" json:"pgpKeys"` 310 StellarAccountID *string `codec:"stellarAccountID,omitempty" json:"stellarAccountID,omitempty"` 311 RemoteTracks map[UID]RemoteTrack `codec:"remoteTracks" json:"remoteTracks"` 312 Reset *ResetSummary `codec:"reset,omitempty" json:"reset,omitempty"` 313 Unstubbed bool `codec:"unstubbed" json:"unstubbed"` 314 } 315 316 func (o UserPlusKeysV2) DeepCopy() UserPlusKeysV2 { 317 return UserPlusKeysV2{ 318 Uid: o.Uid.DeepCopy(), 319 Username: o.Username, 320 EldestSeqno: o.EldestSeqno.DeepCopy(), 321 Status: o.Status.DeepCopy(), 322 PerUserKeys: (func(x []PerUserKey) []PerUserKey { 323 if x == nil { 324 return nil 325 } 326 ret := make([]PerUserKey, len(x)) 327 for i, v := range x { 328 vCopy := v.DeepCopy() 329 ret[i] = vCopy 330 } 331 return ret 332 })(o.PerUserKeys), 333 DeviceKeys: (func(x map[KID]PublicKeyV2NaCl) map[KID]PublicKeyV2NaCl { 334 if x == nil { 335 return nil 336 } 337 ret := make(map[KID]PublicKeyV2NaCl, len(x)) 338 for k, v := range x { 339 kCopy := k.DeepCopy() 340 vCopy := v.DeepCopy() 341 ret[kCopy] = vCopy 342 } 343 return ret 344 })(o.DeviceKeys), 345 PGPKeys: (func(x map[KID]PublicKeyV2PGPSummary) map[KID]PublicKeyV2PGPSummary { 346 if x == nil { 347 return nil 348 } 349 ret := make(map[KID]PublicKeyV2PGPSummary, len(x)) 350 for k, v := range x { 351 kCopy := k.DeepCopy() 352 vCopy := v.DeepCopy() 353 ret[kCopy] = vCopy 354 } 355 return ret 356 })(o.PGPKeys), 357 StellarAccountID: (func(x *string) *string { 358 if x == nil { 359 return nil 360 } 361 tmp := (*x) 362 return &tmp 363 })(o.StellarAccountID), 364 RemoteTracks: (func(x map[UID]RemoteTrack) map[UID]RemoteTrack { 365 if x == nil { 366 return nil 367 } 368 ret := make(map[UID]RemoteTrack, len(x)) 369 for k, v := range x { 370 kCopy := k.DeepCopy() 371 vCopy := v.DeepCopy() 372 ret[kCopy] = vCopy 373 } 374 return ret 375 })(o.RemoteTracks), 376 Reset: (func(x *ResetSummary) *ResetSummary { 377 if x == nil { 378 return nil 379 } 380 tmp := (*x).DeepCopy() 381 return &tmp 382 })(o.Reset), 383 Unstubbed: o.Unstubbed, 384 } 385 } 386 387 type UserPlusKeysV2AllIncarnations struct { 388 Current UserPlusKeysV2 `codec:"current" json:"current"` 389 PastIncarnations []UserPlusKeysV2 `codec:"pastIncarnations" json:"pastIncarnations"` 390 Uvv UserVersionVector `codec:"uvv" json:"uvv"` 391 SeqnoLinkIDs map[Seqno]LinkID `codec:"seqnoLinkIDs" json:"seqnoLinkIDs"` 392 MinorVersion UPK2MinorVersion `codec:"minorVersion" json:"minorVersion"` 393 Stale bool `codec:"stale" json:"stale"` 394 } 395 396 func (o UserPlusKeysV2AllIncarnations) DeepCopy() UserPlusKeysV2AllIncarnations { 397 return UserPlusKeysV2AllIncarnations{ 398 Current: o.Current.DeepCopy(), 399 PastIncarnations: (func(x []UserPlusKeysV2) []UserPlusKeysV2 { 400 if x == nil { 401 return nil 402 } 403 ret := make([]UserPlusKeysV2, len(x)) 404 for i, v := range x { 405 vCopy := v.DeepCopy() 406 ret[i] = vCopy 407 } 408 return ret 409 })(o.PastIncarnations), 410 Uvv: o.Uvv.DeepCopy(), 411 SeqnoLinkIDs: (func(x map[Seqno]LinkID) map[Seqno]LinkID { 412 if x == nil { 413 return nil 414 } 415 ret := make(map[Seqno]LinkID, len(x)) 416 for k, v := range x { 417 kCopy := k.DeepCopy() 418 vCopy := v.DeepCopy() 419 ret[kCopy] = vCopy 420 } 421 return ret 422 })(o.SeqnoLinkIDs), 423 MinorVersion: o.MinorVersion.DeepCopy(), 424 Stale: o.Stale, 425 } 426 } 427 428 type UPAKVersion int 429 430 const ( 431 UPAKVersion_V1 UPAKVersion = 1 432 UPAKVersion_V2 UPAKVersion = 2 433 ) 434 435 func (o UPAKVersion) DeepCopy() UPAKVersion { return o } 436 437 var UPAKVersionMap = map[string]UPAKVersion{ 438 "V1": 1, 439 "V2": 2, 440 } 441 442 var UPAKVersionRevMap = map[UPAKVersion]string{ 443 1: "V1", 444 2: "V2", 445 } 446 447 func (e UPAKVersion) String() string { 448 if v, ok := UPAKVersionRevMap[e]; ok { 449 return v 450 } 451 return fmt.Sprintf("%v", int(e)) 452 } 453 454 // * What we're storing for each user. At first it was UPAKs, as defined 455 // * in common.avdl. But going forward, we're going to use UserPlusKeysV2AllIncarnations. 456 type UPAKVersioned struct { 457 V__ UPAKVersion `codec:"v" json:"v"` 458 V1__ *UserPlusAllKeys `codec:"v1,omitempty" json:"v1,omitempty"` 459 V2__ *UserPlusKeysV2AllIncarnations `codec:"v2,omitempty" json:"v2,omitempty"` 460 } 461 462 func (o *UPAKVersioned) V() (ret UPAKVersion, err error) { 463 switch o.V__ { 464 case UPAKVersion_V1: 465 if o.V1__ == nil { 466 err = errors.New("unexpected nil value for V1__") 467 return ret, err 468 } 469 case UPAKVersion_V2: 470 if o.V2__ == nil { 471 err = errors.New("unexpected nil value for V2__") 472 return ret, err 473 } 474 } 475 return o.V__, nil 476 } 477 478 func (o UPAKVersioned) V1() (res UserPlusAllKeys) { 479 if o.V__ != UPAKVersion_V1 { 480 panic("wrong case accessed") 481 } 482 if o.V1__ == nil { 483 return 484 } 485 return *o.V1__ 486 } 487 488 func (o UPAKVersioned) V2() (res UserPlusKeysV2AllIncarnations) { 489 if o.V__ != UPAKVersion_V2 { 490 panic("wrong case accessed") 491 } 492 if o.V2__ == nil { 493 return 494 } 495 return *o.V2__ 496 } 497 498 func NewUPAKVersionedWithV1(v UserPlusAllKeys) UPAKVersioned { 499 return UPAKVersioned{ 500 V__: UPAKVersion_V1, 501 V1__: &v, 502 } 503 } 504 505 func NewUPAKVersionedWithV2(v UserPlusKeysV2AllIncarnations) UPAKVersioned { 506 return UPAKVersioned{ 507 V__: UPAKVersion_V2, 508 V2__: &v, 509 } 510 } 511 512 func (o UPAKVersioned) DeepCopy() UPAKVersioned { 513 return UPAKVersioned{ 514 V__: o.V__.DeepCopy(), 515 V1__: (func(x *UserPlusAllKeys) *UserPlusAllKeys { 516 if x == nil { 517 return nil 518 } 519 tmp := (*x).DeepCopy() 520 return &tmp 521 })(o.V1__), 522 V2__: (func(x *UserPlusKeysV2AllIncarnations) *UserPlusKeysV2AllIncarnations { 523 if x == nil { 524 return nil 525 } 526 tmp := (*x).DeepCopy() 527 return &tmp 528 })(o.V2__), 529 } 530 } 531 532 type UPKLiteMinorVersion int 533 534 const ( 535 UPKLiteMinorVersion_V0 UPKLiteMinorVersion = 0 536 ) 537 538 func (o UPKLiteMinorVersion) DeepCopy() UPKLiteMinorVersion { return o } 539 540 var UPKLiteMinorVersionMap = map[string]UPKLiteMinorVersion{ 541 "V0": 0, 542 } 543 544 var UPKLiteMinorVersionRevMap = map[UPKLiteMinorVersion]string{ 545 0: "V0", 546 } 547 548 func (e UPKLiteMinorVersion) String() string { 549 if v, ok := UPKLiteMinorVersionRevMap[e]; ok { 550 return v 551 } 552 return fmt.Sprintf("%v", int(e)) 553 } 554 555 type UPKLiteV1 struct { 556 Uid UID `codec:"uid" json:"uid"` 557 Username string `codec:"username" json:"username"` 558 EldestSeqno Seqno `codec:"eldestSeqno" json:"eldestSeqno"` 559 Status StatusCode `codec:"status" json:"status"` 560 DeviceKeys map[KID]PublicKeyV2NaCl `codec:"deviceKeys" json:"deviceKeys"` 561 Reset *ResetSummary `codec:"reset,omitempty" json:"reset,omitempty"` 562 } 563 564 func (o UPKLiteV1) DeepCopy() UPKLiteV1 { 565 return UPKLiteV1{ 566 Uid: o.Uid.DeepCopy(), 567 Username: o.Username, 568 EldestSeqno: o.EldestSeqno.DeepCopy(), 569 Status: o.Status.DeepCopy(), 570 DeviceKeys: (func(x map[KID]PublicKeyV2NaCl) map[KID]PublicKeyV2NaCl { 571 if x == nil { 572 return nil 573 } 574 ret := make(map[KID]PublicKeyV2NaCl, len(x)) 575 for k, v := range x { 576 kCopy := k.DeepCopy() 577 vCopy := v.DeepCopy() 578 ret[kCopy] = vCopy 579 } 580 return ret 581 })(o.DeviceKeys), 582 Reset: (func(x *ResetSummary) *ResetSummary { 583 if x == nil { 584 return nil 585 } 586 tmp := (*x).DeepCopy() 587 return &tmp 588 })(o.Reset), 589 } 590 } 591 592 type UPKLiteV1AllIncarnations struct { 593 Current UPKLiteV1 `codec:"current" json:"current"` 594 PastIncarnations []UPKLiteV1 `codec:"pastIncarnations" json:"pastIncarnations"` 595 SeqnoLinkIDs map[Seqno]LinkID `codec:"seqnoLinkIDs" json:"seqnoLinkIDs"` 596 MinorVersion UPKLiteMinorVersion `codec:"minorVersion" json:"minorVersion"` 597 } 598 599 func (o UPKLiteV1AllIncarnations) DeepCopy() UPKLiteV1AllIncarnations { 600 return UPKLiteV1AllIncarnations{ 601 Current: o.Current.DeepCopy(), 602 PastIncarnations: (func(x []UPKLiteV1) []UPKLiteV1 { 603 if x == nil { 604 return nil 605 } 606 ret := make([]UPKLiteV1, len(x)) 607 for i, v := range x { 608 vCopy := v.DeepCopy() 609 ret[i] = vCopy 610 } 611 return ret 612 })(o.PastIncarnations), 613 SeqnoLinkIDs: (func(x map[Seqno]LinkID) map[Seqno]LinkID { 614 if x == nil { 615 return nil 616 } 617 ret := make(map[Seqno]LinkID, len(x)) 618 for k, v := range x { 619 kCopy := k.DeepCopy() 620 vCopy := v.DeepCopy() 621 ret[kCopy] = vCopy 622 } 623 return ret 624 })(o.SeqnoLinkIDs), 625 MinorVersion: o.MinorVersion.DeepCopy(), 626 } 627 } 628 629 type UPKInterface interface { 630 } 631 632 func UPKProtocol(i UPKInterface) rpc.Protocol { 633 return rpc.Protocol{ 634 Name: "keybase.1.UPK", 635 Methods: map[string]rpc.ServeHandlerDescription{}, 636 } 637 } 638 639 type UPKClient struct { 640 Cli rpc.GenericClient 641 }