kdf.h 641 B

1234567891011121314151617181920
  1. int
  2. hydro_kdf_derive_from_key(uint8_t *subkey, size_t subkey_len, uint64_t subkey_id,
  3. const char ctx[hydro_kdf_CONTEXTBYTES],
  4. const uint8_t key[hydro_kdf_KEYBYTES])
  5. {
  6. hydro_hash_state st;
  7. COMPILER_ASSERT(hydro_kdf_CONTEXTBYTES >= hydro_hash_CONTEXTBYTES);
  8. COMPILER_ASSERT(hydro_kdf_KEYBYTES >= hydro_hash_KEYBYTES);
  9. if (hydro_hash_init_with_tweak(&st, ctx, subkey_id, key) != 0) {
  10. return -1;
  11. }
  12. return hydro_hash_final(&st, subkey, subkey_len);
  13. }
  14. void
  15. hydro_kdf_keygen(uint8_t key[hydro_kdf_KEYBYTES])
  16. {
  17. hydro_random_buf(key, hydro_kdf_KEYBYTES);
  18. }