aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/client.go5
-rw-r--r--cmd/cashierd/main.go3
-rw-r--r--lib/proto.go (renamed from lib/const.go)6
-rw-r--r--lib/util.go (renamed from server/util/util.go)6
-rw-r--r--lib/util_test.go (renamed from server/util/util_test.go)2
-rw-r--r--server/store/store.go4
6 files changed, 10 insertions, 16 deletions
diff --git a/client/client.go b/client/client.go
index e69f353..b13c4cb 100644
--- a/client/client.go
+++ b/client/client.go
@@ -79,11 +79,8 @@ func Sign(pub ssh.PublicKey, token string, conf *Config) (*ssh.Certificate, erro
if err != nil {
return nil, err
}
- marshaled := ssh.MarshalAuthorizedKey(pub)
- // Remove the trailing newline.
- marshaled = marshaled[:len(marshaled)-1]
s, err := json.Marshal(&lib.SignRequest{
- Key: string(marshaled),
+ Key: lib.GetPublicKey(pub),
ValidUntil: time.Now().Add(validity),
})
if err != nil {
diff --git a/cmd/cashierd/main.go b/cmd/cashierd/main.go
index 31ee240..52b6a8b 100644
--- a/cmd/cashierd/main.go
+++ b/cmd/cashierd/main.go
@@ -34,7 +34,6 @@ import (
"github.com/nsheridan/cashier/server/static"
"github.com/nsheridan/cashier/server/store"
"github.com/nsheridan/cashier/server/templates"
- "github.com/nsheridan/cashier/server/util"
"github.com/nsheridan/cashier/server/wkfs/vaultfs"
"github.com/nsheridan/wkfs/s3"
"github.com/sid77/drop"
@@ -169,7 +168,7 @@ func signHandler(a *appContext, w http.ResponseWriter, r *http.Request) (int, er
}
json.NewEncoder(w).Encode(&lib.SignResponse{
Status: "ok",
- Response: util.GetPublicKey(cert),
+ Response: lib.GetPublicKey(cert),
})
return http.StatusOK, nil
}
diff --git a/lib/const.go b/lib/proto.go
index 1ba2749..f3d7115 100644
--- a/lib/const.go
+++ b/lib/proto.go
@@ -9,9 +9,7 @@ type SignRequest struct {
}
// SignResponse is sent by the server.
-// `Status' is "ok" or "error".
-// `Response' contains a signed certificate or an error message.
type SignResponse struct {
- Status string `json:"status"`
- Response string `json:"response"`
+ Status string `json:"status"` // Status will be "ok" or "error".
+ Response string `json:"response"` // Response will contain either the signed certificate or the error message.
}
diff --git a/server/util/util.go b/lib/util.go
index 10f5eca..b1c7b87 100644
--- a/server/util/util.go
+++ b/lib/util.go
@@ -1,10 +1,10 @@
-package util
+package lib
import "golang.org/x/crypto/ssh"
// GetPublicKey marshals a ssh certificate to a string.
-func GetPublicKey(cert *ssh.Certificate) string {
- marshaled := ssh.MarshalAuthorizedKey(cert)
+func GetPublicKey(pub ssh.PublicKey) string {
+ marshaled := ssh.MarshalAuthorizedKey(pub)
// Strip trailing newline
return string(marshaled[:len(marshaled)-1])
}
diff --git a/server/util/util_test.go b/lib/util_test.go
index d294d86..9e89297 100644
--- a/server/util/util_test.go
+++ b/lib/util_test.go
@@ -1,4 +1,4 @@
-package util
+package lib
import (
"testing"
diff --git a/server/store/store.go b/server/store/store.go
index a447e72..8af77e3 100644
--- a/server/store/store.go
+++ b/server/store/store.go
@@ -5,8 +5,8 @@ import (
"golang.org/x/crypto/ssh"
+ "github.com/nsheridan/cashier/lib"
"github.com/nsheridan/cashier/server/config"
- "github.com/nsheridan/cashier/server/util"
)
// New returns a new configured database.
@@ -54,6 +54,6 @@ func parseCertificate(cert *ssh.Certificate) *CertRecord {
Principals: cert.ValidPrincipals,
CreatedAt: parseTime(cert.ValidAfter),
Expires: parseTime(cert.ValidBefore),
- Raw: util.GetPublicKey(cert),
+ Raw: lib.GetPublicKey(cert),
}
}