mirror of
https://github.com/securego/gosec.git
synced 2024-11-06 03:55:50 +00:00
e3b1d33b95
This re-works the way that CLI options are passed through to the analyzer so that they can act as overrides for config options. If not given on the CLI, options will come from a config file. If no file is used then a default value is chosen. Two lists are also populated with tests to include or exclude. These lists are not used for now but will eventually replace the way we select test to run in a future patch to follow.
57 lines
1.4 KiB
Go
57 lines
1.4 KiB
Go
// (c) Copyright 2016 Hewlett Packard Enterprise Development LP
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package rules
|
|
|
|
import (
|
|
"testing"
|
|
|
|
gas "github.com/HewlettPackard/gas/core"
|
|
)
|
|
|
|
func TestRandOk(t *testing.T) {
|
|
config := map[string]interface{}{"ignoreNosec": false}
|
|
analyzer := gas.NewAnalyzer(config, nil)
|
|
analyzer.AddRule(NewWeakRandCheck())
|
|
|
|
issues := gasTestRunner(
|
|
`
|
|
package samples
|
|
|
|
import "crypto/rand"
|
|
|
|
func main() {
|
|
good, err := rand.Read(nil)
|
|
}`, analyzer)
|
|
|
|
checkTestResults(t, issues, 0, "Not expected to match")
|
|
}
|
|
|
|
func TestRandBad(t *testing.T) {
|
|
config := map[string]interface{}{"ignoreNosec": false}
|
|
analyzer := gas.NewAnalyzer(config, nil)
|
|
analyzer.AddRule(NewWeakRandCheck())
|
|
|
|
issues := gasTestRunner(
|
|
`
|
|
package samples
|
|
|
|
import "math/rand"
|
|
|
|
func main() {
|
|
bad, err := rand.Read(nil)
|
|
}`, analyzer)
|
|
|
|
checkTestResults(t, issues, 1, "Use of weak random number generator (math/rand instead of crypto/rand)")
|
|
}
|