Metadata-Version: 2.1
Name: certomancer
Version: 0.2.0
Summary: PKI testing tool
Home-page: https://github.com/MatthiasValvekens/certomancer
Author: Matthias Valvekens
Author-email: dev@mvalvekens.be
License: MIT
Keywords: pki testing
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Security :: Cryptography
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Description-Content-Type: text/markdown
Requires-Dist: asn1crypto (>=1.4.0)
Requires-Dist: click (>=7.1.2)
Requires-Dist: oscrypto (>=1.2.1)
Requires-Dist: pyyaml (>=5.4.1)
Requires-Dist: python-dateutil (>=2.8.1)
Requires-Dist: tzlocal (>=2.1)
Provides-Extra: pkcs12
Requires-Dist: cryptography (>=3.4.7) ; extra == 'pkcs12'
Provides-Extra: requests-mocker
Requires-Dist: requests-mock (>=1.8.0) ; extra == 'requests-mocker'
Provides-Extra: web-api
Requires-Dist: Werkzeug (>=1.0.1) ; extra == 'web-api'
Requires-Dist: Jinja2 (>=2.11.3) ; extra == 'web-api'

# Certomancer

<p align="center">
  <img width="300" height="300" src="images/certomancer.svg" alt="logo">
</p>

![status](https://github.com/MatthiasValvekens/certomancer/workflows/pytest/badge.svg)
[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/MatthiasValvekens/certomancer.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/MatthiasValvekens/certomancer/context:python)

Quickly construct, mock & deploy PKI test configurations using simple declarative configuration.
Includes CRL, OCSP and time stamping service provisioning.

Install with `python setup.py install`, and see `example.yml` for an example config file.
The CLI comes with a built-in help function (although it isn't very helpful at this stage).


## Features

 * Declarative, YAML-based configuration.
 * Minimal input validation, so you can generate deliberately broken certificates if you need to.
 * ``requests-mock`` integration.
 * Ultra-lightweight WSGI application to serve CRLs, OCSP responses, timestamps and more. This
   component requires Werkzeug, and optionally Jinja2 for the index view. There are no external
   dependencies.
 * Plugin framework to support arbitrary certificate / CRL extensions and additional services.
   These plugins are compatible with the WSGI and ``requests-mock`` integrations without
   additional configuration.
 * For particularly complicated scenarios where the plugin API or existing integrations aren't
   sufficient, it is very easy to use Certomancer as a library, or wrap it as a component
   of some other WSGI application.
 * With [pyca/cryptography](https://github.com/pyca/cryptography) installed, Certomancer can also
   output PKCS#12 files if your tests require those.

## Non-features

This is a testing tool for developers that write software to interface with public-key
infrastructure. **It is *NOT* intended to be used to manage production PKI deployments.**
Certomancer is very much garbage-in garbage-out, and happily ignores validation & 
security best practices in favour of allowing you to abuse your codebase in the worst possible ways.
Consider yourself warned.


## Documentation

 * [Configuration](docs/config.md)
 * [CLI commands](docs/cli.md)
 * [Plugin API](docs/plugins.md)

