Tarun Koyalwar c35162c8ef
nuclei v3 bug fixes (#4176)
* store and generate signer keys

* fix trailing newline in code_response

* fix formatting and update error string

* fix integration test

* fix rsaSigned code integration test

* bug fixes , docs and more

* bump go -> 1.21

* use 'response' as default part in code templates

* disable sourcemaps for all js runtimes

* disable eval function

* rewrite file validation in sandbox mode

* sandbox file read improvements + minor refactor

* refactor sign and verify logic

* fix panic and missing id in code protocol

* disable re-signing code protocol templates

* fix code resigning in tests

* allow -lfa in test for signing templates

* start index from 1 in flow and multiproto

* remove testfiles

* add python in integration test

* update code protocol docs

* add python engine in template

* rework template signer

* fix integration test and more

* reworked template signer

* fix lint error

* display signature stats

* update docs

* add user fragment to signature

* use md5 to generate fragment

* update docs with code re-sign

* misc updates

* public crt update

* remove workflow info statement

* fix printing issues

* refactor preprocessor logic

* remove debug statement

* fix failing example test

* go mod tidy

---------

Co-authored-by: sandeep <8293321+ehsandeep@users.noreply.github.com>
Co-authored-by: Sandeep Singh <sandeep@projectdiscovery.io>
2023-10-13 13:17:27 +05:30

42 lines
1.2 KiB
Go

package signer
import (
"github.com/projectdiscovery/gologger"
v2 "github.com/projectdiscovery/nuclei/v2"
"github.com/projectdiscovery/nuclei/v2/pkg/catalog/config"
errorutil "github.com/projectdiscovery/utils/errors"
)
// DefaultTemplateVerifiers contains the default template verifiers
var DefaultTemplateVerifiers []*TemplateSigner
func init() {
h := &KeyHandler{
UserCert: v2.NucleiCert,
}
if err := h.ParseUserCert(); err != nil {
gologger.Error().Msgf("Could not parse pd nuclei certificate: %s\n", err)
return
}
DefaultTemplateVerifiers = append(DefaultTemplateVerifiers, &TemplateSigner{handler: h})
// try to load default user cert
usr := &KeyHandler{}
if err := usr.ReadCert(CertEnvVarName, config.DefaultConfig.GetKeysDir()); err == nil {
if err := usr.ParseUserCert(); err != nil {
gologger.Error().Msgf("malformed user cert found: %s\n", err)
return
}
DefaultTemplateVerifiers = append(DefaultTemplateVerifiers, &TemplateSigner{handler: usr})
}
}
// AddSignerToDefault adds a signer to the default list of signers
func AddSignerToDefault(s *TemplateSigner) error {
if s == nil {
return errorutil.New("signer is nil")
}
DefaultTemplateVerifiers = append(DefaultTemplateVerifiers, s)
return nil
}