Skip to main content

CIRISVerify Python Bindings

Python bindings for CIRISVerify, the hardware-rooted license verification module for the CIRIS ecosystem.

Installation

pip install ciris-verify

Note: The CIRISVerify binary must be installed separately. See the CIRISVerify documentation for installation instructions.

Quick Start

import os
from ciris_verify import CIRISVerify, LicenseStatus

# Initialize the verifier
verifier = CIRISVerify()

# Get license status with a fresh nonce
status = await verifier.get_license_status(
    challenge_nonce=os.urandom(32)
)

# Check if professional capabilities are available
if status.allows_licensed_operation():
    print("Professional license verified!")
    print(f"Tier: {status.license.tier}")
    print(f"Capabilities: {status.license.capabilities}")
else:
    print("Running in community mode")

# IMPORTANT: Always display the mandatory disclosure
print(status.mandatory_disclosure.text)

Mandatory Disclosure

Per the CIRIS ecosystem rules, agents MUST display the mandatory_disclosure.text to users. This ensures transparency about the agent's capabilities and licensing status.

# The disclosure MUST be shown to users
disclosure = status.mandatory_disclosure
print(f"[{disclosure.severity.upper()}] {disclosure.text}")

Capability Checking

For frequent capability checks, use the fast path:

result = await verifier.check_capability("medical:diagnosis")
if result.allowed:
    # Capability is available
    pass
else:
    print(f"Capability denied: {result.reason}")

Testing

For testing without the actual binary, use MockCIRISVerify:

from ciris_verify import MockCIRISVerify, LicenseStatus

# Create a mock that returns community mode
verifier = MockCIRISVerify(
    mock_status=LicenseStatus.UNLICENSED_COMMUNITY
)

# Use exactly like the real client
status = await verifier.get_license_status(os.urandom(32))
assert status.status == LicenseStatus.UNLICENSED_COMMUNITY

Error Handling

from ciris_verify import (
    CIRISVerifyError,
    BinaryNotFoundError,
    BinaryTamperedError,
    VerificationFailedError,
)

try:
    verifier = CIRISVerify()
    status = await verifier.get_license_status(os.urandom(32))
except BinaryNotFoundError as e:
    # Binary not installed
    print(f"CIRISVerify not found: {e.path}")
except BinaryTamperedError:
    # CRITICAL: Binary has been modified
    # Halt all operations immediately
    raise SystemExit("SECURITY ALERT: Binary integrity compromised")
except VerificationFailedError as e:
    # Verification failed - operate in restricted mode
    print(f"Verification failed: {e}")

License Status Codes

Status Code Description
LICENSED_PROFESSIONAL 100 Full professional license active
LICENSED_PROFESSIONAL_GRACE 101 License valid, in offline grace period
UNLICENSED_COMMUNITY 200 Community mode, no professional capabilities
RESTRICTED_* 300-399 Restricted mode due to verification issues
ERROR_* 400-499 Error states (revoked, expired, etc.)
LOCKDOWN_* 500+ Critical security failure, halt operations

Thread Safety

The client is thread-safe and can be used from multiple threads or async tasks concurrently.

License

AGPL-3.0-or-later - See LICENSE file in the CIRISVerify repository.

Download files

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

Source Distribution

ciris_verify-8.7.0.tar.gz (79.2 kB view details)

Uploaded Source

Built Distributions

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

ciris_verify-8.7.0-py3-none-win_amd64.whl (6.6 MB view details)

Uploaded Python 3Windows x86-64

ciris_verify-8.7.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

ciris_verify-8.7.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

ciris_verify-8.7.0-py3-none-macosx_11_0_arm64.whl (5.5 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

ciris_verify-8.7.0-py3-none-macosx_10_12_x86_64.whl (6.0 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file ciris_verify-8.7.0.tar.gz.

File metadata

  • Download URL: ciris_verify-8.7.0.tar.gz
  • Upload date:
  • Size: 79.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ciris_verify-8.7.0.tar.gz
Algorithm Hash digest
SHA256 65fba3fc6ede8d7cc24c57835a1c51e0846b249af0d4c096a32358eff004dcb7
MD5 0435767ba4f22ecf864cc695a44d67df
BLAKE2b-256 3c90dc97ba47ef99a01062dea0655d4ed5bac8d0ddff3f2a0ad95d62f6e6145b

See more details on using hashes here.

Provenance

The following attestation bundles were made for ciris_verify-8.7.0.tar.gz:

Publisher: release.yml on CIRISAI/CIRISVerify

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ciris_verify-8.7.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: ciris_verify-8.7.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 6.6 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ciris_verify-8.7.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 4db6ee7b14017480fbc817864079b8fa23131d5413b8039c7faef9cdd4885394
MD5 bd4bb39ddbb11ddec714b28239ffce45
BLAKE2b-256 854fe23a06983e2500743d22cef11a2953467ad32fc046b2cc40fc5d71cc8269

See more details on using hashes here.

Provenance

The following attestation bundles were made for ciris_verify-8.7.0-py3-none-win_amd64.whl:

Publisher: release.yml on CIRISAI/CIRISVerify

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ciris_verify-8.7.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ciris_verify-8.7.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 75f6ebad82a659a563b65d9e7a01b987c5322143e2a2eaee61ac5710420f213c
MD5 8a245612072fa7cd44c743afa99fcd9c
BLAKE2b-256 cf76ffb1c9122ee51df5ab834a1ed95b714fdf2c33acacd60fc0e2175a8935b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for ciris_verify-8.7.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on CIRISAI/CIRISVerify

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ciris_verify-8.7.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ciris_verify-8.7.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cd336cd0ad23d3097f7d121c87fce9176107d1a072c22f78c88bae74476a3140
MD5 bb6aa16e684901f5236e8d4e2f8a0ed5
BLAKE2b-256 c240276e3cf063e5eea0f5be3fa0cf114cc92e5fc96c4ac261c59ff65a0cfa0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ciris_verify-8.7.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on CIRISAI/CIRISVerify

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ciris_verify-8.7.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ciris_verify-8.7.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 56538933263e10e8df1044145bfb2078783f83d700250b39efce338ad21acb71
MD5 63d425e83afd5d7c02e6de902b3bb169
BLAKE2b-256 84e123a39266537ad2b5653b875cac3e7b3cc3511b265e0f8a8065981d91bd20

See more details on using hashes here.

Provenance

The following attestation bundles were made for ciris_verify-8.7.0-py3-none-macosx_11_0_arm64.whl:

Publisher: release.yml on CIRISAI/CIRISVerify

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ciris_verify-8.7.0-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ciris_verify-8.7.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f662cf82537bc8bab2d1777781fc0cfdd94bd5033b51e9a4a783ca3b776aeafc
MD5 c8684b9bce72243fe1ca90fb64384beb
BLAKE2b-256 a24c52dd00602feed0cf2c93cf2ac1dc2f21019d0c51b3f89df4c5563e430ccf

See more details on using hashes here.

Provenance

The following attestation bundles were made for ciris_verify-8.7.0-py3-none-macosx_10_12_x86_64.whl:

Publisher: release.yml on CIRISAI/CIRISVerify

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

8.7.0

Supported by

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