Skip to content

feat: Implement external PKI wizard for TLS certificate management - #958

Merged
FHatCSW merged 4 commits into
mainfrom
keygen_tls
Oct 6, 2026
Merged

FHatCSW merged 4 commits into
mainfrom
keygen_tls

Conversation

@FHatCSW

@FHatCSW FHatCSW commented Oct 6, 2026

Copy link
Copy Markdown
Collaborator
  • Added TlsExternalCsrWizardView to handle the external PKI certificate request process.
  • Created forms for key generation, truststore selection, and certificate content definition.
  • Implemented views for generating keys, selecting truststores, and managing CSR content.
  • Introduced services for CSR building and certificate finalization.
  • Developed templates for user interaction, including CSR display and certificate upload.
  • Added JavaScript for dynamic profile selection and CSR copying functionality.
  • Implemented tests for external CSR operations with managed keys.

Legal

  • I certify that I have all necessary rights to publish this contribution under the MIT license. I agree to the Trustpoint CLA and have added my name to the AUTHORS.md file.

@codecov

codecov Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 90.56047% with 32 lines in your changes missing coverage. Please review.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
trustpoint/management/views/tls_external_csr.py 90.64% 13 Missing ⚠️
trustpoint/pki/services/external_csr.py 87.50% 8 Missing ⚠️
trustpoint/crypto/application/service.py 80.95% 4 Missing ⚠️
trustpoint/management/forms.py 93.33% 4 Missing ⚠️
...rustpoint/request/operation_processor/csr_build.py 71.42% 2 Missing ⚠️
trustpoint/pki/forms/issuing_cas.py 85.71% 1 Missing ⚠️
Files with missing lines Coverage Δ
trustpoint/crypto/adapters/software/backend.py 75.57% <100.00%> (+1.76%) ⬆️
trustpoint/management/urls.py 100.00% <ø> (ø)
trustpoint/pki/models/credential.py 77.53% <100.00%> (+0.22%) ⬆️
trustpoint/pki/services/key_generation.py 100.00% <100.00%> (ø)
trustpoint/pki/util/cert_req_converter.py 94.75% <100.00%> (+0.53%) ⬆️
trustpoint/pki/util/x509.py 79.78% <100.00%> (+0.81%) ⬆️
trustpoint/pki/forms/issuing_cas.py 82.70% <85.71%> (+0.08%) ⬆️
...rustpoint/request/operation_processor/csr_build.py 93.16% <71.42%> (+7.19%) ⬆️
trustpoint/crypto/application/service.py 76.00% <80.95%> (+0.39%) ⬆️
trustpoint/management/forms.py 88.95% <93.33%> (+0.58%) ⬆️
... and 2 more

... and 5 files with indirect coverage changes

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
filepath passed skipped SUBTOTAL
trustpoint/agents/tests/test_views.py 41 0 41
trustpoint/appsecrets/tests/test_service.py 11 0 11
trustpoint/cmp/tests/test_views.py 29 0 29
trustpoint/crypto/tests/test_application_backend.py 18 0 18
trustpoint/crypto/tests/test_local_development_backend.py 4 0 4
trustpoint/crypto/tests/test_managed_key_repository.py 4 0 4
trustpoint/crypto/tests/test_mldsa_private_keys.py 16 0 16
trustpoint/crypto/tests/test_repositories.py 5 0 5
trustpoint/crypto/tests/test_tls_export.py 9 0 9
trustpoint/devices/tests/test_api/test_credential_expiry.py 27 0 27
trustpoint/devices/tests/test_api/test_device_viewset.py 30 0 30
trustpoint/devices/tests/test_credential_download.py 4 0 4
trustpoint/devices/tests/test_forms/test_base_credential_forms.py 31 0 31
trustpoint/devices/tests/test_forms/test_browser_login.py 5 0 5
trustpoint/devices/tests/test_forms/test_clm_forms.py 23 0 23
trustpoint/devices/tests/test_forms/test_create_device_form.py 3 0 3
trustpoint/devices/tests/test_forms/test_credential_download_form.py 3 0 3
trustpoint/devices/tests/test_forms/test_credential_forms.py 16 0 16
trustpoint/devices/tests/test_forms/test_device_creation_forms.py 31 0 31
trustpoint/devices/tests/test_forms/test_forms_coverage_boost.py 9 0 9
trustpoint/devices/tests/test_issuer/test_domain_credential.py 1 0 1
trustpoint/devices/tests/test_issuer/test_issuer_extended.py 24 0 24
trustpoint/devices/tests/test_issuer/test_opcua_client_credential.py 1 0 1
trustpoint/devices/tests/test_issuer/test_opcua_server_credential.py 1 0 1
trustpoint/devices/tests/test_issuer/test_tls_client_credential.py 2 0 2
trustpoint/devices/tests/test_issuer/test_tls_server_credential.py 1 0 1
trustpoint/devices/tests/test_model_delete.py 4 0 4
trustpoint/devices/tests/test_models/test_device_model.py 8 0 8
trustpoint/devices/tests/test_models/test_remote_device_credential.py 14 0 14
trustpoint/devices/tests/test_revocation/test_device_credential_revocation.py 3 0 3
trustpoint/devices/tests/test_tasks.py 19 0 19
trustpoint/devices/tests/test_urls/test_urls.py 12 0 12
trustpoint/devices/tests/test_utils.py 6 0 6
trustpoint/devices/tests/test_views/test_device_views.py 29 0 29
trustpoint/devices/tests/test_views/test_device_views_clm.py 11 0 11
trustpoint/devices/tests/test_views/test_device_views_extended.py 26 0 26
trustpoint/discovery/tests/test_discovery_views.py 18 0 18
trustpoint/help_pages/tests/test_base.py 20 0 20
trustpoint/help_pages/tests/test_devices_help_views.py 43 0 43
trustpoint/help_pages/tests/test_pki_help_views.py 23 0 23
trustpoint/home/tests/test_filters.py 11 0 11
trustpoint/home/tests/test_integration.py 6 0 6
trustpoint/home/tests/test_views.py 27 0 27
trustpoint/management/tests/test_api/test_backup_viewset.py 13 0 13
trustpoint/management/tests/test_api/test_health_viewset.py 3 0 3
trustpoint/management/tests/test_api/test_logging_viewset.py 19 0 19
trustpoint/management/tests/test_api/test_role_viewset.py 13 0 13
trustpoint/management/tests/test_api/test_tls_viewset.py 12 0 12
trustpoint/management/tests/test_api/test_user_viewset.py 13 0 13
trustpoint/management/tests/test_capabilities.py 4 0 4
trustpoint/management/tests/test_commands.py 28 0 28
trustpoint/management/tests/test_filters/test_audit_log.py 2 0 2
trustpoint/management/tests/test_forms/test_backup.py 5 0 5
trustpoint/management/tests/test_forms/test_ipv4_address_form.py 5 0 5
trustpoint/management/tests/test_forms/test_pkcs11configform.py 4 0 4
trustpoint/management/tests/test_forms/test_security_config.py 42 0 42
trustpoint/management/tests/test_forms/test_tls_import.py 27 0 27
trustpoint/management/tests/test_models/test_audit_log.py 2 0 2
trustpoint/management/tests/test_models/test_backup.py 7 0 7
trustpoint/management/tests/test_models/test_notifications.py 15 0 15
trustpoint/management/tests/test_password_policy.py 23 0 23
trustpoint/management/tests/test_security_decorators.py 14 0 14
trustpoint/management/tests/test_security_env.py 12 0 12
trustpoint/management/tests/test_security_features.py 21 0 21
trustpoint/management/tests/test_security_manager.py 22 0 22
trustpoint/management/tests/test_security_mixins.py 17 0 17
trustpoint/management/tests/test_urls.py 25 0 25
trustpoint/management/tests/test_util/test_output_wrapper.py 11 0 11
trustpoint/management/tests/test_util/test_startup_context.py 5 0 5
trustpoint/management/tests/test_util/test_startup_strategies.py 6 0 6
trustpoint/management/tests/test_views/test_audit_log.py 5 0 5
trustpoint/management/tests/test_views/test_backend_configuration.py 15 0 15
trustpoint/management/tests/test_views/test_backup.py 40 0 40
trustpoint/management/tests/test_views/test_help_support.py 10 0 10
trustpoint/management/tests/test_views/test_logging.py 32 0 32
trustpoint/management/tests/test_views/test_notifications.py 8 0 8
trustpoint/management/tests/test_views/test_organization_management.py 6 0 6
trustpoint/management/tests/test_views/test_pkcs11.py 4 0 4
trustpoint/management/tests/test_views/test_role_management.py 10 0 10
trustpoint/management/tests/test_views/test_settings.py 43 0 43
trustpoint/management/tests/test_views/test_tls.py 38 0 38
trustpoint/management/tests/test_views/test_tls_external_csr.py 41 0 41
trustpoint/management/tests/test_views/test_user_management.py 16 0 16
trustpoint/pki/tests/test_authorization.py 8 0 8
trustpoint/pki/tests/test_auto_gen_pki.py 9 0 9
trustpoint/pki/tests/test_auto_gen_pki_lifecycle.py 9 0 9
trustpoint/pki/tests/test_ca_rollover_model.py 18 0 18
trustpoint/pki/tests/test_ca_rollover_service.py 19 0 19
trustpoint/pki/tests/test_cert_profiles.py 42 0 42
trustpoint/pki/tests/test_crl.py 48 0 48
trustpoint/pki/tests/test_crl_cycle.py 12 0 12
trustpoint/pki/tests/test_crl_cycle_form.py 9 0 9
trustpoint/pki/tests/test_crl_cycle_signals.py 5 0 5
trustpoint/pki/tests/test_crl_cycle_views.py 4 0 4
trustpoint/pki/tests/test_crl_on_revocation.py 5 0 5
trustpoint/pki/tests/test_csr_issuance.py 14 0 14
trustpoint/pki/tests/test_external_csr.py 2 0 2
trustpoint/pki/tests/test_filters.py 16 0 16
trustpoint/pki/tests/test_filters_extended.py 25 0 25
trustpoint/pki/tests/test_forms_cert_profiles_extended.py 25 0 25
trustpoint/pki/tests/test_forms_extended.py 78 0 78
trustpoint/pki/tests/test_forms_issuing_cas_extended.py 47 0 47
trustpoint/pki/tests/test_forms_owner_credential_extended.py 27 0 27
trustpoint/pki/tests/test_forms_truststores.py 21 0 21
trustpoint/pki/tests/test_idevid_authenticator.py 6 0 6
trustpoint/pki/tests/test_idevid_verifier.py 10 0 10
trustpoint/pki/tests/test_issued_credential.py 12 0 12
trustpoint/pki/tests/test_issuing_ca_mixins.py 5 0 5
trustpoint/pki/tests/test_management_ca.py 12 0 12
trustpoint/pki/tests/test_models/test_ca_model_extended.py 34 0 34
trustpoint/pki/tests/test_models/test_certificate_extensions.py 17 0 17
trustpoint/pki/tests/test_models/test_certificate_model.py 2 0 2
trustpoint/pki/tests/test_models/test_certificate_values.py 17 0 17
trustpoint/pki/tests/test_models/test_credential.py 12 0 12
trustpoint/pki/tests/test_models/test_domain_model.py 1 0 1
trustpoint/pki/tests/test_models/test_domain_profiles.py 21 0 21
trustpoint/pki/tests/test_models/test_extension_models.py 90 0 90
trustpoint/pki/tests/test_models/test_issuing_ca_model.py 9 0 9
trustpoint/pki/tests/test_owner_credential_api_helpers.py 8 0 8
trustpoint/pki/tests/test_owner_credential_forms.py 30 0 30
trustpoint/pki/tests/test_owner_credential_models.py 13 0 13
trustpoint/pki/tests/test_owner_credential_views.py 48 0 48
trustpoint/pki/tests/test_rollover_import_ca.py 26 0 26
trustpoint/pki/tests/test_rollover_strategy_contracts.py 3 0 3
trustpoint/pki/tests/test_rollover_tasks.py 8 0 8
trustpoint/pki/tests/test_serializer_owner_credential.py 25 0 25
trustpoint/pki/tests/test_serializer_truststore.py 16 0 16
trustpoint/pki/tests/test_services.py 19 0 19
trustpoint/pki/tests/test_user_client_certificate.py 8 0 8
trustpoint/pki/tests/test_util_cert_req_converter.py 37 0 37
trustpoint/pki/tests/test_util_keys.py 13 0 13
trustpoint/pki/tests/test_util_keys_extended.py 9 0 9
trustpoint/pki/tests/test_util_x509.py 16 0 16
trustpoint/pki/tests/test_util_x509_managed_key_unwrap.py 2 0 2
trustpoint/pki/tests/test_views_ca.py 5 0 5
trustpoint/pki/tests/test_views_ca_rollover.py 19 0 19
trustpoint/pki/tests/test_views_cert_profiles.py 10 0 10
trustpoint/pki/tests/test_views_certificates.py 28 0 28
trustpoint/pki/tests/test_views_domains.py 27 0 27
trustpoint/pki/tests/test_views_issuing_ca_core.py 10 0 10
trustpoint/pki/tests/test_views_issuing_cas.py 2 0 2
trustpoint/pki/tests/test_views_truststores.py 21 0 21
trustpoint/pki/tests/test_views_truststores_extended.py 13 0 13
trustpoint/request/tests/test_authentication.py 13 0 13
trustpoint/request/tests/test_authentication_extended.py 73 0 73
trustpoint/request/tests/test_cmp_authorization.py 35 0 35
trustpoint/request/tests/test_cmp_transaction_pipeline.py 27 0 27
trustpoint/request/tests/test_message_responder.py 50 0 50
trustpoint/request/tests/test_mldsa_signing.py 7 0 7
trustpoint/request/tests/test_profile_validator.py 7 0 7
trustpoint/request/tests/test_request_components_additional.py 54 0 54
trustpoint/request/tests/test_workflow2_issuance.py 8 0 8
trustpoint/request/tests/test_workflows2_handler.py 17 0 17
trustpoint/rest_pki/tests/test_revoke.py 39 0 39
trustpoint/setup_wizard/tests/test_forms/test_fresh_install_backend_config_form.py 17 0 17
trustpoint/setup_wizard/tests/test_forms/test_fresh_install_forms.py 41 0 41
trustpoint/setup_wizard/tests/test_models.py 29 0 29
trustpoint/setup_wizard/tests/test_restore_backup.py 5 0 5
trustpoint/setup_wizard/tests/test_urls.py 6 0 6
trustpoint/setup_wizard/tests/test_views/test_fresh_install_views.py 11 0 11
trustpoint/setup_wizard/tests/test_views/test_utility_functions.py 9 0 9
trustpoint/signer/tests/test_api_views.py 22 0 22
trustpoint/signer/tests/test_forms.py 43 0 43
trustpoint/signer/tests/test_models.py 22 0 22
trustpoint/signer/tests/test_views.py 38 0 38
trustpoint/trustpoint/tests/test_forms.py 8 0 8
trustpoint/trustpoint/tests/test_middleware.py 13 0 13
trustpoint/trustpoint/tests/test_page_context.py 9 0 9
trustpoint/trustpoint/tests/test_views/test_bulk_delete.py 13 0 13
trustpoint/trustpoint/tests/test_views/test_context_data.py 4 0 4
trustpoint/trustpoint/tests/test_views/test_index_view.py 2 0 2
trustpoint/trustpoint/tests/test_views/test_list_in_detail_view.py 5 0 5
trustpoint/trustpoint/tests/test_views/test_logged_response.py 7 0 7
trustpoint/trustpoint/tests/test_views/test_sortable_is_active.py 2 0 2
trustpoint/trustpoint/tests/test_views/test_sortable_table.py 5 0 5
trustpoint/users/tests/test_certificate_authentication.py 20 0 20
trustpoint/users/tests/test_integration.py 12 0 12
trustpoint/users/tests/test_management_commands.py 1 0 1
trustpoint/users/tests/test_profile_delete.py 4 0 4
trustpoint/users/tests/test_service_accounts.py 40 0 40
trustpoint/users/tests/test_views.py 37 0 37
trustpoint/util/tests/test_email.py 6 0 6
trustpoint/util/tests/test_email_service.py 19 0 19
trustpoint/util/tests/test_encrypted_fields.py 18 0 18
trustpoint/util/tests/test_sftp.py 18 0 18
trustpoint/workflows2/tests/test_adapters.py 7 1 8
trustpoint/workflows2/tests/test_api_views.py 7 0 7
trustpoint/workflows2/tests/test_crash_recovery.py 3 0 3
trustpoint/workflows2/tests/test_dispatch.py 16 0 16
trustpoint/workflows2/tests/test_dispatch_signal.py 2 0 2
trustpoint/workflows2/tests/test_jobs.py 2 0 2
trustpoint/workflows2/tests/test_persistence.py 1 0 1
trustpoint/workflows2/tests/test_views_http.py 20 0 20
trustpoint/workflows2/tests/test_worker.py 2 0 2
trustpoint/workflows2/tests/test_workflow2_bundle_approval_reject.py 14 0 14
trustpoint/workflows2/tests/test_worker_heartbeat.py 1 0 1
trustpoint/agents/tests/test_agent.py 137 0 137
trustpoint/aoki/tests/test_apps.py 3 0 3
trustpoint/aoki/tests/test_management_commands.py 8 0 8
trustpoint/aoki/tests/test_urls.py 2 0 2
trustpoint/aoki/tests/test_views.py 14 0 14
trustpoint/cmp/tests/test_apps.py 3 0 3
trustpoint/cmp/tests/test_urls.py 9 0 9
trustpoint/cmp/tests/test_util.py 22 0 22
trustpoint/crypto/tests/test_backend.py 12 0 12
trustpoint/crypto/tests/test_backend_placeholders.py 2 0 2
trustpoint/crypto/tests/test_capability_probe.py 4 0 4
trustpoint/crypto/tests/test_config.py 9 0 9
trustpoint/crypto/tests/test_error_map.py 7 0 7
trustpoint/crypto/tests/test_mechanisms.py 11 0 11
trustpoint/crypto/tests/test_session_pool.py 1 0 1
trustpoint/crypto/tests/test_software_backend.py 16 0 16
trustpoint/discovery/tests/test_scanner.py 10 0 10
trustpoint/est/tests/test_est_interface.py 7 0 7
trustpoint/est/tests/test_urls.py 24 0 24
trustpoint/est/tests/test_views.py 33 0 33
trustpoint/help_pages/tests/test_cert_parameters.py 31 0 31
trustpoint/help_pages/tests/test_commands.py 35 0 35
trustpoint/help_pages/tests/test_credential_expiry.py 24 0 24
trustpoint/help_pages/tests/test_csrf_token_filter.py 5 0 5
trustpoint/help_pages/tests/test_help_section.py 11 0 11
trustpoint/help_pages/tests/test_no_onboarding_webui.py 25 0 25
trustpoint/home/tests/test_urls.py 5 0 5
trustpoint/management/tests/test_models/test_account_security.py 1 0 1
trustpoint/management/tests/test_pkcs11_aes_key.py 34 0 34
trustpoint/management/tests/test_pkcs11_private_key.py 23 0 23
trustpoint/request/tests/test_authentication_branches.py 46 0 46
trustpoint/request/tests/test_authorization.py 57 0 57
trustpoint/request/tests/test_certificate_request_processors.py 4 0 4
trustpoint/request/tests/test_cmp_authentication.py 2 0 2
trustpoint/request/tests/test_cmp_client.py 39 0 39
trustpoint/request/tests/test_cmp_message_builder.py 29 0 29
trustpoint/request/tests/test_cmp_remaining_branches.py 24 0 24
trustpoint/request/tests/test_cmp_workflow.py 3 0 3
trustpoint/request/tests/test_est_client.py 11 0 11
trustpoint/request/tests/test_est_workflow.py 2 0 2
trustpoint/request/tests/test_gds_push_service.py 70 0 70
trustpoint/request/tests/test_http_request_validator.py 44 0 44
trustpoint/request/tests/test_issue_cert_processor.py 20 0 20
trustpoint/request/tests/test_message_builder_base.py 13 0 13
trustpoint/request/tests/test_operation_processors_csr.py 36 0 36
trustpoint/request/tests/test_pki_message_parser.py 60 0 60
trustpoint/request/tests/test_request_context.py 10 0 10
trustpoint/request/tests/test_rest_message_parser.py 30 0 30
trustpoint/request/tests/test_sign_operation_processor.py 8 0 8
trustpoint/request/tests/test_template_vars.py 18 0 18
trustpoint/rest_pki/tests/test_views.py 4 0 4
trustpoint/setup_wizard/tests/test_operational_attach.py 15 0 15
trustpoint/setup_wizard/tests/test_operational_handoff.py 2 0 2
trustpoint/setup_wizard/tests/test_tls_credential.py 22 0 22
trustpoint/setup_wizard/tests/test_tls_credential_parser.py 33 0 33
trustpoint/shared/tests/test_templatetags.py 22 0 22
trustpoint/trustpoint/tests/test_asgi.py 1 0 1
trustpoint/trustpoint/tests/test_logger.py 4 0 4
trustpoint/trustpoint/tests/test_settings.py 25 0 25
trustpoint/trustpoint/tests/test_urls.py 8 0 8
trustpoint/trustpoint/tests/test_wsgi.py 1 0 1
trustpoint/users/tests/test_urls.py 11 0 11
trustpoint/util/tests/test_field.py 17 0 17
trustpoint/util/tests/test_mult_obj_views.py 15 0 15
trustpoint/util/tests/test_validation.py 21 0 21
trustpoint/workflows2/tests/test_certificate_integration.py 3 0 3
trustpoint/workflows2/tests/test_compiler.py 34 0 34
trustpoint/workflows2/tests/test_device_integration.py 4 0 4
trustpoint/workflows2/tests/test_eval.py 2 0 2
trustpoint/workflows2/tests/test_executor.py 4 0 4
trustpoint/crypto/tests/test_pkcs11_integration_keys.py 0 2 2
trustpoint/crypto/tests/test_pkcs11_integration_probe.py 0 2 2
trustpoint/crypto/tests/test_pkcs11_integration_signing_contract.py 0 4 4
trustpoint/crypto/tests/test_pkcs11_integration_verify.py 0 3 3
TOTAL 4567 12 4579

@FHatCSW
FHatCSW merged commit 8bd28b6 into main Oct 6, 2026
25 checks passed
@FHatCSW
FHatCSW deleted the keygen_tls branch October 6, 2026 07:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant