From 2b51460a6891e1b81a48590be89b66dba06168f9 Mon Sep 17 00:00:00 2001 From: kayrus Date: Thu, 12 Dec 2024 11:56:42 +0100 Subject: [PATCH] Fix linter issues --- .golangci.yml | 2 +- putty.go | 50 ++++++++++++++++++++++++++++++++++++++++---------- putty_test.go | 1 - unmarshal.go | 1 + 4 files changed, 42 insertions(+), 12 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index 2620b66..1d326ad 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -33,7 +33,6 @@ linters: - exhaustive - exportloopref - gci - - godot - gofmt - goheader - goimports @@ -51,6 +50,7 @@ linters: - unconvert - unused - whitespace +# - godot # - cyclop # - dupl # - durationcheck diff --git a/putty.go b/putty.go index 4f891d0..fc8d1a7 100644 --- a/putty.go +++ b/putty.go @@ -442,16 +442,46 @@ func decryptCBC(cipherKey, cipherIV, macKey, ciphertext []byte) error { // validateHMAC validates PuTTY key HMAC with a hash function func (k Key) validateHMAC(hashFunc hash.Hash) error { - binary.Write(hashFunc, binary.BigEndian, uint32(len(k.Algo))) - hashFunc.Write([]byte(k.Algo)) - binary.Write(hashFunc, binary.BigEndian, uint32(len(k.Encryption))) - hashFunc.Write([]byte(k.Encryption)) - binary.Write(hashFunc, binary.BigEndian, uint32(len(k.Comment))) - hashFunc.Write([]byte(k.Comment)) - binary.Write(hashFunc, binary.BigEndian, uint32(len(k.PublicKey))) - hashFunc.Write(k.PublicKey) - binary.Write(hashFunc, binary.BigEndian, uint32(len(k.PrivateKey))) - hashFunc.Write(k.PrivateKey) + err := binary.Write(hashFunc, binary.BigEndian, uint32(len(k.Algo))) + if err != nil { + return err + } + _, err = hashFunc.Write([]byte(k.Algo)) + if err != nil { + return err + } + err = binary.Write(hashFunc, binary.BigEndian, uint32(len(k.Encryption))) + if err != nil { + return err + } + _, err = hashFunc.Write([]byte(k.Encryption)) + if err != nil { + return err + } + err = binary.Write(hashFunc, binary.BigEndian, uint32(len(k.Comment))) + if err != nil { + return err + } + _, err = hashFunc.Write([]byte(k.Comment)) + if err != nil { + return err + } + err = binary.Write(hashFunc, binary.BigEndian, uint32(len(k.PublicKey))) + if err != nil { + return err + } + _, err = hashFunc.Write(k.PublicKey) + if err != nil { + return err + } + err = binary.Write(hashFunc, binary.BigEndian, uint32(len(k.PrivateKey))) + if err != nil { + return err + } + _, err = hashFunc.Write(k.PrivateKey) + if err != nil { + return err + } mac := hashFunc.Sum(nil) if !bytes.Equal(mac, k.PrivateMac) { diff --git a/putty_test.go b/putty_test.go index 5155c41..07910d7 100644 --- a/putty_test.go +++ b/putty_test.go @@ -446,7 +446,6 @@ Comment: a@b` if err == nil { t.Errorf("Invalid key algorithm") } - } func TestKey_Load(t *testing.T) { diff --git a/unmarshal.go b/unmarshal.go index b7b9598..918e6ca 100644 --- a/unmarshal.go +++ b/unmarshal.go @@ -44,6 +44,7 @@ func parseField(v reflect.Value, src *bytes.Reader) error { } } return nil + default: } switch fieldType {