Blame


1 4e2dd90f 2022-03-26 martijn /*
2 b3380529 2022-04-08 martijn * Copyright (c) 2020-2022 Martijn van Duren <martijn@openbsd.org>
3 4e2dd90f 2022-03-26 martijn *
4 4e2dd90f 2022-03-26 martijn * Permission to use, copy, modify, and distribute this software for any
5 4e2dd90f 2022-03-26 martijn * purpose with or without fee is hereby granted, provided that the above
6 4e2dd90f 2022-03-26 martijn * copyright notice and this permission notice appear in all copies.
7 4e2dd90f 2022-03-26 martijn *
8 4e2dd90f 2022-03-26 martijn * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 4e2dd90f 2022-03-26 martijn * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 4e2dd90f 2022-03-26 martijn * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 4e2dd90f 2022-03-26 martijn * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 4e2dd90f 2022-03-26 martijn * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 4e2dd90f 2022-03-26 martijn * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 4e2dd90f 2022-03-26 martijn * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 4e2dd90f 2022-03-26 martijn */
16 4e2dd90f 2022-03-26 martijn
17 4e2dd90f 2022-03-26 martijn /* RFC 5234 - Augmented BNF for Syntax Specifications: ABNF */
18 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_alpha(const char *, int);
19 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_bit(const char *, int);
20 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_char(const char *, int);
21 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_cr(const char *, int);
22 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_crlf(const char *, int);
23 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_ctl(const char *, int);
24 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_digit(const char *, int);
25 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_dquote(const char *, int);
26 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_hexdig(const char *, int);
27 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_htab(const char *, int);
28 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_lf(const char *, int);
29 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_octet(const char *, int);
30 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sp(const char *, int);
31 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_vchar(const char *, int);
32 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_wsp(const char *, int);
33 4e2dd90f 2022-03-26 martijn
34 4e2dd90f 2022-03-26 martijn /* RFC 5321 - Simple Mail Transfer Protocol */
35 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_keyword(const char *, int);
36 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sub_domain(const char *, int);
37 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_let_dig(const char *, int);
38 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_ldh_string(const char *, int);
39 4e2dd90f 2022-03-26 martijn
40 4e2dd90f 2022-03-26 martijn /* RFC 5322 - Internet Message Format */
41 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_quoted_pair(const char *, int);
42 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_fws(const char *, int);
43 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_ctext(const char *, int);
44 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_ccontent(const char *, int);
45 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_comment(const char *, int);
46 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_cfws(const char *, int);
47 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_atext(const char *, int);
48 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_atom(const char *, int);
49 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_dot_atom_text(const char *, int);
50 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_dot_atom(const char *, int);
51 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_qtext(const char *, int);
52 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_qcontent(const char *, int);
53 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_quoted_string(const char *, int);
54 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_word(const char *, int);
55 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_phrase(const char *, int);
56 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_name_addr(const char *, int);
57 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_angle_addr(const char *, int);
58 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_display_name(const char *, int);
59 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_addr_spec(const char *, int);
60 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_local_part(const char *, int);
61 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_domain(const char *, int);
62 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_domain_literal(const char *, int);
63 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_dtext(const char *, int);
64 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_field_name(const char *, int);
65 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_ftext(const char *, int);
66 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_obs_no_ws_ctl(const char *, int);
67 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_obs_ctext(const char *, int);
68 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_obs_qtext(const char *, int);
69 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_obs_qp(const char *, int);
70 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_obs_phrase(const char *, int);
71 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_obs_fws(const char *, int);
72 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_obs_angle_addr(const char *, int);
73 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_obs_route(const char *, int);
74 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_obs_domain_list(const char *, int);
75 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_obs_local_part(const char *, int);
76 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_obs_domain(const char *, int);
77 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_obs_dtext(const char *, int);
78 4e2dd90f 2022-03-26 martijn
79 4e2dd90f 2022-03-26 martijn /* RFC 2045 - Multipurpose Internet Mail Extensions */
80 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_value(const char *, int);
81 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_token(const char *, int);
82 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_tspecials(const char *, int);
83 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_qp_section(const char *, int);
84 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_ptext(const char *, int);
85 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_safe_char(const char *, int);
86 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_hex_octet(const char *, int);
87 4e2dd90f 2022-03-26 martijn
88 4e2dd90f 2022-03-26 martijn /* RFC 6376 - DomainKeys Identified Mail (DKIM) Signatures */
89 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_hyphenated_word(const char *, int);
90 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_alphadigitps(const char *, int);
91 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_base64string(const char *, int);
92 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_hdr_name(const char *, int);
93 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_qp_hdr_value(const char *, int);
94 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_dkim_quoted_printable(const char *, int);
95 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_dkim_safe_char(const char *, int);
96 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_selector(const char *, int);
97 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_tag_list(const char *, int);
98 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_tag_spec(const char *, int);
99 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_tag_name(const char *, int);
100 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_tag_value(const char *, int);
101 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_tval(const char *, int);
102 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_valchar(const char *, int);
103 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_alnumpunc(const char *, int);
104 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_v_tag(const char *, int);
105 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_v_tag_value(const char *, int);
106 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_a_tag(const char *, int);
107 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_a_tag_value(const char *, int);
108 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_a_tag_alg(const char *, int);
109 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_a_tag_k(const char *, int);
110 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_a_tag_h(const char *, int);
111 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_x_sig_a_tag_k(const char *, int);
112 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_x_sig_a_tag_h(const char *, int);
113 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_b_tag(const char *, int);
114 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_b_tag_value(const char *, int);
115 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_b_tag_data(const char *, int);
116 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_bh_tag(const char *, int);
117 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_bh_tag_value(const char *, int);
118 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_bh_tag_data(const char *, int);
119 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_c_tag(const char *, int);
120 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_c_tag_value(const char *, int);
121 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_c_tag_alg(const char *, int);
122 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_x_sig_c_tag_alg(const char *, int);
123 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_d_tag(const char *, int);
124 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_d_tag_value(const char *, int);
125 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_domain_name(const char *, int);
126 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_h_tag(const char *, int);
127 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_h_tag_value(const char *, int);
128 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_i_tag(const char *, int);
129 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_i_tag_value(const char *, int);
130 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_l_tag(const char *, int);
131 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_l_tag_value(const char *, int);
132 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_q_tag(const char *, int);
133 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_q_tag_value(const char *, int);
134 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_q_tag_method(const char *, int);
135 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_x_sig_q_tag_type(const char *, int);
136 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_x_sig_q_tag_args(const char *, int);
137 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_s_tag(const char *, int);
138 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_s_tag_value(const char *, int);
139 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_t_tag(const char *, int);
140 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_t_tag_value(const char *, int);
141 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_x_tag(const char *, int);
142 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_x_tag_value(const char *, int);
143 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_z_tag(const char *, int);
144 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_z_tag_value(const char *, int);
145 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_sig_z_tag_copy(const char *, int);
146 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_key_v_tag(const char *, int);
147 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_key_v_tag_value(const char *, int);
148 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_key_h_tag(const char *, int);
149 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_key_h_tag_value(const char *, int);
150 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_key_h_tag_alg(const char *, int);
151 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_x_key_h_tag_alg(const char *, int);
152 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_key_k_tag(const char *, int);
153 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_key_k_tag_value(const char *, int);
154 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_key_k_tag_type(const char *, int);
155 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_x_key_k_tag_type(const char *, int);
156 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_key_n_tag(const char *, int);
157 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_key_n_tag_value(const char *, int);
158 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_key_p_tag(const char *, int);
159 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_key_p_tag_value(const char *, int);
160 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_key_s_tag(const char *, int);
161 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_key_s_tag_value(const char *, int);
162 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_key_s_tag_type(const char *, int);
163 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_x_key_s_tag_type(const char *, int);
164 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_key_t_tag(const char *, int);
165 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_key_t_tag_value(const char *, int);
166 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_key_t_tag_flag(const char *, int);
167 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_x_key_t_tag_flag(const char *, int);
168 4e2dd90f 2022-03-26 martijn
169 4e2dd90f 2022-03-26 martijn /* Authentication-Results */
170 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_skip_ar_pvalue(const char *, int);
171 4e2dd90f 2022-03-26 martijn
172 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_domain_uncomment(const char *);
173 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_from_domain(const char *);
174 4e2dd90f 2022-03-26 martijn
175 4e2dd90f 2022-03-26 martijn const char *osmtpd_ltok_quoted_string_normalize(const char *);