diff options
author | Jack Lloyd <[email protected]> | 2018-05-22 08:57:58 -0400 |
---|---|---|
committer | Jack Lloyd <[email protected]> | 2018-05-22 08:57:58 -0400 |
commit | 9535a0d01d3491b1383c48554e67e06bf9803451 (patch) | |
tree | 7b37a4c00440f230731cddd4886c4d3e7a34ef99 /doc/manual | |
parent | 8c84e39d31ab3147ce35969a23ea03f6ef841986 (diff) |
Add list of available KDFs
Diffstat (limited to 'doc/manual')
-rw-r--r-- | doc/manual/kdf.rst | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/doc/manual/kdf.rst b/doc/manual/kdf.rst index e5d6a99d7..984a25f15 100644 --- a/doc/manual/kdf.rst +++ b/doc/manual/kdf.rst @@ -35,3 +35,72 @@ You can create a :cpp:class:`KDF` using .. cpp:function:: KDF* get_kdf(const std::string& algo_spec) + +Available KDFs +------------------- + +Botan includes many different KDFs simply because different protocols and +standards have created subtly different approaches to this problem. For new +code, use HKDF which is conservative, well studied, widely implemented and NIST +approved. + +HKDF +~~~~~ + +Defined in RFC 5869, HKDF uses HMAC to process inputs. Also available +are variants HKDF-Extract and HKDF-Expand. HKDF is the combined +Extract+Expand operation. Use the combined HKDF unless you need +compatability with some other system. + +Available if ``BOTAN_HAS_HKDF`` is defined. + +KDF2 +~~~~~ + +KDF2 comes from IEEE 1363. It uses a hash function. + +Available if ``BOTAN_HAS_KDF2`` is defined. + +KDF1-18033 +~~~~~~~~~~~~ + +KDF1 from ISO 18033-2. Very similar to (but incompatible with) KDF2. + +Available if ``BOTAN_HAS_KDF1_18033`` is defined. + +KDF1 +~~~~~~ + +KDF1 from IEEE 1363. It can only produce an output at most the length +of the hash function used. + +Available if ``BOTAN_HAS_KDF1`` is defined. + +X9.42 PRF +~~~~~~~~~~ + +A KDF from ANSI X9.42. Sometimes used for Diffie-Hellman. + +Available if ``BOTAN_HAS_X942_PRF`` is defined. + +SP800-108 +~~~~~~~~~~ + +KDFs from NIST SP 800-108. Variants include "SP800-108-Counter", +"SP800-108-Feedback" and "SP800-108-Pipeline". + +Available if ``BOTAN_HAS_SP800_108`` is defined. + +SP800-56A +~~~~~~~~~~ + +KDF from NIST SP 800-56A. + +Available if ``BOTAN_HAS_SP800_56A`` is defined. + +SP800-56C +~~~~~~~~~~ + +KDF from NIST SP 800-56C. + +Available if ``BOTAN_HAS_SP800_56C`` is defined. |