This is a refactor of samhofi.us/x/keybase/v2 that takes advantage of the libkeybase performance improvements.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

626 lines
16 KiB

// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler)
// Input file: ../../../../../../client/protocol/avdl/keybase1/upk.avdl
package keybase1
import (
"errors"
"fmt"
)
type KeyType int
const (
KeyType_NONE KeyType = 0
KeyType_NACL KeyType = 1
KeyType_PGP KeyType = 2
)
func (o KeyType) DeepCopy() KeyType { return o }
var KeyTypeMap = map[string]KeyType{
"NONE": 0,
"NACL": 1,
"PGP": 2,
}
var KeyTypeRevMap = map[KeyType]string{
0: "NONE",
1: "NACL",
2: "PGP",
}
func (e KeyType) String() string {
if v, ok := KeyTypeRevMap[e]; ok {
return v
}
return fmt.Sprintf("%v", int(e))
}
type UPK2MinorVersion int
const (
UPK2MinorVersion_V0 UPK2MinorVersion = 0
UPK2MinorVersion_V1 UPK2MinorVersion = 1
UPK2MinorVersion_V2 UPK2MinorVersion = 2
UPK2MinorVersion_V3 UPK2MinorVersion = 3
UPK2MinorVersion_V4 UPK2MinorVersion = 4
UPK2MinorVersion_V5 UPK2MinorVersion = 5
UPK2MinorVersion_V6 UPK2MinorVersion = 6
)
func (o UPK2MinorVersion) DeepCopy() UPK2MinorVersion { return o }
var UPK2MinorVersionMap = map[string]UPK2MinorVersion{
"V0": 0,
"V1": 1,
"V2": 2,
"V3": 3,
"V4": 4,
"V5": 5,
"V6": 6,
}
var UPK2MinorVersionRevMap = map[UPK2MinorVersion]string{
0: "V0",
1: "V1",
2: "V2",
3: "V3",
4: "V4",
5: "V5",
6: "V6",
}
func (e UPK2MinorVersion) String() string {
if v, ok := UPK2MinorVersionRevMap[e]; ok {
return v
}
return fmt.Sprintf("%v", int(e))
}
type MerkleRootV2 struct {
Seqno Seqno `codec:"seqno" json:"seqno"`
HashMeta HashMeta `codec:"hashMeta" json:"hashMeta"`
}
func (o MerkleRootV2) DeepCopy() MerkleRootV2 {
return MerkleRootV2{
Seqno: o.Seqno.DeepCopy(),
HashMeta: o.HashMeta.DeepCopy(),
}
}
type SigChainLocation struct {
Seqno Seqno `codec:"seqno" json:"seqno"`
SeqType SeqType `codec:"seqType" json:"seqType"`
}
func (o SigChainLocation) DeepCopy() SigChainLocation {
return SigChainLocation{
Seqno: o.Seqno.DeepCopy(),
SeqType: o.SeqType.DeepCopy(),
}
}
type MerkleTreeLocation struct {
Leaf UserOrTeamID `codec:"leaf" json:"leaf"`
Loc SigChainLocation `codec:"loc" json:"loc"`
}
func (o MerkleTreeLocation) DeepCopy() MerkleTreeLocation {
return MerkleTreeLocation{
Leaf: o.Leaf.DeepCopy(),
Loc: o.Loc.DeepCopy(),
}
}
type SignatureMetadata struct {
SigningKID KID `codec:"signingKID" json:"signingKID"`
PrevMerkleRootSigned MerkleRootV2 `codec:"prevMerkleRootSigned" json:"prevMerkleRootSigned"`
FirstAppearedUnverified Seqno `codec:"firstAppearedUnverified" json:"firstAppearedUnverified"`
Time Time `codec:"time" json:"time"`
SigChainLocation SigChainLocation `codec:"sigChainLocation" json:"sigChainLocation"`
}
func (o SignatureMetadata) DeepCopy() SignatureMetadata {
return SignatureMetadata{
SigningKID: o.SigningKID.DeepCopy(),
PrevMerkleRootSigned: o.PrevMerkleRootSigned.DeepCopy(),
FirstAppearedUnverified: o.FirstAppearedUnverified.DeepCopy(),
Time: o.Time.DeepCopy(),
SigChainLocation: o.SigChainLocation.DeepCopy(),
}
}
type PublicKeyV2Base struct {
Kid KID `codec:"kid" json:"kid"`
IsSibkey bool `codec:"isSibkey" json:"isSibkey"`
IsEldest bool `codec:"isEldest" json:"isEldest"`
CTime Time `codec:"cTime" json:"cTime"`
ETime Time `codec:"eTime" json:"eTime"`
Provisioning SignatureMetadata `codec:"provisioning" json:"provisioning"`
Revocation *SignatureMetadata `codec:"revocation,omitempty" json:"revocation,omitempty"`
}
func (o PublicKeyV2Base) DeepCopy() PublicKeyV2Base {
return PublicKeyV2Base{
Kid: o.Kid.DeepCopy(),
IsSibkey: o.IsSibkey,
IsEldest: o.IsEldest,
CTime: o.CTime.DeepCopy(),
ETime: o.ETime.DeepCopy(),
Provisioning: o.Provisioning.DeepCopy(),
Revocation: (func(x *SignatureMetadata) *SignatureMetadata {
if x == nil {
return nil
}
tmp := (*x).DeepCopy()
return &tmp
})(o.Revocation),
}
}
type PublicKeyV2NaCl struct {
Base PublicKeyV2Base `codec:"base" json:"base"`
Parent *KID `codec:"parent,omitempty" json:"parent,omitempty"`
DeviceID DeviceID `codec:"deviceID" json:"deviceID"`
DeviceDescription string `codec:"deviceDescription" json:"deviceDescription"`
DeviceType DeviceTypeV2 `codec:"deviceType" json:"deviceType"`
}
func (o PublicKeyV2NaCl) DeepCopy() PublicKeyV2NaCl {
return PublicKeyV2NaCl{
Base: o.Base.DeepCopy(),
Parent: (func(x *KID) *KID {
if x == nil {
return nil
}
tmp := (*x).DeepCopy()
return &tmp
})(o.Parent),
DeviceID: o.DeviceID.DeepCopy(),
DeviceDescription: o.DeviceDescription,
DeviceType: o.DeviceType.DeepCopy(),
}
}
type PGPFingerprint [20]byte
func (o PGPFingerprint) DeepCopy() PGPFingerprint {
var ret PGPFingerprint
copy(ret[:], o[:])
return ret
}
type PublicKeyV2PGPSummary struct {
Base PublicKeyV2Base `codec:"base" json:"base"`
Fingerprint PGPFingerprint `codec:"fingerprint" json:"fingerprint"`
Identities []PGPIdentity `codec:"identities" json:"identities"`
}
func (o PublicKeyV2PGPSummary) DeepCopy() PublicKeyV2PGPSummary {
return PublicKeyV2PGPSummary{
Base: o.Base.DeepCopy(),
Fingerprint: o.Fingerprint.DeepCopy(),
Identities: (func(x []PGPIdentity) []PGPIdentity {
if x == nil {
return nil
}
ret := make([]PGPIdentity, len(x))
for i, v := range x {
vCopy := v.DeepCopy()
ret[i] = vCopy
}
return ret
})(o.Identities),
}
}
type PublicKeyV2 struct {
KeyType__ KeyType `codec:"keyType" json:"keyType"`
Nacl__ *PublicKeyV2NaCl `codec:"nacl,omitempty" json:"nacl,omitempty"`
PGP__ *PublicKeyV2PGPSummary `codec:"pgp,omitempty" json:"pgp,omitempty"`
}
func (o *PublicKeyV2) KeyType() (ret KeyType, err error) {
switch o.KeyType__ {
case KeyType_NACL:
if o.Nacl__ == nil {
err = errors.New("unexpected nil value for Nacl__")
return ret, err
}
case KeyType_PGP:
if o.PGP__ == nil {
err = errors.New("unexpected nil value for PGP__")
return ret, err
}
}
return o.KeyType__, nil
}
func (o PublicKeyV2) Nacl() (res PublicKeyV2NaCl) {
if o.KeyType__ != KeyType_NACL {
panic("wrong case accessed")
}
if o.Nacl__ == nil {
return
}
return *o.Nacl__
}
func (o PublicKeyV2) Pgp() (res PublicKeyV2PGPSummary) {
if o.KeyType__ != KeyType_PGP {
panic("wrong case accessed")
}
if o.PGP__ == nil {
return
}
return *o.PGP__
}
func NewPublicKeyV2WithNacl(v PublicKeyV2NaCl) PublicKeyV2 {
return PublicKeyV2{
KeyType__: KeyType_NACL,
Nacl__: &v,
}
}
func NewPublicKeyV2WithPgp(v PublicKeyV2PGPSummary) PublicKeyV2 {
return PublicKeyV2{
KeyType__: KeyType_PGP,
PGP__: &v,
}
}
func NewPublicKeyV2Default(keyType KeyType) PublicKeyV2 {
return PublicKeyV2{
KeyType__: keyType,
}
}
func (o PublicKeyV2) DeepCopy() PublicKeyV2 {
return PublicKeyV2{
KeyType__: o.KeyType__.DeepCopy(),
Nacl__: (func(x *PublicKeyV2NaCl) *PublicKeyV2NaCl {
if x == nil {
return nil
}
tmp := (*x).DeepCopy()
return &tmp
})(o.Nacl__),
PGP__: (func(x *PublicKeyV2PGPSummary) *PublicKeyV2PGPSummary {
if x == nil {
return nil
}
tmp := (*x).DeepCopy()
return &tmp
})(o.PGP__),
}
}
type UserPlusKeysV2 struct {
Uid UID `codec:"uid" json:"uid"`
Username string `codec:"username" json:"username"`
EldestSeqno Seqno `codec:"eldestSeqno" json:"eldestSeqno"`
Status StatusCode `codec:"status" json:"status"`
PerUserKeys []PerUserKey `codec:"perUserKeys" json:"perUserKeys"`
DeviceKeys map[KID]PublicKeyV2NaCl `codec:"deviceKeys" json:"deviceKeys"`
PGPKeys map[KID]PublicKeyV2PGPSummary `codec:"pgpKeys" json:"pgpKeys"`
StellarAccountID *string `codec:"stellarAccountID,omitempty" json:"stellarAccountID,omitempty"`
RemoteTracks map[UID]RemoteTrack `codec:"remoteTracks" json:"remoteTracks"`
Reset *ResetSummary `codec:"reset,omitempty" json:"reset,omitempty"`
Unstubbed bool `codec:"unstubbed" json:"unstubbed"`
}
func (o UserPlusKeysV2) DeepCopy() UserPlusKeysV2 {
return UserPlusKeysV2{
Uid: o.Uid.DeepCopy(),
Username: o.Username,
EldestSeqno: o.EldestSeqno.DeepCopy(),
Status: o.Status.DeepCopy(),
PerUserKeys: (func(x []PerUserKey) []PerUserKey {
if x == nil {
return nil
}
ret := make([]PerUserKey, len(x))
for i, v := range x {
vCopy := v.DeepCopy()
ret[i] = vCopy
}
return ret
})(o.PerUserKeys),
DeviceKeys: (func(x map[KID]PublicKeyV2NaCl) map[KID]PublicKeyV2NaCl {
if x == nil {
return nil
}
ret := make(map[KID]PublicKeyV2NaCl, len(x))
for k, v := range x {
kCopy := k.DeepCopy()
vCopy := v.DeepCopy()
ret[kCopy] = vCopy
}
return ret
})(o.DeviceKeys),
PGPKeys: (func(x map[KID]PublicKeyV2PGPSummary) map[KID]PublicKeyV2PGPSummary {
if x == nil {
return nil
}
ret := make(map[KID]PublicKeyV2PGPSummary, len(x))
for k, v := range x {
kCopy := k.DeepCopy()
vCopy := v.DeepCopy()
ret[kCopy] = vCopy
}
return ret
})(o.PGPKeys),
StellarAccountID: (func(x *string) *string {
if x == nil {
return nil
}
tmp := (*x)
return &tmp
})(o.StellarAccountID),
RemoteTracks: (func(x map[UID]RemoteTrack) map[UID]RemoteTrack {
if x == nil {
return nil
}
ret := make(map[UID]RemoteTrack, len(x))
for k, v := range x {
kCopy := k.DeepCopy()
vCopy := v.DeepCopy()
ret[kCopy] = vCopy
}
return ret
})(o.RemoteTracks),
Reset: (func(x *ResetSummary) *ResetSummary {
if x == nil {
return nil
}
tmp := (*x).DeepCopy()
return &tmp
})(o.Reset),
Unstubbed: o.Unstubbed,
}
}
type UserPlusKeysV2AllIncarnations struct {
Current UserPlusKeysV2 `codec:"current" json:"current"`
PastIncarnations []UserPlusKeysV2 `codec:"pastIncarnations" json:"pastIncarnations"`
Uvv UserVersionVector `codec:"uvv" json:"uvv"`
SeqnoLinkIDs map[Seqno]LinkID `codec:"seqnoLinkIDs" json:"seqnoLinkIDs"`
MinorVersion UPK2MinorVersion `codec:"minorVersion" json:"minorVersion"`
Stale bool `codec:"stale" json:"stale"`
}
func (o UserPlusKeysV2AllIncarnations) DeepCopy() UserPlusKeysV2AllIncarnations {
return UserPlusKeysV2AllIncarnations{
Current: o.Current.DeepCopy(),
PastIncarnations: (func(x []UserPlusKeysV2) []UserPlusKeysV2 {
if x == nil {
return nil
}
ret := make([]UserPlusKeysV2, len(x))
for i, v := range x {
vCopy := v.DeepCopy()
ret[i] = vCopy
}
return ret
})(o.PastIncarnations),
Uvv: o.Uvv.DeepCopy(),
SeqnoLinkIDs: (func(x map[Seqno]LinkID) map[Seqno]LinkID {
if x == nil {
return nil
}
ret := make(map[Seqno]LinkID, len(x))
for k, v := range x {
kCopy := k.DeepCopy()
vCopy := v.DeepCopy()
ret[kCopy] = vCopy
}
return ret
})(o.SeqnoLinkIDs),
MinorVersion: o.MinorVersion.DeepCopy(),
Stale: o.Stale,
}
}
type UPAKVersion int
const (
UPAKVersion_V1 UPAKVersion = 1
UPAKVersion_V2 UPAKVersion = 2
)
func (o UPAKVersion) DeepCopy() UPAKVersion { return o }
var UPAKVersionMap = map[string]UPAKVersion{
"V1": 1,
"V2": 2,
}
var UPAKVersionRevMap = map[UPAKVersion]string{
1: "V1",
2: "V2",
}
func (e UPAKVersion) String() string {
if v, ok := UPAKVersionRevMap[e]; ok {
return v
}
return fmt.Sprintf("%v", int(e))
}
// * What we're storing for each user. At first it was UPAKs, as defined
// * in common.avdl. But going forward, we're going to use UserPlusKeysV2AllIncarnations.
type UPAKVersioned struct {
V__ UPAKVersion `codec:"v" json:"v"`
V1__ *UserPlusAllKeys `codec:"v1,omitempty" json:"v1,omitempty"`
V2__ *UserPlusKeysV2AllIncarnations `codec:"v2,omitempty" json:"v2,omitempty"`
}
func (o *UPAKVersioned) V() (ret UPAKVersion, err error) {
switch o.V__ {
case UPAKVersion_V1:
if o.V1__ == nil {
err = errors.New("unexpected nil value for V1__")
return ret, err
}
case UPAKVersion_V2:
if o.V2__ == nil {
err = errors.New("unexpected nil value for V2__")
return ret, err
}
}
return o.V__, nil
}
func (o UPAKVersioned) V1() (res UserPlusAllKeys) {
if o.V__ != UPAKVersion_V1 {
panic("wrong case accessed")
}
if o.V1__ == nil {
return
}
return *o.V1__
}
func (o UPAKVersioned) V2() (res UserPlusKeysV2AllIncarnations) {
if o.V__ != UPAKVersion_V2 {
panic("wrong case accessed")
}
if o.V2__ == nil {
return
}
return *o.V2__
}
func NewUPAKVersionedWithV1(v UserPlusAllKeys) UPAKVersioned {
return UPAKVersioned{
V__: UPAKVersion_V1,
V1__: &v,
}
}
func NewUPAKVersionedWithV2(v UserPlusKeysV2AllIncarnations) UPAKVersioned {
return UPAKVersioned{
V__: UPAKVersion_V2,
V2__: &v,
}
}
func (o UPAKVersioned) DeepCopy() UPAKVersioned {
return UPAKVersioned{
V__: o.V__.DeepCopy(),
V1__: (func(x *UserPlusAllKeys) *UserPlusAllKeys {
if x == nil {
return nil
}
tmp := (*x).DeepCopy()
return &tmp
})(o.V1__),
V2__: (func(x *UserPlusKeysV2AllIncarnations) *UserPlusKeysV2AllIncarnations {
if x == nil {
return nil
}
tmp := (*x).DeepCopy()
return &tmp
})(o.V2__),
}
}
type UPKLiteMinorVersion int
const (
UPKLiteMinorVersion_V0 UPKLiteMinorVersion = 0
)
func (o UPKLiteMinorVersion) DeepCopy() UPKLiteMinorVersion { return o }
var UPKLiteMinorVersionMap = map[string]UPKLiteMinorVersion{
"V0": 0,
}
var UPKLiteMinorVersionRevMap = map[UPKLiteMinorVersion]string{
0: "V0",
}
func (e UPKLiteMinorVersion) String() string {
if v, ok := UPKLiteMinorVersionRevMap[e]; ok {
return v
}
return fmt.Sprintf("%v", int(e))
}
type UPKLiteV1 struct {
Uid UID `codec:"uid" json:"uid"`
Username string `codec:"username" json:"username"`
EldestSeqno Seqno `codec:"eldestSeqno" json:"eldestSeqno"`
Status StatusCode `codec:"status" json:"status"`
DeviceKeys map[KID]PublicKeyV2NaCl `codec:"deviceKeys" json:"deviceKeys"`
Reset *ResetSummary `codec:"reset,omitempty" json:"reset,omitempty"`
}
func (o UPKLiteV1) DeepCopy() UPKLiteV1 {
return UPKLiteV1{
Uid: o.Uid.DeepCopy(),
Username: o.Username,
EldestSeqno: o.EldestSeqno.DeepCopy(),
Status: o.Status.DeepCopy(),
DeviceKeys: (func(x map[KID]PublicKeyV2NaCl) map[KID]PublicKeyV2NaCl {
if x == nil {
return nil
}
ret := make(map[KID]PublicKeyV2NaCl, len(x))
for k, v := range x {
kCopy := k.DeepCopy()
vCopy := v.DeepCopy()
ret[kCopy] = vCopy
}
return ret
})(o.DeviceKeys),
Reset: (func(x *ResetSummary) *ResetSummary {
if x == nil {
return nil
}
tmp := (*x).DeepCopy()
return &tmp
})(o.Reset),
}
}
type UPKLiteV1AllIncarnations struct {
Current UPKLiteV1 `codec:"current" json:"current"`
PastIncarnations []UPKLiteV1 `codec:"pastIncarnations" json:"pastIncarnations"`
SeqnoLinkIDs map[Seqno]LinkID `codec:"seqnoLinkIDs" json:"seqnoLinkIDs"`
MinorVersion UPKLiteMinorVersion `codec:"minorVersion" json:"minorVersion"`
}
func (o UPKLiteV1AllIncarnations) DeepCopy() UPKLiteV1AllIncarnations {
return UPKLiteV1AllIncarnations{
Current: o.Current.DeepCopy(),
PastIncarnations: (func(x []UPKLiteV1) []UPKLiteV1 {
if x == nil {
return nil
}
ret := make([]UPKLiteV1, len(x))
for i, v := range x {
vCopy := v.DeepCopy()
ret[i] = vCopy
}
return ret
})(o.PastIncarnations),
SeqnoLinkIDs: (func(x map[Seqno]LinkID) map[Seqno]LinkID {
if x == nil {
return nil
}
ret := make(map[Seqno]LinkID, len(x))
for k, v := range x {
kCopy := k.DeepCopy()
vCopy := v.DeepCopy()
ret[kCopy] = vCopy
}
return ret
})(o.SeqnoLinkIDs),
MinorVersion: o.MinorVersion.DeepCopy(),
}
}