Lines Matching refs:pattern
669 typedef int (*equal_fn) (const unsigned char *pattern, size_t pattern_len,
673 /* Skip pattern prefix to match "wildcard" subject */
678 const unsigned char *pattern = *p;
683 * pattern is longer, compare just an equal-length suffix with the
690 while (pattern_len > subject_len && *pattern) {
692 *pattern == '.')
694 ++pattern;
700 *p = pattern;
706 static int equal_nocase(const unsigned char *pattern, size_t pattern_len,
710 skip_prefix(&pattern, &pattern_len, subject, subject_len, flags);
714 unsigned char l = *pattern;
716 /* The pattern must not contain NUL characters. */
727 ++pattern;
735 static int equal_case(const unsigned char *pattern, size_t pattern_len,
739 skip_prefix(&pattern, &pattern_len, subject, subject_len, flags);
742 return !OPENSSL_memcmp(pattern, subject, pattern_len);
851 * At most one wildcard per pattern.
898 static int equal_wildcard(const unsigned char *pattern, size_t pattern_len,
905 * Subject names starting with '.' can only match a wildcard pattern
906 * via a subject sub-domain pattern suffix match.
909 star = valid_star(pattern, pattern_len, flags);
911 return equal_nocase(pattern, pattern_len,
913 return wildcard_match(pattern, star - pattern,
914 star + 1, (pattern + pattern_len) - star - 1,
976 /* Implicit client-side DNS sub-domain pattern */