libkb

package
v1.0.15 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 31, 2016 License: BSD-3-Clause, BSD-3-Clause Imports: 70 Imported by: 0

Documentation

Overview

Code used in populating JSON objects to generating Keybase-style signatures.

A KeyFamily is a group of sibling keys that have equal power for a user. A family can consist of 1 PGP keys, and arbitrarily many NaCl Sibkeys. There also can be some subkeys dangling off for ECDH.

A module for syncing secrets with the server, such as SKB PGP keys, and server-halves of our various secret keys.

A module for syncing trackers from the server

Index

Constants

View Source
const (
	XAPIResJSON = iota
	XAPIResHTML
	XAPIResText
)
View Source
const (
	NONE = iota
	OR
	AND
	LPAREN
	RPAREN
	URL
	EOF
	ERROR
)
View Source
const (
	DevelServerURI      = "http://localhost:3000"
	StagingServerURI    = "https://stage0.keybase.io"
	ProductionServerURI = "https://keybase.io"
	TorServerURI        = "http://fncuwbiisyh6ak3i.onion"
)
View Source
const (
	DevelRunMode      RunMode = "devel"
	StagingRunMode            = "staging"
	ProductionRunMode         = "prod"
	RunModeError              = "error"
	NoRunMode                 = ""
)
View Source
const (
	ConfigFile  = "config.json"
	SessionFile = "session.json"
	DBFile      = "keybase.leveldb"
	SocketFile  = "keybased.sock"
	PIDFile     = "keybased.pid"

	SecretKeyringTemplate = "secretkeys.%u.mpack"

	APIVersion           = "1.0"
	APIURIPathPrefix     = "/_/api/" + APIVersion
	DaemonPort           = 40933
	GoClientID           = "keybase.io go client"
	KeybaseSaltpackBrand = "KEYBASE"
)
View Source
const (
	PermFile          os.FileMode = 0600
	PermDir           os.FileMode = 0700
	UmaskablePermFile os.FileMode = 0666
)
View Source
const (
	UserCacheMaxAge      = 5 * time.Minute
	PGPFingerprintHexLen = 40

	ProofCacheSize             = 0x1000
	ProofCacheLongDur          = 48 * time.Hour
	ProofCacheMediumDur        = 6 * time.Hour
	ProofCacheShortDur         = 30 * time.Minute
	Identify2CacheLongTimeout  = 6 * time.Hour
	Identify2CacheShortTimeout = 1 * time.Minute
	LinkCacheSize              = 0x10000
	LinkCacheCleanDur          = 1 * time.Minute

	SigShortIDBytes  = 27
	LocalTrackMaxAge = 48 * time.Hour
)
View Source
const (
	KeybaseKIDV1       = 1 // Uses SHA-256
	KeybaseSignatureV1 = 1
	OneYearInSeconds   = 24 * 60 * 60 * 365

	SigExpireIn       = OneYearInSeconds * 16 // 16 years
	NaclEdDSAExpireIn = OneYearInSeconds * 16 // 16 years
	NaclDHExpireIn    = OneYearInSeconds * 16 // 16 years
	KeyExpireIn       = OneYearInSeconds * 16 // 16 years
	SubkeyExpireIn    = OneYearInSeconds * 16 // 16 years
	AuthExpireIn      = OneYearInSeconds      // 1 year

	PaperKeyMemoryTimeout = time.Hour
)
View Source
const (
	SCOk                     = int(keybase1.StatusCode_SCOk)
	SCLoginRequired          = int(keybase1.StatusCode_SCLoginRequired)
	SCBadSession             = int(keybase1.StatusCode_SCBadSession)
	SCBadLoginUserNotFound   = int(keybase1.StatusCode_SCBadLoginUserNotFound)
	SCBadLoginPassword       = int(keybase1.StatusCode_SCBadLoginPassword)
	SCNotFound               = int(keybase1.StatusCode_SCNotFound)
	SCGeneric                = int(keybase1.StatusCode_SCGeneric)
	SCAlreadyLoggedIn        = int(keybase1.StatusCode_SCAlreadyLoggedIn)
	SCCanceled               = int(keybase1.StatusCode_SCCanceled)
	SCInputCanceled          = int(keybase1.StatusCode_SCInputCanceled)
	SCReloginRequired        = int(keybase1.StatusCode_SCReloginRequired)
	SCResolutionFailed       = int(keybase1.StatusCode_SCResolutionFailed)
	SCProfileNotPublic       = int(keybase1.StatusCode_SCProfileNotPublic)
	SCBadSignupUsernameTaken = int(keybase1.StatusCode_SCBadSignupUsernameTaken)
	SCBadInvitationCode      = int(keybase1.StatusCode_SCBadInvitationCode)
	SCMissingResult          = int(keybase1.StatusCode_SCMissingResult)
	SCKeyNotFound            = int(keybase1.StatusCode_SCKeyNotFound)
	SCKeyInUse               = int(keybase1.StatusCode_SCKeyInUse)
	SCKeyBadGen              = int(keybase1.StatusCode_SCKeyBadGen)
	SCKeyNoSecret            = int(keybase1.StatusCode_SCKeyNoSecret)
	SCKeyBadUIDs             = int(keybase1.StatusCode_SCKeyBadUIDs)
	SCKeyNoActive            = int(keybase1.StatusCode_SCKeyNoActive)
	SCKeyNoSig               = int(keybase1.StatusCode_SCKeyNoSig)
	SCKeyBadSig              = int(keybase1.StatusCode_SCKeyBadSig)
	SCKeyBadEldest           = int(keybase1.StatusCode_SCKeyBadEldest)
	SCKeyNoEldest            = int(keybase1.StatusCode_SCKeyNoEldest)
	SCKeyDuplicateUpdate     = int(keybase1.StatusCode_SCKeyDuplicateUpdate)
	SCKeySyncedPGPNotFound   = int(keybase1.StatusCode_SCKeySyncedPGPNotFound)
	SCKeyNoMatchingGPG       = int(keybase1.StatusCode_SCKeyNoMatchingGPG)
	SCSibkeyAlreadyExists    = int(keybase1.StatusCode_SCSibkeyAlreadyExists)
	SCDecryptionKeyNotFound  = int(keybase1.StatusCode_SCDecryptionKeyNotFound)
	SCBadTrackSession        = int(keybase1.StatusCode_SCBadTrackSession)
	SCDeviceNotFound         = int(keybase1.StatusCode_SCDeviceNotFound)
	SCDeviceMismatch         = int(keybase1.StatusCode_SCDeviceMismatch)
	SCDeviceRequired         = int(keybase1.StatusCode_SCDeviceRequired)
	SCDevicePrevProvisioned  = int(keybase1.StatusCode_SCDevicePrevProvisioned)
	SCDeviceNoProvision      = int(keybase1.StatusCode_SCDeviceNoProvision)
	SCStreamExists           = int(keybase1.StatusCode_SCStreamExists)
	SCStreamNotFound         = int(keybase1.StatusCode_SCStreamNotFound)
	SCStreamWrongKind        = int(keybase1.StatusCode_SCStreamWrongKind)
	SCStreamEOF              = int(keybase1.StatusCode_SCStreamEOF)
	SCAPINetworkError        = int(keybase1.StatusCode_SCAPINetworkError)
	SCTimeout                = int(keybase1.StatusCode_SCTimeout)
	SCProofError             = int(keybase1.StatusCode_SCProofError)
	SCIdentificationExpired  = int(keybase1.StatusCode_SCIdentificationExpired)
	SCSelfNotFound           = int(keybase1.StatusCode_SCSelfNotFound)
	SCBadKexPhrase           = int(keybase1.StatusCode_SCBadKexPhrase)
	SCNoUI                   = int(keybase1.StatusCode_SCNoUI)
	SCNoUIDelegation         = int(keybase1.StatusCode_SCNoUIDelegation)
	SCIdentifyFailed         = int(keybase1.StatusCode_SCIdentifyFailed)
	SCTrackingBroke          = int(keybase1.StatusCode_SCTrackingBroke)
	SCKeyNoPGPEncryption     = int(keybase1.StatusCode_SCKeyNoPGPEncryption)
	SCKeyNoNaClEncryption    = int(keybase1.StatusCode_SCKeyNoNaClEncryption)
	SCWrongCryptoFormat      = int(keybase1.StatusCode_SCWrongCryptoFormat)
)

Status codes. This list should match keybase/lib/status_codes.iced.

View Source
const (
	MerkleTreeNode = 1
	MerkleTreeLeaf = 2
)
View Source
const (
	AuthenticationType    LinkType = "auth"
	CryptocurrencyType             = "cryptocurrency"
	RevokeType                     = "revoke"
	TrackType                      = "track"
	UntrackType                    = "untrack"
	UpdatePassphraseType           = "update_passphrase_hash"
	WebServiceBindingType          = "web_service_binding"

	EldestType    DelegationType = "eldest"
	PGPUpdateType                = "pgp_update"
	SibkeyType                   = "sibkey"
	SubkeyType                   = "subkey"
)
View Source
const (
	SigTypeNone           = 0
	SigTypeSelfSig        = 1
	SigTypeRemoteProof    = 2
	SigTypeTrack          = 3
	SigTypeUntrack        = 4
	SigTypeRevoke         = 5
	SigTypeCryptocurrency = 6
	SigTypeAnnouncement   = 7
)
View Source
const (
	KeyTypeNone                  KeyType = 0
	KeyTypeOpenPGPPublic                 = 1
	KeyTypeP3skbPrivate                  = 2
	KeyTypeKbNaclEddsa                   = 3
	KeyTypeKbNaclDH                      = 4
	KeyTypeKbNaclEddsaServerHalf         = 5
	KeyTypeKbNaclDHServerHalf            = 6
)
View Source
const (
	DeviceStatusNone    = 0
	DeviceStatusActive  = 1
	DeviceStatusDefunct = 2
)
View Source
const (
	DeviceTypeDesktop = "desktop"
	DeviceTypeMobile  = "mobile"
	DeviceTypePaper   = "backup"
)

these strings need to match the keys in keybase/lib_public/public_constants.iced -> public_constants.device.type

View Source
const (
	HTTPDefaultTimeout = 60 * time.Second
	HTTPPollMaximum    = 5 * time.Second
)
View Source
const (
	KeybasePacketV1 = 1
	TagP3skb        = 513
	TagSignature    = 514
	TagEncryption   = 515
)

Packet tags for OpenPGP and also Keybase packets

View Source
const (
	KIDPGPBase    AlgoType = 0x00
	KIDPGPRsa              = 0x1
	KIDPGPElgamal          = 0x10
	KIDPGPDsa              = 0x11
	KIDPGPEcdh             = 0x12
	KIDPGPEcdsa            = 0x13
	KIDNaclEddsa           = 0x20
	KIDNaclDH              = 0x21
)
View Source
const (
	HashPGPMd5       = 1
	HashPGPSha1      = 2
	HashPGPRipemd160 = 3
	HashPGPSha256    = 8
	HashPGPSha384    = 9
	HashPGPSha512    = 10
	HashPGPSha224    = 11
)

OpenPGP hash IDs, taken from http://tools.ietf.org/html/rfc4880#section-9.4

View Source
const (
	RevSimpleDelete = 0
	RevFull         = 1
	RevDated        = 2
)

key_revocation_types

View Source
const (
	KexScryptCost       = 32768
	KexScryptR          = 8
	KexScryptP          = 1
	KexScryptKeylen     = 32
	KexSessionIDEntropy = 65 // kex doc specifies 65 bits of entropy
)
View Source
const (
	Kex2PhraseEntropy = 88
	Kex2ScryptCost    = 1 << 17
	Kex2ScryptR       = 8
	Kex2ScryptP       = 1
	Kex2ScryptKeylen  = 32
)
View Source
const (
	PaperKeyScryptCost    = 32768
	PaperKeyScryptR       = 8
	PaperKeyScryptP       = 1
	PaperKeyScryptKeylen  = 128
	PaperKeySecretEntropy = 117
	PaperKeyIDBits        = 22
	PaperKeyVersionBits   = 4
	PaperKeyVersion       = 0
)
View Source
const (
	IdentifySourceKBFS = "kbfs"
	TestInvitationCode = "202020202020202020202020"
)
View Source
const (
	ServiceLogFileName = "keybase.service.log"
	KBFSLogFileName    = "keybase.kbfs.log"
	DesktopLogFileName = "Keybase.app.log"
	// StartLogFileName is where services can log to (on startup) before they handle their own logging
	StartLogFileName = "keybase.start.log"
)
View Source
const (
	DBUser                    = 0x00
	DBSig                     = 0x0f
	DBLink                    = 0xe0
	DBLocalTrack              = 0xe1
	DBPGPKey                  = 0xe3
	DBSigHints                = 0xe4
	DBProofCheck              = 0xe5
	DBUserSecretKeys          = 0xe6
	DBSigChainTailPublic      = 0xe7
	DBSigChainTailSemiprivate = 0xe8
	DBSigChainTailEncrypted   = 0xe9
	DBMerkleRoot              = 0xf0
	DBTrackers                = 0xf1
)
View Source
const (
	DBLookupUsername   = 0x00
	DBLookupMerkleRoot = 0x01
)
View Source
const (
	DeviceIDLen    = 16
	DeviceIDSuffix = 0x18
)
View Source
const (
	NodeHashLenLong  = sha512.Size // = 64
	NodeHashLenShort = sha256.Size // = 32
)
View Source
const (
	RedditPrefix = "https://www.reddit.com"
	RedditSub    = RedditPrefix + "/r/keybaseproofs"
)
View Source
const (
	TrackStatusNone     = 0
	TrackStatusTracking = 1
)
View Source
const CanonicalHost = "keybase.io"
View Source
const DefaultRunMode = DevelRunMode
View Source
const DownloadURL = "https://keybase.io/download"
View Source
const (
	IDSuffixKID = 0x0a
)
View Source
const IsBrewBuild = false
View Source
const LKSecVersion = 100
View Source
const (
	LinkIDLen = 32
)
View Source
const LoginSessionMemoryTimeout time.Duration = time.Minute * 5
View Source
const MinPassphraseLength = 12
View Source
const NaclDHKeySecretSize = 32

TODO: Ideally, box would expose how many random bytes it needs.

View Source
const NaclDHKeysize = 32
View Source
const NaclDHNonceSize = 24

Todo: Ideally, box would specify nonce size

View Source
const NaclSigningKeySecretSize = 32

TODO: Ideally, ed25519 would expose how many random bytes it needs.

View Source
const (
	PGPAssertionKey = "pgp"
)
View Source
const (
	PGPFingerprintLen = 20
)
View Source
const SHA256Code = 8
View Source
const (
	SecretPromptCancelDuration = 5 * time.Minute
)
View Source
const (
	ServerUpdateLag = time.Minute
)
View Source
const (
	SigKbEddsa = KIDNaclEddsa
)
View Source
const TrackingRateLimitSeconds = 50
View Source
const UserSummaryLimit = 500 // max number of user summaries in one request
View Source
const Version = "1.0.15"

Version is the current version (should be MAJOR.MINOR.PATCH)

Variables

View Source
var AllDeviceTypes = DeviceTypeSet{
	DeviceTypeDesktop: true,
	DeviceTypeMobile:  true,
	DeviceTypePaper:   true,
}
View Source
var BundledCAs = map[string]string{

	"api.keybase.io": `-----BEGIN CERTIFICATE-----
MIIGmzCCBIOgAwIBAgIJAPzhpcIBaOeNMA0GCSqGSIb3DQEBBQUAMIGPMQswCQYD
VQQGEwJVUzELMAkGA1UECBMCTlkxETAPBgNVBAcTCE5ldyBZb3JrMRQwEgYDVQQK
EwtLZXliYXNlIExMQzEXMBUGA1UECxMOQ2VydCBBdXRob3JpdHkxEzARBgNVBAMT
CmtleWJhc2UuaW8xHDAaBgkqhkiG9w0BCQEWDWNhQGtleWJhc2UuaW8wHhcNMTQw
MTAyMTY0MjMzWhcNMjMxMjMxMTY0MjMzWjCBjzELMAkGA1UEBhMCVVMxCzAJBgNV
BAgTAk5ZMREwDwYDVQQHEwhOZXcgWW9yazEUMBIGA1UEChMLS2V5YmFzZSBMTEMx
FzAVBgNVBAsTDkNlcnQgQXV0aG9yaXR5MRMwEQYDVQQDEwprZXliYXNlLmlvMRww
GgYJKoZIhvcNAQkBFg1jYUBrZXliYXNlLmlvMIICIjANBgkqhkiG9w0BAQEFAAOC
Ag8AMIICCgKCAgEA3sLA6ZG8uOvmlFvFLVIOURmcQrZyMFKbVu9/TeDiemls3w3/
JzVTduD+7KiUi9R7QcCW/V1ZpReTfunm7rfACiJ1fpIkjSQrgsvKDLghIzxIS5FM
I8utet5p6QtuJhaAwmmXn8xX05FvqWNbrcXRdpL4goFdigPsFK2xhTUiWatLMste
oShI7+zmrgkx75LeLMD0bL2uOf87JjOzbY8x2sUIZLGwPoATyG8WS38ey6KkJxRj
AhG3p+OTYEjYSrsAtQA6ImbeDpfSHKOB8HF3nVp//Eb4HEiEsWwBRbQXvAWh3DYL
GukFW0wiO0HVCoWY+bHL/Mqa0NdRGOlLsbL4Z4pLrhqKgSDU8umX9YuNRRaB0P5n
TkzyU6axHqzq990Gep/I62bjsBdYYp+DjSPK43mXRrfWJl2NTcl8xKAyfsOW+9hQ
9vwK0tpSicNxfYuUZs0BhfjSZ/Tc6Z1ERdgUYRiXTtohl+SRA2IgZMloHCllVMNj
EjXhguvHgLAOrcuyhVBupiUQGUHQvkMsr1Uz8VPNDFOJedwucRU2AaR881bknnSb
ds9+zNLsvUFV+BK7Qdnt/WkFpYL78rGwY47msi9Ooddx6fPyeg3qkJGM6cwn/boy
w9lQeleYDq8kyJdixIAxtAskNzRPJ4nDu2izTfByQoM8epwAWboc/gNFObMCAwEA
AaOB9zCB9DAdBgNVHQ4EFgQURqpATOw1gVVrzlqqFKbkfaKXvwowgcQGA1UdIwSB
vDCBuYAURqpATOw1gVVrzlqqFKbkfaKXvwqhgZWkgZIwgY8xCzAJBgNVBAYTAlVT
MQswCQYDVQQIEwJOWTERMA8GA1UEBxMITmV3IFlvcmsxFDASBgNVBAoTC0tleWJh
c2UgTExDMRcwFQYDVQQLEw5DZXJ0IEF1dGhvcml0eTETMBEGA1UEAxMKa2V5YmFz
ZS5pbzEcMBoGCSqGSIb3DQEJARYNY2FAa2V5YmFzZS5pb4IJAPzhpcIBaOeNMAwG
A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggIBAA3Z5FIhulYghMuHdcHYTYWc
7xT5WD4hXQ0WALZs4p5Y+b2Af54o6v1wUE1Au97FORq5CsFXX/kGl/JzzTimeucn
YJwGuXMpilrlHCBAL5/lSQjA7qbYIolQ3SB9ON+LYuF1jKB9k8SqNp7qzucxT3tO
b8ZMDEPNsseC7NE2uwNtcW3yrTh6WZnSqg/jwswiWjHYDdG7U8FjMYlRol3wPux2
PizGbSgiR+ztI2OthxtxNWMrT9XKxNQTpcxOXnLuhiSwqH8PoY17ecP8VPpaa0K6
zym0zSkbroqydazaxcXRk3eSlc02Ktk7HzRzuqQQXhRMkxVnHbFHgGsz03L533pm
mlIEgBMggZkHwNvs1LR7f3v2McdKulDH7Mv8yyfguuQ5Jxxt7RJhUuqSudbEhoaM
6jAJwBkMFxsV2YnyFEd3eZ/qBYPf7TYHhyzmHW6WkSypGqSnXd4gYpJ8o7LxSf4F
inLjxRD+H9Xn1UVXWLM0gaBB7zZcXd2zjMpRsWgezf5IR5vyakJsc7fxzgor3Qeq
Ri6LvdEkhhFVl5rHMQBwNOPngySrq8cs/ikTLTfQVTYXXA4Ba1YyiMOlfaR1LhKw
If1AkUV0tfCTNRZ01EotKSK77+o+k214n+BAu+7mO+9B5Kb7lMFQcuWCHXKYB2Md
cT7Yh09F0QpFUd0ymEfv
-----END CERTIFICATE-----`,
}
View Source
var CheckDeviceName = Checker{
	F: func(s string) bool {
		re := regexp.MustCompile(`^[a-zA-Z0-9][ _'a-zA-Z0-9+-]*$`)
		bad := regexp.MustCompile(`  |[ '+_-]$|['+_-][ ]?['+_-]`)
		return len(s) >= 3 && len(s) <= 64 && re.MatchString(s) && !bad.MatchString(s)
	},
	Hint: "between 3 and 64 characters long; use a-Z, 0-9, space, plus, underscore, dash and apostrophe",
}
View Source
var CheckEmail = Checker{
	F: func(s string) bool {
		re := regexp.MustCompile(`^\S+@\S+\.\S+$`)
		return len(s) > 3 && re.MatchString(s)
	},
	Hint: "must be a valid email address",
}
View Source
var CheckEmailOrUsername = Checker{
	F: func(s string) bool {
		return CheckEmail.F(s) || CheckUsername.F(s)
	},
	Hint: "valid usernames are 2-12 letters long",
}
View Source
var CheckInviteCode = Checker{
	F: func(s string) bool {
		return len(s) > 4
	},
	Hint: "Invite codes are 4 or more characters",
}
View Source
var CheckKex2SecretPhrase = Checker{
	F: func(s string) bool {
		if err := validPhrase(s, Kex2PhraseEntropy); err != nil {
			G.Log.Debug("invalid kex2 phrase: %s", err)
			return false
		}
		return true
	},
	Hint: "It looks like there was a typo in the secret phrase. Please try again.",
}
View Source
var CheckNotEmpty = Checker{
	F: func(s string) bool {
		return len(s) > 0
	},
	Hint: "cannot be empty",
}
View Source
var CheckPassphraseNew = Checker{
	F: func(s string) bool {
		r := []rune(s)
		if len(r) > 0 && unicode.IsSpace(r[0]) {
			return false
		}
		return len(s) >= MinPassphraseLength
	},
	Hint:          fmt.Sprintf("passphrase must be %d or more characters", MinPassphraseLength),
	PreserveSpace: true,
}
View Source
var CheckPassphraseSimple = Checker{
	F: func(s string) bool {
		return len(s) > 0
	},
	Hint: "passphrase cannot be empty",
}
View Source
var CheckUsername = Checker{
	F: func(s string) bool {
		re := regexp.MustCompile(`^([a-zA-Z0-9][a-zA-Z0-9_]?)+$`)
		return len(s) >= 2 && len(s) <= 16 && re.MatchString(s)
	},
	Hint: "between 2 and 16 characters long",
}
View Source
var CheckYesNo = Checker{
	F: func(s string) bool {
		return IsYes(s) || IsNo(s)
	},
	Hint: "'yes' or 'no'",
}
View Source
var CodeSigningProdKIDs = []string{
	"01209092ae4e790763dc7343851b977930f35b16cf43ab0ad900a2af3d3ad5cea1a10a",
	"0120d3458bbecdfc0d0ae39fec05722c6e3e897c169223835977a8aa208dfcd902d30a",
	"012065ae849d1949a8b0021b165b0edaf722e2a7a9036e07817e056e2d721bddcc0e0a",
	"01203a5a45c545ef4f661b8b7573711aaecee3fd5717053484a3a3e725cd68abaa5a0a",
	"012003d86864fb20e310590042ad3d5492c3f5d06728620175b03c717c211bfaccc20a",
}
View Source
var CodeSigningStagingKIDs = []string{}
View Source
var CodeSigningTestKIDs = []string{}
View Source
var DefaultDeviceTypes = DeviceTypeSet{
	DeviceTypeDesktop: true,
	DeviceTypeMobile:  true,
}
View Source
var ErrCannotPeek = errors.New("Cannot peek after read")

ErrCannotPeek is returned if you try to Peek, then Read, then Peek from a stream, which isn't allowed. You can only Peek, peek, peek, read, read, read, &c.

View Source
var ErrLoginSessionCleared = errors.New("LoginSession already cleared")
View Source
var ErrLoginSessionNotLoaded = errors.New("LoginSession not loaded")
View Source
var ErrNilUser = errors.New("User is nil")
View Source
var ErrTrackingExpired = errors.New("Local track expired")
View Source
var MerkleProdKIDs = []string{
	"010159baae6c7d43c66adf8fb7bb2b8b4cbe408c062cfc369e693ccb18f85631dbcd0a",
}
View Source
var MerkleStagingKIDs = []string{
	"0101bed85ce72cc315828367c28b41af585b6b7d95646a62ca829691d70f49184fa70a",
}
View Source
var MerkleTestKIDs = []string{
	"0101be58b6c82db64f6ccabb05088db443c69f87d5d48857d709ed6f73948dabe67d0a",
}
View Source
var PGPArmorHeaders = map[string]string{
	"Version": PGPVersion,
	"Comment": DownloadURL,
}
View Source
var PGPVersion = "Keybase Go " + Version + " (" + runtime.GOOS + ")"
View Source
var PrereleaseBuild string

PrereleaseBuild can be set at compile time for prerelease builds. CAUTION: Don't change the name of this variable without grepping for occurrences in shell scripts!

View Source
var ProofErrorDNSOverTor = &ProofErrorImpl{
	Status: keybase1.ProofStatus_TOR_SKIPPED,
	Desc:   "DNS proofs aren't reliable over Tor",
}
View Source
var ProofErrorHTTPOverTor = &ProofErrorImpl{
	Status: keybase1.ProofStatus_TOR_SKIPPED,
	Desc:   "HTTP proofs aren't reliable over Tor",
}
View Source
var PublicChain = &ChainType{
	DbType:          DBSigChainTailPublic,
	Private:         false,
	Encrypted:       false,
	GetMerkleTriple: func(u *MerkleUserLeaf) *MerkleTriple { return u.public },
}
View Source
var TorProxy = "localhost:9050"
View Source
var UserAgent = runtime.GOOS + ":" + "Keybase CLI (" + runtime.Version() + "):" + Version

Right now reddit is the only site that seems to have any requirements for our User-Agent string. (See https://github.com/reddit/reddit/wiki/API.)If something else comes up, we'll want to make this more configurable.

Functions

func APIBase

func APIBase(un string) string

func AddToProofSetNoChecks

func AddToProofSetNoChecks(r RemoteProofChainLink, ps *ProofSet)

func AttachedSignWrapper

func AttachedSignWrapper(out io.WriteCloser, key PGPKeyBundle, armored bool) (
	in io.WriteCloser, err error)

func BoxPublicKeyToKeybaseKID

func BoxPublicKeyToKeybaseKID(k saltpack.BoxPublicKey) (ret keybase1.KID)

func BtcAddrCheck

func BtcAddrCheck(s string, opts *BtcOpts) (version int, pkhash []byte, err error)

func CanEncrypt

func CanEncrypt(key GenericKey) bool

func CanonicalProofName

func CanonicalProofName(t TypedChainLink) string

func CheckInvitationCode

func CheckInvitationCode(code string) error

func CheckKarma

func CheckKarma(un string) (int, error)

func CheckPosted

func CheckPosted(proofID string) (found bool, status keybase1.ProofStatus, err error)

func CheckPostedViaSigID

func CheckPostedViaSigID(sigID keybase1.SigID) (found bool, status keybase1.ProofStatus, err error)

func CheckTracking

func CheckTracking(g *GlobalContext) error

func CheckUIDAgainstCasedUsername

func CheckUIDAgainstCasedUsername(uid keybase1.UID, username string) (err error)

CheckUIDAgainstCasedUsername takes the input string, does not convert toLower, and then hashes it to recover a UID. This is a workaround for some users whose UIDs were computed incorrectly.

func CheckUIDAgainstUsername

func CheckUIDAgainstUsername(uid keybase1.UID, username string) (err error)

func Cicmp

func Cicmp(s1, s2 string) bool

func ClearStoredSecret

func ClearStoredSecret(g *GlobalContext, username NormalizedUsername) error

func CollectAssertions

func CollectAssertions(e AssertionExpression) (remotes AssertionAnd, locals AssertionAnd)

func CombineErrors

func CombineErrors(errs ...error) error

CombineErrors returns a single error for multiple errors, or nil if none.

func ComputeSigIDFromSigBody

func ComputeSigIDFromSigBody(body []byte) keybase1.SigID

func Contains

func Contains(s string, list []string) bool

Contains returns true if string is contained in string slice

func DebugDumpKey

func DebugDumpKey(g *GlobalContext, name string, b []byte)

DebugDumpKey is used only in debugging. For now it's now in use but we might need it in the future.

func Decode58

func Decode58(inp string) (outp []byte, err error)

Decode58 base58 decodes the input or returns an error.

func DefaultPassphraseArg

func DefaultPassphraseArg(allowSecretStore bool) keybase1.GUIEntryArg

func DelegatorAggregator

func DelegatorAggregator(lctx LoginContext, ds []Delegator) (err error)

Run posts an array of delegations to the server. Keeping this simple as we don't need any state (yet)

func DeletePrimary

func DeletePrimary() (err error)

func DeviceStatusToString

func DeviceStatusToString(i *int) string

func Digest

func Digest(r io.Reader) (string, error)

Digest returns a SHA256 digest

func DigestForFileAtPath

func DigestForFileAtPath(path string) (string, error)

DigestForFileAtPath returns a SHA256 digest for file at specified path

func DiscardAndCloseBody

func DiscardAndCloseBody(resp *http.Response) error

DiscardAndCloseBody reads as much as possible from the body of the given response, and then closes it.

This is because, in order to free up the current connection for re-use, a response body must be read from before being closed; see http://stackoverflow.com/a/17953506 .

Instead of doing:

res, _ := ...
defer res.Body.Close()

do

res, _ := ...
defer DiscardAndCloseBody(res)

instead.

func DisplayTrackArg

func DisplayTrackArg(sessionID int, stmt string) *keybase1.DisplayTrackStatementArg

func DrainPipe

func DrainPipe(rc io.Reader, sink func(string)) error

func Encode58

func Encode58(inp []byte) string

Encode58 base58 encodes the input.

func ErrToOk

func ErrToOk(err error) string

func ExportErrorAsStatus

func ExportErrorAsStatus(e error) (ret *keybase1.Status)

func ExportPGPIdentity

func ExportPGPIdentity(identity *openpgp.Identity) keybase1.PGPIdentity

func ExportProofError

func ExportProofError(pe ProofError) (ret keybase1.ProofResult)

func ExportTrackDiff

func ExportTrackDiff(d TrackDiff) (res *keybase1.TrackDiff)

func ExportTrackIDComponentToRevokedProof

func ExportTrackIDComponentToRevokedProof(tidc TrackIDComponent) keybase1.RevokedProof

func ExportTrackSummary

func ExportTrackSummary(l *TrackLookup, username string) *keybase1.TrackSummary

func FastByteArrayEq

func FastByteArrayEq(a, b []byte) bool

func FileExists

func FileExists(path string) (bool, error)

exists returns whether the given file or directory exists or not

func FindBase64Block

func FindBase64Block(s string, pattern []byte, url bool) bool

func FindBase64Blocks

func FindBase64Blocks(s string) []string

func FindBase64Snippets

func FindBase64Snippets(s string) []string

func FindBestIdentifyComponent

func FindBestIdentifyComponent(e AssertionExpression) string

func FindFirstBase64Block

func FindFirstBase64Block(s string) string

func FormatTime

func FormatTime(tm time.Time) string

func GenericKeyEqual

func GenericKeyEqual(k1, k2 GenericKey) bool

func GetKID

func GetKID(w *jsonw.Wrapper) (kid keybase1.KID, err error)

func GetKeybasePassphrase

func GetKeybasePassphrase(ui SecretUI, username, retryMsg string, allowSecretStore bool) (keybase1.GetPassphraseRes, error)

func GetLinkIDVoid

func GetLinkIDVoid(w *jsonw.Wrapper, l *LinkID, e *error)

func GetNodeHashVoid

func GetNodeHashVoid(w *jsonw.Wrapper, nhp *NodeHash, errp *error)

func GetPGPFingerprintVoid

func GetPGPFingerprintVoid(w *jsonw.Wrapper, p *PGPFingerprint, e *error)

func GetPaperKeyForCryptoPassphrase

func GetPaperKeyForCryptoPassphrase(ui SecretUI, reason string, devices []*Device) (string, error)

func GetPaperKeyPassphrase

func GetPaperKeyPassphrase(ui SecretUI, username string) (string, error)

func GetPassphraseUntilCheck

func GetPassphraseUntilCheck(arg keybase1.GUIEntryArg, prompter PassphrasePrompter, checker *Checker) (keybase1.GetPassphraseRes, error)

func GetProxyCAs

func GetProxyCAs(out *x509.CertPool, r ConfigReader) (ret *x509.CertPool, err error)

func GetSecret

func GetSecret(ui SecretUI, title, prompt, retryMsg string, allowSecretStore bool) (keybase1.GetPassphraseRes, error)

func GetSigID

func GetSigID(w *jsonw.Wrapper, suffix bool) (keybase1.SigID, error)

func GetTerminalPrompt

func GetTerminalPrompt() string

func GetUID

func GetUID(w *jsonw.Wrapper) (keybase1.UID, error)

func GetUIDVoid

func GetUIDVoid(w *jsonw.Wrapper, u *keybase1.UID, e *error)

func GiveMeAnS

func GiveMeAnS(i int) string

func HexDecodeQuoted

func HexDecodeQuoted(data []byte) ([]byte, error)

func ImportStatusAsError

func ImportStatusAsError(s *keybase1.Status) error

func IsArmored

func IsArmored(buf []byte) bool

func IsDirEmpty

func IsDirEmpty(dir string) (bool, error)

IsDirEmpty returns whether directory has any files.

func IsEmpty

func IsEmpty(s string) bool

func IsIn

func IsIn(needle string, haystack []string, ci bool) bool

IsIn checks for needle in haystack, ci means case-insensitive.

func IsNo

func IsNo(s string) bool

func IsPGP

func IsPGP(key GenericKey) bool

func IsPGPAlgo

func IsPGPAlgo(algo AlgoType) bool

func IsSocialAssertion

func IsSocialAssertion(s string) bool

IsSocialAssertion returns true for strings that are valid social assertions. They do not need to be normalized, so user@twitter and twitter:user will work, as will USER@Twitter.

func IsSocketClosedError

func IsSocketClosedError(e error) bool

net.errClosing isn't exported, so do this.. UGLY!

func IsSystemAdminUser

func IsSystemAdminUser() (isAdminUser bool, match string, err error)

IsSystemAdminUser returns true if current user is root or admin (system user, not Keybase user). WARNING: You shouldn't rely on this for security purposes.

func IsValidHostname

func IsValidHostname(s string) bool

func IsYes

func IsYes(s string) bool

func JoinPredicate

func JoinPredicate(arr []string, delimeter string, f func(s string) bool) string

JoinPredicate joins strings with predicate

func KIDIsDeviceEncrypt

func KIDIsDeviceEncrypt(kid keybase1.KID) bool

func KIDIsDeviceVerify

func KIDIsDeviceVerify(kid keybase1.KID) bool

func KarmaURL

func KarmaURL(un string) string

func KbOpenSig

func KbOpenSig(armored string) ([]byte, error)

func KeyLookupByBoxPublicKey

func KeyLookupByBoxPublicKey(g *GlobalContext, k saltpack.BoxPublicKey) (username string, uid keybase1.UID, err error)

func KeyLookupKID

func KeyLookupKID(g *GlobalContext, k keybase1.KID) (username string, uid keybase1.UID, err error)

func KeyMatchesQuery

func KeyMatchesQuery(key GenericKey, q string, exact bool) bool

Any valid key matches the empty string.

func KeyProof

func KeyProof(arg Delegator) (ret *jsonw.Wrapper, err error)

arg.Me user is used to get the last known seqno in ProofMetadata. If arg.Me == nil, set arg.LastSeqno.

func KeybaseEmailAddress

func KeybaseEmailAddress(s string) string

func ListProofCheckers

func ListProofCheckers() (proofCheckers []string)

ListProofCheckers returns the supported networks for "keybase prove".

func LoadUserPlusKeys

func LoadUserPlusKeys(g *GlobalContext, uid keybase1.UID) (keybase1.UserPlusKeys, error)

func MakeParentDirs

func MakeParentDirs(filename string) error

func MakeURI

func MakeURI(prot string, host string) string

MakeURI makes a URI string out of the given protocol and host strings, adding necessary punctuation in between.

func MsgpackDecodeAll

func MsgpackDecodeAll(data []byte, handle *codec.MsgpackHandle, out interface{}) error

Decode data into out, but make sure that all bytes in data are used.

func NameCmp

func NameCmp(n1, n2 string) bool

NameCmp removes whitespace and underscores, compares tolower.

func NameTrim

func NameTrim(s string) string

func NewAPIEngines

Make a new InternalApiEngine and a new ExternalApiEngine, which share the same network config (i.e., TOR and Proxy parameters)

func NewDNSChecker

func NewDNSChecker(p RemoteProofChainLink) (*DNSChecker, ProofError)

func NewDeviceID

func NewDeviceID() (keybase1.DeviceID, error)

func NewLoopbackConnPair

func NewLoopbackConnPair() (*LoopbackConn, *LoopbackConn)

NewLoopbackConnPair makes a new loopback connection pair

func NewTransportFromSocket

func NewTransportFromSocket(g *GlobalContext, s net.Conn) rpc.Transporter
func NewTypedChainLink(cl *ChainLink) (ret TypedChainLink, w Warning)

func NewWebChecker

func NewWebChecker(p RemoteProofChainLink) (*WebChecker, ProofError)

func OpenSig

func OpenSig(armored string) (ret []byte, id keybase1.SigID, err error)

OpenSig takes an armored PGP or Keybase signature and opens the armor. It will return the body of the signature, the sigID of the body, or an error if it didn't work out.

func OpenTempFile

func OpenTempFile(prefix string, suffix string, mode os.FileMode) (string, *os.File, error)

OpenTempFile creates an opened termporary file. Use mode=0 for default permissions.

OpenTempFile("foo", ".zip", 0755) => "foo.RCG2KUSCGYOO3PCKNWQHBOXBKACOPIKL.zip" OpenTempFile(path.Join(os.TempDir(), "foo"), "", 0) => "/tmp/foo.RCG2KUSCGYOO3PCKNWQHBOXBKACOPIKL"

func PGPEncrypt

func PGPEncrypt(source io.Reader, sink io.WriteCloser, signer *PGPKeyBundle, recipients []*PGPKeyBundle) error

func PGPEncryptString

func PGPEncryptString(input string, signer *PGPKeyBundle, recipients []*PGPKeyBundle) ([]byte, error)

func PGPKeyRawToArmored

func PGPKeyRawToArmored(raw []byte, priv bool) (ret string, err error)

func PGPLookup

func PGPLookup(g *GlobalContext, id uint64) (username string, uid keybase1.UID, err error)

func PGPLookupFingerprint

func PGPLookupFingerprint(g *GlobalContext, fp *PGPFingerprint) (username string, uid keybase1.UID, err error)

func PGPLookupHex

func PGPLookupHex(g *GlobalContext, hexID string) (username string, uid keybase1.UID, err error)

func PacketArmoredEncode

func PacketArmoredEncode(p Packetable) (ret string, err error)

func ParseCA

func ParseCA(raw string) (*x509.CertPool, error)

func ParseDNS

func ParseDNS(s string) (ret string, err error)

func ParseGpgIndexStream

func ParseGpgIndexStream(stream io.Reader) (ki *GpgKeyIndex, w Warnings, err error)

func ParseWeb

func ParseWeb(s string) (hostname string, prot string, err error)

func PickFirstError

func PickFirstError(errors ...error) error

func PlatformSpecificUpgradeInstructionsString

func PlatformSpecificUpgradeInstructionsString() (string, error)

func Pluralize

func Pluralize(n int, singular string, plural string, nshow bool) string

Pluralize returns pluralized string with value. For example,

Pluralize(1, "zebra", "zebras", true) => "1 zebra"
Pluralize(2, "zebra", "zebras", true) => "2 zebras"
Pluralize(2, "zebra", "zebras", false) => "zebras"

func PostDeviceLKS

func PostDeviceLKS(sr SessionReader, deviceID keybase1.DeviceID, deviceType string, serverHalf []byte,
	ppGen PassphraseGeneration,
	clientHalfRecovery string, clientHalfRecoveryKID keybase1.KID) error

func PostInviteRequest

func PostInviteRequest(arg InviteRequestArg) (err error)

func ProofErrorIsSoft

func ProofErrorIsSoft(pe ProofError) bool

func ProofErrorToState

func ProofErrorToState(pe ProofError) keybase1.ProofState

func RandBytes

func RandBytes(length int) ([]byte, error)

func RandInt

func RandInt() (int, error)

func RandInt64

func RandInt64() (int64, error)

func RandIntn

func RandIntn(n int) int

func RandString

func RandString(prefix string, numbytes int) (string, error)

RandString returns random (base32) string with prefix.

func RegisterMakeProofCheckerFunc

func RegisterMakeProofCheckerFunc(s string, h MakeProofCheckerFunc)

RegisterMakeProofCheckerFunc registers a MakeProofCheckerFunc to work with the given type of proof.

func RegisterServiceType

func RegisterServiceType(st ServiceType)

func RegisterSocialNetwork

func RegisterSocialNetwork(s string)

func RemoveLocalTracks

func RemoveLocalTracks(tracker keybase1.UID, trackee keybase1.UID, g *GlobalContext) error

func RemoveNilErrors

func RemoveNilErrors(errs []error) []error

RemoveNilErrors returns error slice with ni errors removed.

func RunSyncer

func RunSyncer(s Syncer, uid keybase1.UID, loggedIn bool, sr SessionReader) (err error)

func SafeWriteToFile

func SafeWriteToFile(t SafeWriter, mode os.FileMode) error

SafeWriteToFile to safely write to a file. Use mode=0 for default permissions.

func SaltpackDecrypt

func SaltpackDecrypt(
	g *GlobalContext, source io.Reader, sink io.WriteCloser,
	deviceEncryptionKey NaclDHKeyPair,
	checkSender func(*saltpack.MessageKeyInfo) error) (*saltpack.MessageKeyInfo, error)

func SaltpackEncrypt

func SaltpackEncrypt(g *GlobalContext, arg *SaltpackEncryptArg) error

SaltpackEncrypt reads from the given source, encrypts it for the given receivers from the given sender, and writes it to sink. If Binary is false, the data written to sink will be armored.

func SaltpackSign

func SaltpackSign(g *GlobalContext, source io.ReadCloser, sink io.WriteCloser, key NaclSigningKeyPair, binary bool) error

func SaltpackSignDetached

func SaltpackSignDetached(g *GlobalContext, source io.ReadCloser, sink io.WriteCloser, key NaclSigningKeyPair, binary bool) error

func SaltpackVerify

func SaltpackVerify(g *GlobalContext, source io.Reader, sink io.WriteCloser, checkSender func(saltpack.SigningPublicKey) error) error

func SaltpackVerifyDetached

func SaltpackVerifyDetached(g *GlobalContext, message io.Reader, signature []byte, checkSender func(saltpack.SigningPublicKey) error) error

func SecWordList

func SecWordList(entropy int) ([]string, error)

SecWordList returns an array of words from secwords. It returns enough words to satisfy the desired entropy.

func SecureByteArrayEq

func SecureByteArrayEq(a, b []byte) bool

func ShortCA

func ShortCA(raw string) string

func SigAssertKbPayload

func SigAssertKbPayload(armored string, expected []byte) (sigID keybase1.SigID, err error)

func SigAssertPGPPayload

func SigAssertPGPPayload(armored string, expected []byte) (sigID keybase1.SigID, err error)

func SigAssertPayload

func SigAssertPayload(armored string, expected []byte) (sigID keybase1.SigID, err error)

func SigningPublicKeyToKeybaseKID

func SigningPublicKeyToKeybaseKID(k saltpack.SigningPublicKey) (ret keybase1.KID)

func SimpleSign

func SimpleSign(payload []byte, key PGPKeyBundle) (out string, id keybase1.SigID, err error)

SimpleSign signs the given data stream, outputs an armored string which is the attached signature of the input data

func SplitByRunes

func SplitByRunes(s string, separators []rune) []string

SplitByRunes splits string by runes

func SplitHost

func SplitHost(joined string) (host string, port int, err error)

func SplitPath

func SplitPath(s string) []string

SplitPath return string split by path separator: SplitPath("/a/b/c") => []string{"a", "b", "c"}

func StoreLocalTrack

func StoreLocalTrack(tracker keybase1.UID, trackee keybase1.UID, expiringLocal bool, statement *jsonw.Wrapper, g *GlobalContext) error

func Tablify

func Tablify(writer io.Writer, headings []string, rowfunc func() []string)

func TempFile

func TempFile(prefix string) (string, error)

TempFile returns a random path name in os.TempDir()

func TempFileName

func TempFileName(prefix string) (tmp string, err error)

TempFileName returns a temporary random filename

func TimeLog

func TimeLog(name string, start time.Time, out func(string, ...interface{}))

TimeLog calls out with the time since start. Use like this:

defer TimeLog("MyFunc", time.Now(), e.G().Log.Warning)

func TorParseProxy

func TorParseProxy(s string) (*url.URL, error)

func Trace

func Trace(log logger.Logger, msg string, f func() error) func()

func TrimCicmp

func TrimCicmp(s1, s2 string) bool

func UIDFromHex

func UIDFromHex(s string) (keybase1.UID, error)

func UIDWrapper

func UIDWrapper(uid keybase1.UID) *jsonw.Wrapper

func Uniquify

func Uniquify(inp []string) []string

func UnixToTimeMappingZero

func UnixToTimeMappingZero(unixTime int64) time.Time

The standard time.Unix() converter interprets 0 as the Unix epoch (1970). But in PGP, an expiry time of zero indicates that a key never expires, and it would be nice to be able to check for that case with Time.IsZero(). This conversion special-cases 0 to be time.Time's zero-value (1 AD), so that we get that nice property.

func Unquote

func Unquote(data []byte) string

func UsernameToUID

func UsernameToUID(s string) keybase1.UID

UsernameToUID works for users created after "Fri Feb 6 19:33:08 EST 2015", with some exceptions, since we didn't ToLower() for all UIDs

func UsernameToUIDPreserveCase

func UsernameToUIDPreserveCase(s string) keybase1.UID

UsernameToUID works for users created after "Fri Feb 6 19:33:08 EST 2015". Some of them had buggy Username -> UID conversions, in which case we need to hash the original case to recover their UID.

func ValidSocialNetwork

func ValidSocialNetwork(s string) bool

func VersionMessage

func VersionMessage(linefn func(string))

func VersionString

func VersionString() string

VersionString returns semantic version string

func WhitespaceNormalize

func WhitespaceNormalize(s string) string

func WrapError

func WrapError(e error) interface{}

func XORBytes

func XORBytes(dst, a, b []byte) int

Types

type API

type API interface {
	Get(APIArg) (*APIRes, error)
	GetResp(APIArg) (*http.Response, error)
	GetDecode(APIArg, APIResponseWrapper) error
	Post(APIArg) (*APIRes, error)
	PostJSON(APIArg) (*APIRes, error)
	PostResp(APIArg) (*http.Response, error)
	PostDecode(APIArg, APIResponseWrapper) error
	PostRaw(APIArg, string, io.Reader) (*APIRes, error)
}

type APIArg

type APIArg struct {
	Endpoint string

	Args           HTTPArgs
	JSONPayload    JSONPayload
	NeedSession    bool
	SessionR       SessionReader
	HTTPStatus     []int
	AppStatusCodes []int
	Contextified
	// contains filtered or unexported fields
}

type APIError

type APIError struct {
	Msg  string
	Code int
}

func NewAPIErrorFromHTTPResponse

func NewAPIErrorFromHTTPResponse(r *http.Response) *APIError

func (*APIError) Error

func (a *APIError) Error() string

type APINetError

type APINetError struct {
	// contains filtered or unexported fields
}

func (APINetError) Error

func (e APINetError) Error() string

func (APINetError) ToStatus

func (e APINetError) ToStatus() (s keybase1.Status)

type APIRes

type APIRes struct {
	Status     *jsonw.Wrapper
	Body       *jsonw.Wrapper
	HTTPStatus int
	AppStatus  *AppStatus
}

type APIResponseWrapper

type APIResponseWrapper interface {
	GetAppStatus() *AppStatus
}

type APIStatus

type APIStatus struct {
	Code int    `json:"code"`
	Name string `json:"name"`
}

type Account

type Account struct {
	Contextified
	// contains filtered or unexported fields
}

func NewAccount

func NewAccount(g *GlobalContext) *Account

func (*Account) CachedSecretKey

func (a *Account) CachedSecretKey(ska SecretKeyArg) (GenericKey, error)

func (*Account) ClearCachedSecretKeys

func (a *Account) ClearCachedSecretKeys()

func (*Account) ClearKeyring

func (a *Account) ClearKeyring()

func (*Account) ClearLoginSession

func (a *Account) ClearLoginSession()

ClearLoginSession clears out any cached login sessions with the account object

func (*Account) ClearStreamCache

func (a *Account) ClearStreamCache()

func (*Account) CreateLoginSessionWithSalt

func (a *Account) CreateLoginSessionWithSalt(emailOrUsername string, salt []byte) error

func (*Account) CreateStreamCache

func (a *Account) CreateStreamCache(tsec *triplesec.Cipher, pps *PassphraseStream)

func (*Account) CreateStreamCacheViaStretch

func (a *Account) CreateStreamCacheViaStretch(passphrase string) error

func (*Account) Dump

func (a *Account) Dump()

func (*Account) EnsureUsername

func (a *Account) EnsureUsername(username NormalizedUsername)

func (*Account) GetStreamGeneration

func (a *Account) GetStreamGeneration() (ret PassphraseGeneration)

GetStreamGeneration() gets the generation of the currently cached passphrase stream

func (*Account) GetUID

func (a *Account) GetUID() (ret keybase1.UID)

func (*Account) GetUnlockedPaperEncKey

func (a *Account) GetUnlockedPaperEncKey() GenericKey

func (*Account) GetUnlockedPaperSigKey

func (a *Account) GetUnlockedPaperSigKey() GenericKey

func (*Account) Keyring

func (a *Account) Keyring() (*SKBKeyringFile, error)

func (*Account) LKSec

func (a *Account) LKSec() *LKSec

func (*Account) LKSecUnlock

func (a *Account) LKSecUnlock(locked []byte) ([]byte, PassphraseGeneration, error)

func (*Account) LoadLoginSession

func (a *Account) LoadLoginSession(emailOrUsername string) error

func (*Account) LocalSession

func (a *Account) LocalSession() *Session

func (*Account) LockedLocalSecretKey

func (a *Account) LockedLocalSecretKey(ska SecretKeyArg) (*SKB, error)

LockedLocalSecretKey looks in the local keyring to find a key for the given user. Returns non-nil if one was found, and nil otherwise.

func (*Account) LoggedIn

func (a *Account) LoggedIn() bool

LoggedIn returns true if the user is logged in. It does not try to load the session.

func (*Account) LoggedInAndProvisioined

func (a *Account) LoggedInAndProvisioined() bool

func (*Account) LoggedInLoad

func (a *Account) LoggedInLoad() (bool, error)

LoggedInLoad will load and check the session with the api server if necessary.

func (*Account) LoggedInProvisionedLoad

func (a *Account) LoggedInProvisionedLoad() (bool, error)

func (*Account) LoginSession

func (a *Account) LoginSession() *LoginSession

func (*Account) Logout

func (a *Account) Logout() error

func (*Account) PassphraseStream

func (a *Account) PassphraseStream() *PassphraseStream

PassphraseStream returns a copy of the currently cached passphrase stream, or nil if none is there.

func (*Account) PassphraseStreamCache

func (a *Account) PassphraseStreamCache() *PassphraseStreamCache

func (*Account) PassphraseStreamRef

func (a *Account) PassphraseStreamRef() *PassphraseStream

PassphraseStreamRef returns a reference to the actual passphrase stream, or nil if none is there.

func (*Account) RunSecretSyncer

func (a *Account) RunSecretSyncer(uid keybase1.UID) error

func (*Account) SaveState

func (a *Account) SaveState(sessionID, csrf string, username NormalizedUsername, uid keybase1.UID, deviceID keybase1.DeviceID) error

SaveState saves the logins state to memory, and to the user config file.

func (*Account) SecretPromptCanceled

func (a *Account) SecretPromptCanceled()

func (*Account) SecretSyncer

func (a *Account) SecretSyncer() *SecretSyncer

func (*Account) SetCachedSecretKey

func (a *Account) SetCachedSecretKey(ska SecretKeyArg, key GenericKey) error

func (*Account) SetLKSec

func (a *Account) SetLKSec(lks *LKSec)

func (*Account) SetStreamGeneration

func (a *Account) SetStreamGeneration(gen PassphraseGeneration, nilPPStreamOK bool)

SetStreamGeneration sets the passphrase generation on the cached stream if it exists, and otherwise will wind up warning of a problem.

func (*Account) SetTestPostCleanHook

func (a *Account) SetTestPostCleanHook(f func())

func (*Account) SetUnlockedPaperKey

func (a *Account) SetUnlockedPaperKey(sig GenericKey, enc GenericKey) error

func (*Account) Shutdown

func (a *Account) Shutdown() error

func (*Account) SkipSecretPrompt

func (a *Account) SkipSecretPrompt() bool

func (*Account) UnloadLocalSession

func (a *Account) UnloadLocalSession()

func (*Account) UserInfo

func (a *Account) UserInfo() (uid keybase1.UID, username NormalizedUsername,
	token string, deviceSubkey, deviceSibkey GenericKey, err error)

type AlgoType

type AlgoType int

type AlreadyRegisteredError

type AlreadyRegisteredError struct {
	UID keybase1.UID
}

func (AlreadyRegisteredError) Error

func (u AlreadyRegisteredError) Error() string

type AppConfig

type AppConfig struct {
	NullConfiguration
	HomeDir                     string
	RunMode                     RunMode
	Debug                       bool
	LocalRPCDebug               string
	ServerURI                   string
	SecurityAccessGroupOverride bool
}

func (AppConfig) GetDebug

func (c AppConfig) GetDebug() (bool, bool)

func (AppConfig) GetHome

func (c AppConfig) GetHome() string

func (AppConfig) GetLocalRPCDebug

func (c AppConfig) GetLocalRPCDebug() string

func (AppConfig) GetRunMode

func (c AppConfig) GetRunMode() (RunMode, error)

func (AppConfig) GetSecurityAccessGroupOverride

func (c AppConfig) GetSecurityAccessGroupOverride() (bool, bool)

func (AppConfig) GetServerURI

func (c AppConfig) GetServerURI() string

type AppStartMode

type AppStartMode string
const (
	AppStartModeDisabled AppStartMode = ""
	AppStartModeService  AppStartMode = "service" // Open app after service start
)

type AppStatus

type AppStatus struct {
	Code   int               `json:"code"`
	Name   string            `json:"name"`
	Desc   string            `json:"desc"`
	Fields map[string]string `json:"fields"`
}

type AppStatusError

type AppStatusError struct {
	Code   int
	Name   string
	Desc   string
	Fields map[string]string
}

func NewAppStatusError

func NewAppStatusError(ast *AppStatus) AppStatusError

func (AppStatusError) Error

func (a AppStatusError) Error() string

func (AppStatusError) IsBadField

func (a AppStatusError) IsBadField(s string) bool

func (AppStatusError) ToStatus

func (a AppStatusError) ToStatus() keybase1.Status

type ApplyFn

type ApplyFn func(i ConnectionID, xp rpc.Transporter) bool

ApplyFn can be applied to every connection. It is called with the RPC transporter, and also the connectionID. It should return a bool true to keep going and false to stop.

type AssertionAnd

type AssertionAnd struct {
	// contains filtered or unexported fields
}

func NewAssertionAnd

func NewAssertionAnd(left, right AssertionExpression) AssertionAnd

func (AssertionAnd) CollectUrls

func (a AssertionAnd) CollectUrls(v []AssertionURL) []AssertionURL

func (AssertionAnd) HasFactor

func (a AssertionAnd) HasFactor(pf Proof) bool

func (AssertionAnd) HasOr

func (a AssertionAnd) HasOr() bool

func (AssertionAnd) Len

func (a AssertionAnd) Len() int

func (AssertionAnd) MatchSet

func (a AssertionAnd) MatchSet(ps ProofSet) bool

func (AssertionAnd) String

func (a AssertionAnd) String() string

type AssertionDNS

type AssertionDNS struct{ AssertionURLBase }

func (AssertionDNS) Check

func (a AssertionDNS) Check() (err error)

func (AssertionDNS) CollectUrls

func (a AssertionDNS) CollectUrls(v []AssertionURL) []AssertionURL

func (AssertionDNS) MatchSet

func (a AssertionDNS) MatchSet(ps ProofSet) bool

func (AssertionDNS) ToLookup

func (a AssertionDNS) ToLookup() (key, value string, err error)

type AssertionExpression

type AssertionExpression interface {
	String() string
	MatchSet(ps ProofSet) bool
	HasOr() bool
	CollectUrls([]AssertionURL) []AssertionURL
}

func AssertionParse

func AssertionParse(s string) (AssertionExpression, error)

func AssertionParseAndOnly

func AssertionParseAndOnly(s string) (AssertionExpression, error)

type AssertionFingerprint

type AssertionFingerprint struct{ AssertionURLBase }

func (AssertionFingerprint) CollectUrls

func (a AssertionFingerprint) CollectUrls(v []AssertionURL) []AssertionURL

func (AssertionFingerprint) IsFingerprint

func (a AssertionFingerprint) IsFingerprint() bool

func (AssertionFingerprint) MatchProof

func (a AssertionFingerprint) MatchProof(proof Proof) bool

Fingerprint matching is on the suffixes. If the assertion matches any suffix of the proof, then we're OK

func (AssertionFingerprint) MatchSet

func (a AssertionFingerprint) MatchSet(ps ProofSet) bool

func (AssertionFingerprint) ToLookup

func (a AssertionFingerprint) ToLookup() (key, value string, err error)

type AssertionHTTP

type AssertionHTTP struct{ AssertionURLBase }

func (AssertionHTTP) Check

func (a AssertionHTTP) Check() (err error)

func (AssertionHTTP) CollectUrls

func (a AssertionHTTP) CollectUrls(v []AssertionURL) []AssertionURL

func (AssertionHTTP) IsRemote

func (a AssertionHTTP) IsRemote() bool

func (AssertionHTTP) Keys

func (a AssertionHTTP) Keys() []string

func (AssertionHTTP) MatchSet

func (a AssertionHTTP) MatchSet(ps ProofSet) bool

func (AssertionHTTP) ToLookup

func (a AssertionHTTP) ToLookup() (key, value string, err error)

type AssertionHTTPS

type AssertionHTTPS struct{ AssertionURLBase }

func (AssertionHTTPS) Check

func (a AssertionHTTPS) Check() (err error)

func (AssertionHTTPS) CollectUrls

func (a AssertionHTTPS) CollectUrls(v []AssertionURL) []AssertionURL

func (AssertionHTTPS) IsRemote

func (a AssertionHTTPS) IsRemote() bool

func (AssertionHTTPS) MatchSet

func (a AssertionHTTPS) MatchSet(ps ProofSet) bool

func (AssertionHTTPS) ToLookup

func (a AssertionHTTPS) ToLookup() (key, value string, err error)

type AssertionKeybase

type AssertionKeybase struct{ AssertionURLBase }

func (AssertionKeybase) CollectUrls

func (a AssertionKeybase) CollectUrls(v []AssertionURL) []AssertionURL

func (AssertionKeybase) IsKeybase

func (a AssertionKeybase) IsKeybase() bool

func (AssertionKeybase) MatchSet

func (a AssertionKeybase) MatchSet(ps ProofSet) bool

func (AssertionKeybase) ToLookup

func (a AssertionKeybase) ToLookup() (key, value string, err error)

type AssertionOr

type AssertionOr struct {
	// contains filtered or unexported fields
}

func NewAssertionOr

func NewAssertionOr(left, right AssertionExpression) AssertionOr

func (AssertionOr) CollectUrls

func (a AssertionOr) CollectUrls(v []AssertionURL) []AssertionURL

func (AssertionOr) HasOr

func (a AssertionOr) HasOr() bool

func (AssertionOr) MatchSet

func (a AssertionOr) MatchSet(ps ProofSet) bool

func (AssertionOr) String

func (a AssertionOr) String() string

type AssertionParseError

type AssertionParseError struct {
	// contains filtered or unexported fields
}

func NewAssertionParseError

func NewAssertionParseError(s string, a ...interface{}) AssertionParseError

func NewNeedInputError

func NewNeedInputError(s string, a ...interface{}) AssertionParseError

func (AssertionParseError) Error

func (e AssertionParseError) Error() string

type AssertionSocial

type AssertionSocial struct{ AssertionURLBase }

func (AssertionSocial) Check

func (a AssertionSocial) Check() (err error)

func (AssertionSocial) CollectUrls

func (a AssertionSocial) CollectUrls(v []AssertionURL) []AssertionURL

func (AssertionSocial) IsRemote

func (a AssertionSocial) IsRemote() bool

func (AssertionSocial) IsSocial

func (a AssertionSocial) IsSocial() bool

func (AssertionSocial) MatchSet

func (a AssertionSocial) MatchSet(ps ProofSet) bool

func (AssertionSocial) ToLookup

func (a AssertionSocial) ToLookup() (key, value string, err error)

type AssertionUID

type AssertionUID struct {
	AssertionURLBase
	// contains filtered or unexported fields
}

func (AssertionUID) Check

func (a AssertionUID) Check() (err error)

func (AssertionUID) CollectUrls

func (a AssertionUID) CollectUrls(v []AssertionURL) []AssertionURL

func (AssertionUID) IsUID

func (a AssertionUID) IsUID() bool

func (AssertionUID) MatchSet

func (a AssertionUID) MatchSet(ps ProofSet) bool

func (AssertionUID) ToLookup

func (a AssertionUID) ToLookup() (key, value string, err error)

func (AssertionUID) ToUID

func (a AssertionUID) ToUID() keybase1.UID

type AssertionURL

type AssertionURL interface {
	AssertionExpression
	Keys() []string
	Check() error
	IsKeybase() bool
	IsUID() bool
	ToUID() keybase1.UID
	IsSocial() bool
	IsRemote() bool
	IsFingerprint() bool
	MatchProof(p Proof) bool
	ToKeyValuePair() (string, string)
	CacheKey() string
	GetValue() string
	ToLookup() (string, string, error)
}

func FindBestIdentifyComponentURL

func FindBestIdentifyComponentURL(e AssertionExpression) AssertionURL

func ParseAssertionURL

func ParseAssertionURL(s string, strict bool) (ret AssertionURL, err error)

func ParseAssertionURLKeyValue

func ParseAssertionURLKeyValue(key, val string,
	strict bool) (ret AssertionURL, err error)

type AssertionURLBase

type AssertionURLBase struct {
	Key, Value string
}

func (AssertionURLBase) CacheKey

func (b AssertionURLBase) CacheKey() string

func (AssertionURLBase) Check

func (b AssertionURLBase) Check() error

func (AssertionURLBase) CheckHost

func (b AssertionURLBase) CheckHost() (err error)

func (AssertionURLBase) GetValue

func (b AssertionURLBase) GetValue() string

func (AssertionURLBase) HasOr

func (b AssertionURLBase) HasOr() bool

func (AssertionURLBase) IsFingerprint

func (b AssertionURLBase) IsFingerprint() bool

func (AssertionURLBase) IsKeybase

func (b AssertionURLBase) IsKeybase() bool

func (AssertionURLBase) IsRemote

func (b AssertionURLBase) IsRemote() bool

func (AssertionURLBase) IsSocial

func (b AssertionURLBase) IsSocial() bool

func (AssertionURLBase) IsUID

func (b AssertionURLBase) IsUID() bool

func (AssertionURLBase) Keys

func (b AssertionURLBase) Keys() []string

func (AssertionURLBase) MatchProof

func (b AssertionURLBase) MatchProof(proof Proof) bool

func (AssertionURLBase) String

func (b AssertionURLBase) String() string

func (AssertionURLBase) ToKeyValuePair

func (b AssertionURLBase) ToKeyValuePair() (string, string)

func (AssertionURLBase) ToUID

func (b AssertionURLBase) ToUID() (ret keybase1.UID)

type AssertionWeb

type AssertionWeb struct{ AssertionURLBase }

func (AssertionWeb) Check

func (a AssertionWeb) Check() (err error)

func (AssertionWeb) CollectUrls

func (a AssertionWeb) CollectUrls(v []AssertionURL) []AssertionURL

func (AssertionWeb) IsRemote

func (a AssertionWeb) IsRemote() bool

func (AssertionWeb) Keys

func (a AssertionWeb) Keys() []string

func (AssertionWeb) MatchSet

func (a AssertionWeb) MatchSet(ps ProofSet) bool

func (AssertionWeb) ToLookup

func (a AssertionWeb) ToLookup() (key, value string, err error)

type B

type B struct {
	Val bool
}

func (B) String

func (b B) String() string

type BadFingerprintError

type BadFingerprintError struct {
	// contains filtered or unexported fields
}

func (BadFingerprintError) Error

func (b BadFingerprintError) Error() string

type BadInvitationCodeError

type BadInvitationCodeError struct{}

func (BadInvitationCodeError) Error

func (e BadInvitationCodeError) Error() string

func (BadInvitationCodeError) ToStatus

func (e BadInvitationCodeError) ToStatus(s keybase1.Status)

type BadKeyError

type BadKeyError struct {
	Msg string
}

func (BadKeyError) Error

func (p BadKeyError) Error() string

type BadNameError

type BadNameError string

func (BadNameError) Error

func (e BadNameError) Error() string

type BadRevocationError

type BadRevocationError struct {
	// contains filtered or unexported fields
}

func (BadRevocationError) Error

func (e BadRevocationError) Error() string

type BadServiceError

type BadServiceError struct {
	Service string
}

func (BadServiceError) Error

func (e BadServiceError) Error() string

type BadSigError

type BadSigError struct {
	E string
}

func (BadSigError) Error

func (e BadSigError) Error() string

type BadUsernameError

type BadUsernameError struct {
	N string
}

func (BadUsernameError) Error

func (e BadUsernameError) Error() string

type Base

type Base struct {
	// contains filtered or unexported fields
}

func (Base) Join

func (b Base) Join(elem ...string) string

func (Base) Unsplit

func (b Base) Unsplit(v []string) string

type Base64Finder

type Base64Finder struct {
	// contains filtered or unexported fields
}

func NewBase64Finder

func NewBase64Finder(i string) *Base64Finder

func (*Base64Finder) Run

func (s *Base64Finder) Run() []string

type BaseAPIEngine

type BaseAPIEngine struct {
	Contextified
	// contains filtered or unexported fields
}

Shared code across Internal and External APIs

func (*BaseAPIEngine) PrepareGet

func (api *BaseAPIEngine) PrepareGet(url url.URL, arg APIArg) (*http.Request, error)

func (*BaseAPIEngine) PreparePost

func (api *BaseAPIEngine) PreparePost(url url.URL, arg APIArg, sendJSON bool) (*http.Request, error)

type BaseServiceType

type BaseServiceType struct{}

func (BaseServiceType) BaseAllStringKeys

func (t BaseServiceType) BaseAllStringKeys(st ServiceType) []string

func (BaseServiceType) BaseCheckProofForURL

func (t BaseServiceType) BaseCheckProofForURL(text string, id keybase1.SigID) (err error)

func (BaseServiceType) BaseCheckProofTextFull

func (t BaseServiceType) BaseCheckProofTextFull(text string, id keybase1.SigID, sig string) (err error)

func (BaseServiceType) BaseCheckProofTextShort

func (t BaseServiceType) BaseCheckProofTextShort(text string, id keybase1.SigID, med bool) error

func (BaseServiceType) BaseGetProofType

func (t BaseServiceType) BaseGetProofType(st ServiceType) string

func (BaseServiceType) BaseRecheckProofPosting

func (t BaseServiceType) BaseRecheckProofPosting(tryNumber int, status keybase1.ProofStatus) (warning *Markup, err error)

func (BaseServiceType) BaseToChecker

func (t BaseServiceType) BaseToChecker(st ServiceType, hint string) Checker

func (BaseServiceType) BaseToServiceJSON

func (t BaseServiceType) BaseToServiceJSON(st ServiceType, un string) *jsonw.Wrapper

func (BaseServiceType) CaseSensitiveUsername

func (t BaseServiceType) CaseSensitiveUsername() bool

Note: this is a bit of duplication of NormalizeUsername(), but there are some ServiceType implementations (coinbase) that do more than username normalization in their NormalizeUsername() function.

func (BaseServiceType) FormatProofText

func (t BaseServiceType) FormatProofText(ppr *PostProofRes) (string, error)

func (BaseServiceType) GetAPIArgKey

func (t BaseServiceType) GetAPIArgKey() string

func (BaseServiceType) LastWriterWins

func (t BaseServiceType) LastWriterWins() bool

func (BaseServiceType) NormalizeUsername

func (t BaseServiceType) NormalizeUsername(s string) (string, error)

func (BaseServiceType) PreProofCheck

func (t BaseServiceType) PreProofCheck(string) (*Markup, error)

func (BaseServiceType) PreProofWarning

func (t BaseServiceType) PreProofWarning(remotename string) *Markup

type BtcOpts

type BtcOpts struct {
	// contains filtered or unexported fields
}

type BucketDict

type BucketDict struct {
	// contains filtered or unexported fields
}

func NewBuckDict

func NewBuckDict() *BucketDict

func (*BucketDict) Add

func (bd *BucketDict) Add(k string, v *GpgPrimaryKey)

func (BucketDict) Get

func (bd BucketDict) Get(k string) []*GpgPrimaryKey

func (BucketDict) Get0Or1

func (bd BucketDict) Get0Or1(k string) (ret *GpgPrimaryKey, err error)

type BufferCloser

type BufferCloser struct {
	*bytes.Buffer
}

BufferCloser is a Buffer that satisfies the io.Closer interface.

func NewBufferCloser

func NewBufferCloser() *BufferCloser

func (*BufferCloser) Close

func (b *BufferCloser) Close() error

type CanceledError

type CanceledError struct {
	M string
}

func NewCanceledError

func NewCanceledError(m string) CanceledError

func (CanceledError) Error

func (c CanceledError) Error() string

func (CanceledError) ToStatus

func (c CanceledError) ToStatus() (s keybase1.Status)
type ChainLink struct {
	Contextified
	// contains filtered or unexported fields
}

func ImportLinkFromServer

func ImportLinkFromServer(g *GlobalContext, parent *SigChain, jw *jsonw.Wrapper, selfUID keybase1.UID) (ret *ChainLink, err error)

func ImportLinkFromStorage

func ImportLinkFromStorage(id LinkID, selfUID keybase1.UID, g *GlobalContext) (*ChainLink, error)
func NewChainLink(g *GlobalContext, parent *SigChain, id LinkID, jw *jsonw.Wrapper) *ChainLink

func (*ChainLink) CheckNameAndID

func (c *ChainLink) CheckNameAndID(s NormalizedUsername, i keybase1.UID) error

func (*ChainLink) Copy

func (c *ChainLink) Copy() ChainLink

func (*ChainLink) GetCTime

func (c *ChainLink) GetCTime() time.Time

func (*ChainLink) GetETime

func (c *ChainLink) GetETime() time.Time

func (*ChainLink) GetKID

func (c *ChainLink) GetKID() keybase1.KID

func (*ChainLink) GetMerkleSeqno

func (c *ChainLink) GetMerkleSeqno() int

func (*ChainLink) GetPGPFingerprint

func (c *ChainLink) GetPGPFingerprint() *PGPFingerprint

func (*ChainLink) GetPayloadJSON

func (c *ChainLink) GetPayloadJSON() *jsonw.Wrapper

func (*ChainLink) GetPrev

func (c *ChainLink) GetPrev() LinkID

func (*ChainLink) GetRevocations

func (c *ChainLink) GetRevocations() []keybase1.SigID

func (*ChainLink) GetRevokeKids

func (c *ChainLink) GetRevokeKids() []keybase1.KID

func (*ChainLink) GetSeqno

func (c *ChainLink) GetSeqno() Seqno

func (*ChainLink) GetSigCheckCache

func (c *ChainLink) GetSigCheckCache() (cki *ComputedKeyInfos)

func (*ChainLink) GetSigID

func (c *ChainLink) GetSigID() keybase1.SigID

func (*ChainLink) GetUID

func (c *ChainLink) GetUID() keybase1.UID

func (*ChainLink) IsBad

func (c *ChainLink) IsBad() (isBad bool, reason string)

Returns whether or not this chain link is bad, and if so, what the reason is.

func (*ChainLink) IsInCurrentFamily

func (c *ChainLink) IsInCurrentFamily(u *User) bool

========================================================================= IsInCurrentFamily checks to see if the given chainlink was signed by a key in the current family.

func (*ChainLink) MatchFingerprint

func (c *ChainLink) MatchFingerprint(fp PGPFingerprint) bool

func (*ChainLink) Pack

func (c *ChainLink) Pack() error

func (*ChainLink) Parent

func (c *ChainLink) Parent() *SigChain

func (*ChainLink) PutSigCheckCache

func (c *ChainLink) PutSigCheckCache(cki *ComputedKeyInfos)

func (*ChainLink) SetParent

func (c *ChainLink) SetParent(parent *SigChain)

func (*ChainLink) Store

func (c *ChainLink) Store(g *GlobalContext) (didStore bool, err error)

func (*ChainLink) ToEldestKID

func (c *ChainLink) ToEldestKID() keybase1.KID

func (ChainLink) ToMerkleTriple

func (c ChainLink) ToMerkleTriple() *MerkleTriple

ToLinkSummary converts a ChainLink into a MerkleTriple object.

func (*ChainLink) Typed

func (c *ChainLink) Typed() TypedChainLink

func (*ChainLink) Unpack

func (c *ChainLink) Unpack(trusted bool, selfUID keybase1.UID) (err error)

func (*ChainLink) UnpackComputedKeyInfos

func (c *ChainLink) UnpackComputedKeyInfos(jw *jsonw.Wrapper) (err error)

func (*ChainLink) UnpackLocal

func (c *ChainLink) UnpackLocal() (err error)

func (*ChainLink) UnpackPayloadJSON

func (c *ChainLink) UnpackPayloadJSON(tmp *ChainLinkUnpacked) (err error)

func (*ChainLink) VerifyHash

func (c *ChainLink) VerifyHash() error
func (c *ChainLink) VerifyLink() error

func (*ChainLink) VerifyPayload

func (c *ChainLink) VerifyPayload() error

func (*ChainLink) VerifySigWithKeyFamily

func (c *ChainLink) VerifySigWithKeyFamily(ckf ComputedKeyFamily) (cached bool, err error)

type ChainLinkError

type ChainLinkError struct {
	// contains filtered or unexported fields
}

func (ChainLinkError) Error

func (c ChainLinkError) Error() string

type ChainLinkFingerprintMismatchError

type ChainLinkFingerprintMismatchError struct {
	Msg string
}

func (ChainLinkFingerprintMismatchError) Error

type ChainLinkKIDMismatchError

type ChainLinkKIDMismatchError struct {
	Msg string
}

func (ChainLinkKIDMismatchError) Error

type ChainLinkPrevHashMismatchError

type ChainLinkPrevHashMismatchError struct {
	Msg string
}

func (ChainLinkPrevHashMismatchError) Error

type ChainLinkUnpacked

type ChainLinkUnpacked struct {
	// contains filtered or unexported fields
}

type ChainLinkWrongSeqnoError

type ChainLinkWrongSeqnoError struct {
	Msg string
}

func (ChainLinkWrongSeqnoError) Error

func (e ChainLinkWrongSeqnoError) Error() string

type ChainType

type ChainType struct {
	DbType          ObjType
	Private         bool
	Encrypted       bool
	GetMerkleTriple func(u *MerkleUserLeaf) *MerkleTriple
}

type CheckCompletedListener

type CheckCompletedListener interface {
	CCLCheckCompleted(lcr *LinkCheckResult)
}

type CheckMember

type CheckMember struct {
	Set []string
}

func (CheckMember) Checker

func (c CheckMember) Checker() Checker

type CheckResult

type CheckResult struct {
	Contextified
	Status ProofError // Or nil if it was a success
	Time   time.Time  // When the last check was
}

func NewCheckResult

func NewCheckResult(g *GlobalContext, jw *jsonw.Wrapper) (res *CheckResult, err error)

func NewNowCheckResult

func NewNowCheckResult(g *GlobalContext, pe ProofError) *CheckResult

func (CheckResult) Export

func (cr CheckResult) Export() *keybase1.CheckResult

func (CheckResult) Freshness

func (cr CheckResult) Freshness() keybase1.CheckResultFreshness

func (CheckResult) Pack

func (cr CheckResult) Pack() *jsonw.Wrapper

type Checker

type Checker struct {
	F             func(string) bool
	Hint          string
	PreserveSpace bool
}

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient(e *Env, config *ClientConfig, needCookie bool) *Client

type ClientConfig

type ClientConfig struct {
	Host       string
	Port       int
	UseTLS     bool // XXX unused?
	URL        *url.URL
	RootCAs    *x509.CertPool
	Prefix     string
	UseCookies bool
	Timeout    time.Duration
}

type Clock

type Clock interface {
	Now() time.Time
}

type CoinbaseChecker

type CoinbaseChecker struct {
	// contains filtered or unexported fields
}

func (*CoinbaseChecker) CheckHint

func (rc *CoinbaseChecker) CheckHint(h SigHint) ProofError

func (*CoinbaseChecker) CheckStatus

func (rc *CoinbaseChecker) CheckStatus(h SigHint) ProofError

func (*CoinbaseChecker) GetTorError

func (rc *CoinbaseChecker) GetTorError() ProofError

func (*CoinbaseChecker) ProfileURL

func (rc *CoinbaseChecker) ProfileURL() string

type CoinbaseServiceType

type CoinbaseServiceType struct{ BaseServiceType }

func (CoinbaseServiceType) AllStringKeys

func (t CoinbaseServiceType) AllStringKeys() []string

func (CoinbaseServiceType) CheckProofText

func (t CoinbaseServiceType) CheckProofText(text string, id keybase1.SigID, sig string) (err error)

func (CoinbaseServiceType) CheckUsername

func (t CoinbaseServiceType) CheckUsername(s string) (err error)

func (CoinbaseServiceType) DisplayName

func (t CoinbaseServiceType) DisplayName(un string) string

func (CoinbaseServiceType) GetPrompt

func (t CoinbaseServiceType) GetPrompt() string

func (CoinbaseServiceType) GetProofType

func (t CoinbaseServiceType) GetProofType() string

func (CoinbaseServiceType) GetTypeName

func (t CoinbaseServiceType) GetTypeName() string

func (CoinbaseServiceType) NormalizeUsername

func (t CoinbaseServiceType) NormalizeUsername(s string) (ret string, err error)

func (CoinbaseServiceType) PostInstructions

func (t CoinbaseServiceType) PostInstructions(un string) *Markup

func (CoinbaseServiceType) RecheckProofPosting

func (t CoinbaseServiceType) RecheckProofPosting(tryNumber int, status keybase1.ProofStatus, _ string) (warning *Markup, err error)

func (CoinbaseServiceType) ToChecker

func (t CoinbaseServiceType) ToChecker() Checker

func (CoinbaseServiceType) ToServiceJSON

func (t CoinbaseServiceType) ToServiceJSON(un string) *jsonw.Wrapper

type Command

type Command interface {
	GetUsage() Usage
}

type CommandLine

type CommandLine interface {
	GetHome() string
	GetServerURI() string
	GetConfigFilename() string
	GetSessionFilename() string
	GetDbFilename() string
	GetDebug() (bool, bool)
	GetVDebugSetting() string
	GetProxy() string
	GetLogFile() string
	GetLogFormat() string
	GetGpgHome() string
	GetAPIDump() (bool, bool)
	GetUserCacheMaxAge() (time.Duration, bool)
	GetProofCacheSize() (int, bool)
	GetLinkCacheSize() (int, bool)
	GetMerkleKIDs() []string
	GetCodeSigningKIDs() []string
	GetPinentry() string
	GetGpg() string
	GetGpgOptions() []string
	GetPGPFingerprint() *PGPFingerprint
	GetSecretKeyringTemplate() string
	GetSocketFile() string
	GetPidFile() string
	GetStandalone() (bool, bool)
	GetAutoFork() (bool, bool)
	GetNoAutoFork() (bool, bool)
	GetLocalRPCDebug() string
	GetTimers() string
	GetRunMode() (RunMode, error)

	GetScraperTimeout() (time.Duration, bool)
	GetAPITimeout() (time.Duration, bool)

	GetTorMode() (TorMode, error)
	GetTorHiddenAddress() string
	GetTorProxy() string
	GetLocalTrackMaxAge() (time.Duration, bool)

	// Lower-level functions
	GetGString(string) string
	GetString(string) string
	GetBool(string, bool) (bool, bool)
}

type ComputedKeyFamily

type ComputedKeyFamily struct {
	Contextified
	// contains filtered or unexported fields
}

ComputedKeyFamily is a joining of two sets of data; the KeyFamily is what the server returned and is not to be trusted; the ComputedKeyInfos is what we compute as a result of playing the user's sigchain forward.

func (*ComputedKeyFamily) Delegate

func (ckf *ComputedKeyFamily) Delegate(tcl TypedChainLink) (err error)

Delegate performs a delegation to the key described in the given TypedChainLink. This maybe be a sub- or sibkey delegation.

func (ComputedKeyFamily) Export

func (ckf ComputedKeyFamily) Export() []keybase1.PublicKey

Export is used by IDRes. It includes PGP keys.

func (ComputedKeyFamily) ExportDeviceKeys

func (ckf ComputedKeyFamily) ExportDeviceKeys() (exportedKeys []keybase1.PublicKey, pgpKeyCount int)

ExportDeviceKeys is used by LoadUserPlusKeys. The key list only contains device keys. It also returns the number of PGP keys in the key family.

func (ComputedKeyFamily) ExportRevokedDeviceKeys

func (ckf ComputedKeyFamily) ExportRevokedDeviceKeys() []keybase1.RevokedKey

func (ComputedKeyFamily) FindActiveEncryptionSubkey

func (ckf ComputedKeyFamily) FindActiveEncryptionSubkey(kid keybase1.KID) (GenericKey, error)

FindActiveEncryptionSubkey takes a given KID and finds the corresponding active encryption subkey in the current key family. If for any reason it cannot find the key, it will return an error saying why. Otherwise, it will return the key. In this case either key is non-nil, or err is non-nil.

func (ComputedKeyFamily) FindActiveSibkey

func (ckf ComputedKeyFamily) FindActiveSibkey(kid keybase1.KID) (key GenericKey, cki ComputedKeyInfo, err error)

FindActiveSibkey takes a given KID and finds the corresponding active sibkey in the current key family. If it cannot find the key, or if the key is no longer active (either by revocation, or by expiring), it will return an error saying why. Otherwise, it will return the key. In this case either key is non-nil, or err is non-nil.

func (ComputedKeyFamily) FindActiveSibkeyAtTime

func (ckf ComputedKeyFamily) FindActiveSibkeyAtTime(kid keybase1.KID, t time.Time) (key GenericKey, cki ComputedKeyInfo, err error)

As FindActiveSibkey, but for a specific time. Note that going back in time only affects expiration, not revocation. Thus this function is mainly useful for validating the sigchain, when each delegation and revocation is getting replayed in order.

func (ComputedKeyFamily) FindKIDFromFingerprint

func (ckf ComputedKeyFamily) FindKIDFromFingerprint(fp PGPFingerprint) (kid keybase1.KID, err error)

func (ComputedKeyFamily) FindKeyWithKIDUnsafe

func (ckf ComputedKeyFamily) FindKeyWithKIDUnsafe(kid keybase1.KID) (GenericKey, error)

FindKeyWithKIDUnsafe returns a key given a KID. It doesn't check if the key is expired or revoked, so most callers should use the FindActive* methods.

func (ComputedKeyFamily) FindKeybaseName

func (ckf ComputedKeyFamily) FindKeybaseName(s string) bool

FindKeybaseName looks at all PGP keys in this key family that are active sibkeys to find a key with a signed identity of <name@keybase.io>. IF found return true, and otherwise false.

func (ComputedKeyFamily) GetActivePGPKeys

func (ckf ComputedKeyFamily) GetActivePGPKeys(sibkey bool) (ret []*PGPKeyBundle)

GetActivePGPKeys gets the active PGP keys from the ComputedKeyFamily. If sibkey is False it will return all active PGP keys. Otherwise, it will return only the Sibkeys. Note the keys need to be non-canceled, and non-expired.

func (*ComputedKeyFamily) GetAllActiveDevices

func (ckf *ComputedKeyFamily) GetAllActiveDevices() []*Device

func (ComputedKeyFamily) GetAllActiveKeysForDevice

func (ckf ComputedKeyFamily) GetAllActiveKeysForDevice(deviceID keybase1.DeviceID) ([]keybase1.KID, error)

func (ComputedKeyFamily) GetAllActiveKeysWithRoleAtTime

func (ckf ComputedKeyFamily) GetAllActiveKeysWithRoleAtTime(role KeyRole, t time.Time) (ret []GenericKey)

GetAllActiveSibkeys gets all active Sibkeys from given ComputedKeyFamily.

func (ComputedKeyFamily) GetAllActiveSibkeys

func (ckf ComputedKeyFamily) GetAllActiveSibkeys() []GenericKey

GetAllActiveSibkeys gets all active Sibkeys from given ComputedKeyFamily.

func (ComputedKeyFamily) GetAllActiveSibkeysAtTime

func (ckf ComputedKeyFamily) GetAllActiveSibkeysAtTime(t time.Time) []GenericKey

GetAllActiveSibkeys gets all active Sibkeys from given ComputedKeyFamily.

func (ComputedKeyFamily) GetAllActiveSubkeys

func (ckf ComputedKeyFamily) GetAllActiveSubkeys() []GenericKey

func (ComputedKeyFamily) GetAllActiveSubkeysAtTime

func (ckf ComputedKeyFamily) GetAllActiveSubkeysAtTime(t time.Time) (ret []GenericKey)

func (*ComputedKeyFamily) GetAllDevices

func (ckf *ComputedKeyFamily) GetAllDevices() []*Device

func (*ComputedKeyFamily) GetCurrentDevice

func (ckf *ComputedKeyFamily) GetCurrentDevice(g *GlobalContext) (*Device, error)

GetCurrentDevice returns the current device.

func (*ComputedKeyFamily) GetDeviceForKID

func (ckf *ComputedKeyFamily) GetDeviceForKID(kid keybase1.KID) (*Device, error)

func (*ComputedKeyFamily) GetDeviceForKey

func (ckf *ComputedKeyFamily) GetDeviceForKey(key GenericKey) (*Device, error)

GetDeviceForKey gets the device that this key is bound to, if any.

func (*ComputedKeyFamily) GetEncryptionSubkeyForDevice

func (ckf *ComputedKeyFamily) GetEncryptionSubkeyForDevice(did keybase1.DeviceID) (key GenericKey, err error)

GetEncryptionSubkeyForDevice gets the current encryption subkey for the given device. Note that many devices might share an encryption public key but might have different secret keys.

func (ComputedKeyFamily) GetKeyRole

func (ckf ComputedKeyFamily) GetKeyRole(kid keybase1.KID) (ret KeyRole)

GetKeyRole returns the KeyRole (sibkey/subkey/none), taking into account whether the key has been cancelled.

func (ComputedKeyFamily) GetKeyRoleAtTime

func (ckf ComputedKeyFamily) GetKeyRoleAtTime(kid keybase1.KID, t time.Time) (ret KeyRole)

GetKeyRoleAtTime returns the KeyRole (sibkey/subkey/none), taking into account whether the key has been cancelled at time t.

func (ComputedKeyFamily) GetRevokedKeys

func (ckf ComputedKeyFamily) GetRevokedKeys() []RevokedKey

func (*ComputedKeyFamily) GetSibkeyForDevice

func (ckf *ComputedKeyFamily) GetSibkeyForDevice(did keybase1.DeviceID) (key GenericKey, err error)

GetSibkeyForDevice gets the current per-device key for the given Device. Will return nil if one isn't found, and set err for a real error. The sibkey should be a signing key, not an encryption key of course.

func (*ComputedKeyFamily) HasActiveDevice

func (ckf *ComputedKeyFamily) HasActiveDevice() bool

func (*ComputedKeyFamily) HasActiveEncryptionSubkey

func (ckf *ComputedKeyFamily) HasActiveEncryptionSubkey() bool

func (ComputedKeyFamily) HasActiveKey

func (ckf ComputedKeyFamily) HasActiveKey() bool

HasActiveKey returns if the given ComputeKeyFamily has any active keys. The key has to be in the server-given KeyFamily and also in our ComputedKeyFamily. The former check is so that we can handle the case nuked sigchains.

func (ckf ComputedKeyFamily) InsertEldestLink(tcl TypedChainLink, username NormalizedUsername) (err error)

func (*ComputedKeyFamily) Revoke

func (ckf *ComputedKeyFamily) Revoke(tcl TypedChainLink) (err error)

Revoke examines a TypeChainLink and applies any revocations in the link to the current ComputedKeyInfos.

func (*ComputedKeyFamily) RevokeKid

func (ckf *ComputedKeyFamily) RevokeKid(kid keybase1.KID, tcl TypedChainLink) (err error)

func (*ComputedKeyFamily) RevokeSig

func (ckf *ComputedKeyFamily) RevokeSig(sig keybase1.SigID, tcl TypedChainLink) (err error)

func (*ComputedKeyFamily) SetActivePGPHash

func (ckf *ComputedKeyFamily) SetActivePGPHash(kid keybase1.KID, hash string)

SetPGPHash sets the authoritative version (by hash) of a PGP key

func (*ComputedKeyFamily) UpdateDevices

func (ckf *ComputedKeyFamily) UpdateDevices(tcl TypedChainLink) (err error)

UpdateDevices takes the Device object from the given ChainLink and updates keys to reflects any device changes encoded therein.

type ComputedKeyInfo

type ComputedKeyInfo struct {
	Contextified

	Status KeyStatus
	Eldest bool
	Sibkey bool

	// These have to be ints so they can be written to disk and read
	// back in.
	CTime int64 // In Seconds since the Epoch
	ETime int64 // In Seconds since the Epoch or 0 if none

	// For subkeys, the KID of our parent (if valid)
	Parent keybase1.KID

	// For sibkeys, the KID of last-added subkey (if valid)
	Subkey keybase1.KID

	// Map of SigID -> KID
	Delegations map[keybase1.SigID]keybase1.KID
	DelegatedAt *KeybaseTime
	RevokedAt   *KeybaseTime

	// For PGP keys, the active version of the key. If unspecified, use the
	// legacy behavior of combining every instance of this key that we got from
	// the server minus revocations.
	ActivePGPHash string
}

ComputedKeyInfo is a set of annotations that we apply to a ServerKeyRecord. Everything here has been checked by the client. Each ComputedKeyInfo refers to exactly one ServerKeyInfo.

func NewComputedKeyInfo

func NewComputedKeyInfo(eldest, sibkey bool, status KeyStatus, ctime, etime int64, activePGPHash string) ComputedKeyInfo

func (ComputedKeyInfo) GetCTime

func (cki ComputedKeyInfo) GetCTime() time.Time

func (ComputedKeyInfo) GetETime

func (cki ComputedKeyInfo) GetETime() time.Time

type ComputedKeyInfos

type ComputedKeyInfos struct {
	Contextified

	// Map of KID to a computed info
	Infos map[keybase1.KID]*ComputedKeyInfo

	// Map of a SigID (in binary) to the ComputedKeyInfo describing when the key was
	// delegated.
	Sigs map[keybase1.SigID]*ComputedKeyInfo

	// Map of DeviceID to the most current device object
	Devices map[keybase1.DeviceID]*Device

	// Map of KID -> DeviceID
	KIDToDeviceID map[keybase1.KID]keybase1.DeviceID
	// contains filtered or unexported fields
}

When we play a sigchain forward, it yields ComputedKeyInfos (CKIs). We're going to store CKIs separately from the keys, since the server can clobber the former. We should rewrite CKIs every time we (re)check a user's SigChain

func NewComputedKeyInfos

func NewComputedKeyInfos(g *GlobalContext) *ComputedKeyInfos

func (*ComputedKeyInfos) Delegate

func (cki *ComputedKeyInfos) Delegate(kid keybase1.KID, tm *KeybaseTime, sigid keybase1.SigID, signingKid, parentKID keybase1.KID, pgpHash string, isSibkey bool, ctime, etime time.Time) (err error)

Delegate marks the given ComputedKeyInfos object that the given kid is now delegated, as of time tm, in sigid, as signed by signingKid, etc.

func (*ComputedKeyInfos) Insert

func (cki *ComputedKeyInfos) Insert(k keybase1.KID, i *ComputedKeyInfo)

Insert inserts the given ComputedKeyInfo object 1 or 2 times, depending on if a KID or PGPFingerprint or both are available.

func (ComputedKeyInfos) InsertLocalEldestKey

func (cki ComputedKeyInfos) InsertLocalEldestKey(kid keybase1.KID)

func (ComputedKeyInfos) InsertServerEldestKey

func (cki ComputedKeyInfos) InsertServerEldestKey(eldestKey GenericKey, un NormalizedUsername) error

For use when there are no chain links at all, so all we can do is trust the eldest key that the server reported.

func (*ComputedKeyInfos) PaperDevices

func (cki *ComputedKeyInfos) PaperDevices() []*Device

PaperDevices returns a list of all the paperkey devices.

func (ComputedKeyInfos) ShallowCopy

func (cki ComputedKeyInfos) ShallowCopy() *ComputedKeyInfos

TODO: Figure out whether this needs to be a deep copy. See https://github.com/keybase/client/issues/414 .

type ConfigError

type ConfigError struct {
	// contains filtered or unexported fields
}

func (ConfigError) Error

func (c ConfigError) Error() string

type ConfigGetter

type ConfigGetter func() string

type ConfigReader

type ConfigReader interface {
	GetHome() string
	GetServerURI() string
	GetConfigFilename() string
	GetSessionFilename() string
	GetDbFilename() string
	GetDebug() (bool, bool)
	GetVDebugSetting() string
	GetAutoFork() (bool, bool)
	GetUserConfig() (*UserConfig, error)
	GetUserConfigForUsername(s NormalizedUsername) (*UserConfig, error)
	GetProxy() string
	GetLogFormat() string
	GetGpgHome() string
	GetBundledCA(host string) string
	GetStringAtPath(string) (string, bool)
	GetInterfaceAtPath(string) (interface{}, error)
	GetBoolAtPath(string) (bool, bool)
	GetIntAtPath(string) (int, bool)
	GetNullAtPath(string) bool
	GetUserCacheMaxAge() (time.Duration, bool)
	GetProofCacheSize() (int, bool)
	GetProofCacheLongDur() (time.Duration, bool)
	GetProofCacheMediumDur() (time.Duration, bool)
	GetProofCacheShortDur() (time.Duration, bool)
	GetLinkCacheSize() (int, bool)
	GetLinkCacheCleanDur() (time.Duration, bool)
	GetMerkleKIDs() []string
	GetCodeSigningKIDs() []string
	GetPinentry() string
	GetNoPinentry() (bool, bool)
	GetGpg() string
	GetGpgOptions() []string
	GetSecretKeyringTemplate() string
	GetSalt() []byte
	GetSocketFile() string
	GetPidFile() string
	GetStandalone() (bool, bool)
	GetLocalRPCDebug() string
	GetTimers() string
	GetDeviceID() keybase1.DeviceID
	GetUsername() NormalizedUsername
	GetAllUsernames() (current NormalizedUsername, others []NormalizedUsername, err error)
	GetUID() keybase1.UID
	GetProxyCACerts() ([]string, error)
	GetLogFile() string
	GetRunMode() (RunMode, error)
	GetScraperTimeout() (time.Duration, bool)
	GetAPITimeout() (time.Duration, bool)
	GetSecurityAccessGroupOverride() (bool, bool)

	GetUpdatePreferenceAuto() (bool, bool)
	GetUpdatePreferenceSkip() string
	GetUpdatePreferenceSnoozeUntil() keybase1.Time
	GetUpdateLastChecked() keybase1.Time
	GetUpdateURL() string
	GetLocalTrackMaxAge() (time.Duration, bool)
	GetAppStartMode() AppStartMode
	IsAdmin() (bool, bool)

	GetTorMode() (TorMode, error)
	GetTorHiddenAddress() string
	GetTorProxy() string
}

type ConfigWriter

type ConfigWriter interface {
	SetUserConfig(cfg *UserConfig, overwrite bool) error
	SwitchUser(un NormalizedUsername) error
	NukeUser(un NormalizedUsername) error
	SetDeviceID(keybase1.DeviceID) error
	SetStringAtPath(string, string) error
	SetBoolAtPath(string, bool) error
	SetIntAtPath(string, int) error
	SetWrapperAtPath(string, *jsonw.Wrapper) error
	SetNullAtPath(string) error
	DeleteAtPath(string)
	SetUpdatePreferenceAuto(bool) error
	SetUpdatePreferenceSkip(string) error
	SetUpdatePreferenceSnoozeUntil(keybase1.Time) error
	SetUpdateLastChecked(keybase1.Time) error
	Reset()
	BeginTransaction() (ConfigWriterTransacter, error)
}

type ConfigWriterTransacter

type ConfigWriterTransacter interface {
	Commit() error
	Abort() error
}

type ConnectionID

type ConnectionID int

ConnectionID is a sequential integer assigned to each RPC connection that this process serves. No IDs are reused.

type ConnectionManager

type ConnectionManager struct {
	// contains filtered or unexported fields
}

ConnectionManager manages all connections active for a given service. It can be called from multiple goroutines.

func NewConnectionManager

func NewConnectionManager() *ConnectionManager

NewConnectionManager makes a new ConnectionManager and starts its internal routing loop running.

func (*ConnectionManager) AddConnection

func (c *ConnectionManager) AddConnection(xp rpc.Transporter, closeListener chan error) ConnectionID

AddConnection adds a new connection to the table of Connection object, with a related closeListener. We'll listen for a close on that channel, and when one occurs, we'll remove the connection from the pool.

func (*ConnectionManager) ApplyAll

func (c *ConnectionManager) ApplyAll(f ApplyFn)

ApplyAll applies the given function f to all connections in the table. If you're going to do something blocking, please do it in a GoRoutine, since we're holding the lock for all connections as we do this.

func (*ConnectionManager) Label

func (*ConnectionManager) ListAllLabeledConnections

func (c *ConnectionManager) ListAllLabeledConnections() []keybase1.ClientDetails

func (*ConnectionManager) LookupConnection

func (c *ConnectionManager) LookupConnection(i ConnectionID) rpc.Transporter

LookupConnection looks up a connection given a connectionID, or returns nil if no such connection was found.

func (*ConnectionManager) Shutdown

func (c *ConnectionManager) Shutdown()

type Contexitifier

type Contexitifier interface {
	G() *GlobalContext
}

type Contextified

type Contextified struct {
	// contains filtered or unexported fields
}

Contextified objects have explicit references to the GlobalContext, so that G can be swapped out for something else. We're going to incrementally start moving objects over to this system.

func NewContextified

func NewContextified(gc *GlobalContext) Contextified

func (Contextified) G

func (c Contextified) G() *GlobalContext

func (Contextified) GStrict

func (c Contextified) GStrict() *GlobalContext

func (*Contextified) SetGlobalContext

func (c *Contextified) SetGlobalContext(g *GlobalContext)

type CryptoMessageFormat

type CryptoMessageFormat string

CryptoMessageFormat is one of the known crypto message formats that we admit

const (
	// CryptoMessageFormatPGP is for PGP
	CryptoMessageFormatPGP CryptoMessageFormat = "pgp"
	// CryptoMessageFormatKeybaseV0 is for the zeroth version of Keybase signatures, which
	// will eventually be deprecated.
	CryptoMessageFormatKeybaseV0 CryptoMessageFormat = "kbv0"
	// CryptoMessageFormatSaltpack is the Saltpack messaging format for encrypted and signed
	// messages
	CryptoMessageFormatSaltpack CryptoMessageFormat = "saltpack"
)

type CryptoMessageType

type CryptoMessageType int

CryptoMessageType says what type of crypto message it is, regardless of Format

const (
	// CryptoMessageTypeEncryption is for an encrypted message
	CryptoMessageTypeEncryption CryptoMessageType = 0
	// CryptoMessageTypeAttachedSignature is for an attached signature
	CryptoMessageTypeAttachedSignature CryptoMessageType = 1
	// CryptoMessageTypeDetachedSignature is for a detached signature
	CryptoMessageTypeDetachedSignature CryptoMessageType = 2
	// CryptoMessageTypeClearSignature is for PGP clearsigning
	CryptoMessageTypeClearSignature CryptoMessageType = 3
	// CryptoMessageTypeAmbiguous is for an ambiguous message based on the stream prefix
	CryptoMessageTypeAmbiguous CryptoMessageType = 4
	// CryptoMessageTypeSignature is for a sig that can be either attached or detached
	CryptoMessageTypeSignature CryptoMessageType = 5
)
type CryptocurrencyChainLink struct {
	GenericChainLink
	// contains filtered or unexported fields
}
func ParseCryptocurrencyChainLink(b GenericChainLink) (
	cl *CryptocurrencyChainLink, err error)

func (CryptocurrencyChainLink) Display

func (c CryptocurrencyChainLink) Display(ui IdentifyUI)

func (CryptocurrencyChainLink) Export

func (CryptocurrencyChainLink) GetAddress

func (c CryptocurrencyChainLink) GetAddress() string

func (*CryptocurrencyChainLink) ToDisplayString

func (c *CryptocurrencyChainLink) ToDisplayString() string

func (*CryptocurrencyChainLink) Type

func (c *CryptocurrencyChainLink) Type() string

type CtimeMismatchError

type CtimeMismatchError struct {
	Msg string
}

func (CtimeMismatchError) Error

func (e CtimeMismatchError) Error() string

type CurrentStatus

type CurrentStatus struct {
	Configured     bool
	Registered     bool
	LoggedIn       bool
	SessionIsValid bool
	User           *User
}

func GetCurrentStatus

func GetCurrentStatus(g *GlobalContext) (res CurrentStatus, err error)

func (CurrentStatus) Export

func (c CurrentStatus) Export() (ret keybase1.GetCurrentStatusRes)

type DNSChecker

type DNSChecker struct {
	// contains filtered or unexported fields
}

func (*DNSChecker) CheckDomain

func (rc *DNSChecker) CheckDomain(sig string, domain string) ProofError

func (*DNSChecker) CheckHint

func (rc *DNSChecker) CheckHint(h SigHint) ProofError

func (*DNSChecker) CheckStatus

func (rc *DNSChecker) CheckStatus(h SigHint) ProofError

func (*DNSChecker) GetTorError

func (rc *DNSChecker) GetTorError() ProofError

type DNSServiceType

type DNSServiceType struct{ BaseServiceType }

func (DNSServiceType) AllStringKeys

func (t DNSServiceType) AllStringKeys() []string

func (DNSServiceType) CheckProofText

func (t DNSServiceType) CheckProofText(text string, id keybase1.SigID, sig string) (err error)

func (DNSServiceType) CheckUsername

func (t DNSServiceType) CheckUsername(s string) error

func (DNSServiceType) DisplayName

func (t DNSServiceType) DisplayName(un string) string

func (DNSServiceType) FormatProofText

func (t DNSServiceType) FormatProofText(ppr *PostProofRes) (string, error)

func (DNSServiceType) GetAPIArgKey

func (t DNSServiceType) GetAPIArgKey() string

func (DNSServiceType) GetPrompt

func (t DNSServiceType) GetPrompt() string

func (DNSServiceType) GetProofType

func (t DNSServiceType) GetProofType() string

func (DNSServiceType) GetTypeName

func (t DNSServiceType) GetTypeName() string

func (DNSServiceType) LastWriterWins

func (t DNSServiceType) LastWriterWins() bool

func (DNSServiceType) NormalizeUsername

func (t DNSServiceType) NormalizeUsername(s string) (string, error)

func (DNSServiceType) PostInstructions

func (t DNSServiceType) PostInstructions(un string) *Markup

func (DNSServiceType) RecheckProofPosting

func (t DNSServiceType) RecheckProofPosting(tryNumber int, status keybase1.ProofStatus, dn string) (warning *Markup, err error)

func (DNSServiceType) ToChecker

func (t DNSServiceType) ToChecker() Checker

func (DNSServiceType) ToServiceJSON

func (t DNSServiceType) ToServiceJSON(un string) *jsonw.Wrapper

type Darwin

type Darwin struct {
	Base
}

func (Darwin) CacheDir

func (d Darwin) CacheDir() string

func (Darwin) ConfigDir

func (d Darwin) ConfigDir() string

func (Darwin) DataDir

func (d Darwin) DataDir() string

func (Darwin) Home

func (d Darwin) Home(emptyOk bool) string

func (Darwin) LogDir

func (d Darwin) LogDir() string

func (Darwin) Normalize

func (d Darwin) Normalize(s string) string

func (Darwin) RuntimeDir

func (d Darwin) RuntimeDir() string

func (Darwin) ServiceSpawnDir

func (d Darwin) ServiceSpawnDir() (string, error)

type DbKey

type DbKey struct {
	Typ ObjType
	Key string
}

func DbKeyParse

func DbKeyParse(s string) (string, *DbKey, error)

func DbKeyUID

func DbKeyUID(t ObjType, uid keybase1.UID) DbKey

func LocalTrackDBKey

func LocalTrackDBKey(tracker, trackee keybase1.UID, expireLocal bool) DbKey

func (DbKey) ToBytes

func (k DbKey) ToBytes(table string) []byte

func (DbKey) ToString

func (k DbKey) ToString(table string) string

type DecryptBadNonceError

type DecryptBadNonceError struct{}

func (DecryptBadNonceError) Error

func (d DecryptBadNonceError) Error() string

type DecryptBadPacketTypeError

type DecryptBadPacketTypeError struct{}

func (DecryptBadPacketTypeError) Error

type DecryptBadSenderError

type DecryptBadSenderError struct{}

func (DecryptBadSenderError) Error

func (d DecryptBadSenderError) Error() string

type DecryptOpenError

type DecryptOpenError struct{}

func (DecryptOpenError) Error

func (d DecryptOpenError) Error() string

type DecryptWrongReceiverError

type DecryptWrongReceiverError struct{}

func (DecryptWrongReceiverError) Error

type DecryptionError

type DecryptionError struct{}

func (DecryptionError) Error

func (e DecryptionError) Error() string

type DelegationType

type DelegationType LinkType

type Delegator

type Delegator struct {
	Contextified

	// Set these fields
	NewKey            GenericKey
	ExistingKey       GenericKey
	EldestKID         keybase1.KID
	Me                *User
	Expire            int
	Device            *Device
	RevSig            string
	ServerHalf        []byte
	EncodedPrivateKey string
	Ctime             int64
	DelegationType    DelegationType
	Aggregated        bool // During aggregation we skip some steps (posting, updating some state)

	// Optional precalculated values used by KeyProof
	LastSeqno   Seqno     // kex2 HandleDidCounterSign needs to sign subkey without a user but we know what the last seqno was
	PrevLinkID  LinkID    // kex2 HandleDidCounterSign calculates previous link id without a user
	SigningUser UserBasic // kex2 doesn't have a full user, but does have basic user info
	// contains filtered or unexported fields
}

func (*Delegator) CheckArgs

func (d *Delegator) CheckArgs() (err error)

func (Delegator) GetMerkleTriple

func (d Delegator) GetMerkleTriple() MerkleTriple

GetMerkleTriple gets the new MerkleTriple that came about as a result of performing the key delegation.

func (Delegator) GetSigningKey

func (d Delegator) GetSigningKey() GenericKey

func (Delegator) IsEldest

func (d Delegator) IsEldest() bool

func (Delegator) IsSibkeyOrEldest

func (d Delegator) IsSibkeyOrEldest() bool

func (*Delegator) LoadSigningKey

func (d *Delegator) LoadSigningKey(lctx LoginContext, ui SecretUI) (err error)

LoadSigningKey can be called before Run() to load the signing key into the delegator. This will check the given key first, then a device Key if we have one, and otherwise will leave the signing key unset so that we will set it as the eldest key on upload. lctx can be nil.

func (*Delegator) Run

func (d *Delegator) Run(lctx LoginContext) (err error)

Run the Delegator, performing all necessary internal operations. Return err on failure and nil on success.

func (*Delegator) SignAndPost

func (d *Delegator) SignAndPost(lctx LoginContext, jw *jsonw.Wrapper) (err error)

type Device

type Device struct {
	ID          keybase1.DeviceID `json:"id"`
	Kid         keybase1.KID      `json:"kid,omitempty"`
	Description *string           `json:"name,omitempty"`
	Status      *int              `json:"status,omitempty"`
	Type        string            `json:"type"`
	CTime       keybase1.Time     `json:"ctime"`
	MTime       keybase1.Time     `json:"mtime"`
}

func NewPaperDevice

func NewPaperDevice(passphrasePrefix string) (*Device, error)

NewPaperDevice creates a new paper backup key device

func ParseDevice

func ParseDevice(jw *jsonw.Wrapper, t time.Time) (ret *Device, err error)

func (*Device) Export

func (d *Device) Export(lt LinkType) (*jsonw.Wrapper, error)

func (*Device) IsActive

func (d *Device) IsActive() bool

func (*Device) Merge

func (d *Device) Merge(d2 *Device)

func (*Device) ProtExport

func (d *Device) ProtExport() *keybase1.Device

func (*Device) StatusString

func (d *Device) StatusString() string

type DeviceAlreadyProvisionedError

type DeviceAlreadyProvisionedError struct{}

func (DeviceAlreadyProvisionedError) Error

func (DeviceAlreadyProvisionedError) ToStatus

type DeviceChainLink struct {
	GenericChainLink
	// contains filtered or unexported fields
}
func ParseDeviceChainLink(b GenericChainLink) (ret *DeviceChainLink, err error)

func (*DeviceChainLink) GetDevice

func (s *DeviceChainLink) GetDevice() *Device

type DeviceKey

type DeviceKey struct {
	Type          string               `json:"type"`
	CTime         int64                `json:"ctime"`
	MTime         int64                `json:"mtime"`
	Description   string               `json:"name"`
	Status        int                  `json:"status"`
	LksServerHalf string               `json:"lks_server_half"`
	PPGen         PassphraseGeneration `json:"passphrase_generation"`
}

func (DeviceKey) Display

func (d DeviceKey) Display() string

type DeviceKeyMap

type DeviceKeyMap map[keybase1.DeviceID]DeviceKey

type DeviceRequiredError

type DeviceRequiredError struct{}

func (DeviceRequiredError) Error

func (e DeviceRequiredError) Error() string

func (DeviceRequiredError) ToStatus

func (e DeviceRequiredError) ToStatus() keybase1.Status

type DeviceStatus

type DeviceStatus struct {
	Provisioned  bool
	Keyed        bool
	KeyAvailable bool
}

type DeviceTypeSet

type DeviceTypeSet map[string]bool

type DumbOutputUI

type DumbOutputUI interface {
	Printf(fmt string, args ...interface{}) (int, error)
	PrintfStderr(fmt string, args ...interface{}) (int, error)
}

type EmptyKeyRing

type EmptyKeyRing struct{}

func (EmptyKeyRing) DecryptionKeys

func (k EmptyKeyRing) DecryptionKeys() []openpgp.Key

func (EmptyKeyRing) KeysById

func (k EmptyKeyRing) KeysById(id uint64) []openpgp.Key

func (EmptyKeyRing) KeysByIdUsage

func (k EmptyKeyRing) KeysByIdUsage(id uint64, usage byte) []openpgp.Key

type Env

type Env struct {
	sync.RWMutex

	Test TestParameters
	// contains filtered or unexported fields
}

func NewEnv

func NewEnv(cmd CommandLine, config ConfigReader) *Env

func (*Env) GenClientConfigForInternalAPI

func (e *Env) GenClientConfigForInternalAPI() (*ClientConfig, error)

GenClientConfigForInternalAPI pulls the information out of the environment configuration, and build a Client config that will be used in all API server requests

func (*Env) GenClientConfigForScrapers

func (e *Env) GenClientConfigForScrapers() (*ClientConfig, error)

func (*Env) GetAPIDump

func (e *Env) GetAPIDump() bool

func (*Env) GetAPITimeout

func (e *Env) GetAPITimeout() time.Duration

func (*Env) GetAppStartMode

func (e *Env) GetAppStartMode() AppStartMode

func (*Env) GetAutoFork

func (e *Env) GetAutoFork() bool

func (*Env) GetBool

func (e *Env) GetBool(def bool, flist ...func() (bool, bool)) bool

func (*Env) GetBundledCA

func (e *Env) GetBundledCA(host string) string

func (*Env) GetCacheDir

func (e *Env) GetCacheDir() string

func (*Env) GetCodeSigningKIDs

func (e *Env) GetCodeSigningKIDs() []keybase1.KID

func (*Env) GetCommandLine

func (e *Env) GetCommandLine() CommandLine

func (*Env) GetConfig

func (e *Env) GetConfig() ConfigReader

func (*Env) GetConfigDir

func (e *Env) GetConfigDir() string

func (*Env) GetConfigFilename

func (e *Env) GetConfigFilename() string

func (*Env) GetConfigWriter

func (e *Env) GetConfigWriter() ConfigWriter

func (*Env) GetDataDir

func (e *Env) GetDataDir() string

func (*Env) GetDbFilename

func (e *Env) GetDbFilename() string

func (*Env) GetDebug

func (e *Env) GetDebug() bool

func (*Env) GetDefaultLogFile

func (e *Env) GetDefaultLogFile() string

func (*Env) GetDeviceID

func (e *Env) GetDeviceID() keybase1.DeviceID

func (*Env) GetDoLogForward

func (e *Env) GetDoLogForward() bool

func (*Env) GetDuration

func (e *Env) GetDuration(def time.Duration, flist ...func() (time.Duration, bool)) time.Duration

func (*Env) GetEmail

func (e *Env) GetEmail() string

func (*Env) GetEmailOrUsername

func (e *Env) GetEmailOrUsername() string

func (*Env) GetGpg

func (e *Env) GetGpg() string

func (*Env) GetGpgHome

func (e *Env) GetGpgHome() string

func (*Env) GetGpgOptions

func (e *Env) GetGpgOptions() []string

func (*Env) GetHome

func (e *Env) GetHome() string

func (*Env) GetInt

func (e *Env) GetInt(def int, flist ...func() (int, bool)) int

func (*Env) GetLabel

func (e *Env) GetLabel() string

func (*Env) GetLinkCacheCleanDur

func (e *Env) GetLinkCacheCleanDur() time.Duration

func (*Env) GetLinkCacheSize

func (e *Env) GetLinkCacheSize() int

func (*Env) GetLocalRPCDebug

func (e *Env) GetLocalRPCDebug() string

func (*Env) GetLocalTrackMaxAge

func (e *Env) GetLocalTrackMaxAge() time.Duration

func (*Env) GetLogDir

func (e *Env) GetLogDir() string

func (*Env) GetLogFile

func (e *Env) GetLogFile() string

func (*Env) GetLogFormat

func (e *Env) GetLogFormat() string

func (*Env) GetMerkleKIDs

func (e *Env) GetMerkleKIDs() []keybase1.KID

func (*Env) GetMountDir

func (e *Env) GetMountDir() string

func (*Env) GetNegBool

func (e *Env) GetNegBool(def bool, flist []NegBoolFunc) bool

GetNegBool gets a negatable bool. You can give it a list of functions, and also possible negations for those functions.

func (*Env) GetNoPinentry

func (e *Env) GetNoPinentry() bool

func (*Env) GetPidFile

func (e *Env) GetPidFile() (ret string, err error)

func (*Env) GetPinentry

func (e *Env) GetPinentry() string

func (*Env) GetProofCacheLongDur

func (e *Env) GetProofCacheLongDur() time.Duration

func (*Env) GetProofCacheMediumDur

func (e *Env) GetProofCacheMediumDur() time.Duration

func (*Env) GetProofCacheShortDur

func (e *Env) GetProofCacheShortDur() time.Duration

func (*Env) GetProofCacheSize

func (e *Env) GetProofCacheSize() int

func (*Env) GetProxy

func (e *Env) GetProxy() string

func (*Env) GetRunMode

func (e *Env) GetRunMode() RunMode

func (*Env) GetRunModeAsString

func (e *Env) GetRunModeAsString() string

func (*Env) GetRuntimeDir

func (e *Env) GetRuntimeDir() string

func (*Env) GetSalt

func (e *Env) GetSalt() []byte

func (*Env) GetScraperTimeout

func (e *Env) GetScraperTimeout() time.Duration

func (*Env) GetSecretKeyringTemplate

func (e *Env) GetSecretKeyringTemplate() string

func (*Env) GetServerURI

func (e *Env) GetServerURI() string

func (*Env) GetServiceInfoPath

func (e *Env) GetServiceInfoPath() string

func (*Env) GetServiceSpawnDir

func (e *Env) GetServiceSpawnDir() (string, error)

func (*Env) GetServiceType

func (e *Env) GetServiceType() string

func (*Env) GetSessionFilename

func (e *Env) GetSessionFilename() string

func (*Env) GetSocketFile

func (e *Env) GetSocketFile() (ret string, err error)

func (*Env) GetStandalone

func (e *Env) GetStandalone() bool

func (*Env) GetStoredSecretAccessGroup

func (e *Env) GetStoredSecretAccessGroup() string

func (*Env) GetStoredSecretServiceName

func (e *Env) GetStoredSecretServiceName() string

func (*Env) GetString

func (e *Env) GetString(flist ...(func() string)) string

func (*Env) GetStringList

func (e *Env) GetStringList(list ...(func() []string)) []string

func (*Env) GetTimers

func (e *Env) GetTimers() string

func (*Env) GetTorHiddenAddress

func (e *Env) GetTorHiddenAddress() string

func (*Env) GetTorMode

func (e *Env) GetTorMode() TorMode

func (*Env) GetTorProxy

func (e *Env) GetTorProxy() string

func (*Env) GetUID

func (e *Env) GetUID() keybase1.UID

func (*Env) GetUpdateDefaultInstructions

func (e *Env) GetUpdateDefaultInstructions() (string, error)

func (*Env) GetUpdateLastChecked

func (e *Env) GetUpdateLastChecked() keybase1.Time

func (*Env) GetUpdatePreferenceAuto

func (e *Env) GetUpdatePreferenceAuto() (bool, bool)

func (*Env) GetUpdatePreferenceSkip

func (e *Env) GetUpdatePreferenceSkip() string

func (*Env) GetUpdatePreferenceSnoozeUntil

func (e *Env) GetUpdatePreferenceSnoozeUntil() keybase1.Time

func (*Env) GetUpdateURL

func (e *Env) GetUpdateURL() string

func (*Env) GetUserCacheMaxAge

func (e *Env) GetUserCacheMaxAge() time.Duration

func (*Env) GetUsername

func (e *Env) GetUsername() NormalizedUsername

func (*Env) GetVDebugSetting

func (e *Env) GetVDebugSetting() string

func (*Env) IsAdmin

func (e *Env) IsAdmin() bool

func (*Env) SetCommandLine

func (e *Env) SetCommandLine(cmd CommandLine)

func (*Env) SetConfig

func (e *Env) SetConfig(r ConfigReader, w ConfigWriter)

func (*Env) SetUpdateLastChecked

func (e *Env) SetUpdateLastChecked(t keybase1.Time) error

func (*Env) SetUpdatePreferenceAuto

func (e *Env) SetUpdatePreferenceAuto(b bool) error

func (*Env) SetUpdatePreferenceSkip

func (e *Env) SetUpdatePreferenceSkip(v string) error

func (*Env) SetUpdatePreferenceSnoozeUntil

func (e *Env) SetUpdatePreferenceSnoozeUntil(t keybase1.Time) error

type ErrorUnwrapper

type ErrorUnwrapper struct{}

func (ErrorUnwrapper) MakeArg

func (eu ErrorUnwrapper) MakeArg() interface{}

func (ErrorUnwrapper) UnwrapError

func (eu ErrorUnwrapper) UnwrapError(arg interface{}) (appError error, dispatchError error)

type ExportableError

type ExportableError interface {
	error
	ToStatus() keybase1.Status
}

type ExportedStream

type ExportedStream struct {
	// contains filtered or unexported fields
}

func (*ExportedStream) Export

func (s *ExportedStream) Export() keybase1.Stream

type ExportedStreams

type ExportedStreams struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func NewExportedStreams

func NewExportedStreams() *ExportedStreams

func (*ExportedStreams) Close

func (s *ExportedStreams) Close(_ context.Context, a keybase1.CloseArg) (err error)

func (*ExportedStreams) ExportReader

func (s *ExportedStreams) ExportReader(r io.ReadCloser) keybase1.Stream

func (*ExportedStreams) ExportWriter

func (s *ExportedStreams) ExportWriter(w io.WriteCloser) keybase1.Stream

func (*ExportedStreams) GetReader

func (s *ExportedStreams) GetReader(st keybase1.Stream) (ret io.ReadCloser, err error)

func (*ExportedStreams) GetWriter

func (s *ExportedStreams) GetWriter(st keybase1.Stream) (ret io.WriteCloser, err error)

func (*ExportedStreams) Read

func (s *ExportedStreams) Read(_ context.Context, a keybase1.ReadArg) (buf []byte, err error)

func (*ExportedStreams) Write

func (s *ExportedStreams) Write(_ context.Context, a keybase1.WriteArg) (n int, err error)

type ExternalAPI

type ExternalAPI interface {
	Get(APIArg) (*ExternalAPIRes, error)
	Post(APIArg) (*ExternalAPIRes, error)
	GetHTML(APIArg) (*ExternalHTMLRes, error)
	GetText(APIArg) (*ExternalTextRes, error)
	PostHTML(APIArg) (*ExternalHTMLRes, error)
}

type ExternalAPIEngine

type ExternalAPIEngine struct {
	BaseAPIEngine
}

func (*ExternalAPIEngine) DoRequest

func (api *ExternalAPIEngine) DoRequest(
	arg APIArg, req *http.Request, restype int) (
	ar *ExternalAPIRes, hr *ExternalHTMLRes, tr *ExternalTextRes, err error)

func (*ExternalAPIEngine) Get

func (api *ExternalAPIEngine) Get(arg APIArg) (res *ExternalAPIRes, err error)

func (*ExternalAPIEngine) GetHTML

func (api *ExternalAPIEngine) GetHTML(arg APIArg) (res *ExternalHTMLRes, err error)

func (*ExternalAPIEngine) GetText

func (api *ExternalAPIEngine) GetText(arg APIArg) (res *ExternalTextRes, err error)

func (*ExternalAPIEngine) Post

func (api *ExternalAPIEngine) Post(arg APIArg) (res *ExternalAPIRes, err error)

func (*ExternalAPIEngine) PostHTML

func (api *ExternalAPIEngine) PostHTML(arg APIArg) (res *ExternalHTMLRes, err error)

type ExternalAPIRes

type ExternalAPIRes struct {
	HTTPStatus int
	Body       *jsonw.Wrapper
}

type ExternalHTMLRes

type ExternalHTMLRes struct {
	HTTPStatus int
	GoQuery    *goquery.Document
}

type ExternalTextRes

type ExternalTextRes struct {
	HTTPStatus int
	Body       string
}

type FailedAssertionError

type FailedAssertionError struct {
	// contains filtered or unexported fields
}

func (FailedAssertionError) Error

func (u FailedAssertionError) Error() string

type File

type File struct {
	// contains filtered or unexported fields
}

File defines a default SafeWriter implementation

func NewFile

func NewFile(filename string, data []byte, perm os.FileMode) File

NewFile returns a File

func (File) GetFilename

func (f File) GetFilename() string

GetFilename is for SafeWriter

func (File) Save

func (f File) Save() error

Save file

func (File) WriteTo

func (f File) WriteTo(w io.Writer) (int64, error)

WriteTo is for SafeWriter

type FirstErrorPicker

type FirstErrorPicker struct {
	// contains filtered or unexported fields
}

func (*FirstErrorPicker) Error

func (p *FirstErrorPicker) Error() error

func (*FirstErrorPicker) Push

func (p *FirstErrorPicker) Push(e error)

type FishyMsgpackError

type FishyMsgpackError struct {
	// contains filtered or unexported fields
}

func (FishyMsgpackError) Error

func (e FishyMsgpackError) Error() string

type GPGKey

type GPGKey struct {
	Contextified
	// contains filtered or unexported fields
}

GPGKey is a shell around gpg cli commands that implements the GenericKey interface.

func NewGPGKey

func NewGPGKey(g *GlobalContext, fp *PGPFingerprint, kid keybase1.KID, ui GPGUI, ct keybase1.ClientType) *GPGKey

func (*GPGKey) CanDecrypt

func (g *GPGKey) CanDecrypt() bool

func (*GPGKey) CanEncrypt

func (g *GPGKey) CanEncrypt() bool

func (*GPGKey) CanSign

func (g *GPGKey) CanSign() bool

func (*GPGKey) CheckSecretKey

func (g *GPGKey) CheckSecretKey() error

func (*GPGKey) DecryptFromString

func (g *GPGKey) DecryptFromString(ciphertext string) (msg []byte, sender keybase1.KID, err error)

func (*GPGKey) Encode

func (g *GPGKey) Encode() (string, error)

func (*GPGKey) EncryptToString

func (g *GPGKey) EncryptToString(plaintext []byte, sender GenericKey) (ciphertext string, err error)

func (*GPGKey) GetAlgoType

func (g *GPGKey) GetAlgoType() AlgoType

func (*GPGKey) GetFingerprintP

func (g *GPGKey) GetFingerprintP() *PGPFingerprint

func (*GPGKey) GetKID

func (g *GPGKey) GetKID() keybase1.KID

func (*GPGKey) HasSecretKey

func (g *GPGKey) HasSecretKey() bool

func (*GPGKey) SignToString

func (g *GPGKey) SignToString(msg []byte) (sig string, id keybase1.SigID, err error)

func (*GPGKey) ToLksSKB

func (g *GPGKey) ToLksSKB(lks *LKSec) (*SKB, error)

func (*GPGKey) ToServerSKB

func (g *GPGKey) ToServerSKB(gc *GlobalContext, ts *triplesec.Cipher, gen PassphraseGeneration) (*SKB, error)

func (*GPGKey) VerboseDescription

func (g *GPGKey) VerboseDescription() string

func (*GPGKey) VerifyString

func (g *GPGKey) VerifyString(sig string, msg []byte) (id keybase1.SigID, err error)

func (*GPGKey) VerifyStringAndExtract

func (g *GPGKey) VerifyStringAndExtract(sig string) (msg []byte, id keybase1.SigID, err error)

type GPGUI

type GPGUI interface {
	keybase1.GpgUiInterface
}
type GenericChainLink struct {
	*ChainLink
}

func (*GenericChainLink) BaseToTrackingStatement

func (g *GenericChainLink) BaseToTrackingStatement(state keybase1.ProofState) *jsonw.Wrapper

func (*GenericChainLink) DoOwnNewLinkFromServerNotifications

func (g *GenericChainLink) DoOwnNewLinkFromServerNotifications(glob *GlobalContext)

func (*GenericChainLink) GetArmoredSig

func (g *GenericChainLink) GetArmoredSig() string

func (*GenericChainLink) GetDelegatedKid

func (g *GenericChainLink) GetDelegatedKid() (kid keybase1.KID)

func (*GenericChainLink) GetDevice

func (g *GenericChainLink) GetDevice() *Device

func (*GenericChainLink) GetPGPFingerprint

func (g *GenericChainLink) GetPGPFingerprint() *PGPFingerprint

func (*GenericChainLink) GetPGPFullHash

func (g *GenericChainLink) GetPGPFullHash() string

func (*GenericChainLink) GetParentKid

func (g *GenericChainLink) GetParentKid() (kid keybase1.KID)

func (*GenericChainLink) GetRole

func (g *GenericChainLink) GetRole() KeyRole

func (*GenericChainLink) GetSeqno

func (g *GenericChainLink) GetSeqno() Seqno

func (*GenericChainLink) GetSigID

func (g *GenericChainLink) GetSigID() keybase1.SigID

func (*GenericChainLink) GetUID

func (g *GenericChainLink) GetUID() keybase1.UID

func (*GenericChainLink) GetUsername

func (g *GenericChainLink) GetUsername() string

func (*GenericChainLink) IsRevocationIsh

func (g *GenericChainLink) IsRevocationIsh() bool

func (*GenericChainLink) IsRevoked

func (g *GenericChainLink) IsRevoked() bool

func (*GenericChainLink) ToDebugString

func (g *GenericChainLink) ToDebugString() string

func (*GenericChainLink) ToDisplayString

func (g *GenericChainLink) ToDisplayString() string

func (*GenericChainLink) Type

func (g *GenericChainLink) Type() string

func (*GenericChainLink) VerifyReverseSig

func (g *GenericChainLink) VerifyReverseSig(ckf ComputedKeyFamily) error

type GenericKey

type GenericKey interface {
	GetKID() keybase1.KID
	GetFingerprintP() *PGPFingerprint
	GetAlgoType() AlgoType

	// Sign to an ASCII signature (which includes the message
	// itself) and return it, along with a derived ID.
	SignToString(msg []byte) (sig string, id keybase1.SigID, err error)

	// Verify that the given signature is valid and extracts the
	// embedded message from it. Also returns the signature ID.
	VerifyStringAndExtract(sig string) (msg []byte, id keybase1.SigID, err error)

	// Verify that the given signature is valid and that its
	// embedded message matches the given one. Also returns the
	// signature ID.
	VerifyString(sig string, msg []byte) (id keybase1.SigID, err error)

	// Encrypt to an ASCII armored encryption; optionally include a sender's
	// (private) key so that we can provably see who sent the message.
	EncryptToString(plaintext []byte, sender GenericKey) (ciphertext string, err error)

	// Decrypt the output of Encrypt above; provide the plaintext and also
	// the KID of the key that sent the message (if applicable).
	DecryptFromString(ciphertext string) (msg []byte, sender keybase1.KID, err error)

	ToServerSKB(gc *GlobalContext, ts *triplesec.Cipher, gen PassphraseGeneration) (*SKB, error)
	ToLksSKB(lks *LKSec) (*SKB, error)
	VerboseDescription() string
	CheckSecretKey() error
	CanSign() bool
	CanEncrypt() bool
	CanDecrypt() bool
	HasSecretKey() bool
	Encode() (string, error) // encode public key to string
}

func ImportKeypairFromKID

func ImportKeypairFromKID(k keybase1.KID) (key GenericKey, err error)

func NaclVerifyAndExtract

func NaclVerifyAndExtract(s string) (key GenericKey, payload []byte, fullBody []byte, err error)

NaclVerifyAndExtract interprets the given string as a NaCl-signed messaged, in the keybase NaclSigInfo (v1) format. It will check that the signature verified, and if so, will return the key that was used for the verification, the payload of the signature, the full body of the decoded SignInfo, and an error

func ParseGenericKey

func ParseGenericKey(bundle string) (GenericKey, error)

type GetCheckTimeFunc

type GetCheckTimeFunc func(keybase1.UserPlusKeys) keybase1.Time

type GithubChecker

type GithubChecker struct {
	// contains filtered or unexported fields
}

func (*GithubChecker) CheckHint

func (rc *GithubChecker) CheckHint(h SigHint) ProofError

func (*GithubChecker) CheckStatus

func (rc *GithubChecker) CheckStatus(h SigHint) ProofError

func (*GithubChecker) GetTorError

func (rc *GithubChecker) GetTorError() ProofError

type GithubServiceType

type GithubServiceType struct{ BaseServiceType }

func (GithubServiceType) AllStringKeys

func (t GithubServiceType) AllStringKeys() []string

func (GithubServiceType) CheckProofText

func (t GithubServiceType) CheckProofText(text string, id keybase1.SigID, sig string) (err error)

func (GithubServiceType) CheckUsername

func (t GithubServiceType) CheckUsername(s string) (err error)

func (GithubServiceType) DisplayName

func (t GithubServiceType) DisplayName(un string) string

func (GithubServiceType) GetPrompt

func (t GithubServiceType) GetPrompt() string

func (GithubServiceType) GetProofType

func (t GithubServiceType) GetProofType() string

func (GithubServiceType) GetTypeName

func (t GithubServiceType) GetTypeName() string

func (GithubServiceType) PostInstructions

func (t GithubServiceType) PostInstructions(un string) *Markup

func (GithubServiceType) RecheckProofPosting

func (t GithubServiceType) RecheckProofPosting(tryNumber int, status keybase1.ProofStatus, _ string) (warning *Markup, err error)

func (GithubServiceType) ToChecker

func (t GithubServiceType) ToChecker() Checker

func (GithubServiceType) ToServiceJSON

func (t GithubServiceType) ToServiceJSON(un string) *jsonw.Wrapper

type GlobalContext

type GlobalContext struct {
	Log           logger.Logger  // Handles all logging
	VDL           *VDebugLog     // verbose debug log
	Env           *Env           // Env variables, cmdline args & config
	Keyrings      *Keyrings      // Gpg Keychains holding keys
	API           API            // How to make a REST call to the server
	Resolver      *Resolver      // cache of resolve results
	LocalDb       *JSONLocalDb   // Local DB for cache
	MerkleClient  *MerkleClient  // client for querying server's merkle sig tree
	XAPI          ExternalAPI    // for contacting Twitter, Github, etc.
	Output        io.Writer      // where 'Stdout'-style output goes
	ProofCache    *ProofCache    // where to cache proof results
	GpgClient     *GpgCLI        // A standard GPG-client (optional)
	ShutdownHooks []ShutdownHook // on shutdown, fire these...
	SocketInfo    Socket         // which socket to bind/connect to

	SocketWrapper    *SocketWrapper    // only need one connection per
	LoopbackListener *LoopbackListener // If we're in loopback mode, we'll connect through here
	XStreams         *ExportedStreams  // a table of streams we've exported to the daemon (or vice-versa)
	Timers           *TimerSet         // Which timers are currently configured on
	TrackCache       *TrackCache       // cache of IdentifyOutcomes for tracking purposes
	Identify2Cache   Identify2Cacher   // cache of Identify2 results for fast-pathing identify2 RPCS
	LinkCache        *LinkCache        // cache of ChainLinks
	UI               UI                // Interact with the UI
	Service          bool              // whether we're in server mode

	ConnectionManager *ConnectionManager // keep tabs on all active client connections
	NotifyRouter      *NotifyRouter      // How to route notifications
	// How to route UIs. Nil if we're in standalone mode or in
	// tests, and non-nil in service mode.
	UIRouter            UIRouter            // How to route UIs
	ProofCheckerFactory ProofCheckerFactory // Makes new ProofCheckers
	ExitCode            keybase1.ExitCode   // Value to return to OS on Exit()
	RateLimits          *RateLimits         // tracks the last time certain actions were taken
	Clock               clockwork.Clock     // RealClock unless we're testing
	SecretStoreAll      SecretStoreAll      // nil except for tests and supported platforms
	// contains filtered or unexported fields
}
var G *GlobalContext

func NewGlobalContext

func NewGlobalContext() *GlobalContext

func NewGlobalContextInit

func NewGlobalContextInit() *GlobalContext

func (*GlobalContext) BindToSocket

func (g *GlobalContext) BindToSocket() (net.Listener, error)

func (*GlobalContext) ConfigReload

func (g *GlobalContext) ConfigReload() error

func (*GlobalContext) Configure

func (g *GlobalContext) Configure(line CommandLine, usage Usage) error

func (*GlobalContext) ConfigureAPI

func (g *GlobalContext) ConfigureAPI() error

func (*GlobalContext) ConfigureCaches

func (g *GlobalContext) ConfigureCaches() error

func (*GlobalContext) ConfigureCommand

func (g *GlobalContext) ConfigureCommand(line CommandLine, cmd Command) error

func (*GlobalContext) ConfigureConfig

func (g *GlobalContext) ConfigureConfig() error

func (*GlobalContext) ConfigureExportedStreams

func (g *GlobalContext) ConfigureExportedStreams() error

func (*GlobalContext) ConfigureKeyring

func (g *GlobalContext) ConfigureKeyring() error

func (*GlobalContext) ConfigureLogging

func (g *GlobalContext) ConfigureLogging() error

func (*GlobalContext) ConfigureMerkleClient

func (g *GlobalContext) ConfigureMerkleClient() error

func (*GlobalContext) ConfigureSocketInfo

func (g *GlobalContext) ConfigureSocketInfo() (err error)

func (*GlobalContext) ConfigureTimers

func (g *GlobalContext) ConfigureTimers() error

func (*GlobalContext) ConfigureUsage

func (g *GlobalContext) ConfigureUsage(usage Usage) error

func (*GlobalContext) GetAllUserNames

func (g *GlobalContext) GetAllUserNames() (NormalizedUsername, []NormalizedUsername, error)

func (*GlobalContext) GetCacheDir

func (g *GlobalContext) GetCacheDir() string

func (*GlobalContext) GetClock

func (g *GlobalContext) GetClock() clockwork.Clock

func (*GlobalContext) GetConfiguredAccounts

func (g *GlobalContext) GetConfiguredAccounts() ([]keybase1.ConfiguredAccount, error)

func (*GlobalContext) GetGpgClient

func (g *GlobalContext) GetGpgClient() *GpgCLI

func (*GlobalContext) GetMyClientDetails

func (g *GlobalContext) GetMyClientDetails() keybase1.ClientDetails

func (*GlobalContext) GetMyUID

func (g *GlobalContext) GetMyUID() keybase1.UID

func (*GlobalContext) GetRunMode

func (g *GlobalContext) GetRunMode() RunMode

func (*GlobalContext) GetRuntimeDir

func (g *GlobalContext) GetRuntimeDir() string

func (*GlobalContext) GetSocket

func (g *GlobalContext) GetSocket(clearError bool) (net.Conn, rpc.Transporter, bool, error)

func (*GlobalContext) GetStoredSecretAccessGroup

func (g *GlobalContext) GetStoredSecretAccessGroup() string

func (*GlobalContext) GetStoredSecretServiceName

func (g *GlobalContext) GetStoredSecretServiceName() string

func (*GlobalContext) GetUnforwardedLogger

func (g *GlobalContext) GetUnforwardedLogger() *logger.UnforwardedLogger

func (*GlobalContext) GetUsersWithStoredSecrets

func (g *GlobalContext) GetUsersWithStoredSecrets() ([]string, error)

func (*GlobalContext) Init

func (g *GlobalContext) Init() *GlobalContext

func (*GlobalContext) LoginState

func (g *GlobalContext) LoginState() *LoginState

func (*GlobalContext) Logout

func (g *GlobalContext) Logout() error

func (*GlobalContext) MakeLoopbackServer

func (g *GlobalContext) MakeLoopbackServer() (l net.Listener, err error)

func (*GlobalContext) NewProofChecker

func (g *GlobalContext) NewProofChecker(l RemoteProofChainLink) (ProofChecker, ProofError)

func (*GlobalContext) OutputBytes

func (g *GlobalContext) OutputBytes(b []byte)

func (*GlobalContext) OutputString

func (g *GlobalContext) OutputString(s string)

func (*GlobalContext) PushShutdownHook

func (g *GlobalContext) PushShutdownHook(sh ShutdownHook)

func (*GlobalContext) ResetLoginState

func (g *GlobalContext) ResetLoginState()

ResetLoginState is mainly used for testing...

func (*GlobalContext) SKBFilenameForUser

func (g *GlobalContext) SKBFilenameForUser(un NormalizedUsername) string

func (*GlobalContext) SetCommandLine

func (g *GlobalContext) SetCommandLine(cmd CommandLine)

func (*GlobalContext) SetService

func (g *GlobalContext) SetService()

func (*GlobalContext) SetUI

func (g *GlobalContext) SetUI(u UI)

func (*GlobalContext) SetUIRouter

func (g *GlobalContext) SetUIRouter(u UIRouter)

func (*GlobalContext) Shutdown

func (g *GlobalContext) Shutdown() error

Shutdown is called exactly once per-process and does whatever cleanup is necessary to shut down the server.

func (*GlobalContext) StartupMessage

func (g *GlobalContext) StartupMessage()

func (*GlobalContext) Trace

func (g *GlobalContext) Trace(msg string, f func() error) func()

type GpgBaseKey

type GpgBaseKey struct {
	Type    string
	Trust   string
	Bits    int
	Algo    int
	ID64    string
	Created int64
	Expires int64
	// contains filtered or unexported fields
}

func (GpgBaseKey) AlgoString

func (k GpgBaseKey) AlgoString() string

func (GpgBaseKey) CreatedString

func (k GpgBaseKey) CreatedString() string

func (GpgBaseKey) ExpirationString

func (k GpgBaseKey) ExpirationString() string

func (*GpgBaseKey) ParseBase

func (k *GpgBaseKey) ParseBase(line *GpgIndexLine) (err error)

func (*GpgBaseKey) SetFingerprint

func (k *GpgBaseKey) SetFingerprint(pgp *PGPFingerprint)

type GpgCLI

type GpgCLI struct {
	Contextified
	// contains filtered or unexported fields
}

func NewGpgCLI

func NewGpgCLI(g *GlobalContext, logUI LogUI) *GpgCLI

func (*GpgCLI) CanExec

func (g *GpgCLI) CanExec() (bool, error)

CanExec returns true if a gpg executable exists.

func (*GpgCLI) Configure

func (g *GpgCLI) Configure() (err error)

func (*GpgCLI) ExportKey

func (g *GpgCLI) ExportKey(k PGPKeyBundle, private bool) (err error)

func (*GpgCLI) ImportKey

func (g *GpgCLI) ImportKey(secret bool, fp PGPFingerprint) (*PGPKeyBundle, error)

func (*GpgCLI) Index

func (g *GpgCLI) Index(secret bool, query string) (ki *GpgKeyIndex, w Warnings, err error)

func (*GpgCLI) MakeCmd

func (g *GpgCLI) MakeCmd(args []string) *exec.Cmd

func (*GpgCLI) Path

func (g *GpgCLI) Path() string

Path returns the path of the gpg executable. Path is only available if CanExec() is true.

func (*GpgCLI) Run2

func (g *GpgCLI) Run2(arg RunGpg2Arg) (res RunGpg2Res)

func (*GpgCLI) SetTTY

func (g *GpgCLI) SetTTY(t string)

func (*GpgCLI) Sign

func (g *GpgCLI) Sign(fp PGPFingerprint, payload []byte) (string, error)

func (*GpgCLI) Version

func (g *GpgCLI) Version() (string, error)

type GpgError

type GpgError struct {
	M string
}

func ErrorToGpgError

func ErrorToGpgError(e error) GpgError

func (GpgError) Error

func (e GpgError) Error() string

type GpgFingerprinter

type GpgFingerprinter interface {
	SetFingerprint(pgp *PGPFingerprint)
}

type GpgIndexElement

type GpgIndexElement interface {
	ToKey() *GpgPrimaryKey
}

type GpgIndexError

type GpgIndexError struct {
	// contains filtered or unexported fields
}

func ErrorToGpgIndexError

func ErrorToGpgIndexError(l int, e error) GpgIndexError

func (GpgIndexError) Error

func (e GpgIndexError) Error() string

type GpgIndexLine

type GpgIndexLine struct {
	// contains filtered or unexported fields
}

func ParseLine

func ParseLine(s string, i int) (ret *GpgIndexLine, err error)

func (GpgIndexLine) At

func (g GpgIndexLine) At(i int) string

func (GpgIndexLine) IsNewKey

func (g GpgIndexLine) IsNewKey() bool

func (GpgIndexLine) Len

func (g GpgIndexLine) Len() int

type GpgIndexParser

type GpgIndexParser struct {
	// contains filtered or unexported fields
}

func NewGpgIndexParser

func NewGpgIndexParser() *GpgIndexParser

func (*GpgIndexParser) GetLine

func (p *GpgIndexParser) GetLine() (ret *GpgIndexLine, err error)

func (*GpgIndexParser) Parse

func (p *GpgIndexParser) Parse(stream io.Reader) (ki *GpgKeyIndex, err error)

func (*GpgIndexParser) ParseElement

func (p *GpgIndexParser) ParseElement() (ret GpgIndexElement, err error)

func (*GpgIndexParser) ParseKey

func (p *GpgIndexParser) ParseKey(l *GpgIndexLine) (ret *GpgPrimaryKey, err error)

func (*GpgIndexParser) PutbackLine

func (p *GpgIndexParser) PutbackLine(line *GpgIndexLine)

func (*GpgIndexParser) Warn

func (p *GpgIndexParser) Warn(w Warning)

type GpgKeyIndex

type GpgKeyIndex struct {
	Keys                        []*GpgPrimaryKey
	Emails, Fingerprints, ID64s *BucketDict
}

func NewGpgKeyIndex

func NewGpgKeyIndex() *GpgKeyIndex

func (*GpgKeyIndex) AllFingerprints

func (ki *GpgKeyIndex) AllFingerprints() []PGPFingerprint

func (*GpgKeyIndex) GetRowFunc

func (ki *GpgKeyIndex) GetRowFunc() func() []string

func (*GpgKeyIndex) IndexKey

func (ki *GpgKeyIndex) IndexKey(k *GpgPrimaryKey)

func (*GpgKeyIndex) Len

func (ki *GpgKeyIndex) Len() int

func (*GpgKeyIndex) Less

func (ki *GpgKeyIndex) Less(i, j int) bool

func (*GpgKeyIndex) PushElement

func (ki *GpgKeyIndex) PushElement(e GpgIndexElement)

func (*GpgKeyIndex) Sort

func (ki *GpgKeyIndex) Sort()

func (*GpgKeyIndex) Swap

func (ki *GpgKeyIndex) Swap(i, j int)

type GpgPrimaryKey

type GpgPrimaryKey struct {
	GpgBaseKey
	// contains filtered or unexported fields
}

func NewGpgPrimaryKey

func NewGpgPrimaryKey() *GpgPrimaryKey

func ParseGpgPrimaryKey

func ParseGpgPrimaryKey(l *GpgIndexLine) (key *GpgPrimaryKey, err error)

func (*GpgPrimaryKey) AddFingerprint

func (k *GpgPrimaryKey) AddFingerprint(l *GpgIndexLine) (err error)

func (*GpgPrimaryKey) AddLine

func (k *GpgPrimaryKey) AddLine(l *GpgIndexLine) (err error)

func (*GpgPrimaryKey) AddSubkey

func (k *GpgPrimaryKey) AddSubkey(l *GpgIndexLine) (err error)

func (*GpgPrimaryKey) AddUID

func (k *GpgPrimaryKey) AddUID(l *GpgIndexLine) (err error)

func (*GpgPrimaryKey) GetAllID64s

func (k *GpgPrimaryKey) GetAllID64s() []string

func (*GpgPrimaryKey) GetEmails

func (k *GpgPrimaryKey) GetEmails() []string

func (*GpgPrimaryKey) GetFingerprint

func (k *GpgPrimaryKey) GetFingerprint() *PGPFingerprint

func (*GpgPrimaryKey) GetPGPIdentities

func (k *GpgPrimaryKey) GetPGPIdentities() []keybase1.PGPIdentity

func (*GpgPrimaryKey) IsValid

func (k *GpgPrimaryKey) IsValid() bool

func (*GpgPrimaryKey) Parse

func (k *GpgPrimaryKey) Parse(l *GpgIndexLine) error

func (*GpgPrimaryKey) ToKey

func (k *GpgPrimaryKey) ToKey() *GpgPrimaryKey

func (*GpgPrimaryKey) ToRow

func (k *GpgPrimaryKey) ToRow(i int) []string

type GpgSubKey

type GpgSubKey struct {
	GpgBaseKey
}

func ParseGpgSubKey

func ParseGpgSubKey(l *GpgIndexLine) (sk *GpgSubKey, err error)

type HTTPArgs

type HTTPArgs map[string]HTTPValue

func HTTPArgsFromKeyValuePair

func HTTPArgsFromKeyValuePair(key string, val HTTPValue) HTTPArgs

func NewHTTPArgs

func NewHTTPArgs() HTTPArgs

func (*HTTPArgs) Add

func (a *HTTPArgs) Add(s string, v HTTPValue)

func (HTTPArgs) EncodeToString

func (a HTTPArgs) EncodeToString() string

func (HTTPArgs) ToValues

func (a HTTPArgs) ToValues() url.Values

type HTTPRequest

type HTTPRequest interface {
	SetEnvironment(env Env)
}

type HTTPValue

type HTTPValue interface {
	String() string
}

func UIDArg

func UIDArg(uid keybase1.UID) HTTPValue

type HackerNewsChecker

type HackerNewsChecker struct {
	// contains filtered or unexported fields
}

func (*HackerNewsChecker) APIBase

func (h *HackerNewsChecker) APIBase() string

func (*HackerNewsChecker) APIURL

func (h *HackerNewsChecker) APIURL() string

func (*HackerNewsChecker) CheckHint

func (h *HackerNewsChecker) CheckHint(hint SigHint) ProofError

func (*HackerNewsChecker) CheckStatus

func (h *HackerNewsChecker) CheckStatus(hint SigHint) ProofError

func (*HackerNewsChecker) GetTorError

func (h *HackerNewsChecker) GetTorError() ProofError

func (*HackerNewsChecker) HumanURL

func (h *HackerNewsChecker) HumanURL() string

func (*HackerNewsChecker) KarmaURL

func (h *HackerNewsChecker) KarmaURL() string

type HackerNewsServiceType

type HackerNewsServiceType struct{ BaseServiceType }

func (HackerNewsServiceType) AllStringKeys

func (t HackerNewsServiceType) AllStringKeys() []string

func (HackerNewsServiceType) CaseSensitiveUsername

func (t HackerNewsServiceType) CaseSensitiveUsername() bool

func (HackerNewsServiceType) CheckProofText

func (t HackerNewsServiceType) CheckProofText(text string, id keybase1.SigID, sig string) (err error)

func (HackerNewsServiceType) CheckUsername

func (t HackerNewsServiceType) CheckUsername(s string) (err error)

func (HackerNewsServiceType) DisplayName

func (t HackerNewsServiceType) DisplayName(un string) string

func (HackerNewsServiceType) GetPrompt

func (t HackerNewsServiceType) GetPrompt() string

func (HackerNewsServiceType) GetProofType

func (t HackerNewsServiceType) GetProofType() string

func (HackerNewsServiceType) GetTypeName

func (t HackerNewsServiceType) GetTypeName() string

func (HackerNewsServiceType) NormalizeUsername

func (t HackerNewsServiceType) NormalizeUsername(s string) (string, error)

HackerNews names are case-sensitive

func (HackerNewsServiceType) PostInstructions

func (t HackerNewsServiceType) PostInstructions(un string) *Markup

func (HackerNewsServiceType) PreProofCheck

func (t HackerNewsServiceType) PreProofCheck(un string) (markup *Markup, err error)

func (HackerNewsServiceType) RecheckProofPosting

func (t HackerNewsServiceType) RecheckProofPosting(tryNumber int, status keybase1.ProofStatus, _ string) (warning *Markup, err error)

func (HackerNewsServiceType) ToChecker

func (t HackerNewsServiceType) ToChecker() Checker

func (HackerNewsServiceType) ToServiceJSON

func (t HackerNewsServiceType) ToServiceJSON(un string) *jsonw.Wrapper

type HashSummer

type HashSummer func() []byte

func ArmoredAttachedSign

func ArmoredAttachedSign(out io.WriteCloser, signed openpgp.Entity, hints *openpgp.FileHints, config *packet.Config) (in io.WriteCloser, h HashSummer, err error)

type HashingWriteCloser

type HashingWriteCloser struct {
	// contains filtered or unexported fields
}

func (HashingWriteCloser) Close

func (h HashingWriteCloser) Close() error

func (HashingWriteCloser) Write

func (h HashingWriteCloser) Write(buf []byte) (int, error)

type HomeFinder

type HomeFinder interface {
	CacheDir() string
	ConfigDir() string
	Home(emptyOk bool) string
	DataDir() string
	RuntimeDir() string
	Normalize(s string) string
	LogDir() string
	ServiceSpawnDir() (string, error)
}

func NewHomeFinder

func NewHomeFinder(appName string, getHome ConfigGetter, osname string, getRunMode RunModeGetter) HomeFinder

type I

type I struct {
	Val int
}

func (I) String

func (i I) String() string

type Identify2Cache

type Identify2Cache struct {
	// contains filtered or unexported fields
}

Identify2Cache stores User objects in memory for a fixed amount of time.

func NewIdentify2Cache

func NewIdentify2Cache(maxAge time.Duration) *Identify2Cache

NewIdentify2Cache creates a Identify2Cache and sets the object max age to maxAge. Once a user is inserted, after maxAge duration passes, the user will be removed from the cache.

func (*Identify2Cache) Get

Get returns a user object. If none exists for uid, it will return nil.

func (*Identify2Cache) Insert

func (c *Identify2Cache) Insert(up *keybase1.UserPlusKeys) error

Insert adds a user to the cache, keyed on UID.

func (*Identify2Cache) Shutdown

func (c *Identify2Cache) Shutdown()

Shutdown stops any goroutines in the cache.

type Identify2Cacher

type Identify2Cacher interface {
	Get(keybase1.UID, GetCheckTimeFunc, time.Duration) (*keybase1.UserPlusKeys, error)
	Insert(up *keybase1.UserPlusKeys) error
	Shutdown()
}

type IdentifyDidNotCompleteError

type IdentifyDidNotCompleteError struct{}

func (IdentifyDidNotCompleteError) Error

func (IdentifyDidNotCompleteError) ToStatus

type IdentifyFailedError

type IdentifyFailedError struct {
	Assertion string
	Reason    string
}

func (IdentifyFailedError) Error

func (e IdentifyFailedError) Error() string

func (IdentifyFailedError) ToStatus

func (e IdentifyFailedError) ToStatus() keybase1.Status

type IdentifyOutcome

type IdentifyOutcome struct {
	Username       string
	Error          error
	KeyDiffs       []TrackDiff
	Revoked        []TrackDiffRevoked
	RevokedDetails []keybase1.RevokedProof
	ProofChecks    []*LinkCheckResult
	Warnings       []Warning
	TrackUsed      *TrackLookup
	TrackEqual     bool // Whether the track statement was equal to what we saw
	TrackOptions   keybase1.TrackOptions
	Reason         keybase1.IdentifyReason
}

func NewIdentifyOutcome

func NewIdentifyOutcome() *IdentifyOutcome

func NewIdentifyOutcomeWithUsername

func NewIdentifyOutcomeWithUsername(u string) *IdentifyOutcome

func (*IdentifyOutcome) ActiveProofs

func (i *IdentifyOutcome) ActiveProofs() []RemoteProofChainLink

func (*IdentifyOutcome) AddProofsToSet

func (i *IdentifyOutcome) AddProofsToSet(existing *ProofSet, okStates []keybase1.ProofState)

func (*IdentifyOutcome) Export

func (IdentifyOutcome) ExportToUncheckedIdentity

func (ir IdentifyOutcome) ExportToUncheckedIdentity() *keybase1.Identity

func (IdentifyOutcome) GetError

func (i IdentifyOutcome) GetError() error

func (IdentifyOutcome) GetErrorAndWarnings

func (i IdentifyOutcome) GetErrorAndWarnings(strict bool) (warnings Warnings, err error)

func (IdentifyOutcome) GetErrorLax

func (i IdentifyOutcome) GetErrorLax() (Warnings, error)

func (IdentifyOutcome) IsOK

func (i IdentifyOutcome) IsOK() bool

func (IdentifyOutcome) NumProofFailures

func (i IdentifyOutcome) NumProofFailures() int

The number of proofs that failed.

func (IdentifyOutcome) NumProofSuccesses

func (i IdentifyOutcome) NumProofSuccesses() int

The number of proofs that actually worked

func (IdentifyOutcome) NumRevoked

func (i IdentifyOutcome) NumRevoked() int

Revoked proofs are those we used to look for but are gone!

func (IdentifyOutcome) NumTrackChanges

func (i IdentifyOutcome) NumTrackChanges() int

A "Track Change" isn't necessary a failure, maybe they upgraded a proof from HTTP to HTTPS. But we still should retrack if we can.

func (IdentifyOutcome) NumTrackFailures

func (i IdentifyOutcome) NumTrackFailures() int

A "Track Failure" is when we previously tracked this user, and some aspect of their proof changed. Like their key changed, or they changed Twitter names

func (*IdentifyOutcome) ProofChecksSorted

func (i *IdentifyOutcome) ProofChecksSorted() []*LinkCheckResult

func (*IdentifyOutcome) TrackSet

func (i *IdentifyOutcome) TrackSet() *TrackSet

func (IdentifyOutcome) TrackStatus

func (i IdentifyOutcome) TrackStatus() keybase1.TrackStatus

func (IdentifyOutcome) TrackingStatement

func (i IdentifyOutcome) TrackingStatement() *jsonw.Wrapper

type IdentifyState

type IdentifyState struct {
	// contains filtered or unexported fields
}

func NewIdentifyState

func NewIdentifyState(res *IdentifyOutcome, u *User) IdentifyState

func (IdentifyState) ExportToUncheckedIdentity

func (is IdentifyState) ExportToUncheckedIdentity() *keybase1.Identity

func (*IdentifyState) HasPreviousTrack

func (s *IdentifyState) HasPreviousTrack() bool

func (*IdentifyState) Precompute

func (s *IdentifyState) Precompute(dhook func(keybase1.IdentifyKey))

func (*IdentifyState) Result

func (s *IdentifyState) Result() *IdentifyOutcome

func (*IdentifyState) SetTmpTrackLookup

func (s *IdentifyState) SetTmpTrackLookup(t *TrackChainLink)

func (*IdentifyState) SetTrackLookup

func (s *IdentifyState) SetTrackLookup(t *TrackChainLink)

func (*IdentifyState) TrackLookup

func (s *IdentifyState) TrackLookup() *TrackLookup

type IdentifyTimeoutError

type IdentifyTimeoutError struct{}

func (IdentifyTimeoutError) Error

func (e IdentifyTimeoutError) Error() string

func (IdentifyTimeoutError) ToStatus

func (e IdentifyTimeoutError) ToStatus() keybase1.Status

type IdentifyUI

type IdentifyUI interface {
	Start(string, keybase1.IdentifyReason)
	FinishWebProofCheck(keybase1.RemoteProof, keybase1.LinkCheckResult)
	FinishSocialProofCheck(keybase1.RemoteProof, keybase1.LinkCheckResult)
	Confirm(*keybase1.IdentifyOutcome) (keybase1.ConfirmResult, error)
	DisplayCryptocurrency(keybase1.Cryptocurrency)
	DisplayKey(keybase1.IdentifyKey)
	ReportLastTrack(*keybase1.TrackSummary)
	LaunchNetworkChecks(*keybase1.Identity, *keybase1.User)
	DisplayTrackStatement(string) error
	DisplayUserCard(keybase1.UserCard)
	ReportTrackToken(keybase1.TrackToken) error
	Finish()
}

type Identities

type Identities []Identity

func ImportPGPIdentities

func ImportPGPIdentities(ids []keybase1.PGPIdentity) (ret Identities)

func (Identities) Export

func (ids Identities) Export() (res []keybase1.PGPIdentity)

type Identity

type Identity struct {
	Username string
	Comment  string
	Email    string
}

func ImportPGPIdentity

func ImportPGPIdentity(arg keybase1.PGPIdentity) (ret Identity)

func KeybaseIdentity

func KeybaseIdentity(un NormalizedUsername) Identity

func ParseIdentity

func ParseIdentity(s string) (*Identity, error)

func (Identity) Export

func (id Identity) Export() (ret keybase1.PGPIdentity)

func (Identity) Format

func (i Identity) Format() string

func (Identity) String

func (i Identity) String() string

func (Identity) ToPGPUserID

func (i Identity) ToPGPUserID() *packet.UserId

type IdentityTable

type IdentityTable struct {
	Contextified

	Order []TypedChainLink
	// contains filtered or unexported fields
}

func NewIdentityTable

func NewIdentityTable(g *GlobalContext, eldest keybase1.KID, sc *SigChain, h *SigHints) (*IdentityTable, error)

func (*IdentityTable) ActiveCryptocurrency

func (idt *IdentityTable) ActiveCryptocurrency() *CryptocurrencyChainLink

func (*IdentityTable) ComputeRemoteDiff

func (idt *IdentityTable) ComputeRemoteDiff(tracked, trackedTmp, observed keybase1.ProofState) (ret TrackDiff)

ComputeRemoteDiff takes as input three tracking results: the permanent track, the local temporary track, and the one it observed remotely. It favors the permenant track but will roll back to the temporary track if needs be.

func (*IdentityTable) GetActiveProofsFor

func (idt *IdentityTable) GetActiveProofsFor(st ServiceType) (ret []RemoteProofChainLink)

func (*IdentityTable) GetRevokedCryptocurrencyForTesting

func (idt *IdentityTable) GetRevokedCryptocurrencyForTesting() []CryptocurrencyChainLink

func (*IdentityTable) GetTrackList

func (idt *IdentityTable) GetTrackList() (ret []*TrackChainLink)

func (*IdentityTable) GetTrackMap

func (idt *IdentityTable) GetTrackMap() map[string][]*TrackChainLink

func (*IdentityTable) Identify

func (idt *IdentityTable) Identify(is IdentifyState, forceRemoteCheck bool, ui IdentifyUI, ccl CheckCompletedListener)

func (*IdentityTable) Len

func (idt *IdentityTable) Len() int

func (*IdentityTable) MarkCheckResult

func (idt *IdentityTable) MarkCheckResult(err ProofError)

func (*IdentityTable) TrackChainLinkFor

func (idt *IdentityTable) TrackChainLinkFor(username string, uid keybase1.UID) (*TrackChainLink, error)

func (*IdentityTable) VerifySelfSig

func (idt *IdentityTable) VerifySelfSig(nun NormalizedUsername, uid keybase1.UID) bool

type InactiveKeyError

type InactiveKeyError struct {
	// contains filtered or unexported fields
}

func (InactiveKeyError) Error

func (i InactiveKeyError) Error() string

type InputCanceledError

type InputCanceledError struct{}

func (InputCanceledError) Error

func (e InputCanceledError) Error() string

func (InputCanceledError) ToStatus

func (e InputCanceledError) ToStatus() (s keybase1.Status)

type InsufficientKarmaError

type InsufficientKarmaError struct {
	// contains filtered or unexported fields
}

func (InsufficientKarmaError) Error

func (e InsufficientKarmaError) Error() string

type InternalAPIEngine

type InternalAPIEngine struct {
	BaseAPIEngine
}

func NewInternalAPIEngine

func NewInternalAPIEngine(g *GlobalContext) (*InternalAPIEngine, error)

NewInternalAPIEngine makes an API engine for internally querying the keybase API server

func (*InternalAPIEngine) DoRequest

func (a *InternalAPIEngine) DoRequest(arg APIArg, req *http.Request) (*APIRes, error)

func (*InternalAPIEngine) Get

func (a *InternalAPIEngine) Get(arg APIArg) (*APIRes, error)

func (*InternalAPIEngine) GetDecode

func (a *InternalAPIEngine) GetDecode(arg APIArg, v APIResponseWrapper) error

GetDecode performs a GET request and decodes the response via JSON into the value pointed to by v.

func (*InternalAPIEngine) GetResp

func (a *InternalAPIEngine) GetResp(arg APIArg) (*http.Response, error)

GetResp performs a GET request and returns the http response. The returned response, if non-nil, should have DiscardAndCloseBody() called on it.

func (*InternalAPIEngine) Post

func (a *InternalAPIEngine) Post(arg APIArg) (*APIRes, error)

func (*InternalAPIEngine) PostDecode

func (a *InternalAPIEngine) PostDecode(arg APIArg, v APIResponseWrapper) error

func (*InternalAPIEngine) PostJSON

func (a *InternalAPIEngine) PostJSON(arg APIArg) (*APIRes, error)

func (*InternalAPIEngine) PostRaw

func (a *InternalAPIEngine) PostRaw(arg APIArg, ctype string, r io.Reader) (*APIRes, error)

func (*InternalAPIEngine) PostResp

func (a *InternalAPIEngine) PostResp(arg APIArg) (*http.Response, error)

PostResp performs a POST request and returns the http response. The returned response, if non-nil, should have DiscardAndCloseBody() called on it.

type InternalError

type InternalError struct {
	Msg string
}

func (InternalError) Error

func (e InternalError) Error() string

type InvalidArgumentError

type InvalidArgumentError struct {
	Msg string
}

func (InvalidArgumentError) Error

func (e InvalidArgumentError) Error() string

type InvalidHostnameError

type InvalidHostnameError struct {
	// contains filtered or unexported fields
}

func (InvalidHostnameError) Error

func (e InvalidHostnameError) Error() string

type InvalidKexPhraseError

type InvalidKexPhraseError struct{}

func (InvalidKexPhraseError) Error

func (e InvalidKexPhraseError) Error() string

func (InvalidKexPhraseError) ToStatus

func (e InvalidKexPhraseError) ToStatus() keybase1.Status

type InviteRequestArg

type InviteRequestArg struct {
	Email    string
	Fullname string
	Notes    string
}

type JSONConfigFile

type JSONConfigFile struct {
	*JSONFile
	// contains filtered or unexported fields
}

func NewJSONConfigFile

func NewJSONConfigFile(g *GlobalContext, s string) *JSONConfigFile

func (JSONConfigFile) Check

func (f JSONConfigFile) Check() error

Check looks inside the JSON file to see if any fields are poorly specified

func (*JSONConfigFile) DeleteAtPath

func (f *JSONConfigFile) DeleteAtPath(p string)

func (JSONConfigFile) GetAPITimeout

func (f JSONConfigFile) GetAPITimeout() (time.Duration, bool)

func (JSONConfigFile) GetAllUsernames

func (f JSONConfigFile) GetAllUsernames() (current NormalizedUsername, others []NormalizedUsername, err error)

func (JSONConfigFile) GetAppStartMode

func (f JSONConfigFile) GetAppStartMode() AppStartMode

func (JSONConfigFile) GetAutoFork

func (f JSONConfigFile) GetAutoFork() (bool, bool)

func (JSONConfigFile) GetBoolAtPath

func (f JSONConfigFile) GetBoolAtPath(p string) (ret bool, isSet bool)

func (JSONConfigFile) GetBundledCA

func (f JSONConfigFile) GetBundledCA(host string) (ret string)

func (JSONConfigFile) GetCodeSigningKIDs

func (f JSONConfigFile) GetCodeSigningKIDs() []string

func (JSONConfigFile) GetConfigFilename

func (f JSONConfigFile) GetConfigFilename() string

func (JSONConfigFile) GetDbFilename

func (f JSONConfigFile) GetDbFilename() string

func (JSONConfigFile) GetDebug

func (f JSONConfigFile) GetDebug() (bool, bool)

func (JSONConfigFile) GetDeviceID

func (f JSONConfigFile) GetDeviceID() (ret keybase1.DeviceID)

func (JSONConfigFile) GetDurationAtPath

func (f JSONConfigFile) GetDurationAtPath(p string) (time.Duration, bool)

func (JSONConfigFile) GetFilename

func (f JSONConfigFile) GetFilename() string

func (JSONConfigFile) GetGpg

func (f JSONConfigFile) GetGpg() string

func (JSONConfigFile) GetGpgHome

func (f JSONConfigFile) GetGpgHome() (ret string)

func (JSONConfigFile) GetGpgOptions

func (f JSONConfigFile) GetGpgOptions() []string

func (JSONConfigFile) GetHome

func (f JSONConfigFile) GetHome() string

func (JSONConfigFile) GetIntAtPath

func (f JSONConfigFile) GetIntAtPath(p string) (ret int, isSet bool)

func (JSONConfigFile) GetInterfaceAtPath

func (f JSONConfigFile) GetInterfaceAtPath(p string) (i interface{}, err error)

func (JSONConfigFile) GetLinkCacheCleanDur

func (f JSONConfigFile) GetLinkCacheCleanDur() (time.Duration, bool)

func (JSONConfigFile) GetLinkCacheSize

func (f JSONConfigFile) GetLinkCacheSize() (int, bool)

func (JSONConfigFile) GetLocalRPCDebug

func (f JSONConfigFile) GetLocalRPCDebug() string

func (JSONConfigFile) GetLocalTrackMaxAge

func (f JSONConfigFile) GetLocalTrackMaxAge() (time.Duration, bool)

func (JSONConfigFile) GetLogFile

func (f JSONConfigFile) GetLogFile() string

func (JSONConfigFile) GetLogFormat

func (f JSONConfigFile) GetLogFormat() string

func (JSONConfigFile) GetMerkleKIDs

func (f JSONConfigFile) GetMerkleKIDs() []string

func (JSONConfigFile) GetNoPinentry

func (f JSONConfigFile) GetNoPinentry() (bool, bool)

func (JSONConfigFile) GetNullAtPath

func (f JSONConfigFile) GetNullAtPath(p string) (isSet bool)

func (JSONConfigFile) GetPidFile

func (f JSONConfigFile) GetPidFile() string

func (JSONConfigFile) GetPinentry

func (f JSONConfigFile) GetPinentry() string

func (JSONConfigFile) GetProofCacheLongDur

func (f JSONConfigFile) GetProofCacheLongDur() (time.Duration, bool)

func (JSONConfigFile) GetProofCacheMediumDur

func (f JSONConfigFile) GetProofCacheMediumDur() (time.Duration, bool)

func (JSONConfigFile) GetProofCacheShortDur

func (f JSONConfigFile) GetProofCacheShortDur() (time.Duration, bool)

func (JSONConfigFile) GetProofCacheSize

func (f JSONConfigFile) GetProofCacheSize() (int, bool)

func (JSONConfigFile) GetProxy

func (f JSONConfigFile) GetProxy() string

func (JSONConfigFile) GetProxyCACerts

func (f JSONConfigFile) GetProxyCACerts() (ret []string, err error)

func (JSONConfigFile) GetRunMode

func (f JSONConfigFile) GetRunMode() (RunMode, error)

func (JSONConfigFile) GetSalt

func (f JSONConfigFile) GetSalt() (ret []byte)

func (JSONConfigFile) GetScraperTimeout

func (f JSONConfigFile) GetScraperTimeout() (time.Duration, bool)

func (JSONConfigFile) GetSecretKeyringTemplate

func (f JSONConfigFile) GetSecretKeyringTemplate() string

func (JSONConfigFile) GetSecurityAccessGroupOverride

func (f JSONConfigFile) GetSecurityAccessGroupOverride() (bool, bool)

func (JSONConfigFile) GetServerURI

func (f JSONConfigFile) GetServerURI() string

func (JSONConfigFile) GetSessionFilename

func (f JSONConfigFile) GetSessionFilename() string

func (JSONConfigFile) GetSocketFile

func (f JSONConfigFile) GetSocketFile() string

func (JSONConfigFile) GetStandalone

func (f JSONConfigFile) GetStandalone() (bool, bool)

func (JSONConfigFile) GetStringAtPath

func (f JSONConfigFile) GetStringAtPath(p string) (ret string, isSet bool)

func (JSONConfigFile) GetTimeAtPath

func (f JSONConfigFile) GetTimeAtPath(path string) keybase1.Time

func (JSONConfigFile) GetTimers

func (f JSONConfigFile) GetTimers() string

func (JSONConfigFile) GetTopLevelBool

func (f JSONConfigFile) GetTopLevelBool(s string) (res, isSet bool)

func (JSONConfigFile) GetTopLevelString

func (f JSONConfigFile) GetTopLevelString(s string) (ret string)

func (JSONConfigFile) GetTorHiddenAddress

func (f JSONConfigFile) GetTorHiddenAddress() string

func (JSONConfigFile) GetTorMode

func (f JSONConfigFile) GetTorMode() (ret TorMode, err error)

func (JSONConfigFile) GetTorProxy

func (f JSONConfigFile) GetTorProxy() string

func (JSONConfigFile) GetUID

func (f JSONConfigFile) GetUID() (ret keybase1.UID)

func (JSONConfigFile) GetUpdateLastChecked

func (f JSONConfigFile) GetUpdateLastChecked() keybase1.Time

func (JSONConfigFile) GetUpdatePreferenceAuto

func (f JSONConfigFile) GetUpdatePreferenceAuto() (bool, bool)

func (JSONConfigFile) GetUpdatePreferenceSkip

func (f JSONConfigFile) GetUpdatePreferenceSkip() string

func (JSONConfigFile) GetUpdatePreferenceSnoozeUntil

func (f JSONConfigFile) GetUpdatePreferenceSnoozeUntil() keybase1.Time

func (JSONConfigFile) GetUpdateURL

func (f JSONConfigFile) GetUpdateURL() string

func (JSONConfigFile) GetUserCacheMaxAge

func (f JSONConfigFile) GetUserCacheMaxAge() (time.Duration, bool)

func (JSONConfigFile) GetUserConfig

func (f JSONConfigFile) GetUserConfig() (*UserConfig, error)

func (JSONConfigFile) GetUserConfigForUsername

func (f JSONConfigFile) GetUserConfigForUsername(nu NormalizedUsername) (*UserConfig, error)

GetUserConfigForUsername sees if there's a UserConfig object for the given username previously stored.

func (JSONConfigFile) GetUsername

func (f JSONConfigFile) GetUsername() (ret NormalizedUsername)

func (JSONConfigFile) GetVDebugSetting

func (f JSONConfigFile) GetVDebugSetting() string

func (JSONConfigFile) IsAdmin

func (f JSONConfigFile) IsAdmin() (bool, bool)

func (*JSONConfigFile) NukeUser

func (f *JSONConfigFile) NukeUser(nu NormalizedUsername) error

func (*JSONConfigFile) Reset

func (f *JSONConfigFile) Reset()

func (*JSONConfigFile) SetBoolAtPath

func (f *JSONConfigFile) SetBoolAtPath(p string, v bool) error

func (*JSONConfigFile) SetDeviceID

func (f *JSONConfigFile) SetDeviceID(did keybase1.DeviceID) (err error)

SetDeviceID sets the device field of the UserConfig object

func (*JSONConfigFile) SetInt64AtPath

func (f *JSONConfigFile) SetInt64AtPath(p string, v int64) error

func (*JSONConfigFile) SetIntAtPath

func (f *JSONConfigFile) SetIntAtPath(p string, v int) error

func (*JSONConfigFile) SetNullAtPath

func (f *JSONConfigFile) SetNullAtPath(p string) (err error)

func (*JSONConfigFile) SetStringAtPath

func (f *JSONConfigFile) SetStringAtPath(p string, v string) error

func (*JSONConfigFile) SetTimeAtPath

func (f *JSONConfigFile) SetTimeAtPath(path string, t keybase1.Time) error

func (*JSONConfigFile) SetUpdateLastChecked

func (f *JSONConfigFile) SetUpdateLastChecked(t keybase1.Time) error

func (*JSONConfigFile) SetUpdatePreferenceAuto

func (f *JSONConfigFile) SetUpdatePreferenceAuto(b bool) error

func (*JSONConfigFile) SetUpdatePreferenceSkip

func (f *JSONConfigFile) SetUpdatePreferenceSkip(v string) error

func (*JSONConfigFile) SetUpdatePreferenceSnoozeUntil

func (f *JSONConfigFile) SetUpdatePreferenceSnoozeUntil(t keybase1.Time) error

func (*JSONConfigFile) SetUserConfig

func (f *JSONConfigFile) SetUserConfig(u *UserConfig, overwrite bool) error

SetUserConfig writes this UserConfig to the config file and updates the currently active UserConfig in memory. If the given UserConfig is nil, then just empty everything out and clear the `current_user` field. Note that we never actually overwrite users.<username>, we just write it if it doesn't already exist, and we update the `current_user` pointer.

func (*JSONConfigFile) SetWrapperAtPath

func (f *JSONConfigFile) SetWrapperAtPath(p string, w *jsonw.Wrapper) error

func (*JSONConfigFile) SwitchUser

func (f *JSONConfigFile) SwitchUser(nu NormalizedUsername) error

type JSONFile

type JSONFile struct {
	Contextified
	// contains filtered or unexported fields
}

func NewJSONFile

func NewJSONFile(g *GlobalContext, filename, which string) *JSONFile

func (*JSONFile) BeginTransaction

func (f *JSONFile) BeginTransaction() (ConfigWriterTransacter, error)

func (*JSONFile) Exists

func (f *JSONFile) Exists() bool

func (*JSONFile) GetWrapper

func (f *JSONFile) GetWrapper() *jsonw.Wrapper

func (*JSONFile) Load

func (f *JSONFile) Load(warnOnNotFound bool) error

func (*JSONFile) Nuke

func (f *JSONFile) Nuke() error

func (*JSONFile) Save

func (f *JSONFile) Save() error

type JSONLocalDb

type JSONLocalDb struct {
	// contains filtered or unexported fields
}

func NewJSONLocalDb

func NewJSONLocalDb(e LocalDb) *JSONLocalDb

func (*JSONLocalDb) Close

func (j *JSONLocalDb) Close() error

func (*JSONLocalDb) Delete

func (j *JSONLocalDb) Delete(id DbKey) error

func (*JSONLocalDb) ForceOpen

func (j *JSONLocalDb) ForceOpen() error

func (*JSONLocalDb) Get

func (j *JSONLocalDb) Get(id DbKey) (*jsonw.Wrapper, error)

func (*JSONLocalDb) GetInto

func (j *JSONLocalDb) GetInto(obj interface{}, id DbKey) (found bool, err error)

func (*JSONLocalDb) Lookup

func (j *JSONLocalDb) Lookup(id DbKey) (*jsonw.Wrapper, error)

func (*JSONLocalDb) Nuke

func (j *JSONLocalDb) Nuke() (string, error)

func (*JSONLocalDb) Open

func (j *JSONLocalDb) Open() error

func (*JSONLocalDb) Put

func (j *JSONLocalDb) Put(id DbKey, aliases []DbKey, val *jsonw.Wrapper) error

func (*JSONLocalDb) PutObj

func (j *JSONLocalDb) PutObj(id DbKey, aliases []DbKey, obj interface{}) (err error)

type JSONPayload

type JSONPayload map[string]interface{}

type Kex2Secret

type Kex2Secret struct {
	// contains filtered or unexported fields
}

func NewKex2Secret

func NewKex2Secret() (*Kex2Secret, error)

func NewKex2SecretFromPhrase

func NewKex2SecretFromPhrase(phrase string) (*Kex2Secret, error)

func (*Kex2Secret) Phrase

func (s *Kex2Secret) Phrase() string

func (*Kex2Secret) Secret

func (s *Kex2Secret) Secret() kex2.Secret

type KexRole

type KexRole int
const (
	KexRoleProvisioner KexRole = iota
	KexRoleProvisionee
)

type KexRouter

type KexRouter struct {
	Contextified
}

KexRouter implements the kex2.MessageRouter interface.

func NewKexRouter

func NewKexRouter(g *GlobalContext) *KexRouter

NewKexRouter creates a contextified KexRouter.

func (*KexRouter) Get

func (k *KexRouter) Get(sessID kex2.SessionID, receiver kex2.DeviceID, low kex2.Seqno, poll time.Duration) (msgs [][]byte, err error)

Get implements Get in the kex2.MessageRouter interface.

func (*KexRouter) Post

func (k *KexRouter) Post(sessID kex2.SessionID, sender kex2.DeviceID, seqno kex2.Seqno, msg []byte) (err error)

Post implements Post in the kex2.MessageRouter interface.

type KeyCannotDecryptError

type KeyCannotDecryptError struct{}

func (KeyCannotDecryptError) Error

func (k KeyCannotDecryptError) Error() string

type KeyCannotEncryptError

type KeyCannotEncryptError struct{}

func (KeyCannotEncryptError) Error

func (k KeyCannotEncryptError) Error() string

type KeyCannotSignError

type KeyCannotSignError struct{}

func (KeyCannotSignError) Error

func (s KeyCannotSignError) Error() string

type KeyCannotVerifyError

type KeyCannotVerifyError struct{}

func (KeyCannotVerifyError) Error

func (k KeyCannotVerifyError) Error() string

type KeyExistsError

type KeyExistsError struct {
	Key *PGPFingerprint
}

func (KeyExistsError) Error

func (k KeyExistsError) Error() string

func (KeyExistsError) ToStatus

func (c KeyExistsError) ToStatus() (s keybase1.Status)

type KeyExpiredError

type KeyExpiredError struct {
	// contains filtered or unexported fields
}

func (KeyExpiredError) Error

func (r KeyExpiredError) Error() string

type KeyFamily

type KeyFamily struct {
	AllKIDs map[keybase1.KID]bool

	// PGP keys have a permissively merged version and individual versions by
	// hash. See the comment in PGPKeySet.addKey, above, for details.
	PGPKeySets map[keybase1.KID]*PGPKeySet
	SingleKeys map[keybase1.KID]GenericKey // Currently just NaCl keys

	BundlesForTesting []string

	Contextified
	// contains filtered or unexported fields
}

Once the client downloads a RawKeyFamily, it converts it into a KeyFamily, which has some additional information about Fingerprints and PGP keys

func ParseKeyFamily

func ParseKeyFamily(g *GlobalContext, jw *jsonw.Wrapper) (ret *KeyFamily, err error)

ParseKeyFamily takes as input a dictionary from a JSON file and returns a parsed version for manipulation in the program.

func (*KeyFamily) LocalDelegate

func (kf *KeyFamily) LocalDelegate(key GenericKey) (err error)

LocalDelegate performs a local key delegation, without the server's permissions. We'll need to do this when a key is locally generated.

type KeyFamilyError

type KeyFamilyError struct {
	Msg string
}

func (KeyFamilyError) Error

func (e KeyFamilyError) Error() string

type KeyGenError

type KeyGenError struct {
	Msg string
}

func (KeyGenError) Error

func (e KeyGenError) Error() string

func (KeyGenError) ToStatus

func (e KeyGenError) ToStatus() (s keybase1.Status)

type KeyRevokedError

type KeyRevokedError struct {
	// contains filtered or unexported fields
}

func (KeyRevokedError) Error

func (r KeyRevokedError) Error() string

type KeyRole

type KeyRole int
const (
	DLGNone KeyRole = iota
	DLGSibkey
	DLGSubkey
)

type KeySection

type KeySection struct {
	Key            GenericKey
	EldestKID      keybase1.KID
	ParentKID      keybase1.KID
	HasRevSig      bool
	RevSig         string
	SigningUser    UserBasic
	IncludePGPHash bool
}

func (KeySection) ToJSON

func (arg KeySection) ToJSON() (*jsonw.Wrapper, error)

type KeyStatus

type KeyStatus int
const (
	KeyUncancelled KeyStatus = iota
	KeyRevoked
	KeyDeleted
	KeySuperseded
)

type KeyType

type KeyType int

type KeyUnimplementedError

type KeyUnimplementedError struct{}

func (KeyUnimplementedError) Error

func (k KeyUnimplementedError) Error() string

type KeyUnlocker

type KeyUnlocker struct {
	Tries          int
	Reason         string
	KeyDesc        string
	Which          string
	UseSecretStore bool
	UI             SecretUI
	Unlocker       func(pw string, storeSecret bool) (ret GenericKey, err error)
}

func (KeyUnlocker) Run

func (arg KeyUnlocker) Run() (ret GenericKey, err error)

type KeyVersionError

type KeyVersionError struct{}

func (KeyVersionError) Error

func (k KeyVersionError) Error() string

type KeybasePacket

type KeybasePacket struct {
	Body    interface{}        `codec:"body"`
	Hash    *KeybasePacketHash `codec:"hash,omitempty"`
	Tag     int                `codec:"tag"`
	Version int                `codec:"version"`
}

func DecodeArmoredPacket

func DecodeArmoredPacket(s string) (*KeybasePacket, error)

func DecodePacket

func DecodePacket(data []byte) (ret *KeybasePacket, err error)

func (*KeybasePacket) ArmoredEncode

func (p *KeybasePacket) ArmoredEncode() (ret string, err error)

func (*KeybasePacket) Encode

func (p *KeybasePacket) Encode() ([]byte, error)

func (*KeybasePacket) EncodeTo

func (p *KeybasePacket) EncodeTo(w io.Writer) error

func (*KeybasePacket) HashMe

func (p *KeybasePacket) HashMe() error

func (KeybasePacket) ToNaclSigInfo

func (p KeybasePacket) ToNaclSigInfo() (*NaclSigInfo, error)

func (KeybasePacket) ToSKB

func (p KeybasePacket) ToSKB() (*SKB, error)

type KeybasePacketHash

type KeybasePacketHash struct {
	Type  int    `codec:"type"`
	Value []byte `codec:"value"`
}

type KeybasePackets

type KeybasePackets []*KeybasePacket

func DecodePacketsUnchecked

func DecodePacketsUnchecked(reader io.Reader) (ret KeybasePackets, err error)

DecodePacketsUnchecked decodes an array of packets from `reader`. It does *not* check that the stream was canonical msgpack.

func (KeybasePackets) Encode

func (p KeybasePackets) Encode() ([]byte, error)

func (KeybasePackets) EncodeTo

func (p KeybasePackets) EncodeTo(w io.Writer) error

func (KeybasePackets) ToListOfSKBs

func (p KeybasePackets) ToListOfSKBs() ([]*SKB, error)

type KeybaseSaltpackError

type KeybaseSaltpackError struct{}

func (KeybaseSaltpackError) Error

func (e KeybaseSaltpackError) Error() string

type KeybaseTime

type KeybaseTime struct {
	Unix  int64 // UTC wallclock time
	Chain int   // Merkle root chain time
}

We have two notions of time we can use -- standard UTC which might be screwy (skewy) based upon local clock problems; or MerkleRoot seqno, which is totally ordered and all clients and server ought to agree on it. The issue is that we're not uniformly signing Merkle roots into signatures, especially those generated on the Web site.

func NowAsKeybaseTime

func NowAsKeybaseTime(seqno int) *KeybaseTime

NowAsKeybaseTime makes a representation of now. IF we don't know the MerkleTree chain seqno, just use 0

func TclToKeybaseTime

func TclToKeybaseTime(tcl TypedChainLink) *KeybaseTime

TclToKeybaseTime turns a TypedChainLink into a KeybaseTime tuple, looking inside the chainlink for the Unix wallclock and the global MerkleChain seqno.

type KeyringFile

type KeyringFile struct {
	Entities openpgp.EntityList

	Contextified
	// contains filtered or unexported fields
}

func (KeyringFile) GetFilename

func (k KeyringFile) GetFilename() string

func (*KeyringFile) Index

func (k *KeyringFile) Index() error

func (*KeyringFile) Load

func (k *KeyringFile) Load() error

func (*KeyringFile) LoadAndIndex

func (k *KeyringFile) LoadAndIndex() error

func (KeyringFile) Save

func (k KeyringFile) Save() error

func (KeyringFile) WriteTo

func (k KeyringFile) WriteTo(w io.Writer) (int64, error)

type Keyrings

type Keyrings struct {
	Contextified
}

func NewKeyrings

func NewKeyrings(g *GlobalContext) *Keyrings

func (*Keyrings) GetSecretKeyAndSKBWithPrompt

func (k *Keyrings) GetSecretKeyAndSKBWithPrompt(arg SecretKeyPromptArg) (key GenericKey, skb *SKB, err error)

func (*Keyrings) GetSecretKeyLocked

func (k *Keyrings) GetSecretKeyLocked(lctx LoginContext, ska SecretKeyArg) (ret *SKB, which string, err error)

GetSecretKeyLocked gets a secret key for the current user by first looking for keys synced from the server, and if that fails, tries those in the local Keyring that are also active for the user. In any case, the key will be locked.

func (*Keyrings) GetSecretKeyWithPassphrase

func (k *Keyrings) GetSecretKeyWithPassphrase(lctx LoginContext, me *User, passphrase string, secretStorer SecretStorer) (key GenericKey, err error)

func (*Keyrings) GetSecretKeyWithPrompt

func (k *Keyrings) GetSecretKeyWithPrompt(arg SecretKeyPromptArg) (key GenericKey, err error)

TODO: Figure out whether and how to dep-inject the SecretStore.

func (*Keyrings) GetSecretKeyWithStoredSecret

func (k *Keyrings) GetSecretKeyWithStoredSecret(lctx LoginContext, ska SecretKeyArg, me *User, secretRetriever SecretRetriever) (key GenericKey, err error)

func (*Keyrings) GetSecretKeyWithoutPrompt

func (k *Keyrings) GetSecretKeyWithoutPrompt(lctx LoginContext, ska SecretKeyArg) (key GenericKey, err error)

func (*Keyrings) MakeKeyrings

func (k *Keyrings) MakeKeyrings(filenames []string, isPublic bool) []*KeyringFile

type LKSec

type LKSec struct {
	Contextified
	// contains filtered or unexported fields
}

func NewLKSec

func NewLKSec(pps *PassphraseStream, uid keybase1.UID, gc *GlobalContext) *LKSec

func NewLKSecForEncrypt

func NewLKSecForEncrypt(ui SecretUI, uid keybase1.UID, gc *GlobalContext) (ret *LKSec, err error)

NewLKSForEncrypt gets a verified passphrase stream, and returns an LKS that works for encryption.

func NewLKSecWithClientHalf

func NewLKSecWithClientHalf(clientHalf []byte, ppgen PassphraseGeneration, uid keybase1.UID, gc *GlobalContext) *LKSec

func NewLKSecWithFullSecret

func NewLKSecWithFullSecret(secret []byte, uid keybase1.UID, gc *GlobalContext) *LKSec

func (*LKSec) Decrypt

func (s *LKSec) Decrypt(lctx LoginContext, src []byte) (res []byte, gen PassphraseGeneration, err error)

func (*LKSec) Encrypt

func (s *LKSec) Encrypt(src []byte) (res []byte, err error)

func (*LKSec) EncryptClientHalfRecovery

func (s *LKSec) EncryptClientHalfRecovery(key GenericKey) (string, error)

EncryptClientHalfRecovery takes the client half of the LKS secret and encrypts it for the given key. This is for recovery of passphrases on device recovery operations.

func (*LKSec) GenerateServerHalf

func (s *LKSec) GenerateServerHalf() error

func (LKSec) Generation

func (s LKSec) Generation() PassphraseGeneration

Generation returns the passphrase generation that this local key security object is derived from.

func (*LKSec) GetSecret

func (s *LKSec) GetSecret(lctx LoginContext) (secret []byte, err error)

func (*LKSec) GetServerHalf

func (s *LKSec) GetServerHalf() []byte

func (*LKSec) Load

func (s *LKSec) Load(lctx LoginContext) (err error)

func (*LKSec) SetClientHalf

func (s *LKSec) SetClientHalf(b []byte)

func (*LKSec) SetServerHalf

func (s *LKSec) SetServerHalf(b []byte)

func (*LKSec) SetUID

func (s *LKSec) SetUID(u keybase1.UID)

type LevelDb

type LevelDb struct {
	sync.Mutex
	Contextified
	// contains filtered or unexported fields
}

func NewLevelDb

func NewLevelDb(g *GlobalContext) *LevelDb

func (*LevelDb) Close

func (l *LevelDb) Close() error

func (*LevelDb) Delete

func (l *LevelDb) Delete(id DbKey) error

func (*LevelDb) ForceOpen

func (l *LevelDb) ForceOpen() error

ForceOpen opens the leveldb file. This is used in situations where we want to get around the lazy open and make sure we can use it later.

func (*LevelDb) Get

func (l *LevelDb) Get(id DbKey) ([]byte, bool, error)

func (*LevelDb) GetFilename

func (l *LevelDb) GetFilename() string

func (*LevelDb) Lookup

func (l *LevelDb) Lookup(id DbKey) ([]byte, bool, error)

func (*LevelDb) Nuke

func (l *LevelDb) Nuke() (string, error)

func (*LevelDb) Open

func (l *LevelDb) Open() error

Explicit open does nothing we'll wait for a lazy open

func (*LevelDb) Put

func (l *LevelDb) Put(id DbKey, aliases []DbKey, value []byte) error

type Lexer

type Lexer struct {
	// contains filtered or unexported fields
}

func NewLexer

func NewLexer(s string) *Lexer

func (*Lexer) Get

func (lx *Lexer) Get() *Token

func (*Lexer) Putback

func (lx *Lexer) Putback()

type LinkCache

type LinkCache struct {
	// contains filtered or unexported fields
}

LinkCache is a cache of ChainLinks. It is safe to use concurrently.

func NewLinkCache

func NewLinkCache(maxSize int, cleanDur time.Duration) *LinkCache

NewLinkCache creates a LinkCache. When finished using this LinkCache, call Shutdown on it to clean up.

func (*LinkCache) Get

func (c *LinkCache) Get(id LinkID) (link ChainLink, ok bool)

Get retrieves a ChainLink from the cache. If nothing exists for this LinkID, it will return false for ok.

func (*LinkCache) Len

func (c *LinkCache) Len() int

Len returns the number of ChainLinks cached.

func (*LinkCache) Mutate

func (c *LinkCache) Mutate(id LinkID, f func(c *ChainLink))

func (*LinkCache) Put

func (c *LinkCache) Put(id LinkID, link ChainLink)

Put inserts a ChainLink into the cache.

func (*LinkCache) Remove

func (c *LinkCache) Remove(id LinkID)

Remove deletes a ChainLink from the cache.

func (*LinkCache) Shutdown

func (c *LinkCache) Shutdown()

Shutdown terminates the use of this cache.

type LinkCheckResult

type LinkCheckResult struct {
	// contains filtered or unexported fields
}

func (LinkCheckResult) Export

func (LinkCheckResult) ExportToIdentifyRow

func (l LinkCheckResult) ExportToIdentifyRow(i int) keybase1.IdentifyRow

func (LinkCheckResult) GetCached

func (l LinkCheckResult) GetCached() *CheckResult

func (LinkCheckResult) GetDiff

func (l LinkCheckResult) GetDiff() TrackDiff

func (LinkCheckResult) GetError

func (l LinkCheckResult) GetError() error

func (LinkCheckResult) GetHint

func (l LinkCheckResult) GetHint() *SigHint

func (LinkCheckResult) GetPosition

func (l LinkCheckResult) GetPosition() int

func (LinkCheckResult) GetTorWarning

func (l LinkCheckResult) GetTorWarning() bool

type LinkID

type LinkID []byte

func ComputeLinkID

func ComputeLinkID(d []byte) LinkID

func GetLinkID

func GetLinkID(w *jsonw.Wrapper) (LinkID, error)

func LinkIDFromHex

func LinkIDFromHex(s string) (LinkID, error)

func SignJSON

func SignJSON(jw *jsonw.Wrapper, key GenericKey) (out string, id keybase1.SigID, lid LinkID, err error)

SimpleSignJson marshals the given Json structure and then signs it.

func (LinkID) Eq

func (l LinkID) Eq(i2 LinkID) bool

func (*LinkID) MarshalJSON

func (l *LinkID) MarshalJSON() ([]byte, error)

func (LinkID) String

func (l LinkID) String() string

func (*LinkID) UnmarshalJSON

func (l *LinkID) UnmarshalJSON(b []byte) error

type LinkType

type LinkType string

type LoadUserArg

type LoadUserArg struct {
	Contextified
	UID                      keybase1.UID
	Name                     string // Can also be an assertion like foo@twitter
	PublicKeyOptional        bool
	NoCacheResult            bool // currently ignore
	Self                     bool
	ForceReload              bool
	AllKeys                  bool
	LoginContext             LoginContext
	AbortIfSigchainUnchanged bool
	ResolveBody              *jsonw.Wrapper // some load paths plumb this through
}

func NewLoadUserArg

func NewLoadUserArg(g *GlobalContext) LoadUserArg

func NewLoadUserByNameArg

func NewLoadUserByNameArg(g *GlobalContext, name string) LoadUserArg

func NewLoadUserByUIDArg

func NewLoadUserByUIDArg(g *GlobalContext, uid keybase1.UID) LoadUserArg

func NewLoadUserForceArg

func NewLoadUserForceArg(g *GlobalContext) LoadUserArg

func NewLoadUserPubOptionalArg

func NewLoadUserPubOptionalArg(g *GlobalContext) LoadUserArg

type LocalDb

type LocalDb interface {
	Open() error
	ForceOpen() error
	Close() error
	Nuke() (string, error)
	Put(id DbKey, aliases []DbKey, value []byte) error
	Delete(id DbKey) error
	Get(id DbKey) ([]byte, bool, error)
	Lookup(alias DbKey) ([]byte, bool, error)
}

type LockPIDFile

type LockPIDFile struct {
	// contains filtered or unexported fields
}

func NewLockPIDFile

func NewLockPIDFile(s string) *LockPIDFile

func (*LockPIDFile) Close

func (f *LockPIDFile) Close() (err error)

func (*LockPIDFile) Lock

func (f *LockPIDFile) Lock() (err error)

Lock writes the pid to filename after acquiring a lock on the file. When the process exits, the lock will be released.

type LockTable

type LockTable struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*LockTable) AcquireOnName

func (t *LockTable) AcquireOnName(s string) (ret *NamedLock)

type LogUI

type LogUI interface {
	Debug(format string, args ...interface{})
	Info(format string, args ...interface{})
	Warning(format string, args ...interface{})
	Notice(format string, args ...interface{})
	Errorf(format string, args ...interface{})
	Critical(format string, args ...interface{})
}

type LoggedInError

type LoggedInError struct{}

func (LoggedInError) Error

func (e LoggedInError) Error() string

func (LoggedInError) ToStatus

func (e LoggedInError) ToStatus() (s keybase1.Status)

type LoggedInHelper

type LoggedInHelper interface {
	GetUID() keybase1.UID
	LoggedInLoad() (bool, error)
}

type LoggedInWrongUserError

type LoggedInWrongUserError struct {
	ExistingName  NormalizedUsername
	AttemptedName NormalizedUsername
}

func (LoggedInWrongUserError) Error

func (e LoggedInWrongUserError) Error() string

func (LoggedInWrongUserError) ToStatus

func (e LoggedInWrongUserError) ToStatus() (s keybase1.Status)

type LoginContext

type LoginContext interface {
	LoggedInLoad() (bool, error)
	LoggedInProvisionedLoad() (bool, error)
	Logout() error

	CreateStreamCache(tsec *triplesec.Cipher, pps *PassphraseStream)
	CreateStreamCacheViaStretch(passphrase string) error
	PassphraseStreamCache() *PassphraseStreamCache
	ClearStreamCache()
	SetStreamGeneration(gen PassphraseGeneration, nilPPStreamOK bool)
	GetStreamGeneration() PassphraseGeneration

	CreateLoginSessionWithSalt(emailOrUsername string, salt []byte) error
	LoadLoginSession(emailOrUsername string) error
	LoginSession() *LoginSession
	ClearLoginSession()

	LocalSession() *Session
	GetUID() keybase1.UID
	EnsureUsername(username NormalizedUsername)
	SaveState(sessionID, csrf string, username NormalizedUsername, uid keybase1.UID, deviceID keybase1.DeviceID) error

	Keyring() (*SKBKeyringFile, error)
	LockedLocalSecretKey(ska SecretKeyArg) (*SKB, error)

	SecretSyncer() *SecretSyncer
	RunSecretSyncer(uid keybase1.UID) error

	CachedSecretKey(ska SecretKeyArg) (GenericKey, error)
	SetCachedSecretKey(ska SecretKeyArg, key GenericKey) error

	SetLKSec(lksec *LKSec)
}

LoginContext is passed to all loginHandler functions. It allows them safe access to various parts of the LoginState during the login process.

type LoginRequiredError

type LoginRequiredError struct {
	Context string
}

func (LoginRequiredError) Error

func (e LoginRequiredError) Error() string

func (LoginRequiredError) ToStatus

func (u LoginRequiredError) ToStatus() (s keybase1.Status)

type LoginSession

type LoginSession struct {
	Contextified
	// contains filtered or unexported fields
}

func NewLoginSession

func NewLoginSession(emailOrUsername string, g *GlobalContext) *LoginSession

func NewLoginSessionWithSalt

func NewLoginSessionWithSalt(emailOrUsername string, salt []byte, g *GlobalContext) *LoginSession

Upon signup, a login session is created with a generated salt.

func (*LoginSession) Clear

func (s *LoginSession) Clear() error

Clear removes the loginSession value from s. It does not clear the salt. Unclear how this is useful.

func (*LoginSession) Dump

func (s *LoginSession) Dump()

func (*LoginSession) ExistsFor

func (s *LoginSession) ExistsFor(emailOrUsername string) bool

func (*LoginSession) Load

func (s *LoginSession) Load() error

func (*LoginSession) NotExpired

func (s *LoginSession) NotExpired() bool

func (*LoginSession) Salt

func (s *LoginSession) Salt() ([]byte, error)

func (*LoginSession) Session

func (s *LoginSession) Session() ([]byte, error)

func (*LoginSession) SessionEncoded

func (s *LoginSession) SessionEncoded() (string, error)

func (*LoginSession) Status

func (s *LoginSession) Status() *keybase1.SessionStatus

type LoginSessionNotFound

type LoginSessionNotFound struct {
	SessionID int
}

func (LoginSessionNotFound) Error

func (e LoginSessionNotFound) Error() string

type LoginState

type LoginState struct {
	Contextified
	// contains filtered or unexported fields
}

LoginState controls the state of the current user's login session and associated variables. It also serializes access to the various Login functions and requests for the Account object.

func NewLoginState

func NewLoginState(g *GlobalContext) *LoginState

NewLoginState creates a LoginState and starts the request handler goroutine.

func (*LoginState) Account

func (s *LoginState) Account(h acctHandler, name string) error

Account is a convenience function to allow access to LoginState's Account object. For example:

e.G().LoginState().Account(func (a *Account) {
    skb = a.LockedLocalSecretKey(ska)
}, "LockedLocalSecretKey")

func (*LoginState) AccountDump

func (s *LoginState) AccountDump()

func (*LoginState) ExternalFunc

func (s *LoginState) ExternalFunc(f loginHandler, name string) error

ExternalFunc is for having the LoginState handler call a function outside of LoginState. The current use case is for signup, so that no logins/logouts happen while a signup is happening.

func (*LoginState) GetPassphraseStream

func (s *LoginState) GetPassphraseStream(ui SecretUI) (pps *PassphraseStream, err error)

GetPassphraseStream either returns a cached, verified passphrase stream (maybe from a previous login) or generates a new one via Login. It will return the current Passphrase stream on success or an error on failure.

func (*LoginState) GetPassphraseStreamForUser

func (s *LoginState) GetPassphraseStreamForUser(ui SecretUI, username string) (pps *PassphraseStream, err error)

GetPassphraseStreamForUser either returns a cached, verified passphrase stream (maybe from a previous login) or generates a new one via Login. It will return the current Passphrase stream on success or an error on failure.

func (*LoginState) GetPassphraseStreamWithPassphrase

func (s *LoginState) GetPassphraseStreamWithPassphrase(passphrase string) (pps *PassphraseStream, err error)

GetPassphraseStreamWithPassphrase either returns a cached, verified passphrase stream (maybe from a previous login) or generates a new one via Login. It will return the current Passphrase stream on success or an error on failure.

func (*LoginState) GetUID

func (s *LoginState) GetUID() (ret keybase1.UID)

func (*LoginState) GetVerifiedTriplesec

func (s *LoginState) GetVerifiedTriplesec(ui SecretUI) (ret *triplesec.Cipher, gen PassphraseGeneration, err error)

GetVerifiedTripleSec either returns a cached, verified Triplesec or generates a new one that's verified via Login.

func (*LoginState) Keyring

func (s *LoginState) Keyring(h func(*SKBKeyringFile), name string) error

func (*LoginState) LocalSession

func (s *LoginState) LocalSession(h func(*Session), name string) error

func (*LoginState) LoggedIn

func (s *LoginState) LoggedIn() bool

func (*LoginState) LoggedInLoad

func (s *LoginState) LoggedInLoad() (lin bool, err error)

func (*LoginState) LoggedInProvisionedLoad

func (s *LoginState) LoggedInProvisionedLoad() (lin bool, err error)

func (*LoginState) LoginSession

func (s *LoginState) LoginSession(h func(*LoginSession), name string) error

func (*LoginState) LoginWithKey

func (s *LoginState) LoginWithKey(lctx LoginContext, user *User, key GenericKey, after afterFn) (err error)

func (*LoginState) LoginWithPassphrase

func (s *LoginState) LoginWithPassphrase(username, passphrase string, storeSecret bool, after afterFn) (err error)

func (*LoginState) LoginWithPrompt

func (s *LoginState) LoginWithPrompt(username string, loginUI LoginUI, secretUI SecretUI, after afterFn) (err error)

func (*LoginState) LoginWithStoredSecret

func (s *LoginState) LoginWithStoredSecret(username string, after afterFn) (err error)

func (*LoginState) Logout

func (s *LoginState) Logout() error

func (*LoginState) PassphraseStream

func (s *LoginState) PassphraseStream() (*PassphraseStream, error)

func (*LoginState) PassphraseStreamCache

func (s *LoginState) PassphraseStreamCache(h func(*PassphraseStreamCache), name string) error

func (*LoginState) PassphraseStreamGeneration

func (s *LoginState) PassphraseStreamGeneration() (PassphraseGeneration, error)

func (*LoginState) RunSecretSyncer

func (s *LoginState) RunSecretSyncer(uid keybase1.UID) error

func (*LoginState) SecretSyncer

func (s *LoginState) SecretSyncer(h func(*SecretSyncer), name string) error

func (*LoginState) Shutdown

func (s *LoginState) Shutdown() error

func (*LoginState) VerifyEmailAddress

func (s *LoginState) VerifyEmailAddress(email string, secretUI SecretUI, after afterFn) (err error)

func (*LoginState) VerifyPlaintextPassphrase

func (s *LoginState) VerifyPlaintextPassphrase(pp string) (ppStream *PassphraseStream, err error)

VerifyPlaintextPassphrase verifies that the supplied plaintext passphrase is indeed the correct passphrase for the logged in user. This is accomplished via a login request. The side effect will be that we'll retrieve the correct generation number of the current passphrase from the server.

type LoginUI

type LoginUI interface {
	keybase1.LoginUiInterface
}

type LogoutError

type LogoutError struct{}

func (LogoutError) Error

func (e LogoutError) Error() string

type LoopbackAddr

type LoopbackAddr struct{}

LoopbackAddr is an address class that implement the net.Addr interface for loopback devices

func (LoopbackAddr) Network

func (la LoopbackAddr) Network() (s string)

Network returns the name of the network

func (LoopbackAddr) String

func (la LoopbackAddr) String() (s string)

String returns the string form of address

type LoopbackConn

type LoopbackConn struct {
	// contains filtered or unexported fields
}

LoopbackConn implments the net.Conn interface but is used to loopback from a process to itself. It is goroutine safe.

func (*LoopbackConn) Close

func (lc *LoopbackConn) Close() (err error)

Close closes the connection. Any blocked Read or Write operations will be unblocked and return errors.

func (*LoopbackConn) LocalAddr

func (lc *LoopbackConn) LocalAddr() (addr net.Addr)

LocalAddr returns the local network address.

func (*LoopbackConn) Read

func (lc *LoopbackConn) Read(b []byte) (n int, err error)

Read reads data from the connection.

func (*LoopbackConn) RemoteAddr

func (lc *LoopbackConn) RemoteAddr() (addr net.Addr)

RemoteAddr returns the remote network address.

func (*LoopbackConn) SetDeadline

func (lc *LoopbackConn) SetDeadline(t time.Time) (err error)

SetDeadline sets the read and write deadlines associated with the connection. It is equivalent to calling both SetReadDeadline and SetWriteDeadline.

A deadline is an absolute time after which I/O operations fail with a timeout (see type Error) instead of blocking. The deadline applies to all future I/O, not just the immediately following call to Read or Write.

An idle timeout can be implemented by repeatedly extending the deadline after successful Read or Write calls.

A zero value for t means I/O operations will not time out.

func (*LoopbackConn) SetReadDeadline

func (lc *LoopbackConn) SetReadDeadline(t time.Time) (err error)

SetReadDeadline sets the deadline for future Read calls. A zero value for t means Read will not time out.

func (*LoopbackConn) SetWriteDeadline

func (lc *LoopbackConn) SetWriteDeadline(t time.Time) (err error)

SetWriteDeadline sets the deadline for future Write calls. Even if write times out, it may return n > 0, indicating that some of the data was successfully written. A zero value for t means Write will not time out.

func (*LoopbackConn) Write

func (lc *LoopbackConn) Write(b []byte) (n int, err error)

Write writes data to the connection.

type LoopbackListener

type LoopbackListener struct {
	// contains filtered or unexported fields
}

LoopbackListener is a listener that creates new loopback connections. It is goroutine safe.

func NewLoopbackListener

func NewLoopbackListener() *LoopbackListener

NewLoopbackListener creates a new Loopback listener

func (*LoopbackListener) Accept

func (ll *LoopbackListener) Accept() (ret net.Conn, err error)

Accept waits for and returns the next connection to the listener.

func (*LoopbackListener) Addr

func (ll *LoopbackListener) Addr() (addr net.Addr)

Addr returns the listener's network address.

func (*LoopbackListener) Close

func (ll *LoopbackListener) Close() (err error)

Close closes the listener. Any blocked Accept operations will be unblocked and return errors

func (*LoopbackListener) Dial

func (ll *LoopbackListener) Dial() (net.Conn, error)

LoopbackDial dials the given LoopbackListener and yields an new net.Conn that's a connection to it.

type MakeProofCheckerFunc

type MakeProofCheckerFunc func(l RemoteProofChainLink) (ProofChecker, ProofError)

MakeProofCheckFunc is a function that given a remoteProofChainLink will make a ProofChecker.

type Markup

type Markup struct {
	// contains filtered or unexported fields
}

func FmtMarkup

func FmtMarkup(f string, args ...interface{}) *Markup

func NewMarkup

func NewMarkup(s string) *Markup

func (*Markup) Append

func (m *Markup) Append(s string)

func (Markup) Export

func (m Markup) Export() (ret keybase1.Text)

func (Markup) GetRaw

func (m Markup) GetRaw() string

func (Markup) ToReader

func (m Markup) ToReader() io.Reader

type MerkleClashError

type MerkleClashError struct {
	// contains filtered or unexported fields
}

func (MerkleClashError) Error

func (m MerkleClashError) Error() string

type MerkleClient

type MerkleClient struct {
	Contextified

	// protects whole object
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewMerkleClient

func NewMerkleClient(g *GlobalContext) *MerkleClient

func (*MerkleClient) Init

func (mc *MerkleClient) Init() error

func (*MerkleClient) LastRootToSigJSON

func (mc *MerkleClient) LastRootToSigJSON() (ret *jsonw.Wrapper, err error)

func (*MerkleClient) LastSeqno

func (mc *MerkleClient) LastSeqno() Seqno

func (*MerkleClient) LoadRoot

func (mc *MerkleClient) LoadRoot() error

func (*MerkleClient) LookupPath

func (mc *MerkleClient) LookupPath(q HTTPArgs) (vp *VerificationPath, err error)

func (*MerkleClient) LookupUser

func (mc *MerkleClient) LookupUser(q HTTPArgs) (u *MerkleUserLeaf, err error)

func (*MerkleClient) VerifyRoot

func (mc *MerkleClient) VerifyRoot(root *MerkleRoot) error

type MerkleClientError

type MerkleClientError struct {
	// contains filtered or unexported fields
}

func (MerkleClientError) Error

func (m MerkleClientError) Error() string

type MerkleNotFoundError

type MerkleNotFoundError struct {
	// contains filtered or unexported fields
}

func (MerkleNotFoundError) Error

func (m MerkleNotFoundError) Error() string

type MerkleRoot

type MerkleRoot struct {
	Contextified
	// contains filtered or unexported fields
}

func NewMerkleRootFromJSON

func NewMerkleRootFromJSON(jw *jsonw.Wrapper, g *GlobalContext) (ret *MerkleRoot, err error)

func (*MerkleRoot) Store

func (mr *MerkleRoot) Store() error

func (*MerkleRoot) ToJSON

func (mr *MerkleRoot) ToJSON() (jw *jsonw.Wrapper)

func (*MerkleRoot) ToSigJSON

func (mr *MerkleRoot) ToSigJSON() (ret *jsonw.Wrapper)

type MerkleTriple

type MerkleTriple struct {
	Seqno  Seqno          `json:"seqno"`
	LinkID LinkID         `json:"id"`
	SigID  keybase1.SigID `json:"sigid,omitempty"`
}

func GetMerkleTriple

func GetMerkleTriple(jw *jsonw.Wrapper) (ret *MerkleTriple, err error)

func (MerkleTriple) Less

func (mt1 MerkleTriple) Less(mt2 MerkleTriple) bool

type MerkleUserLeaf

type MerkleUserLeaf struct {
	// contains filtered or unexported fields
}

func (*MerkleUserLeaf) MatchUser

func (mul *MerkleUserLeaf) MatchUser(u *User, uid keybase1.UID, nun NormalizedUsername) (err error)

type MissingDelegationTypeError

type MissingDelegationTypeError struct{}

func (MissingDelegationTypeError) Error

type NaclDHKeyPair

type NaclDHKeyPair struct {
	Public  NaclDHKeyPublic
	Private *NaclDHKeyPrivate
}

func GenerateNaclDHKeyPair

func GenerateNaclDHKeyPair() (NaclDHKeyPair, error)

func ImportNaclDHKeyPairFromBytes

func ImportNaclDHKeyPairFromBytes(pub []byte, priv []byte) (ret NaclDHKeyPair, err error)

func ImportNaclDHKeyPairFromHex

func ImportNaclDHKeyPairFromHex(s string) (ret NaclDHKeyPair, err error)

func MakeNaclDHKeyPairFromSecret

func MakeNaclDHKeyPairFromSecret(secret [NaclDHKeySecretSize]byte) (NaclDHKeyPair, error)

MakeNaclDHKeyPairFromSecret makes a DH key pair given a secret. Of course, the security of depends entirely on the randomness of the bytes in the secret.

func (NaclDHKeyPair) CanDecrypt

func (k NaclDHKeyPair) CanDecrypt() bool

CanDecrypt returns true if there's a private key available

func (NaclDHKeyPair) CanEncrypt

func (k NaclDHKeyPair) CanEncrypt() bool

CanEncrypt always returns true for an encryption key pair.

func (NaclDHKeyPair) CanSign

func (k NaclDHKeyPair) CanSign() bool

func (NaclDHKeyPair) CheckSecretKey

func (k NaclDHKeyPair) CheckSecretKey() error

func (NaclDHKeyPair) Decrypt

func (k NaclDHKeyPair) Decrypt(nei *NaclEncryptionInfo) (plaintext []byte, sender keybase1.KID, err error)

Decrypt a NaclEncryptionInfo packet, and on success return the plaintext and the KID of the sender (which might be an ephemeral key).

func (NaclDHKeyPair) DecryptFromString

func (k NaclDHKeyPair) DecryptFromString(ciphertext string) (msg []byte, sender keybase1.KID, err error)

DecryptFromString decrypts the output of EncryptToString above, and returns the KID of the other end.

func (NaclDHKeyPair) Encode

func (k NaclDHKeyPair) Encode() (string, error)

func (NaclDHKeyPair) Encrypt

func (k NaclDHKeyPair) Encrypt(msg []byte, sender *NaclDHKeyPair) (*NaclEncryptionInfo, error)

Encrypt a message for the given sender. If sender is nil, an ephemeral keypair will be invented

func (NaclDHKeyPair) EncryptToString

func (k NaclDHKeyPair) EncryptToString(plaintext []byte, sender GenericKey) (string, error)

EncryptToString encrypts the plaintext using DiffieHelman; the this object is the receiver, and the passed sender is optional. If not provided, we'll make up an ephemeral key.

func (NaclDHKeyPair) GetAlgoType

func (k NaclDHKeyPair) GetAlgoType() AlgoType

func (NaclDHKeyPair) GetFingerprintP

func (k NaclDHKeyPair) GetFingerprintP() *PGPFingerprint

func (NaclDHKeyPair) GetKID

func (k NaclDHKeyPair) GetKID() keybase1.KID

func (NaclDHKeyPair) HasSecretKey

func (k NaclDHKeyPair) HasSecretKey() bool

func (NaclDHKeyPair) IsNil

func (k NaclDHKeyPair) IsNil() bool

func (NaclDHKeyPair) SignToString

func (k NaclDHKeyPair) SignToString(msg []byte) (sig string, id keybase1.SigID, err error)

func (NaclDHKeyPair) ToLksSKB

func (k NaclDHKeyPair) ToLksSKB(lks *LKSec) (*SKB, error)

func (NaclDHKeyPair) ToServerSKB

func (k NaclDHKeyPair) ToServerSKB(gc *GlobalContext, t *triplesec.Cipher, gen PassphraseGeneration) (*SKB, error)

func (NaclDHKeyPair) ToShortIDString

func (k NaclDHKeyPair) ToShortIDString() string

func (NaclDHKeyPair) VerboseDescription

func (k NaclDHKeyPair) VerboseDescription() string

func (NaclDHKeyPair) VerifyString

func (k NaclDHKeyPair) VerifyString(sig string, msg []byte) (id keybase1.SigID, err error)

func (NaclDHKeyPair) VerifyStringAndExtract

func (k NaclDHKeyPair) VerifyStringAndExtract(sig string) (msg []byte, id keybase1.SigID, err error)

type NaclDHKeyPrivate

type NaclDHKeyPrivate [NaclDHKeysize]byte

type NaclDHKeyPublic

type NaclDHKeyPublic [NaclDHKeysize]byte

func (NaclDHKeyPublic) GetKID

func (k NaclDHKeyPublic) GetKID() keybase1.KID

type NaclEncryptionInfo

type NaclEncryptionInfo struct {
	Ciphertext     []byte `codec:"ciphertext"`
	EncryptionType int    `codec:"enc_type"`
	Nonce          []byte `codec:"nonce"`
	Receiver       []byte `codec:"receiver_key"`
	Sender         []byte `codec:"sender_key"`
}

func (*NaclEncryptionInfo) ToPacket

func (k *NaclEncryptionInfo) ToPacket() (ret *KeybasePacket, err error)

ToPacket implements the Packetable interface.

type NaclGenerator

type NaclGenerator func() (NaclKeyPair, error)

type NaclKeyGen

type NaclKeyGen struct {
	// contains filtered or unexported fields
}

func NewNaclKeyGen

func NewNaclKeyGen(arg NaclKeyGenArg) *NaclKeyGen

func (*NaclKeyGen) Generate

func (g *NaclKeyGen) Generate() (err error)

func (*NaclKeyGen) GetKeyPair

func (g *NaclKeyGen) GetKeyPair() NaclKeyPair

func (*NaclKeyGen) Push

func (g *NaclKeyGen) Push(lctx LoginContext, aggregated bool) (d Delegator, err error)

func (*NaclKeyGen) SaveLKS

func (g *NaclKeyGen) SaveLKS(gc *GlobalContext, lks *LKSec, lctx LoginContext) error

func (*NaclKeyGen) UpdateArg

func (g *NaclKeyGen) UpdateArg(signer GenericKey, eldestKID keybase1.KID, sibkey bool, user *User)

type NaclKeyGenArg

type NaclKeyGenArg struct {
	Signer      GenericKey // who is going to sign us into the Chain
	ExpiresIn   int
	Generator   NaclGenerator
	Me          *User
	Sibkey      bool
	ExpireIn    int          // how long it lasts
	EldestKeyID keybase1.KID // the eldest KID for this epoch
	Device      *Device
	RevSig      string // optional reverse sig.  set to nil for autogenerate.
}

type NaclKeyPair

type NaclKeyPair interface {
	GenericKey
}

type NaclSigInfo

type NaclSigInfo struct {
	Kid      []byte        `codec:"key"`
	Payload  []byte        `codec:"payload,omitempty"`
	Sig      NaclSignature `codec:"sig"`
	SigType  int           `codec:"sig_type"`
	HashType int           `codec:"hash_type"`
	Detached bool          `codec:"detached"`
}

func (*NaclSigInfo) ArmoredEncode

func (s *NaclSigInfo) ArmoredEncode() (ret string, err error)

func (*NaclSigInfo) ToPacket

func (s *NaclSigInfo) ToPacket() (ret *KeybasePacket, err error)

func (NaclSigInfo) Verify

func (s NaclSigInfo) Verify() (error, *NaclSigningKeyPublic)

type NaclSignature

type NaclSignature [ed25519.SignatureSize]byte

type NaclSigningKeyPair

type NaclSigningKeyPair struct {
	Public  NaclSigningKeyPublic
	Private *NaclSigningKeyPrivate
}

func GenerateNaclSigningKeyPair

func GenerateNaclSigningKeyPair() (NaclSigningKeyPair, error)

func ImportNaclSigningKeyPairFromBytes

func ImportNaclSigningKeyPairFromBytes(pub []byte, priv []byte) (ret NaclSigningKeyPair, err error)

func ImportNaclSigningKeyPairFromHex

func ImportNaclSigningKeyPairFromHex(s string) (ret NaclSigningKeyPair, err error)

func MakeNaclSigningKeyPairFromSecret

func MakeNaclSigningKeyPairFromSecret(secret [NaclSigningKeySecretSize]byte) (NaclSigningKeyPair, error)

MakeNaclSigningKeyPairFromSecret makes a signing key pair given a secret. Of course, the security of depends entirely on the randomness of the bytes in the secret.

func (NaclSigningKeyPair) CanDecrypt

func (k NaclSigningKeyPair) CanDecrypt() bool

CanDecrypt always returns false for a signing key pair.

func (NaclSigningKeyPair) CanEncrypt

func (k NaclSigningKeyPair) CanEncrypt() bool

CanEncrypt always returns false for a signing key pair.

func (NaclSigningKeyPair) CanSign

func (k NaclSigningKeyPair) CanSign() bool

func (NaclSigningKeyPair) CheckSecretKey

func (k NaclSigningKeyPair) CheckSecretKey() error

func (NaclSigningKeyPair) DecryptFromString

func (k NaclSigningKeyPair) DecryptFromString(ciphertext string) (msg []byte, sender keybase1.KID, err error)

DecryptFromString fails for this type of key.

func (NaclSigningKeyPair) Encode

func (k NaclSigningKeyPair) Encode() (string, error)

func (NaclSigningKeyPair) EncryptToString

func (k NaclSigningKeyPair) EncryptToString(plaintext []byte, sender GenericKey) (ciphertext string, err error)

EncryptToString fails for this type of key.

func (NaclSigningKeyPair) GetAlgoType

func (k NaclSigningKeyPair) GetAlgoType() AlgoType

func (NaclSigningKeyPair) GetFingerprintP

func (k NaclSigningKeyPair) GetFingerprintP() *PGPFingerprint

func (NaclSigningKeyPair) GetKID

func (k NaclSigningKeyPair) GetKID() (ret keybase1.KID)

func (NaclSigningKeyPair) HasSecretKey

func (k NaclSigningKeyPair) HasSecretKey() bool

func (NaclSigningKeyPair) Sign

func (k NaclSigningKeyPair) Sign(msg []byte) (ret *NaclSigInfo, err error)

func (NaclSigningKeyPair) SignToString

func (k NaclSigningKeyPair) SignToString(msg []byte) (sig string, id keybase1.SigID, err error)

func (NaclSigningKeyPair) ToLksSKB

func (k NaclSigningKeyPair) ToLksSKB(lks *LKSec) (*SKB, error)

func (NaclSigningKeyPair) ToServerSKB

NaCl keys are never wrapped for the server.

func (NaclSigningKeyPair) ToShortIDString

func (k NaclSigningKeyPair) ToShortIDString() string

func (NaclSigningKeyPair) VerboseDescription

func (k NaclSigningKeyPair) VerboseDescription() string

func (NaclSigningKeyPair) VerifyString

func (k NaclSigningKeyPair) VerifyString(sig string, msg []byte) (id keybase1.SigID, err error)

func (NaclSigningKeyPair) VerifyStringAndExtract

func (k NaclSigningKeyPair) VerifyStringAndExtract(sig string) (msg []byte, id keybase1.SigID, err error)

type NaclSigningKeyPrivate

type NaclSigningKeyPrivate [ed25519.PrivateKeySize]byte

func (NaclSigningKeyPrivate) Sign

func (k NaclSigningKeyPrivate) Sign(msg []byte) *NaclSignature

type NaclSigningKeyPublic

type NaclSigningKeyPublic [ed25519.PublicKeySize]byte

func KIDToNaclSigningKeyPublic

func KIDToNaclSigningKeyPublic(bk []byte) *NaclSigningKeyPublic

func (NaclSigningKeyPublic) GetKID

func (k NaclSigningKeyPublic) GetKID() keybase1.KID

func (NaclSigningKeyPublic) Verify

func (k NaclSigningKeyPublic) Verify(msg []byte, sig *NaclSignature) bool

type NamedLock

type NamedLock struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*NamedLock) Release

func (l *NamedLock) Release()

type NeedInputError

type NeedInputError struct {
	// contains filtered or unexported fields
}

func (NeedInputError) Error

func (e NeedInputError) Error() string

type NegBoolFunc

type NegBoolFunc struct {
	// contains filtered or unexported fields
}

type NoActiveKeyError

type NoActiveKeyError struct {
	Username string
}

func (NoActiveKeyError) Error

func (e NoActiveKeyError) Error() string

func (NoActiveKeyError) ToStatus

func (c NoActiveKeyError) ToStatus() (s keybase1.Status)

type NoConfigFile

type NoConfigFile struct{}

func (NoConfigFile) Error

func (n NoConfigFile) Error() string

type NoConfigWriterError

type NoConfigWriterError struct{}

func (NoConfigWriterError) Error

func (e NoConfigWriterError) Error() string

type NoDecryptionKeyError

type NoDecryptionKeyError struct {
	Msg string
}

func (NoDecryptionKeyError) Error

func (e NoDecryptionKeyError) Error() string

func (NoDecryptionKeyError) ToStatus

func (e NoDecryptionKeyError) ToStatus() (s keybase1.Status)

type NoDeviceError

type NoDeviceError struct {
	Reason string
}

func (NoDeviceError) Error

func (e NoDeviceError) Error() string

func (NoDeviceError) ToStatus

func (e NoDeviceError) ToStatus() keybase1.Status

type NoEldestKeyError

type NoEldestKeyError struct {
}

func (NoEldestKeyError) Error

func (e NoEldestKeyError) Error() string

type NoKeyError

type NoKeyError struct {
	Msg string
}

func (NoKeyError) Error

func (u NoKeyError) Error() string

func (NoKeyError) ToStatus

func (e NoKeyError) ToStatus() (s keybase1.Status)

type NoKeyringsError

type NoKeyringsError struct{}

func (NoKeyringsError) Error

func (k NoKeyringsError) Error() string

type NoMatchingGPGKeysError

type NoMatchingGPGKeysError struct {
	Fingerprints    []string
	HasActiveDevice bool // true if the user has an active device that they chose not to use
}

func (NoMatchingGPGKeysError) Error

func (e NoMatchingGPGKeysError) Error() string

func (NoMatchingGPGKeysError) ToStatus

func (e NoMatchingGPGKeysError) ToStatus() keybase1.Status

type NoNaClEncryptionKeyError

type NoNaClEncryptionKeyError struct {
	User      string
	HasPGPKey bool
}

func (NoNaClEncryptionKeyError) Error

func (e NoNaClEncryptionKeyError) Error() string

func (NoNaClEncryptionKeyError) ToStatus

type NoPGPEncryptionKeyError

type NoPGPEncryptionKeyError struct {
	User         string
	HasDeviceKey bool
}

func (NoPGPEncryptionKeyError) Error

func (e NoPGPEncryptionKeyError) Error() string

func (NoPGPEncryptionKeyError) ToStatus

type NoPaperKeysError

type NoPaperKeysError struct {
}

func (NoPaperKeysError) Error

func (u NoPaperKeysError) Error() string

type NoSecretKeyError

type NoSecretKeyError struct {
}

func (NoSecretKeyError) Error

func (u NoSecretKeyError) Error() string

func (NoSecretKeyError) ToStatus

func (u NoSecretKeyError) ToStatus() (s keybase1.Status)

type NoSelectedKeyError

type NoSelectedKeyError struct {
	// contains filtered or unexported fields
}

func (NoSelectedKeyError) Error

func (n NoSelectedKeyError) Error() string

type NoSessionWriterError

type NoSessionWriterError struct{}

func (NoSessionWriterError) Error

func (e NoSessionWriterError) Error() string

type NoSigChainError

type NoSigChainError struct{}

func (NoSigChainError) Error

func (e NoSigChainError) Error() string

type NoSyncedPGPKeyError

type NoSyncedPGPKeyError struct{}

func (NoSyncedPGPKeyError) Error

func (e NoSyncedPGPKeyError) Error() string

func (NoSyncedPGPKeyError) ToStatus

func (e NoSyncedPGPKeyError) ToStatus() keybase1.Status

type NoUIDError

type NoUIDError struct{}

func (NoUIDError) Error

func (e NoUIDError) Error() string

type NoUIError

type NoUIError struct {
	Which string
}

func (NoUIError) Error

func (e NoUIError) Error() string

func (NoUIError) ToStatus

func (e NoUIError) ToStatus() keybase1.Status

type NoUserConfigError

type NoUserConfigError struct{}

func (NoUserConfigError) Error

func (n NoUserConfigError) Error() string

type NoUsernameError

type NoUsernameError struct{}

func (NoUsernameError) Error

func (e NoUsernameError) Error() string

type NodeHash

type NodeHash interface {
	Check(s string) bool // Check if the node hashes to this string
	String() string
}

func GetNodeHash

func GetNodeHash(w *jsonw.Wrapper) (NodeHash, error)

func NodeHashFromHex

func NodeHashFromHex(s string) (NodeHash, error)

type NodeHashLong

type NodeHashLong [NodeHashLenLong]byte

func (NodeHashLong) Check

func (h1 NodeHashLong) Check(s string) bool

func (NodeHashLong) String

func (h1 NodeHashLong) String() string

type NodeHashShort

type NodeHashShort [NodeHashLenShort]byte

func (NodeHashShort) Check

func (h1 NodeHashShort) Check(s string) bool

func (NodeHashShort) String

func (h1 NodeHashShort) String() string

type NopWriteCloser

type NopWriteCloser struct {
	W io.Writer
}

NopWriteCloser is like an ioutil.NopCloser, but for an io.Writer. TODO: we have two of these in OpenPGP packages alone. This probably needs to be promoted somewhere more common.

From here:

https://code.google.com/p/go/source/browse/openpgp/write.go?repo=crypto&r=1e7a3e301825bf9cb32e0535f3761d62d2d369d1#364

func (NopWriteCloser) Close

func (c NopWriteCloser) Close() error

func (NopWriteCloser) Write

func (c NopWriteCloser) Write(data []byte) (n int, err error)

type NormalizedUsername

type NormalizedUsername string

NormalizedUsername is a username that has been normalized (toLowered) and therefore will compare correctly against other normalized usernames.

func NewNormalizedUsername

func NewNormalizedUsername(s string) NormalizedUsername

NewNormalizedUsername makes a normalized username out of a non-normalized plain string username

func (NormalizedUsername) Eq

Eq returns true if the given normalized usernames are equal

func (NormalizedUsername) IsNil

func (n NormalizedUsername) IsNil() bool

IsNil returns true if the username is the empty string

func (NormalizedUsername) String

func (n NormalizedUsername) String() string

String returns the normalized username as a string (in lower case)

type NotConfirmedError

type NotConfirmedError struct{}

func (NotConfirmedError) Error

func (e NotConfirmedError) Error() string

type NotFoundError

type NotFoundError struct {
	Msg string
}

func (NotFoundError) Error

func (e NotFoundError) Error() string

type NotLatestSubchainError

type NotLatestSubchainError struct {
	Msg string
}

func (NotLatestSubchainError) Error

func (e NotLatestSubchainError) Error() string

type NotProvisionedError

type NotProvisionedError struct{}

func (NotProvisionedError) Error

func (e NotProvisionedError) Error() string

type NotifyRouter

type NotifyRouter struct {
	Contextified
	// contains filtered or unexported fields
}

NotifyRouter routes notifications to the various active RPC connections. It's careful only to route to those who are interested

func NewNotifyRouter

func NewNotifyRouter(g *GlobalContext) *NotifyRouter

NewNotifyRouter makes a new notification router; we should only make one of these per process.

func (*NotifyRouter) AddConnection

func (n *NotifyRouter) AddConnection(xp rpc.Transporter, ch chan error) ConnectionID

AddConnection should be called every time there's a new RPC connection established for this server. The caller should pass in the Transporter and also the channel that will get messages when the chanel closes.

func (*NotifyRouter) HandleClientOutOfDate

func (n *NotifyRouter) HandleClientOutOfDate(upgradeTo string, upgradeURI string)

ClientOutOfDate is called whenever the API server tells us our client is out of date. (This is done by adding special headers to every API response that an out-of-date client makes.)

func (*NotifyRouter) HandleFSActivity

func (n *NotifyRouter) HandleFSActivity(activity keybase1.FSNotification)

HandleFSActivity is called for any KBFS notification. It will broadcast the messages to all curious listeners.

func (*NotifyRouter) HandleLogin

func (n *NotifyRouter) HandleLogin(u string)

HandleLogin is called whenever a user logs in. It will broadcast the message to all connections who care about such a mesasge.

func (*NotifyRouter) HandleLogout

func (n *NotifyRouter) HandleLogout()

HandleLogout is called whenever the current user logged out. It will broadcast the message to all connections who care about such a mesasge.

func (*NotifyRouter) HandleTrackingChanged

func (n *NotifyRouter) HandleTrackingChanged(uid keybase1.UID, username string)

HandleTrackingChanged is called whenever we have a new tracking or untracking chain link related to a given user. It will broadcast the messages to all curious listeners.

func (*NotifyRouter) HandleUserChanged

func (n *NotifyRouter) HandleUserChanged(uid keybase1.UID)

HandleUserChanged is called whenever we know that a given user has changed (and must be cache-busted). It will broadcast the messages to all curious listeners.

func (*NotifyRouter) SetChannels

SetChannels sets which notification channels are interested for the connection with the given connection ID.

func (*NotifyRouter) Shutdown

func (n *NotifyRouter) Shutdown()

type NullConfiguration

type NullConfiguration struct{}

func (NullConfiguration) GetAPIDump

func (n NullConfiguration) GetAPIDump() (bool, bool)

func (NullConfiguration) GetAPITimeout

func (n NullConfiguration) GetAPITimeout() (time.Duration, bool)

func (NullConfiguration) GetAllUsernames

func (NullConfiguration) GetAppStartMode

func (n NullConfiguration) GetAppStartMode() AppStartMode

func (NullConfiguration) GetAutoFork

func (n NullConfiguration) GetAutoFork() (bool, bool)

func (NullConfiguration) GetBool

func (n NullConfiguration) GetBool(string, bool) (bool, bool)

func (NullConfiguration) GetBoolAtPath

func (n NullConfiguration) GetBoolAtPath(string) (bool, bool)

func (NullConfiguration) GetBundledCA

func (n NullConfiguration) GetBundledCA(h string) string

func (NullConfiguration) GetCodeSigningKIDs

func (n NullConfiguration) GetCodeSigningKIDs() []string

func (NullConfiguration) GetConfigFilename

func (n NullConfiguration) GetConfigFilename() string

func (NullConfiguration) GetDbFilename

func (n NullConfiguration) GetDbFilename() string

func (NullConfiguration) GetDebug

func (n NullConfiguration) GetDebug() (bool, bool)

func (NullConfiguration) GetDeviceID

func (n NullConfiguration) GetDeviceID() keybase1.DeviceID

func (NullConfiguration) GetEmail

func (n NullConfiguration) GetEmail() string

func (NullConfiguration) GetGString

func (n NullConfiguration) GetGString(string) string

func (NullConfiguration) GetGpg

func (n NullConfiguration) GetGpg() string

func (NullConfiguration) GetGpgHome

func (n NullConfiguration) GetGpgHome() string

func (NullConfiguration) GetGpgOptions

func (n NullConfiguration) GetGpgOptions() []string

func (NullConfiguration) GetHome

func (n NullConfiguration) GetHome() string

func (NullConfiguration) GetIntAtPath

func (n NullConfiguration) GetIntAtPath(string) (int, bool)

func (NullConfiguration) GetInterfaceAtPath

func (n NullConfiguration) GetInterfaceAtPath(string) (interface{}, error)

func (NullConfiguration) GetLinkCacheCleanDur

func (n NullConfiguration) GetLinkCacheCleanDur() (time.Duration, bool)

func (NullConfiguration) GetLinkCacheSize

func (n NullConfiguration) GetLinkCacheSize() (int, bool)

func (NullConfiguration) GetLocalRPCDebug

func (n NullConfiguration) GetLocalRPCDebug() string

func (NullConfiguration) GetLocalTrackMaxAge

func (n NullConfiguration) GetLocalTrackMaxAge() (time.Duration, bool)

func (NullConfiguration) GetLogFile

func (n NullConfiguration) GetLogFile() string

func (NullConfiguration) GetLogFormat

func (n NullConfiguration) GetLogFormat() string

func (NullConfiguration) GetMerkleKIDs

func (n NullConfiguration) GetMerkleKIDs() []string

func (NullConfiguration) GetNoAutoFork

func (n NullConfiguration) GetNoAutoFork() (bool, bool)

func (NullConfiguration) GetNoPinentry

func (n NullConfiguration) GetNoPinentry() (bool, bool)

func (NullConfiguration) GetNullAtPath

func (n NullConfiguration) GetNullAtPath(string) bool

func (NullConfiguration) GetPGPFingerprint

func (n NullConfiguration) GetPGPFingerprint() *PGPFingerprint

func (NullConfiguration) GetPidFile

func (n NullConfiguration) GetPidFile() string

func (NullConfiguration) GetPinentry

func (n NullConfiguration) GetPinentry() string

func (NullConfiguration) GetProofCacheLongDur

func (n NullConfiguration) GetProofCacheLongDur() (time.Duration, bool)

func (NullConfiguration) GetProofCacheMediumDur

func (n NullConfiguration) GetProofCacheMediumDur() (time.Duration, bool)

func (NullConfiguration) GetProofCacheShortDur

func (n NullConfiguration) GetProofCacheShortDur() (time.Duration, bool)

func (NullConfiguration) GetProofCacheSize

func (n NullConfiguration) GetProofCacheSize() (int, bool)

func (NullConfiguration) GetProxy

func (n NullConfiguration) GetProxy() string

func (NullConfiguration) GetProxyCACerts

func (n NullConfiguration) GetProxyCACerts() ([]string, error)

func (NullConfiguration) GetRunMode

func (n NullConfiguration) GetRunMode() (RunMode, error)

func (NullConfiguration) GetSalt

func (n NullConfiguration) GetSalt() []byte

func (NullConfiguration) GetScraperTimeout

func (n NullConfiguration) GetScraperTimeout() (time.Duration, bool)

func (NullConfiguration) GetSecretKeyringTemplate

func (n NullConfiguration) GetSecretKeyringTemplate() string

func (NullConfiguration) GetSecurityAccessGroupOverride

func (n NullConfiguration) GetSecurityAccessGroupOverride() (bool, bool)

func (NullConfiguration) GetServerURI

func (n NullConfiguration) GetServerURI() string

func (NullConfiguration) GetSessionFilename

func (n NullConfiguration) GetSessionFilename() string

func (NullConfiguration) GetSocketFile

func (n NullConfiguration) GetSocketFile() string

func (NullConfiguration) GetStandalone

func (n NullConfiguration) GetStandalone() (bool, bool)

func (NullConfiguration) GetString

func (n NullConfiguration) GetString(string) string

func (NullConfiguration) GetStringAtPath

func (n NullConfiguration) GetStringAtPath(string) (string, bool)

func (NullConfiguration) GetTimers

func (n NullConfiguration) GetTimers() string

func (NullConfiguration) GetTorHiddenAddress

func (n NullConfiguration) GetTorHiddenAddress() string

func (NullConfiguration) GetTorMode

func (n NullConfiguration) GetTorMode() (TorMode, error)

func (NullConfiguration) GetTorProxy

func (n NullConfiguration) GetTorProxy() string

func (NullConfiguration) GetUID

func (n NullConfiguration) GetUID() (ret keybase1.UID)

func (NullConfiguration) GetUpdateLastChecked

func (n NullConfiguration) GetUpdateLastChecked() keybase1.Time

func (NullConfiguration) GetUpdatePreferenceAuto

func (n NullConfiguration) GetUpdatePreferenceAuto() (bool, bool)

func (NullConfiguration) GetUpdatePreferenceSkip

func (n NullConfiguration) GetUpdatePreferenceSkip() string

func (NullConfiguration) GetUpdatePreferenceSnoozeUntil

func (n NullConfiguration) GetUpdatePreferenceSnoozeUntil() keybase1.Time

func (NullConfiguration) GetUpdateURL

func (n NullConfiguration) GetUpdateURL() string

func (NullConfiguration) GetUserCacheMaxAge

func (n NullConfiguration) GetUserCacheMaxAge() (time.Duration, bool)

func (NullConfiguration) GetUserConfig

func (n NullConfiguration) GetUserConfig() (*UserConfig, error)

func (NullConfiguration) GetUserConfigForUsername

func (n NullConfiguration) GetUserConfigForUsername(s NormalizedUsername) (*UserConfig, error)

func (NullConfiguration) GetUsername

func (n NullConfiguration) GetUsername() NormalizedUsername

func (NullConfiguration) GetVDebugSetting

func (n NullConfiguration) GetVDebugSetting() string

func (NullConfiguration) IsAdmin

func (n NullConfiguration) IsAdmin() (bool, bool)

type ObjType

type ObjType byte

type OutputDescriptor

type OutputDescriptor int

type PGPFingerprint

type PGPFingerprint [PGPFingerprintLen]byte

func GetPGPFingerprint

func GetPGPFingerprint(w *jsonw.Wrapper) (*PGPFingerprint, error)

func ImportPGPFingerprintSlice

func ImportPGPFingerprintSlice(fp []byte) (ret *PGPFingerprint)

func PGPFingerprintFromHex

func PGPFingerprintFromHex(s string) (*PGPFingerprint, error)

func PGPFingerprintFromHexNoError

func PGPFingerprintFromHexNoError(s string) *PGPFingerprint

func PGPFingerprintFromSlice

func PGPFingerprintFromSlice(b []byte) (*PGPFingerprint, error)

func (PGPFingerprint) Eq

func (PGPFingerprint) GetProofState

func (p PGPFingerprint) GetProofState() keybase1.ProofState

func (PGPFingerprint) GetProofType

func (p PGPFingerprint) GetProofType() keybase1.ProofType

func (PGPFingerprint) LastWriterWins

func (p PGPFingerprint) LastWriterWins() bool

func (*PGPFingerprint) Match

func (p *PGPFingerprint) Match(q string, exact bool) bool

func (PGPFingerprint) String

func (p PGPFingerprint) String() string

func (PGPFingerprint) ToDisplayString

func (p PGPFingerprint) ToDisplayString(verbose bool) string

func (PGPFingerprint) ToIDString

func (p PGPFingerprint) ToIDString() string

func (PGPFingerprint) ToKeyID

func (p PGPFingerprint) ToKeyID() string

func (PGPFingerprint) ToKeyValuePair

func (p PGPFingerprint) ToKeyValuePair() (string, string)

func (PGPFingerprint) ToQuads

func (p PGPFingerprint) ToQuads() string

type PGPGenArg

type PGPGenArg struct {
	PrimaryBits     int
	SubkeyBits      int
	Ids             Identities
	Config          *packet.Config
	PGPUids         []string
	PrimaryLifetime int
	SubkeyLifetime  int
}

func ImportKeyGenArg

func ImportKeyGenArg(a keybase1.PGPKeyGenArg) (ret PGPGenArg)

func (*PGPGenArg) AddDefaultUID

func (a *PGPGenArg) AddDefaultUID()

Just for testing

func (*PGPGenArg) CreatePGPIDs

func (a *PGPGenArg) CreatePGPIDs() error

CreateIDs creates identities for KeyGenArg.Ids if none exist. It uses PGPUids to determine the set of Ids. It does not set the default keybase.io uid. AddDefaultUid() does that.

func (PGPGenArg) ExportTo

func (a PGPGenArg) ExportTo(ret *keybase1.PGPKeyGenArg)

func (*PGPGenArg) Init

func (a *PGPGenArg) Init() (err error)

func (*PGPGenArg) MakeAllIds

func (a *PGPGenArg) MakeAllIds() error

Just for testing

func (*PGPGenArg) PGPUserIDs

func (a *PGPGenArg) PGPUserIDs() ([]*packet.UserId, error)

func (*PGPGenArg) PreferredCompression

func (a *PGPGenArg) PreferredCompression() []uint8

func (*PGPGenArg) PreferredHash

func (a *PGPGenArg) PreferredHash() []uint8

func (*PGPGenArg) PreferredSymmetric

func (a *PGPGenArg) PreferredSymmetric() []uint8

type PGPKeyBundle

type PGPKeyBundle struct {
	*openpgp.Entity

	// GPGFallbackKey to be used as a fallback if given dummy a PrivateKey.
	GPGFallbackKey GenericKey

	// We make the (fairly dangerous) assumption that the key will never be
	// modified. This avoids the issue that encoding an openpgp.Entity is
	// nondeterministic due to Go's randomized iteration order (so different
	// exports of the same key may hash differently).
	//
	// If you're *sure* that you're creating a PGPKeyBundle from an armored
	// *public* key, you can prefill this field and Export() will use it.
	ArmoredPublicKey string

	// True if this key was generated by this program
	Generated bool
}

func GeneratePGPKeyBundle

func GeneratePGPKeyBundle(arg PGPGenArg, logUI LogUI) (*PGPKeyBundle, error)

NewEntity returns an Entity that contains a fresh RSA/RSA keypair with a single identity composed of the given full name, comment and email, any of which may be empty but must not contain any of "()<>\x00". If config is nil, sensible defaults will be used.

Modification of: https://code.google.com/p/go/source/browse/openpgp/keys.go?repo=crypto&r=8fec09c61d5d66f460d227fd1df3473d7e015bc6#456

From golang.com/x/crypto/openpgp/keys.go

func GetOneKey

func GetOneKey(jw *jsonw.Wrapper) (*PGPKeyBundle, error)

func LoadPGPKeyFromLocalDB

func LoadPGPKeyFromLocalDB(k keybase1.KID, g *GlobalContext) (*PGPKeyBundle, error)

func NewGeneratedPGPKeyBundle

func NewGeneratedPGPKeyBundle(entity *openpgp.Entity) *PGPKeyBundle

func NewPGPKeyBundle

func NewPGPKeyBundle(entity *openpgp.Entity) *PGPKeyBundle

func ReadOneKeyFromBytes

func ReadOneKeyFromBytes(b []byte) (*PGPKeyBundle, error)

func ReadOneKeyFromString

func ReadOneKeyFromString(originalArmor string) (*PGPKeyBundle, error)

note: openpgp.ReadArmoredKeyRing only returns the first block. It will never return multiple entities.

func ReadPrivateKeyFromString

func ReadPrivateKeyFromString(s string) (*PGPKeyBundle, error)

ReadPrivateKeyFromString finds the first private key block in s and decodes it into a PGPKeyBundle. It is useful in the case where s contains multiple key blocks and you want the private key block. For example, the result of gpg export.

func (*PGPKeyBundle) CanDecrypt

func (k *PGPKeyBundle) CanDecrypt() bool

CanDecrypt returns false for now, since we haven't implemented PGP encryption of packets for metadata operations

func (*PGPKeyBundle) CanEncrypt

func (k *PGPKeyBundle) CanEncrypt() bool

CanEncrypt returns false for now, since we haven't implemented PGP encryption of packets for metadata operations

func (*PGPKeyBundle) CanSign

func (k *PGPKeyBundle) CanSign() bool

func (*PGPKeyBundle) CheckFingerprint

func (k *PGPKeyBundle) CheckFingerprint(fp *PGPFingerprint) error

func (*PGPKeyBundle) CheckIdentity

func (k *PGPKeyBundle) CheckIdentity(kbid Identity) (match bool, ctime int64, etime int64)

func (*PGPKeyBundle) CheckSecretKey

func (k *PGPKeyBundle) CheckSecretKey() (err error)

func (*PGPKeyBundle) DecryptFromString

func (k *PGPKeyBundle) DecryptFromString(ciphertext string) (msg []byte, sender keybase1.KID, err error)

DecryptFromString fails for this type of key, since we haven't implemented it yet

func (PGPKeyBundle) DecryptionKeys

func (k PGPKeyBundle) DecryptionKeys() []openpgp.Key

func (*PGPKeyBundle) Encode

func (k *PGPKeyBundle) Encode() (ret string, err error)

func (*PGPKeyBundle) EncodeToStream

func (k *PGPKeyBundle) EncodeToStream(wc io.WriteCloser, private bool) error

func (*PGPKeyBundle) EncryptToString

func (k *PGPKeyBundle) EncryptToString(plaintext []byte, sender GenericKey) (ciphertext string, err error)

EncryptToString fails for this type of key, since we haven't implemented it yet

func (*PGPKeyBundle) Export

func (bundle *PGPKeyBundle) Export() keybase1.PublicKey

func (*PGPKeyBundle) FindEmail

func (k *PGPKeyBundle) FindEmail(em string) bool

func (*PGPKeyBundle) FindKeybaseUsername

func (k *PGPKeyBundle) FindKeybaseUsername(un string) bool

XXX for now this is OK but probably we need a PGP uid parser as in pgp-utils

func (*PGPKeyBundle) FullHash

func (k *PGPKeyBundle) FullHash() (string, error)

func (PGPKeyBundle) GetAlgoType

func (k PGPKeyBundle) GetAlgoType() AlgoType

func (PGPKeyBundle) GetFingerprint

func (k PGPKeyBundle) GetFingerprint() PGPFingerprint

func (PGPKeyBundle) GetFingerprintP

func (k PGPKeyBundle) GetFingerprintP() *PGPFingerprint

func (*PGPKeyBundle) GetKID

func (k *PGPKeyBundle) GetKID() keybase1.KID

func (*PGPKeyBundle) GetPGPIdentities

func (k *PGPKeyBundle) GetPGPIdentities() []keybase1.PGPIdentity

func (PGPKeyBundle) GetPrimaryUID

func (k PGPKeyBundle) GetPrimaryUID() string

GetPrimaryUID gets the primary UID in the given key bundle, returned in the 'Max K (foo) <bar@baz.com>' convention.

func (*PGPKeyBundle) HasSecretKey

func (k *PGPKeyBundle) HasSecretKey() bool

func (PGPKeyBundle) HumanDescription

func (k PGPKeyBundle) HumanDescription() string

func (*PGPKeyBundle) IdentityNames

func (k *PGPKeyBundle) IdentityNames() []string

func (*PGPKeyBundle) InitGPGKey

func (k *PGPKeyBundle) InitGPGKey()

func (PGPKeyBundle) KeyDescription

func (k PGPKeyBundle) KeyDescription() string

func (PGPKeyBundle) KeyInfo

func (k PGPKeyBundle) KeyInfo() (algorithm, kid, creation string)

func (PGPKeyBundle) KeysById

func (k PGPKeyBundle) KeysById(id uint64) []openpgp.Key

func (PGPKeyBundle) KeysByIdUsage

func (k PGPKeyBundle) KeysByIdUsage(id uint64, usage byte) []openpgp.Key

func (PGPKeyBundle) MatchesKey

func (k PGPKeyBundle) MatchesKey(key *openpgp.Key) bool

func (*PGPKeyBundle) MergeKey

func (to *PGPKeyBundle) MergeKey(from *PGPKeyBundle)

MergeKey adds the identities, revocations, and subkeys of another PGPKeyBundle to this key

func (PGPKeyBundle) SamePrimaryAs

func (k PGPKeyBundle) SamePrimaryAs(k2 PGPKeyBundle) bool

func (*PGPKeyBundle) SerializePrivate

func (k *PGPKeyBundle) SerializePrivate(w io.Writer) error

func (*PGPKeyBundle) SignToString

func (k *PGPKeyBundle) SignToString(msg []byte) (sig string, id keybase1.SigID, err error)

func (*PGPKeyBundle) StoreToLocalDb

func (k *PGPKeyBundle) StoreToLocalDb(g *GlobalContext) error

func (*PGPKeyBundle) StripRevocations

func (k *PGPKeyBundle) StripRevocations() (strippedKey *PGPKeyBundle)

StripRevocations returns a copy of the key with revocations removed

func (*PGPKeyBundle) ToLksSKB

func (key *PGPKeyBundle) ToLksSKB(lks *LKSec) (ret *SKB, err error)

func (*PGPKeyBundle) ToServerSKB

func (key *PGPKeyBundle) ToServerSKB(gc *GlobalContext, tsec *triplesec.Cipher, gen PassphraseGeneration) (ret *SKB, err error)

func (*PGPKeyBundle) Unlock

func (k *PGPKeyBundle) Unlock(reason string, secretUI SecretUI) error

func (PGPKeyBundle) UsersDescription

func (k PGPKeyBundle) UsersDescription() []string

func (PGPKeyBundle) VerboseDescription

func (k PGPKeyBundle) VerboseDescription() string

func (PGPKeyBundle) VerifyString

func (k PGPKeyBundle) VerifyString(sig string, msg []byte) (id keybase1.SigID, err error)

func (PGPKeyBundle) VerifyStringAndExtract

func (k PGPKeyBundle) VerifyStringAndExtract(sig string) (msg []byte, id keybase1.SigID, err error)

type PGPKeySet

type PGPKeySet struct {
	Contextified
	PermissivelyMergedKey *PGPKeyBundle
	KeysByHash            map[string]*PGPKeyBundle
}

PGPKeySet represents a collection of versions of a PGP key. It includes a merged version of the key without revocations, and each individual version of the key with revocations intact.

type PGPPullLoggedOutError

type PGPPullLoggedOutError struct{}

func (PGPPullLoggedOutError) Error

func (e PGPPullLoggedOutError) Error() string
type PGPUpdateChainLink struct {
	GenericChainLink
	// contains filtered or unexported fields
}

PGPUpdateChainLink represents a chain link which marks a new version of a PGP key as current. The KID and a new new full hash are included in the pgp_update section of the body.

func ParsePGPUpdateChainLink(b GenericChainLink) (ret *PGPUpdateChainLink, err error)

ParsePGPUpdateChainLink creates a PGPUpdateChainLink from a GenericChainLink and verifies that its pgp_update section contains a KID and full_hash

func (*PGPUpdateChainLink) GetPGPFullHash

func (l *PGPUpdateChainLink) GetPGPFullHash() string

func (*PGPUpdateChainLink) ToDisplayString

func (l *PGPUpdateChainLink) ToDisplayString() string

func (*PGPUpdateChainLink) Type

func (l *PGPUpdateChainLink) Type() string

type PIDFileLockError

type PIDFileLockError struct {
	Filename string
}

func (PIDFileLockError) Error

func (e PIDFileLockError) Error() string

type Packetable

type Packetable interface {
	ToPacket() (*KeybasePacket, error)
}

type PaperKeyPhrase

type PaperKeyPhrase string

PaperKeyPhrase is the string that can generate a paper key. It is versioned and forced to be lowercase. To make a new random phrase, use MakePaperKeyPhrase. To convert a string to a PaperKeyPhrase, use NewPaperKeyPhrase.

func MakePaperKeyPhrase

func MakePaperKeyPhrase(version uint8) (PaperKeyPhrase, error)

MakePaperKeyPhrase creates a new, random paper key phrase for the given version.

func NewPaperKeyPhrase

func NewPaperKeyPhrase(phrase string) PaperKeyPhrase

NewPaperKeyPhrase converts a string into a PaperKeyPhrase.

func NewPaperKeyPhraseCheckVersion

func NewPaperKeyPhraseCheckVersion(g *GlobalContext, passphrase string) (ret PaperKeyPhrase, err error)

func (PaperKeyPhrase) Bytes

func (p PaperKeyPhrase) Bytes() []byte

Bytes returns a byte slice of the phrase.

func (PaperKeyPhrase) Prefix

func (p PaperKeyPhrase) Prefix() string

Prefix returns the first two words in the phrase.

func (PaperKeyPhrase) String

func (p PaperKeyPhrase) String() string

String returns a string representation of the phrase.

func (PaperKeyPhrase) Version

func (p PaperKeyPhrase) Version() (uint8, error)

Version calculates the phrase version. 0-15 are possible versions.

type ParsedSig

type ParsedSig struct {
	Block       *armor.Block
	SigBody     []byte
	MD          *openpgp.MessageDetails
	LiteralData []byte
}

func PGPOpenSig

func PGPOpenSig(armored string) (ps *ParsedSig, err error)

func (*ParsedSig) AssertPayload

func (ps *ParsedSig) AssertPayload(expected []byte) error

func (*ParsedSig) ID

func (ps *ParsedSig) ID() keybase1.SigID

func (*ParsedSig) Verify

func (ps *ParsedSig) Verify(k PGPKeyBundle) (err error)

type Parser

type Parser struct {
	// contains filtered or unexported fields
}

func NewParser

func NewParser(lexer *Lexer) *Parser

func (*Parser) Parse

func (p *Parser) Parse() AssertionExpression

type PassphraseError

type PassphraseError struct {
	Msg string
}

func (PassphraseError) Error

func (p PassphraseError) Error() string

func (PassphraseError) ToStatus

func (p PassphraseError) ToStatus() (s keybase1.Status)

type PassphraseGeneration

type PassphraseGeneration int

PassphraseGeneration represents which generation of the passphrase is currently in use. It's used to guard against race conditions in which the passphrase is changed on one device which the other still has it cached.

type PassphrasePrompter

type PassphrasePrompter interface {
	Prompt(keybase1.GUIEntryArg) (keybase1.GetPassphraseRes, error)
}

type PassphraseProvisionImpossibleError

type PassphraseProvisionImpossibleError struct{}

func (PassphraseProvisionImpossibleError) Error

type PassphraseStream

type PassphraseStream struct {
	// contains filtered or unexported fields
}

func NewPassphraseStream

func NewPassphraseStream(s []byte) *PassphraseStream

func StretchPassphrase

func StretchPassphrase(passphrase string, salt []byte) (tsec *triplesec.Cipher, pps *PassphraseStream, err error)

func (*PassphraseStream) Clone

func (ps *PassphraseStream) Clone() *PassphraseStream

Clone a passphrase stream and return a copy.

func (PassphraseStream) DHSeed

func (ps PassphraseStream) DHSeed() []byte

func (PassphraseStream) EdDSASeed

func (ps PassphraseStream) EdDSASeed() []byte

func (PassphraseStream) Export

func (PassphraseStream) Generation

func (ps PassphraseStream) Generation() PassphraseGeneration

Generation returns the generation of this passphrase stream. It is >=0 for valid generation #. If 0, then we assume the passphrase has never been reset.

func (PassphraseStream) LksClientHalf

func (ps PassphraseStream) LksClientHalf() []byte

func (PassphraseStream) PWHash

func (ps PassphraseStream) PWHash() []byte

func (*PassphraseStream) SetGeneration

func (ps *PassphraseStream) SetGeneration(gen PassphraseGeneration)

func (PassphraseStream) String

func (ps PassphraseStream) String() string

type PassphraseStreamCache

type PassphraseStreamCache struct {
	// contains filtered or unexported fields
}

func NewPassphraseStreamCache

func NewPassphraseStreamCache(tsec *triplesec.Cipher, ps *PassphraseStream) *PassphraseStreamCache

func (*PassphraseStreamCache) Clear

func (s *PassphraseStreamCache) Clear()

func (*PassphraseStreamCache) Dump

func (s *PassphraseStreamCache) Dump()

func (*PassphraseStreamCache) PassphraseStream

func (s *PassphraseStreamCache) PassphraseStream() *PassphraseStream

PassphraseStream returns a copy of the currently cached passphrase stream, or nil if none exists.

func (*PassphraseStreamCache) PassphraseStreamRef

func (s *PassphraseStreamCache) PassphraseStreamRef() *PassphraseStream

PassphraseStream returns a reference to the currently cached passphrase stream, or nil if none exists.

func (*PassphraseStreamCache) Triplesec

func (s *PassphraseStreamCache) Triplesec() *triplesec.Cipher

func (*PassphraseStreamCache) Valid

func (s *PassphraseStreamCache) Valid() bool

type PassphraseStreamCacheReader

type PassphraseStreamCacheReader interface {
	Triplesec() *triplesec.Cipher
	PassphraseStream() *PassphraseStream
	Valid() bool
}

type PathStep

type PathStep struct {
	// contains filtered or unexported fields
}

type PathSteps

type PathSteps []*PathStep

func (PathSteps) VerifyPath

func (path PathSteps) VerifyPath(curr NodeHash, uidS string) (juser *jsonw.Wrapper, err error)

type PgpUI

type PgpUI interface {
	keybase1.PGPUiInterface
}

type PostAuthProofArg

type PostAuthProofArg struct {
	// contains filtered or unexported fields
}

type PostAuthProofRes

type PostAuthProofRes struct {
	SessionID string `json:"session"`
	AuthID    string `json:"auth_id"`
	CSRFToken string `json:"csrf_token"`
	UIDHex    string `json:"uid"`
	Username  string `json:"username"`
	PPGen     int    `json:"passphrase_generation"`
}

func PostAuthProof

func PostAuthProof(arg PostAuthProofArg) (*PostAuthProofRes, error)

type PostProofArg

type PostProofArg struct {
	Sig            string
	ID             keybase1.SigID
	RemoteUsername string
	ProofType      string
	Supersede      bool
	RemoteKey      string
	SigningKey     GenericKey
}

type PostProofRes

type PostProofRes struct {
	Text     string
	ID       string
	Metadata *jsonw.Wrapper
}

func PostProof

func PostProof(arg PostProofArg) (*PostProofRes, error)

type ProfileNotPublicError

type ProfileNotPublicError struct {
	// contains filtered or unexported fields
}

func (ProfileNotPublicError) Error

func (p ProfileNotPublicError) Error() string

func (ProfileNotPublicError) ToStatus

func (e ProfileNotPublicError) ToStatus() keybase1.Status

type PromptArg

type PromptArg struct {
	TerminalPrompt string
	PinentryDesc   string
	PinentryPrompt string
	Checker        *Checker
	RetryMessage   string
	UseSecretStore bool
}

type PromptDefault

type PromptDefault int
const (
	PromptDefaultNo PromptDefault = iota
	PromptDefaultYes
	PromptDefaultNeither
)

type PromptDescriptor

type PromptDescriptor int

type Proof

type Proof struct {
	Key, Value string
}

func RemoteProofChainLinkToProof

func RemoteProofChainLinkToProof(r RemoteProofChainLink) Proof

type ProofAPIError

type ProofAPIError struct {
	ProofErrorImpl
	// contains filtered or unexported fields
}

func NewProofAPIError

func NewProofAPIError(s keybase1.ProofStatus, u string, d string, a ...interface{}) *ProofAPIError

func XapiError

func XapiError(err error, u string) *ProofAPIError

type ProofCache

type ProofCache struct {
	Contextified

	sync.RWMutex
	// contains filtered or unexported fields
}

func NewProofCache

func NewProofCache(g *GlobalContext, capac int) *ProofCache

func (*ProofCache) Get

func (pc *ProofCache) Get(sid keybase1.SigID) *CheckResult

func (*ProofCache) Put

func (pc *ProofCache) Put(sid keybase1.SigID, pe ProofError) error

type ProofChecker

type ProofChecker interface {
	CheckHint(h SigHint) ProofError
	CheckStatus(h SigHint) ProofError
	GetTorError() ProofError
}

ProofChecker is an interface for performing a remote check for a proof

type ProofCheckerFactory

type ProofCheckerFactory interface {
	MakeProofChecker(l RemoteProofChainLink) (ProofChecker, ProofError)
}

ProofCheckerFactory makes a ProofChecker. In production, we'll only need the global set of ProofCheckers, but for testing, we want to stub them out.

type ProofError

type ProofError interface {
	error
	GetProofStatus() keybase1.ProofStatus
	GetDesc() string
}

func ImportProofError

func ImportProofError(e keybase1.ProofResult) ProofError

type ProofErrorImpl

type ProofErrorImpl struct {
	Status keybase1.ProofStatus
	Desc   string
}

func NewProofError

func NewProofError(s keybase1.ProofStatus, d string, a ...interface{}) *ProofErrorImpl

func (*ProofErrorImpl) Error

func (e *ProofErrorImpl) Error() string

func (*ProofErrorImpl) GetDesc

func (e *ProofErrorImpl) GetDesc() string

func (*ProofErrorImpl) GetProofStatus

func (e *ProofErrorImpl) GetProofStatus() keybase1.ProofStatus

type ProofLinkWithState

type ProofLinkWithState struct {
	// contains filtered or unexported fields
}

ProofLinkWithState contains a RemoteProofChainLink and the proof state. In addition, it satisfies the TrackIdComponent interface.

func (ProofLinkWithState) GetProofState

func (p ProofLinkWithState) GetProofState() keybase1.ProofState

func (ProofLinkWithState) GetProofType

func (p ProofLinkWithState) GetProofType() keybase1.ProofType

func (ProofLinkWithState) LastWriterWins

func (p ProofLinkWithState) LastWriterWins() bool

func (ProofLinkWithState) ToIDString

func (p ProofLinkWithState) ToIDString() string

func (ProofLinkWithState) ToKeyValuePair

func (p ProofLinkWithState) ToKeyValuePair() (string, string)

type ProofMetadata

type ProofMetadata struct {
	Me             *User
	SigningUser    UserBasic
	LastSeqno      Seqno
	PrevLinkID     LinkID
	LinkType       LinkType
	SigningKey     GenericKey
	Eldest         keybase1.KID
	CreationTime   int64
	ExpireIn       int
	IncludePGPHash bool
}

func (ProofMetadata) ToJSON

func (arg ProofMetadata) ToJSON(g *GlobalContext) (ret *jsonw.Wrapper, err error)

type ProofNotFoundForServiceError

type ProofNotFoundForServiceError struct {
	Service string
}

func (ProofNotFoundForServiceError) Error

func (ProofNotFoundForServiceError) ToStatus

func (e ProofNotFoundForServiceError) ToStatus() (s keybase1.Status)

type ProofNotFoundForUsernameError

type ProofNotFoundForUsernameError struct {
	Service  string
	Username string
}

func (ProofNotFoundForUsernameError) Error

func (ProofNotFoundForUsernameError) ToStatus

type ProofNotYetAvailableError

type ProofNotYetAvailableError struct{}

func (ProofNotYetAvailableError) Error

type ProofSet

type ProofSet struct {
	// contains filtered or unexported fields
}

func NewProofSet

func NewProofSet(proofs []Proof) *ProofSet

func (*ProofSet) Add

func (ps *ProofSet) Add(p Proof)

func (ProofSet) Get

func (ps ProofSet) Get(keys []string) (ret []Proof)

type ProtocolDowngradeError

type ProtocolDowngradeError struct {
	// contains filtered or unexported fields
}

func (ProtocolDowngradeError) Error

func (h ProtocolDowngradeError) Error() string

type ProvisionUI

type ProvisionUI interface {
	keybase1.ProvisionUiInterface
}

type ProvisionUnavailableError

type ProvisionUnavailableError struct{}

func (ProvisionUnavailableError) Error

func (ProvisionUnavailableError) ToStatus

type PublicKeyList

type PublicKeyList []keybase1.PublicKey

func (PublicKeyList) Len

func (l PublicKeyList) Len() int

func (PublicKeyList) Less

func (l PublicKeyList) Less(i, j int) bool

func (PublicKeyList) Swap

func (l PublicKeyList) Swap(i, j int)

type RPCLogFactory

type RPCLogFactory struct {
	Contextified
}

func NewRPCLogFactory

func NewRPCLogFactory(g *GlobalContext) *RPCLogFactory

func (*RPCLogFactory) NewLog

func (r *RPCLogFactory) NewLog(a net.Addr) rpc.LogInterface

type RPCLogOptions

type RPCLogOptions struct {
	// contains filtered or unexported fields
}

func (*RPCLogOptions) ClientTrace

func (r *RPCLogOptions) ClientTrace() bool

func (*RPCLogOptions) Profile

func (r *RPCLogOptions) Profile() bool

func (*RPCLogOptions) Reload

func (r *RPCLogOptions) Reload()

func (*RPCLogOptions) ServerTrace

func (r *RPCLogOptions) ServerTrace() bool

func (*RPCLogOptions) ShowAddress

func (r *RPCLogOptions) ShowAddress() bool

func (*RPCLogOptions) ShowArg

func (r *RPCLogOptions) ShowArg() bool

func (*RPCLogOptions) ShowResult

func (r *RPCLogOptions) ShowResult() bool

func (*RPCLogOptions) TransportStart

func (r *RPCLogOptions) TransportStart() bool

type RateLimitCategory

type RateLimitCategory string
const (
	CheckTrackingRateLimit RateLimitCategory = "CheckTrackingRateLimit"
	TestEventRateLimit                       = "TestEventRateLimit"
)

type RateLimits

type RateLimits struct {
	Contextified
	sync.Mutex
	// contains filtered or unexported fields
}

func NewRateLimits

func NewRateLimits(g *GlobalContext) *RateLimits

func (*RateLimits) GetPermission

func (r *RateLimits) GetPermission(category RateLimitCategory, interval time.Duration) bool

type RawKeyFamily

type RawKeyFamily struct {
	AllBundles []string `json:"all_bundles"`
}

As returned by user/lookup.json

type ReadCloser

type ReadCloser struct {
	// contains filtered or unexported fields
}

type ReceiverDeviceError

type ReceiverDeviceError struct {
	Msg string
}

func NewReceiverDeviceError

func NewReceiverDeviceError(expected, received keybase1.DeviceID) ReceiverDeviceError

func (ReceiverDeviceError) Error

func (e ReceiverDeviceError) Error() string

func (ReceiverDeviceError) ToStatus

func (e ReceiverDeviceError) ToStatus() keybase1.Status

type RedditChecker

type RedditChecker struct {
	// contains filtered or unexported fields
}

func (*RedditChecker) CheckData

func (rc *RedditChecker) CheckData(h SigHint, dat *jsonw.Wrapper) ProofError

func (*RedditChecker) CheckHint

func (rc *RedditChecker) CheckHint(h SigHint) ProofError

func (*RedditChecker) CheckStatus

func (rc *RedditChecker) CheckStatus(h SigHint) ProofError

func (*RedditChecker) GetTorError

func (rc *RedditChecker) GetTorError() ProofError

func (*RedditChecker) ScreenNameCompare

func (rc *RedditChecker) ScreenNameCompare(s1, s2 string) bool

func (*RedditChecker) UnpackData

func (rc *RedditChecker) UnpackData(inp *jsonw.Wrapper) (*jsonw.Wrapper, ProofError)

type RedditServiceType

type RedditServiceType struct{ BaseServiceType }

func (RedditServiceType) AllStringKeys

func (t RedditServiceType) AllStringKeys() []string

func (RedditServiceType) CheckProofText

func (t RedditServiceType) CheckProofText(text string, id keybase1.SigID, sig string) (err error)

func (RedditServiceType) CheckUsername

func (t RedditServiceType) CheckUsername(s string) (err error)

func (RedditServiceType) DisplayName

func (t RedditServiceType) DisplayName(un string) string

func (RedditServiceType) FormatProofText

func (t RedditServiceType) FormatProofText(ppr *PostProofRes) (res string, err error)

func (RedditServiceType) GetPrompt

func (t RedditServiceType) GetPrompt() string

func (RedditServiceType) GetProofType

func (t RedditServiceType) GetProofType() string

func (RedditServiceType) GetTypeName

func (t RedditServiceType) GetTypeName() string

func (RedditServiceType) PostInstructions

func (t RedditServiceType) PostInstructions(un string) *Markup

func (RedditServiceType) RecheckProofPosting

func (t RedditServiceType) RecheckProofPosting(tryNumber int, status keybase1.ProofStatus, _ string) (warning *Markup, err error)

func (RedditServiceType) ToChecker

func (t RedditServiceType) ToChecker() Checker

func (RedditServiceType) ToServiceJSON

func (t RedditServiceType) ToServiceJSON(un string) *jsonw.Wrapper

type ReloginRequiredError

type ReloginRequiredError struct{}

func (ReloginRequiredError) Error

func (e ReloginRequiredError) Error() string

func (ReloginRequiredError) ToStatus

func (e ReloginRequiredError) ToStatus() keybase1.Status
type RemoteProofChainLink interface {
	TypedChainLink
	TableKey() string
	LastWriterWins() bool
	GetRemoteUsername() string
	GetHostname() string
	GetProtocol() string
	DisplayCheck(ui IdentifyUI, lcr LinkCheckResult)
	ToTrackingStatement(keybase1.ProofState) (*jsonw.Wrapper, error)
	CheckDataJSON() *jsonw.Wrapper
	ToIDString() string
	ToKeyValuePair() (string, string)
	ComputeTrackDiff(tl *TrackLookup) TrackDiff
	GetProofType() keybase1.ProofType
	ProofText() string
}

========================================================================= Remote, Web and Social

func ParseWebServiceBinding

func ParseWebServiceBinding(base GenericChainLink) (ret RemoteProofChainLink, e error)

To be used for signatures in a user's signature chain.

type RemoteProofLinks struct {
	// contains filtered or unexported fields
}

RemoteProofLinks holds a set of RemoteProofChainLinks, organized by service.

func NewRemoteProofLinks() *RemoteProofLinks

NewRemoteProofLinks creates a new empty collection of proof links.

func (*RemoteProofLinks) Active

func (r *RemoteProofLinks) Active() []RemoteProofChainLink

Active returns all the active proof links, deduplicating any and honoring the LastWriterWins option.

func (*RemoteProofLinks) AddProofsToSet

func (r *RemoteProofLinks) AddProofsToSet(existing *ProofSet, okStates []keybase1.ProofState)

AddProofsToSet adds the active proofs to an existing ProofSet, if they're one of the given OkStates. If okStates is nil, then we check only against keybase1.ProofState_OK.

func (*RemoteProofLinks) ForService

ForService returns all the active proof links for a service.

func (*RemoteProofLinks) Insert

func (r *RemoteProofLinks) Insert(link RemoteProofChainLink, err ProofError)

Insert adds a link to the collection of proof links.

func (*RemoteProofLinks) TrackSet

func (r *RemoteProofLinks) TrackSet() *TrackSet

TrackSet creates a new TrackSet with all the active proofs.

func (*RemoteProofLinks) TrackingStatement

func (r *RemoteProofLinks) TrackingStatement() *jsonw.Wrapper

TrackingStatement generates the remote proofs portions of the tracking statement from the active proofs.

type RemoteStream

type RemoteStream struct {
	Stream    keybase1.Stream
	Cli       *keybase1.StreamUiClient
	SessionID int
}

func (RemoteStream) Close

func (ewc RemoteStream) Close() (err error)

func (RemoteStream) Read

func (ewc RemoteStream) Read(buf []byte) (n int, err error)

func (RemoteStream) Write

func (ewc RemoteStream) Write(buf []byte) (n int, err error)

type RemoteStreamBuffered

type RemoteStreamBuffered struct {
	// contains filtered or unexported fields
}

func NewRemoteStreamBuffered

func NewRemoteStreamBuffered(s keybase1.Stream, c *keybase1.StreamUiClient, sessionID int) *RemoteStreamBuffered

func (*RemoteStreamBuffered) Close

func (x *RemoteStreamBuffered) Close() error

func (*RemoteStreamBuffered) Read

func (x *RemoteStreamBuffered) Read(p []byte) (int, error)

func (*RemoteStreamBuffered) Write

func (x *RemoteStreamBuffered) Write(p []byte) (int, error)

type ReportingTimer

type ReportingTimer interface {
	Report(prefix string)
}

ReportingTimer is an interface shared between ReportingTimerReal and ReportingTimerDummy, to allow for convenient disabling of timer features.

type ReportingTimerDummy

type ReportingTimerDummy struct{}

ReportingTimerDummy fulfills the ReportingTimer interface but doesn't do anything when done.

func (ReportingTimerDummy) Report

func (r ReportingTimerDummy) Report(prefix string)

Report is a noop.

type ReportingTimerReal

type ReportingTimerReal struct {
	SimpleTimer
	Contextified
}

ReportingTimerReal is a SimpleTimer that reports after the timing measurement is done.

func NewReportingTimerReal

func NewReportingTimerReal(ctx Contextified) *ReportingTimerReal

NewReportingTimerReal returns an initialized reporting timer that actually reports timing information.

func (*ReportingTimerReal) Report

func (r *ReportingTimerReal) Report(prefix string)

Report stops and resets the timer, then logs to Info what the duration was.

type Requester

type Requester interface {
	// contains filtered or unexported methods
}

Internal and External APIs both implement these methods, allowing us to share the request-making code below in doRequest

type ResolutionError

type ResolutionError struct {
	Input string
	Msg   string
}

func (ResolutionError) Error

func (e ResolutionError) Error() string

func (ResolutionError) ToStatus

func (e ResolutionError) ToStatus() keybase1.Status

type ResolveResult

type ResolveResult struct {
	// contains filtered or unexported fields
}

func (*ResolveResult) GetBody

func (res *ResolveResult) GetBody() *jsonw.Wrapper

func (*ResolveResult) GetError

func (res *ResolveResult) GetError() error

func (*ResolveResult) GetNormalizedQueriedUsername

func (res *ResolveResult) GetNormalizedQueriedUsername() NormalizedUsername

func (*ResolveResult) GetNormalizedUsername

func (res *ResolveResult) GetNormalizedUsername() NormalizedUsername

func (*ResolveResult) GetUID

func (res *ResolveResult) GetUID() keybase1.UID

func (*ResolveResult) GetUsername

func (res *ResolveResult) GetUsername() string

type Resolver

type Resolver struct {
	Contextified
	// contains filtered or unexported fields
}

func NewResolver

func NewResolver(g *GlobalContext) *Resolver

func (*Resolver) EnableCaching

func (r *Resolver) EnableCaching()

func (*Resolver) Resolve

func (r *Resolver) Resolve(input string) ResolveResult

func (*Resolver) ResolveFullExpression

func (r *Resolver) ResolveFullExpression(input string) (res ResolveResult)

func (*Resolver) ResolveFullExpressionNeedUsername

func (r *Resolver) ResolveFullExpressionNeedUsername(input string) (res ResolveResult)

func (*Resolver) ResolveFullExpressionWithBody

func (r *Resolver) ResolveFullExpressionWithBody(input string) (res ResolveResult)

func (*Resolver) ResolveWithBody

func (r *Resolver) ResolveWithBody(input string) ResolveResult

func (*Resolver) Shutdown

func (r *Resolver) Shutdown()

type RetryExhaustedError

type RetryExhaustedError struct {
}

func (RetryExhaustedError) Error

func (e RetryExhaustedError) Error() string

type ReverseSigError

type ReverseSigError struct {
	// contains filtered or unexported fields
}

func (ReverseSigError) Error

func (r ReverseSigError) Error() string
type RevokeChainLink struct {
	GenericChainLink
	// contains filtered or unexported fields
}
func ParseRevokeChainLink(b GenericChainLink) (ret *RevokeChainLink, err error)

func (*RevokeChainLink) GetDevice

func (r *RevokeChainLink) GetDevice() *Device

func (*RevokeChainLink) IsRevocationIsh

func (r *RevokeChainLink) IsRevocationIsh() bool

func (*RevokeChainLink) ToDisplayString

func (r *RevokeChainLink) ToDisplayString() string

func (*RevokeChainLink) Type

func (r *RevokeChainLink) Type() string

type RevokedKey

type RevokedKey struct {
	Key       GenericKey
	RevokedAt *KeybaseTime
}

type RooterChecker

type RooterChecker struct {
	// contains filtered or unexported fields
}

func (*RooterChecker) CheckData

func (rc *RooterChecker) CheckData(h SigHint, dat string) ProofError

func (*RooterChecker) CheckHint

func (rc *RooterChecker) CheckHint(h SigHint) (err ProofError)

func (*RooterChecker) CheckStatus

func (rc *RooterChecker) CheckStatus(h SigHint) (perr ProofError)

func (*RooterChecker) GetTorError

func (rc *RooterChecker) GetTorError() ProofError

func (*RooterChecker) ScreenNameCompare

func (rc *RooterChecker) ScreenNameCompare(s1, s2 string) bool

func (*RooterChecker) UnpackData

func (rc *RooterChecker) UnpackData(inp *jsonw.Wrapper) (string, ProofError)

type RooterServiceType

type RooterServiceType struct{ BaseServiceType }

func (RooterServiceType) AllStringKeys

func (t RooterServiceType) AllStringKeys() []string

func (RooterServiceType) CheckProofText

func (t RooterServiceType) CheckProofText(text string, id keybase1.SigID, sig string) (err error)

func (RooterServiceType) CheckUsername

func (t RooterServiceType) CheckUsername(s string) (err error)

func (RooterServiceType) DisplayName

func (t RooterServiceType) DisplayName(un string) string

func (RooterServiceType) GetPrompt

func (t RooterServiceType) GetPrompt() string

func (RooterServiceType) GetProofType

func (t RooterServiceType) GetProofType() string

func (RooterServiceType) GetTypeName

func (t RooterServiceType) GetTypeName() string

func (RooterServiceType) NormalizeUsername

func (t RooterServiceType) NormalizeUsername(s string) (string, error)

func (RooterServiceType) PostInstructions

func (t RooterServiceType) PostInstructions(un string) *Markup

func (RooterServiceType) RecheckProofPosting

func (t RooterServiceType) RecheckProofPosting(tryNumber int, status keybase1.ProofStatus, _ string) (warning *Markup, err error)

func (RooterServiceType) ToChecker

func (t RooterServiceType) ToChecker() Checker

func (RooterServiceType) ToServiceJSON

func (t RooterServiceType) ToServiceJSON(un string) *jsonw.Wrapper

type RunGpg2Arg

type RunGpg2Arg struct {
	Arguments []string
	Stdin     bool
	Stderr    bool
	Stdout    bool
}

type RunGpg2Res

type RunGpg2Res struct {
	Stdin  io.WriteCloser
	Stdout io.ReadCloser
	Stderr io.ReadCloser
	Wait   func() error
	Err    error
}

type RunMode

type RunMode string

func StringToRunMode

func StringToRunMode(s string) (RunMode, error)

StringToRunMode turns a string into a run-mode

type RunModeGetter

type RunModeGetter func() RunMode

type S

type S struct {
	Val string
}

func B64Arg

func B64Arg(b []byte) S

func HexArg

func HexArg(b []byte) S

func (S) String

func (s S) String() string

type SKB

type SKB struct {
	Priv SKBPriv  `codec:"priv"`
	Pub  []byte   `codec:"pub"`
	Type AlgoType `codec:"type,omitempty"`

	Contextified

	sync.Mutex // currently only for uid
	// contains filtered or unexported fields
}

func NewSKB

func NewSKB(gc *GlobalContext) *SKB

func WriteLksSKBToKeyring

func WriteLksSKBToKeyring(g *GlobalContext, k GenericKey, lks *LKSec, lctx LoginContext) (*SKB, error)

func (*SKB) ArmoredEncode

func (s *SKB) ArmoredEncode() (ret string, err error)

func (*SKB) Dump

func (s *SKB) Dump()

func (*SKB) GetPubKey

func (s *SKB) GetPubKey() (key GenericKey, err error)

func (*SKB) HumanDescription

func (s *SKB) HumanDescription(owner *User) (string, error)

func (*SKB) PromptAndUnlock

func (s *SKB) PromptAndUnlock(arg SecretKeyPromptArg, which string, secretStore SecretStore, me *User) (ret GenericKey, err error)

func (*SKB) RawUnlockedKey

func (s *SKB) RawUnlockedKey() []byte

func (*SKB) ReadKey

func (s *SKB) ReadKey() (g GenericKey, err error)

func (*SKB) SetUID

func (s *SKB) SetUID(uid keybase1.UID)

func (*SKB) ToPacket

func (s *SKB) ToPacket() (ret *KeybasePacket, err error)

func (*SKB) UnlockNoPrompt

func (s *SKB) UnlockNoPrompt(lctx LoginContext, secretStore SecretStore) (GenericKey, error)

func (*SKB) UnlockSecretKey

func (s *SKB) UnlockSecretKey(lctx LoginContext, passphrase string, tsec *triplesec.Cipher, pps *PassphraseStream, secretStorer SecretStorer) (key GenericKey, err error)

func (*SKB) UnlockWithStoredSecret

func (s *SKB) UnlockWithStoredSecret(lctx LoginContext, secretRetriever SecretRetriever) (ret GenericKey, err error)

func (*SKB) VerboseDescription

func (s *SKB) VerboseDescription() (ret string, err error)

type SKBKeyringFile

type SKBKeyringFile struct {
	Blocks []*SKB
	// contains filtered or unexported fields
}

func LoadSKBKeyring

func LoadSKBKeyring(un NormalizedUsername, g *GlobalContext) (*SKBKeyringFile, error)

func NewSKBKeyringFile

func NewSKBKeyringFile(n string) *SKBKeyringFile

func (SKBKeyringFile) FindSecretKey

func (k SKBKeyringFile) FindSecretKey(kids []keybase1.KID) (ret *SKB)

FindSecretKey will, given a list of KIDs, find the first one in the list that has a corresponding secret key in the keyring file.

func (SKBKeyringFile) GetFilename

func (k SKBKeyringFile) GetFilename() string

func (*SKBKeyringFile) HasPGPKeys

func (k *SKBKeyringFile) HasPGPKeys() bool

func (*SKBKeyringFile) Index

func (k *SKBKeyringFile) Index() (err error)

func (*SKBKeyringFile) Load

func (k *SKBKeyringFile) Load() (err error)

func (*SKBKeyringFile) LoadAndIndex

func (k *SKBKeyringFile) LoadAndIndex() error

func (SKBKeyringFile) LookupByFingerprint

func (k SKBKeyringFile) LookupByFingerprint(fp PGPFingerprint) *SKB

func (SKBKeyringFile) LookupByKid

func (k SKBKeyringFile) LookupByKid(kid keybase1.KID) *SKB

func (*SKBKeyringFile) Push

func (k *SKBKeyringFile) Push(skb *SKB) error

func (*SKBKeyringFile) PushAndSave

func (k *SKBKeyringFile) PushAndSave(skb *SKB) error

func (*SKBKeyringFile) Save

func (k *SKBKeyringFile) Save() error

func (SKBKeyringFile) SearchWithComputedKeyFamily

func (k SKBKeyringFile) SearchWithComputedKeyFamily(ckf *ComputedKeyFamily, ska SecretKeyArg) []*SKB

func (SKBKeyringFile) WriteTo

func (k SKBKeyringFile) WriteTo(w io.Writer) (int64, error)

type SKBPriv

type SKBPriv struct {
	Data                 []byte `codec:"data"`
	Encryption           int    `codec:"encryption"`
	PassphraseGeneration int    `codec:"passphrase_generation,omitempty"`
}

type SafeWriter

type SafeWriter interface {
	GetFilename() string
	WriteTo(io.Writer) (int64, error)
}

type SaltpackEncryptArg

type SaltpackEncryptArg struct {
	Source         io.Reader
	Sink           io.WriteCloser
	Receivers      []NaclDHKeyPublic
	Sender         NaclDHKeyPair
	Binary         bool
	HideRecipients bool
}

type SaltpackUI

type SaltpackUI interface {
	SaltpackPromptForDecrypt(context.Context, keybase1.SaltpackPromptForDecryptArg) error
	SaltpackVerifySuccess(context.Context, keybase1.SaltpackVerifySuccessArg) error
}

type SecretKeyArg

type SecretKeyArg struct {
	// Whose keys to use. Must be non-nil.
	Me *User

	// The allowed key types.
	KeyType SecretKeyType

	// For non-device keys, a string that the key has to match. If
	// empty, any valid key is allowed.
	KeyQuery   string
	ExactMatch bool // if set, full equality required
}

type SecretKeyPromptArg

type SecretKeyPromptArg struct {
	LoginContext   LoginContext
	Ska            SecretKeyArg
	SecretUI       SecretUI
	Reason         string
	UseCancelCache bool /* if true, when user cancels prompt, don't prompt again for 5m */
}

type SecretKeyType

type SecretKeyType int
const (
	// The current device signing key.
	DeviceSigningKeyType SecretKeyType = iota
	// The current device encryption key.
	DeviceEncryptionKeyType
	// A PGP key (including the synced PGP key, if there is one).
	PGPKeyType
)

func (SecretKeyType) String

func (t SecretKeyType) String() string

type SecretRetriever

type SecretRetriever interface {
	RetrieveSecret() ([]byte, error)
}

type SecretStore

type SecretStore interface {
	SecretRetriever
	SecretStorer
}

func NewSecretStore

func NewSecretStore(g *GlobalContext, username NormalizedUsername) SecretStore

type SecretStoreAll

type SecretStoreAll interface {
	RetrieveSecret(username NormalizedUsername) ([]byte, error)
	StoreSecret(username NormalizedUsername, secret []byte) error
	ClearSecret(username NormalizedUsername) error
	GetUsersWithStoredSecrets() (ret []string, err error)
}

func NewSecretStoreAll

func NewSecretStoreAll(g *GlobalContext) SecretStoreAll

type SecretStoreContext

type SecretStoreContext interface {
	GetAllUserNames() (NormalizedUsername, []NormalizedUsername, error)
	GetStoredSecretServiceName() string
	GetStoredSecretAccessGroup() string
}

type SecretStoreError

type SecretStoreError struct {
	Msg string
}

func (SecretStoreError) Error

func (e SecretStoreError) Error() string

type SecretStoreImp

type SecretStoreImp struct {
	// contains filtered or unexported fields
}

func (SecretStoreImp) RetrieveSecret

func (s SecretStoreImp) RetrieveSecret() ([]byte, error)

func (SecretStoreImp) StoreSecret

func (s SecretStoreImp) StoreSecret(secret []byte) error

type SecretStorer

type SecretStorer interface {
	StoreSecret(secret []byte) error
}

type SecretSyncer

type SecretSyncer struct {
	sync.Mutex
	Contextified
	// contains filtered or unexported fields
}

func NewSecretSyncer

func NewSecretSyncer(g *GlobalContext) *SecretSyncer

func (*SecretSyncer) ActiveDevices

func (ss *SecretSyncer) ActiveDevices(includeTypesSet DeviceTypeSet) (DeviceKeyMap, error)

ActiveDevices returns all the active desktop and mobile devices.

func (*SecretSyncer) AllActiveKeys

func (ss *SecretSyncer) AllActiveKeys(ckf *ComputedKeyFamily) []*SKB

AllActiveKeys returns all the active synced PGP keys.

func (*SecretSyncer) Clear

func (ss *SecretSyncer) Clear() error

func (*SecretSyncer) Devices

func (ss *SecretSyncer) Devices() (DeviceKeyMap, error)

func (*SecretSyncer) DumpPrivateKeys

func (ss *SecretSyncer) DumpPrivateKeys()

func (*SecretSyncer) FindActiveKey

func (ss *SecretSyncer) FindActiveKey(ckf *ComputedKeyFamily) (ret *SKB, err error)

FindActiveKey examines the synced keys, looking for one that's currently active. Returns ret=nil if none was found.

func (*SecretSyncer) FindDevice

func (ss *SecretSyncer) FindDevice(id keybase1.DeviceID) (DeviceKey, error)

func (*SecretSyncer) FindPrivateKey

func (ss *SecretSyncer) FindPrivateKey(kid string) (ServerPrivateKey, bool)

func (*SecretSyncer) HasActiveDevice

func (ss *SecretSyncer) HasActiveDevice(includeTypesSet DeviceTypeSet) (bool, error)

HasActiveDevice returns true if there is an active desktop or mobile device available.

func (*SecretSyncer) HasDevices

func (ss *SecretSyncer) HasDevices() bool

func (*SecretSyncer) IsDeviceNameTaken

func (ss *SecretSyncer) IsDeviceNameTaken(name string, includeTypesSet DeviceTypeSet) bool

IsDeviceNameTaken returns true if a desktop or mobile device is using a name already.

type SecretUI

type SecretUI interface {
	GetPassphrase(pinentry keybase1.GUIEntryArg, terminal *keybase1.SecretEntryArg) (keybase1.GetPassphraseRes, error)
}

type SelfNotFoundError

type SelfNotFoundError struct {
	// contains filtered or unexported fields
}

func (SelfNotFoundError) Error

func (e SelfNotFoundError) Error() string

func (SelfNotFoundError) ToStatus

func (e SelfNotFoundError) ToStatus() keybase1.Status
type SelfSigChainLink struct {
	GenericChainLink
	// contains filtered or unexported fields
}
func ParseSelfSigChainLink(base GenericChainLink) (ret *SelfSigChainLink, err error)

func (*SelfSigChainLink) CheckDataJSON

func (s *SelfSigChainLink) CheckDataJSON() *jsonw.Wrapper

func (*SelfSigChainLink) ComputeTrackDiff

func (s *SelfSigChainLink) ComputeTrackDiff(tl *TrackLookup) TrackDiff

func (*SelfSigChainLink) DisplayCheck

func (s *SelfSigChainLink) DisplayCheck(ui IdentifyUI, lcr LinkCheckResult)

func (*SelfSigChainLink) GetDevice

func (s *SelfSigChainLink) GetDevice() *Device

func (*SelfSigChainLink) GetHostname

func (s *SelfSigChainLink) GetHostname() string

func (*SelfSigChainLink) GetPGPFullHash

func (s *SelfSigChainLink) GetPGPFullHash() string

func (*SelfSigChainLink) GetProofType

func (s *SelfSigChainLink) GetProofType() keybase1.ProofType

func (*SelfSigChainLink) GetProtocol

func (s *SelfSigChainLink) GetProtocol() string

func (*SelfSigChainLink) GetRemoteUsername

func (s *SelfSigChainLink) GetRemoteUsername() string

func (*SelfSigChainLink) LastWriterWins

func (s *SelfSigChainLink) LastWriterWins() bool

func (*SelfSigChainLink) ParseDevice

func (s *SelfSigChainLink) ParseDevice() (err error)

func (*SelfSigChainLink) ProofText

func (s *SelfSigChainLink) ProofText() string

func (*SelfSigChainLink) TableKey

func (s *SelfSigChainLink) TableKey() string

func (*SelfSigChainLink) ToDisplayString

func (s *SelfSigChainLink) ToDisplayString() string

func (*SelfSigChainLink) ToIDString

func (s *SelfSigChainLink) ToIDString() string

func (*SelfSigChainLink) ToKeyValuePair

func (s *SelfSigChainLink) ToKeyValuePair() (string, string)

func (*SelfSigChainLink) ToTrackingStatement

func (s *SelfSigChainLink) ToTrackingStatement(keybase1.ProofState) (*jsonw.Wrapper, error)

func (*SelfSigChainLink) Type

func (s *SelfSigChainLink) Type() string

type SelfTrackError

type SelfTrackError struct{}

func (SelfTrackError) Error

func (e SelfTrackError) Error() string

type Seqno

type Seqno int64

type Server

type Server interface {
}

type ServerChainError

type ServerChainError struct {
	// contains filtered or unexported fields
}

func NewServerChainError

func NewServerChainError(d string, a ...interface{}) ServerChainError

func (ServerChainError) Error

func (e ServerChainError) Error() string

type ServerPrivateKey

type ServerPrivateKey struct {
	Kid     string `json:"kid"`
	KeyType int    `json:"key_type"`
	Bundle  string `json:"bundle"`
	Mtime   int    `json:"mtime"`
	Ctime   int    `json:"ctime"`
	KeyBits int    `json:"key_bits"`
	KeyAlgo int    `json:"key_algo"`
}

func (*ServerPrivateKey) FindActiveKey

func (k *ServerPrivateKey) FindActiveKey(ckf *ComputedKeyFamily) (ret *SKB, err error)

func (ServerPrivateKey) ToSKB

func (k ServerPrivateKey) ToSKB(gc *GlobalContext) (*SKB, error)

type ServerPrivateKeyMap

type ServerPrivateKeyMap map[string]ServerPrivateKey

type ServerPrivateKeys

type ServerPrivateKeys struct {
	Status      APIStatus           `json:"status"`
	Version     int                 `json:"version"`
	Mtime       *int                `json:"mtime"`
	PrivateKeys ServerPrivateKeyMap `json:"private_keys"` // note these are only PGP keys
	Devices     DeviceKeyMap        `json:"devices"`
}

type ServiceBlock

type ServiceBlock struct {
	// contains filtered or unexported fields
}

Can be used to either parse a proof `service` JSON block, or a `remote_key_proof` JSON block in a tracking statement.

func ParseServiceBlock

func ParseServiceBlock(jw *jsonw.Wrapper, pt keybase1.ProofType) (sb *ServiceBlock, err error)

func (ServiceBlock) GetProofState

func (sb ServiceBlock) GetProofState() keybase1.ProofState

func (ServiceBlock) GetProofType

func (sb ServiceBlock) GetProofType() keybase1.ProofType

func (ServiceBlock) IsSocial

func (sb ServiceBlock) IsSocial() bool

func (ServiceBlock) LastWriterWins

func (sb ServiceBlock) LastWriterWins() bool

func (ServiceBlock) ToIDString

func (sb ServiceBlock) ToIDString() string

func (ServiceBlock) ToKeyValuePair

func (sb ServiceBlock) ToKeyValuePair() (string, string)

type ServiceInfo

type ServiceInfo struct {
	Version string `json:"version,omitempty"`
	Label   string `json:"label,omitempty"`
	Pid     int    `json:"pid,omitempty"`
}

ServiceInfo describes runtime info for a service. This is primarily used to detect service updates.

func KeybaseServiceInfo

func KeybaseServiceInfo(g *GlobalContext) ServiceInfo

KeybaseServiceInfo is runtime info for the Keybase service.

func NewServiceInfo

func NewServiceInfo(version string, prerelease string, label string, pid int) ServiceInfo

NewServiceInfo generates service info for other services (like KBFS).

func WaitForServiceInfoFile

func WaitForServiceInfoFile(g *GlobalContext, path string, label string, pid string, maxAttempts int, wait time.Duration, reason string) (*ServiceInfo, error)

WaitForServiceInfoFile tries to wait for a service info file, which should be written on successful service startup.

func (ServiceInfo) WriteFile

func (s ServiceInfo) WriteFile(path string) error

WriteFile writes service info as JSON in runtimeDir.

type ServiceType

type ServiceType interface {
	AllStringKeys() []string
	CheckUsername(string) error
	NormalizeUsername(string) (string, error)
	CaseSensitiveUsername() bool
	ToChecker() Checker
	GetPrompt() string
	LastWriterWins() bool
	PreProofCheck(username string) (*Markup, error)
	PreProofWarning(remotename string) *Markup
	ToServiceJSON(remotename string) *jsonw.Wrapper
	PostInstructions(remotename string) *Markup
	DisplayName(username string) string
	RecheckProofPosting(tryNumber int, status keybase1.ProofStatus, username string) (warning *Markup, err error)
	GetProofType() string
	GetTypeName() string
	CheckProofText(text string, id keybase1.SigID, sig string) error
	FormatProofText(*PostProofRes) (string, error)
	GetAPIArgKey() string
}

func GetServiceType

func GetServiceType(s string) ServiceType

type Session

type Session struct {
	Contextified
	// contains filtered or unexported fields
}

func NewSessionThin

func NewSessionThin(uid keybase1.UID, username NormalizedUsername, token string) *Session

NewSessionThin creates a minimal (thin) session of just the uid and username. Clients of the daemon that use the session protocol need this.

func (*Session) APIArgs

func (s *Session) APIArgs() (token, csrf string)

func (*Session) GetCsrf

func (s *Session) GetCsrf() string

func (*Session) GetDictionary

func (s *Session) GetDictionary() *jsonw.Wrapper

func (*Session) GetToken

func (s *Session) GetToken() string

func (*Session) GetUID

func (s *Session) GetUID() keybase1.UID

func (*Session) GetUsername

func (s *Session) GetUsername() *NormalizedUsername

func (*Session) HasSessionToken

func (s *Session) HasSessionToken() bool

func (*Session) Invalidate

func (s *Session) Invalidate()

Invalidate marks the session as invalid and posts a logout notification.

func (*Session) IsLoggedIn

func (s *Session) IsLoggedIn() bool

func (*Session) IsLoggedInAndProvisioned

func (s *Session) IsLoggedInAndProvisioned() bool

true if user is logged in and has a device fully provisioned

func (*Session) IsRecent

func (s *Session) IsRecent() bool

func (*Session) IsValid

func (s *Session) IsValid() bool

func (*Session) Load

func (s *Session) Load() error

func (*Session) Logout

func (s *Session) Logout() error

func (*Session) SetCsrf

func (s *Session) SetCsrf(t string)

func (*Session) SetDeviceProvisioned

func (s *Session) SetDeviceProvisioned(devid keybase1.DeviceID) error

func (*Session) SetLoggedIn

func (s *Session) SetLoggedIn(sessionID, csrfToken string, username NormalizedUsername, uid keybase1.UID, deviceID keybase1.DeviceID) error

func (*Session) SetUsername

func (s *Session) SetUsername(username NormalizedUsername)

type SessionReader

type SessionReader interface {
	APIArgs() (token, csrf string)
	IsLoggedIn() bool
	Invalidate()
}

type ShutdownHook

type ShutdownHook func() error

type SibkeyAlreadyExistsError

type SibkeyAlreadyExistsError struct{}

func (SibkeyAlreadyExistsError) Error

func (e SibkeyAlreadyExistsError) Error() string

func (SibkeyAlreadyExistsError) ToStatus

type SibkeyChainLink struct {
	GenericChainLink
	// contains filtered or unexported fields
}
func ParseSibkeyChainLink(b GenericChainLink) (ret *SibkeyChainLink, err error)

func (*SibkeyChainLink) GetDelegatedKid

func (s *SibkeyChainLink) GetDelegatedKid() keybase1.KID

func (*SibkeyChainLink) GetDevice

func (s *SibkeyChainLink) GetDevice() *Device

func (*SibkeyChainLink) GetPGPFullHash

func (s *SibkeyChainLink) GetPGPFullHash() string

func (*SibkeyChainLink) GetRole

func (s *SibkeyChainLink) GetRole() KeyRole

func (*SibkeyChainLink) ToDisplayString

func (s *SibkeyChainLink) ToDisplayString() string

func (*SibkeyChainLink) Type

func (s *SibkeyChainLink) Type() string

func (*SibkeyChainLink) VerifyReverseSig

func (s *SibkeyChainLink) VerifyReverseSig(ckf ComputedKeyFamily) (err error)

VerifyReverseSig checks a SibkeyChainLink's reverse signature using the ComputedKeyFamily provided.

type SigChain

type SigChain struct {
	Contextified
	// contains filtered or unexported fields
}

func (*SigChain) Bump

func (sc *SigChain) Bump(mt MerkleTriple)

func (*SigChain) CheckFreshness

func (sc *SigChain) CheckFreshness(srv *MerkleTriple) (current bool, err error)

func (*SigChain) Dump

func (sc *SigChain) Dump(w io.Writer)

Dump prints the sigchain to the writer arg.

func (SigChain) GetComputedKeyInfos

func (sc SigChain) GetComputedKeyInfos() (cki *ComputedKeyInfos)

func (*SigChain) GetCurrentSubchain

func (sc *SigChain) GetCurrentSubchain(eldest keybase1.KID) (links []*ChainLink, err error)

GetCurrentSubchain takes the given sigchain and walks backward until it finds the start of the current subchain, returning all the links in the subchain. A new subchain starts in one of three ways (from the perspective of walking from oldest to newest):

  1. A link has a new eldest key, usually in the form of reporting no eldest_kid of its own and being signed by a KID that's not the previous eldest. Most resets so far take this form.
  2. A link of type "eldest", regardless of the KIDs involved. We want this to be how everything works in the future.
  3. One of a set of six hardcoded links that made it in back when we allowed repeating eldest keys without using the "eldest" link type.

func (SigChain) GetCurrentTailTriple

func (sc SigChain) GetCurrentTailTriple() (ret *MerkleTriple)
func (sc SigChain) GetFirstLink() *ChainLink

func (SigChain) GetFutureChainTail

func (sc SigChain) GetFutureChainTail() (ret *MerkleTriple)

func (SigChain) GetLastKnownID

func (sc SigChain) GetLastKnownID() (ret LinkID)

func (SigChain) GetLastKnownSeqno

func (sc SigChain) GetLastKnownSeqno() (ret Seqno)
func (sc SigChain) GetLastLink() *ChainLink

func (SigChain) GetLastLoadedID

func (sc SigChain) GetLastLoadedID() (ret LinkID)

func (SigChain) GetLastLoadedSeqno

func (sc SigChain) GetLastLoadedSeqno() (ret Seqno)

func (*SigChain) GetLinkFromSeqno

func (sc *SigChain) GetLinkFromSeqno(seqno int) *ChainLink

func (*SigChain) GetLinkFromSigID

func (sc *SigChain) GetLinkFromSigID(id keybase1.SigID) *ChainLink

func (*SigChain) GetLinkFromSigIDQuery

func (sc *SigChain) GetLinkFromSigIDQuery(query string) *ChainLink

GetLinkFromSigIDQuery will return true if it finds a ChainLink with a SigID that starts with query.

func (SigChain) Len

func (sc SigChain) Len() int

func (*SigChain) LoadFromServer

func (sc *SigChain) LoadFromServer(t *MerkleTriple, selfUID keybase1.UID) (dirtyTail *MerkleTriple, err error)

func (*SigChain) LocalDelegate

func (sc *SigChain) LocalDelegate(kf *KeyFamily, key GenericKey, sigID keybase1.SigID, signingKid keybase1.KID, isSibkey bool) (err error)

func (*SigChain) Store

func (sc *SigChain) Store() (err error)
func (sc *SigChain) VerifiedChainLinks(fp PGPFingerprint) (ret []*ChainLink)

func (*SigChain) VerifyChain

func (sc *SigChain) VerifyChain() (err error)

func (*SigChain) VerifySigsAndComputeKeys

func (sc *SigChain) VerifySigsAndComputeKeys(eldest keybase1.KID, ckf *ComputedKeyFamily) (cached bool, err error)

type SigChainLoader

type SigChainLoader struct {
	Contextified
	// contains filtered or unexported fields
}

func (*SigChainLoader) AccessPreload

func (l *SigChainLoader) AccessPreload() bool

func (*SigChainLoader) CheckFreshness

func (l *SigChainLoader) CheckFreshness() (current bool, err error)

func (*SigChainLoader) GetKeyFamily

func (l *SigChainLoader) GetKeyFamily() (err error)

func (*SigChainLoader) GetMerkleTriple

func (l *SigChainLoader) GetMerkleTriple() (ret *MerkleTriple)

func (*SigChainLoader) Load

func (l *SigChainLoader) Load() (ret *SigChain, err error)

Load is the main entry point into the SigChain loader. It runs through all of the steps to load a chain in from storage, to refresh it against the server, and to verify its integrity.

func (*SigChainLoader) LoadFromServer

func (l *SigChainLoader) LoadFromServer() (err error)

func (*SigChainLoader) LoadLastLinkIDFromStorage

func (l *SigChainLoader) LoadLastLinkIDFromStorage() (mt *MerkleTriple, err error)

func (*SigChainLoader) LoadLinksFromStorage

func (l *SigChainLoader) LoadLinksFromStorage() (err error)

func (*SigChainLoader) MakeSigChain

func (l *SigChainLoader) MakeSigChain() error

func (*SigChainLoader) Store

func (l *SigChainLoader) Store() (err error)

Store a SigChain to local storage as a result of having loaded it. We eagerly write loaded chain links to storage if they verify properly.

func (*SigChainLoader) StoreTail

func (l *SigChainLoader) StoreTail() (err error)

func (*SigChainLoader) VerifySigsAndComputeKeys

func (l *SigChainLoader) VerifySigsAndComputeKeys() (err error)

type SigHint

type SigHint struct {
	// contains filtered or unexported fields
}

func NewSigHint

func NewSigHint(jw *jsonw.Wrapper) (sh *SigHint, err error)

func (SigHint) Export

func (sh SigHint) Export() *keybase1.SigHint

func (SigHint) GetAPIURL

func (sh SigHint) GetAPIURL() string

func (SigHint) GetCheckText

func (sh SigHint) GetCheckText() string

func (SigHint) GetHumanURL

func (sh SigHint) GetHumanURL() string

func (SigHint) MarshalToJSON

func (sh SigHint) MarshalToJSON() *jsonw.Wrapper

type SigHints

type SigHints struct {
	Contextified
	// contains filtered or unexported fields
}

func LoadAndRefreshSigHints

func LoadAndRefreshSigHints(uid keybase1.UID, g *GlobalContext) (sh *SigHints, err error)

func LoadSigHints

func LoadSigHints(uid keybase1.UID, g *GlobalContext) (sh *SigHints, err error)

func NewSigHints

func NewSigHints(jw *jsonw.Wrapper, uid keybase1.UID, dirty bool, g *GlobalContext) (sh *SigHints, err error)

func (SigHints) Lookup

func (sh SigHints) Lookup(i keybase1.SigID) *SigHint

func (SigHints) MarshalToJSON

func (sh SigHints) MarshalToJSON() *jsonw.Wrapper

func (*SigHints) PopulateWith

func (sh *SigHints) PopulateWith(jw *jsonw.Wrapper) (err error)

func (*SigHints) Refresh

func (sh *SigHints) Refresh() error

func (*SigHints) Store

func (sh *SigHints) Store() (err error)

type SignatureStatus

type SignatureStatus struct {
	IsSigned        bool
	Verified        bool
	SignatureError  error
	KeyID           uint64
	Entity          *openpgp.Entity
	SignatureTime   time.Time
	RecipientKeyIDs []uint64
}

func PGPDecrypt

func PGPDecrypt(g *GlobalContext, source io.Reader, sink io.Writer, kr openpgp.KeyRing) (*SignatureStatus, error)

func PGPDecryptWithBundles

func PGPDecryptWithBundles(g *GlobalContext, source io.Reader, sink io.Writer, keys []*PGPKeyBundle) (*SignatureStatus, error)

type SimpleTimer

type SimpleTimer struct {
	// contains filtered or unexported fields
}

SimpleTimer keeps track of how long something is taking, like a network API call. Meant to be very simple. It is not meant to be goroutine safe and should only be called from one Goroutine.

func (*SimpleTimer) GetTotal

func (s *SimpleTimer) GetTotal() int64

GetTotal gets the total duration spent in the timer.

func (*SimpleTimer) Reset

func (s *SimpleTimer) Reset()

Reset the internal duration counter.

func (*SimpleTimer) Start

func (s *SimpleTimer) Start()

Start the timer running, if it's not already started.

func (*SimpleTimer) Stop

func (s *SimpleTimer) Stop() int64

Stop the timer; panic if it hasn't been previously started. Return the total duration spent in the timer.

type SkipSecretPromptError

type SkipSecretPromptError struct{}

func (SkipSecretPromptError) Error

func (e SkipSecretPromptError) Error() string

func (SkipSecretPromptError) ToStatus

func (e SkipSecretPromptError) ToStatus() (s keybase1.Status)

type SocialAssertion

type SocialAssertion struct {
	// contains filtered or unexported fields
}

SocialAssertion is a type for individual user's on a social network. It should be created via NormalizeSocialAssertion.

func NormalizeSocialAssertion

func NormalizeSocialAssertion(s string) (SocialAssertion, bool)

NormalizeSocialAssertion creates a SocialAssertion from its input and normalizes it. The service name will be lowercased. If the service is case-insensitive, then the username will also be lowercased. Colon assertions (twitter:user) will be transformed to the user@twitter format. Only registered services are allowed.

func (SocialAssertion) Service

func (s SocialAssertion) Service() string

func (SocialAssertion) String

func (s SocialAssertion) String() string

func (SocialAssertion) Username

func (s SocialAssertion) Username() string
type SocialProofChainLink struct {
	GenericChainLink
	// contains filtered or unexported fields
}
func NewSocialProofChainLink(b GenericChainLink, s, u, proofText string) *SocialProofChainLink

func (*SocialProofChainLink) CheckDataJSON

func (s *SocialProofChainLink) CheckDataJSON() *jsonw.Wrapper

func (*SocialProofChainLink) ComputeTrackDiff

func (s *SocialProofChainLink) ComputeTrackDiff(tl *TrackLookup) TrackDiff

func (*SocialProofChainLink) DisplayCheck

func (s *SocialProofChainLink) DisplayCheck(ui IdentifyUI, lcr LinkCheckResult)

func (*SocialProofChainLink) GetHostname

func (s *SocialProofChainLink) GetHostname() string

func (*SocialProofChainLink) GetProofType

func (s *SocialProofChainLink) GetProofType() keybase1.ProofType

func (*SocialProofChainLink) GetProtocol

func (s *SocialProofChainLink) GetProtocol() string

func (*SocialProofChainLink) GetRemoteUsername

func (s *SocialProofChainLink) GetRemoteUsername() string

func (*SocialProofChainLink) GetService

func (s *SocialProofChainLink) GetService() string

func (*SocialProofChainLink) LastWriterWins

func (s *SocialProofChainLink) LastWriterWins() bool

func (*SocialProofChainLink) ProofText

func (s *SocialProofChainLink) ProofText() string

func (*SocialProofChainLink) TableKey

func (s *SocialProofChainLink) TableKey() string

func (*SocialProofChainLink) ToDisplayString

func (s *SocialProofChainLink) ToDisplayString() string

func (*SocialProofChainLink) ToIDString

func (s *SocialProofChainLink) ToIDString() string

func (*SocialProofChainLink) ToKeyValuePair

func (s *SocialProofChainLink) ToKeyValuePair() (string, string)

func (*SocialProofChainLink) ToTrackingStatement

func (s *SocialProofChainLink) ToTrackingStatement(state keybase1.ProofState) (*jsonw.Wrapper, error)

func (*SocialProofChainLink) Type

func (s *SocialProofChainLink) Type() string

type Socket

type Socket interface {
	BindToSocket() (net.Listener, error)
	DialSocket() (net.Conn, error)
	GetFile() string
}

NewSocket() (Socket, err) is defined in the various platform-specific socket_*.go files.

func NewSocket

func NewSocket(g *GlobalContext) (ret Socket, err error)

type SocketInfo

type SocketInfo struct {
	Contextified
	// contains filtered or unexported fields
}

func (SocketInfo) BindToSocket

func (s SocketInfo) BindToSocket() (ret net.Listener, err error)

func (SocketInfo) DialSocket

func (s SocketInfo) DialSocket() (ret net.Conn, err error)

func (SocketInfo) GetFile

func (s SocketInfo) GetFile() string

type SocketWrapper

type SocketWrapper struct {
	// contains filtered or unexported fields
}

type SpecialKeyRing

type SpecialKeyRing struct {
	Contextified
	// contains filtered or unexported fields
}

SpecialKeyRing holds blessed keys, like the one Keybase uses to sign its Merkle Root.

func NewSpecialKeyRing

func NewSpecialKeyRing(v []keybase1.KID, g *GlobalContext) *SpecialKeyRing

NewSpecialKeyRing allocates a new SpecialKeyRing with the given vector of KIDs. For NaCl keys, it will actually import those keys into the Keyring.

func (*SpecialKeyRing) IsValidKID

func (sk *SpecialKeyRing) IsValidKID(kid keybase1.KID) bool

IsValidKID returns if this KID is valid (blessed) according to this Keyring

func (*SpecialKeyRing) Load

func (sk *SpecialKeyRing) Load(kid keybase1.KID) (GenericKey, error)

Load takes a blessed KID and returns, if possible, the GenericKey associated with that KID, for signature verification. If the key isn't found in memory or on disk (in the case of PGP), then it will attempt to fetch the key from the keybase server.

type StreamClassification

type StreamClassification struct {
	Format  CryptoMessageFormat
	Type    CryptoMessageType
	Armored bool
}

StreamClassification tells what Format the stream is, if it's a Public signature or a Private Message, if it's a detached or attached signature in the public case, and if it's armored or binary.

func ClassifyStream

func ClassifyStream(r io.Reader) (sc StreamClassification, out io.Reader, err error)

ClassifyStream takes a stream reader in, and returns a likely classification of that stream without consuming any data from it. It returns a reader that you should read from instead, in addition to the classification. If classification fails, there will be a `UnknownStreamError`, or additional EOF errors if the stream ended beform classification could go.

type StreamExistsError

type StreamExistsError struct{}

func (StreamExistsError) Error

func (s StreamExistsError) Error() string

func (StreamExistsError) ToStatus

func (e StreamExistsError) ToStatus(s keybase1.Status)

type StreamNotFoundError

type StreamNotFoundError struct{}

func (StreamNotFoundError) Error

func (s StreamNotFoundError) Error() string

func (StreamNotFoundError) ToStatus

func (e StreamNotFoundError) ToStatus(s keybase1.Status)

type StreamPeeker

type StreamPeeker struct {
	// contains filtered or unexported fields
}

StreamPeeker is a reader that takes another reader and allow you to peek at the beginning of the stream without consuming it.

func NewStreamPeeker

func NewStreamPeeker(r io.Reader) *StreamPeeker

NewStreamPeeker makes a new Reader from the given Reader, but also allows you to Peek at the first N bytes.

func (*StreamPeeker) Peek

func (p *StreamPeeker) Peek(buf []byte) (n int, err error)

Peek at the first N bytes of the stream.

func (*StreamPeeker) Read

func (p *StreamPeeker) Read(buf []byte) (n int, err error)

Read is the standard read, that either reads the buffered peek region or reads directly from the stream.

type StreamWrongKindError

type StreamWrongKindError struct{}

func (StreamWrongKindError) Error

func (s StreamWrongKindError) Error() string

func (StreamWrongKindError) ToStatus

func (e StreamWrongKindError) ToStatus(s keybase1.Status)

type StringWarning

type StringWarning string

func (StringWarning) Warn

func (s StringWarning) Warn()

func (StringWarning) Warning

func (s StringWarning) Warning() string

type StubAPIEngine

type StubAPIEngine struct {
	*ExternalAPIEngine
}

func NewStubAPIEngine

func NewStubAPIEngine() *StubAPIEngine

func (*StubAPIEngine) Get

func (e *StubAPIEngine) Get(arg APIArg) (res *ExternalAPIRes, err error)

func (*StubAPIEngine) GetHTML

func (e *StubAPIEngine) GetHTML(arg APIArg) (res *ExternalHTMLRes, err error)

func (*StubAPIEngine) GetText

func (e *StubAPIEngine) GetText(arg APIArg) (*ExternalTextRes, error)
type SubkeyChainLink struct {
	GenericChainLink
	// contains filtered or unexported fields
}
func ParseSubkeyChainLink(b GenericChainLink) (ret *SubkeyChainLink, err error)

func (*SubkeyChainLink) GetDelegatedKid

func (s *SubkeyChainLink) GetDelegatedKid() keybase1.KID

func (*SubkeyChainLink) GetParentKid

func (s *SubkeyChainLink) GetParentKid() keybase1.KID

func (*SubkeyChainLink) GetRole

func (s *SubkeyChainLink) GetRole() KeyRole

func (*SubkeyChainLink) ToDisplayString

func (s *SubkeyChainLink) ToDisplayString() string

func (*SubkeyChainLink) Type

func (s *SubkeyChainLink) Type() string

type Syncer

type Syncer interface {
	Contexitifier
	sync.Locker
	// contains filtered or unexported methods
}

type TerminalUI

type TerminalUI interface {
	OutputWriter() io.Writer
	Output(string) error
	OutputDesc(OutputDescriptor, string) error
	ErrorWriter() io.Writer
	Printf(fmt string, args ...interface{}) (int, error)
	PromptYesNo(PromptDescriptor, string, PromptDefault) (bool, error)
	Prompt(PromptDescriptor, string) (string, error)
	PromptPassword(PromptDescriptor, string) (string, error)
	PromptForConfirmation(prompt string) error
}

type TestCancelSecretUI

type TestCancelSecretUI struct {
	CallCount int
}

func (*TestCancelSecretUI) GetPassphrase

type TestConfig

type TestConfig struct {
	// contains filtered or unexported fields
}

TestConfig tracks libkb config during a test

func (*TestConfig) CleanTest

func (c *TestConfig) CleanTest()

func (*TestConfig) GetConfigFileName

func (c *TestConfig) GetConfigFileName() string

func (*TestConfig) InitTest

func (c *TestConfig) InitTest(t *testing.T, initConfig string)

type TestContext

type TestContext struct {
	G          *GlobalContext
	PrevGlobal *GlobalContext
	Tp         TestParameters
	// TODO: Rename this to TB.
	T testing.TB
}

func SetupTest

func SetupTest(tb testing.TB, name string) (tc TestContext)

func (*TestContext) Cleanup

func (tc *TestContext) Cleanup()

func (TestContext) ClearAllStoredSecrets

func (tc TestContext) ClearAllStoredSecrets() error

func (TestContext) Clone

func (tc TestContext) Clone() (ret TestContext)

func (*TestContext) GenerateGPGKeyring

func (tc *TestContext) GenerateGPGKeyring(ids ...string) error

func (*TestContext) MakePGPKey

func (tc *TestContext) MakePGPKey(id string) (*PGPKeyBundle, error)

func (TestContext) MoveGpgKeyringTo

func (tc TestContext) MoveGpgKeyringTo(dst TestContext) error

func (*TestContext) ResetLoginState

func (tc *TestContext) ResetLoginState()

ResetLoginStateForTest simulates a shutdown and restart (for client state). Used by tests that need to clear out cached login state without logging out.

func (*TestContext) SetRuntimeDir

func (tc *TestContext) SetRuntimeDir(s string)

type TestLoginCancelUI

type TestLoginCancelUI struct {
	TestLoginUI
}

func (*TestLoginCancelUI) GetEmailOrUsername

func (t *TestLoginCancelUI) GetEmailOrUsername(_ context.Context, _ int) (string, error)

type TestLoginUI

type TestLoginUI struct {
	Username                 string
	RevokeBackup             bool
	CalledGetEmailOrUsername int
}

func (*TestLoginUI) DisplayPaperKeyPhrase

func (t *TestLoginUI) DisplayPaperKeyPhrase(_ context.Context, arg keybase1.DisplayPaperKeyPhraseArg) error

func (*TestLoginUI) DisplayPrimaryPaperKey

func (t *TestLoginUI) DisplayPrimaryPaperKey(_ context.Context, arg keybase1.DisplayPrimaryPaperKeyArg) error

func (*TestLoginUI) GetEmailOrUsername

func (t *TestLoginUI) GetEmailOrUsername(_ context.Context, _ int) (string, error)

func (*TestLoginUI) PromptRevokePaperKeys

func (t *TestLoginUI) PromptRevokePaperKeys(_ context.Context, arg keybase1.PromptRevokePaperKeysArg) (bool, error)

type TestOutput

type TestOutput struct {
	// contains filtered or unexported fields
}

TestOutput is a mock interface for capturing and testing output

func NewTestOutput

func NewTestOutput(e string, t *testing.T, c *bool) TestOutput

func (TestOutput) Write

func (to TestOutput) Write(p []byte) (n int, err error)

type TestParameters

type TestParameters struct {
	ConfigFilename string
	Home           string
	GPG            string
	GPGHome        string
	GPGOptions     []string
	Debug          bool
	// Whether we are in Devel Mode
	Devel bool
	// If we're in dev mode, the name for this test, with a random
	// suffix.
	DevelName  string
	RuntimeDir string
}

func (TestParameters) GetDebug

func (tp TestParameters) GetDebug() (bool, bool)

type TestSecretStoreAll

type TestSecretStoreAll struct {
	Contextified
	// contains filtered or unexported fields
}

Used by tests that want to mock out the secret store.

func (TestSecretStoreAll) ClearSecret

func (t TestSecretStoreAll) ClearSecret(accountName NormalizedUsername) error

func (TestSecretStoreAll) GetAllUserNames

func (TestSecretStoreAll) GetUsersWithStoredSecrets

func (t TestSecretStoreAll) GetUsersWithStoredSecrets() (ret []string, err error)

func (TestSecretStoreAll) RetrieveSecret

func (t TestSecretStoreAll) RetrieveSecret(accountName NormalizedUsername) (ret []byte, err error)

func (TestSecretStoreAll) StoreSecret

func (t TestSecretStoreAll) StoreSecret(accountName NormalizedUsername, secret []byte) error

type TestSecretUI

type TestSecretUI struct {
	Passphrase          string
	StoreSecret         bool
	CalledGetPassphrase bool
}

func (*TestSecretUI) GetPassphrase

type TimeoutError

type TimeoutError struct{}

func (TimeoutError) Error

func (e TimeoutError) Error() string

func (TimeoutError) ToStatus

func (e TimeoutError) ToStatus() keybase1.Status

type TimerSelector

type TimerSelector int

TimerSelector allows us to select which timers we want on.

const (
	// TimerNone means Timers Disabled
	TimerNone TimerSelector = 0
	// TimerAPI enables API timers
	TimerAPI TimerSelector = 1 << iota
	// TimerXAPI enables External API timers
	TimerXAPI
	// TimerRPC enables RPC timers
	TimerRPC
)

type TimerSet

type TimerSet struct {
	Contextified
	// contains filtered or unexported fields
}

TimerSet is the set of currently active timers

func NewTimerSet

func NewTimerSet(g *GlobalContext) *TimerSet

NewTimerSet looks into the given context for configuration information about how to set up timers. It then returns the corresponding TimerSet.

func (TimerSet) Start

func (s TimerSet) Start(sel TimerSelector) ReportingTimer

Start alloates and starts a new timer if the passed TimerSelector is currently enabled. Otherwise, it just returns a Dummy timer.

type Token

type Token struct {
	Typ int
	// contains filtered or unexported fields
}

func NewToken

func NewToken(typ int) *Token

func (Token) Eq

func (t Token) Eq(t2 Token) bool

type TooManyKeysError

type TooManyKeysError struct {
	// contains filtered or unexported fields
}

func (TooManyKeysError) Error

func (e TooManyKeysError) Error() string

type TorMode

type TorMode int
const (
	TorNone TorMode = iota
	TorStrict
	TorLeaky
)

func StringToTorMode

func StringToTorMode(s string) (ret TorMode, err error)

func (TorMode) Enabled

func (m TorMode) Enabled() bool

func (TorMode) UseCSRF

func (m TorMode) UseCSRF() bool

func (TorMode) UseCookies

func (m TorMode) UseCookies() bool

func (TorMode) UseHeaders

func (m TorMode) UseHeaders() bool

func (TorMode) UseSession

func (m TorMode) UseSession() bool

type TorSessionRequiredError

type TorSessionRequiredError struct{}

func (TorSessionRequiredError) Error

func (t TorSessionRequiredError) Error() string

type TrackCache

type TrackCache struct {
	// contains filtered or unexported fields
}

func NewTrackCache

func NewTrackCache() *TrackCache

func (*TrackCache) Delete

func (c *TrackCache) Delete(key keybase1.TrackToken) error

func (*TrackCache) Get

func (*TrackCache) Insert

func (c *TrackCache) Insert(outcome *IdentifyOutcome) (keybase1.TrackToken, error)

func (*TrackCache) Shutdown

func (c *TrackCache) Shutdown()
type TrackChainLink struct {
	GenericChainLink
	// contains filtered or unexported fields
}

========================================================================= TrackChainLink

func LocalTmpTrackChainLinkFor

func LocalTmpTrackChainLinkFor(tracker, trackee keybase1.UID, g *GlobalContext) (ret *TrackChainLink, err error)

func LocalTrackChainLinkFor

func LocalTrackChainLinkFor(tracker, trackee keybase1.UID, g *GlobalContext) (ret *TrackChainLink, err error)
func ParseTrackChainLink(b GenericChainLink) (ret *TrackChainLink, err error)

func (*TrackChainLink) DoOwnNewLinkFromServerNotifications

func (l *TrackChainLink) DoOwnNewLinkFromServerNotifications(g *GlobalContext)

func (*TrackChainLink) GetEldestKID

func (l *TrackChainLink) GetEldestKID() (kid keybase1.KID, err error)

func (*TrackChainLink) GetTmpExpireTime

func (l *TrackChainLink) GetTmpExpireTime() (ret time.Time)

func (*TrackChainLink) GetTrackedKeys

func (l *TrackChainLink) GetTrackedKeys() ([]TrackedKey, error)

func (*TrackChainLink) GetTrackedUID

func (l *TrackChainLink) GetTrackedUID() (keybase1.UID, error)

func (*TrackChainLink) GetTrackedUsername

func (l *TrackChainLink) GetTrackedUsername() (string, error)

func (TrackChainLink) IsRemote

func (l TrackChainLink) IsRemote() bool

func (*TrackChainLink) IsRevoked

func (l *TrackChainLink) IsRevoked() bool

func (*TrackChainLink) RemoteKeyProofs

func (l *TrackChainLink) RemoteKeyProofs() *jsonw.Wrapper

func (*TrackChainLink) ToDisplayString

func (l *TrackChainLink) ToDisplayString() string

func (*TrackChainLink) ToServiceBlocks

func (l *TrackChainLink) ToServiceBlocks() (ret []*ServiceBlock)

func (*TrackChainLink) Type

func (l *TrackChainLink) Type() string

type TrackDiff

type TrackDiff interface {
	BreaksTracking() bool
	ToDisplayString() string
	ToDisplayMarkup() *Markup
	IsSameAsTracked() bool
	GetTrackDiffType() keybase1.TrackDiffType
}

type TrackDiffClash

type TrackDiffClash struct {
	// contains filtered or unexported fields
}

func (TrackDiffClash) BreaksTracking

func (t TrackDiffClash) BreaksTracking() bool

func (TrackDiffClash) GetTrackDiffType

func (t TrackDiffClash) GetTrackDiffType() keybase1.TrackDiffType

func (TrackDiffClash) IsSameAsTracked

func (t TrackDiffClash) IsSameAsTracked() bool

func (TrackDiffClash) ToDisplayMarkup

func (t TrackDiffClash) ToDisplayMarkup() *Markup

func (TrackDiffClash) ToDisplayString

func (t TrackDiffClash) ToDisplayString() string

type TrackDiffNew

type TrackDiffNew struct{}

func (TrackDiffNew) BreaksTracking

func (t TrackDiffNew) BreaksTracking() bool

func (TrackDiffNew) GetTrackDiffType

func (t TrackDiffNew) GetTrackDiffType() keybase1.TrackDiffType

func (TrackDiffNew) IsSameAsTracked

func (t TrackDiffNew) IsSameAsTracked() bool

func (TrackDiffNew) ToDisplayMarkup

func (t TrackDiffNew) ToDisplayMarkup() *Markup

func (TrackDiffNew) ToDisplayString

func (t TrackDiffNew) ToDisplayString() string

type TrackDiffNewEldest

type TrackDiffNewEldest struct {
	// contains filtered or unexported fields
}

func (TrackDiffNewEldest) BreaksTracking

func (t TrackDiffNewEldest) BreaksTracking() bool

func (TrackDiffNewEldest) GetTrackDiffType

func (t TrackDiffNewEldest) GetTrackDiffType() keybase1.TrackDiffType

func (TrackDiffNewEldest) IsSameAsTracked

func (t TrackDiffNewEldest) IsSameAsTracked() bool

func (TrackDiffNewEldest) ToDisplayMarkup

func (t TrackDiffNewEldest) ToDisplayMarkup() *Markup

func (TrackDiffNewEldest) ToDisplayString

func (t TrackDiffNewEldest) ToDisplayString() string

type TrackDiffNone

type TrackDiffNone struct{}

func (TrackDiffNone) BreaksTracking

func (t TrackDiffNone) BreaksTracking() bool

func (TrackDiffNone) GetTrackDiffType

func (t TrackDiffNone) GetTrackDiffType() keybase1.TrackDiffType

func (TrackDiffNone) IsSameAsTracked

func (t TrackDiffNone) IsSameAsTracked() bool

func (TrackDiffNone) ToDisplayMarkup

func (t TrackDiffNone) ToDisplayMarkup() *Markup

func (TrackDiffNone) ToDisplayString

func (t TrackDiffNone) ToDisplayString() string

type TrackDiffNoneViaTemporary

type TrackDiffNoneViaTemporary struct{}

func (TrackDiffNoneViaTemporary) BreaksTracking

func (t TrackDiffNoneViaTemporary) BreaksTracking() bool

func (TrackDiffNoneViaTemporary) GetTrackDiffType

func (t TrackDiffNoneViaTemporary) GetTrackDiffType() keybase1.TrackDiffType

func (TrackDiffNoneViaTemporary) IsSameAsTracked

func (t TrackDiffNoneViaTemporary) IsSameAsTracked() bool

func (TrackDiffNoneViaTemporary) ToDisplayMarkup

func (t TrackDiffNoneViaTemporary) ToDisplayMarkup() *Markup

func (TrackDiffNoneViaTemporary) ToDisplayString

func (t TrackDiffNoneViaTemporary) ToDisplayString() string

type TrackDiffRemoteChanged

type TrackDiffRemoteChanged struct {
	// contains filtered or unexported fields
}

func (TrackDiffRemoteChanged) BreaksTracking

func (t TrackDiffRemoteChanged) BreaksTracking() bool

func (TrackDiffRemoteChanged) GetTrackDiffType

func (t TrackDiffRemoteChanged) GetTrackDiffType() keybase1.TrackDiffType

func (TrackDiffRemoteChanged) IsSameAsTracked

func (t TrackDiffRemoteChanged) IsSameAsTracked() bool

func (TrackDiffRemoteChanged) ToDisplayMarkup

func (t TrackDiffRemoteChanged) ToDisplayMarkup() *Markup

func (TrackDiffRemoteChanged) ToDisplayString

func (t TrackDiffRemoteChanged) ToDisplayString() string

type TrackDiffRemoteFail

type TrackDiffRemoteFail struct {
	// contains filtered or unexported fields
}

func (TrackDiffRemoteFail) BreaksTracking

func (t TrackDiffRemoteFail) BreaksTracking() bool

func (TrackDiffRemoteFail) GetTrackDiffType

func (t TrackDiffRemoteFail) GetTrackDiffType() keybase1.TrackDiffType

func (TrackDiffRemoteFail) IsSameAsTracked

func (t TrackDiffRemoteFail) IsSameAsTracked() bool

func (TrackDiffRemoteFail) ToDisplayMarkup

func (t TrackDiffRemoteFail) ToDisplayMarkup() *Markup

func (TrackDiffRemoteFail) ToDisplayString

func (t TrackDiffRemoteFail) ToDisplayString() string

type TrackDiffRemoteWorking

type TrackDiffRemoteWorking struct {
	// contains filtered or unexported fields
}

func (TrackDiffRemoteWorking) BreaksTracking

func (t TrackDiffRemoteWorking) BreaksTracking() bool

func (TrackDiffRemoteWorking) GetTrackDiffType

func (t TrackDiffRemoteWorking) GetTrackDiffType() keybase1.TrackDiffType

func (TrackDiffRemoteWorking) IsSameAsTracked

func (t TrackDiffRemoteWorking) IsSameAsTracked() bool

func (TrackDiffRemoteWorking) ToDisplayMarkup

func (t TrackDiffRemoteWorking) ToDisplayMarkup() *Markup

func (TrackDiffRemoteWorking) ToDisplayString

func (t TrackDiffRemoteWorking) ToDisplayString() string

type TrackDiffRevoked

type TrackDiffRevoked struct {
	// contains filtered or unexported fields
}

func (TrackDiffRevoked) BreaksTracking

func (t TrackDiffRevoked) BreaksTracking() bool

func (TrackDiffRevoked) GetTrackDiffType

func (t TrackDiffRevoked) GetTrackDiffType() keybase1.TrackDiffType

func (TrackDiffRevoked) IsSameAsTracked

func (t TrackDiffRevoked) IsSameAsTracked() bool

func (TrackDiffRevoked) ToDisplayMarkup

func (t TrackDiffRevoked) ToDisplayMarkup() *Markup

func (TrackDiffRevoked) ToDisplayString

func (t TrackDiffRevoked) ToDisplayString() string

type TrackDiffUpgraded

type TrackDiffUpgraded struct {
	// contains filtered or unexported fields
}

func (TrackDiffUpgraded) BreaksTracking

func (t TrackDiffUpgraded) BreaksTracking() bool

func (TrackDiffUpgraded) GetCurr

func (t TrackDiffUpgraded) GetCurr() string

func (TrackDiffUpgraded) GetPrev

func (t TrackDiffUpgraded) GetPrev() string

func (TrackDiffUpgraded) GetTrackDiffType

func (t TrackDiffUpgraded) GetTrackDiffType() keybase1.TrackDiffType

func (TrackDiffUpgraded) IsSameAsTracked

func (t TrackDiffUpgraded) IsSameAsTracked() bool

func (TrackDiffUpgraded) ToDisplayMarkup

func (t TrackDiffUpgraded) ToDisplayMarkup() *Markup

func (TrackDiffUpgraded) ToDisplayString

func (t TrackDiffUpgraded) ToDisplayString() string

type TrackIDComponent

type TrackIDComponent interface {
	ToIDString() string
	ToKeyValuePair() (string, string)
	GetProofState() keybase1.ProofState
	LastWriterWins() bool
	GetProofType() keybase1.ProofType
}

Can be a ProofLinkWithState, one of the identities listed in a tracking statement, or a PGP Fingerprint!

type TrackInstructions

type TrackInstructions struct {
	Local  bool
	Remote bool
}

type TrackLookup

type TrackLookup struct {
	// contains filtered or unexported fields
}

func NewTrackLookup

func NewTrackLookup(link *TrackChainLink) *TrackLookup

func (*TrackLookup) GetCTime

func (l *TrackLookup) GetCTime() time.Time

func (TrackLookup) GetEldestKID

func (l TrackLookup) GetEldestKID() keybase1.KID

func (TrackLookup) GetProofState

func (l TrackLookup) GetProofState(id string) keybase1.ProofState

func (TrackLookup) GetTmpExpireTime

func (l TrackLookup) GetTmpExpireTime() (ret time.Time)

func (TrackLookup) GetTrackedKeys

func (l TrackLookup) GetTrackedKeys() []TrackedKey

func (TrackLookup) GetTrackerSeqno

func (l TrackLookup) GetTrackerSeqno() Seqno

func (TrackLookup) IsRemote

func (l TrackLookup) IsRemote() bool

func (TrackLookup) ToSummary

func (l TrackLookup) ToSummary() TrackSummary

type TrackSet

type TrackSet struct {
	// contains filtered or unexported fields
}

func NewTrackSet

func NewTrackSet() *TrackSet

func (TrackSet) Add

func (ts TrackSet) Add(t TrackIDComponent)

func (TrackSet) GetProofState

func (ts TrackSet) GetProofState(id string) keybase1.ProofState

func (TrackSet) HasMember

func (ts TrackSet) HasMember(t TrackIDComponent) bool

func (TrackSet) LenEq

func (ts TrackSet) LenEq(b TrackSet) bool

func (TrackSet) Subtract

func (ts TrackSet) Subtract(b TrackSet) (out []TrackIDComponent)

type TrackStaleError

type TrackStaleError struct {
	FirstTrack bool
}

func (TrackStaleError) Error

func (e TrackStaleError) Error() string

type TrackSummary

type TrackSummary struct {
	// contains filtered or unexported fields
}

func ImportTrackSummary

func ImportTrackSummary(s *keybase1.TrackSummary) *TrackSummary

func (TrackSummary) Export

func (s TrackSummary) Export(username string) (ret keybase1.TrackSummary)

func (TrackSummary) GetCTime

func (s TrackSummary) GetCTime() time.Time

func (TrackSummary) IsRemote

func (s TrackSummary) IsRemote() bool

func (TrackSummary) Username

func (s TrackSummary) Username() string

type TrackedKey

type TrackedKey struct {
	KID         keybase1.KID
	Fingerprint *PGPFingerprint
}

type Tracker

type Tracker keybase1.Tracker

func (Tracker) Eq

func (t Tracker) Eq(t2 Tracker) bool

func (Tracker) Export

func (t Tracker) Export() keybase1.Tracker

func (Tracker) GetUID

func (t Tracker) GetUID() keybase1.UID

type TrackerSyncer

type TrackerSyncer struct {
	// Locks the whole object
	sync.RWMutex
	Contextified
	// contains filtered or unexported fields
}

func NewTrackerSyncer

func NewTrackerSyncer(uid keybase1.UID, g *GlobalContext) *TrackerSyncer

func (*TrackerSyncer) Trackers

func (t *TrackerSyncer) Trackers() *Trackers

type Trackers

type Trackers struct {
	Version  int       `json:"version"`
	Trackers []Tracker `json:"trackers"`
}

type TrackingBrokeError

type TrackingBrokeError struct{}

func (TrackingBrokeError) Error

func (e TrackingBrokeError) Error() string

func (TrackingBrokeError) ToStatus

func (e TrackingBrokeError) ToStatus() keybase1.Status

type TwitterChecker

type TwitterChecker struct {
	// contains filtered or unexported fields
}

func (*TwitterChecker) CheckHint

func (rc *TwitterChecker) CheckHint(h SigHint) ProofError

func (*TwitterChecker) CheckStatus

func (rc *TwitterChecker) CheckStatus(h SigHint) ProofError

func (*TwitterChecker) GetTorError

func (rc *TwitterChecker) GetTorError() ProofError

func (*TwitterChecker) ScreenNameCompare

func (rc *TwitterChecker) ScreenNameCompare(s1, s2 string) bool

type TwitterServiceType

type TwitterServiceType struct{ BaseServiceType }

func (TwitterServiceType) AllStringKeys

func (t TwitterServiceType) AllStringKeys() []string

func (TwitterServiceType) CheckProofText

func (t TwitterServiceType) CheckProofText(text string, id keybase1.SigID, sig string) (err error)

func (TwitterServiceType) CheckUsername

func (t TwitterServiceType) CheckUsername(s string) (err error)

func (TwitterServiceType) DisplayName

func (t TwitterServiceType) DisplayName(un string) string

func (TwitterServiceType) GetPrompt

func (t TwitterServiceType) GetPrompt() string

func (TwitterServiceType) GetProofType

func (t TwitterServiceType) GetProofType() string

func (TwitterServiceType) GetTypeName

func (t TwitterServiceType) GetTypeName() string

func (TwitterServiceType) NormalizeUsername

func (t TwitterServiceType) NormalizeUsername(s string) (string, error)

func (TwitterServiceType) PostInstructions

func (t TwitterServiceType) PostInstructions(un string) *Markup

func (TwitterServiceType) RecheckProofPosting

func (t TwitterServiceType) RecheckProofPosting(tryNumber int, status keybase1.ProofStatus, _ string) (warning *Markup, err error)

func (TwitterServiceType) ToChecker

func (t TwitterServiceType) ToChecker() Checker

func (TwitterServiceType) ToServiceJSON

func (t TwitterServiceType) ToServiceJSON(un string) *jsonw.Wrapper
type TypedChainLink interface {
	GetRevocations() []keybase1.SigID
	GetRevokeKids() []keybase1.KID

	GetSigID() keybase1.SigID
	GetArmoredSig() string

	ToDebugString() string
	Type() string
	ToDisplayString() string
	IsRevocationIsh() bool
	IsRevoked() bool
	GetRole() KeyRole
	GetSeqno() Seqno
	GetCTime() time.Time
	GetETime() time.Time
	GetPGPFingerprint() *PGPFingerprint
	GetPGPFullHash() string
	GetKID() keybase1.KID
	IsInCurrentFamily(u *User) bool
	GetUsername() string
	GetUID() keybase1.UID
	GetDelegatedKid() keybase1.KID
	GetParentKid() keybase1.KID
	VerifyReverseSig(ckf ComputedKeyFamily) error
	GetMerkleSeqno() int
	GetDevice() *Device
	DoOwnNewLinkFromServerNotifications(g *GlobalContext)
	// contains filtered or unexported methods
}

type U

type U struct {
	Val uint64
}

func (U) String

func (u U) String() string

type UHex

type UHex struct {
	Val uint64
}

func (UHex) String

func (h UHex) String() string

type UI

type UI interface {
	GetIdentifyUI() IdentifyUI
	GetIdentifyTrackUI() IdentifyUI
	GetLoginUI() LoginUI
	GetSecretUI() SecretUI
	GetTerminalUI() TerminalUI
	GetDumbOutputUI() DumbOutputUI
	GetProveUI() ProveUI
	GetLogUI() LogUI
	GetGPGUI() GPGUI
	GetProvisionUI(role KexRole) ProvisionUI
	GetPgpUI() PgpUI
	GetUpdateUI() UpdateUI
	Configure() error
	Shutdown() error
}

type UIConsumer

type UIConsumer interface {
	Name() string
	RequiredUIs() []UIKind
	SubConsumers() []UIConsumer
}

type UIDMismatchError

type UIDMismatchError struct {
	Msg string
}

func (UIDMismatchError) Error

func (u UIDMismatchError) Error() string

type UIDelegationUnavailableError

type UIDelegationUnavailableError struct{}

func (UIDelegationUnavailableError) Error

func (UIDelegationUnavailableError) ToStatus

type UIKind

type UIKind int
const (
	GPGUIKind UIKind = iota
	IdentifyUIKind
	LogUIKind
	LoginUIKind
	ProveUIKind
	SecretUIKind
	ProvisionUIKind
	PgpUIKind
	UpdateUIKind
	SaltpackUIKind
)

func (UIKind) String

func (u UIKind) String() string

type UIRouter

type UIRouter interface {
	SetUI(ConnectionID, UIKind)

	// Both of these are allowed to return nil for the UI even if
	// error is nil.
	GetIdentifyUI() (IdentifyUI, error)
	GetSecretUI(sessionID int) (SecretUI, error)
	GetUpdateUI() (UpdateUI, error)

	Shutdown()
}

type UnexpectedKeyError

type UnexpectedKeyError struct {
}

func (UnexpectedKeyError) Error

func (e UnexpectedKeyError) Error() string

type UnknownKeyTypeError

type UnknownKeyTypeError struct {
	// contains filtered or unexported fields
}

func (UnknownKeyTypeError) Error

func (e UnknownKeyTypeError) Error() string

type UnknownSpecialKIDError

type UnknownSpecialKIDError struct {
	// contains filtered or unexported fields
}

func (UnknownSpecialKIDError) Error

func (u UnknownSpecialKIDError) Error() string

type UnknownStreamError

type UnknownStreamError struct{}

func (UnknownStreamError) Error

func (e UnknownStreamError) Error() string

type UnmarshalError

type UnmarshalError struct {
	T string
}

func (UnmarshalError) Error

func (u UnmarshalError) Error() string

type UnmetAssertionError

type UnmetAssertionError struct {
	User   string
	Remote bool
}

func (UnmetAssertionError) Error

func (e UnmetAssertionError) Error() string
type UntrackChainLink struct {
	GenericChainLink
	// contains filtered or unexported fields
}
func ParseUntrackChainLink(b GenericChainLink) (ret *UntrackChainLink, err error)

func (*UntrackChainLink) DoOwnNewLinkFromServerNotifications

func (u *UntrackChainLink) DoOwnNewLinkFromServerNotifications(g *GlobalContext)

func (*UntrackChainLink) IsRevocationIsh

func (u *UntrackChainLink) IsRevocationIsh() bool

func (*UntrackChainLink) ToDisplayString

func (u *UntrackChainLink) ToDisplayString() string

func (*UntrackChainLink) Type

func (u *UntrackChainLink) Type() string

type UntrackError

type UntrackError struct {
	// contains filtered or unexported fields
}

func NewUntrackError

func NewUntrackError(d string, a ...interface{}) UntrackError

func (UntrackError) Error

func (e UntrackError) Error() string

type UpdateUI

type UpdateUI interface {
	keybase1.UpdateUiInterface
}

type Usage

type Usage struct {
	Config     bool
	GpgKeyring bool
	KbKeyring  bool
	API        bool
	Socket     bool
}

func (Usage) UseKeyring

func (u Usage) UseKeyring() bool

type User

type User struct {
	Contextified
	// contains filtered or unexported fields
}

func LoadMe

func LoadMe(arg LoadUserArg) (*User, error)

func LoadMeByUID

func LoadMeByUID(g *GlobalContext, uid keybase1.UID) (*User, error)

func LoadUser

func LoadUser(arg LoadUserArg) (ret *User, err error)

func NewUser

func NewUser(g *GlobalContext, o *jsonw.Wrapper) (*User, error)

func NewUserFromLocalStorage

func NewUserFromLocalStorage(g *GlobalContext, o *jsonw.Wrapper) (*User, error)

func NewUserFromServer

func NewUserFromServer(g *GlobalContext, o *jsonw.Wrapper) (*User, error)

func NewUserThin

func NewUserThin(name string, uid keybase1.UID) *User

func (*User) AllSyncedSecretKeys

func (u *User) AllSyncedSecretKeys(lctx LoginContext) (keys []*SKB, err error)

AllSyncedSecretKeys returns all the PGP key blocks that were synced to API server. LoginContext can be nil if this isn't used while logging in, signing up.

func (*User) AuthenticationProof

func (u *User) AuthenticationProof(key GenericKey, session string, ei int) (ret *jsonw.Wrapper, err error)

AuthenticationProof makes a JSON proof statement for the user that he can sign to prove a log-in to the system. If successful, the server will return with a session token.

func (*User) BaseProofSet

func (u *User) BaseProofSet() *ProofSet

BaseProofSet creates a basic proof set for a user with their keybase and uid proofs and any pgp fingerpring proofs.

func (*User) CheckBasicsFreshness

func (u *User) CheckBasicsFreshness(server int64) (current bool, err error)

func (*User) CryptocurrencySig

func (u *User) CryptocurrencySig(key GenericKey, address string, sigToRevoke keybase1.SigID) (*jsonw.Wrapper, error)

func (*User) DeviceNames

func (u *User) DeviceNames() ([]string, error)

func (*User) Equal

func (u *User) Equal(other *User) bool

func (*User) Export

func (u *User) Export() *keybase1.User

func (*User) ExportToUserPlusKeys

func (u *User) ExportToUserPlusKeys(idTime keybase1.Time) keybase1.UserPlusKeys

func (*User) ExportToVersionVector

func (u *User) ExportToVersionVector(idTime keybase1.Time) keybase1.UserVersionVector

func (*User) FilterActivePGPKeys

func (u *User) FilterActivePGPKeys(sibkey bool, query string) []*PGPKeyBundle

FilterActivePGPKeys returns the active pgp keys that match query.

func (*User) GetActivePGPFingerprints

func (u *User) GetActivePGPFingerprints(sibkey bool) (ret []PGPFingerprint)

GetActivePGPFingerprints looks into the user's ComputedKeyFamily and returns only the fingerprint of the active PGP keys. If you want only sibkeys, then // specify sibkey=true.

func (*User) GetActivePGPKIDs

func (u *User) GetActivePGPKIDs(sibkey bool) (ret []keybase1.KID)

func (*User) GetActivePGPKeys

func (u *User) GetActivePGPKeys(sibkey bool) (ret []*PGPKeyBundle)

GetActivePGPKeys looks into the user's ComputedKeyFamily and returns only the active PGP keys. If you want only sibkeys, then specify sibkey=true.

func (*User) GetComputedKeyFamily

func (u *User) GetComputedKeyFamily() (ret *ComputedKeyFamily)

func (*User) GetComputedKeyInfos

func (u *User) GetComputedKeyInfos() *ComputedKeyInfos

func (*User) GetDevice

func (u *User) GetDevice(id keybase1.DeviceID) (*Device, error)

func (*User) GetDeviceSibkey

func (u *User) GetDeviceSibkey() (GenericKey, error)

func (*User) GetDeviceSubkey

func (u *User) GetDeviceSubkey() (subkey GenericKey, err error)

func (*User) GetEldestKID

func (u *User) GetEldestKID() (ret keybase1.KID)

May return an empty KID

func (*User) GetIDVersion

func (u *User) GetIDVersion() (int64, error)

func (*User) GetKeyFamily

func (u *User) GetKeyFamily() *KeyFamily

func (*User) GetName

func (u *User) GetName() string

func (*User) GetNormalizedName

func (u *User) GetNormalizedName() NormalizedUsername

func (*User) GetPublicChainTail

func (u *User) GetPublicChainTail() *MerkleTriple

func (*User) GetSigChainLastKnownSeqno

func (u *User) GetSigChainLastKnownSeqno() Seqno

func (*User) GetSigHintsVersion

func (u *User) GetSigHintsVersion() int

func (*User) GetSigIDFromSeqno

func (u *User) GetSigIDFromSeqno(seqno int) keybase1.SigID

func (*User) GetSyncedSecretKey

func (u *User) GetSyncedSecretKey() (ret *SKB, err error)

func (*User) GetUID

func (u *User) GetUID() keybase1.UID

func (*User) HasActiveKey

func (u *User) HasActiveKey() (ret bool)

func (*User) HasCurrentDeviceInCurrentInstall

func (u *User) HasCurrentDeviceInCurrentInstall() bool

func (*User) HasDeviceInCurrentInstall

func (u *User) HasDeviceInCurrentInstall(did keybase1.DeviceID) bool

Returns whether or not the current install has an active device sibkey.

func (*User) HasEncryptionSubkey

func (u *User) HasEncryptionSubkey() bool

func (*User) IDTable

func (u *User) IDTable() *IdentityTable

func (*User) IsCachedIdentifyFresh

func (u *User) IsCachedIdentifyFresh(upk *keybase1.UserPlusKeys) bool

func (*User) IsSigIDActive

func (u *User) IsSigIDActive(sigID keybase1.SigID) (bool, error)

func (*User) LinkFromSigID

func (u *User) LinkFromSigID(sigID keybase1.SigID) *ChainLink

func (*User) LoadSigChains

func (u *User) LoadSigChains(allKeys bool, f *MerkleUserLeaf, self bool) (err error)

func (*User) MakeIDTable

func (u *User) MakeIDTable() error

func (*User) RevokeKeysProof

func (u *User) RevokeKeysProof(key GenericKey, kidsToRevoke []keybase1.KID, deviceToDisable keybase1.DeviceID) (*jsonw.Wrapper, error)

func (*User) RevokeSigsProof

func (u *User) RevokeSigsProof(key GenericKey, sigIDsToRevoke []keybase1.SigID) (*jsonw.Wrapper, error)

func (*User) ServiceProof

func (u *User) ServiceProof(signingKey GenericKey, typ ServiceType, remotename string) (ret *jsonw.Wrapper, err error)

func (*User) SigChainBump

func (u *User) SigChainBump(linkID LinkID, sigID keybase1.SigID)

func (*User) SigChainBumpMT

func (u *User) SigChainBumpMT(mt MerkleTriple)

func (*User) SigChainDump

func (u *User) SigChainDump(w io.Writer)

func (*User) SigIDSearch

func (u *User) SigIDSearch(query string) (keybase1.SigID, error)

func (*User) SigningKeyPub

func (u *User) SigningKeyPub() (GenericKey, error)

func (*User) Store

func (u *User) Store() error

func (*User) StoreSigChain

func (u *User) StoreSigChain() error

func (*User) StoreTopLevel

func (u *User) StoreTopLevel() error

func (*User) SyncSecrets

func (u *User) SyncSecrets() error

func (*User) SyncedSecretKey

func (u *User) SyncedSecretKey(lctx LoginContext) (ret *SKB, err error)

func (*User) TmpTrackChainLinkFor

func (u *User) TmpTrackChainLinkFor(username string, uid keybase1.UID) (tcl *TrackChainLink, err error)

func (*User) ToTrackingStatement

func (u *User) ToTrackingStatement(w *jsonw.Wrapper, outcome *IdentifyOutcome) (err error)

func (*User) ToTrackingStatementBasics

func (u *User) ToTrackingStatementBasics(errp *error) *jsonw.Wrapper

func (*User) ToTrackingStatementKey

func (u *User) ToTrackingStatementKey(errp *error) *jsonw.Wrapper

func (*User) ToTrackingStatementPGPKeys

func (u *User) ToTrackingStatementPGPKeys(errp *error) *jsonw.Wrapper

func (*User) ToTrackingStatementSeqTail

func (u *User) ToTrackingStatementSeqTail() *jsonw.Wrapper

func (*User) ToUntrackingStatement

func (u *User) ToUntrackingStatement(w *jsonw.Wrapper) (err error)

func (*User) ToUntrackingStatementBasics

func (u *User) ToUntrackingStatementBasics() *jsonw.Wrapper

func (*User) TrackChainLinkFor

func (u *User) TrackChainLinkFor(username string, uid keybase1.UID) (*TrackChainLink, error)

func (*User) TrackStatementJSON

func (u *User) TrackStatementJSON(them *User, outcome *IdentifyOutcome) (string, error)

func (*User) TrackingProofFor

func (u *User) TrackingProofFor(signingKey GenericKey, u2 *User, outcome *IdentifyOutcome) (ret *jsonw.Wrapper, err error)

func (*User) UntrackingProofFor

func (u *User) UntrackingProofFor(signingKey GenericKey, u2 *User) (ret *jsonw.Wrapper, err error)

func (*User) UpdatePassphraseProof

func (u *User) UpdatePassphraseProof(key GenericKey, pwh string, ppGen PassphraseGeneration) (*jsonw.Wrapper, error)

func (*User) VerifySelfSig

func (u *User) VerifySelfSig() error

func (*User) VerifySelfSigByKey

func (u *User) VerifySelfSigByKey() (ret bool)

type UserBasic

type UserBasic interface {
	GetUID() keybase1.UID
	GetName() string
}

type UserConfig

type UserConfig struct {
	ID     string             `json:"id"`
	Name   NormalizedUsername `json:"name"`
	Salt   string             `json:"salt"`
	Device *string            `json:"device"`
	// contains filtered or unexported fields
}

func ImportUserConfigFromJSONWrapper

func ImportUserConfigFromJSONWrapper(jw *jsonw.Wrapper) (ret *UserConfig, err error)

func NewUserConfig

func NewUserConfig(id keybase1.UID, name NormalizedUsername, salt []byte, dev keybase1.DeviceID) *UserConfig

func (UserConfig) GetDeviceID

func (u UserConfig) GetDeviceID() keybase1.DeviceID

func (UserConfig) GetSalt

func (u UserConfig) GetSalt() []byte

func (UserConfig) GetUID

func (u UserConfig) GetUID() keybase1.UID

func (UserConfig) GetUsername

func (u UserConfig) GetUsername() NormalizedUsername

func (*UserConfig) Import

func (u *UserConfig) Import() (err error)

func (*UserConfig) SetDevice

func (u *UserConfig) SetDevice(d keybase1.DeviceID)

type UserConfigWrapper

type UserConfigWrapper struct {
	sync.Mutex
	// contains filtered or unexported fields
}

type UserInfo

type UserInfo struct {
	UID      keybase1.UID
	Username string
}

type UserNotFoundError

type UserNotFoundError struct {
	UID keybase1.UID
	Msg string
}

func (UserNotFoundError) Error

func (u UserNotFoundError) Error() string

type VDebugLevel

type VDebugLevel int
const (
	VLog0 VDebugLevel = 0
	VLog1 VDebugLevel = 1
	VLog2 VDebugLevel = 2
	VLog3 VDebugLevel = 3
)

type VDebugLog

type VDebugLog struct {
	// contains filtered or unexported fields
}

VDebugLog is a "Verbose" debug logger; enable it if you really want spam and/or minutiae

func NewVDebugLog

func NewVDebugLog(l logger.Logger) *VDebugLog

func (*VDebugLog) Configure

func (v *VDebugLog) Configure(s string)

func (*VDebugLog) Log

func (v *VDebugLog) Log(lev VDebugLevel, fs string, args ...interface{})

type VerificationError

type VerificationError struct{}

func (VerificationError) Error

func (v VerificationError) Error() string

type VerificationPath

type VerificationPath struct {
	Contextified
	// contains filtered or unexported fields
}

func (*VerificationPath) VerifyUser

func (vp *VerificationPath) VerifyUser() (user *MerkleUserLeaf, err error)

func (*VerificationPath) VerifyUsername

func (vp *VerificationPath) VerifyUsername() (username string, err error)

type WaitForItError

type WaitForItError struct{}

func (WaitForItError) Error

func (e WaitForItError) Error() string

type Warning

type Warning interface {
	Warning() string
	Warn()
}

func ErrorToWarning

func ErrorToWarning(e error) Warning

func Warningf

func Warningf(format string, a ...interface{}) Warning

type Warnings

type Warnings struct {
	// contains filtered or unexported fields
}

func ImportWarnings

func ImportWarnings(v []string) Warnings

func (Warnings) IsEmpty

func (w Warnings) IsEmpty() bool

func (*Warnings) Push

func (w *Warnings) Push(e Warning)

func (Warnings) Warn

func (w Warnings) Warn()

func (Warnings) Warnings

func (w Warnings) Warnings() []Warning

type WebChecker

type WebChecker struct {
	// contains filtered or unexported fields
}

func (*WebChecker) CheckHint

func (rc *WebChecker) CheckHint(h SigHint) ProofError

func (*WebChecker) CheckStatus

func (rc *WebChecker) CheckStatus(h SigHint) ProofError

func (*WebChecker) GetTorError

func (rc *WebChecker) GetTorError() ProofError
type WebProofChainLink struct {
	GenericChainLink
	// contains filtered or unexported fields
}
func NewWebProofChainLink(b GenericChainLink, p, h, proofText string) *WebProofChainLink

func (*WebProofChainLink) CheckDataJSON

func (w *WebProofChainLink) CheckDataJSON() *jsonw.Wrapper

func (*WebProofChainLink) ComputeTrackDiff

func (w *WebProofChainLink) ComputeTrackDiff(tl *TrackLookup) (res TrackDiff)

func (*WebProofChainLink) DisplayCheck

func (w *WebProofChainLink) DisplayCheck(ui IdentifyUI, lcr LinkCheckResult)

func (*WebProofChainLink) GetHostname

func (w *WebProofChainLink) GetHostname() string

func (*WebProofChainLink) GetProofType

func (w *WebProofChainLink) GetProofType() keybase1.ProofType

func (*WebProofChainLink) GetProtocol

func (w *WebProofChainLink) GetProtocol() string

func (*WebProofChainLink) GetRemoteUsername

func (w *WebProofChainLink) GetRemoteUsername() string

func (*WebProofChainLink) LastWriterWins

func (w *WebProofChainLink) LastWriterWins() bool

func (*WebProofChainLink) ProofText

func (w *WebProofChainLink) ProofText() string

func (*WebProofChainLink) TableKey

func (w *WebProofChainLink) TableKey() string

func (*WebProofChainLink) ToDisplayString

func (w *WebProofChainLink) ToDisplayString() string

func (*WebProofChainLink) ToIDString

func (w *WebProofChainLink) ToIDString() string

func (*WebProofChainLink) ToKeyValuePair

func (w *WebProofChainLink) ToKeyValuePair() (string, string)

func (*WebProofChainLink) ToTrackingStatement

func (w *WebProofChainLink) ToTrackingStatement(state keybase1.ProofState) (*jsonw.Wrapper, error)

func (*WebProofChainLink) Type

func (w *WebProofChainLink) Type() string

type WebServiceType

type WebServiceType struct{ BaseServiceType }

func (WebServiceType) AllStringKeys

func (t WebServiceType) AllStringKeys() []string

func (WebServiceType) CheckProofText

func (t WebServiceType) CheckProofText(text string, id keybase1.SigID, sig string) (err error)

func (WebServiceType) CheckUsername

func (t WebServiceType) CheckUsername(s string) error

func (WebServiceType) DisplayName

func (t WebServiceType) DisplayName(un string) string

func (WebServiceType) GetAPIArgKey

func (t WebServiceType) GetAPIArgKey() string

func (WebServiceType) GetPrompt

func (t WebServiceType) GetPrompt() string

func (WebServiceType) GetProofType

func (t WebServiceType) GetProofType() string

func (WebServiceType) GetTypeName

func (t WebServiceType) GetTypeName() string

func (WebServiceType) LastWriterWins

func (t WebServiceType) LastWriterWins() bool

func (WebServiceType) MarkupFilenames

func (t WebServiceType) MarkupFilenames(un string, mkp *Markup)

func (WebServiceType) NormalizeUsername

func (t WebServiceType) NormalizeUsername(s string) (ret string, err error)

func (WebServiceType) PostInstructions

func (t WebServiceType) PostInstructions(un string) *Markup

func (WebServiceType) PreProofWarning

func (t WebServiceType) PreProofWarning(un string) *Markup

func (WebServiceType) PrimaryStringKeys

func (t WebServiceType) PrimaryStringKeys() []string

func (WebServiceType) RecheckProofPosting

func (t WebServiceType) RecheckProofPosting(tryNumber int, status keybase1.ProofStatus, _ string) (warning *Markup, err error)

func (WebServiceType) ToChecker

func (t WebServiceType) ToChecker() Checker

func (WebServiceType) ToServiceJSON

func (t WebServiceType) ToServiceJSON(un string) *jsonw.Wrapper

type WebUnreachableError

type WebUnreachableError struct {
	// contains filtered or unexported fields
}

func (WebUnreachableError) Error

func (h WebUnreachableError) Error() string

type Win32

type Win32 struct {
	Base
}

func (Win32) CacheDir

func (w Win32) CacheDir() string

func (Win32) ConfigDir

func (w Win32) ConfigDir() string

func (Win32) DataDir

func (w Win32) DataDir() string

func (Win32) Home

func (w Win32) Home(emptyOk bool) string

func (Win32) LogDir

func (w Win32) LogDir() string

func (Win32) Normalize

func (w Win32) Normalize(s string) string

func (Win32) RuntimeDir

func (w Win32) RuntimeDir() string

func (Win32) ServiceSpawnDir

func (w Win32) ServiceSpawnDir() (string, error)

func (Win32) Split

func (w Win32) Split(s string) []string

type WrongCryptoFormatError

type WrongCryptoFormatError struct {
	Wanted, Received CryptoMessageFormat
	Operation        string
}

func (WrongCryptoFormatError) Error

func (e WrongCryptoFormatError) Error() string

func (WrongCryptoFormatError) ToStatus

func (e WrongCryptoFormatError) ToStatus() keybase1.Status

type WrongKeyError

type WrongKeyError struct {
	// contains filtered or unexported fields
}

func (WrongKeyError) Error

func (e WrongKeyError) Error() string

type WrongKidError

type WrongKidError struct {
	// contains filtered or unexported fields
}

func (WrongKidError) Error

func (w WrongKidError) Error() string

type WrongSigError

type WrongSigError struct {
	// contains filtered or unexported fields
}

func (WrongSigError) Error

func (e WrongSigError) Error() string

type XdgPosix

type XdgPosix struct {
	Base
}

func (XdgPosix) CacheDir

func (x XdgPosix) CacheDir() string

func (XdgPosix) ConfigDir

func (x XdgPosix) ConfigDir() string

func (XdgPosix) DataDir

func (x XdgPosix) DataDir() string

func (XdgPosix) Home

func (x XdgPosix) Home(emptyOk bool) string

func (XdgPosix) LogDir

func (x XdgPosix) LogDir() string

func (XdgPosix) Normalize

func (x XdgPosix) Normalize(s string) string

func (XdgPosix) RuntimeDir

func (x XdgPosix) RuntimeDir() string

func (XdgPosix) ServiceSpawnDir

func (x XdgPosix) ServiceSpawnDir() (ret string, err error)

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL