Home | History | Annotate | Line # | Download | only in crypto_kdf
      1 
      2 #include "crypto_kdf.h"
      3 #include "randombytes.h"
      4 
      5 const char *
      6 crypto_kdf_primitive(void)
      7 {
      8     return crypto_kdf_PRIMITIVE;
      9 }
     10 
     11 size_t
     12 crypto_kdf_bytes_min(void)
     13 {
     14     return crypto_kdf_BYTES_MIN;
     15 }
     16 
     17 size_t
     18 crypto_kdf_bytes_max(void)
     19 {
     20     return crypto_kdf_BYTES_MAX;
     21 }
     22 
     23 size_t
     24 crypto_kdf_contextbytes(void)
     25 {
     26     return crypto_kdf_CONTEXTBYTES;
     27 }
     28 
     29 size_t
     30 crypto_kdf_keybytes(void)
     31 {
     32     return crypto_kdf_KEYBYTES;
     33 }
     34 
     35 int
     36 crypto_kdf_derive_from_key(unsigned char *subkey, size_t subkey_len,
     37                            uint64_t subkey_id,
     38                            const char ctx[crypto_kdf_CONTEXTBYTES],
     39                            const unsigned char key[crypto_kdf_KEYBYTES])
     40 {
     41     return crypto_kdf_blake2b_derive_from_key(subkey, subkey_len,
     42                                               subkey_id, ctx, key);
     43 }
     44 
     45 void
     46 crypto_kdf_keygen(unsigned char k[crypto_kdf_KEYBYTES])
     47 {
     48     randombytes_buf(k, crypto_kdf_KEYBYTES);
     49 }
     50