API stability ============= From its first release, ``cryptography`` will have a strong API stability policy. What does this policy cover? ---------------------------- This policy includes any API or behavior that is documented in this documentation. What does "stable" mean? ------------------------ * Public APIs will not be removed or renamed without providing a compatibility alias. * The behavior of existing APIs will not change. What doesn't this policy cover? ------------------------------- * We may add new features, things like the result of ``dir(obj))`` or the contents of ``obj.__dict__`` may change. * Objects are not guaranteed to be pickleable, and pickled objects from one version of ``cryptography`` may not be loadable in future versions. * Development versions of ``cryptography``. Before a feature is in a release, it is not covered by this policy and may change. Security ~~~~~~~~ One exception to our API stability policy is for security. We will violate this policy as necessary in order to resolve a security issue or harden ``cryptography`` against a possible attack. Deprecation ----------- From time to time we will want to change the behavior of an API or remove it entirely. In that case, here's how the process will work: * In ``cryptography X.Y`` the feature exists. * In ``cryptography X.Y+1`` using that feature will emit a ``PendingDeprecationWarning``. * In ``cryptography X.Y+2`` using that feature will emit a ``DeprecationWarning``. * In ``cryptography X.Y+3`` the feature will be removed or changed. In short, code that runs without warnings will always continue to work for a period of two releases. mail/cryptography/tree/docs/development/custom-vectors/idea.rst?id=cd59bd275ecc484b1662c86ae9ef0a64eb17d00f'>treecommitdiffstats
path: root/docs/development/custom-vectors/idea.rst
blob: 758a108ec48ae5de5d16037770d4876f7c2aa27b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
IDEA vector creation
=====================

This page documents the code that was used to generate the IDEA CBC, CFB, and
OFB test vectors as well as the code used to verify them against another
implementation. The vectors were generated using OpenSSL and verified with
`Botan`_.

Creation
--------

``cryptography`` was modified to support IDEA in CBC, CFB, and OFB modes. Then
the following python script was run to generate the vector files.

.. literalinclude:: /development/custom-vectors/idea/generate_idea.py

Download link: :download:`generate_idea.py
</development/custom-vectors/idea/generate_idea.py>`


Verification
------------

The following Python code was used to verify the vectors using the `Botan`_
project's Python bindings.

.. literalinclude:: /development/custom-vectors/idea/verify_idea.py

Download link: :download:`verify_idea.py
</development/custom-vectors/idea/verify_idea.py>`

.. _`Botan`: https://botan.randombit.net