On Thu, Aug 20, 2020 at 01:20:00PM -0400, Wietse Venema wrote: > Viktor Dukhovni: > > > - &&TLS_DANE_BASED(state->client_start_props->tls_level)) > > + && TLS_DANE_HASTA(state->client_start_props->dane)) > > @@ -1427,7 +1427,7 @@ static void tlsp_get_request_event(int event, void > > *context) > > - TLS_DANE_BASED(state->client_start_props->tls_level)); > > + TLS_DANE_HASTA(state->client_start_props->dane)); > > This looks weird. I thought that the problem was with trust anchors, not DANE?
Yes, the problem is with trust anchors, but DANE is the general case of: * Policy-based end-entity cert matching: - DANE "_25._tcp.example.net. IN TLSA 3 ? ? ..." - The Postfix "fingerprint" security level * Policy-based issuer CA cert matching: - DANE "_25._tcp.example.net. IN TLSA 2 ? ? ..." - The Postfix verify/secure levels with a custom per-site "tafile" . Actual DANE TLSA RRsets can have either or both DANE-EE or DANE-TA records, with verification ultimately matching either or both. The "fingerprint" level is mapped to DANE-EE, while "tafile" support is mapped to DANE-TA. Thus actual DANE, fingerprint and secure/verify with a "tafile" are all handled via the "general case" of "some sort of DANE-like policy". In Postfix 3.6, the job of validating "some sort DANE-like policy" is entirely delegated to OpenSSL. You'll be pleased to know, that in Postfix 3.6 the TLS_DANE_HASTA() and TLS_DANE_HASEE() macros are gone. We no longer need to treat the various DANE-like matching differently. -- Viktor.