go

module
v0.0.0-...-52f30ea Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2024 License: BSD-3-Clause

README

Keybase Build Status Build status

This repository contains the Keybase core crypto libraries, command-line utility, and local Keybase service. All code is written in the Go Language, making heavy use of Go's OpenPGP and NaCl Library implementation.

Our intended architecture is that keybase runs a local service on Desktop environments, which can be connected to over a local Unix domain sockets on OSX/Linux, and over named pipes on Windows. The persistent service will eventually listen for asynchronous server updates, and will serve several clients, like the command-line utility, the graphical desktop app (see electron), and the Keybase FUSE-mounted file system.

Code in this repository can run against either our production site or our staging server.

Install production client

If you're not building Keybase yourself, follow our usual install instructions.

Building

Here's how to build the command line client on Linux or OSX. You need to have both Git and Go 1.19 or higher installed. (Run go version to see what version you have.)

# First we need to set up a GOPATH. This is a standard first step for
# building Go programs, so if you've done this already, skip on ahead.
# See also https://golang.org/doc/install.
mkdir ~/gopath
export GOPATH="$HOME/gopath"     # Consider putting this in your ~/.bashrc.
export PATH="$PATH:$GOPATH/bin"  # Ditto.

# Now for the actual clone and build. Currently the Keybase client depends
# on go.mod replace directives, so a `go get` of the repository cannot be
# used. You should use `git` to clone the repository instead.
# See https://github.com/golang/go/issues/30354 for more details.
git clone https://github.com/keybase/client.git
cd client/go
go install -tags production github.com/keybase/client/go/keybase

# If you did the PATH bit above, this should just work.
keybase

Run the service

keybase service

Or specify a custom home directory (and use -d for debug):

keybase -H ~/Projects/Keybase/dev -d service

Note that many commands will start the service in the background automatically if it's not already running. See also keybase ctl --help.

Run the client

keybase login
keybase id max

Or you can run the client in "Standalone" Mode

# No service needed, but you'll be repeatedly prompted for your passphrase
keybase --standalone id max

Run tests

cd $GOPATH/src/github.com/keybase/client/go/test
./run_tests.sh

Calculate package dependenies

make gen-deps

License

Most code is released under the New BSD (3 Clause) License.

Directories

Path Synopsis
Code used to support authentication tokens for arbitrary purposes.
Code used to support authentication tokens for arbitrary purposes.
s3
this command is only for testing purposes
this command is only for testing purposes
This engine enters a user into the reset pipeline.
This engine enters a user into the reset pipeline.
kbfs
dokan
Package dokan binds to the Dokan Windows filesystem library (similar to fuse).
Package dokan binds to the Dokan Windows filesystem library (similar to fuse).
dokan/winacl
Package winacl adds support for various Windows security APIs for Dokan.
Package winacl adds support for various Windows security APIs for Dokan.
env
libdokan
Package libdokan is an interface between libkbfs and dokan.
Package libdokan is an interface between libkbfs and dokan.
test
Package test is a test framework for KBFS
Package test is a test framework for KBFS
tlf
Package minterm implements minimal terminal functions.
Package minterm implements minimal terminal functions.
protocol
stellarsvc
this file is for the implementation of all the frontend-requested service endpoints for wallets.
this file is for the implementation of all the frontend-requested service endpoints for wallets.
Similar to libkb/kbsigs.go, but for teams sigs.
Similar to libkb/kbsigs.go, but for teams sigs.
tools
zip

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL