est.views

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

Attributes

Exceptions

UsernamePasswordAuthenticationError

Exception raised for username and password authentication failures.

Classes

LoggedHttpResponse

Custom HttpResponse that logs and prints error messages automatically.

EstRequestedDomainExtractorMixin

Mixin to extract the requested domain.

EstSimpleEnrollmentMixin

Mixin providing common logic for EST simple enrollment operations.

EstSimpleEnrollmentView

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

EstSimpleEnrollmentDefaultView

Handles simple EST enrollment requests without requiring domain or cert profile in URL.

EstSimpleReEnrollmentView

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

EstCACertsView

View to handle the EST /cacerts endpoint.

EstCsrAttrsView

View to handle the EST /csrattrs endpoint.

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.EstSimpleEnrollmentDefaultView(**kwargs)[source]

Bases: EstSimpleEnrollmentMixin, django.views.View

Handles simple EST enrollment requests without requiring domain or cert profile in URL.

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

Handle POST requests for simple enrollment with optional domain/cert profile.

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