-
Notifications
You must be signed in to change notification settings - Fork 8
DNS Persistent DCV validation method #60
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request adds support for the DNS Persistent domain control validation (DCV) method in compliance with CA/Browser Forum Baseline Requirements section 3.2.2.4.22. The implementation includes new validation parameters, core validation logic, and comprehensive test coverage.
Key Changes
- Added
DcvDnsPersistentValidationParametersclass to handle persistent DNS TXT record validation with issuer domain names and account URI - Implemented
evaluate_persistent_dns_responsemethod to parse and validate DNS TXT records according to RFC 8659 syntax, checking issuer domain, account URI, and optional expiration timestamp - Updated test suite with comprehensive unit tests for the new validation method, including edge cases for malformed records, case insensitivity, and expiration handling
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| src/open_mpic_core/about.py | Bumped package version to 6.3.0 |
| pyproject.toml | Updated API spec version to 3.8.0 and removed unused pytest config options |
| src/open_mpic_core/common_domain/enum/dcv_validation_method.py | Added DNS_PERSISTENT and DNS_ACCOUNT_01 enum values with CABF references |
| src/open_mpic_core/common_domain/check_parameters.py | Added DcvDnsPersistentValidationParameters class and updated union type |
| src/open_mpic_core/common_domain/check_response_details.py | Extended DNS response details to support DNS_PERSISTENT and DNS_ACCOUNT_01 methods |
| src/open_mpic_core/mpic_dcv_checker/mpic_dcv_checker.py | Implemented ExpectedDnsRecordContent class and persistent DNS validation logic |
| src/open_mpic_core/init.py | Exported new DcvDnsPersistentValidationParameters class |
| tests/unit/test_util/valid_mpic_request_creator.py | Added test factory method for DNS_PERSISTENT validation |
| tests/unit/test_util/valid_check_creator.py | Added helper methods to create DNS persistent check requests |
| tests/unit/open_mpic_core/test_check_request_parameters.py | Added validation tests for new parameter class |
| tests/unit/open_mpic_core/test_mpic_dcv_request.py | Updated tests to use warnings=False in model_dump calls |
| tests/unit/open_mpic_core/test_mpic_caa_request.py | Updated tests to use warnings=False in model_dump calls |
| tests/unit/open_mpic_core/test_mpic_dcv_checker.py | Added comprehensive unit tests for persistent DNS validation logic |
| tests/unit/open_mpic_core/test_mpic_coordinator.py | Added integration test for DNS_PERSISTENT method and fixed typo in test name |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
birgelee
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good
This pull request adds support for a new DNS-based domain control validation (DCV) method, "DNS Persistent," in compliance with the latest CA/Browser Forum Baseline Requirements. The changes include updates to the core validation logic, new parameter and response classes, and enhancements to the test suite. The version is also bumped to reflect these new capabilities.
Support for DNS Persistent DCV (CABF 3.2.2.4.22):
DcvDnsPersistentValidationParametersclass to handle parameters for persistent DNS TXT record validation, including issuer domain names and account URI.DcvValidationMethod) to includeDNS_PERSISTENTandDNS_ACCOUNT_01, with CABF references and comments for clarity.MpicDcvChecker) to build and evaluate expected DNS record content for persistent validation, including a newevaluate_persistent_dns_responsemethod that parses TXT records according to CABF/RFC 8659 syntax and checks issuer, account URI, and expiration. [1] [2] [3] [4] [5]API and Model Updates:
3.8.0inpyproject.tomland bumped the package version to6.3.0. [1] [2]Testing Enhancements:
Minor Improvements and Refactoring:
These changes collectively enable persistent DNS validation, align with the latest industry standards, and improve the maintainability and clarity of the codebase.