Skip to content

Commit

Permalink
chore(deps): update wish and keygen (#225)
Browse files Browse the repository at this point in the history
* refactor(deps): update wish and keygen

* fix(deps): logger

* fix: use updated keygen

Co-authored-by: Ayman Bagabas <ayman.bagabas@gmail.com>

* refactor: clean up error handling

---------

Co-authored-by: Ayman Bagabas <ayman.bagabas@gmail.com>
  • Loading branch information
bashbunni and aymanbagabas committed Jun 29, 2023
1 parent 52294b4 commit 7388ea9
Show file tree
Hide file tree
Showing 10 changed files with 95 additions and 79 deletions.
3 changes: 2 additions & 1 deletion client/client.go
Expand Up @@ -81,7 +81,8 @@ func NewClient(cfg *Config) (*Client, error) {
if err != nil {
return nil, err
}
_, err = keygen.NewWithWrite(filepath.Join(dp, "charm"), []byte(""), cfg.KeygenType())

_, err = keygen.New(filepath.Join(dp, "charm_"+cfg.KeygenType().String()), keygen.WithKeyType(cfg.KeygenType()), keygen.WithWrite())
if err != nil {
return nil, err
}
Expand Down
3 changes: 1 addition & 2 deletions cmd/import_keys.go
Expand Up @@ -217,12 +217,11 @@ func restoreFromReader(r io.Reader, dd string) error {
return err
}

err = os.WriteFile(
return os.WriteFile(
keypath+".pub",
ssh.MarshalAuthorizedKey(signer.PublicKey()),
0o600,
)
return err
}

func untar(tarball, targetDir string) error {
Expand Down
4 changes: 2 additions & 2 deletions cmd/post_news.go
Expand Up @@ -26,11 +26,11 @@ var (
cfg.DataDir = serverDataDir
}
sp := filepath.Join(cfg.DataDir, ".ssh")
kp, err := keygen.NewWithWrite(filepath.Join(sp, "charm_server"), []byte(""), keygen.Ed25519)
kp, err := keygen.New(filepath.Join(sp, "charm_server_ed25519"), keygen.WithKeyType(keygen.Ed25519), keygen.WithWrite())
if err != nil {
return err
}
cfg = cfg.WithKeys(kp.PublicKey(), kp.PrivateKeyPEM())
cfg = cfg.WithKeys(kp.RawAuthorizedKey(), kp.RawPrivateKey())
s, err := server.NewServer(cfg)
if err != nil {
return err
Expand Down
4 changes: 2 additions & 2 deletions cmd/serve.go
Expand Up @@ -48,11 +48,11 @@ var (
cfg.DataDir = serverDataDir
}
sp := filepath.Join(cfg.DataDir, ".ssh")
kp, err := keygen.NewWithWrite(filepath.Join(sp, "charm_server"), []byte(""), keygen.Ed25519)
kp, err := keygen.New(filepath.Join(sp, "charm_server_ed25519"), keygen.WithKeyType(keygen.Ed25519), keygen.WithWrite())
if err != nil {
return err
}
cfg = cfg.WithKeys(kp.PublicKey(), kp.PrivateKeyPEM())
cfg = cfg.WithKeys(kp.RawAuthorizedKey(), kp.RawPrivateKey())
s, err := server.NewServer(cfg)
if err != nil {
return err
Expand Down
18 changes: 9 additions & 9 deletions go.mod
Expand Up @@ -8,16 +8,16 @@ require (
github.com/calmh/randomart v1.1.0
github.com/charmbracelet/bubbles v0.15.0
github.com/charmbracelet/bubbletea v0.23.2
github.com/charmbracelet/keygen v0.3.0
github.com/charmbracelet/lipgloss v0.6.0
github.com/charmbracelet/log v0.1.0
github.com/charmbracelet/wish v0.5.0
github.com/charmbracelet/keygen v0.4.2
github.com/charmbracelet/lipgloss v0.7.1
github.com/charmbracelet/log v0.2.2
github.com/charmbracelet/ssh v0.0.0-20221117183211-483d43d97103
github.com/charmbracelet/wish v1.1.1
github.com/dgraph-io/badger/v3 v3.2103.2
github.com/gliderlabs/ssh v0.3.5
github.com/golang-jwt/jwt/v4 v4.5.0
github.com/google/uuid v1.3.0
github.com/jacobsa/crypto v0.0.0-20190317225127-9f44e2d11115
github.com/mattn/go-isatty v0.0.17
github.com/mattn/go-isatty v0.0.19
github.com/meowgorithm/babylogger v1.2.0
github.com/mitchellh/go-homedir v1.1.0
github.com/muesli/go-app-paths v0.2.2
Expand All @@ -38,7 +38,7 @@ require (
require (
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect
github.com/atotto/clipboard v0.1.4 // indirect
github.com/aymanbagabas/go-osc52 v1.2.1 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/caarlos0/sshmarshal v0.1.0 // indirect
github.com/cespare/xxhash v1.1.0 // indirect
Expand Down Expand Up @@ -68,13 +68,13 @@ require (
github.com/muesli/cancelreader v0.2.2 // indirect
github.com/muesli/mango v0.1.0 // indirect
github.com/muesli/mango-pflag v0.1.0 // indirect
github.com/muesli/termenv v0.14.0 // indirect
github.com/muesli/termenv v0.15.1 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/prometheus/client_model v0.3.0 // indirect
github.com/prometheus/common v0.42.0 // indirect
github.com/prometheus/procfs v0.9.0 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 // indirect
github.com/rivo/uniseg v0.2.0 // indirect
github.com/rivo/uniseg v0.4.4 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect
go.opencensus.io v0.22.5 // indirect
Expand Down
110 changes: 61 additions & 49 deletions go.sum

Large diffs are not rendered by default.

16 changes: 8 additions & 8 deletions server/auth.go
Expand Up @@ -6,8 +6,8 @@ import (
"github.com/charmbracelet/log"

charm "github.com/charmbracelet/charm/proto"
"github.com/charmbracelet/ssh"
"github.com/charmbracelet/wish"
"github.com/gliderlabs/ssh"
)

func (me *SSHServer) sshMiddleware() wish.Middleware {
Expand Down Expand Up @@ -40,12 +40,12 @@ func (me *SSHServer) sshMiddleware() wish.Middleware {
func (me *SSHServer) handleAPIAuth(s ssh.Session) {
key, err := keyText(s)
if err != nil {
me.errorLog.Println(err)
me.errorLog.Print(err)
return
}
u, err := me.db.UserForKey(key, true)
if err != nil {
me.errorLog.Println(err)
me.errorLog.Print(err)
return
}
log.Debug("JWT for user", "id", u.CharmID)
Expand Down Expand Up @@ -74,20 +74,20 @@ func (me *SSHServer) handleAPIAuth(s ssh.Session) {
func (me *SSHServer) handleAPIKeys(s ssh.Session) {
key, err := keyText(s)
if err != nil {
me.errorLog.Println(err)
me.errorLog.Print(err)
_ = me.sendAPIMessage(s, "Missing key")
return
}
u, err := me.db.UserForKey(key, true)
if err != nil {
me.errorLog.Println(err)
me.errorLog.Print(err)
_ = me.sendAPIMessage(s, fmt.Sprintf("API keys error: %s", err))
return
}
log.Debug("API keys for user", "id", u.CharmID)
keys, err := me.db.KeysForUser(u)
if err != nil {
me.errorLog.Println(err)
me.errorLog.Print(err)
_ = me.sendAPIMessage(s, "There was a problem fetching your keys")
return
}
Expand All @@ -111,12 +111,12 @@ func (me *SSHServer) handleAPIKeys(s ssh.Session) {
func (me *SSHServer) handleID(s ssh.Session) {
key, err := keyText(s)
if err != nil {
me.errorLog.Println(err)
me.errorLog.Print(err)
return
}
u, err := me.db.UserForKey(key, true)
if err != nil {
me.errorLog.Println(err)
me.errorLog.Print(err)
return
}
log.Debug("ID for user", "id", u.CharmID)
Expand Down
2 changes: 1 addition & 1 deletion server/link.go
Expand Up @@ -9,7 +9,7 @@ import (
"github.com/charmbracelet/log"

charm "github.com/charmbracelet/charm/proto"
"github.com/gliderlabs/ssh"
"github.com/charmbracelet/ssh"
"github.com/muesli/toktok"
)

Expand Down
9 changes: 6 additions & 3 deletions server/ssh.go
Expand Up @@ -14,9 +14,9 @@ import (

charm "github.com/charmbracelet/charm/proto"
"github.com/charmbracelet/charm/server/db"
"github.com/charmbracelet/ssh"
"github.com/charmbracelet/wish"
rm "github.com/charmbracelet/wish/recover"
"github.com/gliderlabs/ssh"
jwt "github.com/golang-jwt/jwt/v4"
)

Expand Down Expand Up @@ -46,8 +46,11 @@ func NewSSHServer(cfg *Config) (*SSHServer, error) {
errorLog: cfg.errorLog,
linkQueue: cfg.linkQueue,
}

if s.errorLog == nil {
s.errorLog = log.StandardLog(log.StandardLogOption{ForceLevel: log.ErrorLevel})
s.errorLog = log.StandardLog(log.StandardLogOptions{
ForceLevel: log.ErrorLevel,
})
}
addr := fmt.Sprintf("%s:%d", cfg.BindAddr, cfg.SSHPort)
s.db = cfg.DB
Expand All @@ -63,7 +66,7 @@ func NewSSHServer(cfg *Config) (*SSHServer, error) {
wish.WithPublicKeyAuth(s.authHandler),
wish.WithMiddleware(
rm.MiddlewareWithLogger(
log.StandardLog(log.StandardLogOption{ForceLevel: log.ErrorLevel}),
log.NewWithOptions(os.Stderr, log.Options{Level: log.ErrorLevel}),
s.sshMiddleware(),
),
),
Expand Down
5 changes: 3 additions & 2 deletions testserver/testserver.go
Expand Up @@ -34,12 +34,13 @@ func SetupTestServer(tb testing.TB) *client.Client {
cfg.HTTPPort = randomPort(tb)
cfg.HealthPort = randomPort(tb)

kp, err := keygen.NewWithWrite(filepath.Join(sp, "charm_server"), []byte(""), keygen.Ed25519)
kp, err := keygen.New(filepath.Join(sp, "charm_server_ed25519"), keygen.WithKeyType(keygen.Ed25519), keygen.WithWrite())
if err != nil {
tb.Fatalf("keygen error: %s", err)
}

cfg = cfg.WithKeys(kp.PublicKey(), kp.PrivateKeyPEM())
// TODO: see if this works the same

Check failure on line 42 in testserver/testserver.go

View workflow job for this annotation

GitHub Actions / lint

testserver/testserver.go:42: Line contains TODO/BUG/FIXME: "TODO: see if this works the same" (godox)
cfg = cfg.WithKeys(kp.RawAuthorizedKey(), kp.RawPrivateKey())
s, err := server.NewServer(cfg)
if err != nil {
tb.Fatalf("new server error: %s", err)
Expand Down

0 comments on commit 7388ea9

Please sign in to comment.