Danger
This is a “Hazardous Materials” module. You should ONLY use it if you’re 100% absolutely sure that you know what you’re doing because this module is full of land mines, dragons, and dinosaurs with laser guns.
OpenSSL binding¶
These are CFFI bindings to the OpenSSL C library. Cryptography supports OpenSSL version 1.0.1 and greater.
-
class
cryptography.hazmat.bindings.openssl.binding.
Binding
¶ This is the exposed API for the OpenSSL bindings. It has two public attributes:
-
ffi
¶ This is a
cffi.FFI
instance. It can be used to allocate and otherwise manipulate OpenSSL structures.
-
lib
¶ This is a
cffi
library. It can be used to call OpenSSL functions, and access constants.
-
Threading¶
cryptography
enables OpenSSLs thread safety facilities in two different
ways depending on the configuration of your system. Normally the locking
callbacks provided by your Python implementation specifically for OpenSSL will
be used. However, if you have linked cryptography
to a different version of
OpenSSL than that used by your Python implementation we enable an alternative
locking callback. This version is implemented in Python and so may result in
lower performance in some situations. In particular parallelism is reduced
because it has to acquire the GIL whenever any lock operations occur within
OpenSSL.