blob: 7b394950e82cc5d6f1a398db726ea234c75c75f5 [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
11* ``cryptography.c``: This package contains bindings to low level cryptographic
12 libraries. Our initial target will be OpenSSL.
13* ``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
15 ``cryptography.c``.
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``.