Skip to content

Commit

Permalink
Inject checksumCalculator to the checksum comparator
Browse files Browse the repository at this point in the history
  • Loading branch information
dineshba committed Jun 6, 2020
1 parent 160ebf3 commit 13efaeb
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 12 deletions.
10 changes: 4 additions & 6 deletions detector/checksum_compare.go
Expand Up @@ -8,14 +8,13 @@ import (
)

type ChecksumCompare struct {
additions []gitrepo.Addition
calculator *checksumcalculator.ChecksumCalculator
ignoreConfig *talismanrc.TalismanRC
allAdditions []gitrepo.Addition
}

//NewChecksumCompare returns new instance of the ChecksumCompare
func NewChecksumCompare(allAdditions []gitrepo.Addition, gitAdditions []gitrepo.Addition, talismanRCConfig *talismanrc.TalismanRC) *ChecksumCompare {
cc := ChecksumCompare{allAdditions: allAdditions, additions: gitAdditions, ignoreConfig: talismanRCConfig}
func NewChecksumCompare(calculator *checksumcalculator.ChecksumCalculator, talismanRCConfig *talismanrc.TalismanRC) *ChecksumCompare {
cc := ChecksumCompare{calculator: calculator, ignoreConfig: talismanRCConfig}
return &cc
}

Expand All @@ -24,8 +23,7 @@ func (cc *ChecksumCompare) IsScanNotRequired(addition gitrepo.Addition) bool {
declaredCheckSum := ""
for _, ignore := range cc.ignoreConfig.FileIgnoreConfig {
if addition.Matches(ignore.FileName) {
calculator := checksumcalculator.NewChecksumCalculator(cc.allAdditions)
currentCollectiveChecksum = calculator.CalculateCollectiveChecksumForPattern(ignore.FileName)
currentCollectiveChecksum = cc.calculator.CalculateCollectiveChecksumForPattern(ignore.FileName)
declaredCheckSum = ignore.Checksum
}
}
Expand Down
4 changes: 2 additions & 2 deletions detector/checksum_compare_test.go
Expand Up @@ -11,7 +11,7 @@ func TestChecksumCompare_IsScanNotRequired(t *testing.T) {

t.Run("should return false if talismanrc is empty", func(t *testing.T) {
ignoreConfig := talismanrc.NewTalismanRC(nil)
cc := NewChecksumCompare([]gitrepo.Addition{}, []gitrepo.Addition{}, ignoreConfig)
cc := NewChecksumCompare(nil, ignoreConfig)

required := cc.IsScanNotRequired(gitrepo.Addition{})

Expand All @@ -20,7 +20,7 @@ func TestChecksumCompare_IsScanNotRequired(t *testing.T) {

t.Run("should return false if talismanrc is empty", func(t *testing.T) {
ignoreConfig := talismanrc.NewTalismanRC(nil)
cc := NewChecksumCompare([]gitrepo.Addition{}, []gitrepo.Addition{}, ignoreConfig)
cc := NewChecksumCompare(nil, ignoreConfig)

required := cc.IsScanNotRequired(gitrepo.Addition{})

Expand Down
4 changes: 3 additions & 1 deletion detector/filecontent_detector.go
Expand Up @@ -5,6 +5,7 @@ import (
"regexp"
"strings"
"sync"
"talisman/checksumcalculator"
"talisman/gitrepo"
"talisman/talismanrc"

Expand Down Expand Up @@ -90,7 +91,8 @@ func (fc *FileContentDetector) Test(allAdditions []gitrepo.Addition, currentAddi
fn: checkCreditCardNumber,
},
}
cc := NewChecksumCompare(allAdditions, currentAdditions, ignoreConfig)
calculator := checksumcalculator.NewChecksumCalculator(append(allAdditions, currentAdditions...))
cc := NewChecksumCompare(calculator, ignoreConfig)
re := regexp.MustCompile(`(?i)checksum[ \t]*:[ \t]*[0-9a-fA-F]+`)

contents := make(chan content, 512)
Expand Down
4 changes: 3 additions & 1 deletion detector/filename_detector.go
Expand Up @@ -3,6 +3,7 @@ package detector
import (
"fmt"
"regexp"
"talisman/checksumcalculator"

"talisman/gitrepo"
"talisman/talismanrc"
Expand Down Expand Up @@ -80,7 +81,8 @@ func NewFileNameDetector(patterns []*regexp.Regexp) Detector {

//Test tests the fileNames of the Additions to ensure that they don't look suspicious
func (fd FileNameDetector) Test(allAdditions []gitrepo.Addition, currentAdditions []gitrepo.Addition, ignoreConfig *talismanrc.TalismanRC, result *DetectionResults) {
cc := NewChecksumCompare(allAdditions, currentAdditions, ignoreConfig)
calculator := checksumcalculator.NewChecksumCalculator(append(allAdditions, currentAdditions...))
cc := NewChecksumCompare(calculator, ignoreConfig)
for _, addition := range currentAdditions {
if ignoreConfig.Deny(addition, "filename") || cc.IsScanNotRequired(addition) {
log.WithFields(log.Fields{
Expand Down
4 changes: 3 additions & 1 deletion detector/filesize_detector.go
Expand Up @@ -2,6 +2,7 @@ package detector

import (
"fmt"
"talisman/checksumcalculator"

"talisman/gitrepo"
"talisman/talismanrc"
Expand All @@ -22,7 +23,8 @@ func NewFileSizeDetector(size int) Detector {
}

func (fd FileSizeDetector) Test(allAdditions []gitrepo.Addition, currentAdditions []gitrepo.Addition, ignoreConfig *talismanrc.TalismanRC, result *DetectionResults) {
cc := NewChecksumCompare(allAdditions, currentAdditions, ignoreConfig)
calculator := checksumcalculator.NewChecksumCalculator(append(allAdditions, currentAdditions...))
cc := NewChecksumCompare(calculator, ignoreConfig)
for _, addition := range currentAdditions {
if ignoreConfig.Deny(addition, "filesize") || cc.IsScanNotRequired(addition) {
log.WithFields(log.Fields{
Expand Down
4 changes: 3 additions & 1 deletion detector/pattern_detector.go
Expand Up @@ -4,6 +4,7 @@ import (
"fmt"
"regexp"
"sync"
"talisman/checksumcalculator"
"talisman/gitrepo"
"talisman/talismanrc"

Expand Down Expand Up @@ -35,7 +36,8 @@ type match struct {

//Test tests the contents of the Additions to ensure that they don't look suspicious
func (detector PatternDetector) Test(allAdditions []gitrepo.Addition, currentAdditions []gitrepo.Addition, ignoreConfig *talismanrc.TalismanRC, result *DetectionResults) {
cc := NewChecksumCompare(allAdditions, currentAdditions, ignoreConfig)
calculator := checksumcalculator.NewChecksumCalculator(append(allAdditions, currentAdditions...))
cc := NewChecksumCompare(calculator, ignoreConfig)
matches := make(chan match, 512)
ignoredFilePaths := make(chan gitrepo.FilePath, 512)
waitGroup := &sync.WaitGroup{}
Expand Down

0 comments on commit 13efaeb

Please sign in to comment.