blob: 54a1ac61b4d7c25298734a1c92f0cd02805866d7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
package types
import (
"encoding/binary"
"fmt"
)
// RFC4251, section 5
func putSSHString(b []byte, str string) int {
l := len(str)
i := 0
binary.BigEndian.PutUint32(b[i:i+4], uint32(l))
i += 4
copy(b[i:i+l], str)
i += l
return i
}
func getSSHString(b []byte) (*string, error) {
if len(b) < 4 {
return nil, fmt.Errorf("types: invalid SSH string")
}
l := binary.BigEndian.Uint32(b[:4])
str := string(b[4 : 4+l])
return &str, nil
}
|