ssh: cosmetic cleanups
These are the cosmetic cleanups from the bits of code that I
rereviewed.
1) stringLength now takes a int; the length of the string. Too many
callers were allocating with stringLength([]byte(s)) and
stringLength only needs to call len().
2) agent.go now has sendAndReceive to remove logic that was
duplicated.
3) We now reject negative DH values
4) We now reject empty packets rather than crashing.
R=dave, jonathan.mark.pittman
CC=golang-dev
https://golang.org/cl/6061052
diff --git a/ssh/certs.go b/ssh/certs.go
index 59430ea..107fd1a 100644
--- a/ssh/certs.go
+++ b/ssh/certs.go
@@ -154,18 +154,18 @@
sigKey := serializePublickey(cert.SignatureKey)
- length := stringLength(cert.Nonce)
+ length := stringLength(len(cert.Nonce))
length += len(pubKey)
length += 8 // Length of Serial
length += 4 // Length of Type
- length += stringLength([]byte(cert.KeyId))
+ length += stringLength(len(cert.KeyId))
length += lengthPrefixedNameListLength(cert.ValidPrincipals)
length += 8 // Length of ValidAfter
length += 8 // Length of ValidBefore
length += tupleListLength(cert.CriticalOptions)
length += tupleListLength(cert.Extensions)
- length += stringLength(cert.Reserved)
- length += stringLength(sigKey)
+ length += stringLength(len(cert.Reserved))
+ length += stringLength(len(sigKey))
length += signatureLength(cert.Signature)
ret := make([]byte, length)
@@ -215,9 +215,7 @@
for len(list) > 0 {
var next []byte
- var ok bool
- next, list, ok = parseString(list)
- if !ok {
+ if next, list, ok = parseString(list); !ok {
return nil, nil, false
}
out = append(out, string(next))
@@ -272,8 +270,8 @@
func signatureLength(sig *signature) int {
length := 4 // length prefix for signature
- length += stringLength([]byte(sig.Format))
- length += stringLength(sig.Blob)
+ length += stringLength(len(sig.Format))
+ length += stringLength(len(sig.Blob))
return length
}