@@ -35,14 +35,14 @@ Features:
3535### DKIM Signature Verification
3636
3737``` rust
38- // Create a resolver using Cloudflare DNS
39- let resolver = Resolver :: new_cloudflare_tls (). unwrap ();
38+ // Create an authenticator using Cloudflare DNS
39+ let authenticator = MessageAuthenticator :: new_cloudflare_tls (). unwrap ();
4040
4141 // Parse message
4242 let authenticated_message = AuthenticatedMessage :: parse (RFC5322_MESSAGE . as_bytes ()). unwrap ();
4343
4444 // Validate signature
45- let result = resolver . verify_dkim (& authenticated_message ). await ;
45+ let result = authenticator . verify_dkim (& authenticated_message ). await ;
4646
4747 // Make sure all signatures passed verification
4848 assert! (result . iter (). all (| s | s . result () == & DkimResult :: Pass ));
@@ -85,14 +85,14 @@ Features:
8585### ARC Chain Verification
8686
8787``` rust
88- // Create a resolver using Cloudflare DNS
89- let resolver = Resolver :: new_cloudflare_tls (). unwrap ();
88+ // Create an authenticator using Cloudflare DNS
89+ let authenticator = MessageAuthenticator :: new_cloudflare_tls (). unwrap ();
9090
9191 // Parse message
9292 let authenticated_message = AuthenticatedMessage :: parse (RFC5322_MESSAGE . as_bytes ()). unwrap ();
9393
9494 // Validate ARC chain
95- let result = resolver . verify_arc (& authenticated_message ). await ;
95+ let result = authenticator . verify_arc (& authenticated_message ). await ;
9696
9797 // Make sure ARC passed verification
9898 assert_eq! (result . result (), & DkimResult :: Pass );
@@ -101,15 +101,15 @@ Features:
101101### ARC Chain Sealing
102102
103103``` rust
104- // Create a resolver using Cloudflare DNS
105- let resolver = Resolver :: new_cloudflare_tls (). unwrap ();
104+ // Create an authenticator using Cloudflare DNS
105+ let authenticator = MessageAuthenticator :: new_cloudflare_tls (). unwrap ();
106106
107107 // Parse message to be sealed
108108 let authenticated_message = AuthenticatedMessage :: parse (RFC5322_MESSAGE . as_bytes ()). unwrap ();
109109
110110 // Verify ARC and DKIM signatures
111- let arc_result = resolver . verify_arc (& authenticated_message ). await ;
112- let dkim_result = resolver . verify_dkim (& authenticated_message ). await ;
111+ let arc_result = authenticator . verify_arc (& authenticated_message ). await ;
112+ let dkim_result = authenticator . verify_dkim (& authenticated_message ). await ;
113113
114114 // Build Authenticated-Results header
115115 let auth_results = AuthenticationResults :: new (" mx.mydomain.org" )
@@ -137,45 +137,61 @@ Features:
137137### SPF Policy Evaluation
138138
139139``` rust
140- // Create a resolver using Cloudflare DNS
141- let resolver = Resolver :: new_cloudflare_tls (). unwrap ();
140+ // Create an authenticator using Cloudflare DNS
141+ let authenticator = MessageAuthenticator :: new_cloudflare_tls (). unwrap ();
142142
143143 // Verify HELO identity
144- let result = resolver
145- . verify_spf_helo (" 127.0.0.1" . parse (). unwrap (), " gmail.com" , " my-local-domain.org" )
144+ let result = authenticator
145+ . verify_spf (SpfParameters :: verify_ehlo (
146+ " 127.0.0.1" . parse (). unwrap (),
147+ " gmail.com" ,
148+ " my-local-domain.org" ,
149+ ))
146150 . await ;
147151 assert_eq! (result . result (), SpfResult :: Fail );
148152
149153 // Verify MAIL-FROM identity
150- let result = resolver
151- . verify_spf_sender (
" ::1" . parse ()
. unwrap (),
" gmail.com" ,
" my-local-domain.org" ,
" [email protected] " )
154+ let result = authenticator
155+ . verify_spf (SpfParameters :: verify_mail_from (
156+ " ::1" . parse (). unwrap (),
157+ " gmail.com" ,
158+ " my-local-domain.org" ,
159+ 160+ ))
152161 . await ;
153162 assert_eq! (result . result (), SpfResult :: Fail );
154163```
155164
156165### DMARC Policy Evaluation
157166
158167``` rust
159- // Create a resolver using Cloudflare DNS
160- let resolver = Resolver :: new_cloudflare_tls (). unwrap ();
168+ // Create an authenticator using Cloudflare DNS
169+ let authenticator = MessageAuthenticator :: new_cloudflare_tls (). unwrap ();
161170
162171 // Verify DKIM signatures
163172 let authenticated_message = AuthenticatedMessage :: parse (RFC5322_MESSAGE . as_bytes ()). unwrap ();
164- let dkim_result = resolver . verify_dkim (& authenticated_message ). await ;
173+ let dkim_result = authenticator . verify_dkim (& authenticated_message ). await ;
165174
166175 // Verify SPF MAIL-FROM identity
167- let spf_result = resolver
168- . verify_spf_sender (
" ::1" . parse ()
. unwrap (),
" example.org" ,
" my-local-domain.org" ,
" [email protected] " )
176+ let spf_result = authenticator
177+ . verify_spf (SpfParameters :: verify_mail_from (
178+ " ::1" . parse (). unwrap (),
179+ " example.org" ,
180+ " my-host-domain.org" ,
181+ 182+ ))
169183 . await ;
170184
171185 // Verify DMARC
172- let dmarc_result = resolver
186+ let dmarc_result = authenticator
173187 . verify_dmarc (
174- & authenticated_message ,
175- & dkim_result ,
176- " example.org" ,
177- & spf_result ,
178- | domain | psl :: domain_str (domain ). unwrap_or (domain ),
188+ DmarcParameters :: new (
189+ & authenticated_message ,
190+ & dkim_result ,
191+ " example.org" ,
192+ & spf_result ,
193+ )
194+ . with_domain_suffix_fn (| domain | psl :: domain_str (domain ). unwrap_or (domain )),
179195 )
180196 . await ;
181197 assert_eq! (dmarc_result . dkim_result (), & DmarcResult :: Pass );
0 commit comments