github.com/zmap/zlint@v1.1.0/lints/lint_ecdsa_ee_invalid_ku_test.go (about) 1 package lints 2 3 import ( 4 "fmt" 5 "testing" 6 ) 7 8 func TestECDSAInvalidKU(t *testing.T) { 9 testCases := []struct { 10 name string 11 filename string 12 expectedStatus LintStatus 13 expectedDetails string 14 }{ 15 { 16 name: "non-ecdsa ee cert", 17 filename: "rsaKeyWithParameters.pem", 18 expectedStatus: NA, 19 }, 20 { 21 name: "ecdsa ee cert, valid key usage", 22 filename: "ecdsaP256ValidKUs.pem", 23 expectedStatus: Pass, 24 }, 25 { 26 name: "ecdsa ee cert, invalid key usage", 27 filename: "ecdsaP384InvalidKUs.pem", 28 expectedStatus: Notice, 29 expectedDetails: "Certificate had unexpected key usage(s): KeyUsageKeyEncipherment", 30 }, 31 { 32 name: "ecdsa ee cert, multiple invalid key usages", 33 filename: "ecdsaP256.pem", 34 expectedStatus: Notice, 35 expectedDetails: "Certificate had unexpected key usage(s): KeyUsageCRLSign, KeyUsageCertSign", 36 }, 37 } 38 39 for _, tc := range testCases { 40 inputPath := fmt.Sprintf("%s%s", testCaseDir, tc.filename) 41 result := Lints["n_ecdsa_ee_invalid_ku"].Execute(ReadCertificate(inputPath)) 42 if result.Status != tc.expectedStatus { 43 t.Errorf("expected result %v. actual result was %v", 44 tc.expectedStatus, result.Status) 45 } 46 if result.Details != tc.expectedDetails { 47 t.Errorf("expected details %q. actual result was %q", 48 tc.expectedDetails, result.Details) 49 } 50 } 51 }