|
1 | 1 | # HMAC-based Key Derivation Function (HKDF) RFC 5869
|
2 | 2 |
|
3 |
| -[Hashed Message Authentication Code](https://en.wikipedia.org/wiki/Hash-based_message_authentication_code) (HMAC)-based key derivation function ([HKDF](https://en.wikipedia.org/wiki/HKDF)), can be used as a building block in various protocols and applications. The [key derivation function](https://en.wikipedia.org/wiki/Key_derivation_function) (KDF) is intended to support a wide range of applications and requirements, and is conservative in its use of [cryptographic hash functions](https://en.wikipedia.org/wiki/Cryptographic_hash_function). It is likely to have [better security properties](https://crypto.stackexchange.com/questions/13232/how-is-hkdf-expand-better-than-a-simple-hash) than KDF's based on just a hash functions alone. See [RFC 5869](https://tools.ietf.org/html/rfc5869) for full detail. HKDF specifies a version of the [NIST Special Publication 800-56C](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Cr1.pdf) "Two-Step Key Derivation" scheme. |
| 3 | +[Hashed Message Authentication Code](https://en.wikipedia.org/wiki/Hash-based_message_authentication_code) (HMAC)-based |
| 4 | +key derivation function ([HKDF](https://en.wikipedia.org/wiki/HKDF)), can be used as a building block in various |
| 5 | +protocols and applications. The [key derivation function](https://en.wikipedia.org/wiki/Key_derivation_function) (KDF) |
| 6 | +is intended to support a wide range of applications and requirements, and is conservative in its use |
| 7 | +of [cryptographic hash functions](https://en.wikipedia.org/wiki/Cryptographic_hash_function). It is likely to |
| 8 | +have [better security properties](https://crypto.stackexchange.com/questions/13232/how-is-hkdf-expand-better-than-a-simple-hash) |
| 9 | +than KDF's based on just a hash functions alone. See [RFC 5869](https://tools.ietf.org/html/rfc5869) for full detail. |
| 10 | +HKDF specifies a version of |
| 11 | +the [NIST Special Publication 800-56C](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Cr1.pdf) " |
| 12 | +Two-Step Key Derivation" scheme. |
4 | 13 |
|
5 | 14 | [](https://bintray.com/patrickfav/maven/hkdf/_latestVersion)
|
6 | 15 | [](https://travis-ci.com/patrickfav/hkdf)
|
7 | 16 | [](https://www.javadoc.io/doc/at.favre.lib/hkdf)
|
8 |
| -[](https://coveralls.io/github/patrickfav/hkdf?branch=master) [](https://codeclimate.com/github/patrickfav/hkdf/maintainability) |
| 17 | +[](https://codecov.io/gh/patrickfav/bcrypt) [](https://codeclimate.com/github/patrickfav/hkdf/maintainability) |
9 | 18 |
|
10 |
| -This is a standalone, lightweight, simple to use, fully tested and stable implementation in Java. The code is compiled with target [Java 7](https://en.wikipedia.org/wiki/Java_version_history#Java_SE_7) to be compatible with most [_Android_](https://www.android.com/) versions as well as normal Java applications. It passes all test vectors from [RFC 5869 Appendix A.](https://tools.ietf.org/html/rfc5869#appendix-A) |
| 19 | +This is a standalone, lightweight, simple to use, fully tested and stable implementation in Java. The code is compiled |
| 20 | +with target [Java 7](https://en.wikipedia.org/wiki/Java_version_history#Java_SE_7) to be compatible with most [ |
| 21 | +_Android_](https://www.android.com/) versions as well as normal Java applications. It passes all test vectors |
| 22 | +from [RFC 5869 Appendix A.](https://tools.ietf.org/html/rfc5869#appendix-A) |
11 | 23 |
|
12 | 24 | ## Quickstart
|
13 | 25 |
|
|
0 commit comments