X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=tfcrypt.h;h=a36cc16cfb6cd1d06d10dad53d20acd14ff0951f;hb=f402e6aa2dd18138ec26e9bfb340dae294637aec;hp=5c68552ebeaa92cc5d6d1de7b01e8027e69576e0;hpb=6a181d607fe6fe8c66b894efb281855bb2eee573;p=tfcrypt.git diff --git a/tfcrypt.h b/tfcrypt.h index 5c68552..a36cc16 100644 --- a/tfcrypt.h +++ b/tfcrypt.h @@ -29,6 +29,9 @@ #ifndef _TFCRYPT_H #define _TFCRYPT_H +#ifndef _DEFAULT_SOURCE +#define _DEFAULT_SOURCE +#endif #ifndef _BSD_SOURCE #define _BSD_SOURCE #endif @@ -116,6 +119,9 @@ int xmhexdump(int to, const void *data, size_t szdata, int hgroup, int hexstr, i #define mhexdump(data, szdata, group, newline) xmhexdump(1, data, szdata, group, do_full_hexdump, newline) #define mehexdump(data, szdata, group, newline) xmhexdump(2, data, szdata, group, do_full_hexdump, newline) +size_t xstrlcpy(char *dst, const char *src, size_t size); +size_t xstrlcat(char *dst, const char *src, size_t size); + extern size_t nr_turns; extern int ctr_mode; extern size_t macbits; @@ -124,7 +130,7 @@ extern tfc_byte tfc_salt[TFC_MAX_SALT]; extern char *progname; extern int exitcode; -extern tfc_byte key[TF_KEY_SIZE], ctr[TF_BLOCK_SIZE], xtskey[TF_KEY_SIZE], mackey[TF_FROM_BITS(TF_MAX_BITS)]; +extern tfc_byte key[TF_KEY_SIZE], ctr[TF_BLOCK_SIZE], xtskey[TF_KEY_SIZE], mackey[TF_FROM_BITS(TF_MAX_BITS)], tweak[TF_TWEAK_SIZE]; extern struct skein sk; extern struct tfe_stream tfe; extern tfc_byte srcblk[TFC_BLKSIZE], dstblk[TFC_BLKSIZE], *pblk; @@ -136,18 +142,19 @@ extern tfc_fsize total_processed_src, total_processed_dst; extern tfc_fsize delta_processed; extern tfc_fsize genrandom_nr_bytes, genzero_nr_bytes; extern tfc_fsize rdpos; +extern tfc_fsize maxkeylen, keyoffset; extern int sfd, kfd, dfd; extern struct stat s_stat; extern size_t blksize, xtsblocks; extern char pwdask[512], pwdagain[512]; extern size_t lio, lrem, ldone, lblock; -extern size_t maxkeylen, ctrsz; +extern size_t ctrsz; extern struct sigaction sigact; extern size_t sksum_turns; extern int do_edcrypt, do_stop, quiet, error_action; extern int counter_opt, mackey_opt, do_mac, do_outfmt, rawkey; extern int idx, write_flags; -extern tfc_yesno catch_all_errors, password, overwrite_source, do_fsync, do_pad, do_tfcrypt1; +extern tfc_yesno catch_all_errors, ignore_seek_errors, password, overwrite_source, do_fsync, do_pad, do_tfcrypt1; extern tfc_yesno do_preserve_time, do_stats_in_gibs, do_statline_dynamic, do_less_stats; extern tfc_yesno no_repeat, do_full_hexdump, verbose, statline_was_shown; extern char *srcfname, *dstfname, *do_mac_file, *counter_file, *sksum_hashlist_file; @@ -157,6 +164,9 @@ extern tfc_useconds status_timer, bench_timer; extern tfc_useconds current_time, delta_time; extern struct getpasswd_state getps; +size_t xread(int fd, void *data, size_t szdata); +size_t xwrite(int fd, const void *data, size_t szdata); + void xerror(tfc_yesno noexit, tfc_yesno noerrno, tfc_yesno nostats, const char *fmt, ...); void xexit(int status); void usage(void); @@ -193,8 +203,9 @@ void change_status_width(int signal); void change_status_timer(int signal); void setup_next_alarm(tfc_useconds useconds); void skein(void *hash, size_t bits, const void *key, const void *data, size_t szdata); -void tf_key_tweak_compat(void *key); -tfc_yesno skeinfd(void *hash, size_t bits, const void *key, int fd, tfc_fsize readto); +tfc_yesno skeinfd(void *hash, size_t bits, const void *key, int fd, tfc_fsize offset, tfc_fsize readto); + +void read_defaults(const char *path, tfc_yesno noerr); void gen_write_bytes(const char *foutname, tfc_fsize offset, tfc_fsize nrbytes); void do_edbase64(char **fargv); @@ -214,6 +225,6 @@ enum { TFC_MODE_SKSUM = -2, TFC_MODE_PLAIN = -1, TFC_MODE_CTR = 1, TFC_MODE_STREAM, TFC_MODE_XTS, TFC_MODE_ECB, TFC_MODE_CBC, TFC_MODE_OCB }; -enum { TFC_CTR_SHOW = 1, TFC_CTR_HEAD, TFC_CTR_RAND }; +enum { TFC_CTR_SHOW = 1, TFC_CTR_HEAD, TFC_CTR_RAND, TFC_CTR_ZERO }; #endif