crypto_kdf.c 931 B

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