diff --git a/client/client.go b/client/client.go index 664ea7c9..c48dc8d7 100644 --- a/client/client.go +++ b/client/client.go @@ -81,7 +81,7 @@ func NewClient(cfg *Config) (*Client, error) { if err != nil { return nil, err } - _, err = keygen.NewWithWrite(dp, "charm", []byte(""), cfg.KeygenType()) + _, err = keygen.NewWithWrite(filepath.Join(dp, "charm"), []byte(""), cfg.KeygenType()) if err != nil { return nil, err } diff --git a/cmd/post_news.go b/cmd/post_news.go index 352757ca..d67137df 100644 --- a/cmd/post_news.go +++ b/cmd/post_news.go @@ -26,11 +26,11 @@ var ( cfg.DataDir = serverDataDir } sp := filepath.Join(cfg.DataDir, ".ssh") - kp, err := keygen.NewWithWrite(sp, "charm_server", []byte(""), keygen.Ed25519) + kp, err := keygen.NewWithWrite(filepath.Join(sp, "charm_server"), []byte(""), keygen.Ed25519) if err != nil { return err } - cfg = cfg.WithKeys(kp.PublicKey, kp.PrivateKeyPEM) + cfg = cfg.WithKeys(kp.PublicKey(), kp.PrivateKeyPEM()) s, err := server.NewServer(cfg) if err != nil { return err diff --git a/cmd/serve.go b/cmd/serve.go index 5367aa11..06fdaeee 100644 --- a/cmd/serve.go +++ b/cmd/serve.go @@ -46,11 +46,11 @@ var ( cfg.DataDir = serverDataDir } sp := filepath.Join(cfg.DataDir, ".ssh") - kp, err := keygen.NewWithWrite(sp, "charm_server", []byte(""), keygen.Ed25519) + kp, err := keygen.NewWithWrite(filepath.Join(sp, "charm_server"), []byte(""), keygen.Ed25519) if err != nil { return err } - cfg = cfg.WithKeys(kp.PublicKey, kp.PrivateKeyPEM) + cfg = cfg.WithKeys(kp.PublicKey(), kp.PrivateKeyPEM()) s, err := server.NewServer(cfg) if err != nil { return err diff --git a/go.mod b/go.mod index 66038062..39290976 100644 --- a/go.mod +++ b/go.mod @@ -8,9 +8,9 @@ require ( github.com/calmh/randomart v1.1.0 github.com/charmbracelet/bubbles v0.10.3 github.com/charmbracelet/bubbletea v0.20.0 - github.com/charmbracelet/keygen v0.2.1 + github.com/charmbracelet/keygen v0.3.0 github.com/charmbracelet/lipgloss v0.5.0 - github.com/charmbracelet/wish v0.2.1 + github.com/charmbracelet/wish v0.3.1 github.com/dgraph-io/badger/v3 v3.2011.1 github.com/gliderlabs/ssh v0.3.3 github.com/golang-jwt/jwt/v4 v4.2.0 @@ -26,7 +26,7 @@ require ( github.com/prometheus/client_golang v0.9.3 github.com/spf13/cobra v1.0.0 goji.io v2.0.2+incompatible - golang.org/x/crypto v0.0.0-20211202192323-5770296d904e + golang.org/x/crypto v0.0.0-20220307211146-efcb8507fb70 gopkg.in/square/go-jose.v2 v2.6.0 modernc.org/sqlite v1.14.8 ) @@ -36,6 +36,7 @@ require ( github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect github.com/atotto/clipboard v0.1.4 // indirect github.com/beorn7/perks v1.0.0 // indirect + github.com/caarlos0/sshmarshal v0.0.0-20220308164159-9ddb9f83c6b3 // indirect github.com/cespare/xxhash v1.1.0 // indirect github.com/containerd/console v1.0.3 // indirect github.com/dgraph-io/ristretto v0.0.4-0.20210122082011-bb5d392ed82d // indirect @@ -53,7 +54,6 @@ require ( github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mattn/go-runewidth v0.0.13 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect - github.com/mikesmitty/edkey v0.0.0-20170222072505-3356ea4e686a // indirect github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b // indirect github.com/muesli/termenv v0.11.1-0.20220212125758-44cd13922739 // indirect github.com/pkg/errors v0.9.1 // indirect diff --git a/go.sum b/go.sum index 032c9571..68ead275 100644 --- a/go.sum +++ b/go.sum @@ -24,6 +24,8 @@ github.com/beorn7/perks v1.0.0 h1:HWo1m869IqiPhD389kmkxeTalrjNbbJTC8LXupb+sl0= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/caarlos0/env/v6 v6.9.1 h1:zOkkjM0F6ltnQ5eBX6IPI41UP/KDGEK7rRPwGCNos8k= github.com/caarlos0/env/v6 v6.9.1/go.mod h1:hvp/ryKXKipEkcuYjs9mI4bBCg+UI0Yhgm5Zu0ddvwc= +github.com/caarlos0/sshmarshal v0.0.0-20220308164159-9ddb9f83c6b3 h1:w2ANoiT4ubmh4Nssa3/QW1M7lj3FZkma8f8V5aBDxXM= +github.com/caarlos0/sshmarshal v0.0.0-20220308164159-9ddb9f83c6b3/go.mod h1:7Pd/0mmq9x/JCzKauogNjSQEhivBclCQHfr9dlpDIyA= github.com/calmh/randomart v1.1.0 h1:evl+iwc10LXtHdMZhzLxmsCQVmWnkXs44SbC6Uk0Il8= github.com/calmh/randomart v1.1.0/go.mod h1:DQUbPVyP+7PAs21w/AnfMKG5NioxS3TbZ2F9MSK/jFM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -35,14 +37,16 @@ github.com/charmbracelet/bubbletea v0.19.3/go.mod h1:VuXF2pToRxDUHcBUcPmCRUHRvFA github.com/charmbracelet/bubbletea v0.20.0 h1:/b8LEPgCbNr7WWZ2LuE/BV1/r4t5PyYJtDb+J3vpwxc= github.com/charmbracelet/bubbletea v0.20.0/go.mod h1:zpkze1Rioo4rJELjRyGlm9T2YNou1Fm4LIJQSa5QMEM= github.com/charmbracelet/harmonica v0.1.0/go.mod h1:KSri/1RMQOZLbw7AHqgcBycp8pgJnQMYYT8QZRqZ1Ao= -github.com/charmbracelet/keygen v0.2.1 h1:H1yYTVe6qIDz+UILYXo6q+qLQNkvyXXA5KEhzyuEfzg= -github.com/charmbracelet/keygen v0.2.1/go.mod h1:kFQ3Cvop12fXWX1K29vxDxV9x8ujG4wBSXq//GySSSk= +github.com/charmbracelet/keygen v0.3.0 h1:mXpsQcH7DDlST5TddmXNXjS0L7ECk4/kLQYyBcsan2Y= +github.com/charmbracelet/keygen v0.3.0/go.mod h1:1ukgO8806O25lUZ5s0IrNur+RlwTBERlezdgW71F5rM= github.com/charmbracelet/lipgloss v0.1.1/go.mod h1:5D8zradw52m7QmxRF6QgwbwJi9je84g8MkWiGN07uKg= github.com/charmbracelet/lipgloss v0.4.0/go.mod h1:vmdkHvce7UzX6xkyf4cca8WlwdQ5RQr8fzta+xl7BOM= github.com/charmbracelet/lipgloss v0.5.0 h1:lulQHuVeodSgDez+3rGiuxlPVXSnhth442DATR2/8t8= github.com/charmbracelet/lipgloss v0.5.0/go.mod h1:EZLha/HbzEt7cYqdFPovlqy5FZPj0xFhg5SaqxScmgs= -github.com/charmbracelet/wish v0.2.1 h1:UEUQ50L76bY0GiyDq4+LXrS2DEb6zoxnHJ56xyMfytk= -github.com/charmbracelet/wish v0.2.1/go.mod h1:ja7i62v6EfVOHH70wlUbLuU0kC7KS2TwgatxkFx4I28= +github.com/charmbracelet/wish v0.3.1-0.20220405152319-bea68c3da3b1 h1:OmXSQNyZ/I5Nr+dEiqkeuaAAFfyJzp2wesZFuxxI4s4= +github.com/charmbracelet/wish v0.3.1-0.20220405152319-bea68c3da3b1/go.mod h1:+EgtczC00Oocx5Y237jSGpD/rOcSdq97Intl0ITHwos= +github.com/charmbracelet/wish v0.3.1 h1:B3GZop29tFf/Jh8oMyeTX+iSP3X2bR8AQduf/h4OdRQ= +github.com/charmbracelet/wish v0.3.1/go.mod h1:+EgtczC00Oocx5Y237jSGpD/rOcSdq97Intl0ITHwos= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ= github.com/containerd/console v1.0.3 h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw= @@ -167,6 +171,7 @@ github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69 github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= +github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= github.com/mattn/go-colorable v0.0.0-20170327083344-ded68f7a9561/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= @@ -183,8 +188,6 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0j github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/meowgorithm/babylogger v1.2.0 h1:lV48OR+bMVR4qVIaUrcTcITGhfV+C/gKnTYCUR++APU= github.com/meowgorithm/babylogger v1.2.0/go.mod h1:Kmw1fbhkP4sLJmhiGIpThiG+guQAQ8dQ3GnLa+8Fjf0= -github.com/mikesmitty/edkey v0.0.0-20170222072505-3356ea4e686a h1:eU8j/ClY2Ty3qdHnn0TyW3ivFoPC/0F1gQZz8yTxbbE= -github.com/mikesmitty/edkey v0.0.0-20170222072505-3356ea4e686a/go.mod h1:v8eSC2SMp9/7FTKUncp7fH9IwPfw+ysMObcEz5FWheQ= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= @@ -298,9 +301,9 @@ golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20211202192323-5770296d904e h1:MUP6MR3rJ7Gk9LEia0LP2ytiH6MuCfs7qYz+47jGdD8= golang.org/x/crypto v0.0.0-20211202192323-5770296d904e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220307211146-efcb8507fb70 h1:syTAU9FwmvzEoIYMqcPHOcVm4H3U5u90WsvuYgwpETU= +golang.org/x/crypto v0.0.0-20220307211146-efcb8507fb70/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= diff --git a/server/auth_test.go b/server/auth_test.go index 7ce4b1de..920c7929 100644 --- a/server/auth_test.go +++ b/server/auth_test.go @@ -17,11 +17,11 @@ func TestSSHAuthMiddleware(t *testing.T) { td := t.TempDir() cfg.DataDir = filepath.Join(td, ".data") sp := filepath.Join(td, ".ssh") - kp, err := keygen.NewWithWrite(sp, "charm_server", []byte(""), keygen.Ed25519) + kp, err := keygen.NewWithWrite(filepath.Join(sp, "charm_server"), []byte(""), keygen.Ed25519) if err != nil { t.Fatalf("keygen error: %s", err) } - cfg = cfg.WithKeys(kp.PublicKey, kp.PrivateKeyPEM) + cfg = cfg.WithKeys(kp.PublicKey(), kp.PrivateKeyPEM()) s, err := NewServer(cfg) if err != nil { t.Fatalf("new server error: %s", err)