From 7c99874c7a3e7a89716f3ee0cdf696532e35ae35 Mon Sep 17 00:00:00 2001 From: Bob Long Date: Tue, 17 Oct 2017 14:00:37 +0100 Subject: Support a message to be passed and logged from client to server (#67) * Support a message to be passed and logged from client to server --- server/signer/signer.go | 4 ++++ server/signer/signer_test.go | 1 + 2 files changed, 5 insertions(+) (limited to 'server/signer') diff --git a/server/signer/signer.go b/server/signer/signer.go index 2a8fc98..47ff7c8 100644 --- a/server/signer/signer.go +++ b/server/signer/signer.go @@ -62,6 +62,7 @@ func (s *KeySigner) SignUserKeyFromRPC(req *proto.SignRequest, username string) r := &lib.SignRequest{ Key: string(req.GetKey()), ValidUntil: valid, + Message: string(req.GetMessage()), } return s.SignUserKey(r, username) } @@ -89,6 +90,9 @@ func (s *KeySigner) SignUserKey(req *lib.SignRequest, username string) (*ssh.Cer if err := cert.SignCert(rand.Reader, s.ca); err != nil { return nil, err } + if req.Message != "" { + log.Printf("Message from %s: %s", username, req.Message) + } log.Printf("Issued cert id: %s principals: %s fp: %s valid until: %s\n", cert.KeyId, cert.ValidPrincipals, ssh.FingerprintSHA256(pubkey), time.Unix(int64(cert.ValidBefore), 0).UTC()) return cert, nil } diff --git a/server/signer/signer_test.go b/server/signer/signer_test.go index 726a69b..c07d62b 100644 --- a/server/signer/signer_test.go +++ b/server/signer/signer_test.go @@ -28,6 +28,7 @@ func TestCert(t *testing.T) { r := &lib.SignRequest{ Key: string(testdata.Pub), ValidUntil: time.Now().Add(1 * time.Hour), + Message: "hello world", } cert, err := signer.SignUserKey(r, "gopher1") if err != nil { -- cgit v1.2.3