-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Clean up name api #182
Clean up name api #182
Conversation
We switched to using `doc_auto_cfg` to automatically indicate in Rustdocs when an item requires a particular feature. This comment about the `dns_name::DnsName` re-export requiring alloc isn't necessary anymore.
We switched to `doc_auto_cfg` and don't need to manually annotate `cfg(feature ...)` annotations for docsrs purposes anymore.
This is what most consumers of the API are interested in, and avoids needing to export the `GeneralDnsNameRef` and `WildcardDnsNameRef` types.
We can express this test with the `expect_cert_dns_names` helper.
Prior to this commit the rustdoc comment on `EndEntityCert.dns_names` mentioned using `verify_is_valid_for_dns_name` and `verify_is_valid_for_at_least_one_dns_name`, but these functions don't exist anymore. This commit updates the comment to point to `EndEntityCert::verify_is_valid_for_subject_name`, and does so with a proper Rustdoc link so that future updates will be caught by `cargo doc` if we forget to fix this reference to match.
The purpose of the `dns_names` helper on an `EndEntityCert` is to provide users the opportunity to get information on the dNSName SAN values in a certificate for **non-validation** purposes. Checking that a certificate is valid for a particular name should always be done with `verify_is_valid_for_at_least_one_dns_name`. With that use-case in mind, we can make the `dns_names` helper easier for consumers to use by filtering out invalid general names, returning an `Iterator<Item = &'a str>` unconditionally, instead of a `Result`. This better matches the updated name validation semantics where we ignore `MalformedDnsIdentifier` errors to continue to try to find a valid name to validate against.
With the update to the `dns_names` function in the previous commit we can now make `EndEntity.dns_names` work without requiring `alloc`.
Avoid combinator chaining, use explicit `match`.
Codecov Report
@@ Coverage Diff @@
## main #182 +/- ##
==========================================
+ Coverage 96.31% 96.43% +0.11%
==========================================
Files 17 17
Lines 4510 4512 +2
==========================================
+ Hits 4344 4351 +7
+ Misses 166 161 -5
... and 6 files with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
The From impl feels a little unidiomatic because the DnsNameRef is not consumed. An AsRef impl would unnecessarily constrain the lifetime of the output value to `&self`, whereas it can live as long as `'a`.
The From impl feels a little unidiomatic because the WildcardDnsNameRef is not consumed. An AsRef impl would unnecessarily constrain the lifetime of the output value to `&self`, whereas it can live as long as `'a`.
The From impl feels a little unidiomatic because the GeneralDnsNameRef is not consumed. An AsRef impl would unnecessarily constrain the lifetime of the output value to `&self`, whereas it can live as long as `'a`.
219a115
to
27a1234
Compare
Small refactoring for the name API from reviewing #178. Hope this doesn't make a rebase too painful.