return NO;
}
+int xxopen(tfc_yesno noerr, const char *pathname, int flags)
+{
+ int r;
+
+ if ((flags & O_WRONLY || flags & O_RDWR)) {
+ if (read_only == YES) flags = O_RDONLY;
+ else flags |= write_flags;
+ }
+
+ flags |= O_LARGEFILE;
+ r = open(pathname, flags, 0666);
+ if (noerr == NO && r == -1) xerror(NO, NO, YES, "%s", pathname);
+ return r;
+}
+
+int xopen(const char *pathname, int flags)
+{
+ return xxopen(NO, pathname, flags);
+}
+
void xclose(int fd)
{
if (fd < 3) return;
case TFC_MODE_XTS: return "XTS";
case TFC_MODE_ECB: return "ECB";
case TFC_MODE_CBC: return "CBC";
- case TFC_MODE_OCB: return "OCB";
+ case TFC_MODE_PCBC: return "PCBC";
}
return NULL;
}
+tfc_yesno tfc_is_freestream(int mode)
+{
+ switch (mode) {
+ case TFC_MODE_PLAIN:
+ case TFC_MODE_XOR:
+ case TFC_MODE_STREAM: return YES;
+ }
+
+ return NO;
+}
+
void tfc_getcurtime(tfc_useconds *tx)
{
struct timespec t;
memset(s, 0, 2);
}
- fnmfd = open(fname, O_RDONLY);
+ fnmfd = xxopen(YES, fname, O_RDONLY);
if (s) memcpy(s, T, 2);
if (fnmfd == -1) {
xerror(noexit, NO, YES, "%s", fname);