From 632fda501059cdac0eac908c02ab1d6e3de19d7b Mon Sep 17 00:00:00 2001 From: mtgag Date: Thu, 29 Feb 2024 09:55:39 +0100 Subject: [PATCH] addressed review comments and hint to citation from #795 --- .../lint_single_email_subject_if_present.go | 16 +++++++--------- .../lint_single_email_subject_if_present_test.go | 6 +++--- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/v3/lints/cabf_smime_br/lint_single_email_subject_if_present.go b/v3/lints/cabf_smime_br/lint_single_email_subject_if_present.go index 427c2788e..1958a95d5 100644 --- a/v3/lints/cabf_smime_br/lint_single_email_subject_if_present.go +++ b/v3/lints/cabf_smime_br/lint_single_email_subject_if_present.go @@ -28,11 +28,11 @@ func init() { LintMetadata: lint.LintMetadata{ Name: "e_single_email_subject_if_present", Description: "If present, the subject:emailAddress SHALL contain a single Mailbox Address", - Citation: "7.1.4.2.h", + Citation: "7.1.4.2.2.h", Source: lint.CABFSMIMEBaselineRequirements, EffectiveDate: util.CABF_SMIME_BRs_1_0_0_Date, }, - Lint: func() lint.LintInterface { return &singleEmailSubjectIfPresent{} }, + Lint: NewSingleEmailSubjectIfPresent, }) } @@ -43,20 +43,18 @@ func NewSingleEmailSubjectIfPresent() lint.LintInterface { } func (l *singleEmailSubjectIfPresent) CheckApplies(c *x509.Certificate) bool { - return util.IsSubscriberCert(c) && c.Subject.EmailAddress != nil && util.IsSMIMEBRCertificate(c) + emailAddress := c.Subject.EmailAddress + return util.IsSubscriberCert(c) && emailAddress != nil && len(emailAddress) != 0 && util.IsSMIMEBRCertificate(c) } func (l *singleEmailSubjectIfPresent) Execute(c *x509.Certificate) *lint.LintResult { for _, email := range c.Subject.EmailAddress { - _, err := mail.ParseAddress(email) - if err != nil { + if _, err := mail.ParseAddress(email); err != nil { return &lint.LintResult{ - Status: lint.Error, - Details: fmt.Sprintf("subject:emailAddress was present and contained an invalid email address (%s)", email), - LintMetadata: lint.LintMetadata{}, + Status: lint.Error, + Details: fmt.Sprintf("subject:emailAddress was present and contained an invalid email address (%s)", email), } } } - return &lint.LintResult{Status: lint.Pass} } diff --git a/v3/lints/cabf_smime_br/lint_single_email_subject_if_present_test.go b/v3/lints/cabf_smime_br/lint_single_email_subject_if_present_test.go index 954db0939..7e64ad9f1 100644 --- a/v3/lints/cabf_smime_br/lint_single_email_subject_if_present_test.go +++ b/v3/lints/cabf_smime_br/lint_single_email_subject_if_present_test.go @@ -14,17 +14,17 @@ func TestSingleEmailSubjectIfPresent(t *testing.T) { ExpectedResult lint.LintStatus }{ { - Name: "Error - email address present in subjectDN with multiple values", + Name: "error - email address present in subjectDN with multiple values", InputFilename: "smime/twoEmailAddressesInSubjectDN.pem", ExpectedResult: lint.Error, }, { - Name: "Error - email address present in subjectDN with one value", + Name: "pass - email address present in subjectDN with one value", InputFilename: "smime/oneEmailAddressInSubjectDN.pem", ExpectedResult: lint.Pass, }, { - Name: "Error - no email address present in subjectDN", + Name: "na - no email address present in subjectDN", InputFilename: "smime/noEmailAddressInSubjectDN.pem", ExpectedResult: lint.NA, },