est.views

Views for EST (Enrollment over Secure Transport) handling authentication and certificate issuance.

Module Contents

exception est.views.UsernamePasswordAuthenticationError[source]

Bases: Exception

Exception raised for username and password authentication failures.

est.views.THRESHOLD_LOGGER: int = 400[source]
class est.views.LoggedHttpResponse(content=b'', status=None, *args, **kwargs)[source]

Bases: django.http.HttpResponse, trustpoint.logger.LoggerMixin

Custom HttpResponse that logs and prints error messages automatically.

Parameters:
  • content (str | bytes)

  • status (int | None)

  • args (Any)

  • kwargs (Any)

class est.views.EstRequestedDomainExtractorMixin[source]

Mixin to extract the requested domain.

This mixin sets:
  • self.requested_domain: The DomainModel instance based on the ‘domain’ parameter.

  • self.issuing_ca_certificate: The CA certificate for the requested domain.

  • self.signature_suite: The signature suite derived from the CA certificate.

requested_domain: pki.models.domain.DomainModel | None[source]
extract_requested_domain(domain_name)[source]

Extracts the requested domain and sets the relevant certificate and signature suite.

Returns:

The response from the parent class’s dispatch method.

Parameters:

domain_name (str)

Return type:

tuple[pki.models.domain.DomainModel | None, LoggedHttpResponse | None]

class est.views.EstSimpleEnrollmentMixin[source]

Bases: trustpoint.logger.LoggerMixin

Mixin providing common logic for EST simple enrollment operations.

EVENT[source]
process_enrollment(request, domain_name, cert_profile)[source]

Process an EST simple enrollment request.

Parameters:
  • request (django.http.HttpRequest) – The HTTP request object.

  • domain_name (str | None) – The domain name (can be None for default).

  • cert_profile (str | None) – The certificate profile name (can be None for default).

Returns:

LoggedHttpResponse with the enrollment result.

Return type:

django.http.HttpResponse

class est.views.EstSimpleEnrollmentView(**kwargs)[source]

Bases: EstSimpleEnrollmentMixin, django.views.View

Handles simple EST (Enrollment over Secure Transport) enrollment requests.

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

Handle POST requests for simple enrollment with domain and cert profile in URL.

Parameters:
  • request (django.http.HttpRequest)

  • args (Any)

  • kwargs (Any)

Return type:

django.http.HttpResponse

class est.views.EstSimpleReEnrollmentView(**kwargs)[source]

Bases: trustpoint.logger.LoggerMixin, django.views.View

Handles simple EST (Enrollment over Secure Transport) reenrollment requests.

This view processes certificate signing requests (CSRs), authenticates the client using either Mutual TLS or username/password, validates the device, and issues the requested certificate based on the certificate template specified in the request.

EVENT[source]
post(request, *args, **kwargs)[source]

Handle POST requests for simple reenrollment.

Parameters:
  • request (django.http.HttpRequest)

  • args (Any)

  • kwargs (Any)

Return type:

django.http.HttpResponse

class est.views.EstCACertsView(**kwargs)[source]

Bases: EstRequestedDomainExtractorMixin, django.views.View, trustpoint.logger.LoggerMixin

View to handle the EST /cacerts endpoint.

Returns the CA certificate chain in a (simplified) PKCS#7 MIME format.

URL pattern should supply the ‘domain’ parameter (e.g., /cacerts/<domain>/)

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

Handle GET requests for the /cacerts endpoint.

This method retrieves the CA certificate chain and returns it in PKCS#7 MIME format.

Parameters:
  • request (django.http.HttpRequest)

  • args (Any)

  • kwargs (Any)

Return type:

LoggedHttpResponse

class est.views.EstCsrAttrsView(**kwargs)[source]

Bases: django.views.View, trustpoint.logger.LoggerMixin

View to handle the EST /csrattrs endpoint.

This endpoint is not supported and returns 404 Not Found.

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

Handle GET requests for the /csrattrs endpoint.

Parameters:
  • request (django.http.HttpRequest)

  • args (Any)

  • kwargs (Any)

Return type:

django.http.HttpResponseBase