blob: 0a9550c0592f24001bce78c98caf2a907b81935d [file] [log] [blame]
Alex Gaynor1abfac72013-08-07 12:59:04 -07001Architecture
2============
3
4.. warning::
5
6 Because ``cryptography`` is so young, much of this document is
7 aspirational, rather than documentation.
8
9``cryptography`` has three different layers:
10
Hynek Schlawack5e7926f2013-08-08 08:46:44 +020011* ``cryptography.bindings``: This package contains bindings to low level
12 cryptographic libraries. Our initial target will be OpenSSL.
Alex Gaynor1abfac72013-08-07 12:59:04 -070013* ``cryptography.primitives``: This packages contains low level algorithms,
Alex Gaynor9e3c2502013-08-07 12:59:44 -070014 things like ``AES`` or ``SHA1``. This is implemented on top of
Hynek Schlawack5e7926f2013-08-08 08:46:44 +020015 ``cryptography.bindings``.
Alex Gaynor1abfac72013-08-07 12:59:04 -070016* ``cryptography``: This package contains higher level recipes, for example
Alex Gaynor9e3c2502013-08-07 12:59:44 -070017 "encrypt and then MAC". This is implemented on top of
18 ``cryptography.primitives``.