Preparing report...

Report for github.com/smallstep/crypto

A+    Excellent!    Found 14 issues across 63 files

Tweet

gofmt100%

Gofmt formats Go programs. We run gofmt -s on your code, where -s is for the "simplify" command

No problems detected. Good job!


go_vet100%

go vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string.

No problems detected. Good job!


gocyclo87%

Gocyclo calculates cyclomatic complexities of functions in Go source code. The cyclomatic complexity of a function is calculated according to the following rules: 1 is the base complexity of a function +1 for each 'if', 'for', 'case', '&&' or '||' Go Report Card warns on functions with cyclomatic complexity > 15.

    • crypto/pemutil/pem.go
    • Line 463: warning: cyclomatic complexity 31 of function Serialize() is high (> 15) (gocyclo)
    • Line 615: warning: cyclomatic complexity 20 of function ParseSSH() is high (> 15) (gocyclo)
    • Line 371: warning: cyclomatic complexity 19 of function Parse() is high (> 15) (gocyclo)
    • crypto/pemutil/pem_test.go
    • Line 523: warning: cyclomatic complexity 28 of function TestSerialize() is high (> 15) (gocyclo)
    • Line 142: warning: cyclomatic complexity 17 of function TestRead() is high (> 15) (gocyclo)

golint96%

Golint is a linter for Go source code.


license100%

Checks whether your project has a LICENSE file.

No problems detected. Good job!


ineffassign88%

IneffAssign detects ineffectual assignments in Go code.

    • crypto/jose/generate_test.go
    • Line 24: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 33: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 218: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 221: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 223: warning: undeclared name: ES256 (ineffassign)
    • Line 225: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 227: warning: undeclared name: ES384 (ineffassign)
    • Line 229: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 231: warning: undeclared name: ES512 (ineffassign)
    • Line 233: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 235: warning: undeclared name: EdDSA (ineffassign)
    • Line 237: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 240: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 242: warning: undeclared name: ES256 (ineffassign)
    • Line 244: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 246: warning: undeclared name: ES384 (ineffassign)
    • Line 248: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 250: warning: undeclared name: ES512 (ineffassign)
    • Line 252: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 254: warning: undeclared name: EdDSA (ineffassign)
    • Line 256: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 259: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 263: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 266: warning: undeclared name: EdDSA (ineffassign)
    • Line 268: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 271: warning: undeclared name: ES256 (ineffassign)
    • Line 341: warning: undeclared name: ES256 (ineffassign)
    • Line 388: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 389: warning: undeclared name: JSONWebEncryption (ineffassign)
    • Line 390: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 414: warning: undeclared name: JSONWebKey (ineffassign)
    • crypto/jose/parse_test.go
    • Line 91: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 189: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 192: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 225: warning: undeclared name: HS256 (ineffassign)
    • Line 270: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 280: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 285: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 290: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 295: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 302: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 307: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 312: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 318: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 323: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 328: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 332: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 434: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 437: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 479: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 482: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 482: warning: undeclared name: HS256 (ineffassign)
    • Line 483: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 483: warning: undeclared name: HS256 (ineffassign)
    • Line 484: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 485: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 485: warning: undeclared name: ES256 (ineffassign)
    • Line 486: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 486: warning: undeclared name: ES384 (ineffassign)
    • Line 487: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 488: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 488: warning: undeclared name: ES256 (ineffassign)
    • Line 489: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 489: warning: undeclared name: ES384 (ineffassign)
    • Line 490: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 491: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 491: warning: undeclared name: RS256 (ineffassign)
    • Line 492: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 492: warning: undeclared name: RS256 (ineffassign)
    • Line 493: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 494: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 494: warning: undeclared name: RS256 (ineffassign)
    • Line 495: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 495: warning: undeclared name: RS256 (ineffassign)
    • Line 496: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 497: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 497: warning: undeclared name: EdDSA (ineffassign)
    • Line 498: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 498: warning: undeclared name: EdDSA (ineffassign)
    • Line 499: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 499: warning: undeclared name: EdDSA (ineffassign)
    • Line 500: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 500: warning: undeclared name: EdDSA (ineffassign)
    • Line 504: warning: undeclared name: HS256 (ineffassign)
    • Line 506: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 508: warning: undeclared name: HS256 (ineffassign)
    • Line 511: warning: undeclared name: HS256 (ineffassign)
    • Line 513: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 513: warning: undeclared name: HS384 (ineffassign)
    • Line 515: warning: undeclared name: HS384 (ineffassign)
    • Line 523: warning: undeclared name: ES256 (ineffassign)
    • Line 528: warning: undeclared name: ES256 (ineffassign)
    • Line 533: warning: undeclared name: EdDSA (ineffassign)
    • Line 538: warning: undeclared name: EdDSA (ineffassign)
    • Line 565: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 568: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 577: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 586: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 595: warning: undeclared name: JSONWebKey (ineffassign)
    • crypto/jose/encrypt.go
    • Line 24: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 24: warning: undeclared name: JSONWebEncryption (ineffassign)
    • Line 30: warning: undeclared name: PBKDF2SaltSize (ineffassign)
    • Line 36: warning: undeclared name: Recipient (ineffassign)
    • Line 37: warning: undeclared name: PBES2_HS256_A128KW (ineffassign)
    • Line 39: warning: undeclared name: PBKDF2Iterations (ineffassign)
    • Line 43: warning: undeclared name: EncrypterOptions (ineffassign)
    • Line 44: warning: undeclared name: ContentType (ineffassign)
    • Line 46: warning: undeclared name: NewEncrypter (ineffassign)
    • Line 46: warning: undeclared name: DefaultEncAlgorithm (ineffassign)
    • Line 69: warning: undeclared name: ParseEncrypted (ineffassign)
    • Line 24: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 24: warning: undeclared name: JSONWebEncryption (ineffassign)
    • Line 30: warning: undeclared name: PBKDF2SaltSize (ineffassign)
    • Line 36: warning: undeclared name: Recipient (ineffassign)
    • Line 37: warning: undeclared name: PBES2_HS256_A128KW (ineffassign)
    • Line 39: warning: undeclared name: PBKDF2Iterations (ineffassign)
    • Line 43: warning: undeclared name: EncrypterOptions (ineffassign)
    • Line 44: warning: undeclared name: ContentType (ineffassign)
    • Line 46: warning: undeclared name: NewEncrypter (ineffassign)
    • Line 46: warning: undeclared name: DefaultEncAlgorithm (ineffassign)
    • Line 69: warning: undeclared name: ParseEncrypted (ineffassign)
    • crypto/jose/generate.go
    • Line 20: warning: undeclared name: EC (ineffassign)
    • Line 22: warning: undeclared name: P256 (ineffassign)
    • Line 24: warning: undeclared name: ES256 (ineffassign)
    • Line 36: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 46: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 46: warning: undeclared name: JSONWebEncryption (ineffassign)
    • Line 73: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 108: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 80: warning: undeclared name: P256 (ineffassign)
    • Line 82: warning: undeclared name: Ed25519 (ineffassign)
    • Line 84: warning: undeclared name: DefaultRSASize (ineffassign)
    • Line 86: warning: undeclared name: DefaultOctSize (ineffassign)
    • Line 93: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 116: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 120: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 132: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 150: warning: undeclared name: EdDSA (ineffassign)
    • Line 20: warning: undeclared name: EC (ineffassign)
    • Line 22: warning: undeclared name: P256 (ineffassign)
    • Line 24: warning: undeclared name: ES256 (ineffassign)
    • Line 36: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 46: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 46: warning: undeclared name: JSONWebEncryption (ineffassign)
    • Line 73: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 108: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 80: warning: undeclared name: P256 (ineffassign)
    • Line 82: warning: undeclared name: Ed25519 (ineffassign)
    • Line 84: warning: undeclared name: DefaultRSASize (ineffassign)
    • Line 86: warning: undeclared name: DefaultOctSize (ineffassign)
    • Line 93: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 116: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 120: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 132: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 150: warning: undeclared name: EdDSA (ineffassign)
    • crypto/jose/parse.go
    • Line 56: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 68: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 144: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 155: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 220: warning: undeclared name: JSONWebToken (ineffassign)
    • Line 238: warning: undeclared name: JSONWebToken (ineffassign)
    • Line 303: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 352: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 74: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 167: warning: undeclared name: JSONWebKeySet (ineffassign)
    • Line 221: warning: undeclared name: HeaderKey (ineffassign)
    • Line 239: warning: undeclared name: ParseSigned (ineffassign)
    • Line 284: warning: undeclared name: ParseEncrypted (ineffassign)
    • Line 288: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 371: warning: undeclared name: P256 (ineffassign)
    • Line 372: warning: undeclared name: ES256 (ineffassign)
    • Line 373: warning: undeclared name: P384 (ineffassign)
    • Line 374: warning: undeclared name: ES384 (ineffassign)
    • Line 375: warning: undeclared name: P521 (ineffassign)
    • Line 376: warning: undeclared name: ES512 (ineffassign)
    • Line 5: warning: "crypto/ecdsa" imported but not used (ineffassign)
    • Line 8: warning: "crypto/rsa" imported but not used (ineffassign)
    • Line 6: warning: "crypto/ed25519" imported but not used (ineffassign)
    • Line 56: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 68: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 144: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 155: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 220: warning: undeclared name: JSONWebToken (ineffassign)
    • Line 238: warning: undeclared name: JSONWebToken (ineffassign)
    • Line 303: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 352: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 74: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 167: warning: undeclared name: JSONWebKeySet (ineffassign)
    • Line 221: warning: undeclared name: HeaderKey (ineffassign)
    • Line 239: warning: undeclared name: ParseSigned (ineffassign)
    • Line 284: warning: undeclared name: ParseEncrypted (ineffassign)
    • Line 288: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 371: warning: undeclared name: P256 (ineffassign)
    • Line 372: warning: undeclared name: ES256 (ineffassign)
    • Line 373: warning: undeclared name: P384 (ineffassign)
    • Line 374: warning: undeclared name: ES384 (ineffassign)
    • Line 375: warning: undeclared name: P521 (ineffassign)
    • Line 376: warning: undeclared name: ES512 (ineffassign)
    • Line 5: warning: "crypto/ecdsa" imported but not used (ineffassign)
    • Line 8: warning: "crypto/rsa" imported but not used (ineffassign)
    • Line 6: warning: "crypto/ed25519" imported but not used (ineffassign)
    • crypto/jose/validate.go
    • Line 89: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 101: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 155: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 186: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 156: warning: undeclared name: KeyAlgorithm (ineffassign)
    • Line 156: warning: alg declared but not used (ineffassign)
    • Line 5: warning: "crypto/ed25519" imported but not used (ineffassign)
    • Line 10: warning: "fmt" imported but not used (ineffassign)
    • Line 4: warning: "crypto/ecdsa" imported but not used (ineffassign)
    • Line 6: warning: "crypto/rsa" imported but not used (ineffassign)
    • Line 89: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 101: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 155: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 186: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 156: warning: undeclared name: KeyAlgorithm (ineffassign)
    • Line 156: warning: alg declared but not used (ineffassign)
    • Line 4: warning: "crypto/ecdsa" imported but not used (ineffassign)
    • Line 10: warning: "fmt" imported but not used (ineffassign)
    • Line 5: warning: "crypto/ed25519" imported but not used (ineffassign)
    • Line 6: warning: "crypto/rsa" imported but not used (ineffassign)
    • crypto/jose/encrypt_test.go
    • Line 35: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 44: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 44: warning: undeclared name: JSONWebEncryption (ineffassign)
    • Line 53: warning: undeclared name: JSONWebEncryption (ineffassign)
    • Line 85: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 85: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 56: warning: undeclared name: PBKDF2SaltSize (ineffassign)
    • Line 61: warning: undeclared name: Recipient (ineffassign)
    • Line 62: warning: undeclared name: PBES2_HS256_A128KW (ineffassign)
    • Line 64: warning: undeclared name: PBKDF2Iterations (ineffassign)
    • Line 68: warning: undeclared name: EncrypterOptions (ineffassign)
    • Line 70: warning: undeclared name: ContentType (ineffassign)
    • Line 72: warning: undeclared name: NewEncrypter (ineffassign)
    • Line 72: warning: undeclared name: DefaultEncAlgorithm (ineffassign)
    • Line 118: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 124: warning: undeclared name: JSONWebEncryption (ineffassign)
    • Line 127: warning: undeclared name: JSONWebEncryption (ineffassign)
    • Line 134: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 134: warning: undeclared name: JSONWebEncryption (ineffassign)
    • Line 137: warning: undeclared name: JSONWebEncryption (ineffassign)
    • Line 144: warning: undeclared name: JSONWebEncryption (ineffassign)
    • Line 139: warning: undeclared name: PBKDF2SaltSize (ineffassign)
    • Line 174: warning: undeclared name: JSONWebKey (ineffassign)
    • Line 214: warning: undeclared name: JSONWebKey (ineffassign)

misspell100%

Misspell Finds commonly misspelled English words

No problems detected. Good job!