ecadlabs/signatory

View on GitHub

Showing 91 of 102 total issues

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

    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

      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

        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 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 Server.authenticateSignRequest has 7 return statements (exceeds 4 allowed).
            Open

            func (s *Server) authenticateSignRequest(req *signatory.SignRequest, r *http.Request) error {
                v := r.FormValue("authentication")
                if v == "" {
                    return errors.Wrap(stderr.New("missing authentication signature field"), http.StatusUnauthorized)
                }
            Severity: Major
            Found in pkg/server/server.go - About 45 mins to fix

              Avoid deeply nested control flow statements.
              Open

                                  if u == "" {
                                      a.done = true
                                      return nil, vault.ErrDone
                                  }
              Severity: Major
              Found in pkg/vault/azure/azure.go - About 45 mins to fix

                Avoid deeply nested control flow statements.
                Open

                                    if err != nil {
                                        return nil, fmt.Errorf("(Azure/%s): %w", a.v.config.Vault, err)
                                    }
                Severity: Major
                Found in pkg/vault/azure/azure.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

                    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

                      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

                        Avoid deeply nested control flow statements.
                        Open

                                            if err != nil {
                                                if attempt == 1 {
                                                    r.err <- err
                                                } else {
                                                    attempt = attempt + 1
                        Severity: Major
                        Found in pkg/vault/ledger/vault.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 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

                              Function validateSecretAndPass has 6 return statements (exceeds 4 allowed).
                              Open

                              func validateSecretAndPass(secret []string) error {
                                  var length int = 16
                                  var stype string = "password"
                                  for _, s := range secret {
                                      // Check length
                              Severity: Major
                              Found in pkg/middlewares/jwt.go - About 40 mins to fix

                                Function wrapPrivateKey has 6 return statements (exceeds 4 allowed).
                                Open

                                func wrapPrivateKey(pubKey *rsa.PublicKey, priv crypt.PrivateKey) ([]byte, error) {
                                    pkcs8Key, err := cryptoutils.MarshalPKCS8PrivateKey(priv)
                                    if err != nil {
                                        return nil, err
                                    }
                                Severity: Major
                                Found in pkg/vault/cloudkms/cloudkms.go - About 40 mins to fix

                                  Method Config.jwtTokenSource has 6 return statements (exceeds 4 allowed).
                                  Open

                                  func (c *Config) jwtTokenSource(ctx context.Context, scopes []string) (oauth2.TokenSource, error) {
                                      var (
                                          pk         interface{}
                                          thumbprint []byte
                                          err        error
                                  Severity: Major
                                  Found in pkg/vault/azure/auth/auth.go - About 40 mins to fix

                                    Method Server.signHandler has 6 return statements (exceeds 4 allowed).
                                    Open

                                    func (s *Server) signHandler(w http.ResponseWriter, r *http.Request) {
                                        pkh, err := b58.ParsePublicKeyHash([]byte(mux.Vars(r)["key"]))
                                        if err != nil {
                                            tezosJSONError(w, errors.Wrap(err, http.StatusBadRequest))
                                            return
                                    Severity: Major
                                    Found in pkg/server/server.go - About 40 mins to fix

                                      Method usbHIDRoundTripper.readCommand has 6 return statements (exceeds 4 allowed).
                                      Open

                                      func (u *usbHIDRoundTripper) readCommand() (channel uint16, cmd uint8, data []byte, err error) {
                                          var (
                                              dataLen int
                                              idx     uint16
                                          )
                                      Severity: Major
                                      Found in pkg/vault/ledger/ledger/usbhid.go - About 40 mins to fix

                                        Method usbHIDRoundTripper.Exchange has 6 return statements (exceeds 4 allowed).
                                        Open

                                        func (u *usbHIDRoundTripper) Exchange(req *APDUCommand) (*APDUResponse, error) {
                                            //fmt.Printf("%#v\n", req)
                                            r := req.Bytes()
                                            if err := u.writeCommand(cmdAPDU, r); err != nil {
                                                return nil, err
                                        Severity: Major
                                        Found in pkg/vault/ledger/ledger/usbhid.go - About 40 mins to fix
                                          Severity
                                          Category
                                          Status
                                          Source
                                          Language