return FSPRG_Seek(f->fsprg_state.iov_base, goal, msk.iov_base, f->fsprg_seed.iov_base, f->fsprg_seed.iov_len);
}
-int journal_file_hmac_setup(JournalFile *f) {
#if HAVE_GCRYPT
+static int journal_file_hmac_setup(JournalFile *f) {
int r;
- if (!JOURNAL_HEADER_SEALED(f->header))
+ assert(f);
+
+ if (f->hmac)
return 0;
r = initialize_libgcrypt(true);
return -EOPNOTSUPP;
return 0;
-#else
- return -EOPNOTSUPP;
-#endif
}
+#endif
int journal_file_hmac_start(JournalFile *f) {
#if HAVE_GCRYPT
if (f->hmac_running)
return 0;
+ r = journal_file_hmac_setup(f);
+ if (r < 0)
+ return r;
+
/* Prepare HMAC for next cycle */
sym_gcry_md_reset(f->hmac);
int journal_file_maybe_append_tag(JournalFile *f, uint64_t realtime);
int journal_file_append_first_tag(JournalFile *f);
-int journal_file_hmac_setup(JournalFile *f);
int journal_file_hmac_start(JournalFile *f);
int journal_file_hmac_put_header(JournalFile *f);
int journal_file_hmac_put_object(JournalFile *f, ObjectType type, Object *o, uint64_t p);