Coverage Report

Created: 2019-12-03 15:21

/src/botan/src/lib/kdf/sp800_56c/sp800_56c.cpp
Line
Count
Source (jump to first uncovered line)
1
/*
2
* KDF defined in NIST SP 800-56c
3
* (C) 2016 Kai Michaelis
4
*
5
* Botan is released under the Simplified BSD License (see license.txt)
6
*/
7
8
#include <botan/sp800_56c.h>
9
10
namespace Botan {
11
12
size_t SP800_56C::kdf(uint8_t key[], size_t key_len,
13
                      const uint8_t secret[], size_t secret_len,
14
                      const uint8_t salt[], size_t salt_len,
15
                      const uint8_t label[], size_t label_len) const
16
0
   {
17
0
   // Randomness Extraction
18
0
   secure_vector<uint8_t> k_dk;
19
0
20
0
   m_prf->set_key(salt, salt_len);
21
0
   m_prf->update(secret, secret_len);
22
0
   m_prf->final(k_dk);
23
0
24
0
   // Key Expansion
25
0
   m_exp->kdf(key, key_len, k_dk.data(), k_dk.size(), nullptr, 0, label, label_len);
26
0
27
0
   return key_len;
28
0
   }
29
30
}