blob: b0bd3ae057a4e295a7acfc3382ec0e95100693ca [file] [log] [blame]
Alex Gaynoraf82d5e2013-10-29 17:07:24 -07001.. hazmat::
Alex Gaynor0f7f7812013-09-30 10:52:36 -07002
Alex Gaynor8f42fe42013-12-24 13:15:52 -08003OpenSSL Backend
4===============
Donald Stuffte51fb932013-10-27 17:26:17 -04005
Alex Stapletonc368ac22013-12-31 13:43:38 +00006The `OpenSSL`_ C library.
Alex Gaynor6d02e2d2013-09-30 10:37:22 -07007
Alex Gaynorf8796b12013-12-13 20:28:55 -08008.. data:: cryptography.hazmat.backends.openssl.backend
Alex Gaynor6d02e2d2013-09-30 10:37:22 -07009
Paul Kehrer2502ce52014-01-18 09:32:47 -060010 This is the exposed API for the OpenSSL backend. It has one public attribute.
11
Paul Kehrer58823612014-01-19 13:31:35 -060012 .. attribute:: name
Paul Kehrer2502ce52014-01-18 09:32:47 -060013
Paul Kehrer58823612014-01-19 13:31:35 -060014 Returns ``openssl``, the string name of this backend.
Alex Gaynor6d02e2d2013-09-30 10:37:22 -070015
Alex Stapletone68d73e2013-12-31 14:00:38 +000016Using your own OpenSSL on Linux
17-------------------------------
18
19Python links to OpenSSL for its own purposes and this can sometimes cause
20problems when you wish to use a different version of OpenSSL with cryptography.
21If you want to use cryptography with your own build of OpenSSL you will need to
22make sure that the build is configured correctly so that your version of
23OpenSSL doesn't conflict with Python's.
24
25The options you need to add allow the linker to identify every symbol correctly
26even when multiple versions of the library are linked into the same program. If
27you are using your distribution's source packages these will probably be
28patched in for you already, otherwise you'll need to use options something like
29this when configuring OpenSSL::
30
31 ./config -Wl,--version-script=openssl.ld -Wl,-Bsymbolic-functions -fPIC shared
32
33You'll also need to generate your own ``openssl.ld`` file. For example::
34
35 OPENSSL_1.0.1F_CUSTOM {
36 global:
37 *;
38 };
39
40You should replace the version string on the first line as appropriate for your
41build.
42
Alex Gaynor6d02e2d2013-09-30 10:37:22 -070043.. _`OpenSSL`: https://www.openssl.org/