github.com/zmap/zlint@v1.1.0/lints/lint_ext_san_uniform_resource_identifier_present.go (about) 1 package lints 2 3 /* 4 * ZLint Copyright 2018 Regents of the University of Michigan 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); you may not 7 * use this file except in compliance with the License. You may obtain a copy 8 * of the License at http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 13 * implied. See the License for the specific language governing 14 * permissions and limitations under the License. 15 */ 16 17 /************************************************************************************************************ 18 7.1.4.2.1. Subject Alternative Name Extension 19 Certificate Field: extensions:subjectAltName 20 Required/Optional: Required 21 Contents: This extension MUST contain at least one entry. Each entry MUST be either a dNSName containing 22 the Fully‐Qualified Domain Name or an iPAddress containing the IP address of a server. The CA MUST 23 confirm that the Applicant controls the Fully‐Qualified Domain Name or IP address or has been granted the 24 right to use it by the Domain Name Registrant or IP address assignee, as appropriate. 25 Wildcard FQDNs are permitted. 26 *************************************************************************************************************/ 27 28 import ( 29 "github.com/zmap/zcrypto/x509" 30 "github.com/zmap/zlint/util" 31 ) 32 33 type SANURI struct{} 34 35 func (l *SANURI) Initialize() error { 36 return nil 37 } 38 39 func (l *SANURI) CheckApplies(c *x509.Certificate) bool { 40 return util.IsExtInCert(c, util.SubjectAlternateNameOID) 41 } 42 43 func (l *SANURI) Execute(c *x509.Certificate) *LintResult { 44 if c.URIs != nil { 45 return &LintResult{Status: Error} 46 } 47 return &LintResult{Status: Pass} 48 } 49 50 func init() { 51 RegisterLint(&Lint{ 52 Name: "e_ext_san_uniform_resource_identifier_present", 53 Description: "The Subject Alternate Name extension MUST contain only 'dnsName' and 'ipaddress' name types", 54 Citation: "BRs: 7.1.4.2.1", 55 Source: CABFBaselineRequirements, 56 EffectiveDate: util.CABEffectiveDate, 57 Lint: &SANURI{}, 58 }) 59 }