<commit_before>Frequently asked questions
==========================

How does ``cryptography`` compare to NaCl (Networking and Cryptography Library)?
--------------------------------------------------------------------------------

While ``cryptography`` and `NaCl`_ both share the goal of making cryptography
easier, and safer, to use for developers, ``cryptography`` is designed to be a
general purpose library, interoperable with existing systems, while NaCl
features a collection of hand selected algorithms.

``cryptography``'s :ref:`recipes <cryptography-layout>` layer has similar goals
to NaCl.

If you prefer NaCl's design, we highly recommend `PyNaCl`_.

When I try to use ``cryptography`` on Windows I get a ``cffi.ffiplatform.VerificationError``
--------------------------------------------------------------------------------------------

This error looks something like:

.. code-block:: console

    cffi.ffiplatform.VerificationError: importing '<some_path>.pyd': DLL load failed:

It typically occurs on Windows when you have not installed OpenSSL. Download
a `pre-compiled binary`_ to resolve this issue.

.. _`NaCl`: http://nacl.cr.yp.to/
.. _`PyNaCl`: https://pynacl.readthedocs.org
.. _`pre-compiled binary`: https://www.openssl.org/related/binaries.html
<commit_msg>add information for windows users about selecting the right arch<commit_after>Frequently asked questions
==========================

How does ``cryptography`` compare to NaCl (Networking and Cryptography Library)?
--------------------------------------------------------------------------------

While ``cryptography`` and `NaCl`_ both share the goal of making cryptography
easier, and safer, to use for developers, ``cryptography`` is designed to be a
general purpose library, interoperable with existing systems, while NaCl
features a collection of hand selected algorithms.

``cryptography``'s :ref:`recipes <cryptography-layout>` layer has similar goals
to NaCl.

If you prefer NaCl's design, we highly recommend `PyNaCl`_.

When I try to use ``cryptography`` on Windows I get a ``cffi.ffiplatform.VerificationError``
--------------------------------------------------------------------------------------------

This error looks something like:

.. code-block:: console

    cffi.ffiplatform.VerificationError: importing '<some_path>.pyd': DLL load failed:

It typically occurs on Windows when you have not installed OpenSSL. Download
a `pre-compiled binary`_ to resolve the issue. To select the right architecture
(32-bit or 64-bit) open a command prompt and start your Python interpreter.

If it is 32-bit it will say ``32 bit`` as well as ``Intel`` in the output:

.. code-block:: console

    Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on win32

If it is 64-bit you will see ``64 bit`` as well as ``AMD64``:

.. code-block:: console

    Python 2.7.6 (default, Nov 10 2013, 19:24:24) [MSC v.1500 64 bit (AMD64)] on win32

Note that for both 32-bit and 64-bit it will say ``win32``, but other data
in the string may vary based on your version of Python.

.. _`NaCl`: http://nacl.cr.yp.to/
.. _`PyNaCl`: https://pynacl.readthedocs.org
.. _`pre-compiled binary`: https://www.openssl.org/related/binaries.html

{'fraction_non_alphanumeric': 0.212430426716141, 'fraction_numerical': 0.021026592455163882, 'mean_word_length': 2.7703962703962706, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 4, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3652871', 'n_tokens_mistral': 942, 'n_tokens_neox': 830, 'n_words': 356}