1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
package util
import (
"net/mail"
"github.com/zmap/zcrypto/x509"
)
func HasEmailSAN(c *x509.Certificate) bool {
for _, san := range c.EmailAddresses {
if san != "" {
return true
}
}
for _, name := range c.OtherNames {
if name.TypeID.Equal(OidIdOnSmtpUtf8Mailbox) && len(name.Value.Bytes) != 0 {
return true
}
}
return false
}
// IsMailboxAddress returns true if the passed in string resembles an RFC 5322
// mailbox address.
func IsMailboxAddress(address string) bool {
validAddress, err := mail.ParseAddress(address)
return err == nil && validAddress.Address == address
}
|