Commit Briefs
Domains are case insensitive.
Keep that in mind when comparing i- and d-tag
FWS after h=-tag value could lead to a end mismatch.
Use osmtpd_ltok_skip_sig_h_tag_value for checking and original code for copying data
osmtpd_ltok_skip_domain has obs-domain, which gives the wrong result.
Use the appropriate osmtpd_ltok_skip_sig_d_tag_value
Rewrite osmtpd_ltok_skip_hyphenated_word. It didn't work quite right.
While here remove unneeded #include <stdio.h>
rewrite dkim_body_parse, so that we don't copy the line.
This means that we don't limit the line length anymore, but might cost a little extra computing overhead. Let's see how bad this can get.
And of course I tested with the wrong file.
v=-tags should also increment key, similar to the other tags.
Fix syntax validator in t=-tag (used wrong function)
While here fix unfold some line wrappings no longer needed
For the key h tag we should skip over the alg, not the entire value when
inside the loop. While here reorder some line folding since the mheader->ltok API name change.
Put v=-tag handling for key into switch.
Shorter and better legibility
Rework the entire mheader file
- Rename mheader to ltok (lexical token) - Make all skip functions const - Add a few missing functions