Skip to main content

Remote CA certificate service for Swarmauri

Project description

Swarmauri Logo

PyPI - Downloads Hits PyPI - Python Version PyPI - License PyPI - swarmauri_certs_remote_ca


Swarmauri Remote CA Cert Service

A certificate enrollment bridge implementing the ICertService interface and forwarding CSRs to a remote Certificate Authority.

Features

  • Posts CSRs to a remote endpoint and returns issued certificates.
  • Minimal parsing helpers for certificate snippets.
  • Designed around X.509 as defined in RFC 5280 and Enrollment over Secure Transport (EST) in RFC 7030.

Installation

Install the package with your preferred Python packaging tool:

pip install swarmauri_certs_remote_ca
poetry add swarmauri_certs_remote_ca
uv pip install swarmauri_certs_remote_ca

Configuration

RemoteCaCertService accepts the following arguments:

  • endpoint – Base URL of the remote CA sign endpoint.
  • auth – Optional mapping of HTTP headers or an httpx.Auth instance for authentication.
  • timeout_s – HTTP timeout in seconds (default 10).
  • ca_chain – Optional sequence of cached trust anchors exposed during verification and parsing.

Entry Point

The service registers under the swarmauri.certs entry point as RemoteCaCertService.

Usage

The service is asynchronous and expects an existing CSR (certificate signing request) in PEM or DER form. Configure the remote CA endpoint and submit the CSR to receive the issued certificate:

import asyncio
import base64
import json

import httpx

from swarmauri_certs_remote_ca import RemoteCaCertService

csr = b"example-csr"
cert_bytes = b"example-cert"


async def main() -> None:
    async def handler(request: httpx.Request) -> httpx.Response:
        data = json.loads(request.content)
        assert base64.b64decode(data["csr"]) == csr
        return httpx.Response(
            200,
            json={"cert": base64.b64encode(cert_bytes).decode("ascii")},
        )

    svc = RemoteCaCertService("https://ca.example/sign")

    async with httpx.AsyncClient(transport=httpx.MockTransport(handler)) as client:
        svc._client = client  # Inject mock transport for the example.
        certificate = await svc.sign_cert(csr, {"kind": "dummy"})
        print(certificate)


asyncio.run(main())

The example above mocks a CA using httpx.MockTransport. In real scenarios RemoteCaCertService posts the CSR to the configured endpoint and returns the certificate bytes supplied by the remote CA.

When used against a real service, provide any required authentication headers through the auth argument and override request or response formats via the opts parameter of sign_cert.

Want to help?

If you want to contribute to swarmauri-sdk, read up on our guidelines for contributing that will help you get started.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

swarmauri_certs_remote_ca-0.3.0.dev37.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

swarmauri_certs_remote_ca-0.3.0.dev37-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file swarmauri_certs_remote_ca-0.3.0.dev37.tar.gz.

File metadata

  • Download URL: swarmauri_certs_remote_ca-0.3.0.dev37.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for swarmauri_certs_remote_ca-0.3.0.dev37.tar.gz
Algorithm Hash digest
SHA256 09e53f52b5d2b1d9ce33c340a903e2e962316a0f8ae1db34e1e80745bb7863c6
MD5 a945545b773b79a4427dde6986fd831d
BLAKE2b-256 93602d51b3e4801e9dc89c8aaa56f0c45a6a7a5d1f1efc4c83d6d95ed5d16e3b

See more details on using hashes here.

File details

Details for the file swarmauri_certs_remote_ca-0.3.0.dev37-py3-none-any.whl.

File metadata

  • Download URL: swarmauri_certs_remote_ca-0.3.0.dev37-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for swarmauri_certs_remote_ca-0.3.0.dev37-py3-none-any.whl
Algorithm Hash digest
SHA256 d6363791280cd7e7077b78e23272574e22a2982cfbb60f525223642339cfd31d
MD5 cf4cb85c4c16581d2dda22fc9ffdabc5
BLAKE2b-256 01f818437af50148e8392859388d2029ba9f2db76fd0d4032afc45f9ba3e8354

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page