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