ecadlabs/signatory

View on GitHub

Showing 102 of 102 total issues

Method azureIterator.Next has 11 return statements (exceeds 4 allowed).
Open

func (a *azureIterator) Next() (key vault.StoredKey, err error) {
    if a.done {
        return nil, vault.ErrDone
    }

Severity: Major
Found in pkg/vault/azure/azure.go - About 1 hr to fix

    Function NewServeCommand has 11 return statements (exceeds 4 allowed).
    Open

    func NewServeCommand(c *Context) *cobra.Command {
        var noList bool
    
        serveCmd := cobra.Command{
            Use:   "serve",
    Severity: Major
    Found in cmd/commands/serve.go - About 1 hr to fix

      Method Vault.Import has 52 lines of code (exceeds 50 allowed). Consider refactoring.
      Open

      func (v *Vault) Import(ctx context.Context, priv crypt.PrivateKey, opt utils.Options) (vault.StoredKey, error) {
          keyName, ok, err := opt.GetString("name")
          if err != nil {
              return nil, fmt.Errorf("(Azure/%s): %w", v.config.Vault, err)
          }
      Severity: Minor
      Found in pkg/vault/azure/azure.go - About 1 hr to fix

        Function NewGenKeyCommand has 51 lines of code (exceeds 50 allowed). Consider refactoring.
        Open

        func NewGenKeyCommand() *cobra.Command {
            var (
                keyType string
                num     int
            )
        Severity: Minor
        Found in cmd/signatory-tools/genkey.go - About 1 hr to fix

          Method App.GetAppVersion has 51 lines of code (exceeds 50 allowed). Consider refactoring.
          Open

          func (a *App) GetAppVersion() (*Version, error) {
              res, err := a.Exchange(&APDUCommand{
                  Cla: claGlobal,
                  Ins: insVersion,
              })
          Severity: Minor
          Found in pkg/vault/ledger/ledger/ledger.go - About 1 hr to fix

            Method Vault.Import has 9 return statements (exceeds 4 allowed).
            Open

            func (v *Vault) Import(ctx context.Context, priv crypt.PrivateKey, opt utils.Options) (vault.StoredKey, error) {
                keyName, ok, err := opt.GetString("name")
                if err != nil {
                    return nil, fmt.Errorf("(Azure/%s): %w", v.config.Vault, err)
                }
            Severity: Major
            Found in pkg/vault/azure/azure.go - About 55 mins to fix

              Method JWT.Authenticate has 8 return statements (exceeds 4 allowed).
              Open

              func (j *JWT) Authenticate(user string, token string) (string, error) {
                  var tok *jwt.Token
                  var err error
                  ud, ok := j.GetUserData(user)
                  if ok {
              Severity: Major
              Found in pkg/middlewares/jwt.go - About 50 mins to fix

                Method Vault.SignMessage has 8 return statements (exceeds 4 allowed).
                Open

                func (v *Vault) SignMessage(ctx context.Context, message []byte, key vault.StoredKey) (crypt.Signature, error) {
                    digest := crypt.DigestFunc(message)
                    azureKey, ok := key.(*azureKey)
                    if !ok {
                        return nil, errors.Wrap(fmt.Errorf("(Azure/%s): not a Azure key: %T", v.config.Vault, key), http.StatusBadRequest)
                Severity: Major
                Found in pkg/vault/azure/azure.go - About 50 mins to fix

                  Function NewImportCommand has 8 return statements (exceeds 4 allowed).
                  Open

                  func NewImportCommand(c *Context) *cobra.Command {
                      var (
                          vaultName string
                          password  string
                          opt       string
                  Severity: Major
                  Found in cmd/commands/import.go - About 50 mins to fix

                    Method Vault.request has 7 return statements (exceeds 4 allowed).
                    Open

                    func (v *Vault) request(ctx context.Context, client *http.Client, method, url string, body io.Reader, result interface{}) (status int, err error) {
                        req, err := http.NewRequestWithContext(ctx, method, url, body)
                        if err != nil {
                            return status, err
                        }
                    Severity: Major
                    Found in pkg/vault/azure/azure.go - About 45 mins to fix

                      Function NewAuthRequestCommand has 7 return statements (exceeds 4 allowed).
                      Open

                      func NewAuthRequestCommand() *cobra.Command {
                          cmd := &cobra.Command{
                              Use:   "authenticate <secret key> <request pkh> <request body>",
                              Short: "Authenticate (sign) a sign request",
                              Args:  cobra.ExactArgs(3),
                      Severity: Major
                      Found in cmd/signatory-tools/authenticate.go - About 45 mins to fix

                        Method JWK.PublicKey has 7 return statements (exceeds 4 allowed).
                        Open

                        func (j *JWK) PublicKey() (crypto.PublicKey, error) {
                            switch j.KeyType {
                            case "EC", "EC-HSM":
                                pub, err := j.ecPublicKey()
                                if err != nil {
                        Severity: Major
                        Found in pkg/vault/azure/jwk/jwk.go - About 45 mins to fix

                          Method HSM.Import has 7 return statements (exceeds 4 allowed).
                          Open

                          func (h *HSM) Import(ctx context.Context, pk crypt.PrivateKey, opt utils.Options) (vault.StoredKey, error) {
                              typ, alg, caps, p, err := getPrivateKeyData(pk)
                              if err != nil {
                                  return nil, fmt.Errorf("(YubiHSM/%s): %w", h.conf.id(), err)
                              }
                          Severity: Major
                          Found in pkg/vault/yubi/yubi.go - About 45 mins to fix

                            Method usbHIDRoundTripper.Ping has 7 return statements (exceeds 4 allowed).
                            Open

                            func (u *usbHIDRoundTripper) Ping() error {
                                if err := u.writeCommand(cmdPing, nil); err != nil {
                                    return err
                                }
                                ch, cmd, data, err := u.readCommand()
                            Severity: Major
                            Found in pkg/vault/ledger/ledger/usbhid.go - About 45 mins to fix

                              Avoid deeply nested control flow statements.
                              Open

                                                  if err = openDev(attempt == 1); err != nil {
                                                      r.err <- err
                                                      break
                                                  }
                              Severity: Major
                              Found in pkg/vault/ledger/vault.go - About 45 mins to fix

                                Method yubihsmStoredKeysIterator.Next has 7 return statements (exceeds 4 allowed).
                                Open

                                func (y *yubihsmStoredKeysIterator) Next() (key vault.StoredKey, err error) {
                                    if y.objects == nil {
                                        y.objects, err = y.hsm.listObjects(commands.NewObjectTypeOption(commands.ObjectTypeAsymmetricKey))
                                        if err != nil {
                                            return nil, fmt.Errorf("(YubiHSM/%s): %w", y.hsm.conf.id(), err)
                                Severity: Major
                                Found in pkg/vault/yubi/yubi.go - About 45 mins to fix

                                  Avoid deeply nested control flow statements.
                                  Open

                                                      if err == iterator.Done {
                                                          c.keyIter = nil
                                                          return nil, vault.ErrDone
                                                      } else {
                                                          return nil, fmt.Errorf("(CloudKMS/%s) ListCryptoKeys: %w", c.vault.config.keyRingName(), err)
                                  Severity: Major
                                  Found in pkg/vault/cloudkms/cloudkms.go - About 45 mins to fix

                                    Function parsePublicKey has 7 return statements (exceeds 4 allowed).
                                    Open

                                    func parsePublicKey(r *commands.GetPubKeyResponse) (crypt.PublicKey, bool, error) {
                                        switch r.Algorithm {
                                        case commands.AlgorithmP256, commands.AlgorithmSecp256k1:
                                            var curve elliptic.Curve
                                            switch r.Algorithm {
                                    Severity: Major
                                    Found in pkg/vault/yubi/yubi.go - About 45 mins to fix

                                      Method Signatory.Import has 7 return statements (exceeds 4 allowed).
                                      Open

                                      func (s *Signatory) Import(ctx context.Context, importerName string, secretKey string, passCB func() ([]byte, error), opt utils.Options) (*PublicKey, error) {
                                          v, ok := s.vaults[importerName]
                                          if !ok {
                                              return nil, fmt.Errorf("import: vault %s is not found", importerName)
                                          }
                                      Severity: Major
                                      Found in pkg/signatory/import.go - About 45 mins to fix

                                        Method HSM.GetPublicKey has 7 return statements (exceeds 4 allowed).
                                        Open

                                        func (h *HSM) GetPublicKey(ctx context.Context, keyID string) (vault.StoredKey, error) {
                                            id, err := strconv.ParseUint(keyID, 16, 16)
                                            if err != nil {
                                                return nil, fmt.Errorf("(YubiHSM/%s): %w", h.conf.id(), err)
                                            }
                                        Severity: Major
                                        Found in pkg/vault/yubi/yubi.go - About 45 mins to fix
                                          Severity
                                          Category
                                          Status
                                          Source
                                          Language