pki.views.issuing_casΒΆ

Views for Issuing CA management.

Module ContentsΒΆ

class pki.views.issuing_cas.CmpContextParams[source]ΒΆ

Bases: NamedTuple

Parameters for creating a CMP certificate request context.

subject: cryptography.x509.Name[source]ΒΆ
public_key: cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey | cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey[source]ΒΆ
private_key: cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey | cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey[source]ΒΆ
recipient_name: str[source]ΒΆ
extensions: list[cryptography.x509.Extension[cryptography.x509.ExtensionType]] | None[source]ΒΆ
sender_kid: int | None[source]ΒΆ
class pki.views.issuing_cas.IssuingCaContextMixin[source]ΒΆ

Bases: trustpoint.views.base.ContextDataMixin

Mixin which adds context_data for the PKI -> Issuing CAs pages.

context_page_category = 'pki'[source]ΒΆ
context_page_name = 'cas'[source]ΒΆ
class pki.views.issuing_cas.KeylessCaContextMixin[source]ΒΆ

Bases: trustpoint.views.base.ContextDataMixin

Mixin which adds context_data for the PKI -> Keyless CAs pages.

context_page_category = 'pki'[source]ΒΆ
context_page_name = 'cas'[source]ΒΆ
class pki.views.issuing_cas.IssuingCaTableView[source]ΒΆ

Bases: IssuingCaContextMixin, trustpoint.views.base.SortableTableMixin[pki.models.CaModel], django.views.generic.list.ListView[pki.models.CaModel]

Issuing CA Table View.

model[source]ΒΆ
template_name = 'pki/issuing_cas/issuing_cas.html'[source]ΒΆ
context_object_name = 'issuing_ca'[source]ΒΆ
paginate_by = 50[source]ΒΆ
default_sort_param = 'created_at'[source]ΒΆ
get_queryset()[source]ΒΆ

Return only issuing CAs.

Return type:

django.db.models.QuerySet[pki.models.CaModel, pki.models.CaModel]

get_context_data(*args, **kwargs)[source]ΒΆ

Add sorting information to the context.

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

dict[str, Any]

class pki.views.issuing_cas.IssuingCaAddMethodSelectView[source]ΒΆ

Bases: IssuingCaContextMixin, django.views.generic.edit.FormView[pki.forms.IssuingCaAddMethodSelectForm]

View to select the method to add an Issuing CA.

template_name = 'pki/issuing_cas/add/method_select.html'[source]ΒΆ
form_class[source]ΒΆ
form_valid(form)[source]ΒΆ

Redirect to the next step based on the selected method.

Parameters:

form (pki.forms.IssuingCaAddMethodSelectForm)

Return type:

django.http.HttpResponseRedirect

class pki.views.issuing_cas.IssuingCaAddFileImportPkcs12View[source]ΒΆ

Bases: IssuingCaContextMixin, django.views.generic.edit.FormView[pki.forms.IssuingCaAddFileImportPkcs12Form]

View to import an Issuing CA from a PKCS12 file.

template_name = 'pki/issuing_cas/add/file_import.html'[source]ΒΆ
form_class[source]ΒΆ
success_url[source]ΒΆ
form_valid(form)[source]ΒΆ

Handle the case where the form is valid.

Parameters:

form (pki.forms.IssuingCaAddFileImportPkcs12Form)

Return type:

django.http.HttpResponse

class pki.views.issuing_cas.IssuingCaAddFileImportSeparateFilesView[source]ΒΆ

Bases: IssuingCaContextMixin, django.views.generic.edit.FormView[pki.forms.IssuingCaAddFileImportSeparateFilesForm]

View to import an Issuing CA from separate PEM files.

template_name = 'pki/issuing_cas/add/file_import.html'[source]ΒΆ
form_class[source]ΒΆ
success_url[source]ΒΆ
form_valid(form)[source]ΒΆ

Handle the case where the form is valid.

Parameters:

form (pki.forms.IssuingCaAddFileImportSeparateFilesForm)

Return type:

django.http.HttpResponse

class pki.views.issuing_cas.IssuingCaAddRequestEstView[source]ΒΆ

Bases: IssuingCaContextMixin, django.views.generic.edit.FormView[pki.forms.IssuingCaAddRequestEstForm]

View to request an Issuing CA certificate using EST.

form_class[source]ΒΆ
template_name = 'pki/issuing_cas/add/request_est.html'[source]ΒΆ
form_valid(form)[source]ΒΆ

Handle successful form submission.

Parameters:

form (pki.forms.IssuingCaAddRequestEstForm)

Return type:

django.http.HttpResponse

class pki.views.issuing_cas.IssuingCaTruststoreAssociationView[source]ΒΆ

Bases: IssuingCaContextMixin, django.views.generic.edit.FormView[pki.forms.IssuingCaTruststoreAssociationForm]

View for associating a truststore with an Issuing CA.

form_class[source]ΒΆ
template_name = 'pki/issuing_cas/truststore_association.html'[source]ΒΆ
get_ca()[source]ΒΆ

Get the CA from the URL parameters.

Return type:

pki.models.CaModel

get_form_kwargs()[source]ΒΆ

Add the CA instance to the form kwargs.

Return type:

dict[str, Any]

post(request, *args, **kwargs)[source]ΒΆ

Handle both association and import form submissions.

Parameters:
  • request (django.http.HttpRequest)

  • args (Any)

  • kwargs (Any)

Return type:

django.http.HttpResponse

get_context_data(**kwargs)[source]ΒΆ

Add the CA and import form to the context.

Parameters:

kwargs (Any)

Return type:

dict[str, Any]

form_valid(form)[source]ΒΆ

Handle successful form submission.

Parameters:

form (pki.forms.IssuingCaTruststoreAssociationForm)

Return type:

django.http.HttpResponse

class pki.views.issuing_cas.IssuingCaDefineCertContentMixin[source]ΒΆ

Bases: trustpoint.logger.LoggerMixin, IssuingCaContextMixin

Mixin for defining certificate content using a certificate profile.

ca_type_filter: pki.models.CaModel.CaTypeChoice[source]ΒΆ
redirect_url_name: str[source]ΒΆ
available_profiles: list[pki.models.cert_profile.CertificateProfileModel][source]ΒΆ
dispatch(request, *args, **kwargs)[source]ΒΆ

Dispatch the request, ensuring the CA and profile exist.

Parameters:
  • request (django.http.HttpRequest)

  • args (Any)

  • kwargs (Any)

Return type:

django.http.HttpResponse

get_form_kwargs()[source]ΒΆ

Get form kwargs, including the profile.

Return type:

dict[str, Any]

get_context_data(**kwargs)[source]ΒΆ

Add additional context data.

Parameters:

kwargs (Any)

Return type:

dict[str, Any]

form_invalid(form)[source]ΒΆ

Handle the case where the form is invalid.

Parameters:

form (pki.forms.CertificateIssuanceForm)

Return type:

django.http.HttpResponse

form_valid(form)[source]ΒΆ

Handle the case where the form is valid.

Parameters:

form (pki.forms.CertificateIssuanceForm)

Return type:

django.http.HttpResponse

get_success_message()[source]ΒΆ

Get the success message for the form submission.

Return type:

str

class pki.views.issuing_cas.IssuingCaDefineCertContentEstView[source]ΒΆ

Bases: IssuingCaDefineCertContentMixin, django.views.generic.edit.FormView[pki.forms.CertificateIssuanceForm]

View to define certificate content using the issuing_ca profile before requesting via EST.

form_class[source]ΒΆ
template_name = 'pki/issuing_cas/define_cert_content_est.html'[source]ΒΆ
ca_type_filter[source]ΒΆ
redirect_url_name = 'pki:issuing_cas-request-cert-est'[source]ΒΆ
get_success_message()[source]ΒΆ

Get the success message for the form submission.

Return type:

str

class pki.views.issuing_cas.RemoteRaAddRequestCmpMixin[source]ΒΆ

Bases: IssuingCaContextMixin

Mixin for CMP RA configuration views.

form_valid(form)[source]ΒΆ

Handle successful CMP RA configuration submission.

Parameters:

form (pki.forms.IssuingCaAddRequestCmpForm)

Return type:

django.http.HttpResponse

class pki.views.issuing_cas.IssuingCaAddRequestCmpView[source]ΒΆ

Bases: IssuingCaContextMixin, django.views.generic.edit.FormView[pki.forms.IssuingCaAddRequestCmpForm]

View to request an Issuing CA certificate using CMP.

form_class[source]ΒΆ
template_name = 'pki/issuing_cas/add/request_cmp.html'[source]ΒΆ
form_valid(form)[source]ΒΆ

Handle successful form submission.

Parameters:

form (pki.forms.IssuingCaAddRequestCmpForm)

Return type:

django.http.HttpResponse

class pki.views.issuing_cas.RemoteRaAddRequestCmpView[source]ΒΆ

Bases: RemoteRaAddRequestCmpMixin, django.views.generic.edit.FormView[pki.forms.IssuingCaAddRequestCmpForm]

View to configure a remote CMP RA (Registration Authority).

form_class[source]ΒΆ
template_name = 'pki/issuing_cas/add/cmp_ra.html'[source]ΒΆ
class pki.views.issuing_cas.RemoteRaAddRequestEstMixin[source]ΒΆ

Bases: IssuingCaContextMixin

Mixin for EST RA configuration views.

form_valid(form)[source]ΒΆ

Handle successful EST RA configuration submission.

Parameters:

form (pki.forms.IssuingCaAddRequestEstForm)

Return type:

django.http.HttpResponse

class pki.views.issuing_cas.RemoteRaAddRequestEstView[source]ΒΆ

Bases: RemoteRaAddRequestEstMixin, django.views.generic.edit.FormView[pki.forms.IssuingCaAddRequestEstForm]

View to configure a remote EST RA (Registration Authority).

form_class[source]ΒΆ
template_name = 'pki/issuing_cas/add/est_ra.html'[source]ΒΆ
class pki.views.issuing_cas.IssuingCaDefineCertContentCmpView[source]ΒΆ

Bases: IssuingCaDefineCertContentMixin, django.views.generic.edit.FormView[pki.forms.CertificateIssuanceForm]

View to define certificate content using the issuing_ca profile before requesting via CMP.

form_class[source]ΒΆ
template_name = 'pki/issuing_cas/define_cert_content_cmp.html'[source]ΒΆ
ca_type_filter[source]ΒΆ
redirect_url_name = 'pki:issuing_cas-request-cert-cmp'[source]ΒΆ
get_success_message()[source]ΒΆ

Get the success message for the form submission.

Return type:

str

class pki.views.issuing_cas.IssuingCaConfigView[source]ΒΆ

Bases: trustpoint.logger.LoggerMixin, IssuingCaContextMixin, django.views.generic.detail.DetailView[pki.models.CaModel]

View to display the details of an Issuing CA.

model[source]ΒΆ
success_url[source]ΒΆ
ignore_url[source]ΒΆ
template_name = 'pki/issuing_cas/config.html'[source]ΒΆ
context_object_name = 'issuing_ca'[source]ΒΆ
get_queryset()[source]ΒΆ

Return only issuing CAs.

Return type:

django.db.models.QuerySet[pki.models.CaModel, pki.models.CaModel]

get_context_data(**kwargs)[source]ΒΆ

Adds the issued certificates to the context.

Parameters:

**kwargs (Any) – Keyword arguments passed to super().get_context_data()

Returns:

The context to render the page.

Return type:

dict[str, Any]

get(request, *args, **kwargs)[source]ΒΆ

Handle GET requests.

Parameters:
  • request (django.http.HttpRequest)

  • args (Any)

  • kwargs (Any)

Return type:

django.http.HttpResponse

post(request, *_args, **_kwargs)[source]ΒΆ

Handle POST request to update CRL cycle settings.

Parameters:
  • request (django.http.HttpRequest)

  • _args (Any)

  • _kwargs (Any)

Return type:

django.http.HttpResponse

class pki.views.issuing_cas.IssuingCaRequestCertMixin[source]ΒΆ

Bases: trustpoint.logger.LoggerMixin, IssuingCaContextMixin

Mixin for certificate request views for EST and CMP protocols.

context_object_name = 'issuing_ca'[source]ΒΆ
ca_type_filter: pki.models.CaModel.CaTypeChoice[source]ΒΆ
redirect_url_name: str[source]ΒΆ
get_queryset()[source]ΒΆ

Return only CAs matching the protocol-specific type filter.

Return type:

django.db.models.QuerySet[pki.models.CaModel, pki.models.CaModel]

get_context_data(**kwargs)[source]ΒΆ

Add the issuing_ca certificate profile and cert content summary to the context.

Parameters:

kwargs (Any)

Return type:

dict[str, Any]

post(request, *_args, **_kwargs)[source]ΒΆ

Handle POST request to request certificate.

Parameters:
  • request (django.http.HttpRequest)

  • _args (Any)

  • _kwargs (Any)

Return type:

django.http.HttpResponse

get_not_implemented_message()[source]ΒΆ

Get the not implemented message for the specific protocol.

Return type:

str

class pki.views.issuing_cas.IssuingCaRequestCertEstView[source]ΒΆ

Bases: IssuingCaRequestCertMixin, django.views.generic.detail.DetailView[pki.models.CaModel]

View to display the EST certificate request page.

template_name = 'pki/issuing_cas/request_cert_est.html'[source]ΒΆ
ca_type_filter[source]ΒΆ
redirect_url_name = 'pki:issuing_cas-request-cert-est'[source]ΒΆ
get_not_implemented_message()[source]ΒΆ

Get the not implemented message for EST.

Return type:

str

post(request, *_args, **_kwargs)[source]ΒΆ

Handle POST request to request certificate via EST.

Parameters:
  • request (django.http.HttpRequest)

  • _args (Any)

  • _kwargs (Any)

Return type:

django.http.HttpResponse

class pki.views.issuing_cas.IssuingCaRequestCertCmpView[source]ΒΆ

Bases: IssuingCaRequestCertMixin, django.views.generic.detail.DetailView[pki.models.CaModel]

View to display the CMP certificate request page.

template_name = 'pki/issuing_cas/request_cert_cmp.html'[source]ΒΆ
ca_type_filter[source]ΒΆ
redirect_url_name = 'pki:issuing_cas-request-cert-cmp'[source]ΒΆ
get_not_implemented_message()[source]ΒΆ

Get the not implemented message for CMP.

Return type:

str

post(request, *_args, **_kwargs)[source]ΒΆ

Handle POST request to request certificate via CMP.

Parameters:
  • request (django.http.HttpRequest)

  • _args (Any)

  • _kwargs (Any)

Return type:

django.http.HttpResponse

class pki.views.issuing_cas.KeylessCaConfigView[source]ΒΆ

Bases: trustpoint.logger.LoggerMixin, KeylessCaContextMixin, django.views.generic.detail.DetailView[pki.models.CaModel]

View to display the details of a Keyless CA.

http_method_names = ('get',)[source]ΒΆ
model[source]ΒΆ
success_url[source]ΒΆ
ignore_url[source]ΒΆ
template_name = 'pki/keyless_cas/config.html'[source]ΒΆ
context_object_name = 'keyless_ca'[source]ΒΆ
get_queryset()[source]ΒΆ

Return only keyless CAs.

Return type:

django.db.models.QuerySet[pki.models.CaModel, pki.models.CaModel]

get_context_data(**kwargs)[source]ΒΆ

Add active CRL information to the context.

Parameters:

kwargs (Any)

Return type:

dict[str, Any]

class pki.views.issuing_cas.IssuedCertificatesListView[source]ΒΆ

Bases: IssuingCaContextMixin, django.views.generic.list.ListView[pki.models.CertificateModel]

View to display all certificates issued by a specific Issuing CA.

model[source]ΒΆ
template_name = 'pki/issuing_cas/issued_certificates.html'[source]ΒΆ
context_object_name = 'issued_certificates'[source]ΒΆ
get_queryset()[source]ΒΆ

Gets the required and filtered QuerySet.

Returns:

The filtered QuerySet.

Return type:

django.db.models.QuerySet[pki.models.CertificateModel, pki.models.CertificateModel]

get_context_data(**kwargs)[source]ΒΆ

Adds the issuing ca model object to the context.

Parameters:

**kwargs (Any) – Keyword arguments passed to super().get_context_data()

Returns:

The context to render the page.

Return type:

dict[str, Any]

class pki.views.issuing_cas.IssuingCaDetailView[source]ΒΆ

Bases: IssuingCaContextMixin, django.views.generic.detail.DetailView[pki.models.CaModel]

Detail view for an Issuing CA.

model[source]ΒΆ
success_url[source]ΒΆ
ignore_url[source]ΒΆ
template_name = 'pki/issuing_cas/details.html'[source]ΒΆ
context_object_name = 'issuing_ca'[source]ΒΆ
get_queryset()[source]ΒΆ

Return only issuing CAs (excluding RAs and keyless CAs).

Return type:

django.db.models.QuerySet[pki.models.CaModel, pki.models.CaModel]

class pki.views.issuing_cas.IssuingCaBulkDeleteConfirmView[source]ΒΆ

Bases: IssuingCaContextMixin, trustpoint.views.base.BulkDeleteView

View to confirm the deletion of multiple Issuing CAs.

model[source]ΒΆ
success_url[source]ΒΆ
ignore_url[source]ΒΆ
template_name = 'pki/issuing_cas/confirm_delete.html'[source]ΒΆ
context_object_name = 'issuing_cas'[source]ΒΆ
get(request, *args, **kwargs)[source]ΒΆ

Handle GET requests.

Parameters:
  • request (django.http.HttpRequest)

  • args (Any)

  • kwargs (Any)

Return type:

django.http.HttpResponse

get_queryset()[source]ΒΆ

Return only issuing CAs.

Return type:

django.db.models.QuerySet[pki.models.CaModel, pki.models.CaModel]

form_valid(form)[source]ΒΆ

Delete the selected Issuing CAs on valid form.

Parameters:

form (django.forms.Form)

Return type:

django.http.HttpResponse

class pki.views.issuing_cas.IssuingCaCrlGenerationView[source]ΒΆ

Bases: IssuingCaContextMixin, django.views.generic.detail.DetailView[pki.models.CaModel]

View to manually generate a CRL for an Issuing CA.

model[source]ΒΆ
success_url[source]ΒΆ
ignore_url[source]ΒΆ
context_object_name = 'issuing_ca'[source]ΒΆ
http_method_names = ('get',)[source]ΒΆ
get_queryset()[source]ΒΆ

Return only issuing CAs.

Return type:

django.db.models.QuerySet[pki.models.CaModel, pki.models.CaModel]

get(request, *args, **kwargs)[source]ΒΆ

Generate a CRL for the Issuing CA (should be POST!).

Parameters:
  • request (django.http.HttpRequest)

  • args (Any)

  • kwargs (Any)

Return type:

django.http.HttpResponse

class pki.views.issuing_cas.CrlDownloadView[source]ΒΆ

Bases: IssuingCaContextMixin, django.views.generic.detail.DetailView[pki.models.CaModel]

Unauthenticated view to download the certificate revocation list of any CA.

http_method_names = ('get',)[source]ΒΆ
model[source]ΒΆ
success_url[source]ΒΆ
ignore_url[source]ΒΆ
context_object_name = 'ca'[source]ΒΆ
get_queryset()[source]ΒΆ

Return all CAs.

Return type:

django.db.models.QuerySet[pki.models.CaModel, pki.models.CaModel]

get(request, *args, **kwargs)[source]ΒΆ

Download the CRL of the CA.

Parameters:
  • request (django.http.HttpRequest)

  • args (Any)

  • kwargs (Any)

Return type:

django.http.HttpResponse

class pki.views.issuing_cas.IssuingCaViewSet(**kwargs)[source]ΒΆ

Bases: trustpoint.logger.LoggerMixin, rest_framework.viewsets.ReadOnlyModelViewSet[pki.models.CaModel]

ViewSet for managing Issuing CA instances via REST API.

queryset[source]ΒΆ
serializer_class[source]ΒΆ
permission_classes[source]ΒΆ
filter_backends[source]ΒΆ
filterset_fields: ClassVar = ['unique_name', 'is_active'][source]ΒΆ
search_fields: ClassVar = ['unique_name', 'credential__certificate__common_name'][source]ΒΆ
ordering_fields: ClassVar = ['unique_name', 'created_at', 'updated_at'][source]ΒΆ
list(_request)[source]ΒΆ

API endpoint to get all Issuing CAs.

Parameters:

_request (rest_framework.request.Request)

Return type:

rest_framework.response.Response

retrieve(request)[source]ΒΆ

API endpoint to get a single Issuing CA by ID.

Parameters:

request (rest_framework.request.Request)

Return type:

rest_framework.response.Response

generate_crl(_request, pk=None, **_kwargs)[source]ΒΆ

Generate a new CRL for this Issuing CA.

Parameters:
  • _request (rest_framework.request.Request)

  • pk (int | None)

  • _kwargs (Any)

Return type:

rest_framework.response.Response

crl(request, pk=None, **_kwargs)[source]ΒΆ

Download the CRL for this Issuing CA.

Parameters:
  • request (rest_framework.request.Request)

  • pk (int | None)

  • _kwargs (Any)

Return type:

rest_framework.response.Response | django.http.HttpResponse