mirror of
https://github.com/gocsaf/csaf.git
synced 2025-12-22 18:15:42 +01:00
Restrucure object graph.
This commit is contained in:
parent
98525ab758
commit
3b4163a299
2 changed files with 56 additions and 56 deletions
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue