1
0
Fork 0
mirror of https://github.com/gocsaf/csaf.git synced 2025-12-22 11:55:40 +01:00

Restrucure object graph.

This commit is contained in:
Sascha L. Teichmann 2021-12-12 23:25:55 +01:00
parent 98525ab758
commit 3b4163a299
2 changed files with 56 additions and 56 deletions

View file

@ -8,35 +8,33 @@
package main package main
type state struct { type processor struct {
opts *options
domain string domain string
} }
func newState(domain string) *state { func newProcessor(opts *options) *processor {
return &state{domain: domain} return &processor{opts: opts}
} }
type check interface { type check interface {
run(*state) error run(*processor, string) error
report(*state, *Domain) report(*processor, *Domain)
} }
type checks []check func (p *processor) run(checks []check, domains []string) (*Report, error) {
func (cs checks) run(domains []string) (*Report, error) {
var report Report var report Report
for _, d := range domains { for _, d := range domains {
state := newState(d) for _, ch := range checks {
for _, ch := range cs { if err := ch.run(p, d); err != nil {
if err := ch.run(state); err != nil {
return nil, err return nil, err
} }
} }
domain := &Domain{Name: d} domain := &Domain{Name: d}
for _, ch := range cs { for _, ch := range checks {
ch.report(state, domain) ch.report(p, domain)
} }
report.Domains = append(report.Domains, domain) report.Domains = append(report.Domains, domain)
} }
@ -101,137 +99,137 @@ type publicPGPKeyCheck struct {
baseCheck baseCheck
} }
func (bc *baseCheck) report(_ *state, domain *Domain) { func (bc *baseCheck) report(_ *processor, domain *Domain) {
req := &Requirement{Num: bc.num, Description: bc.description} req := &Requirement{Num: bc.num, Description: bc.description}
domain.Requirements = append(domain.Requirements, req) domain.Requirements = append(domain.Requirements, req)
} }
func (tc *tlsCheck) run(*state) error { func (tc *tlsCheck) run(*processor, string) error {
// TODO: Implement me! // TODO: Implement me!
return nil return nil
} }
func (tc *tlsCheck) report(state *state, domain *Domain) { func (tc *tlsCheck) report(p *processor, domain *Domain) {
tc.baseCheck.report(state, domain) tc.baseCheck.report(p, domain)
// TODO: Implement me! // TODO: Implement me!
} }
func (rc *redirectsCheck) run(*state) error { func (rc *redirectsCheck) run(*processor, string) error {
// TODO: Implement me! // TODO: Implement me!
return nil return nil
} }
func (rc *redirectsCheck) report(state *state, domain *Domain) { func (rc *redirectsCheck) report(p *processor, domain *Domain) {
rc.baseCheck.report(state, domain) rc.baseCheck.report(p, domain)
// TODO: Implement me! // TODO: Implement me!
} }
func (pmdc *providerMetadataCheck) run(*state) error { func (pmdc *providerMetadataCheck) run(*processor, string) error {
// TODO: Implement me! // TODO: Implement me!
return nil return nil
} }
func (pmdc *providerMetadataCheck) report(state *state, domain *Domain) { func (pmdc *providerMetadataCheck) report(p *processor, domain *Domain) {
pmdc.baseCheck.report(state, domain) pmdc.baseCheck.report(p, domain)
// TODO: Implement me! // TODO: Implement me!
} }
func (sc *securityCheck) run(*state) error { func (sc *securityCheck) run(*processor, string) error {
// TODO: Implement me! // TODO: Implement me!
return nil return nil
} }
func (sc *securityCheck) report(state *state, domain *Domain) { func (sc *securityCheck) report(p *processor, domain *Domain) {
sc.baseCheck.report(state, domain) sc.baseCheck.report(p, domain)
// TODO: Implement me! // TODO: Implement me!
} }
func (wmdc *wellknownMetadataCheck) run(*state) error { func (wmdc *wellknownMetadataCheck) run(*processor, string) error {
// TODO: Implement me! // TODO: Implement me!
return nil return nil
} }
func (wmdc *wellknownMetadataCheck) report(state *state, domain *Domain) { func (wmdc *wellknownMetadataCheck) report(p *processor, domain *Domain) {
wmdc.baseCheck.report(state, domain) wmdc.baseCheck.report(p, domain)
// TODO: Implement me! // TODO: Implement me!
} }
func (dpc *dnsPathCheck) run(*state) error { func (dpc *dnsPathCheck) run(*processor, string) error {
// TODO: Implement me! // TODO: Implement me!
return nil return nil
} }
func (dpc *dnsPathCheck) report(state *state, domain *Domain) { func (dpc *dnsPathCheck) report(p *processor, domain *Domain) {
dpc.baseCheck.report(state, domain) dpc.baseCheck.report(p, domain)
// TODO: Implement me! // TODO: Implement me!
} }
func (ofpyc *oneFolderPerYearCheck) report(state *state, domain *Domain) { func (ofpyc *oneFolderPerYearCheck) report(p *processor, domain *Domain) {
ofpyc.baseCheck.report(state, domain) ofpyc.baseCheck.report(p, domain)
// TODO: Implement me! // TODO: Implement me!
} }
func (ofpyc *oneFolderPerYearCheck) run(*state) error { func (ofpyc *oneFolderPerYearCheck) run(*processor, string) error {
// TODO: Implement me! // TODO: Implement me!
return nil return nil
} }
func (ic *indexCheck) report(state *state, domain *Domain) { func (ic *indexCheck) report(p *processor, domain *Domain) {
ic.baseCheck.report(state, domain) ic.baseCheck.report(p, domain)
// TODO: Implement me! // TODO: Implement me!
} }
func (ic *indexCheck) run(*state) error { func (ic *indexCheck) run(*processor, string) error {
// TODO: Implement me! // TODO: Implement me!
return nil return nil
} }
func (cc *changesCheck) report(state *state, domain *Domain) { func (cc *changesCheck) report(p *processor, domain *Domain) {
cc.baseCheck.report(state, domain) cc.baseCheck.report(p, domain)
// TODO: Implement me! // TODO: Implement me!
} }
func (cc *changesCheck) run(*state) error { func (cc *changesCheck) run(*processor, string) error {
// TODO: Implement me! // TODO: Implement me!
return nil return nil
} }
func (dlc *directoryListingsCheck) report(state *state, domain *Domain) { func (dlc *directoryListingsCheck) report(p *processor, domain *Domain) {
dlc.baseCheck.report(state, domain) dlc.baseCheck.report(p, domain)
// TODO: Implement me! // TODO: Implement me!
} }
func (dlc *directoryListingsCheck) run(*state) error { func (dlc *directoryListingsCheck) run(*processor, string) error {
// TODO: Implement me! // TODO: Implement me!
return nil return nil
} }
func (ic *integrityCheck) report(state *state, domain *Domain) { func (ic *integrityCheck) report(p *processor, domain *Domain) {
ic.baseCheck.report(state, domain) ic.baseCheck.report(p, domain)
// TODO: Implement me! // TODO: Implement me!
} }
func (ic *integrityCheck) run(*state) error { func (ic *integrityCheck) run(*processor, string) error {
// TODO: Implement me! // TODO: Implement me!
return nil return nil
} }
func (sc *signaturesCheck) report(state *state, domain *Domain) { func (sc *signaturesCheck) report(p *processor, domain *Domain) {
sc.baseCheck.report(state, domain) sc.baseCheck.report(p, domain)
// TODO: Implement me! // TODO: Implement me!
} }
func (sc *signaturesCheck) run(*state) error { func (sc *signaturesCheck) run(*processor, string) error {
// TODO: Implement me! // TODO: Implement me!
return nil return nil
} }
func (ppkc *publicPGPKeyCheck) report(state *state, domain *Domain) { func (ppkc *publicPGPKeyCheck) report(p *processor, domain *Domain) {
ppkc.baseCheck.report(state, domain) ppkc.baseCheck.report(p, domain)
// TODO: Implement me! // TODO: Implement me!
} }
func (ppkc *publicPGPKeyCheck) run(*state) error { func (ppkc *publicPGPKeyCheck) run(*processor, string) error {
// TODO: Implement me! // TODO: Implement me!
return nil return nil
} }

View file

@ -98,8 +98,8 @@ func writeReport(report *Report, opts *options) error {
return writer(report, w) return writer(report, w)
} }
func buildChecks() checks { func buildChecks() []check {
return checks{ return []check{
&tlsCheck{baseCheck{3, "TLS"}}, &tlsCheck{baseCheck{3, "TLS"}},
&redirectsCheck{baseCheck{6, "Redirects"}}, &redirectsCheck{baseCheck{6, "Redirects"}},
&providerMetadataCheck{baseCheck{7, "provider-metadata.json"}}, &providerMetadataCheck{baseCheck{7, "provider-metadata.json"}},
@ -127,7 +127,9 @@ func main() {
return return
} }
report, err := buildChecks().run(domains) p := newProcessor(opts)
report, err := p.run(buildChecks(), domains)
errCheck(err) errCheck(err)
errCheck(writeReport(report, opts)) errCheck(writeReport(report, opts))