aboutsummaryrefslogtreecommitdiffstats
path: root/docs/architecture.rst
blob: 7b394950e82cc5d6f1a398db726ea234c75c75f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Architecture
============

.. warning::

    Because ``cryptography`` is so young, much of this document is
    aspirational, rather than documentation.

``cryptography`` has three different layers:

* ``cryptography.c``: This package contains bindings to low level cryptographic
  libraries. Our initial target will be OpenSSL.
* ``cryptography.primitives``: This packages contains low level algorithms,
  things like ``AES`` or ``SHA1``. This is implemented on top of
  ``cryptography.c``.
* ``cryptography``: This package contains higher level recipes, for example
  "encrypt and then MAC". This is implemented on top of
  ``cryptography.primitives``.