Configure golangci-lint and fix warnings
This commit is contained in:
parent
ecd1846975
commit
2e467b3d2e
20 changed files with 915 additions and 559 deletions
|
|
@ -8,6 +8,16 @@ import (
|
|||
"git.cacert.org/cacert-gosigner/shared"
|
||||
)
|
||||
|
||||
const (
|
||||
headerPosVersion = 0
|
||||
headerPosAction = 1
|
||||
headerPosReserved1 = 2
|
||||
headerPosReserved2 = 3
|
||||
blockPosContent = 0
|
||||
blockPosArgument1 = 1
|
||||
blockPosArgument2 = 2
|
||||
)
|
||||
|
||||
type SignerResponse struct {
|
||||
Version uint8
|
||||
Action shared.Action
|
||||
|
|
@ -19,23 +29,25 @@ type SignerResponse struct {
|
|||
}
|
||||
|
||||
func SignerResponseFromData(lengthBytes []byte, blockData []byte, checkSum byte) (*SignerResponse, error) {
|
||||
if len(blockData) < 3 {
|
||||
if len(blockData) < shared.LengthFieldSize {
|
||||
return nil, errors.New("begin of structure corrupt")
|
||||
}
|
||||
|
||||
offset := 0
|
||||
headerLength := Decode24BitLength(blockData[offset : offset+3])
|
||||
offset += 3
|
||||
headerLength := Decode24BitLength(blockData[offset : offset+shared.LengthFieldSize])
|
||||
offset += shared.LengthFieldSize
|
||||
headerBytes := blockData[offset : offset+headerLength]
|
||||
offset += headerLength
|
||||
|
||||
content := make([][]byte, 3)
|
||||
content := make([][]byte, 0)
|
||||
|
||||
for offset < len(blockData) {
|
||||
dataLength := Decode24BitLength(blockData[offset : offset+3])
|
||||
if len(blockData)-3 < dataLength {
|
||||
if len(blockData)-shared.LengthFieldSize < dataLength {
|
||||
return nil, errors.New("structure cut off")
|
||||
}
|
||||
offset += 3
|
||||
|
||||
offset += shared.LengthFieldSize
|
||||
content = append(content, blockData[offset:offset+dataLength])
|
||||
offset += dataLength
|
||||
}
|
||||
|
|
@ -46,13 +58,13 @@ func SignerResponseFromData(lengthBytes []byte, blockData []byte, checkSum byte)
|
|||
}
|
||||
|
||||
return &SignerResponse{
|
||||
Version: headerBytes[0],
|
||||
Action: shared.Action(headerBytes[1]),
|
||||
Reserved1: headerBytes[2],
|
||||
Reserved2: headerBytes[3],
|
||||
Content: content[0],
|
||||
Argument1: content[1],
|
||||
Argument2: content[2],
|
||||
Version: headerBytes[headerPosVersion],
|
||||
Action: shared.Action(headerBytes[headerPosAction]),
|
||||
Reserved1: headerBytes[headerPosReserved1],
|
||||
Reserved2: headerBytes[headerPosReserved2],
|
||||
Content: content[blockPosContent],
|
||||
Argument1: content[blockPosArgument1],
|
||||
Argument2: content[blockPosArgument2],
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
|
@ -64,6 +76,7 @@ func (r SignerResponse) Serialize() []byte {
|
|||
Encode24BitLength(r.Argument1), r.Argument1,
|
||||
Encode24BitLength(r.Argument2), r.Argument2,
|
||||
}, []byte{})
|
||||
|
||||
return bytes.Join([][]byte{Encode24BitLength(blockBytes), blockBytes}, []byte{})
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue