Compare commits

..

1 Commits

Author SHA1 Message Date
Milan Broz
d04ea7fda0 Release 1.1.0
git-svn-id: https://cryptsetup.googlecode.com/svn/tags/v1_1_0@182 36d66b0a-2a48-0410-832c-cd162a569da5
2010-01-17 10:52:10 +00:00
27 changed files with 494 additions and 4315 deletions

View File

@@ -1,53 +1,3 @@
2010-07-03 Milan Broz <mbroz@redhat.com>
* Fix udev support for old libdevmapper with not compatible definition.
* Version 1.1.3.
2010-06-01 Milan Broz <mbroz@redhat.com>
* Fix device alignment ioctl calls parameters.
* Fix activate_by_* API calls to handle NULL device name as documented.
2010-05-30 Milan Broz <mbroz@redhat.com>
* Version 1.1.2.
2010-05-27 Milan Broz <mbroz@redhat.com>
* Fix luksFormat/luksOpen reading passphrase from stdin and "-" keyfile.
* Support --key-file/-d option for luksFormat.
* Fix description of --key-file and add --verbose and --debug options to man page.
* Add verbose log level and move unlocking message there.
* Remove device even if underlying device disappeared.
* Fix (deprecated) reload device command to accept new device argument.
2010-05-23 Milan Broz <mbroz@redhat.com>
* Fix luksClose operation for stacked DM devices.
* Version 1.1.1.
2010-05-03 Milan Broz <mbroz@redhat.com>
* Fix automatic dm-crypt module loading.
* Escape hyphens in man page.
* Version 1.1.1-rc2.
2010-04-30 Milan Broz <mbroz@redhat.com>
* Try to use pkgconfig for device mapper library.
* Detect old dm-crypt module and disable LUKS suspend/resume.
* Fix apitest to work on older systems.
* Allow no hash specification in plain device constructor.
* Fix luksOpen reading of passphrase on stdin (if "-" keyfile specified).
* Fix isLuks to initialise crypto backend (blkid instead is suggested anyway).
* Version 1.1.1-rc1.
2010-04-12 Milan Broz <mbroz@redhat.com>
* Fix package config to use proper package version.
* Avoid class C++ keyword in library header.
* Detect and use devmapper udev support if available (disable by --disable-udev).
2010-04-06 Milan Broz <mbroz@redhat.com>
* Prefer some device paths in status display.
* Support device topology detectionfor data alignment.
2010-02-25 Milan Broz <mbroz@redhat.com>
* Do not verify unlocking passphrase in luksAddKey command.
* Properly initialise crypto backend in header backup/restore commands.
2010-01-17 Milan Broz <mbroz@redhat.com>
* If gcrypt compiled with capabilities, document workaround for cryptsetup (see lib/gcrypt.c).
* Version 1.1.0.

View File

@@ -1,10 +1,5 @@
AC_PREREQ(2.57)
AC_INIT(cryptsetup,1.1.3)
dnl library version from <major>.<minor>.<release>[-<suffix>]
LIBCRYPTSETUP_VERSION=$(echo $PACKAGE_VERSION | cut -f1 -d-)
LIBCRYPTSETUP_VERSION_INFO=1:0:0
AC_INIT(cryptsetup,1.1.0)
AC_CONFIG_SRCDIR(src/cryptsetup.c)
AC_CONFIG_MACRO_DIR([m4])
@@ -42,7 +37,7 @@ LIBS=$saved_LIBS
AM_PATH_LIBGCRYPT(1.1.42,,[AC_MSG_ERROR('You need the gcrypt library')])
AC_CHECK_FUNCS([posix_memalign])
AC_CHECK_FUNCS([setlocale, posix_memalign])
AC_C_CONST
AC_C_BIGENDIAN
@@ -76,34 +71,11 @@ AM_CONDITIONAL(STATIC_LIBRARY, test x$enable_shared_library = xno)
AC_ARG_ENABLE(selinux,
[ --disable-selinux disable selinux support [[default=auto]]],[], [])
AC_ARG_ENABLE([udev],AS_HELP_STRING([--disable-udev],[disable udev support]),[], enable_udev=yes)
dnl Try to use pkg-config for devmapper, but fallback to old detection
saved_LIBS=$LIBS
if AC_RUN_LOG([pkg-config --exists --print-errors devmapper]); then
PKG_PROG_PKG_CONFIG
if test x$enable_static = xyes; then
PKG_CONFIG="$PKG_CONFIG --static"
fi
PKG_CHECK_MODULES([DEVMAPPER], [devmapper >= 1.02.03])
LIBS="$LIBS $DEVMAPPER_LIBS"
else
AC_CHECK_LIB(devmapper, dm_task_set_name,,
[AC_MSG_ERROR('You need the device-mapper library')])
AC_CHECK_LIB(devmapper, dm_task_set_message,,
[AC_MSG_ERROR([The device-mapper library on your system is too old.])])
DEVMAPPER_LIBS=$LIBS
fi
AC_CHECK_DECLS([DM_UDEV_DISABLE_DISK_RULES_FLAG], [have_cookie=yes], [have_cookie=no], [#include <libdevmapper.h>])
if test "x$enable_udev" = xyes; then
if test "x$have_cookie" = xno; then
AC_MSG_WARN([The device-mapper library on your system has no udev support, udev support disabled.])
else
AC_DEFINE(USE_UDEV, 1, [Try to use udev synchronisation?])
fi
fi
AC_CHECK_LIB(devmapper, dm_task_set_name,,[AC_MSG_ERROR('You need the device-mapper library')])
AC_CHECK_LIB(devmapper, dm_task_set_message,,
[AC_MSG_ERROR([The device-mapper library on your system is too old.])])
DEVMAPPER_LIBS=$LIBS
LIBS=$saved_LIBS
if test "x$enable_selinux" != xno; then
AC_CHECK_LIB(sepol, sepol_bool_set)
@@ -119,13 +91,20 @@ if test "x$enable_selinux" != xno; then
fi
fi
if test x$enable_static = xyes; then
saved_LIBS2=$LIBS
LIBS="$LIBS -static"
# Check if it there is still not some missing dependency like static selinux libs
AC_SEARCH_LIBS([dm_set_selinux_context], [devmapper],,
[AC_MSG_ERROR([Your system requires SElinux libraries for static compilation.])])
LIBS=$saved_LIBS2
fi
LIBS=$saved_LIBS
DEVMAPPER_LIBS="$DEVMAPPER_LIBS $LIB_PTHREAD"
AC_SUBST([DEVMAPPER_LIBS])
AC_SUBST([SELINUX_STATIC_LIBS])
AC_SUBST([LIBCRYPTSETUP_VERSION])
AC_SUBST([LIBCRYPTSETUP_VERSION_INFO])
AC_SUBST(DEVMAPPER_LIBS)
AC_SUBST(SELINUX_STATIC_LIBS)
dnl ==========================================================================
AC_DEFUN([CS_DEFINE],

View File

@@ -26,7 +26,7 @@ libcryptsetup_la_DEPENDENCIES = libcryptsetup.sym
libcryptsetup_la_LDFLAGS = \
$(_STATIC_LIBRARY) \
-Wl,--version-script=$(top_srcdir)/lib/libcryptsetup.sym \
-version-info @LIBCRYPTSETUP_VERSION_INFO@
-version-info 1:0:0
libcryptsetup_la_CFLAGS = -Wall @LIBGCRYPT_CFLAGS@

View File

@@ -23,10 +23,8 @@ int init_crypto(void)
* and it locks its memory space anyway.
*/
#if 0
log_dbg("Initializing crypto backend (secure memory disabled).");
gcry_control (GCRYCTL_DISABLE_SECMEM);
#else
log_dbg("Initializing crypto backend (using secure memory).");
gcry_control (GCRYCTL_SUSPEND_SECMEM_WARN);
gcry_control (GCRYCTL_INIT_SECMEM, 16384, 0);
gcry_control (GCRYCTL_RESUME_SECMEM_WARN);

View File

@@ -110,7 +110,6 @@ int parse_into_name_and_mode(const char *nameAndMode, char *name, char *mode);
void logger(struct crypt_device *cd, int class, const char *file, int line, const char *format, ...);
#define log_dbg(x...) logger(NULL, CRYPT_LOG_DEBUG, __FILE__, __LINE__, x)
#define log_std(c, x...) logger(c, CRYPT_LOG_NORMAL, __FILE__, __LINE__, x)
#define log_verbose(c, x...) logger(c, CRYPT_LOG_VERBOSE, __FILE__, __LINE__, x)
#define log_err(c, x...) do { \
logger(c, CRYPT_LOG_ERROR, __FILE__, __LINE__, x); \
set_error(x); } while(0)
@@ -121,9 +120,4 @@ void debug_processes_using_device(const char *name);
int crypt_memlock_inc(struct crypt_device *ctx);
int crypt_memlock_dec(struct crypt_device *ctx);
void get_topology_alignment(const char *device,
unsigned long *required_alignment, /* bytes */
unsigned long *alignment_offset, /* bytes */
unsigned long default_alignment);
#endif /* INTERNAL_H */

View File

@@ -37,25 +37,24 @@ int crypt_init_by_name(struct crypt_device **cd, const char *name);
*
* @cd - crypt device handle (can be NULL to set default log function)
* @usrptr - provided identification in callback
* @level - log level below (debug messages can uses other levels)
* @class - log type below (debug messages can uses other levels)
* @msg - log message
*/
#define CRYPT_LOG_NORMAL 0
#define CRYPT_LOG_ERROR 1
#define CRYPT_LOG_VERBOSE 2
#define CRYPT_LOG_DEBUG -1 /* always on stdout */
void crypt_set_log_callback(struct crypt_device *cd,
void (*log)(int level, const char *msg, void *usrptr),
void (*log)(int class, const char *msg, void *usrptr),
void *usrptr);
/**
* Log message through log function.
*
* @cd - crypt device handle
* @level - log level
* @class - log type
* @msg - log message
*/
void crypt_log(struct crypt_device *cd, int level, const char *msg);
void crypt_log(struct crypt_device *cd, int class, const char *msg);
/**
* Set confirmation callback (yes/no)
@@ -519,7 +518,7 @@ void crypt_set_debug_level(int level);
struct interface_callbacks {
int (*yesDialog)(char *msg);
void (*log)(int level, char *msg);
void (*log)(int class, char *msg);
};
#define CRYPT_FLAG_VERIFY (1 << 0)

View File

@@ -5,6 +5,6 @@ includedir=@includedir@
Name: cryptsetup
Description: cryptsetup library
Version: @LIBCRYPTSETUP_VERSION@
Version: 1.0.0
Cflags: -I${includedir}
Libs: -L${libdir} -lcryptsetup

View File

@@ -1,9 +1,11 @@
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <dirent.h>
#include <errno.h>
#include <libdevmapper.h>
#include <linux/dm-ioctl.h>
#include <fcntl.h>
#include <linux/fs.h>
#include <uuid/uuid.h>
@@ -12,41 +14,14 @@
#include "luks.h"
#define DEVICE_DIR "/dev"
#define DM_UUID_LEN 129
#define DM_UUID_PREFIX "CRYPT-"
#define DM_UUID_PREFIX_LEN 6
#define DM_CRYPT_TARGET "crypt"
#define RETRY_COUNT 5
/* Set if dm-crypt version was probed */
static int _dm_crypt_checked = 0;
static int _dm_crypt_wipe_key_supported = 0;
static int _dm_use_count = 0;
static struct crypt_device *_context = NULL;
/* Compatibility for old device-mapper without udev support */
#if HAVE_DECL_DM_UDEV_DISABLE_DISK_RULES_FLAG
#define CRYPT_TEMP_UDEV_FLAGS DM_UDEV_DISABLE_SUBSYSTEM_RULES_FLAG | \
DM_UDEV_DISABLE_DISK_RULES_FLAG | \
DM_UDEV_DISABLE_OTHER_RULES_FLAG
#define _dm_task_set_cookie dm_task_set_cookie
#define _dm_udev_wait dm_udev_wait
#else
#define CRYPT_TEMP_UDEV_FLAGS 0
static int _dm_task_set_cookie(struct dm_task *dmt, uint32_t *cookie, uint16_t flags) { return 0; }
static int _dm_udev_wait(uint32_t cookie) { return 0; };
#endif
static int _dm_use_udev()
{
#ifdef USE_UDEV /* cannot be enabled if devmapper is too old */
return dm_udev_get_sync_support();
#else
return 0;
#endif
}
static void set_dm_error(int level, const char *file, int line,
const char *f, ...)
{
@@ -65,58 +40,14 @@ static void set_dm_error(int level, const char *file, int line,
va_end(va);
}
static int _dm_simple(int task, const char *name, int udev_wait);
static void _dm_set_crypt_compat(int maj, int min, int patch)
{
log_dbg("Detected dm-crypt target of version %i.%i.%i.", maj, min, patch);
if (maj >= 1 && min >=2)
_dm_crypt_wipe_key_supported = 1;
else
log_dbg("Suspend and resume disabled, no wipe key support.");
_dm_crypt_checked = 1;
}
static int _dm_check_versions(void)
{
struct dm_task *dmt;
struct dm_versions *target, *last_target;
if (_dm_crypt_checked)
return 1;
if (!(dmt = dm_task_create(DM_DEVICE_LIST_VERSIONS)))
return 0;
if (!dm_task_run(dmt)) {
dm_task_destroy(dmt);
return 0;
}
target = dm_task_get_versions(dmt);
do {
last_target = target;
if (!strcmp(DM_CRYPT_TARGET, target->name)) {
_dm_set_crypt_compat((int)target->version[0],
(int)target->version[1],
(int)target->version[2]);
}
target = (void *) target + target->next;
} while (last_target != target);
dm_task_destroy(dmt);
return 1;
}
static int _dm_simple(int task, const char *name);
int dm_init(struct crypt_device *context, int check_kernel)
{
if (!_dm_use_count++) {
log_dbg("Initialising device-mapper backend%s, UDEV is %sabled.",
check_kernel ? "" : " (NO kernel check requested)",
_dm_use_udev() ? "en" : "dis");
if (check_kernel && !_dm_check_versions()) {
log_dbg("Initialising device-mapper backend%s.",
check_kernel ? "" : " (NO kernel check requested)");
if (check_kernel && !_dm_simple(DM_DEVICE_LIST_VERSIONS, NULL)) {
log_err(context, _("Cannot initialize device-mapper. Is dm_mod kernel module loaded?\n"));
return -1;
}
@@ -144,7 +75,7 @@ void dm_exit(void)
}
}
static char *__lookup_dev(char *path, dev_t dev, int dir_level, const int max_level)
static char *__lookup_dev(char *path, dev_t dev)
{
struct dirent *entry;
struct stat st;
@@ -153,10 +84,6 @@ static char *__lookup_dev(char *path, dev_t dev, int dir_level, const int max_le
DIR *dir;
int space;
/* Ignore strange nested directories */
if (dir_level > max_level)
return NULL;
path[PATH_MAX - 1] = '\0';
ptr = path + strlen(path);
*ptr++ = '/';
@@ -168,22 +95,20 @@ static char *__lookup_dev(char *path, dev_t dev, int dir_level, const int max_le
return NULL;
while((entry = readdir(dir))) {
if (entry->d_name[0] == '.' ||
!strncmp(entry->d_name, "..", 2))
if (entry->d_name[0] == '.' &&
(entry->d_name[1] == '\0' || (entry->d_name[1] == '.' &&
entry->d_name[2] == '\0')))
continue;
strncpy(ptr, entry->d_name, space);
if (stat(path, &st) < 0)
if (lstat(path, &st) < 0)
continue;
if (S_ISDIR(st.st_mode)) {
result = __lookup_dev(path, dev, dir_level + 1, max_level);
result = __lookup_dev(path, dev);
if (result)
break;
} else if (S_ISBLK(st.st_mode)) {
/* workaround: ignore dm-X devices, these are internal kernel names */
if (dir_level == 0 && !strncmp(entry->d_name, "dm-", 3))
continue;
if (st.st_rdev == dev) {
result = strdup(path);
break;
@@ -192,38 +117,22 @@ static char *__lookup_dev(char *path, dev_t dev, int dir_level, const int max_le
}
closedir(dir);
return result;
}
static char *lookup_dev(const char *dev_id)
static char *lookup_dev(const char *dev)
{
uint32_t major, minor;
dev_t dev;
char *result = NULL, buf[PATH_MAX + 1];
char buf[PATH_MAX + 1];
if (sscanf(dev_id, "%" PRIu32 ":%" PRIu32, &major, &minor) != 2)
if (sscanf(dev, "%" PRIu32 ":%" PRIu32, &major, &minor) != 2)
return NULL;
dev = makedev(major, minor);
strncpy(buf, DEVICE_DIR, PATH_MAX);
buf[PATH_MAX] = '\0';
/* First try low level device */
if ((result = __lookup_dev(buf, dev, 0, 0)))
return result;
/* If it is dm, try DM dir */
if (dm_is_dm_major(major)) {
strncpy(buf, dm_dir(), PATH_MAX);
if ((result = __lookup_dev(buf, dev, 0, 0)))
return result;
}
strncpy(buf, DEVICE_DIR, PATH_MAX);
result = __lookup_dev(buf, dev, 0, 4);
/* If not found, return NULL */
return result;
return __lookup_dev(buf, makedev(major, minor));
}
static int _dev_read_ahead(const char *dev, uint32_t *read_ahead)
@@ -276,14 +185,10 @@ out:
}
/* DM helpers */
static int _dm_simple(int task, const char *name, int udev_wait)
static int _dm_simple(int task, const char *name)
{
int r = 0;
struct dm_task *dmt;
uint32_t cookie = 0;
if (!_dm_use_udev())
udev_wait = 0;
if (!(dmt = dm_task_create(task)))
return 0;
@@ -291,14 +196,8 @@ static int _dm_simple(int task, const char *name, int udev_wait)
if (name && !dm_task_set_name(dmt, name))
goto out;
if (udev_wait && !_dm_task_set_cookie(dmt, &cookie, 0))
goto out;
r = dm_task_run(dmt);
if (udev_wait)
(void)_dm_udev_wait(cookie);
out:
dm_task_destroy(dmt);
return r;
@@ -327,8 +226,8 @@ static int _error_device(const char *name, size_t size)
if (!dm_task_run(dmt))
goto error;
if (!_dm_simple(DM_DEVICE_RESUME, name, 1)) {
_dm_simple(DM_DEVICE_CLEAR, name, 0);
if (!_dm_simple(DM_DEVICE_RESUME, name)) {
_dm_simple(DM_DEVICE_CLEAR, name);
goto error;
}
@@ -349,7 +248,7 @@ int dm_remove_device(const char *name, int force, uint64_t size)
return -EINVAL;
do {
r = _dm_simple(DM_DEVICE_REMOVE, name, 1) ? 0 : -EINVAL;
r = _dm_simple(DM_DEVICE_REMOVE, name) ? 0 : -EINVAL;
if (--retries && r) {
log_dbg("WARNING: other process locked internal device %s, %s.",
name, retries ? "retrying remove" : "giving up");
@@ -422,22 +321,18 @@ int dm_create_device(const char *name,
int reload)
{
struct dm_task *dmt = NULL;
struct dm_task *dmt_query = NULL;
struct dm_info dmi;
char *params = NULL;
char *error = NULL;
char dev_uuid[DM_UUID_LEN] = {0};
int r = -EINVAL;
uint32_t read_ahead = 0;
uint32_t cookie = 0;
uint16_t udev_flags = 0;
params = get_params(device, skip, offset, cipher, key_size, key);
if (!params)
goto out_no_removal;
if (type && !strncmp(type, "TEMP", 4))
udev_flags = CRYPT_TEMP_UDEV_FLAGS;
/* All devices must have DM_UUID, only resize on old device is exception */
if (reload) {
if (!(dmt = dm_task_create(DM_DEVICE_RELOAD)))
@@ -456,11 +351,9 @@ int dm_create_device(const char *name,
if (!dm_task_set_uuid(dmt, dev_uuid))
goto out_no_removal;
if (_dm_use_udev() && !_dm_task_set_cookie(dmt, &cookie, udev_flags))
goto out_no_removal;
}
if (read_only && !dm_task_set_ro(dmt))
goto out_no_removal;
if (!dm_task_add_target(dmt, 0, size, DM_CRYPT_TARGET, params))
@@ -483,8 +376,6 @@ int dm_create_device(const char *name,
goto out;
if (uuid && !dm_task_set_uuid(dmt, dev_uuid))
goto out;
if (_dm_use_udev() && !_dm_task_set_cookie(dmt, &cookie, udev_flags))
goto out;
if (!dm_task_run(dmt))
goto out;
}
@@ -494,11 +385,6 @@ int dm_create_device(const char *name,
r = 0;
out:
if (_dm_use_udev()) {
(void)_dm_udev_wait(cookie);
cookie = 0;
}
if (r < 0 && !reload) {
if (get_error())
error = strdup(get_error());
@@ -512,14 +398,12 @@ out:
}
out_no_removal:
if (cookie && _dm_use_udev())
(void)_dm_udev_wait(cookie);
if (params)
safe_free(params);
if (dmt)
dm_task_destroy(dmt);
if(dmt_query)
dm_task_destroy(dmt_query);
dm_task_update_nodes();
return r;
}
@@ -714,17 +598,11 @@ static int _dm_message(const char *name, const char *msg)
int dm_suspend_and_wipe_key(const char *name)
{
if (!_dm_check_versions())
return -ENOTSUP;
if (!_dm_crypt_wipe_key_supported)
return -ENOTSUP;
if (!_dm_simple(DM_DEVICE_SUSPEND, name, 0))
if (!_dm_simple(DM_DEVICE_SUSPEND, name))
return -EINVAL;
if (!_dm_message(name, "key wipe")) {
_dm_simple(DM_DEVICE_RESUME, name, 1);
_dm_simple(DM_DEVICE_RESUME, name);
return -EINVAL;
}
@@ -739,12 +617,6 @@ int dm_resume_and_reinstate_key(const char *name,
char *msg;
int r = 0;
if (!_dm_check_versions())
return -ENOTSUP;
if (!_dm_crypt_wipe_key_supported)
return -ENOTSUP;
msg = safe_alloc(msg_size);
if (!msg)
return -ENOMEM;
@@ -754,7 +626,7 @@ int dm_resume_and_reinstate_key(const char *name,
hex_key(&msg[8], key_size, key);
if (!_dm_message(name, msg) ||
!_dm_simple(DM_DEVICE_RESUME, name, 1))
!_dm_simple(DM_DEVICE_RESUME, name))
r = -EINVAL;
safe_free(msg);

View File

@@ -30,7 +30,7 @@ struct crypt_device {
char *plain_uuid;
/* callbacks definitions */
void (*log)(int level, const char *msg, void *usrptr);
void (*log)(int class, const char *msg, void *usrptr);
void *log_usrptr;
int (*confirm)(const char *msg, void *usrptr);
void *confirm_usrptr;
@@ -39,7 +39,7 @@ struct crypt_device {
};
/* Log helper */
static void (*_default_log)(int level, const char *msg, void *usrptr) = NULL;
static void (*_default_log)(int class, const char *msg, void *usrptr) = NULL;
static int _debug_level = 0;
void crypt_set_debug_level(int level)
@@ -52,15 +52,15 @@ int crypt_get_debug_level()
return _debug_level;
}
void crypt_log(struct crypt_device *cd, int level, const char *msg)
void crypt_log(struct crypt_device *cd, int class, const char *msg)
{
if (cd && cd->log)
cd->log(level, msg, cd->log_usrptr);
cd->log(class, msg, cd->log_usrptr);
else if (_default_log)
_default_log(level, msg, NULL);
_default_log(class, msg, NULL);
}
void logger(struct crypt_device *cd, int level, const char *file,
void logger(struct crypt_device *cd, int class, const char *file,
int line, const char *format, ...)
{
va_list argp;
@@ -69,8 +69,8 @@ void logger(struct crypt_device *cd, int level, const char *file,
va_start(argp, format);
if (vasprintf(&target, format, argp) > 0) {
if (level >= 0) {
crypt_log(cd, level, target);
if (class >= 0) {
crypt_log(cd, class, target);
#ifdef CRYPT_DEBUG
} else if (_debug_level)
printf("# %s:%d %s\n", file ?: "?", line, target);
@@ -112,8 +112,7 @@ static char *process_key(struct crypt_device *cd, const char *hash_name,
/* key is coming from tty, fd or binary stdin */
if (hash_name) {
if (hash(NULL, hash_name, key, key_size, pass, passLen) < 0) {
log_err(cd, _("Key processing error (using hash algorithm %s).\n"),
hash_name);
log_err(cd, _("Key processing error.\n"));
safe_free(key);
return NULL;
}
@@ -220,7 +219,7 @@ static int verify_other_keyslot(struct crypt_device *cd,
if (openedIndex < 0)
return -EPERM;
log_verbose(cd, _("Key slot %d verified.\n"), openedIndex);
log_std(cd, _("Key slot %d verified.\n"), openedIndex);
return 0;
}
@@ -254,9 +253,8 @@ static int device_check_and_adjust(struct crypt_device *cd,
{
struct device_infos infos;
if (!device || get_device_infos(device, &infos, cd) < 0) {
log_err(cd, _("Cannot get info about device %s.\n"),
device ?: "[none]");
if (get_device_infos(device, &infos, cd) < 0) {
log_err(cd, _("Cannot get info about device %s.\n"), device);
return -ENOTBLK;
}
@@ -355,9 +353,6 @@ static int create_device_helper(struct crypt_device *cd,
char *processed_key = NULL;
int r;
if (!name)
return -EINVAL;
ci = crypt_status(cd, name);
if (ci == CRYPT_INVALID)
return -EINVAL;
@@ -424,10 +419,10 @@ static int open_from_hdr_and_mk(struct crypt_device *cd,
return r;
}
static void log_wrapper(int level, const char *msg, void *usrptr)
static void log_wrapper(int class, const char *msg, void *usrptr)
{
void (*xlog)(int level, char *msg) = usrptr;
xlog(level, (char *)msg);
void (*xlog)(int class, char *msg) = usrptr;
xlog(class, (char *)msg);
}
static int yesDialog_wrapper(const char *msg, void *usrptr)
@@ -561,7 +556,7 @@ static int _crypt_init(struct crypt_device **cd,
}
void crypt_set_log_callback(struct crypt_device *cd,
void (*log)(int level, const char *msg, void *usrptr),
void (*log)(int class, const char *msg, void *usrptr),
void *usrptr)
{
if (!cd)
@@ -591,7 +586,7 @@ void crypt_set_password_callback(struct crypt_device *cd,
/* OPTIONS: name, cipher, device, hash, key_file, key_size, key_slot,
* offset, size, skip, timeout, tries, passphrase_fd (ignored),
* flags, icb */
static int crypt_create_and_update_device(struct crypt_options *options, int update)
int crypt_create_device(struct crypt_options *options)
{
struct crypt_device *cd = NULL;
char *key = NULL;
@@ -611,21 +606,39 @@ static int crypt_create_and_update_device(struct crypt_options *options, int upd
options->cipher, NULL, options->key_file, key, keyLen,
options->key_size, options->size, options->skip,
options->offset, NULL, options->flags & CRYPT_FLAG_READONLY,
options->flags, update);
options->flags, 0);
safe_free(key);
crypt_free(cd);
return r;
}
int crypt_create_device(struct crypt_options *options)
{
return crypt_create_and_update_device(options, 0);
}
/* OPTIONS: same as create above */
int crypt_update_device(struct crypt_options *options)
{
return crypt_create_and_update_device(options, 1);
struct crypt_device *cd = NULL;
char *key = NULL;
unsigned int keyLen;
int r;
r = _crypt_init(&cd, CRYPT_PLAIN, options, 1, 1);
if (r)
return r;
get_key(_("Enter passphrase: "), &key, &keyLen, options->key_size,
options->key_file, cd->timeout, options->flags, cd);
if (!key)
r = -ENOENT;
else
r = create_device_helper(cd, options->name, options->hash,
options->cipher, NULL, options->key_file, key, keyLen,
options->key_size, options->size, options->skip,
options->offset, NULL, options->flags & CRYPT_FLAG_READONLY,
options->flags, 1);
safe_free(key);
crypt_free(cd);
return r;
}
/* OPTIONS: name, size, icb */
@@ -727,8 +740,10 @@ int crypt_remove_device(struct crypt_options *options)
int r;
r = crypt_init_by_name(&cd, options->name);
if (r == 0)
r = crypt_deactivate(cd, options->name);
if (r)
return r;
r = crypt_deactivate(cd, options->name);
crypt_free(cd);
return r;
@@ -743,7 +758,7 @@ int crypt_luksFormat(struct crypt_options *options)
char cipherMode[LUKS_CIPHERMODE_L];
char *password=NULL;
unsigned int passwordLen;
struct crypt_device *cd = NULL;
struct crypt_device *cd;
struct crypt_params_luks1 cp = {
.hash = options->hash,
.data_alignment = options->align_payload
@@ -906,11 +921,6 @@ int crypt_isLuks(struct crypt_options *options)
log_dbg("Check device %s for LUKS header.", options->device);
if (init_crypto()) {
log_err(cd, _("Cannot initialize crypto backend.\n"));
return -ENOSYS;
}
r = crypt_init(&cd, options->device);
if (r < 0)
return -EINVAL;
@@ -1033,12 +1043,6 @@ int crypt_init_by_name(struct crypt_device **cd, const char *name)
r = dm_query_device(name, &device, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL);
/* Underlying device disappeared but mapping still active */
if (r >= 0 && !device)
log_verbose(NULL, _("Underlying device for crypt device %s disappeared.\n"),
name);
if (r >= 0)
r = crypt_init(cd, device);
@@ -1052,7 +1056,7 @@ static int _crypt_format_plain(struct crypt_device *cd,
const char *uuid,
struct crypt_params_plain *params)
{
if (!cipher || !cipher_mode) {
if (!cipher || !cipher_mode || !params || !params->hash) {
log_err(cd, _("Invalid plain crypt parameters.\n"));
return -EINVAL;
}
@@ -1068,13 +1072,14 @@ static int _crypt_format_plain(struct crypt_device *cd,
if (uuid)
cd->plain_uuid = strdup(uuid);
if (params && params->hash)
if (params->hash)
cd->plain_hdr.hash = strdup(params->hash);
cd->plain_hdr.offset = params ? params->offset : 0;
cd->plain_hdr.skip = params ? params->skip : 0;
cd->plain_hdr.offset = params->offset;
cd->plain_hdr.skip = params->skip;
if (!cd->plain_cipher || !cd->plain_cipher_mode)
if ((params->hash && !cd->plain_hdr.hash) ||
!cd->plain_cipher || !cd->plain_cipher_mode)
return -ENOMEM;
return 0;
@@ -1087,25 +1092,16 @@ static int _crypt_format_luks1(struct crypt_device *cd,
struct crypt_params_luks1 *params)
{
int r;
unsigned long required_alignment = DEFAULT_ALIGNMENT;
unsigned long alignment_offset = 0;
if (!cd->device) {
log_err(cd, _("Can't format LUKS without device.\n"));
return -EINVAL;
}
if (params && params->data_alignment)
required_alignment = params->data_alignment * SECTOR_SIZE;
else
get_topology_alignment(cd->device, &required_alignment,
&alignment_offset, DEFAULT_ALIGNMENT);
r = LUKS_generate_phdr(&cd->hdr, cd->volume_key, cipher, cipher_mode,
(params && params->hash) ? params->hash : "sha1",
uuid, LUKS_STRIPES,
required_alignment / SECTOR_SIZE,
alignment_offset / SECTOR_SIZE,
params ? params->data_alignment: DEFAULT_ALIGNMENT,
cd->iteration_time, &cd->PBKDF2_per_sec, cd);
if(r < 0)
return r;
@@ -1217,12 +1213,6 @@ int crypt_header_backup(struct crypt_device *cd,
if ((requested_type && !isLUKS(requested_type)) || !backup_file)
return -EINVAL;
/* Some hash functions need initialized gcrypt library */
if (init_crypto()) {
log_err(cd, _("Cannot initialize crypto backend.\n"));
return -ENOSYS;
}
log_dbg("Requested header backup of device %s (%s) to "
"file %s.", cd->device, requested_type, backup_file);
@@ -1236,12 +1226,6 @@ int crypt_header_restore(struct crypt_device *cd,
if (requested_type && !isLUKS(requested_type))
return -EINVAL;
/* Some hash functions need initialized gcrypt library */
if (init_crypto()) {
log_err(cd, _("Cannot initialize crypto backend.\n"));
return -ENOSYS;
}
log_dbg("Requested header restore to device %s (%s) from "
"file %s.", cd->device, requested_type, backup_file);
@@ -1299,9 +1283,7 @@ int crypt_suspend(struct crypt_device *cd,
}
r = dm_suspend_and_wipe_key(name);
if (r == -ENOTSUP)
log_err(cd, "Suspend is not supported for device %s.\n", name);
else if (r)
if (r)
log_err(cd, "Error during suspending device %s.\n", name);
out:
if (!cd)
@@ -1345,9 +1327,7 @@ int crypt_resume_by_passphrase(struct crypt_device *cd,
if (r >= 0) {
keyslot = r;
r = dm_resume_and_reinstate_key(name, mk->keyLength, mk->key);
if (r == -ENOTSUP)
log_err(cd, "Resume is not supported for device %s.\n", name);
else if (r)
if (r)
log_err(cd, "Error during resuming device %s.\n", name);
} else
r = keyslot;
@@ -1531,7 +1511,7 @@ int crypt_keyslot_add_by_keyfile(struct crypt_device *cd,
keyfile, keyfile_size);
else
key_from_terminal(cd, _("Enter any passphrase: "),
&password, &passwordLen, 0);
&password, &passwordLen, 1);
if (!password)
return -EINVAL;
@@ -1659,6 +1639,9 @@ int crypt_activate_by_passphrase(struct crypt_device *cd,
name ? "Activating" : "Checking", name ?: "",
keyslot, passphrase ? "" : "[none] ");
if (!name)
return -EINVAL;
/* plain, use hashed passphrase */
if (isPLAIN(cd->type))
return create_device_helper(cd, name, cd->plain_hdr.hash,
@@ -1712,7 +1695,7 @@ int crypt_activate_by_keyfile(struct crypt_device *cd,
int r;
log_dbg("Activating volume %s [keyslot %d] using keyfile %s.",
name ?: "", keyslot, keyfile ?: "[none]");
name, keyslot, keyfile ?: "[none]");
if (!isLUKS(cd->type)) {
log_err(cd, _("This operation is supported only for LUKS device.\n"));
@@ -1744,8 +1727,7 @@ int crypt_activate_by_keyfile(struct crypt_device *cd,
if (r >= 0) {
keyslot = r;
if (name)
r = open_from_hdr_and_mk(cd, mk, name, flags);
r = open_from_hdr_and_mk(cd, mk, name, flags);
}
LUKS_dealloc_masterkey(mk);
@@ -1856,7 +1838,7 @@ int crypt_volume_key_get(struct crypt_device *cd,
return -ENOMEM;
}
if (isPLAIN(cd->type) && cd->plain_hdr.hash) {
if (isPLAIN(cd->type)) {
processed_key = process_key(cd, cd->plain_hdr.hash, NULL, key_len,
passphrase, passphrase_size);
if (!processed_key) {

View File

@@ -371,8 +371,8 @@ static int interactive_pass(const char *prompt, char *pass, size_t maxlen,
tcsetattr(infd, TCSAFLUSH, &orig);
out_err:
if (!failed && write(outfd, "\n", 1));
if (!failed)
(void)write(outfd, "\n", 1);
if (infd != STDIN_FILENO)
close(infd);
return failed;
@@ -380,7 +380,7 @@ out_err:
/*
* Password reading behaviour matrix of get_key
* FIXME: rewrite this from scratch.
*
* p v n h
* -----------------+---+---+---+---
* interactive | Y | Y | Y | Inf
@@ -400,23 +400,31 @@ void get_key(char *prompt, char **key, unsigned int *passLen, int key_size,
const int verify = how2verify & CRYPT_FLAG_VERIFY;
const int verify_if_possible = how2verify & CRYPT_FLAG_VERIFY_IF_POSSIBLE;
char *pass = NULL;
int newline_stop;
int read_horizon;
int regular_file = 0;
int read_stdin;
int r;
struct stat st;
/* Passphrase read from stdin? */
read_stdin = (!key_file || !strcmp(key_file, "-")) ? 1 : 0;
if(key_file && !strcmp(key_file, "-")) {
/* Allow binary reading from stdin */
fd = STDIN_FILENO;
newline_stop = 0;
read_horizon = 0;
} else if (key_file) {
fd = open(key_file, O_RDONLY);
if (fd < 0) {
log_err(cd, _("Failed to open key file %s.\n"), key_file);
goto out_err;
}
newline_stop = 0;
/* read_horizon applies only for real keyfile, not stdin or terminal */
read_horizon = (key_file && !read_stdin) ? key_size : 0 /* until EOF */;
/* Setup file descriptior */
fd = read_stdin ? STDIN_FILENO : open(key_file, O_RDONLY);
if (fd < 0) {
log_err(cd, _("Failed to open key file %s.\n"), key_file ?: "-");
goto out_err;
/* This can either be 0 (LUKS) or the actually number
* of key bytes (default or passed by -s) */
read_horizon = key_size;
} else {
fd = STDIN_FILENO;
newline_stop = 1;
read_horizon = 0; /* Infinite, if read from terminal or fd */
}
/* Interactive case */
@@ -456,8 +464,9 @@ void get_key(char *prompt, char **key, unsigned int *passLen, int key_size,
* should warn the user, if it's a non-regular file,
* such as /dev/random, because in this case, the loop
* will read forever.
*/
if(!read_stdin && read_horizon == 0) {
*/
if(key_file && strcmp(key_file, "-") && read_horizon == 0) {
struct stat st;
if(stat(key_file, &st) < 0) {
log_err(cd, _("Failed to stat key file %s.\n"), key_file);
goto out_err;
@@ -486,8 +495,7 @@ void get_key(char *prompt, char **key, unsigned int *passLen, int key_size,
goto out_err;
}
/* Stop on newline only if not requested read from keyfile */
if(r == 0 || (!key_file && pass[i] == '\n'))
if(r == 0 || (newline_stop && pass[i] == '\n'))
break;
}
/* Fail if piped input dies reading nothing */
@@ -675,57 +683,3 @@ int crypt_memlock_dec(struct crypt_device *ctx)
}
return _memlock_count ? 1 : 0;
}
/* DEVICE TOPOLOGY */
/* block device topology ioctls, introduced in 2.6.32 */
#ifndef BLKIOMIN
#define BLKIOMIN _IO(0x12,120)
#define BLKIOOPT _IO(0x12,121)
#define BLKALIGNOFF _IO(0x12,122)
#endif
void get_topology_alignment(const char *device,
unsigned long *required_alignment, /* bytes */
unsigned long *alignment_offset, /* bytes */
unsigned long default_alignment)
{
int dev_alignment_offset = 0;
unsigned int min_io_size = 0, opt_io_size = 0;
int fd;
*required_alignment = default_alignment;
*alignment_offset = 0;
fd = open(device, O_RDONLY);
if (fd == -1)
return;
/* minimum io size */
if (ioctl(fd, BLKIOMIN, &min_io_size) == -1) {
log_dbg("Topology info for %s not supported, using default offset %lu bytes.",
device, default_alignment);
goto out;
}
/* optimal io size */
if (ioctl(fd, BLKIOOPT, &opt_io_size) == -1)
opt_io_size = min_io_size;
/* alignment offset, bogus -1 means misaligned/unknown */
if (ioctl(fd, BLKALIGNOFF, &dev_alignment_offset) == -1 || dev_alignment_offset < 0)
dev_alignment_offset = 0;
if (*required_alignment < (unsigned long)min_io_size)
*required_alignment = (unsigned long)min_io_size;
if (*required_alignment < (unsigned long)opt_io_size)
*required_alignment = (unsigned long)opt_io_size;
*alignment_offset = (unsigned long)dev_alignment_offset;
log_dbg("Topology: IO (%u/%u), offset = %lu; Required alignment is %lu bytes.",
min_io_size, opt_io_size, *alignment_offset, *required_alignment);
out:
(void)close(fd);
}

View File

@@ -105,13 +105,13 @@ static char *_error_hint(char *cipherName, char *cipherMode, size_t keyLength)
kernel_minor = atoi(tmp);
if (!strncmp(cipherMode, "xts", 3) && (keyLength != 256 && keyLength != 512))
hint = _("Key size in XTS mode must be 256 or 512 bits.\n");
hint = "Key size in XTS mode must be 256 or 512 bits.";
else if (!strncmp(cipherMode, "xts", 3) && kernel_minor < 24)
hint = _("Block mode XTS is available since kernel 2.6.24.\n");
hint = "Block mode XTS is available since kernel 2.6.24.";
if (!strncmp(cipherMode, "lrw", 3) && (keyLength != 256 && keyLength != 512))
hint = _("Key size in LRW mode must be 256 or 512 bits.\n");
hint = "Key size in LRW mode must be 256 or 512 bits.";
else if (!strncmp(cipherMode, "lrw", 3) && kernel_minor < 20)
hint = _("Block mode LRW is available since kernel 2.6.20.\n");
hint = "Block mode LRW is available since kernel 2.6.20.";
#endif
return hint;
}

View File

@@ -424,7 +424,6 @@ int LUKS_generate_phdr(struct luks_phdr *header,
const char *cipherName, const char *cipherMode, const char *hashSpec,
const char *uuid, unsigned int stripes,
unsigned int alignPayload,
unsigned int alignOffset,
uint32_t iteration_time_ms,
uint64_t *PBKDF2_per_sec,
struct crypt_device *ctx)
@@ -489,8 +488,7 @@ int LUKS_generate_phdr(struct luks_phdr *header,
}
currentSector = round_up_modulo(currentSector, alignPayload);
/* alignOffset - offset from natural device alignment provided by topology info */
header->payloadOffset = currentSector + alignOffset;
header->payloadOffset=currentSector;
if (uuid && !uuid_parse(uuid, partitionUuid)) {
log_err(ctx, _("Wrong UUID format provided, generating new one.\n"));
@@ -620,7 +618,7 @@ int LUKS_verify_master_key(const struct luks_phdr *hdr,
}
/* Try to open a particular key slot */
static int LUKS_open_key(const char *device,
int LUKS_open_key(const char *device,
unsigned int keyIndex,
const char *password,
size_t passwordLen,
@@ -670,7 +668,7 @@ static int LUKS_open_key(const char *device,
r = LUKS_verify_master_key(hdr, mk);
if (r >= 0)
log_verbose(ctx, _("Key slot %d unlocked.\n"), keyIndex);
log_std(ctx, _("Key slot %d unlocked.\n"), keyIndex);
out:
free(AfKey);
return r;

View File

@@ -91,7 +91,6 @@ int LUKS_generate_phdr(
const char *uuid,
unsigned int stripes,
unsigned int alignPayload,
unsigned int alignOffset,
uint32_t iteration_time_ms,
uint64_t *PBKDF2_per_sec,
struct crypt_device *ctx);
@@ -137,6 +136,15 @@ int LUKS_set_key(
uint64_t *PBKDF2_per_sec,
struct crypt_device *ctx);
int LUKS_open_key(
const char *device,
unsigned int keyIndex,
const char *password,
size_t passwordLen,
struct luks_phdr *hdr,
struct luks_masterkey *mk,
struct crypt_device *ctx);
int LUKS_open_key_with_hdr(
const char *device,
int keyIndex,

View File

@@ -1,29 +1,29 @@
.TH CRYPTSETUP "8" "" "cryptsetup" "Maintenance Commands"
.TH CRYPTSETUP "8" "March 2005" "cryptsetup" "Maintenance Commands"
.SH NAME
cryptsetup - setup cryptographic volumes for dm-crypt (including LUKS extension)
.SH SYNOPSIS
.B cryptsetup <options> <action> <action args>
.SH DESCRIPTION
.\" Add any additional description here
.PP
cryptsetup is used to conveniently setup dm-crypt managed device-mapper mappings.
For basic (plain) dm-crypt mappings, there are four operations.
cryptsetup is used to conveniently setup dm-crypt managed device-mapper mappings. For basic dm-crypt mappings, there are five operations.
.SH ACTIONS
These strings are valid for \fB<action>\fR, followed by their \fB<action args>\fR:
\fIcreate\fR <name> <device>
.IP
creates a mapping with <name> backed by device <device>.
\fB<options>\fR can be [\-\-hash, \-\-cipher, \-\-verify-passphrase, \-\-key-file, \-\-key-size, \-\-offset, \-\-skip, \-\-readonly]
<options> can be [\-\-hash, \-\-cipher, \-\-verify-passphrase, \-\-key-file, \-\-key-size, \-\-offset, \-\-skip, \-\-readonly]
.PP
\fIremove\fR <name>
.IP
removes an existing mapping <name>.
removes an existing mapping <name>. No options.
.PP
\fIstatus\fR <name>
.IP
reports the status for the mapping <name>.
reports the status for the mapping <name>. No options.
.PP
\fIresize\fR <name>
.IP
@@ -41,16 +41,12 @@ These are valid LUKS actions:
\fIluksFormat\fR <device> [<key file>]
.IP
initializes a LUKS partition and sets the initial key, either via prompting or via <key file>.
\fB<options>\fR can be [\-\-cipher, \-\-verify-passphrase, \-\-key-size, \-\-key-slot,
\-\-key-file (takes precedence over optional second argument)].
<options> can be [\-\-cipher, \-\-verify-passphrase, \-\-key-size, \-\-key-slot].
.PP
\fIluksOpen\fR <device> <name>
.IP
opens the LUKS partition <device> and sets up a mapping <name> after successful verification of the supplied key material (either via key file by \-\-key-file, or via prompting).
\fB<options>\fR can be [\-\-key-file, \-\-readonly].
<options> can be [\-\-key-file, \-\-readonly].
.PP
\fIluksClose\fR <name>
.IP
@@ -66,17 +62,11 @@ After that operation you have to use \fIluksResume\fR to reinstate encryption ke
.PP
\fIluksResume\fR <name>
.IP
Resumes suspended device and reinstates encryption key. You will need provide passphrase
identical to \fIluksOpen\fR command (using prompting or key file).
\fB<options>\fR can be [\-\-key-file]
Resumes suspended device and reinstates encryption key. You will need provide passphrase identical to \fIluksOpen\fR command (using prompting or key file).
.PP
\fIluksAddKey\fR <device> [<new key file>]
.IP
add a new key file/passphrase. An existing passphrase or key file (via \-\-key-file) must be supplied.
The key file with the new material is supplied as a positional argument.
\fB<options>\fR can be [\-\-key-file, \-\-key-slot].
add a new key file/passphrase. An existing passphrase or key file (via \-\-key-file) must be supplied. The key file with the new material is supplied as a positional argument. <options> can be [\-\-key-file, \-\-key-slot].
.PP
\fIluksRemoveKey\fR <device> [<key file>]
.IP
@@ -84,10 +74,7 @@ remove supplied key or key file from LUKS device
.PP
\fIluksKillSlot\fR <device> <key slot number>
.IP
wipe key with number <key slot> from LUKS device. A remaining passphrase or
key file (via \-\-key-file) must be supplied.
\fB<options>\fR can be [\-\-key-file].
wipe key with number <key slot> from LUKS device. A remaining passphrase or key file (via \-\-key-file) must be supplied. <options> can be [\-\-key-file].
.PP
\fIluksDelKey\fR <device> <key slot number>
.IP
@@ -95,15 +82,15 @@ identical to luksKillSlot, but deprecated action name.
.PP
\fIluksUUID\fR <device>
.IP
print UUID, if <device> has a LUKS header.
print UUID, if <device> has a LUKS header. No options.
.PP
\fIisLuks\fR <device>
.IP
returns true, if <device> is a LUKS partition. Otherwise, false.
returns true, if <device> is a LUKS partition. Otherwise, false. No options.
.PP
\fIluksDump\fR <device>
.IP
dumps the header information of a LUKS partition.
dumps the header information of a LUKS partition. No options.
.PP
\fIluksHeaderBackup\fR <device> \-\-header-backup-file <file>
.IP
@@ -127,12 +114,6 @@ For more information about LUKS, see \fBhttp://code.google.com/p/cryptsetup/wiki
.SH OPTIONS
.TP
.B "\-\-verbose, \-v"
Print more verbose messages.
.TP
.B "\-\-debug"
Run in debug mode with full diagnostic logs.
.TP
.B "\-\-hash, \-h"
For \fIcreate\fR action specifies hash to use for password hashing.
@@ -144,13 +125,13 @@ The hash string is passed to libgcrypt, so all hashes accepted by gcrypt are sup
Default is set during compilation, compatible values with old version of cryptsetup are
\fB"ripemd160"\fR for \fIcreate\fR action and \fB"sha1"\fR for \fIluksFormat\fR.
Use \fIcryptsetup \-\-help\fR to show defaults.
Use \fIcryptsetup --help\fR to show defaults.
.TP
.B "\-\-cipher, \-c"
set cipher specification string.
Default mode is configurable during compilation,
you can see compiled-in default using \fIcryptsetup \-\-help\fR.
you can see compiled-in default using \fIcryptsetup --help\fR.
If not changed, the default is for plain dm-crypt and LUKS mappings
"aes-cbc-essiv:sha256".
@@ -164,14 +145,9 @@ Use "aes-xts-plain" cipher specification and set key size to 256 (or 512) bits (
query for passwords twice. Useful when creating a (regular) mapping for the first time, or when running \fIluksFormat\fR.
.TP
.B "\-\-key-file, \-d"
use file as key material.
use file as key material. With LUKS, key material supplied in key files via \-d are always used for existing passphrases. If you want to set a new key via a key file, you have to use a positional arg to \fIluksFormat\fR or \fIluksAddKey\fR.
With LUKS, key material supplied in key files via \-d are always used for existing passphrases,
except in \fIluksFormat\fR action where \-d is equivalent to positional key file argument.
If you want to set a new key via a key file, you have to use a positional arg to \fIluksAddKey\fR.
If the key file is "-", stdin will be used. With the "-" key file reading will
not stop when new line character is detected. See section \fBNOTES ON PASSWORD PROCESSING\fR for more information.
If the key file is "-", stdin will be used. This is different from how cryptsetup usually reads from stdin. See section \fBNOTES ON PASSWORD PROCESSING\fR for more information.
.TP
.B "\-\-master-key-file"
Use pre-generated master key stored in file. For \fIluksFormat\fR it allows LUKS header reformatting with the same master key (if all other parameters are the same existing encrypted data remains intact).
@@ -188,7 +164,7 @@ Has to be a multiple of 8 bits. The key size is limited by the used cipher. See
Can be used for \fIcreate\fR or \fIluksFormat\fR, all other LUKS actions will use key-size specified by the LUKS header.
Default is set during compilation, if not changed it is 256 bits.
Use \fIcryptsetup \-\-help\fR to show defaults.
Use \fIcryptsetup --help\fR to show defaults.
For \fIluksOpen\fR this option specifies number of bits read from the key-file (default is exhaustive read from key-file).
.TP
@@ -228,7 +204,7 @@ in the mkfs.xfs manual page. By default, the payload is aligned at an 8 sector (
Show the version.
.SH NOTES ON PASSWORD PROCESSING
\fIFrom a terminal\fR: Password processing is new-line sensitive, meaning the reading will stop after encountering \\n. It will process the read material (without newline) with the default hash or the hash given by \-\-hash. After hashing, it will be cropped to the key size given by \-s.
\fIFrom a file descriptor or a terminal\fR: Password processing is new-line sensitive, meaning the reading will stop after encountering \\n. It will process the read material (without newline) with the default hash or the hash given by \-\-hash. After hashing, it will be cropped to the key size given by \-s.
\fIFrom stdin\fR: Reading will continue until EOF (so using e.g. /dev/random as stdin will not work), with the trailing newline stripped. After that the read data will be hashed with the default hash or the hash given by \-\-hash and the result will be cropped to the keysize given by \-s. If "plain" is used as an argument to the hash option, the input data will not be hashed.
Instead, it will be zero padded (if shorter than the keysize) or truncated (if longer than the keysize) and used directly as the key. No warning will be given if the amount of data read from stdin is less than the keysize.
@@ -237,10 +213,12 @@ Instead, it will be zero padded (if shorter than the keysize) or truncated (if l
If \-\-key-file=- is used for reading the key from stdin, no trailing newline is stripped from the input. Without that option, cryptsetup strips trailing newlines from stdin input.
.SH NOTES ON PASSWORD PROCESSING FOR LUKS
LUKS uses PBKDF2 to protect against dictionary attacks (see RFC 2898).
LUKS uses PBKDF2 to protect against dictionary attacks (see RFC 2898).
LUKS will always do an exhaustive password reading. Hence, password can not be read from /dev/random, /dev/zero or any other stream that does not terminate.
LUKS saves the processing options when a password is set to the respective key slot.
Therefore, no options can be given to luksOpen.
For any password creation action (luksAddKey, or luksFormat), the user may specify how much the time the password processing should consume.
Increasing the time will lead to a more secure password, but also will take luksOpen longer to complete. The default setting of one second is sufficient for good security.
.SH INCOHERENT BEHAVIOUR FOR INVALID PASSWORDS/KEYS
@@ -293,14 +271,13 @@ This option is ignored. Non-exclusive access to the same block device
can cause data corruption thus this mode is no longer supported by cryptsetup.
.SH "REPORTING BUGS"
Report bugs to <dm-crypt@saout.de> or Issues section on LUKS website.
Please attach output of failed command with added \-\-debug option.
Report bugs to <dm-crypt@saout.de>.
.SH COPYRIGHT
Copyright \(co 2004 Christophe Saout
.br
Copyright \(co 2004-2006 Clemens Fruhwirth
.br
Copyright \(co 2009-2010 Red Hat, Inc.
Copyright \(co 2009 Red Hat, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

View File

@@ -1,8 +1,4 @@
de
fr
id
it
nl
pl
sv
vi

240
po/id.po
View File

@@ -1,14 +1,14 @@
# Pesan bahasa Indonesia untuk cryptsetup.
# Copyright (C) 2009 Free Software Foundation, Inc.
# This file is put in the public domain.
# Arif E. Nugroho <arif_endro@yahoo.com>, 2009, 2010.
# Arif E. Nugroho <arif_endro@yahoo.com>, 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: cryptsetup 1.1.0-rc4\n"
"Project-Id-Version: cryptsetup 1.1.0-rc3\n"
"Report-Msgid-Bugs-To: dm-crypt@saout.de\n"
"POT-Creation-Date: 2009-12-30 20:09+0100\n"
"PO-Revision-Date: 2010-01-27 07:30+0700\n"
"POT-Creation-Date: 2009-11-16 21:41+0100\n"
"PO-Revision-Date: 2009-11-28 09:00+0700\n"
"Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
@@ -89,7 +89,7 @@ msgstr "Kunci %d tidak aktif. Tidak dapat menghapus.\n"
msgid "This is the last keyslot. Device will become unusable after purging this key."
msgstr "Ini adalah slot kunci terakhir. Perangkat mungkin akan menjadi tidak stabil setelah menghapus kunci ini."
#: lib/setup.c:364 lib/setup.c:1651 lib/setup.c:1704 lib/setup.c:1761
#: lib/setup.c:364 lib/setup.c:1650 lib/setup.c:1703 lib/setup.c:1760
#, c-format
msgid "Device %s already exists.\n"
msgstr "Perangkat %s telah ada.\n"
@@ -99,16 +99,16 @@ msgstr "Perangkat %s telah ada.\n"
msgid "Invalid key size %d.\n"
msgstr "Besar kunci %d tidak valid.\n"
#: lib/setup.c:471 lib/setup.c:1656
#: lib/setup.c:471 lib/setup.c:1655
#, c-format
msgid "Enter passphrase for %s: "
msgstr "Masukan kata sandi untuk %s: "
#: lib/setup.c:600 lib/setup.c:628 lib/setup.c:1365 lib/setup.c:1712
#: lib/setup.c:600 lib/setup.c:628 lib/setup.c:1364 lib/setup.c:1711
msgid "Enter passphrase: "
msgstr "Masukan kata sandi: "
#: lib/setup.c:661 lib/setup.c:1040 lib/setup.c:1803
#: lib/setup.c:661 lib/setup.c:1040 lib/setup.c:1802
#, c-format
msgid "Device %s is not active.\n"
msgstr "Perangkat %s tidak aktif.\n"
@@ -133,185 +133,146 @@ msgstr "Ukuran kunci tidak valid.\n"
msgid "Can't format LUKS without device.\n"
msgstr "Tidak dapat memformat LUKS tanpat perangkat.\n"
#: lib/setup.c:1112
#: lib/setup.c:1111
#, c-format
msgid "Can't wipe header on device %s.\n"
msgstr "Tidak dapat menghapus kepala di perangkat %s.\n"
#: lib/setup.c:1154
#: lib/setup.c:1153
#, c-format
msgid "Unknown crypt device type %s requested.\n"
msgstr "Tipe perangkat sandi %s yang diminta tidak diketahui.\n"
msgid "Unkown crypt device type %s requesed.\n"
msgstr "Tipe perangkat crypt %s yang diminta tidak dikenal.\n"
#: lib/setup.c:1187
#: lib/setup.c:1186
msgid "Cannot initialize crypto backend.\n"
msgstr "Tidak dapat menginisialisasi backend crypto.\n"
#: lib/setup.c:1261
#: lib/setup.c:1260
#, c-format
msgid "Volume %s is not active.\n"
msgstr "Volume %s tidak aktif.\n"
#: lib/setup.c:1274
#: lib/setup.c:1273
#, c-format
msgid "Volume %s is already suspended.\n"
msgstr "Volume %s telah disuspend.\n"
#: lib/setup.c:1300 lib/setup.c:1347 lib/setup.c:1406 lib/setup.c:1484
#: lib/setup.c:1556 lib/setup.c:1601 lib/setup.c:1695 lib/setup.c:1752
#: lib/setup.c:1873 lib/setup.c:1956 lib/setup.c:2056
#: lib/setup.c:1299 lib/setup.c:1346 lib/setup.c:1405 lib/setup.c:1483
#: lib/setup.c:1555 lib/setup.c:1600 lib/setup.c:1694 lib/setup.c:1751
#: lib/setup.c:1872 lib/setup.c:1955 lib/setup.c:2055
msgid "This operation is supported only for LUKS device.\n"
msgstr "Operasi ini hanya didukunga untuk perangkat LUKS.\n"
#: lib/setup.c:1311 lib/setup.c:1358
#: lib/setup.c:1310 lib/setup.c:1357
#, c-format
msgid "Volume %s is not suspended.\n"
msgstr "Volume %s tidak disuspend.\n"
#: lib/setup.c:1420 lib/setup.c:1498
#: lib/setup.c:1419 lib/setup.c:1497
msgid "Cannot add key slot, all slots disabled and no volume key provided.\n"
msgstr "Tidak dapat menambahkan slot kunci, seluruh slot tidak aktif dan tidak ada volume kunci yang disediakan.\n"
#: lib/setup.c:1429 lib/setup.c:1504 lib/setup.c:1507
#: lib/setup.c:1428 lib/setup.c:1503 lib/setup.c:1506
msgid "Enter any passphrase: "
msgstr "Masukan kata sandi: "
#: lib/setup.c:1448 lib/setup.c:1522 lib/setup.c:1526 lib/setup.c:1579
#: lib/setup.c:1447 lib/setup.c:1521 lib/setup.c:1525 lib/setup.c:1578
msgid "Enter new passphrase for key slot: "
msgstr "Masukan kasa sandi baru untuk slot kunci: "
#: lib/setup.c:1570 lib/setup.c:1772 lib/setup.c:1884
#: lib/setup.c:1569 lib/setup.c:1771 lib/setup.c:1883
msgid "Volume key does not match the volume.\n"
msgstr "Kunci volume tidak cocok dengan volume.\n"
#: lib/setup.c:1607
#: lib/setup.c:1606
#, c-format
msgid "Key slot %d is invalid.\n"
msgstr "Slot kunci %d tidak valid.\n"
#: lib/setup.c:1612
#: lib/setup.c:1611
#, c-format
msgid "Key slot %d is not used.\n"
msgstr "Slot kunci %d tidak digunakan.\n"
#: lib/setup.c:1799
#: lib/setup.c:1798
#, c-format
msgid "Device %s is busy.\n"
msgstr "Perangkat %s sibuk.\n"
#: lib/setup.c:1807
#: lib/setup.c:1806
#, c-format
msgid "Invalid device %s.\n"
msgstr "Perangkat %s tidak valid.\n"
#: lib/setup.c:1831
#: lib/setup.c:1830
msgid "Volume key buffer too small.\n"
msgstr "Penyangga kunci volume terlalu kecil.\n"
#: lib/setup.c:1839
#: lib/setup.c:1838
msgid "Cannot retrieve volume key for plain device.\n"
msgstr "Tidak dapat mendapatkan kunci volume untuk perangkat.\n"
#: lib/setup.c:1861
#: lib/setup.c:1860
#, c-format
msgid "This operation is not supported for %s crypt device.\n"
msgstr "Operasi ini tidak didukung untuk perangkat crypt %s.\n"
#: lib/utils.c:416
#, c-format
msgid "Failed to open key file %s.\n"
msgstr "Gagal membuka berkas kunci %s.\n"
#: lib/utils.c:436
msgid "Error reading passphrase from terminal.\n"
msgstr "Kesalahan dalam pembacaan kata sandi dari terminal.\n"
#: lib/utils.c:441
msgid "Verify passphrase: "
msgstr "Memverifikasi kata sandi: "
#: lib/utils.c:443
msgid "Passphrases do not match.\n"
msgstr "Kata sandi tidak cocok.\n"
#: lib/utils.c:458
msgid "Can't do passphrase verification on non-tty inputs.\n"
msgstr "Tidak dapat melakukan verifikasi kata sandi di masukan bukan tty.\n"
#: lib/utils.c:471
#, c-format
msgid "Failed to stat key file %s.\n"
msgstr "Gagal memperoleh data statistik berkas kunci %s.\n"
#: lib/utils.c:475
#, c-format
msgid "Warning: exhausting read requested, but key file %s is not a regular file, function might never return.\n"
msgstr "Peringatan: pembacaan yang melelahkan diminta, tetapi berkas kunci %s bukan sebuah berkas biasa, fungsi mungkin tidak pernah kembali.\n"
#: lib/utils.c:487
msgid "Out of memory while reading passphrase.\n"
msgstr "Kehabisan memori ketika membaca kata sandi.\n"
#: lib/utils.c:494
msgid "Error reading passphrase.\n"
msgstr "Kesalahan dalam pembacaan kata sandi.\n"
#: lib/utils.c:531
#: lib/utils.c:521
#, c-format
msgid "Device %s doesn't exist or access denied.\n"
msgstr "Perangkat %s tidak ada atau akses ditolak.\n"
#: lib/utils.c:538
#: lib/utils.c:528
#, c-format
msgid "Cannot open device %s for %s%s access.\n"
msgstr "Tidak dapat membuka perangkat %s untuk akses %s%s.\n"
#: lib/utils.c:539
#: lib/utils.c:529
msgid "exclusive "
msgstr "ekslusif "
#: lib/utils.c:540
#: lib/utils.c:530
msgid "writable"
msgstr "dapat-ditulis"
#: lib/utils.c:540
#: lib/utils.c:530
msgid "read-only"
msgstr "baca-saja"
#: lib/utils.c:547
#: lib/utils.c:537
#, c-format
msgid "Cannot read device %s.\n"
msgstr "Tidak dapat membaca perangkat %s.\n"
#: lib/utils.c:577
#: lib/utils.c:567
#, c-format
msgid "Cannot open device: %s\n"
msgstr "Tidak dapat membuka perangkat: %s\n"
#: lib/utils.c:587
#: lib/utils.c:577
#, c-format
msgid "BLKROGET failed on device %s.\n"
msgstr "BLKROGET gagal di perangkat %s.\n"
#: lib/utils.c:612
#: lib/utils.c:602
#, c-format
msgid "BLKGETSIZE failed on device %s.\n"
msgstr "BLKGETSIZE gagal di perangkat %s.\n"
#: lib/utils.c:660
#: lib/utils.c:650
msgid "WARNING!!! Possibly insecure memory. Are you root?\n"
msgstr "PERINGATAN!!! Kemungkinan menggunakan memori tidak aman. Apakah anda root?\n"
#: lib/utils.c:666
#: lib/utils.c:656
msgid "Cannot get process priority.\n"
msgstr "Tidak dapat mendapatkan prioritas proses.\n"
#: lib/utils.c:669 lib/utils.c:682
#: lib/utils.c:659 lib/utils.c:672
#, c-format
msgid "setpriority %u failed: %s"
msgstr "setpriority %u gagal: %s"
#: lib/utils.c:680
#: lib/utils.c:670
msgid "Cannot unlock memory."
msgstr "Tidak dapat membuka kunci memori."
@@ -447,57 +408,57 @@ msgstr "Error selama memperbarui header LUKS di perangkat %s.\n"
msgid "Error re-reading LUKS header after update on device %s.\n"
msgstr "Error membaca-kembali header LUKS setelah memperbarui di perangkat %s.\n"
#: luks/keymanage.c:394
#, c-format
msgid "Not compatible PBKDF2 options (using hash algorithm %s)."
msgstr "Pilihan PBKDF2 tidak kompatibel (menggunakan algoritma hash %s)."
#: luks/keymanage.c:439
#: luks/keymanage.c:422
msgid "Cannot create LUKS header: reading random salt failed.\n"
msgstr "Tidak dapat membuat header LUKS: pembacaan garam acak gagal.\n"
#: luks/keymanage.c:456
#: luks/keymanage.c:433
#, c-format
msgid "Cannot create LUKS header: header digest failed (using hash %s).\n"
msgstr "Tidak dapat membuat header LUKS: digest header gagal (menggunakan hash %s).\n"
#: luks/keymanage.c:473
#: luks/keymanage.c:450
msgid "Wrong UUID format provided, generating new one.\n"
msgstr "Format UUID yang disediakan berbeda, membuat yang baru.\n"
#: luks/keymanage.c:500
#: luks/keymanage.c:475
#, c-format
msgid "Key slot %d active, purge first.\n"
msgstr "Slot kunci %d aktif, hapus terlebih dahulu.\n"
#: luks/keymanage.c:505
#: luks/keymanage.c:480
#, c-format
msgid "Key slot %d material includes too few stripes. Header manipulation?\n"
msgstr "Slot kunci %d material terdapat terlalu sedikit stripes. Manipulasi header?\n"
#: luks/keymanage.c:564
#: luks/keymanage.c:489
#, c-format
msgid "Not compatible PBKDF2 options (using hash algorithm %s)."
msgstr "Pilihan PBKDF2 tidak kompatibel (menggunakan algoritma hash %s)."
#: luks/keymanage.c:536
msgid "Failed to write to key storage.\n"
msgstr "Gagal untuk menulis di penyimpanan kunci.\n"
#: luks/keymanage.c:641
#: luks/keymanage.c:613
msgid "Failed to read from key storage.\n"
msgstr "Gagal untuk membaca dari penyimpanan kunci.\n"
#: luks/keymanage.c:650
#: luks/keymanage.c:622
#, c-format
msgid "Key slot %d unlocked.\n"
msgstr "Slot kunci %d tidak terkunci.\n"
#: luks/keymanage.c:683
#: luks/keymanage.c:655
msgid "No key available with this passphrase.\n"
msgstr "Tidak ada kunci tersedia dengan kata sandi ini.\n"
#: luks/keymanage.c:760
#: luks/keymanage.c:732
#, c-format
msgid "Key slot %d is invalid, please select keyslot between 0 and %d.\n"
msgstr "Slot kunci %d tidak valid, mohon pilih slot kunci diantara 0 dan %d.\n"
#: luks/keymanage.c:772
#: luks/keymanage.c:744
#, c-format
msgid "Cannot wipe device %s.\n"
msgstr "Tidak dapat menghapus perangkat %s.\n"
@@ -666,149 +627,136 @@ msgstr ""
"<slot kunci> adalah nomor slot kunci LUKS untuk dimodifikasi\n"
"<berkas kunci> adalah berkas kunci opsional untuk kunci baru untuk aksi luksAddKey\n"
#: src/cryptsetup.c:650
#, c-format
msgid ""
"\n"
"Default compiled-in device cipher parameters:\n"
"\tplain: %s, Key: %d bits, Password hashing: %s\n"
"\tLUKS1: %s, Key: %d bits, LUKS header hashing: %s\n"
msgstr ""
"\n"
"Parameter baku yang terkompilasi dalam perangkat penyandi:\n"
"\tterbuka: %s, Kunci: %d bits, Hash kata sandi : %s\n"
"\tLUKS1 : %s, Kunci: %d bits, Hash kepala LUKS: %s\n"
#: src/cryptsetup.c:697
#: src/cryptsetup.c:691
msgid "Show this help message"
msgstr "Tampilkan pesan bantuan ini"
#: src/cryptsetup.c:698
#: src/cryptsetup.c:692
msgid "Display brief usage"
msgstr "Tampilkan penggunaan singkat"
#: src/cryptsetup.c:702
#: src/cryptsetup.c:696
msgid "Help options:"
msgstr "Pilihan bantuan:"
#: src/cryptsetup.c:703
#: src/cryptsetup.c:697
msgid "Shows more detailed error messages"
msgstr "Tampilkan pesan kesalahan secara lebih detail"
#: src/cryptsetup.c:704
#: src/cryptsetup.c:698
msgid "Show debug messages"
msgstr "Tampilkan pesan penelusuran"
#: src/cryptsetup.c:705
#: src/cryptsetup.c:699
msgid "The cipher used to encrypt the disk (see /proc/crypto)"
msgstr "Cipher yang digunakan untuk mengenkripsi ke disk (lihat /proc/crypto)"
#: src/cryptsetup.c:706
#: src/cryptsetup.c:700
msgid "The hash used to create the encryption key from the passphrase"
msgstr "Hash yang digunakan untuk membuat kunci enkripsi dari kata sandi"
#: src/cryptsetup.c:707
#: src/cryptsetup.c:701
msgid "Verifies the passphrase by asking for it twice"
msgstr "Verifikasi kata sandi dengan menanyakan itu dua kali"
#: src/cryptsetup.c:708
#: src/cryptsetup.c:702
msgid "Read the key from a file (can be /dev/random)"
msgstr "Baca kunci dari sebuah berkas (dapat berupa /dev/random)"
#: src/cryptsetup.c:709
#: src/cryptsetup.c:703
msgid "Read the volume (master) key from file."
msgstr "Baca volume (master) kunci dari berkas."
#: src/cryptsetup.c:710
#: src/cryptsetup.c:704
msgid "The size of the encryption key"
msgstr "Besar dari kunci enkripsi"
#: src/cryptsetup.c:710
#: src/cryptsetup.c:704
msgid "BITS"
msgstr "BITS"
#: src/cryptsetup.c:711
#: src/cryptsetup.c:705
msgid "Slot number for new key (default is first free)"
msgstr "Nomor slot untuk kunci baru (baku adalah yang kosong pertama)"
#: src/cryptsetup.c:712
#: src/cryptsetup.c:706
msgid "The size of the device"
msgstr "Besar dari perangkat"
#: src/cryptsetup.c:712 src/cryptsetup.c:713 src/cryptsetup.c:714
#: src/cryptsetup.c:722
#: src/cryptsetup.c:706 src/cryptsetup.c:707 src/cryptsetup.c:708
#: src/cryptsetup.c:716
msgid "SECTORS"
msgstr "SEKTOR"
#: src/cryptsetup.c:713
#: src/cryptsetup.c:707
msgid "The start offset in the backend device"
msgstr "Awal ofset dalam perangkat backend"
#: src/cryptsetup.c:714
#: src/cryptsetup.c:708
msgid "How many sectors of the encrypted data to skip at the beginning"
msgstr "Berapa banyak sektor dari data terenkripsi yang dilewatkan di awal"
#: src/cryptsetup.c:715
#: src/cryptsetup.c:709
msgid "Create a readonly mapping"
msgstr "Buat pemetaan baca-saja"
#: src/cryptsetup.c:716
#: src/cryptsetup.c:710
msgid "PBKDF2 iteration time for LUKS (in ms)"
msgstr "waktu iterasi PBKDF2 untuk LUKS (dalam mdet)"
#: src/cryptsetup.c:717
#: src/cryptsetup.c:711
msgid "msecs"
msgstr "mdetik"
#: src/cryptsetup.c:718
#: src/cryptsetup.c:712
msgid "Do not ask for confirmation"
msgstr "Jangan tanya untuk konfirmasi"
#: src/cryptsetup.c:719
#: src/cryptsetup.c:713
msgid "Print package version"
msgstr "Tampilkan versi paket"
#: src/cryptsetup.c:720
#: src/cryptsetup.c:714
msgid "Timeout for interactive passphrase prompt (in seconds)"
msgstr "Waktu habis untuk pertanyaan interaktif kata sandi (dalam detik)"
#: src/cryptsetup.c:720
#: src/cryptsetup.c:714
msgid "secs"
msgstr "detik"
#: src/cryptsetup.c:721
msgid "How often the input of the passphrase can be retried"
#: src/cryptsetup.c:715
msgid "How often the input of the passphrase canbe retried"
msgstr "Seberapa sering masukan dari kata sandi dapat dicoba"
#: src/cryptsetup.c:722
#: src/cryptsetup.c:716
msgid "Align payload at <n> sector boundaries - for luksFormat"
msgstr "Sesuaikan muatan di batas sektor <n> - untuk luksFormat"
#: src/cryptsetup.c:723
#: src/cryptsetup.c:717
msgid "(Obsoleted, see man page.)"
msgstr "(Ditinggalkan, lihat halaman petunjuk penggunaan.)"
#: src/cryptsetup.c:724
#: src/cryptsetup.c:718
msgid "File with LUKS header and keyslots backup."
msgstr "Berkas dengan header LUKS dan cadangan slot kunci."
#: src/cryptsetup.c:742
#: src/cryptsetup.c:736
msgid "[OPTION...] <action> <action-specific>]"
msgstr "[PILIHAN...] <aksi> <aksi-spesifik>]"
#: src/cryptsetup.c:778
#: src/cryptsetup.c:772
msgid "Key size must be a multiple of 8 bits"
msgstr "Kunci harus kelipatan dari 8 bit"
#: src/cryptsetup.c:782
#: src/cryptsetup.c:776
msgid "Argument <action> missing."
msgstr "Argumen <aksi> hilang."
#: src/cryptsetup.c:788
#: src/cryptsetup.c:782
msgid "Unknown action."
msgstr "Aksi tidak diketahui."
#: src/cryptsetup.c:803
#: src/cryptsetup.c:797
#, c-format
msgid "%s: requires %s as arguments"
msgstr "%s: membutuhkan %s sebagai argumen"

814
po/it.po
View File

@@ -1,814 +0,0 @@
# Italian translation for cryptsetup.
# Copyright (C) 2010 Free Software Foundation, Inc.
# This file is put in the public domain.
# Sergio Zanchetta <primes2h@ubuntu.com>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: cryptsetup-1.1.0-rc4\n"
"Report-Msgid-Bugs-To: dm-crypt@saout.de\n"
"POT-Creation-Date: 2009-12-30 20:09+0100\n"
"PO-Revision-Date: 2010-03-03 15:10+0100\n"
"Last-Translator: Sergio Zanchetta <primes2h@ubuntu.com>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: lib/libdevmapper.c:48
msgid "Cannot initialize device-mapper. Is dm_mod kernel module loaded?\n"
msgstr "Impossibile inizializzare device-mapper. Il modulo kernel dm_mod è caricato?\n"
#: lib/libdevmapper.c:304
#, c-format
msgid "DM-UUID for device %s was truncated.\n"
msgstr "DM-UUID per il device %s è stato troncato.\n"
#: lib/setup.c:103
#, c-format
msgid "Cannot not read %d bytes from key file %s.\n"
msgstr "Impossibile leggere %d byte dal file chiave %s.\n"
#: lib/setup.c:115
msgid "Key processing error.\n"
msgstr "Errore nell'elaborazione della chiave.\n"
#: lib/setup.c:169
msgid "All key slots full.\n"
msgstr "Tutti gli slot di chiave sono pieni.\n"
#: lib/setup.c:176 lib/setup.c:304 lib/setup.c:778
#, c-format
msgid "Key slot %d is invalid, please select between 0 and %d.\n"
msgstr "Lo slot di chiave %d non è valido, selezionarne uno tra 0 e %d.\n"
#: lib/setup.c:182
#, c-format
msgid "Key slot %d is full, please select another one.\n"
msgstr "Lo slot di chiave %d è pieno, selezionarne un altro.\n"
#: lib/setup.c:201
msgid "Enter any remaining LUKS passphrase: "
msgstr "Inserire qualunque passphrase LUKS rimanente: "
#: lib/setup.c:222
#, c-format
msgid "Key slot %d verified.\n"
msgstr "Slot di chiave %d verificato.\n"
#: lib/setup.c:257
#, c-format
msgid "Cannot get info about device %s.\n"
msgstr "Impossibile ottenere informazioni sul device %s.\n"
#: lib/setup.c:264
#, c-format
msgid "Device %s has zero size.\n"
msgstr "Il device %s ha dimensione zero.\n"
#: lib/setup.c:268
#, c-format
msgid "Device %s is too small.\n"
msgstr "Il device %s è troppo piccolo.\n"
#: lib/setup.c:293
msgid "Enter LUKS passphrase to be deleted: "
msgstr "Inserire la passphrase LUKS da eliminare: "
#: lib/setup.c:299
#, c-format
msgid "key slot %d selected for deletion.\n"
msgstr "slot di chiave %d selezionato per l'eliminazione.\n"
#: lib/setup.c:310
#, c-format
msgid "Key %d not active. Can't wipe.\n"
msgstr "Chiave %d non attiva. Impossibile ripulirla.\n"
#: lib/setup.c:316
msgid "This is the last keyslot. Device will become unusable after purging this key."
msgstr "Questo è l'ultimo slot di chiave. Il device sarà inutilizzabile dopo aver eliminato questa chiave."
#: lib/setup.c:364 lib/setup.c:1651 lib/setup.c:1704 lib/setup.c:1761
#, c-format
msgid "Device %s already exists.\n"
msgstr "Il device %s è già esistente.\n"
#: lib/setup.c:369
#, c-format
msgid "Invalid key size %d.\n"
msgstr "Dimensione della chiave non valida %d.\n"
#: lib/setup.c:471 lib/setup.c:1656
#, c-format
msgid "Enter passphrase for %s: "
msgstr "Inserire passphrase per %s: "
#: lib/setup.c:600 lib/setup.c:628 lib/setup.c:1365 lib/setup.c:1712
msgid "Enter passphrase: "
msgstr "Inserire passphrase: "
#: lib/setup.c:661 lib/setup.c:1040 lib/setup.c:1803
#, c-format
msgid "Device %s is not active.\n"
msgstr "Il device %s non è attivo.\n"
#: lib/setup.c:770
msgid "No known cipher specification pattern detected.\n"
msgstr "Rilevato un modello di specifica cifrario non conosciuto.\n"
#: lib/setup.c:784
msgid "Enter LUKS passphrase: "
msgstr "Inserire passphrase LUKS: "
#: lib/setup.c:1060
msgid "Invalid plain crypt parameters.\n"
msgstr "Parametri di cifratura in chiaro non validi.\n"
#: lib/setup.c:1065
msgid "Invalid key size.\n"
msgstr "Dimensione della chiave non valida.\n"
#: lib/setup.c:1097
msgid "Can't format LUKS without device.\n"
msgstr "Impossibile formattare LUKS senza device.\n"
#: lib/setup.c:1112
#, c-format
msgid "Can't wipe header on device %s.\n"
msgstr "Impossibile ripulire l'header sul device %s.\n"
#: lib/setup.c:1154
#, c-format
msgid "Unknown crypt device type %s requested.\n"
msgstr "Richiesto device cifrato di tipo %s sconosciuto.\n"
#: lib/setup.c:1187
msgid "Cannot initialize crypto backend.\n"
msgstr "Impossibile inizializzare il backend crypto.\n"
#: lib/setup.c:1261
#, c-format
msgid "Volume %s is not active.\n"
msgstr "Il volume %s non è attivo.\n"
#: lib/setup.c:1274
#, c-format
msgid "Volume %s is already suspended.\n"
msgstr "Il volume %s è già sospeso.\n"
#: lib/setup.c:1300 lib/setup.c:1347 lib/setup.c:1406 lib/setup.c:1484
#: lib/setup.c:1556 lib/setup.c:1601 lib/setup.c:1695 lib/setup.c:1752
#: lib/setup.c:1873 lib/setup.c:1956 lib/setup.c:2056
msgid "This operation is supported only for LUKS device.\n"
msgstr "Questa operazione è supportata solo per i device LUKS.\n"
#: lib/setup.c:1311 lib/setup.c:1358
#, c-format
msgid "Volume %s is not suspended.\n"
msgstr "Il volume %s non è sospeso.\n"
#: lib/setup.c:1420 lib/setup.c:1498
msgid "Cannot add key slot, all slots disabled and no volume key provided.\n"
msgstr "Impossibile aggiungere slot di chiave, tutti gli slot disabilitati e nessuna chiave di volume fornita.\n"
#: lib/setup.c:1429 lib/setup.c:1504 lib/setup.c:1507
msgid "Enter any passphrase: "
msgstr "Inserire una qualsiasi passphrase: "
#: lib/setup.c:1448 lib/setup.c:1522 lib/setup.c:1526 lib/setup.c:1579
msgid "Enter new passphrase for key slot: "
msgstr "Inserire nuova passphrase per lo slot di chiave: "
#: lib/setup.c:1570 lib/setup.c:1772 lib/setup.c:1884
msgid "Volume key does not match the volume.\n"
msgstr "La chiave di volume non corrisponde al volume.\n"
#: lib/setup.c:1607
#, c-format
msgid "Key slot %d is invalid.\n"
msgstr "Lo slot di chiave %d non è valido.\n"
#: lib/setup.c:1612
#, c-format
msgid "Key slot %d is not used.\n"
msgstr "Lo slot di chiave %d non è utilizzato.\n"
#: lib/setup.c:1799
#, c-format
msgid "Device %s is busy.\n"
msgstr "Il device %s è occupato.\n"
#: lib/setup.c:1807
#, c-format
msgid "Invalid device %s.\n"
msgstr "Device %s non valido.\n"
#: lib/setup.c:1831
msgid "Volume key buffer too small.\n"
msgstr "Buffer di chiave del volume troppo piccolo.\n"
#: lib/setup.c:1839
msgid "Cannot retrieve volume key for plain device.\n"
msgstr "Impossibile recuperare la chiave di volume per device in chiaro.\n"
#: lib/setup.c:1861
#, c-format
msgid "This operation is not supported for %s crypt device.\n"
msgstr "Questa operazione non è supportata per il device cifrato %s.\n"
#: lib/utils.c:416
#, c-format
msgid "Failed to open key file %s.\n"
msgstr "Impossibile aprire il file chiave %s.\n"
#: lib/utils.c:436
msgid "Error reading passphrase from terminal.\n"
msgstr "Errore nella lettura della passphrase dal terminale.\n"
#: lib/utils.c:441
msgid "Verify passphrase: "
msgstr "Verifica passphrase: "
#: lib/utils.c:443
msgid "Passphrases do not match.\n"
msgstr "Le passphrase non corrispondono.\n"
#: lib/utils.c:458
msgid "Can't do passphrase verification on non-tty inputs.\n"
msgstr "Impossibile verificare la passphrase da un input non tty.\n"
#: lib/utils.c:471
#, c-format
msgid "Failed to stat key file %s.\n"
msgstr "Stat del file chiave %s non riuscito.\n"
#: lib/utils.c:475
#, c-format
msgid "Warning: exhausting read requested, but key file %s is not a regular file, function might never return.\n"
msgstr "Attenzione: è richiesta una lettura esaustiva, ma essendo %s un file chiave non regolare la funzione potrebbe non ritornare mai.\n"
#: lib/utils.c:487
msgid "Out of memory while reading passphrase.\n"
msgstr "Memoria esaurita durante la lettura della passphrase.\n"
#: lib/utils.c:494
msgid "Error reading passphrase.\n"
msgstr "Errore nella lettura della passphrase.\n"
#: lib/utils.c:531
#, c-format
msgid "Device %s doesn't exist or access denied.\n"
msgstr "Il device %s non esiste oppure è negato l'accesso.\n"
#: lib/utils.c:538
#, c-format
msgid "Cannot open device %s for %s%s access.\n"
msgstr "Impossibile aprire il device %s per l'accesso %s%s.\n"
#: lib/utils.c:539
msgid "exclusive "
msgstr "esclusivo "
#: lib/utils.c:540
msgid "writable"
msgstr "in scrittura"
#: lib/utils.c:540
msgid "read-only"
msgstr "in sola lettura"
#: lib/utils.c:547
#, c-format
msgid "Cannot read device %s.\n"
msgstr "Impossibile leggere il device %s.\n"
#: lib/utils.c:577
#, c-format
msgid "Cannot open device: %s\n"
msgstr "Impossibile aprire il device: %s\n"
#: lib/utils.c:587
#, c-format
msgid "BLKROGET failed on device %s.\n"
msgstr "BLKROGET non riuscito sul device %s.\n"
#: lib/utils.c:612
#, c-format
msgid "BLKGETSIZE failed on device %s.\n"
msgstr "BLKGETSIZE non riuscito sul device %s.\n"
#: lib/utils.c:660
msgid "WARNING!!! Possibly insecure memory. Are you root?\n"
msgstr "ATTENZIONE!!! È possibile che la memoria non sia sicura. Si è root?\n"
#: lib/utils.c:666
msgid "Cannot get process priority.\n"
msgstr "Impossibile ottenere la priorità del processo.\n"
#: lib/utils.c:669 lib/utils.c:682
#, c-format
msgid "setpriority %u failed: %s"
msgstr "setpriority %u non riuscito: %s"
#: lib/utils.c:680
msgid "Cannot unlock memory."
msgstr "Impossibile sbloccare la memoria."
#: luks/keyencryption.c:68
#, c-format
msgid "Unable to obtain sector size for %s"
msgstr "Impossibile ottenere la dimensione del settore per %s"
#: luks/keyencryption.c:137
msgid "Failed to obtain device mapper directory."
msgstr "Recupero della directory device mapper non riuscito."
#: luks/keyencryption.c:153
#, c-format
msgid ""
"Failed to setup dm-crypt key mapping for device %s.\n"
"Check that kernel supports %s cipher (check syslog for more info).\n"
"%s"
msgstr ""
"Impostazione mappatura di chiave dm-crypt non riuscita per il device %s.\n"
"Controllare che il kernel supporti il cifrario %s (controllare il syslog per maggiori informazioni).\n"
"%s"
#: luks/keyencryption.c:163
msgid "Failed to open temporary keystore device.\n"
msgstr "Apertura del device temporaneo di deposito chiavi non riuscita.\n"
#: luks/keyencryption.c:170
msgid "Failed to access temporary keystore device.\n"
msgstr "Accesso al device temporaneo di deposito chiavi non riuscito.\n"
#: luks/keymanage.c:91
#, c-format
msgid "Requested file %s already exist.\n"
msgstr "Il file %s richiesto esiste già.\n"
#: luks/keymanage.c:111
#, c-format
msgid "Device %s is not LUKS device.\n"
msgstr "Il device %s non è un device LUKS.\n"
#: luks/keymanage.c:131
#, c-format
msgid "Cannot write header backup file %s.\n"
msgstr "Impossibile scrivere il file di backup dell'header %s.\n"
#: luks/keymanage.c:158
#, c-format
msgid "Backup file %s doesn't exist.\n"
msgstr "Il file di backup %s non esiste.\n"
#: luks/keymanage.c:166
msgid "Backup file do not contain valid LUKS header.\n"
msgstr "Il file di backup non contiene un header LUKS valido.\n"
#: luks/keymanage.c:179
#, c-format
msgid "Cannot open header backup file %s.\n"
msgstr "Impossibile aprire il file di backup dell'header %s.\n"
#: luks/keymanage.c:185
#, c-format
msgid "Cannot read header backup file %s.\n"
msgstr "Impossibile leggere il file di backup dell'header %s.\n"
#: luks/keymanage.c:196
msgid "Data offset or key size differs on device and backup, restore failed.\n"
msgstr "L'offset di dati oppure la dimensione della chiave sono diversi tra il device e il backup, ripristino non riuscito.\n"
#: luks/keymanage.c:204
#, c-format
msgid "Device %s %s%s"
msgstr "Il device %s %s%s"
#: luks/keymanage.c:205
msgid "does not contain LUKS header. Replacing header can destroy data on that device."
msgstr "non contiene un header LUKS. La sostituzione dell'header può distruggere i dati in quel device."
#: luks/keymanage.c:206
msgid "already contains LUKS header. Replacing header will destroy existing keyslots."
msgstr "contiene già un header LUKS. Sostituendo l'header verranno distrutti gli slot di chiave esistenti."
#: luks/keymanage.c:207
msgid ""
"\n"
"WARNING: real device header has different UUID than backup!"
msgstr ""
"\n"
"ATTENZIONE: l'header reale del device ha un UUID diverso da quello di backup."
#: luks/keymanage.c:222 luks/keymanage.c:319 luks/keymanage.c:354
#, c-format
msgid "Cannot open device %s.\n"
msgstr "Impossibile aprire il device %s.\n"
#: luks/keymanage.c:254
#, c-format
msgid "%s is not LUKS device.\n"
msgstr "%s non è un device LUKS.\n"
#: luks/keymanage.c:256
#, c-format
msgid "%s is not LUKS device."
msgstr "%s non è un device LUKS."
#: luks/keymanage.c:259
#, c-format
msgid "Unsupported LUKS version %d.\n"
msgstr "Versione %d di LUKS non supportata.\n"
#: luks/keymanage.c:262
#, c-format
msgid "Requested LUKS hash %s is not supported.\n"
msgstr "L'hash %s di LUKS richiesto non è supportato.\n"
#: luks/keymanage.c:293
#, c-format
msgid "Cannot open file %s.\n"
msgstr "Impossibile aprire il file %s.\n"
#: luks/keymanage.c:331
#, c-format
msgid "LUKS header detected but device %s is too small.\n"
msgstr "Rilevato un header LUKS ma il device %s è troppo piccolo.\n"
#: luks/keymanage.c:375
#, c-format
msgid "Error during update of LUKS header on device %s.\n"
msgstr "Errore durante l'aggiornamento dell'header LUKS sul device %s.\n"
#: luks/keymanage.c:382
#, c-format
msgid "Error re-reading LUKS header after update on device %s.\n"
msgstr "Errore nella rilettura dell'header LUKS dopo l'aggiornamento sul dispositivo %s.\n"
#: luks/keymanage.c:394
#, c-format
msgid "Not compatible PBKDF2 options (using hash algorithm %s)."
msgstr "Opzioni PBKDF2 non compatibili (usando l'algoritmo di hash %s)."
#: luks/keymanage.c:439
msgid "Cannot create LUKS header: reading random salt failed.\n"
msgstr "Impossibile creare l'header LUKS: lettura salt casuale non riuscita.\n"
#: luks/keymanage.c:456
#, c-format
msgid "Cannot create LUKS header: header digest failed (using hash %s).\n"
msgstr "Impossibile creare l'header LUKS: digest dell'header non riuscito (usando l'hash %s).\n"
#: luks/keymanage.c:473
msgid "Wrong UUID format provided, generating new one.\n"
msgstr "Fornito un formato UUID errato, generato uno nuovo.\n"
#: luks/keymanage.c:500
#, c-format
msgid "Key slot %d active, purge first.\n"
msgstr "Slot di chiave %d attivo, eliminarlo prima.\n"
#: luks/keymanage.c:505
#, c-format
msgid "Key slot %d material includes too few stripes. Header manipulation?\n"
msgstr "Il materiale dello slot di chiave %d contiene troppe poche strisce. Manipolazione dell'header?\n"
#: luks/keymanage.c:564
msgid "Failed to write to key storage.\n"
msgstr "Scrittura nel deposito chiavi non riuscita.\n"
#: luks/keymanage.c:641
msgid "Failed to read from key storage.\n"
msgstr "Lettura dal deposito chiavi non riuscita.\n"
#: luks/keymanage.c:650
#, c-format
msgid "Key slot %d unlocked.\n"
msgstr "Slot di chiave %d sbloccato.\n"
#: luks/keymanage.c:683
msgid "No key available with this passphrase.\n"
msgstr "Nessuna chiave disponibile con questa passphrase.\n"
#: luks/keymanage.c:760
#, c-format
msgid "Key slot %d is invalid, please select keyslot between 0 and %d.\n"
msgstr "Lo slot di chiave %d non è valido, selezionarne uno tra 0 e %d.\n"
#: luks/keymanage.c:772
#, c-format
msgid "Cannot wipe device %s.\n"
msgstr "Impossibile ripulire il device %s.\n"
#: src/cryptsetup.c:71 src/cryptsetup.c:89
msgid "<name> <device>"
msgstr "<nome> <device>"
#: src/cryptsetup.c:71
msgid "create device"
msgstr "crea il device"
#: src/cryptsetup.c:72 src/cryptsetup.c:73 src/cryptsetup.c:74
#: src/cryptsetup.c:82
msgid "<name>"
msgstr "<nome>"
#: src/cryptsetup.c:72
msgid "remove device"
msgstr "rimuove il device"
#: src/cryptsetup.c:73
msgid "resize active device"
msgstr "ridimensiona il device attivo"
#: src/cryptsetup.c:74
msgid "show device status"
msgstr "mostra lo stato del device"
#: src/cryptsetup.c:75 src/cryptsetup.c:77
msgid "<device> [<new key file>]"
msgstr "<device> [<nuovo file chiave>]"
#: src/cryptsetup.c:75
msgid "formats a LUKS device"
msgstr "formatta un device LUKS"
#: src/cryptsetup.c:76
msgid "<device> <name> "
msgstr "<device> <nome> "
#: src/cryptsetup.c:76
msgid "open LUKS device as mapping <name>"
msgstr "apre il device LUKS come mappatura in <nome>"
#: src/cryptsetup.c:77
msgid "add key to LUKS device"
msgstr "aggiunge la chiave al device LUKS"
#: src/cryptsetup.c:78
msgid "<device> [<key file>]"
msgstr "<device> [<file chiave>]"
#: src/cryptsetup.c:78
msgid "removes supplied key or key file from LUKS device"
msgstr "rimuove la chiave fornita o il file chiave dal device LUKS"
#: src/cryptsetup.c:79 src/cryptsetup.c:88
msgid "<device> <key slot>"
msgstr "<device> <slot di chiave>"
#: src/cryptsetup.c:79
msgid "wipes key with number <key slot> from LUKS device"
msgstr "ripulisce la chiave con numero <slot di chiave> dal device LUKS"
#: src/cryptsetup.c:80 src/cryptsetup.c:81 src/cryptsetup.c:83
#: src/cryptsetup.c:84 src/cryptsetup.c:85 src/cryptsetup.c:86
#: src/cryptsetup.c:87
msgid "<device>"
msgstr "<device>"
#: src/cryptsetup.c:80
msgid "print UUID of LUKS device"
msgstr "stampa l'UUID del device LUKS"
#: src/cryptsetup.c:81
msgid "tests <device> for LUKS partition header"
msgstr "esegue il test del <device> per l'header della partizione LUKS"
#: src/cryptsetup.c:82
msgid "remove LUKS mapping"
msgstr "rimuove la mappatura LUKS"
#: src/cryptsetup.c:83
msgid "dump LUKS partition information"
msgstr "esegue il dump delle informazioni sulla partizione LUKS"
#: src/cryptsetup.c:84
msgid "Suspend LUKS device and wipe key (all IOs are frozen)."
msgstr "Sospende il device LUKS e ripulisce la chiave (tutti gli IO sono congelati)"
#: src/cryptsetup.c:85
msgid "Resume suspended LUKS device."
msgstr "Ripristina il device LUKS sospeso."
#: src/cryptsetup.c:86
msgid "Backup LUKS device header and keyslots"
msgstr "Fa il backup dell'header del device e degli slot di chiave"
#: src/cryptsetup.c:87
msgid "Restore LUKS device header and keyslots"
msgstr "Ripristina l'header del device LUKS e gli slot di chiave"
#: src/cryptsetup.c:88
msgid "identical to luksKillSlot - DEPRECATED - see man page"
msgstr "identico a luksKillSlot - DEPRECATO - consultare la pagina man"
#: src/cryptsetup.c:89
msgid "modify active device - DEPRECATED - see man page"
msgstr "modifica il device attivo - DEPRECATO - consultare la pagina man"
#: src/cryptsetup.c:180
msgid "Command successful.\n"
msgstr "Comando eseguito con successo.\n"
#: src/cryptsetup.c:194
#, c-format
msgid "Command failed with code %i"
msgstr "Comando non riuscito con codice %i"
#: src/cryptsetup.c:222
msgid ""
"The reload action is deprecated. Please use \"dmsetup reload\" in case you really need this functionality.\n"
"WARNING: do not use reload to touch LUKS devices. If that is the case, hit Ctrl-C now.\n"
msgstr ""
"L'azione reload è deprecata. Usare \"dmsetup reload\" nel caso sia necessaria questa funzionalità.\n"
"ATTENZIONE: non usare ricarica per fare il touch del device LUKS. In questo caso, premere Ctrl-C adesso.\n"
#: src/cryptsetup.c:390
#, c-format
msgid "This will overwrite data on %s irrevocably."
msgstr "Ciò sovrascriverà i dati in %s in modo irreversibile."
#: src/cryptsetup.c:391
msgid "memory allocation error in action_luksFormat"
msgstr "errore di allocazione di memoria in action_luksFormat"
#: src/cryptsetup.c:421
msgid "Obsolete option --non-exclusive is ignored.\n"
msgstr "Opzione obsoleta, --non-exclusive ignorato.\n"
#: src/cryptsetup.c:581 src/cryptsetup.c:603
msgid "Option --header-backup-file is required.\n"
msgstr "È richiesta l'opzione --header-backup-file.\n"
#: src/cryptsetup.c:637
msgid ""
"\n"
"<action> is one of:\n"
msgstr ""
"\n"
"<azione> è una tra:\n"
#: src/cryptsetup.c:643
#, c-format
msgid ""
"\n"
"<name> is the device to create under %s\n"
"<device> is the encrypted device\n"
"<key slot> is the LUKS key slot number to modify\n"
"<key file> optional key file for the new key for luksAddKey action\n"
msgstr ""
"\n"
"<nome> è il device da creare in %s\n"
"<device> è il device cifrato\n"
"<slot di chiave> è il numero dello slot di chiave LUKS da modificare\n"
"<file chiave> è il file chiave opzionale per la nuova chiave per l'azione luksAddKey\n"
#: src/cryptsetup.c:650
#, c-format
msgid ""
"\n"
"Default compiled-in device cipher parameters:\n"
"\tplain: %s, Key: %d bits, Password hashing: %s\n"
"\tLUKS1: %s, Key: %d bits, LUKS header hashing: %s\n"
msgstr ""
"\n"
"Parametri predefiniti del cifrario del device:\n"
"\tin chiaro: %s, chiave: %d bit, hash della password: %s\n"
"\tLUKS1: %s, chiave: %d bit, hash dell'header LUKS: %s\n"
#: src/cryptsetup.c:697
msgid "Show this help message"
msgstr "Mostra questo messaggio d'aiuto"
#: src/cryptsetup.c:698
msgid "Display brief usage"
msgstr "Mostra il modo d'uso sintetico"
#: src/cryptsetup.c:702
msgid "Help options:"
msgstr "Opzioni di aiuto:"
#: src/cryptsetup.c:703
msgid "Shows more detailed error messages"
msgstr "Mostra i messaggi di errore con maggior dettaglio"
#: src/cryptsetup.c:704
msgid "Show debug messages"
msgstr "Mostra i messaggi di debug"
#: src/cryptsetup.c:705
msgid "The cipher used to encrypt the disk (see /proc/crypto)"
msgstr "Il cifrario usato per cifrare il disco (vedere /proc/crypto)"
#: src/cryptsetup.c:706
msgid "The hash used to create the encryption key from the passphrase"
msgstr "L'hash usato per creare la chiave di cifratura dalla passphrase"
#: src/cryptsetup.c:707
msgid "Verifies the passphrase by asking for it twice"
msgstr "Verifica la passphrase chiedendola due volte"
#: src/cryptsetup.c:708
msgid "Read the key from a file (can be /dev/random)"
msgstr "Legge la chiave da un file (può essere /dev/random)"
#: src/cryptsetup.c:709
msgid "Read the volume (master) key from file."
msgstr "Legge la chiave (master) del volume dal file."
#: src/cryptsetup.c:710
msgid "The size of the encryption key"
msgstr "La dimensione della chiave di cifratura"
#: src/cryptsetup.c:710
msgid "BITS"
msgstr "BIT"
#: src/cryptsetup.c:711
msgid "Slot number for new key (default is first free)"
msgstr "Numero dello slot per la nuova chiave (il primo libero è quello predefinito)"
#: src/cryptsetup.c:712
msgid "The size of the device"
msgstr "La dimensione del device"
#: src/cryptsetup.c:712 src/cryptsetup.c:713 src/cryptsetup.c:714
#: src/cryptsetup.c:722
msgid "SECTORS"
msgstr "SETTORI"
#: src/cryptsetup.c:713
msgid "The start offset in the backend device"
msgstr "L'offset iniziale del device di backend"
#: src/cryptsetup.c:714
msgid "How many sectors of the encrypted data to skip at the beginning"
msgstr "Quanti settori dei dati cifrati saltare dall'inizio"
#: src/cryptsetup.c:715
msgid "Create a readonly mapping"
msgstr "Crea una mappatura in sola lettura"
#: src/cryptsetup.c:716
msgid "PBKDF2 iteration time for LUKS (in ms)"
msgstr "Tempo di iterazione di PBKDF2 per LUKS (in ms)"
#: src/cryptsetup.c:717
msgid "msecs"
msgstr "msec"
#: src/cryptsetup.c:718
msgid "Do not ask for confirmation"
msgstr "Non chiede conferma"
#: src/cryptsetup.c:719
msgid "Print package version"
msgstr "Stampa la versione del pacchetto"
#: src/cryptsetup.c:720
msgid "Timeout for interactive passphrase prompt (in seconds)"
msgstr "Timeout per il prompt interattivo della passphrase (in secondi)"
#: src/cryptsetup.c:720
msgid "secs"
msgstr "sec"
#: src/cryptsetup.c:721
msgid "How often the input of the passphrase can be retried"
msgstr "Quante volte può essere ritentato l'inserimento della passphrase"
#: src/cryptsetup.c:722
msgid "Align payload at <n> sector boundaries - for luksFormat"
msgstr "Allinea il payload agli estremi del settore <n> - per luksFormat"
#: src/cryptsetup.c:723
msgid "(Obsoleted, see man page.)"
msgstr "(Obsoleto, consultare la pagina man.)"
#: src/cryptsetup.c:724
msgid "File with LUKS header and keyslots backup."
msgstr "File con header LUKS e backup degli slot di chiave."
#: src/cryptsetup.c:742
msgid "[OPTION...] <action> <action-specific>]"
msgstr "[OPZIONE...] <azione> <azione-specifica>]"
#: src/cryptsetup.c:778
msgid "Key size must be a multiple of 8 bits"
msgstr "La dimensione della chiave deve essere un multiplo di 8 bit"
#: src/cryptsetup.c:782
msgid "Argument <action> missing."
msgstr "Argomento <azione> mancante."
#: src/cryptsetup.c:788
msgid "Unknown action."
msgstr "Azione sconosciuta."
#: src/cryptsetup.c:803
#, c-format
msgid "%s: requires %s as arguments"
msgstr "%s: richiede %s come argomenti"

821
po/nl.po
View File

@@ -1,821 +0,0 @@
# Dutch translation of cryptsetup.
# This file is distributed under the same license as the cryptsetup package.
# Copyright (C) 2010 Free Software Foundation, Inc.
#
# Koen Torfs <koen@indigetesdii.org>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: cryptsetup-1.1.1-rc1\n"
"Report-Msgid-Bugs-To: dm-crypt@saout.de\n"
"POT-Creation-Date: 2010-05-01 16:21+0200\n"
"PO-Revision-Date: 2010-05-27 00:27+0100\n"
"Last-Translator: Koen Torfs <koen@indigetesdii.org>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: lib/libdevmapper.c:105
msgid "Cannot find compatible device-mapper kernel modules.\n"
msgstr "Kan geen compatibele kernelmodules voor apparaatstoewijzer vinden.\n"
#: lib/libdevmapper.c:111
msgid "Cannot initialize device-mapper. Is dm_mod kernel module loaded?\n"
msgstr "Kan apparaatstoewijzer niet initialiseren. Is kernelmodule dm_mod geladen?\n"
#: lib/libdevmapper.c:408
#, c-format
msgid "DM-UUID for device %s was truncated.\n"
msgstr "DM-UUID voor apparaat %s is afgekapt.\n"
#: lib/setup.c:103
#, c-format
msgid "Cannot not read %d bytes from key file %s.\n"
msgstr "Kan %d bytes uit sleutelbestand %s niet lezen.\n"
#: lib/setup.c:115
#, c-format
msgid "Key processing error (using hash algorithm %s).\n"
msgstr "Sleutelbehandelingsfout (met hash-algoritme %s in gebruik).\n"
#: lib/setup.c:170
msgid "All key slots full.\n"
msgstr "Alle sleutelplaatsen zijn vol.\n"
#: lib/setup.c:177 lib/setup.c:305 lib/setup.c:779
#, c-format
msgid "Key slot %d is invalid, please select between 0 and %d.\n"
msgstr "Sleutelplaats %d is ongeldig, selecteer een plaats tussen 0 en %d.\n"
#: lib/setup.c:183
#, c-format
msgid "Key slot %d is full, please select another one.\n"
msgstr "Sleutelplaats %d is vol, selecteer een andere.\n"
#: lib/setup.c:202
msgid "Enter any remaining LUKS passphrase: "
msgstr "Voer enig LUKS-wachtwoord in: "
#: lib/setup.c:223
#, c-format
msgid "Key slot %d verified.\n"
msgstr "Sleutelplaats %d is geverifieerd.\n"
#: lib/setup.c:258
#, c-format
msgid "Cannot get info about device %s.\n"
msgstr "Kan geen informatie verkrijgen over apparaat %s.\n"
#: lib/setup.c:265
#, c-format
msgid "Device %s has zero size.\n"
msgstr "Apparaat %s heeft grootte nul.\n"
#: lib/setup.c:269
#, c-format
msgid "Device %s is too small.\n"
msgstr "Apparaat %s is te klein.\n"
#: lib/setup.c:294
msgid "Enter LUKS passphrase to be deleted: "
msgstr "Voer het te verwijderen LUKS-wachtwoord in: "
#: lib/setup.c:300
#, c-format
msgid "key slot %d selected for deletion.\n"
msgstr "sleutelplaats %d is geselecteerd voor verwijdering.\n"
#: lib/setup.c:311
#, c-format
msgid "Key %d not active. Can't wipe.\n"
msgstr "Sleutel %d is niet actief. Kan niet wissen.\n"
#: lib/setup.c:317
msgid "This is the last keyslot. Device will become unusable after purging this key."
msgstr "Dit is de laatste sleutelplaats. Apparaat zal onbruikbaar worden na het verwijderen van deze sleutel."
#: lib/setup.c:365 lib/setup.c:1687 lib/setup.c:1740 lib/setup.c:1797
#, c-format
msgid "Device %s already exists.\n"
msgstr "Apparaat %s bestaat reeds.\n"
#: lib/setup.c:370
#, c-format
msgid "Invalid key size %d.\n"
msgstr "Ongeldige sleutelgrootte %d.\n"
#: lib/setup.c:472 lib/setup.c:1692
#, c-format
msgid "Enter passphrase for %s: "
msgstr "Voer wachtwoord in voor %s: "
#: lib/setup.c:601 lib/setup.c:629 lib/setup.c:1401 lib/setup.c:1748
msgid "Enter passphrase: "
msgstr "Voer wachtwoord in: "
#: lib/setup.c:662 lib/setup.c:1046 lib/setup.c:1839
#, c-format
msgid "Device %s is not active.\n"
msgstr "Apparaat %s is niet actief.\n"
#: lib/setup.c:771
msgid "No known cipher specification pattern detected.\n"
msgstr "Geen bekend specificatiepatroon voor het sleutelalgoritme gevonden.\n"
#: lib/setup.c:785
msgid "Enter LUKS passphrase: "
msgstr "Voer LUKS-wachtwoord in: "
#: lib/setup.c:926 lib/setup.c:1153 lib/setup.c:1207 lib/setup.c:1232
#: lib/setup.c:1251
msgid "Cannot initialize crypto backend.\n"
msgstr "Kan versleutelings-backend niet initialiseren.\n"
#: lib/setup.c:1066
msgid "Invalid plain crypt parameters.\n"
msgstr "Ongeldige normale versleutelingsparameters.\n"
#: lib/setup.c:1071
msgid "Invalid key size.\n"
msgstr "Ongeldige sleutelgrootte.\n"
#: lib/setup.c:1104
msgid "Can't format LUKS without device.\n"
msgstr "Kan LUKS niet formatteren zonder apparaat.\n"
#: lib/setup.c:1126
#, c-format
msgid "Can't wipe header on device %s.\n"
msgstr "Kan koptekst op apparaat %s niet wissen.\n"
#: lib/setup.c:1174
#, c-format
msgid "Unknown crypt device type %s requested.\n"
msgstr "Onbekend versleutelingsapparaattype %s aangevraagd.\n"
#: lib/setup.c:1293
#, c-format
msgid "Volume %s is not active.\n"
msgstr "Opslagmedium %s is niet actief.\n"
#: lib/setup.c:1306
#, c-format
msgid "Volume %s is already suspended.\n"
msgstr "Opslagmedium %s is reeds geschorst.\n"
#: lib/setup.c:1334 lib/setup.c:1383 lib/setup.c:1442 lib/setup.c:1520
#: lib/setup.c:1592 lib/setup.c:1637 lib/setup.c:1731 lib/setup.c:1788
#: lib/setup.c:1909 lib/setup.c:1992 lib/setup.c:2092
msgid "This operation is supported only for LUKS device.\n"
msgstr "Deze operatie wordt enkel ondersteund voor LUKS-apparaten.\n"
#: lib/setup.c:1345 lib/setup.c:1394
#, c-format
msgid "Volume %s is not suspended.\n"
msgstr "Opslagmedium %s is niet geschorst.\n"
#: lib/setup.c:1456 lib/setup.c:1534
msgid "Cannot add key slot, all slots disabled and no volume key provided.\n"
msgstr "Kan geen sleutelplaats toevoegen, alle plaatsen zijn uitgeschakeld en geen sleutel tot het opslagmedium voorzien.\n"
#: lib/setup.c:1465 lib/setup.c:1540 lib/setup.c:1543
msgid "Enter any passphrase: "
msgstr "Voer een wachtwoord in: "
#: lib/setup.c:1484 lib/setup.c:1558 lib/setup.c:1562 lib/setup.c:1615
msgid "Enter new passphrase for key slot: "
msgstr "Voer een nieuw wachtwoord in voor de sleutelplaats: "
#: lib/setup.c:1606 lib/setup.c:1808 lib/setup.c:1920
msgid "Volume key does not match the volume.\n"
msgstr "Sleutel tot opslagmedium komt niet overeen met het opslagmedium.\n"
#: lib/setup.c:1643
#, c-format
msgid "Key slot %d is invalid.\n"
msgstr "Sleutelplaats %d is ongeldig.\n"
#: lib/setup.c:1648
#, c-format
msgid "Key slot %d is not used.\n"
msgstr "Sleutelplaats %d is niet in gebruik.\n"
#: lib/setup.c:1835
#, c-format
msgid "Device %s is busy.\n"
msgstr "Apparaat %s is bezig.\n"
#: lib/setup.c:1843
#, c-format
msgid "Invalid device %s.\n"
msgstr "Ongeldig apparaat %s.\n"
#: lib/setup.c:1867
msgid "Volume key buffer too small.\n"
msgstr "Sleutelbuffer van het opslagmedium is te klein.\n"
#: lib/setup.c:1875
msgid "Cannot retrieve volume key for plain device.\n"
msgstr "Kan sleutel tot het opslagmedium voor apparaat niet ophalen.\n"
#: lib/setup.c:1897
#, c-format
msgid "This operation is not supported for %s crypt device.\n"
msgstr "Deze operatie wordt niet ondersteund voor versleutelapparaat %s.\n"
#: lib/utils.c:416
#, c-format
msgid "Failed to open key file %s.\n"
msgstr "Openen van sleutelbestand %s is mislukt.\n"
#: lib/utils.c:436
msgid "Error reading passphrase from terminal.\n"
msgstr "Fout bij het lezen van het wachtwoord uit de terminal.\n"
#: lib/utils.c:441
msgid "Verify passphrase: "
msgstr "Voer wachtwoord nogmaals in: "
#: lib/utils.c:443
msgid "Passphrases do not match.\n"
msgstr "Wachtwoorden komen niet overeen.\n"
#: lib/utils.c:458
msgid "Can't do passphrase verification on non-tty inputs.\n"
msgstr "Kan geen wachtwoordverificatie uitvoeren op invoer van buiten de terminal.\n"
#: lib/utils.c:471
#, c-format
msgid "Failed to stat key file %s.\n"
msgstr "Kan status van sleutelbestand %s niet opvragen.\n"
#: lib/utils.c:475
#, c-format
msgid "Warning: exhausting read requested, but key file %s is not a regular file, function might never return.\n"
msgstr "Waarschuwing: volledige lezing aangevraagd, maar sleutelbestand %s is geen regulier bestand, functie zal misschien nooit terugkeren.\n"
#: lib/utils.c:487
msgid "Out of memory while reading passphrase.\n"
msgstr "Geen geheugen meer beschikbaar bij lezen van wachtwoord.\n"
#: lib/utils.c:494
msgid "Error reading passphrase.\n"
msgstr "Fout bij lezen van wachtwoord.\n"
#: lib/utils.c:531
#, c-format
msgid "Device %s doesn't exist or access denied.\n"
msgstr "Apparaat %s bestaat niet of toegang is geweigerd.\n"
#: lib/utils.c:538
#, c-format
msgid "Cannot open device %s for %s%s access.\n"
msgstr "Kan apparaat %s niet openen voor %s%s-toegang.\n"
#: lib/utils.c:539
msgid "exclusive "
msgstr "exclusieve "
#: lib/utils.c:540
msgid "writable"
msgstr "schrijf"
#: lib/utils.c:540
msgid "read-only"
msgstr "alleen-lezen"
#: lib/utils.c:547
#, c-format
msgid "Cannot read device %s.\n"
msgstr "Kan apparaat niet lezen: %s.\n"
#: lib/utils.c:577
#, c-format
msgid "Cannot open device: %s\n"
msgstr "Kan apparaat niet openen: %s\n"
#: lib/utils.c:587
#, c-format
msgid "BLKROGET failed on device %s.\n"
msgstr "BLKROGET() is mislukt op apparaat %s.\n"
#: lib/utils.c:612
#, c-format
msgid "BLKGETSIZE failed on device %s.\n"
msgstr "BLKGETSIZE() is mislukt op apparaat %s.\n"
#: lib/utils.c:660
msgid "WARNING!!! Possibly insecure memory. Are you root?\n"
msgstr "WAARSCHUWING!!! Mogelijk onveilig geheugen. Bent u root?\n"
#: lib/utils.c:666
msgid "Cannot get process priority.\n"
msgstr "Kan geen procesprioriteit verkrijgen.\n"
#: lib/utils.c:669 lib/utils.c:682
#, c-format
msgid "setpriority %u failed: %s"
msgstr "setpriority(%u) is mislukt: %s"
#: lib/utils.c:680
msgid "Cannot unlock memory."
msgstr "Kan geheugen niet ontgrendelen."
#: luks/keyencryption.c:68
#, c-format
msgid "Unable to obtain sector size for %s"
msgstr "Kan sectorgrootte van %s niet verkrijgen"
#: luks/keyencryption.c:137
msgid "Failed to obtain device mapper directory."
msgstr "Kan geen map voor de apparaatstoewijzer verkrijgen."
#: luks/keyencryption.c:153
#, c-format
msgid ""
"Failed to setup dm-crypt key mapping for device %s.\n"
"Check that kernel supports %s cipher (check syslog for more info).\n"
"%s"
msgstr ""
"Kan dm-crypt sleuteltoewijzing niet instellen voor apparaat %s.\n"
"Kijk na of de kernel versleutelalgoritme %s ondersteunt (bekijk syslog voor meer informatie).\n"
"%s"
#: luks/keyencryption.c:163
msgid "Failed to open temporary keystore device.\n"
msgstr "Openen van het tijdelijke sleutelopslagapparaat is mislukt.\n"
#: luks/keyencryption.c:170
msgid "Failed to access temporary keystore device.\n"
msgstr "Kan geen toegang verkrijgen tot tijdelijk sleutelopslagapparaat.\n"
#: luks/keymanage.c:94
#, c-format
msgid "Requested file %s already exist.\n"
msgstr "Aangevraagd bestand %s bestaat reeds.\n"
#: luks/keymanage.c:114 luks/keymanage.c:257
#, c-format
msgid "Device %s is not a valid LUKS device.\n"
msgstr "Apparaat %s is geen geldig LUKS-apparaat.\n"
#: luks/keymanage.c:134
#, c-format
msgid "Cannot write header backup file %s.\n"
msgstr "Kan reservekopiebestand %s van koptekst niet schrijven.\n"
#: luks/keymanage.c:161
#, c-format
msgid "Backup file %s doesn't exist.\n"
msgstr "Reservekopiebestand %s bestaat niet.\n"
#: luks/keymanage.c:169
msgid "Backup file do not contain valid LUKS header.\n"
msgstr "Reservekopiebestand bevat geen geldige LUKS-koptekst.\n"
#: luks/keymanage.c:182
#, c-format
msgid "Cannot open header backup file %s.\n"
msgstr "Kan reservekopiebestand %s van koptekst niet openen.\n"
#: luks/keymanage.c:188
#, c-format
msgid "Cannot read header backup file %s.\n"
msgstr "Kan reservekopiebestand %s van koptekst niet lezen.\n"
#: luks/keymanage.c:199
msgid "Data offset or key size differs on device and backup, restore failed.\n"
msgstr "Verschillende datapositie of sleutelgrootte in apparaat en reservekopie; herstelling is mislukt.\n"
#: luks/keymanage.c:207
#, c-format
msgid "Device %s %s%s"
msgstr "Apparaat %s %s%s"
#: luks/keymanage.c:208
msgid "does not contain LUKS header. Replacing header can destroy data on that device."
msgstr "bevat geen LUKS-koptekst. Het vervangen van de koptekst kan data op het apparaat vernietigen."
#: luks/keymanage.c:209
msgid "already contains LUKS header. Replacing header will destroy existing keyslots."
msgstr "bevat reeds een LUKS-koptekst. Het vervangen van de koptekst zal bestaande sleutelplaatsen vernietigen."
#: luks/keymanage.c:210
msgid ""
"\n"
"WARNING: real device header has different UUID than backup!"
msgstr ""
"\n"
"WAARSCHUWING: originele apparaatkoptekst heeft een ander UUID dan de reservekopie!"
#: luks/keymanage.c:225 luks/keymanage.c:338 luks/keymanage.c:373
#, c-format
msgid "Cannot open device %s.\n"
msgstr "Kan apparaat %s niet openen.\n"
#: luks/keymanage.c:259
#, c-format
msgid "Device %s is not a valid LUKS device."
msgstr "Apparaat %s is geen geldig LUKS-apparaat."
#: luks/keymanage.c:262
#, c-format
msgid "Unsupported LUKS version %d.\n"
msgstr "Niet-ondersteunde LUKS-versie %d.\n"
#: luks/keymanage.c:265
#, c-format
msgid "Requested LUKS hash %s is not supported.\n"
msgstr "Aangevraagde LUKS-hash %s wordt niet ondersteund.\n"
#: luks/keymanage.c:310
#, c-format
msgid "Cannot open file %s.\n"
msgstr "Kan bestand %s niet openen.\n"
#: luks/keymanage.c:350
#, c-format
msgid "LUKS header detected but device %s is too small.\n"
msgstr "LUKS-koptekst gevonden maar apparaat %s is te klein.\n"
#: luks/keymanage.c:394
#, c-format
msgid "Error during update of LUKS header on device %s.\n"
msgstr "Fout bij het bijwerken van LUKS-koptekst op apparaat %s.\n"
#: luks/keymanage.c:401
#, c-format
msgid "Error re-reading LUKS header after update on device %s.\n"
msgstr "Fout bij het herlezen van LUKS-koptekst na bijwerken van apparaat %s.\n"
#: luks/keymanage.c:413
#, c-format
msgid "Not compatible PBKDF2 options (using hash algorithm %s).\n"
msgstr "Niet-compatibele PBKDF2-opties (met hash-algoritme %s in gebruik).\n"
#: luks/keymanage.c:461
msgid "Cannot create LUKS header: reading random salt failed.\n"
msgstr "Kan LUKS-koptekst niet aanmaken: lezen van random salt is mislukt.\n"
#: luks/keymanage.c:478
#, c-format
msgid "Cannot create LUKS header: header digest failed (using hash %s).\n"
msgstr "Kan LUKS-koptekst niet aanmaken: koptekst-extract is mislukt (met %s-hash).\n"
#: luks/keymanage.c:496
msgid "Wrong UUID format provided, generating new one.\n"
msgstr "Verkeerd UUID-formaat verschaft, een nieuwe wordt aangemaakt.\n"
#: luks/keymanage.c:523
#, c-format
msgid "Key slot %d active, purge first.\n"
msgstr "Sleutelplaats %d is actief; ruim eerst op.\n"
#: luks/keymanage.c:528
#, c-format
msgid "Key slot %d material includes too few stripes. Header manipulation?\n"
msgstr "Inhoud van sleutelplaats %d bevat te weinig fragmenten. Koptekstmanipulatie?\n"
#: luks/keymanage.c:587
msgid "Failed to write to key storage.\n"
msgstr "Schrijven naar sleutelopslag is mislukt.\n"
#: luks/keymanage.c:664
msgid "Failed to read from key storage.\n"
msgstr "Lezen uit sleutelopslag is mislukt.\n"
#: luks/keymanage.c:673
#, c-format
msgid "Key slot %d unlocked.\n"
msgstr "Sleutelplaats %d is ontgrendeld.\n"
#: luks/keymanage.c:706
msgid "No key available with this passphrase.\n"
msgstr "Geen sleutel beschikbaar met dit wachtwoord.\n"
#: luks/keymanage.c:783
#, c-format
msgid "Key slot %d is invalid, please select keyslot between 0 and %d.\n"
msgstr "Sleutelplaats %d is ongeldig, selecteer een sleutelplaats tussen 0 en %d.\n"
#: luks/keymanage.c:795
#, c-format
msgid "Cannot wipe device %s.\n"
msgstr "Kan apparaat %s niet wissen.\n"
#: src/cryptsetup.c:71 src/cryptsetup.c:89
msgid "<name> <device>"
msgstr "<naam> <apparaat>"
#: src/cryptsetup.c:71
msgid "create device"
msgstr "apparaat aanmaken"
#: src/cryptsetup.c:72 src/cryptsetup.c:73 src/cryptsetup.c:74
#: src/cryptsetup.c:82
msgid "<name>"
msgstr "<naam>"
#: src/cryptsetup.c:72
msgid "remove device"
msgstr "apparaat verwijderen"
#: src/cryptsetup.c:73
msgid "resize active device"
msgstr "actief apparaat vergroten of verkleinen"
#: src/cryptsetup.c:74
msgid "show device status"
msgstr "apparaatstatus tonen"
#: src/cryptsetup.c:75 src/cryptsetup.c:77
msgid "<device> [<new key file>]"
msgstr "<apparaat> [<nieuw sleutelbestand>]"
#: src/cryptsetup.c:75
msgid "formats a LUKS device"
msgstr "een LUKS-apparaat formatteren"
#: src/cryptsetup.c:76
msgid "<device> <name> "
msgstr "<apparaat> <naam> "
#: src/cryptsetup.c:76
msgid "open LUKS device as mapping <name>"
msgstr "LUKS-apparaat als toewijzing <naam> openen"
#: src/cryptsetup.c:77
msgid "add key to LUKS device"
msgstr "sleutel aan LUKS-apparaat toevoegen"
#: src/cryptsetup.c:78
msgid "<device> [<key file>]"
msgstr "<apparaat> [<sleutelbestand>]"
#: src/cryptsetup.c:78
msgid "removes supplied key or key file from LUKS device"
msgstr "verschafte sleutel of sleutelbestand van LUKS-apparaat verwijderen"
#: src/cryptsetup.c:79 src/cryptsetup.c:88
msgid "<device> <key slot>"
msgstr "<apparaat> <sleutelplaats>"
#: src/cryptsetup.c:79
msgid "wipes key with number <key slot> from LUKS device"
msgstr "sleutel met nummer <sleutelplaats> van LUKS-apparaat verwijderen"
#: src/cryptsetup.c:80 src/cryptsetup.c:81 src/cryptsetup.c:83
#: src/cryptsetup.c:84 src/cryptsetup.c:85 src/cryptsetup.c:86
#: src/cryptsetup.c:87
msgid "<device>"
msgstr "<apparaat>"
#: src/cryptsetup.c:80
msgid "print UUID of LUKS device"
msgstr "UUID van LUKS-apparaat tonen"
#: src/cryptsetup.c:81
msgid "tests <device> for LUKS partition header"
msgstr "<apparaat> op een LUKS-partitiekoptekst testen"
#: src/cryptsetup.c:82
msgid "remove LUKS mapping"
msgstr "LUKS-toewijzing verwijderen"
#: src/cryptsetup.c:83
msgid "dump LUKS partition information"
msgstr "LUKS-partitie-informatie dumpen"
#: src/cryptsetup.c:84
msgid "Suspend LUKS device and wipe key (all IOs are frozen)."
msgstr "LUKS-apparaat schorsen en sleutel wissen (alle in-/uitvoer wordt bevroren)."
#: src/cryptsetup.c:85
msgid "Resume suspended LUKS device."
msgstr "Geschorst LUKS-apparaat hervatten."
#: src/cryptsetup.c:86
msgid "Backup LUKS device header and keyslots"
msgstr "Reservekopie van LUKS-apparaatkoptekst en -sleutelplaatsen maken"
#: src/cryptsetup.c:87
msgid "Restore LUKS device header and keyslots"
msgstr "LUKS-apparaatkoptekst en -sleutelplaatsen herstellen"
#: src/cryptsetup.c:88
msgid "identical to luksKillSlot - DEPRECATED - see man page"
msgstr "identiek aan luksKillSlot - VEROUDERD - zie man-pagina"
#: src/cryptsetup.c:89
msgid "modify active device - DEPRECATED - see man page"
msgstr "actief apparaat wijzigen - VEROUDERD - zie man-pagina"
#: src/cryptsetup.c:180
msgid "Command successful.\n"
msgstr "Opdracht succesvol.\n"
#: src/cryptsetup.c:194
#, c-format
msgid "Command failed with code %i"
msgstr "Opdracht is mislukt met code %i"
#: src/cryptsetup.c:222
msgid ""
"The reload action is deprecated. Please use \"dmsetup reload\" in case you really need this functionality.\n"
"WARNING: do not use reload to touch LUKS devices. If that is the case, hit Ctrl-C now.\n"
msgstr ""
"De herlaadactie is verouderd. Gebruik “dmsetup reload” indien u deze functionaliteit echt nodig hebt.\n"
"WAARSCHUWING: gebruik de herlaadactie niet om LUKS-apparaten te “touchen”. Indien u dat wilt doen, typ nu Ctrl-C.\n"
#: src/cryptsetup.c:390
#, c-format
msgid "This will overwrite data on %s irrevocably."
msgstr "Dit zal data op %s onherroepelijk overschrijven."
#: src/cryptsetup.c:391
msgid "memory allocation error in action_luksFormat"
msgstr "geheugentoewijzingsfout in action_luksFormat"
#: src/cryptsetup.c:421
msgid "Obsolete option --non-exclusive is ignored.\n"
msgstr "Verouderde optie --non-exclusive wordt genegeerd.\n"
#: src/cryptsetup.c:581 src/cryptsetup.c:603
msgid "Option --header-backup-file is required.\n"
msgstr "Optie --header-backup-file is vereist.\n"
#: src/cryptsetup.c:637
msgid ""
"\n"
"<action> is one of:\n"
msgstr ""
"\n"
"<actie> is één van:\n"
#: src/cryptsetup.c:643
#, c-format
msgid ""
"\n"
"<name> is the device to create under %s\n"
"<device> is the encrypted device\n"
"<key slot> is the LUKS key slot number to modify\n"
"<key file> optional key file for the new key for luksAddKey action\n"
msgstr ""
"\n"
"<naam> is het onder %s aan te maken apparaat\n"
"<apparaat> is het versleutelde apparaat\n"
"<sleutelplaats> is het nummer van de te wijzigen LUKS-sleutelplaats\n"
"<sleutelbestand> optioneel sleutelbestand voor de nieuwe sleutel voor de luksAddKey-actie\n"
#: src/cryptsetup.c:650
#, c-format
msgid ""
"\n"
"Default compiled-in device cipher parameters:\n"
"\tplain: %s, Key: %d bits, Password hashing: %s\n"
"\tLUKS1: %s, Key: %d bits, LUKS header hashing: %s\n"
msgstr ""
"\n"
"Standaard meegecompileerde parameters van het apparaatsversleutelingsalgoritme:\n"
"\tplain: %s, Sleutel: %d bits, Wachtwoordhashing: %s\n"
"\tLUKS1: %s, Sleutel: %d bits, LUKS-kopteksthashing: %s\n"
#: src/cryptsetup.c:697
msgid "Show this help message"
msgstr "Deze hulptekst tonen"
#: src/cryptsetup.c:698
msgid "Display brief usage"
msgstr "Korte gebruikssamenvatting tonen"
#: src/cryptsetup.c:702
msgid "Help options:"
msgstr "Hulpopties:"
#: src/cryptsetup.c:703
msgid "Shows more detailed error messages"
msgstr "Gedetailleerdere foutboodschappen tonen"
#: src/cryptsetup.c:704
msgid "Show debug messages"
msgstr "Debug-boodschappen tonen"
#: src/cryptsetup.c:705
msgid "The cipher used to encrypt the disk (see /proc/crypto)"
msgstr "Het gebruikte versleutelalgoritme om de schijf te versleutelen (zie /proc/crypto)"
#: src/cryptsetup.c:706
msgid "The hash used to create the encryption key from the passphrase"
msgstr "De gebruikte hash om de encryptiesleutel uit het wachtwoord aan te maken"
#: src/cryptsetup.c:707
msgid "Verifies the passphrase by asking for it twice"
msgstr "Het wachtwoord controleren door het twee keer te vragen"
#: src/cryptsetup.c:708
msgid "Read the key from a file (can be /dev/random)"
msgstr "De sleutel uit een bestand lezen (mag /dev/random zijn)"
#: src/cryptsetup.c:709
msgid "Read the volume (master) key from file."
msgstr "De (hoofd)sleutel tot het opslagmedium uit een bestand lezen."
#: src/cryptsetup.c:710
msgid "The size of the encryption key"
msgstr "De grootte van de encryptiesleutel"
#: src/cryptsetup.c:710
msgid "BITS"
msgstr "BITS"
#: src/cryptsetup.c:711
msgid "Slot number for new key (default is first free)"
msgstr "Plaatsnummer voor nieuwe sleutel (standaard is de eerste open plaats)"
#: src/cryptsetup.c:712
msgid "The size of the device"
msgstr "De grootte van het apparaat"
#: src/cryptsetup.c:712 src/cryptsetup.c:713 src/cryptsetup.c:714
#: src/cryptsetup.c:721
msgid "SECTORS"
msgstr "SECTOREN"
#: src/cryptsetup.c:713
msgid "The start offset in the backend device"
msgstr "De startplaats in het backend-apparaat"
#: src/cryptsetup.c:714
msgid "How many sectors of the encrypted data to skip at the beginning"
msgstr "Hoeveel sectoren van de versleutelde data aan het begin over te slaan"
#: src/cryptsetup.c:715
msgid "Create a readonly mapping"
msgstr "Een alleen-lezen toewijzing aanmaken"
#: src/cryptsetup.c:716
msgid "PBKDF2 iteration time for LUKS (in ms)"
msgstr "PBKDF2 herhalingstijd voor LUKS (in ms)"
#: src/cryptsetup.c:716
msgid "msecs"
msgstr "milliseconden"
#: src/cryptsetup.c:717
msgid "Do not ask for confirmation"
msgstr "Niet om bevestiging vragen"
#: src/cryptsetup.c:718
msgid "Print package version"
msgstr "Pakketversie tonen"
#: src/cryptsetup.c:719
msgid "Timeout for interactive passphrase prompt (in seconds)"
msgstr "Timeout voor interactieve wachtwoordprompt (in seconden)"
#: src/cryptsetup.c:719
msgid "secs"
msgstr "seconden"
#: src/cryptsetup.c:720
msgid "How often the input of the passphrase can be retried"
msgstr "Hoe vaak de invoering van het wachtwoord opnieuw geprobeerd kan worden"
#: src/cryptsetup.c:721
msgid "Align payload at <n> sector boundaries - for luksFormat"
msgstr "Payload uitlijnen op meervouden van <n> sectoren - voor luksFormat"
#: src/cryptsetup.c:722
msgid "(Obsoleted, see man page.)"
msgstr "(Verouderd, zie man-pagina.)"
#: src/cryptsetup.c:723
msgid "File with LUKS header and keyslots backup."
msgstr "Bestand met reservekopie van LUKS-koptekst en -sleutelplaatsen."
#: src/cryptsetup.c:741
msgid "[OPTION...] <action> <action-specific>]"
msgstr "[OPTIE…] <actie> <actie-specifiek>]"
#: src/cryptsetup.c:777
msgid "Key size must be a multiple of 8 bits"
msgstr "Sleutelgrootte moet een meervoud zijn van 8 bits"
#: src/cryptsetup.c:781
msgid "Argument <action> missing."
msgstr "Argument <actie> ontbreekt."
#: src/cryptsetup.c:787
msgid "Unknown action."
msgstr "Onbekende actie."
#: src/cryptsetup.c:802
#, c-format
msgid "%s: requires %s as arguments"
msgstr "%s: vereist %s als argumenten"
#~ msgid "%s is not LUKS device.\n"
#~ msgstr "%s is geen LUKS-apparaat.\n"
#~ msgid "%s is not LUKS device."
#~ msgstr "%s is geen LUKS-apparaat."

816
po/pl.po
View File

@@ -1,816 +0,0 @@
# Polish translation for cryptsetup.
# Copyright (C) 2010 Free Software Foundation, Inc.
# This file is put in the public domain.
# Jakub Bogusz <qboosh@pld-linux.org>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: cryptsetup 1.1.1-rc1\n"
"Report-Msgid-Bugs-To: dm-crypt@saout.de\n"
"POT-Creation-Date: 2010-05-01 16:21+0200\n"
"PO-Revision-Date: 2010-06-11 21:38+0200\n"
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
#: lib/libdevmapper.c:105
msgid "Cannot find compatible device-mapper kernel modules.\n"
msgstr "Nie znaleziono zgodnych modu<64><75>w j<>dra device-mappera.\n"
#: lib/libdevmapper.c:111
msgid "Cannot initialize device-mapper. Is dm_mod kernel module loaded?\n"
msgstr "Nie mo<6D>na zainicjowa<77> device-mappera. Czy modu<64> j<>dra dm_mod jest wczytany?\n"
#: lib/libdevmapper.c:408
#, c-format
msgid "DM-UUID for device %s was truncated.\n"
msgstr "DM-UUID dla urz<72>dzenia %s zosta<74> skr<6B>cony.\n"
#: lib/setup.c:103
#, c-format
msgid "Cannot not read %d bytes from key file %s.\n"
msgstr "Nie mo<6D>na odczyta<74> %d bajt<6A>w z pliku klucza %s.\n"
#: lib/setup.c:115
#, c-format
msgid "Key processing error (using hash algorithm %s).\n"
msgstr "B<><42>d przetwarzania klucza (u<>yto algorytmu skr<6B>tu %s).\n"
#: lib/setup.c:170
msgid "All key slots full.\n"
msgstr "Wszyskie miejsca na klucze s<> pe<70>ne.\n"
#: lib/setup.c:177 lib/setup.c:305 lib/setup.c:779
#, c-format
msgid "Key slot %d is invalid, please select between 0 and %d.\n"
msgstr "Numer klucza %d jest b<><62>dny, prosz<73> wybra<72> warto<74><6F> mi<6D>dzy 0 a %d.\n"
#: lib/setup.c:183
#, c-format
msgid "Key slot %d is full, please select another one.\n"
msgstr "Miejsce na klucz %d jest pe<70>ne, prosz<73> wybra<72> inne.\n"
#: lib/setup.c:202
msgid "Enter any remaining LUKS passphrase: "
msgstr "Dowolne pozosta<74>e has<61>o LUKS: "
#: lib/setup.c:223
#, c-format
msgid "Key slot %d verified.\n"
msgstr "Klucz %d sprawdzony.\n"
#: lib/setup.c:258
#, c-format
msgid "Cannot get info about device %s.\n"
msgstr "Nie mo<6D>na uzyska<6B> informacji o urz<72>dzeniu %s.\n"
#: lib/setup.c:265
#, c-format
msgid "Device %s has zero size.\n"
msgstr "Urz<72>dzenie %s ma zerowy rozmiar.\n"
#: lib/setup.c:269
#, c-format
msgid "Device %s is too small.\n"
msgstr "Urz<72>dzenie %s jest zbyt ma<6D>e.\n"
#: lib/setup.c:294
msgid "Enter LUKS passphrase to be deleted: "
msgstr "Has<61>o LUKS do usuni<6E>cia: "
#: lib/setup.c:300
#, c-format
msgid "key slot %d selected for deletion.\n"
msgstr "klucz %d wybrany do usuni<6E>cia.\n"
#: lib/setup.c:311
#, c-format
msgid "Key %d not active. Can't wipe.\n"
msgstr "Klucz %d nie jest aktywny. Nie mo<6D>na wyczy<7A>ci<63>.\n"
#: lib/setup.c:317
msgid "This is the last keyslot. Device will become unusable after purging this key."
msgstr "To jest ostatni klucz. Urz<72>dzenie stanie si<73> bezu<7A>yteczne po usuni<6E>ciu tego klucza."
#: lib/setup.c:365 lib/setup.c:1687 lib/setup.c:1740 lib/setup.c:1797
#, c-format
msgid "Device %s already exists.\n"
msgstr "Urz<72>dzenie %s ju<6A> istnieje.\n"
#: lib/setup.c:370
#, c-format
msgid "Invalid key size %d.\n"
msgstr "B<><42>dny rozmiar klucza %d.\n"
#: lib/setup.c:472 lib/setup.c:1692
#, c-format
msgid "Enter passphrase for %s: "
msgstr "Has<61>o dla %s: "
#: lib/setup.c:601 lib/setup.c:629 lib/setup.c:1401 lib/setup.c:1748
msgid "Enter passphrase: "
msgstr "Has<61>o: "
#: lib/setup.c:662 lib/setup.c:1046 lib/setup.c:1839
#, c-format
msgid "Device %s is not active.\n"
msgstr "Urz<72>dzenie %s nie jest aktywne.\n"
#: lib/setup.c:771
msgid "No known cipher specification pattern detected.\n"
msgstr "Nie wykryto znanego wzorca okre<72>laj<61>cego szyfr.\n"
#: lib/setup.c:785
msgid "Enter LUKS passphrase: "
msgstr "Has<61>o LUKS: "
#: lib/setup.c:926 lib/setup.c:1153 lib/setup.c:1207 lib/setup.c:1232
#: lib/setup.c:1251
msgid "Cannot initialize crypto backend.\n"
msgstr "Nie mo<6D>na zainicjowa<77> backendu kryptograficznego.\n"
#: lib/setup.c:1066
msgid "Invalid plain crypt parameters.\n"
msgstr "B<><42>dne parametry szyfru plain.\n"
#: lib/setup.c:1071
msgid "Invalid key size.\n"
msgstr "B<><42>dny rozmiar klucza.\n"
#: lib/setup.c:1104
msgid "Can't format LUKS without device.\n"
msgstr "Nie mo<6D>na sformatowa<77> LUKS-a bez urz<72>dzenia.\n"
#: lib/setup.c:1126
#, c-format
msgid "Can't wipe header on device %s.\n"
msgstr "Nie mo<6D>na wyczy<7A>ci<63> nag<61><67>wka na urz<72>dzeniu %s.\n"
#: lib/setup.c:1174
#, c-format
msgid "Unknown crypt device type %s requested.\n"
msgstr "Nieznany typ <20><>danego urz<72>dzenia szyfruj<75>cego %s.\n"
#: lib/setup.c:1293
#, c-format
msgid "Volume %s is not active.\n"
msgstr "Wolumen %s nie jest aktywny.\n"
#: lib/setup.c:1306
#, c-format
msgid "Volume %s is already suspended.\n"
msgstr "Wolumen %s ju<6A> zosta<74> zatrzymany.\n"
#: lib/setup.c:1334 lib/setup.c:1383 lib/setup.c:1442 lib/setup.c:1520
#: lib/setup.c:1592 lib/setup.c:1637 lib/setup.c:1731 lib/setup.c:1788
#: lib/setup.c:1909 lib/setup.c:1992 lib/setup.c:2092
msgid "This operation is supported only for LUKS device.\n"
msgstr "Ta operacja jest obs<62>ugiwana tylko na urz<72>dzeniach LUKS.\n"
#: lib/setup.c:1345 lib/setup.c:1394
#, c-format
msgid "Volume %s is not suspended.\n"
msgstr "Wolumen %s nie jest zatrzymany.\n"
#: lib/setup.c:1456 lib/setup.c:1534
msgid "Cannot add key slot, all slots disabled and no volume key provided.\n"
msgstr "Nie mo<6D>na doda<64> klucza, wszystkie miejsca na klucze wy<77><79>czone i nie podano klucza wolumenu.\n"
#: lib/setup.c:1465 lib/setup.c:1540 lib/setup.c:1543
msgid "Enter any passphrase: "
msgstr "Dowolne has<61>o: "
#: lib/setup.c:1484 lib/setup.c:1558 lib/setup.c:1562 lib/setup.c:1615
msgid "Enter new passphrase for key slot: "
msgstr "Nowe has<61>o dla klucza: "
#: lib/setup.c:1606 lib/setup.c:1808 lib/setup.c:1920
msgid "Volume key does not match the volume.\n"
msgstr "Klucz wolumenu nie pasuje do wolumenu.\n"
#: lib/setup.c:1643
#, c-format
msgid "Key slot %d is invalid.\n"
msgstr "Numer klucza %d jest nieprawid<69>owy.\n"
#: lib/setup.c:1648
#, c-format
msgid "Key slot %d is not used.\n"
msgstr "Klucz %d nie jest u<>ywany.\n"
#: lib/setup.c:1835
#, c-format
msgid "Device %s is busy.\n"
msgstr "Urz<72>dzenie %s jest zaj<61>te.\n"
#: lib/setup.c:1843
#, c-format
msgid "Invalid device %s.\n"
msgstr "B<><42>dne urz<72>dzenie %s.\n"
#: lib/setup.c:1867
msgid "Volume key buffer too small.\n"
msgstr "Bufor klucza wolumenu zbyt ma<6D>y.\n"
#: lib/setup.c:1875
msgid "Cannot retrieve volume key for plain device.\n"
msgstr "Nie mo<6D>na odtworzy<7A> klucza wolumenu dla zwyk<79>ego urz<72>dzenia.\n"
#: lib/setup.c:1897
#, c-format
msgid "This operation is not supported for %s crypt device.\n"
msgstr "Ta operacja nie jest obs<62>ugiwana dla urz<72>dzenia szyfruj<75>cego %s.\n"
#: lib/utils.c:416
#, c-format
msgid "Failed to open key file %s.\n"
msgstr "Nie mo<6D>na otworzy<7A> pliku klucza %s.\n"
#: lib/utils.c:436
msgid "Error reading passphrase from terminal.\n"
msgstr "B<><42>d podczas odczytu has<61>a z terminala.\n"
#: lib/utils.c:441
msgid "Verify passphrase: "
msgstr "Weryfikacja has<61>a: "
#: lib/utils.c:443
msgid "Passphrases do not match.\n"
msgstr "Has<61>a nie zgadzaj<61> si<73>.\n"
#: lib/utils.c:458
msgid "Can't do passphrase verification on non-tty inputs.\n"
msgstr "Nie mo<6D>na wykona<6E> weryfikacji has<61>a, je<6A>li wej<65>ciem nie jest terminal.\n"
#: lib/utils.c:471
#, c-format
msgid "Failed to stat key file %s.\n"
msgstr "Nie uda<64>o si<73> wykona<6E> stat na pliku klucza %s.\n"
#: lib/utils.c:475
#, c-format
msgid "Warning: exhausting read requested, but key file %s is not a regular file, function might never return.\n"
msgstr "Uwaga: <20><>dano odczytu ca<63>o<EFBFBD>ci, ale plik klucza %s nie jest zwyk<79>ym plikiem i funkcja mo<6D>e nigdy si<73> nie zako<6B>czy<7A>.\n"
#: lib/utils.c:487
msgid "Out of memory while reading passphrase.\n"
msgstr "Brak pami<6D>ci podczas odczytu has<61>a.\n"
#: lib/utils.c:494
msgid "Error reading passphrase.\n"
msgstr "B<><42>d podczas odczytu has<61>a.\n"
#: lib/utils.c:531
#, c-format
msgid "Device %s doesn't exist or access denied.\n"
msgstr "Urz<72>dzenie %s nie istnieje lub dost<73>p jest zabroniony.\n"
#: lib/utils.c:538
#, c-format
msgid "Cannot open device %s for %s%s access.\n"
msgstr "Nie mo<6D>na otworzy<7A> urz<72>dzenia %s do %sdost<73>pu %s.\n"
#: lib/utils.c:539
msgid "exclusive "
msgstr "wy<77><79>cznego "
#: lib/utils.c:540
msgid "writable"
msgstr "do zapisu"
#: lib/utils.c:540
msgid "read-only"
msgstr "tylko do odczytu"
#: lib/utils.c:547
#, c-format
msgid "Cannot read device %s.\n"
msgstr "Nie mo<6D>na odczyta<74> urz<72>dzenia %s.\n"
#: lib/utils.c:577
#, c-format
msgid "Cannot open device: %s\n"
msgstr "Nie mo<6D>na otworzy<7A> urz<72>dzenia: %s\n"
#: lib/utils.c:587
#, c-format
msgid "BLKROGET failed on device %s.\n"
msgstr "BLKROGET nie powiod<6F>o si<73> na urz<72>dzeniu %s.\n"
#: lib/utils.c:612
#, c-format
msgid "BLKGETSIZE failed on device %s.\n"
msgstr "BLKGETSIZE nie powiod<6F>o si<73> na urz<72>dzeniu %s.\n"
#: lib/utils.c:660
msgid "WARNING!!! Possibly insecure memory. Are you root?\n"
msgstr "UWAGA! Pami<6D><69> mo<6D>e nie by<62> bezpieczna. Czy jeste<74> rootem?\n"
#: lib/utils.c:666
msgid "Cannot get process priority.\n"
msgstr "Nie mo<6D>na odczyta<74> priorytetu procesu.\n"
#: lib/utils.c:669 lib/utils.c:682
#, c-format
msgid "setpriority %u failed: %s"
msgstr "setpriority %u nie powiod<6F>o si<73>: %s"
#: lib/utils.c:680
msgid "Cannot unlock memory."
msgstr "Nie mo<6D>na odblokowa<77> pami<6D>ci."
#: luks/keyencryption.c:68
#, c-format
msgid "Unable to obtain sector size for %s"
msgstr "Nie uda<64>o si<73> uzyska<6B> rozmiaru sektora dla %s"
#: luks/keyencryption.c:137
msgid "Failed to obtain device mapper directory."
msgstr "Nie uda<64>o si<73> uzyska<6B> katalogu device mappera."
#: luks/keyencryption.c:153
#, c-format
msgid ""
"Failed to setup dm-crypt key mapping for device %s.\n"
"Check that kernel supports %s cipher (check syslog for more info).\n"
"%s"
msgstr ""
"Nie uda<64>o si<73> ustawi<77> odwzorowania klucza dm-crypt dla urz<72>dzenia %s.\n"
"Prosz<73> sprawdzi<7A>, czy j<>dro obs<62>uguje szyfr %s (wi<77>cej informacji w syslogu).\n"
"%s"
#: luks/keyencryption.c:163
msgid "Failed to open temporary keystore device.\n"
msgstr "Nie uda<64>o si<73> otworzy<7A> urz<72>dzenia do tymczasowego przechowywania kluczy.\n"
#: luks/keyencryption.c:170
msgid "Failed to access temporary keystore device.\n"
msgstr "Nie uda<64>o si<73> uzyska<6B> dost<73>pu do urz<72>dzenia do tymczasowego przechowywania kluczy.\n"
#: luks/keymanage.c:94
#, c-format
msgid "Requested file %s already exist.\n"
msgstr "<22><>dany plik %s ju<6A> istnieje.\n"
#: luks/keymanage.c:114 luks/keymanage.c:257
#, c-format
msgid "Device %s is not a valid LUKS device.\n"
msgstr "Urz<72>dzenie %s nie jest prawid<69>owym urz<72>dzeniem LUKS.\n"
#: luks/keymanage.c:134
#, c-format
msgid "Cannot write header backup file %s.\n"
msgstr "Nie mo<6D>na zapisa<73> pliku kopii zapasowej nag<61><67>wka %s.\n"
#: luks/keymanage.c:161
#, c-format
msgid "Backup file %s doesn't exist.\n"
msgstr "Plik kopii zapasowej %s nie istnieje.\n"
#: luks/keymanage.c:169
msgid "Backup file do not contain valid LUKS header.\n"
msgstr "Plik kopii zapasowej nie zawiera prawid<69>owego nag<61><67>wka LUKS.\n"
#: luks/keymanage.c:182
#, c-format
msgid "Cannot open header backup file %s.\n"
msgstr "Nie mo<6D>na otworzy<7A> pliku kopii zapasowej nag<61><67>wka %s.\n"
#: luks/keymanage.c:188
#, c-format
msgid "Cannot read header backup file %s.\n"
msgstr "Nie mo<6D>na odczyta<74> pliku kopii zapasowej nag<61><67>wka %s.\n"
#: luks/keymanage.c:199
msgid "Data offset or key size differs on device and backup, restore failed.\n"
msgstr "Offset danych lub rozmiar klucza r<><72>ni<6E> si<73> mi<6D>dzy urz<72>dzeniem a kopi<70> zapasow<6F>; przywr<77>cenie nie powiod<6F>o si<73>.\n"
#: luks/keymanage.c:207
#, c-format
msgid "Device %s %s%s"
msgstr "Urz<72>dzenie %s %s%s"
#: luks/keymanage.c:208
msgid "does not contain LUKS header. Replacing header can destroy data on that device."
msgstr "nie zawiera nag<61><67>wka LUKS. Nadpisanie nag<61><67>wka mo<6D>e zniszczy<7A> dane na tym urz<72>dzeniu."
#: luks/keymanage.c:209
msgid "already contains LUKS header. Replacing header will destroy existing keyslots."
msgstr "ju<6A> zawiera nag<61><67>wek LUKS. Nadpisanie nag<61><67>wka zniszczy istniej<65>ce klucze."
#: luks/keymanage.c:210
msgid ""
"\n"
"WARNING: real device header has different UUID than backup!"
msgstr ""
"\n"
"UWAGA: nag<61><67>wek prawdziwego urz<72>dzenia ma inny UUID ni<6E> kopia zapasowa!"
#: luks/keymanage.c:225 luks/keymanage.c:338 luks/keymanage.c:373
#, c-format
msgid "Cannot open device %s.\n"
msgstr "Nie mo<6D>na otworzy<7A> urz<72>dzenia %s.\n"
#: luks/keymanage.c:259
#, c-format
msgid "Device %s is not a valid LUKS device."
msgstr "Urz<72>dzenie %s nie jest prawid<69>owym urz<72>dzeniem LUKS."
#: luks/keymanage.c:262
#, c-format
msgid "Unsupported LUKS version %d.\n"
msgstr "Nieobs<62>ugiwana wersja LUKS %d.\n"
#: luks/keymanage.c:265
#, c-format
msgid "Requested LUKS hash %s is not supported.\n"
msgstr "<22><>dany skr<6B>t LUKS %s nie jest obs<62>ugiwany.\n"
#: luks/keymanage.c:310
#, c-format
msgid "Cannot open file %s.\n"
msgstr "Nie mo<6D>na otworzy<7A> pliku %s.\n"
#: luks/keymanage.c:350
#, c-format
msgid "LUKS header detected but device %s is too small.\n"
msgstr "Wykryto nag<61><67>wek LUKS, ale urz<72>dzenie %s jest zbyt ma<6D>e.\n"
#: luks/keymanage.c:394
#, c-format
msgid "Error during update of LUKS header on device %s.\n"
msgstr "B<><42>d podczas uaktualniania nag<61><67>wka LUKS na urz<72>dzeniu %s.\n"
#: luks/keymanage.c:401
#, c-format
msgid "Error re-reading LUKS header after update on device %s.\n"
msgstr "B<><42>d podczas ponownego odczytu nag<61><67>wka LUKS po uaktualnieniu na urz<72>dzeniu %s.\n"
#: luks/keymanage.c:413
#, c-format
msgid "Not compatible PBKDF2 options (using hash algorithm %s).\n"
msgstr "Niekompatybilne opcje PBKDF2 (przy u<>yciu algorytmu skr<6B>tu %s).\n"
#: luks/keymanage.c:461
msgid "Cannot create LUKS header: reading random salt failed.\n"
msgstr "Nie mo<6D>na utworzy<7A> nag<61><67>wka LUKS: odczyt losowego zarodka nie powi<77>d<EFBFBD> si<73>.\n"
#: luks/keymanage.c:478
#, c-format
msgid "Cannot create LUKS header: header digest failed (using hash %s).\n"
msgstr "Nie mo<6D>na utworzy<7A> nag<61><67>wka LUKS: uzyskanie skr<6B>tu nag<61><67>wka nie powiod<6F>o si<73> (przy u<>yciu algorytmu %s).\n"
#: luks/keymanage.c:496
msgid "Wrong UUID format provided, generating new one.\n"
msgstr "Podano z<>y format UUID, tworzenie nowego.\n"
#: luks/keymanage.c:523
#, c-format
msgid "Key slot %d active, purge first.\n"
msgstr "Klucz numer %d jest aktywny, nale<6C>y go najpierw wyczy<7A>ci<63>.\n"
#: luks/keymanage.c:528
#, c-format
msgid "Key slot %d material includes too few stripes. Header manipulation?\n"
msgstr "Klucz %d zawiera zbyt ma<6D>o pas<61>w. Zmieniony nag<61><67>wek?\n"
#: luks/keymanage.c:587
msgid "Failed to write to key storage.\n"
msgstr "Nie uda<64>o si<73> zapisa<73> klucza.\n"
#: luks/keymanage.c:664
msgid "Failed to read from key storage.\n"
msgstr "Nie uda<64>o si<73> odczyta<74> klucza.\n"
#: luks/keymanage.c:673
#, c-format
msgid "Key slot %d unlocked.\n"
msgstr "Klucz numer %d odblokowany.\n"
#: luks/keymanage.c:706
msgid "No key available with this passphrase.\n"
msgstr "Dla tego has<61>a nie ma dost<73>pnego klucza.\n"
#: luks/keymanage.c:783
#, c-format
msgid "Key slot %d is invalid, please select keyslot between 0 and %d.\n"
msgstr "Numer klucza %d jest b<><62>dny, prosz<73> wybra<72> numer od 0 do %d.\n"
#: luks/keymanage.c:795
#, c-format
msgid "Cannot wipe device %s.\n"
msgstr "Nie mo<6D>na wyczy<7A>ci<63> urz<72>dzenia %s.\n"
#: src/cryptsetup.c:71 src/cryptsetup.c:89
msgid "<name> <device>"
msgstr "<nazwa> <urz<72>dzenie>"
#: src/cryptsetup.c:71
msgid "create device"
msgstr "utworzenie urz<72>dzenia"
#: src/cryptsetup.c:72 src/cryptsetup.c:73 src/cryptsetup.c:74
#: src/cryptsetup.c:82
msgid "<name>"
msgstr "<nazwa>"
#: src/cryptsetup.c:72
msgid "remove device"
msgstr "usuni<6E>cie urz<72>dzenia"
#: src/cryptsetup.c:73
msgid "resize active device"
msgstr "zmiana rozmiaru aktywnego urz<72>dzenia"
#: src/cryptsetup.c:74
msgid "show device status"
msgstr "pokazanie stanu urz<72>dzenia"
#: src/cryptsetup.c:75 src/cryptsetup.c:77
msgid "<device> [<new key file>]"
msgstr "<urz<72>dzenie> [<nowy plik klucza>]"
#: src/cryptsetup.c:75
msgid "formats a LUKS device"
msgstr "sformatowanie urz<72>dzenia LUKS"
#: src/cryptsetup.c:76
msgid "<device> <name> "
msgstr "<uz<75>dzenie> <nazwa> "
#: src/cryptsetup.c:76
msgid "open LUKS device as mapping <name>"
msgstr "otwarcie urz<72>dzenia LUKS jako odwzorowania <nazwa>"
#: src/cryptsetup.c:77
msgid "add key to LUKS device"
msgstr "dodanie klucza do urz<72>dzenia LUKS"
#: src/cryptsetup.c:78
msgid "<device> [<key file>]"
msgstr "<urz<72>dzenie> [<plik klucza>]"
#: src/cryptsetup.c:78
msgid "removes supplied key or key file from LUKS device"
msgstr "usuni<6E>cie podanego klucza lub pliku klucza z urz<72>dzenia LUKS"
#: src/cryptsetup.c:79 src/cryptsetup.c:88
msgid "<device> <key slot>"
msgstr "<urz<72>dzenie> <numer klucza>"
#: src/cryptsetup.c:79
msgid "wipes key with number <key slot> from LUKS device"
msgstr "wyczyszczenie klucza o numerze <numer klucza> z urz<72>dzenia LUKS"
#: src/cryptsetup.c:80 src/cryptsetup.c:81 src/cryptsetup.c:83
#: src/cryptsetup.c:84 src/cryptsetup.c:85 src/cryptsetup.c:86
#: src/cryptsetup.c:87
msgid "<device>"
msgstr "<urz<72>dzenie>"
#: src/cryptsetup.c:80
msgid "print UUID of LUKS device"
msgstr "wypisanie UUID-a urz<72>dzenia LUKS"
#: src/cryptsetup.c:81
msgid "tests <device> for LUKS partition header"
msgstr "sprawdzenie <urz<72>dzenia> pod k<>tem nag<61><67>wka partycji LUKS"
#: src/cryptsetup.c:82
msgid "remove LUKS mapping"
msgstr "usuni<6E>cie odwzorowania LUKS"
#: src/cryptsetup.c:83
msgid "dump LUKS partition information"
msgstr "zrzut informacji o partycji LUKS"
#: src/cryptsetup.c:84
msgid "Suspend LUKS device and wipe key (all IOs are frozen)."
msgstr "Zatrzymanie urz<72>dzenia LUKS i wyczyszczenie klucza (zamra<72>a wszystkie operacje we/wy)."
#: src/cryptsetup.c:85
msgid "Resume suspended LUKS device."
msgstr "Wznowienie zatrzymanego urz<72>dzenia LUKS."
#: src/cryptsetup.c:86
msgid "Backup LUKS device header and keyslots"
msgstr "Kopia zapasowa nag<61><67>wka i kluczy urz<72>dzenia LUKS"
#: src/cryptsetup.c:87
msgid "Restore LUKS device header and keyslots"
msgstr "Odtworzenie nag<61><67>wka i kluczy urz<72>dzenia LUKS z kopii zapasowej"
#: src/cryptsetup.c:88
msgid "identical to luksKillSlot - DEPRECATED - see man page"
msgstr "to samo, co luksKillSlot (PRZESTARZA<5A>E - p. strona man)"
#: src/cryptsetup.c:89
msgid "modify active device - DEPRECATED - see man page"
msgstr "modyfikacja aktywnego urz<72>dzenia (PRZESTARZA<5A>E - p. strona man)"
#: src/cryptsetup.c:180
msgid "Command successful.\n"
msgstr "Polecenie si<73> powiod<6F>o.\n"
#: src/cryptsetup.c:194
#, c-format
msgid "Command failed with code %i"
msgstr "Polecenie nie powiod<6F>o si<73> z kodem %i"
#: src/cryptsetup.c:222
msgid ""
"The reload action is deprecated. Please use \"dmsetup reload\" in case you really need this functionality.\n"
"WARNING: do not use reload to touch LUKS devices. If that is the case, hit Ctrl-C now.\n"
msgstr ""
"Akcja reload jest przestarza<7A>a. Prosz<73> u<>y<EFBFBD> \"dmsetup reload\", je<6A>li to naprawd<77> konieczne.\n"
"UWAGA: na urz<72>dzeniach LUKS nie nale<6C>y u<>ywa<77> akcji reload. Je<4A>li to ten przypadek, prosz<73>\n"
"teraz wcisn<73><6E> Ctrl-C.\n"
#: src/cryptsetup.c:390
#, c-format
msgid "This will overwrite data on %s irrevocably."
msgstr "To nieodwo<77>alnie nadpisze dane na %s."
#: src/cryptsetup.c:391
msgid "memory allocation error in action_luksFormat"
msgstr "b<><62>d przydzielania pami<6D>ci w action_luksFormat"
#: src/cryptsetup.c:421
msgid "Obsolete option --non-exclusive is ignored.\n"
msgstr "Zignorowano przestarza<7A><61> opcj<63> --non-exclusive.\n"
#: src/cryptsetup.c:581 src/cryptsetup.c:603
msgid "Option --header-backup-file is required.\n"
msgstr "Wymagana jest opcja --header-backup-file.\n"
#: src/cryptsetup.c:637
msgid ""
"\n"
"<action> is one of:\n"
msgstr ""
"\n"
"<akcja> to jedno z:\n"
#: src/cryptsetup.c:643
#, c-format
msgid ""
"\n"
"<name> is the device to create under %s\n"
"<device> is the encrypted device\n"
"<key slot> is the LUKS key slot number to modify\n"
"<key file> optional key file for the new key for luksAddKey action\n"
msgstr ""
"\n"
"<nazwa> to urz<72>dzenie do utworzenia wewn<77>trz %s\n"
"<urz<72>dzenie> to zaszyfrowane urz<72>dzenie\n"
"<numer klucza> to numer klucza LUKS do zmiany\n"
"<plik klucza> to opcjonalny plik nowego klucza dla akcji luksAddKey\n"
#: src/cryptsetup.c:650
#, c-format
msgid ""
"\n"
"Default compiled-in device cipher parameters:\n"
"\tplain: %s, Key: %d bits, Password hashing: %s\n"
"\tLUKS1: %s, Key: %d bits, LUKS header hashing: %s\n"
msgstr ""
"\n"
"Domy<6D>lne wkompilowane parametry szyfrowania urz<72>dze<7A>:\n"
"\tplain: %s, bit<69>w klucza: %d, skr<6B>t has<61>a: %s\n"
"\tLUKS1: %s, bit<69>w klucza: %d, skr<6B>t nag<61><67>wka LUKS: %s\n"
#: src/cryptsetup.c:697
msgid "Show this help message"
msgstr "Wy<57>wietlenie tego opisu"
#: src/cryptsetup.c:698
msgid "Display brief usage"
msgstr "Wy<57>wietlenie kr<6B>tkiej informacji o sk<73>adni"
#: src/cryptsetup.c:702
msgid "Help options:"
msgstr "Opcje pomocnicze:"
#: src/cryptsetup.c:703
msgid "Shows more detailed error messages"
msgstr "Wy<57>wietlanie bardziej szczeg<65><67>owych komunikat<61>w b<><62>d<EFBFBD>w"
#: src/cryptsetup.c:704
msgid "Show debug messages"
msgstr "Wy<57>wietlanie informacji diagnostycznych"
#: src/cryptsetup.c:705
msgid "The cipher used to encrypt the disk (see /proc/crypto)"
msgstr "Szyfr u<>ywany do zaszyfrowania dysku (p. /proc/crypto)"
#: src/cryptsetup.c:706
msgid "The hash used to create the encryption key from the passphrase"
msgstr "Skr<6B>t u<>ywany do utworzenia klucza szyfruj<75>cego z has<61>a"
#: src/cryptsetup.c:707
msgid "Verifies the passphrase by asking for it twice"
msgstr "Sprawdzenie poprawno<6E>ci has<61>a poprzez dwukrotne pytanie"
#: src/cryptsetup.c:708
msgid "Read the key from a file (can be /dev/random)"
msgstr "Odczyt klucza z pliku (mo<6D>e to by<62> /dev/random)"
#: src/cryptsetup.c:709
msgid "Read the volume (master) key from file."
msgstr "Odczyt klucza wolumenu (klucza g<><67>wnego) z pliku."
#: src/cryptsetup.c:710
msgid "The size of the encryption key"
msgstr "Rozmiar klucza szyfruj<75>cego"
#: src/cryptsetup.c:710
msgid "BITS"
msgstr "BIT<49>W"
#: src/cryptsetup.c:711
msgid "Slot number for new key (default is first free)"
msgstr "Numer dla nowego klucza (domy<6D>lny: pierwszy wolny)"
#: src/cryptsetup.c:712
msgid "The size of the device"
msgstr "Rozmiar urz<72>dzenia"
#: src/cryptsetup.c:712 src/cryptsetup.c:713 src/cryptsetup.c:714
#: src/cryptsetup.c:721
msgid "SECTORS"
msgstr "SEKTOR<4F>W"
#: src/cryptsetup.c:713
msgid "The start offset in the backend device"
msgstr "Offset pocz<63>tku na urz<72>dzeniu przechowuj<75>cym"
#: src/cryptsetup.c:714
msgid "How many sectors of the encrypted data to skip at the beginning"
msgstr "Liczba sektor<6F>w zaszyfrowanych danych do pomini<6E>cia"
#: src/cryptsetup.c:715
msgid "Create a readonly mapping"
msgstr "Utworzenie odwzorowania tylko do odczytu"
#: src/cryptsetup.c:716
msgid "PBKDF2 iteration time for LUKS (in ms)"
msgstr "Czas iteracji PBKDF2 dla LUKS (w milisekundach)"
#: src/cryptsetup.c:716
msgid "msecs"
msgstr "ms"
#: src/cryptsetup.c:717
msgid "Do not ask for confirmation"
msgstr "Bez pyta<74> o potwierdzenie"
#: src/cryptsetup.c:718
msgid "Print package version"
msgstr "Wypisanie wersji pakietu"
#: src/cryptsetup.c:719
msgid "Timeout for interactive passphrase prompt (in seconds)"
msgstr "Limit czasu przy interaktywnym pytaniu o has<61>o (w sekundach)"
#: src/cryptsetup.c:719
msgid "secs"
msgstr "s"
#: src/cryptsetup.c:720
msgid "How often the input of the passphrase can be retried"
msgstr "Jak cz<63>sto mo<6D>na powtarza<7A> pr<70>by wprowadzenia has<61>a"
#: src/cryptsetup.c:721
msgid "Align payload at <n> sector boundaries - for luksFormat"
msgstr "Wyr<79>wnanie danych do granicy <n> sektor<6F>w - dla luksFormat"
#: src/cryptsetup.c:722
msgid "(Obsoleted, see man page.)"
msgstr "(przestarza<7A>e, p. strona man)"
#: src/cryptsetup.c:723
msgid "File with LUKS header and keyslots backup."
msgstr "Plik z kopi<70> zapasow<6F> nag<61><67>wka LUKS i kluczy."
#: src/cryptsetup.c:741
msgid "[OPTION...] <action> <action-specific>]"
msgstr "[OPCJA...] <akcja> <parametry-akcji>]"
#: src/cryptsetup.c:777
msgid "Key size must be a multiple of 8 bits"
msgstr "Rozmiar klucza musi by<62> wielokrotno<6E>ci<63> 8 bit<69>w"
#: src/cryptsetup.c:781
msgid "Argument <action> missing."
msgstr "Brak argumentu <akcja>."
#: src/cryptsetup.c:787
msgid "Unknown action."
msgstr "Nieznana akcja."
#: src/cryptsetup.c:802
#, c-format
msgid "%s: requires %s as arguments"
msgstr "%s: wymaga %s jako argument<6E>w"

818
po/vi.po
View File

@@ -1,818 +0,0 @@
# Vietnamese translation for CryptSetup.
# Copyright © 2010 Free Software Foundation, Inc.
# This file is distributed under the same license as the cryptsetup package.
# Clytie Siddall <clytie@riverland.net.au>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: cryptsetup 1.1.1-rc1\n"
"Report-Msgid-Bugs-To: dm-crypt@saout.de\n"
"POT-Creation-Date: 2010-05-01 16:21+0200\n"
"PO-Revision-Date: 2010-05-03 18:14+0930\n"
"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: LocFactoryEditor 1.8\n"
#: lib/libdevmapper.c:105
msgid "Cannot find compatible device-mapper kernel modules.\n"
msgstr "Không tìm thấy mô-đun hạt nhân ánh xạ thiết bị tương thích.\n"
#: lib/libdevmapper.c:111
msgid "Cannot initialize device-mapper. Is dm_mod kernel module loaded?\n"
msgstr "Không thể sơ khởi tiến trình ánh xạ thiết bị. Mô-đun hạt nhân « dm_mod » được nạp chưa?\n"
#: lib/libdevmapper.c:408
#, c-format
msgid "DM-UUID for device %s was truncated.\n"
msgstr "Mã số DM-UUID cho thiết bị %s bị cắt bớt.\n"
#: lib/setup.c:103
#, c-format
msgid "Cannot not read %d bytes from key file %s.\n"
msgstr "Không thể đọc %d byte từ tập tin khoá %s.\n"
#: lib/setup.c:115
#, c-format
msgid "Key processing error (using hash algorithm %s).\n"
msgstr "Lỗi xử lý khoá (dùng thuật toán chuỗi duy nhất %s).\n"
#: lib/setup.c:170
msgid "All key slots full.\n"
msgstr "Mọi khe khoá đều bị đầy.\n"
#: lib/setup.c:177 lib/setup.c:305 lib/setup.c:779
#, c-format
msgid "Key slot %d is invalid, please select between 0 and %d.\n"
msgstr "Khe khoá %d không đúng, hãy chọn một giá trị trong phạm vi 0 đến %d.\n"
#: lib/setup.c:183
#, c-format
msgid "Key slot %d is full, please select another one.\n"
msgstr "Khe khoá %d bị đầy, hãy chọn một khe khác.\n"
#: lib/setup.c:202
msgid "Enter any remaining LUKS passphrase: "
msgstr "Gõ cụm từ mật khẩu LUKS nào còn lại:"
#: lib/setup.c:223
#, c-format
msgid "Key slot %d verified.\n"
msgstr "Khe khoá %d được thẩm định.\n"
#: lib/setup.c:258
#, c-format
msgid "Cannot get info about device %s.\n"
msgstr "Không thể lấy thông tin về thiết bị %s.\n"
#: lib/setup.c:265
#, c-format
msgid "Device %s has zero size.\n"
msgstr "Thiết bị %s có kích cỡ số không.\n"
#: lib/setup.c:269
#, c-format
msgid "Device %s is too small.\n"
msgstr "Thiết bị %s có kích cỡ quá nhỏ.\n"
#: lib/setup.c:294
msgid "Enter LUKS passphrase to be deleted: "
msgstr "Gõ cụm từ mật khẩu LUKS cần xoá:"
#: lib/setup.c:300
#, c-format
msgid "key slot %d selected for deletion.\n"
msgstr "khe khoá %d được chọn để xoá.\n"
#: lib/setup.c:311
#, c-format
msgid "Key %d not active. Can't wipe.\n"
msgstr "Khoá %d không hoạt động thì không xoá được.\n"
#: lib/setup.c:317
msgid "This is the last keyslot. Device will become unusable after purging this key."
msgstr "Đây là khe khoá cuối cùng. Sau khi tẩy khoá này thì thiết bị không dùng được."
#: lib/setup.c:365 lib/setup.c:1687 lib/setup.c:1740 lib/setup.c:1797
#, c-format
msgid "Device %s already exists.\n"
msgstr "Thiết bị %s đã có.\n"
#: lib/setup.c:370
#, c-format
msgid "Invalid key size %d.\n"
msgstr "Kích cỡ khoá không đúng %d.\n"
#: lib/setup.c:472 lib/setup.c:1692
#, c-format
msgid "Enter passphrase for %s: "
msgstr "Gõ cụm từ mật khẩu cho %s: "
#: lib/setup.c:601 lib/setup.c:629 lib/setup.c:1401 lib/setup.c:1748
msgid "Enter passphrase: "
msgstr "Gõ cụm từ mật khẩu: "
#: lib/setup.c:662 lib/setup.c:1046 lib/setup.c:1839
#, c-format
msgid "Device %s is not active.\n"
msgstr "Thiết bị %s không hoạt động.\n"
#: lib/setup.c:771
msgid "No known cipher specification pattern detected.\n"
msgstr "Không phát hiện mẫu chỉ thị mật mã đã biết.\n"
#: lib/setup.c:785
msgid "Enter LUKS passphrase: "
msgstr "Gõ cụm từ mật khẩu LUKS: "
#: lib/setup.c:926 lib/setup.c:1153 lib/setup.c:1207 lib/setup.c:1232
#: lib/setup.c:1251
msgid "Cannot initialize crypto backend.\n"
msgstr "Không thể sơ khởi hậu phương mật mã.\n"
#: lib/setup.c:1066
msgid "Invalid plain crypt parameters.\n"
msgstr "Sai lập tham số mật mã bình thường.\n"
#: lib/setup.c:1071
msgid "Invalid key size.\n"
msgstr "Kích cỡ khoá không đúng.\n"
#: lib/setup.c:1104
msgid "Can't format LUKS without device.\n"
msgstr "Không thể định dạng LUKS mà không có thiết bị.\n"
#: lib/setup.c:1126
#, c-format
msgid "Can't wipe header on device %s.\n"
msgstr "Không thể xoá phần đầu trên thiết bị %s.\n"
#: lib/setup.c:1174
#, c-format
msgid "Unknown crypt device type %s requested.\n"
msgstr "Không rõ kiểu thiết bị mật mã %s được yêu cầu.\n"
#: lib/setup.c:1293
#, c-format
msgid "Volume %s is not active.\n"
msgstr "Khối tin %s không hoạt động.\n"
#: lib/setup.c:1306
#, c-format
msgid "Volume %s is already suspended.\n"
msgstr "Khối %s đã bị ngưng.\n"
#: lib/setup.c:1334 lib/setup.c:1383 lib/setup.c:1442 lib/setup.c:1520
#: lib/setup.c:1592 lib/setup.c:1637 lib/setup.c:1731 lib/setup.c:1788
#: lib/setup.c:1909 lib/setup.c:1992 lib/setup.c:2092
msgid "This operation is supported only for LUKS device.\n"
msgstr "Thao tác này được hỗ trợ chỉ cho thiết bị LUKS.\n"
#: lib/setup.c:1345 lib/setup.c:1394
#, c-format
msgid "Volume %s is not suspended.\n"
msgstr "Khối %s không bị ngưng.\n"
#: lib/setup.c:1456 lib/setup.c:1534
msgid "Cannot add key slot, all slots disabled and no volume key provided.\n"
msgstr "Không thể thêm khe khoá vì mọi khe đều bị tắt và không cung cấp khoá khối tin.\n"
#: lib/setup.c:1465 lib/setup.c:1540 lib/setup.c:1543
msgid "Enter any passphrase: "
msgstr "Gõ bất cứ cụm từ mật khẩu nào: "
#: lib/setup.c:1484 lib/setup.c:1558 lib/setup.c:1562 lib/setup.c:1615
msgid "Enter new passphrase for key slot: "
msgstr "Gõ cụm từ mật khẩu mới cho khe khoá: "
#: lib/setup.c:1606 lib/setup.c:1808 lib/setup.c:1920
msgid "Volume key does not match the volume.\n"
msgstr "Khoá khối tin không tương ứng với khối tin đó.\n"
#: lib/setup.c:1643
#, c-format
msgid "Key slot %d is invalid.\n"
msgstr "Khe khoá %d không đúng.\n"
#: lib/setup.c:1648
#, c-format
msgid "Key slot %d is not used.\n"
msgstr "Khe khoá %d không được dùng.\n"
#: lib/setup.c:1835
#, c-format
msgid "Device %s is busy.\n"
msgstr "Thiết bị %s đang bận.\n"
#: lib/setup.c:1843
#, c-format
msgid "Invalid device %s.\n"
msgstr "Thiết bị không đúng %s.\n"
#: lib/setup.c:1867
msgid "Volume key buffer too small.\n"
msgstr "Vùng đệm khoá khối tin quá nhỏ.\n"
#: lib/setup.c:1875
msgid "Cannot retrieve volume key for plain device.\n"
msgstr "Không thể lấy khoá khối tin cho thiết bị bình thường.\n"
#: lib/setup.c:1897
#, c-format
msgid "This operation is not supported for %s crypt device.\n"
msgstr "Thao tác này không được hỗ trợ cho thiết bị mật mã %s.\n"
#: lib/utils.c:416
#, c-format
msgid "Failed to open key file %s.\n"
msgstr "Lỗi mở tập tin khoá %s.\n"
#: lib/utils.c:436
msgid "Error reading passphrase from terminal.\n"
msgstr "Gặp lỗi khi đọc cụm từ mật khẩu từ thiết bị cuối.\n"
#: lib/utils.c:441
msgid "Verify passphrase: "
msgstr "Thẩm tra cụm từ mật khẩu: "
#: lib/utils.c:443
msgid "Passphrases do not match.\n"
msgstr "Hai cụm từ mật khẩu không trùng nhau.\n"
#: lib/utils.c:458
msgid "Can't do passphrase verification on non-tty inputs.\n"
msgstr "Không thể thẩm tra cụm từ mật khẩu trên đầu vào khác TTY.\n"
#: lib/utils.c:471
#, c-format
msgid "Failed to stat key file %s.\n"
msgstr "Lỗi lấy trạng thái về tập tin khoá %s.\n"
#: lib/utils.c:475
#, c-format
msgid "Warning: exhausting read requested, but key file %s is not a regular file, function might never return.\n"
msgstr "Cảnh báo : yêu cầu một hàm đọc vét kiệt mà tập tin khoá %s không phải là một tập tin thông thường thì có thể là hàm chưa bao giờ trả lại.\n"
#: lib/utils.c:487
msgid "Out of memory while reading passphrase.\n"
msgstr "Tràn bộ nhớ trong khi đọc cụm từ mật khẩu.\n"
#: lib/utils.c:494
msgid "Error reading passphrase.\n"
msgstr "Lỗi đọc cụm từ mật khẩu.\n"
#: lib/utils.c:531
#, c-format
msgid "Device %s doesn't exist or access denied.\n"
msgstr "Thiết bị %s không tồn tại hoặc không đủ quyền truy cập.\n"
#: lib/utils.c:538
#, c-format
msgid "Cannot open device %s for %s%s access.\n"
msgstr "Không thể mở thiết bị %s cho truy cập %s%s.\n"
#: lib/utils.c:539
msgid "exclusive "
msgstr "dành riêng"
#: lib/utils.c:540
msgid "writable"
msgstr "ghi được"
#: lib/utils.c:540
msgid "read-only"
msgstr "chỉ đọc"
#: lib/utils.c:547
#, c-format
msgid "Cannot read device %s.\n"
msgstr "Không thể đọc thiết bị %s.\n"
#: lib/utils.c:577
#, c-format
msgid "Cannot open device: %s\n"
msgstr "Không thể mở thiết bị: %s\n"
#: lib/utils.c:587
#, c-format
msgid "BLKROGET failed on device %s.\n"
msgstr "BLKROGET bị lỗi trên thiết bị %s.\n"
#: lib/utils.c:612
#, c-format
msgid "BLKGETSIZE failed on device %s.\n"
msgstr "BLKGETSIZE bị lỗi trên thiết bị %s.\n"
#: lib/utils.c:660
msgid "WARNING!!! Possibly insecure memory. Are you root?\n"
msgstr "CẢNH BÁO ! Có thể là vùng nhớ không an toàn. Bạn đang chạy dưới người chủ (root) không?\n"
#: lib/utils.c:666
msgid "Cannot get process priority.\n"
msgstr "Không thể lấy mức ưu tiên của tiến trình.\n"
#: lib/utils.c:669 lib/utils.c:682
#, c-format
msgid "setpriority %u failed: %s"
msgstr "setpriority %u bị lỗi: %s"
#: lib/utils.c:680
msgid "Cannot unlock memory."
msgstr "Không thể mở khoá vùng nhớ."
#: luks/keyencryption.c:68
#, c-format
msgid "Unable to obtain sector size for %s"
msgstr "Không thể lấy kích cỡ rãnh ghi cho %s"
#: luks/keyencryption.c:137
msgid "Failed to obtain device mapper directory."
msgstr "Lỗi lấy thư mục trình ánh xạ thiết bị."
#: luks/keyencryption.c:153
#, c-format
msgid ""
"Failed to setup dm-crypt key mapping for device %s.\n"
"Check that kernel supports %s cipher (check syslog for more info).\n"
"%s"
msgstr ""
"Lỗi thiết lập chức năng ánh xạ khoá dm-crypt cho thiết bị %s.\n"
"Kiểm tra lại hạt nhân hỗ trợ mật mã %s\n"
"(xem sổ theo dõi hệ thống để tìm thêm thông tin.)\n"
"%s"
#: luks/keyencryption.c:163
msgid "Failed to open temporary keystore device.\n"
msgstr "Lỗi mở thiết bị lưu trữ khoá tạm thời.\n"
#: luks/keyencryption.c:170
msgid "Failed to access temporary keystore device.\n"
msgstr "Lỗi truy cập đến thiết bị lưu trữ khoá tạm thời.\n"
#: luks/keymanage.c:94
#, c-format
msgid "Requested file %s already exist.\n"
msgstr "Yêu cầu tập tin %s đã có.\n"
#: luks/keymanage.c:114 luks/keymanage.c:257
#, c-format
msgid "Device %s is not a valid LUKS device.\n"
msgstr "Thiết bị %s không phải là một thiết bị kiểu LUKS đúng.\n"
#: luks/keymanage.c:134
#, c-format
msgid "Cannot write header backup file %s.\n"
msgstr "Không thể ghi nhớ tập tin sao lưu phần đầu %s.\n"
#: luks/keymanage.c:161
#, c-format
msgid "Backup file %s doesn't exist.\n"
msgstr "Tập tin sao lưu %s không tồn tại.\n"
#: luks/keymanage.c:169
msgid "Backup file do not contain valid LUKS header.\n"
msgstr "Tập tin sao lưu không chứa phần đầu LUKS đúng.\n"
#: luks/keymanage.c:182
#, c-format
msgid "Cannot open header backup file %s.\n"
msgstr "Không mở được tập tin sao lưu phần đầu %s.\n"
#: luks/keymanage.c:188
#, c-format
msgid "Cannot read header backup file %s.\n"
msgstr "Không đọc được tập tin sao lưu phần đầu %s.\n"
#: luks/keymanage.c:199
msgid "Data offset or key size differs on device and backup, restore failed.\n"
msgstr "Khoảng bù dữ liệu hoặc kích cỡ khoá vẫn khác nhau trên thiết bị và bản sao lưu thì chức năng phục hồi bị lỗi.\n"
#: luks/keymanage.c:207
#, c-format
msgid "Device %s %s%s"
msgstr "Thiết bị %s %s%s"
#: luks/keymanage.c:208
msgid "does not contain LUKS header. Replacing header can destroy data on that device."
msgstr "không chứa phần đầu LUKS. Thay thế phần đầu thì cũng có thể hủy dữ liệu trên thiết bị đó."
#: luks/keymanage.c:209
msgid "already contains LUKS header. Replacing header will destroy existing keyslots."
msgstr "đã chứa phần đầu LUKS. Thay thế phần đầu thì cũng hủy các khe khoá đã có."
#: luks/keymanage.c:210
msgid ""
"\n"
"WARNING: real device header has different UUID than backup!"
msgstr ""
"\n"
"CẢNH BÁO: phần đầu thiết bị thật có mã số UUID khác với bản sao lưu !"
#: luks/keymanage.c:225 luks/keymanage.c:338 luks/keymanage.c:373
#, c-format
msgid "Cannot open device %s.\n"
msgstr "Không thể mở thiết bị %s.\n"
#: luks/keymanage.c:259
#, c-format
msgid "Device %s is not a valid LUKS device."
msgstr "Thiết bị %s không phải là một thiết bị kiểu LUKS đúng."
#: luks/keymanage.c:262
#, c-format
msgid "Unsupported LUKS version %d.\n"
msgstr "Phiên bản LUKS không được hỗ trợ %d.\n"
#: luks/keymanage.c:265
#, c-format
msgid "Requested LUKS hash %s is not supported.\n"
msgstr "Không hỗ trợ chuỗi duy nhất LUKS %s được yêu cầu.\n"
#: luks/keymanage.c:310
#, c-format
msgid "Cannot open file %s.\n"
msgstr "Không thể mở tập tin %s.\n"
#: luks/keymanage.c:350
#, c-format
msgid "LUKS header detected but device %s is too small.\n"
msgstr "Phát hiện được phần đầu LUKS mà thiết bị %s quá nhỏ.\n"
#: luks/keymanage.c:394
#, c-format
msgid "Error during update of LUKS header on device %s.\n"
msgstr "Gặp lỗi trong khi cập nhật phần đầu LUKS trên thiết bị %s.\n"
#: luks/keymanage.c:401
#, c-format
msgid "Error re-reading LUKS header after update on device %s.\n"
msgstr "Gặp lỗi trong khi đọc lại phần đầu LUKS sau khi cập nhật trên thiết bị %s.\n"
#: luks/keymanage.c:413
#, c-format
msgid "Not compatible PBKDF2 options (using hash algorithm %s).\n"
msgstr "Gặp các tuỳ chọn PBKDF2 không tương thích (dùng thuật toán chuỗi duy nhất %s).\n"
#: luks/keymanage.c:461
msgid "Cannot create LUKS header: reading random salt failed.\n"
msgstr "Không thể tạo phần đầu LUKS: lỗi đọc salt ngẫu nhiên.\n"
#: luks/keymanage.c:478
#, c-format
msgid "Cannot create LUKS header: header digest failed (using hash %s).\n"
msgstr "Không thể tạo phần đầu LUKS: lỗi tạo bản tóm tắt (dùng chuỗi duy nhất %s).\n"
#: luks/keymanage.c:496
msgid "Wrong UUID format provided, generating new one.\n"
msgstr "Đưa ra định dạng mã số UUID không đúng nên tạo định dạng mới.\n"
#: luks/keymanage.c:523
#, c-format
msgid "Key slot %d active, purge first.\n"
msgstr "Khe khoá %d vẫn hoạt động: cần tẩy trước.\n"
#: luks/keymanage.c:528
#, c-format
msgid "Key slot %d material includes too few stripes. Header manipulation?\n"
msgstr "Nguyên liệu khe khoá %d gồm có quá ít sọc. Có nên thao tác phần đầu không?\n"
#: luks/keymanage.c:587
msgid "Failed to write to key storage.\n"
msgstr "Lỗi ghi khoá vào kho lưu khoá.\n"
#: luks/keymanage.c:664
msgid "Failed to read from key storage.\n"
msgstr "Lỗi đọc từ kho lưu khoá.\n"
#: luks/keymanage.c:673
#, c-format
msgid "Key slot %d unlocked.\n"
msgstr "Khe khoá %d được mở khoá.\n"
#: luks/keymanage.c:706
msgid "No key available with this passphrase.\n"
msgstr "Không có khoá sẵn sàng dùng với cụm từ mật khẩu này.\n"
#: luks/keymanage.c:783
#, c-format
msgid "Key slot %d is invalid, please select keyslot between 0 and %d.\n"
msgstr "Khe khoá %d không đúng: hãy chọn khe khoá trong phạm vi 0 đến %d.\n"
#: luks/keymanage.c:795
#, c-format
msgid "Cannot wipe device %s.\n"
msgstr "Không thể xoá thiết bị %s.\n"
#: src/cryptsetup.c:71 src/cryptsetup.c:89
msgid "<name> <device>"
msgstr "<tên> <thiết_bị>"
#: src/cryptsetup.c:71
msgid "create device"
msgstr "tạo thiết bị"
#: src/cryptsetup.c:72 src/cryptsetup.c:73 src/cryptsetup.c:74
#: src/cryptsetup.c:82
msgid "<name>"
msgstr "<tên>"
#: src/cryptsetup.c:72
msgid "remove device"
msgstr "gỡ bỏ thiết bị"
#: src/cryptsetup.c:73
msgid "resize active device"
msgstr "thay đổi kích cỡ của thiết bị hoạt động"
#: src/cryptsetup.c:74
msgid "show device status"
msgstr "hiển thị trạng thái về thiết bị"
#: src/cryptsetup.c:75 src/cryptsetup.c:77
msgid "<device> [<new key file>]"
msgstr "<thiết_bị> [<tập_tin_khoá_mới>]"
#: src/cryptsetup.c:75
msgid "formats a LUKS device"
msgstr "định dạng một thiết bị kiểu LUKS"
#: src/cryptsetup.c:76
msgid "<device> <name> "
msgstr "<thiết_bị> <tên> "
#: src/cryptsetup.c:76
msgid "open LUKS device as mapping <name>"
msgstr "mở thiết bị LUKS như là bản ánh xạ <tên>"
#: src/cryptsetup.c:77
msgid "add key to LUKS device"
msgstr "thêm khoá vào thiết bị LUKS"
#: src/cryptsetup.c:78
msgid "<device> [<key file>]"
msgstr "<thiết_bị> [<tập_tin_khoá>]"
#: src/cryptsetup.c:78
msgid "removes supplied key or key file from LUKS device"
msgstr "gỡ bỏ khỏi thiết bị LUKS khoá hoặc tập tin khoá đưa ra"
#: src/cryptsetup.c:79 src/cryptsetup.c:88
msgid "<device> <key slot>"
msgstr "<thiết_bị> <khe_khoá>"
#: src/cryptsetup.c:79
msgid "wipes key with number <key slot> from LUKS device"
msgstr "xoá khỏi thiết bị LUKS khoá có số <khe_khoá>"
#: src/cryptsetup.c:80 src/cryptsetup.c:81 src/cryptsetup.c:83
#: src/cryptsetup.c:84 src/cryptsetup.c:85 src/cryptsetup.c:86
#: src/cryptsetup.c:87
msgid "<device>"
msgstr "<thiết_bị>"
#: src/cryptsetup.c:80
msgid "print UUID of LUKS device"
msgstr "in ra mã số UUID của thiết bị LUKS"
#: src/cryptsetup.c:81
msgid "tests <device> for LUKS partition header"
msgstr "thử <thiết_bị> có phần đầu phân vùng LUKS không"
#: src/cryptsetup.c:82
msgid "remove LUKS mapping"
msgstr "gỡ bỏ sự ánh xạ LUKS"
#: src/cryptsetup.c:83
msgid "dump LUKS partition information"
msgstr "đổ thông tin về phân vùng LUKS"
#: src/cryptsetup.c:84
msgid "Suspend LUKS device and wipe key (all IOs are frozen)."
msgstr "Ngưng thiết bị LUKS và xoá khoá (thì mọi việc V/R đều đông cứng)."
#: src/cryptsetup.c:85
msgid "Resume suspended LUKS device."
msgstr "Tiếp tục lại sử dụng thiết bị LUKS bị ngưng."
#: src/cryptsetup.c:86
msgid "Backup LUKS device header and keyslots"
msgstr "Sao lưu phần đầu và các khe khoá của thiết bị LUKS"
#: src/cryptsetup.c:87
msgid "Restore LUKS device header and keyslots"
msgstr "Phục hồi phần đầu và các khe khoá của thiết bị LUKS"
#: src/cryptsetup.c:88
msgid "identical to luksKillSlot - DEPRECATED - see man page"
msgstr "trùng với luksKillSlot - BỊ PHẢN ĐỐI - xem trang hướng dẫn"
#: src/cryptsetup.c:89
msgid "modify active device - DEPRECATED - see man page"
msgstr "sửa đổi thiết bị hoạt động - BỊ PHẢN ĐỐI - xem trang hướng dẫn"
#: src/cryptsetup.c:180
msgid "Command successful.\n"
msgstr "Câu lệnh đã chạy thành công.\n"
#: src/cryptsetup.c:194
#, c-format
msgid "Command failed with code %i"
msgstr "Câu lệnh đã thất bại với mã %i"
#: src/cryptsetup.c:222
msgid ""
"The reload action is deprecated. Please use \"dmsetup reload\" in case you really need this functionality.\n"
"WARNING: do not use reload to touch LUKS devices. If that is the case, hit Ctrl-C now.\n"
msgstr ""
"Hành động nạp lại bị phản đối. Hãy sử dụng « dmsetup reload » trong trường hợp bạn thực sự yêu cầu chức năng này.\n"
"CẢNH BÁO : đừng sử dụng chức năng nạp lại để thao tác thiết bị kiểu LUKS. Trong trường hợp đó, bấm tổ hợp phím Ctrl-C ngay bây giờ.\n"
#: src/cryptsetup.c:390
#, c-format
msgid "This will overwrite data on %s irrevocably."
msgstr "Hành động này sẽ ghi đè lên dữ liệu trên thiết bị %s một cách không phục hồi được."
#: src/cryptsetup.c:391
msgid "memory allocation error in action_luksFormat"
msgstr "gặp lỗi phân cấp vùng nhớ trong « action_luksFormat »"
#: src/cryptsetup.c:421
msgid "Obsolete option --non-exclusive is ignored.\n"
msgstr "Tuỳ chọn cũ « --non-exclusive » bị bỏ qua.\n"
#: src/cryptsetup.c:581 src/cryptsetup.c:603
msgid "Option --header-backup-file is required.\n"
msgstr "Tuỳ chọn « --header-backup-file » cũng cần thiết.\n"
#: src/cryptsetup.c:637
msgid ""
"\n"
"<action> is one of:\n"
msgstr ""
"\n"
"<hành_vi> là một của những điều dưới đây:\n"
#: src/cryptsetup.c:643
#, c-format
msgid ""
"\n"
"<name> is the device to create under %s\n"
"<device> is the encrypted device\n"
"<key slot> is the LUKS key slot number to modify\n"
"<key file> optional key file for the new key for luksAddKey action\n"
msgstr ""
"\n"
"<tên> là thiết bị cần tạo dưới %s\n"
"<thiết_bị> là thiết bị đã mật mã\n"
"<khe_khoá> là số thứ tự khe khoá LUKS cần sửa đổi\n"
"<tập_tin_khoá> là tập tin khoá tuỳ chọn cho khoá mới trong hành động luksAddKey\n"
#: src/cryptsetup.c:650
#, c-format
msgid ""
"\n"
"Default compiled-in device cipher parameters:\n"
"\tplain: %s, Key: %d bits, Password hashing: %s\n"
"\tLUKS1: %s, Key: %d bits, LUKS header hashing: %s\n"
msgstr ""
"\n"
"Các tham số mặc định về mật mã thiết bị biên dịch vào:\n"
"\tbình thường: %s, Khoá: %d bit, Tạo chuỗi duy nhất mật khẩu: %s\n"
"\tLUKS1: %s, Khoá: %d bit, Tạo chuỗi duy nhất phần đầu LUKS: %s\n"
#: src/cryptsetup.c:697
msgid "Show this help message"
msgstr "Hiển thị trợ giúp này"
#: src/cryptsetup.c:698
msgid "Display brief usage"
msgstr " Hiển thị thông điệp ngắn về cách sử dụng"
#: src/cryptsetup.c:702
msgid "Help options:"
msgstr "Tùy chọn trợ giúp:"
#: src/cryptsetup.c:703
msgid "Shows more detailed error messages"
msgstr "Hiển thị các thông điệp lỗi chi tiết hơn"
#: src/cryptsetup.c:704
msgid "Show debug messages"
msgstr "Hiển thị thông điệp gỡ lỗi"
#: src/cryptsetup.c:705
msgid "The cipher used to encrypt the disk (see /proc/crypto)"
msgstr "Mật mã dùng để bảo vệ đĩa (xem « /proc/crypto »)"
#: src/cryptsetup.c:706
msgid "The hash used to create the encryption key from the passphrase"
msgstr "Chuỗi duy nhất dùng để tạo khoá mật mã từ cụm từ mật khẩu"
#: src/cryptsetup.c:707
msgid "Verifies the passphrase by asking for it twice"
msgstr "Thẩm tra cụm từ mật khẩu bằng cách yêu cầu nó hai lần"
#: src/cryptsetup.c:708
msgid "Read the key from a file (can be /dev/random)"
msgstr "Đọc khoá từ một tập tin nào đó (có thể là « /dev/random »)"
#: src/cryptsetup.c:709
msgid "Read the volume (master) key from file."
msgstr "Đọc khoá khối tin (chủ) từ tập tin."
#: src/cryptsetup.c:710
msgid "The size of the encryption key"
msgstr "Kích cỡ của khoá mật mã"
#: src/cryptsetup.c:710
msgid "BITS"
msgstr "BIT"
#: src/cryptsetup.c:711
msgid "Slot number for new key (default is first free)"
msgstr "Số thứ tự khe cho khoá mới (mặc định là khe trống thứ nhất)"
#: src/cryptsetup.c:712
msgid "The size of the device"
msgstr "Kích cỡ của thiết bị"
#: src/cryptsetup.c:712 src/cryptsetup.c:713 src/cryptsetup.c:714
#: src/cryptsetup.c:721
msgid "SECTORS"
msgstr "RÃNH GHI"
#: src/cryptsetup.c:713
msgid "The start offset in the backend device"
msgstr "Khoảng bù đầu tiên trong thiết bị hậu phương"
#: src/cryptsetup.c:714
msgid "How many sectors of the encrypted data to skip at the beginning"
msgstr "Bao nhiêu rãnh ghi dữ liệu mật mã cần bỏ qua ở đầu"
#: src/cryptsetup.c:715
msgid "Create a readonly mapping"
msgstr "Tạo một sự ánh xạ chỉ cho phép đọc"
#: src/cryptsetup.c:716
msgid "PBKDF2 iteration time for LUKS (in ms)"
msgstr "Thời gian lặp lại PBKDF2 cho LUKS (theo mili-giây)"
#: src/cryptsetup.c:716
msgid "msecs"
msgstr "mili-giây"
#: src/cryptsetup.c:717
msgid "Do not ask for confirmation"
msgstr "Đừng yêu cầu xác nhận"
#: src/cryptsetup.c:718
msgid "Print package version"
msgstr "In ra phiên bản gói"
#: src/cryptsetup.c:719
msgid "Timeout for interactive passphrase prompt (in seconds)"
msgstr "Thời hạn khi nhắc gõ cụm từ mật khẩu (theo giây)"
#: src/cryptsetup.c:719
msgid "secs"
msgstr "giây"
#: src/cryptsetup.c:720
msgid "How often the input of the passphrase can be retried"
msgstr "Số các lần có thể thử lại gõ cụm từ mật khẩu"
#: src/cryptsetup.c:721
msgid "Align payload at <n> sector boundaries - for luksFormat"
msgstr "Sắp hàng trọng tải ở <n> biên giới rãnh ghi — cho định dạng luksFormat"
#: src/cryptsetup.c:722
msgid "(Obsoleted, see man page.)"
msgstr "(Bị phản đối, xem trang hướng dẫn.)"
#: src/cryptsetup.c:723
msgid "File with LUKS header and keyslots backup."
msgstr "Tập tin chứa bản sao lưu phần đầu và các khe khoá của thiết bị LUKS."
#: src/cryptsetup.c:741
msgid "[OPTION...] <action> <action-specific>]"
msgstr "[TÙY_CHỌN...] <hành_vi> <đặc_trưng_cho_hành_vi>]"
#: src/cryptsetup.c:777
msgid "Key size must be a multiple of 8 bits"
msgstr "Kích cỡ khoá phải là bội số cho 8 bit"
#: src/cryptsetup.c:781
msgid "Argument <action> missing."
msgstr "Đối số <hành_vi> còn thiếu."
#: src/cryptsetup.c:787
msgid "Unknown action."
msgstr "Hành động không rõ."
#: src/cryptsetup.c:802
#, c-format
msgid "%s: requires %s as arguments"
msgstr "%s: cần thiết %s làm đối số"

View File

@@ -19,9 +19,9 @@ _STATIC_LDADD = @LIBGCRYPT_LIBS@ -lgpg-error @SELINUX_STATIC_LIBS@
endif
cryptsetup_LDADD = \
@POPT_LIBS@ \
$(top_builddir)/lib/libcryptsetup.la \
$(_STATIC_LDADD) \
@POPT_LIBS@
$(_STATIC_LDADD)
cryptsetup_LDFLAGS = \

View File

@@ -90,7 +90,7 @@ static struct action_type {
{ NULL, NULL, 0, 0, 0, NULL, NULL }
};
static void clogger(struct crypt_device *cd, int level, const char *file,
static void clogger(struct crypt_device *cd, int class, const char *file,
int line, const char *format, ...)
{
va_list argp;
@@ -99,8 +99,8 @@ static void clogger(struct crypt_device *cd, int level, const char *file,
va_start(argp, format);
if (vasprintf(&target, format, argp) > 0) {
if (level >= 0) {
crypt_log(cd, level, target);
if (class >= 0) {
crypt_log(cd, class, target);
#ifdef CRYPT_DEBUG
} else if (opt_debug)
printf("# %s:%d %s\n", file ?: "?", line, target);
@@ -137,33 +137,29 @@ static int yesDialog(char *msg)
return r;
}
static void cmdLineLog(int level, char *msg) {
switch(level) {
static void cmdLineLog(int class, char *msg) {
switch(class) {
case CRYPT_LOG_NORMAL:
fputs(msg, stdout);
break;
case CRYPT_LOG_VERBOSE:
if (opt_verbose)
fputs(msg, stdout);
break;
case CRYPT_LOG_ERROR:
fputs(msg, stderr);
break;
default:
fprintf(stderr, "Internal error on logging class for msg: %s", msg);
break;
}
case CRYPT_LOG_NORMAL:
fputs(msg, stdout);
break;
case CRYPT_LOG_ERROR:
fputs(msg, stderr);
break;
default:
fprintf(stderr, "Internal error on logging class for msg: %s", msg);
break;
}
}
static struct interface_callbacks cmd_icb = {
.yesDialog = yesDialog,
.log = cmdLineLog,
.yesDialog = yesDialog,
.log = cmdLineLog,
};
static void _log(int level, const char *msg, void *usrptr)
static void _log(int class, const char *msg, void *usrptr)
{
cmdLineLog(level, (char *)msg);
cmdLineLog(class, (char *)msg);
}
static int _yesDialog(const char *msg, void *usrptr)
@@ -282,7 +278,7 @@ static int action_status(int arg)
log_std("%s/%s is active:\n", crypt_get_dir(), options.name);
log_std(" cipher: %s\n", options.cipher);
log_std(" keysize: %d bits\n", options.key_size * 8);
log_std(" device: %s\n", options.device ?: "");
log_std(" device: %s\n", options.device);
log_std(" offset: %" PRIu64 " sectors\n", options.offset);
log_std(" size: %" PRIu64 " sectors\n", options.size);
if (options.skip)
@@ -303,7 +299,7 @@ static int _action_luksFormat_generateMK()
.device = action_argv[0],
.cipher = opt_cipher ?: DEFAULT_CIPHER(LUKS1),
.hash = opt_hash ?: DEFAULT_LUKS1_HASH,
.new_key_file = opt_key_file ?: (action_argc > 1 ? action_argv[1] : NULL),
.new_key_file = action_argc > 1 ? action_argv[1] : NULL,
.flags = opt_verify_passphrase ? CRYPT_FLAG_VERIFY : (!opt_batch_mode?CRYPT_FLAG_VERIFY_IF_POSSIBLE : 0),
.iteration_time = opt_iteration_time,
.timeout = opt_timeout,
@@ -391,9 +387,6 @@ static int action_luksFormat(int arg)
return -EINVAL;
}
if (action_argc > 1 && opt_key_file)
log_err(_("Option --key-file takes precedence over specified key file argument.\n"));
if(asprintf(&msg, _("This will overwrite data on %s irrevocably."), action_argv[0]) == -1) {
log_err(_("memory allocation error in action_luksFormat"));
return -ENOMEM;
@@ -466,7 +459,7 @@ static int action_luksRemoveKey(int arg)
static int _action_luksAddKey_useMK()
{
int r = -EINVAL, keysize = 0;
int r = -EINVAL, keysize;
char *key = NULL;
struct crypt_device *cd = NULL;

View File

@@ -13,7 +13,6 @@
#define log_dbg(x...) clogger(NULL, CRYPT_LOG_DEBUG, __FILE__, __LINE__, x)
#define log_std(x...) clogger(NULL, CRYPT_LOG_NORMAL, __FILE__, __LINE__, x)
#define log_verbose(x...) clogger(NULL, CRYPT_LOG_VERBOSE, __FILE__, __LINE__, x)
#define log_err(x...) clogger(NULL, CRYPT_LOG_ERROR, __FILE__, __LINE__, x)
#endif /* CRYPTSETUP_H */

View File

@@ -1,13 +1,170 @@
TESTS = api-test compat-test align-test
TESTS = apitest
EXTRA_DIST = fileDiffer.py compatimage.img.bz2 align-test compat-test
EXTRA_DIST = fileDiffer.py compatimage.img.bz2
api_test_SOURCES = api-test.c
api_test_LDADD = ../lib/libcryptsetup.la
api_test_LDFLAGS = -static
api_test_CFLAGS = -g -Wall -O0 -I$(top_srcdir)/lib/
apitest_SOURCES = apitest.c
apitest_LDADD = ../lib/libcryptsetup.la
apitest_LDFLAGS = -static
apitest_CFLAGS = -g -Wall -O0 -I$(top_srcdir)/lib/
check_PROGRAMS = api-test
check_PROGRAMS = apitest
compatimage.img:
@bzip2 -k -d compatimage.img.bz2
# LUKS tests
ORIG_IMG = /tmp/luks-test-orig
IMG = /tmp/luks-test
IMG1 = /tmp/luks-test1
LUKS_HEADER = S0-5 S6-7 S8-39 S40-71 S72-103 S104-107 S108-111 R112-131 R132-163 S164-167 S168-207 A0-591
KEY_SLOT0 = S208-211 S212-215 R216-247 S248-251 S251-255
KEY_MATERIAL0 = R4096-68096
KEY_MATERIAL0_EXT = R4096-68096
KEY_SLOT1 = S256-259 S260-263 R264-295 S296-299 S300-303
KEY_MATERIAL1 = R69632-133632
KEY_MATERIAL1_EXT = S69632-133632
LOOPDEV = /dev/loop5
test:
# (cd ..; make clean; make CFLAGS=-Werror)
@if [ `id -u` != 0 ]; then \
echo Not root; \
fi
@if [ ! -e /tmp/key1 ]; then \
dd if=/dev/urandom of=/tmp/key1 count=1 bs=32; \
fi
@bzip2 -cd compatimage.img.bz2 > $(IMG)
@-/sbin/losetup -d $(LOOPDEV)
@/sbin/losetup $(LOOPDEV) $(IMG)
@echo Case: open - compat image - acceptance check
# Image must not change
@cp $(IMG) $(ORIG_IMG)
echo "compatkey" | ../src/cryptsetup -v luksOpen $(LOOPDEV) dummy
@sync
./fileDiffer.py $(IMG) $(ORIG_IMG)
@-ls -l /dev/mapper/dummy > /dev/null
@../src/cryptsetup remove dummy
@echo "success"
@echo Case: open - compat image - denial check
# Image must not change
@cp $(IMG) $(ORIG_IMG)
echo "wrongkey" | ../src/cryptsetup -v luksOpen $(LOOPDEV) dummy || true
@sync
./fileDiffer.py $(IMG) $(ORIG_IMG)
@echo "success"
@echo Case: format
# All headers items and first key material section must change
@cp $(IMG) $(ORIG_IMG)
echo "key0" | ../src/cryptsetup -v -i 1000 -c aes-cbc-essiv:sha256 -s 128 luksFormat $(LOOPDEV)
@sync
./fileDiffer.py $(IMG) $(ORIG_IMG) $(LUKS_HEADER) $(KEY_SLOT0) $(KEY_MATERIAL0)
@echo Case: format using hash sha512
@cp $(IMG) $(ORIG_IMG)
echo "key0" | ../src/cryptsetup -v -i 1000 -h sha512 -c aes-cbc-essiv:sha256 -s 128 luksFormat $(LOOPDEV)
@sync
./fileDiffer.py $(IMG) $(ORIG_IMG) $(LUKS_HEADER) $(KEY_SLOT0) $(KEY_MATERIAL0)
@echo Case: open
# Image must not change
@cp $(IMG) $(ORIG_IMG)
echo "key0" | ../src/cryptsetup -v luksOpen $(LOOPDEV) dummy
@sync
./fileDiffer.py $(IMG) $(ORIG_IMG)
@-ls -l /dev/mapper/dummy > /dev/null
@../src/cryptsetup remove dummy
@echo "success"
@echo Case: add key
# Key Slot 1 and key material section 1 must change, the rest must not.
@cp $(IMG) $(ORIG_IMG)
echo -e "key0\nkey1" | ../src/cryptsetup -v luksAddKey $(LOOPDEV)
@sync
./fileDiffer.py $(IMG) $(ORIG_IMG) $(KEY_SLOT1) $(KEY_MATERIAL1)
echo "key1" | ../src/cryptsetup -v luksOpen $(LOOPDEV) dummy
@-ls -l /dev/mapper/dummy > /dev/null
@../src/cryptsetup -v remove dummy
@echo "success"
# Unsuccessful Key Delete - nothing may change
@echo Case: unsuccessful delete
@cp $(IMG) $(ORIG_IMG)
echo "invalid" | ../src/cryptsetup -v luksDelKey $(LOOPDEV) 1 || true
@sync
./fileDiffer.py $(IMG) $(ORIG_IMG)
@echo "success"
# Delete Key Test
# Key Slot 1 and key material section 1 must change, the rest must not
@echo Case: successful delete
@cp $(IMG) $(ORIG_IMG)
../src/cryptsetup -v -q luksDelKey $(LOOPDEV) 1
@sync
./fileDiffer.py $(IMG) $(ORIG_IMG) $(KEY_SLOT1) $(KEY_MATERIAL1_EXT)
echo "key1" | ../src/cryptsetup -v luksOpen $(LOOPDEV) dummy 2>/dev/null || true
echo "key0" | ../src/cryptsetup -v luksOpen $(LOOPDEV) dummy 2>/dev/null
@../src/cryptsetup -v remove dummy
@echo "success"
# Non-Exclusive Open test
# @echo Case: Non-Exclusive Open
# echo "key0" | ../src/cryptsetup -v --readonly luksOpen $(LOOPDEV) dummy1 2>/dev/null
# must fail
# echo "key0" | ../src/cryptsetup -v --readonly luksOpen $(LOOPDEV) dummy2 2>/dev/null || true
# echo "key0" | ../src/cryptsetup -v --non-exclusive --readonly luksOpen $(LOOPDEV) dummy2 2>/dev/null
# @../src/cryptsetup -v remove dummy1
# @../src/cryptsetup -v remove dummy2
# Key Slot 1 and key material section 1 must change, the rest must not
@echo Case: add key test for key files
@cp $(IMG) $(ORIG_IMG)
echo "key0" | ../src/cryptsetup -v luksAddKey $(LOOPDEV) /tmp/key1
@sync
./fileDiffer.py $(IMG) $(ORIG_IMG) $(KEY_SLOT1) $(KEY_MATERIAL1)
../src/cryptsetup -d /tmp/key1 -v luksOpen $(LOOPDEV) dummy
@-ls -l /dev/mapper/dummy > /dev/null
@../src/cryptsetup -v remove dummy
@echo "success"
@echo Case: delete key test with /tmp/key1 as remaining key
# Key Slot 1 and key material section 1 must change, the rest must not
@cp $(IMG) $(ORIG_IMG)
../src/cryptsetup -v -d /tmp/key1 luksDelKey $(LOOPDEV) 0
@sync
./fileDiffer.py $(IMG) $(ORIG_IMG) $(KEY_SLOT0) $(KEY_MATERIAL0_EXT)
echo "key0" | ../src/cryptsetup -v luksOpen $(LOOPDEV) dummy 2>/dev/null || true
../src/cryptsetup -v luksOpen -d /tmp/key1 $(LOOPDEV) dummy 2>/dev/null
@../src/cryptsetup -v remove dummy
@echo "success"
# Delete last slot
@echo Case: delete last key
@cp $(IMG) $(ORIG_IMG)
@echo "key0" | ../src/cryptsetup -v luksFormat $(LOOPDEV)
echo "key0" | ../src/cryptsetup -v luksKillSlot $(LOOPDEV) 0
@sync
echo "key0" | ../src/cryptsetup -v luksOpen $(LOOPDEV) dummy 2>/dev/null || true
@echo "success"
# Format test for ESSIV, and some other parameters.
@echo Case: parameter variation test
@dd if=/dev/zero of=$(IMG) count=20000
@cp $(IMG) $(ORIG_IMG)
@../src/cryptsetup -q -v -i 1000 -c aes-cbc-essiv:sha256 -s 128 luksFormat $(LOOPDEV) /tmp/key1
@sync
./fileDiffer.py $(IMG) $(ORIG_IMG) $(LUKS_HEADER) $(KEY_SLOT0) $(KEY_MATERIAL0)
@../src/cryptsetup -d /tmp/key1 -v luksOpen $(LOOPDEV) dummy
@-ls -l /dev/mapper/dummy > /dev/null && echo "success"
@../src/cryptsetup -v remove dummy
@-/sbin/losetup -d $(LOOPDEV)

View File

@@ -1,102 +0,0 @@
#!/bin/bash
CRYPTSETUP="../src/cryptsetup"
DEV=""
cleanup() {
udevadm settle 2>/dev/null 2>&1
rmmod scsi_debug 2>/dev/null
sleep 2
}
fail()
{
[ -n "$1" ] && echo "$1"
cleanup
exit 100
}
add_device() {
modprobe scsi_debug $@
if [ $? -ne 0 ] ; then
echo "This kernel seems to not support proper scsi_debug module, test skipped."
exit 0
fi
sleep 2
DEV=$(grep scsi_debug /sys/block/*/device/model | cut -f4 -d /)
if [ ! -e /sys/block/$DEV/alignment_offset ] ; then
echo "This kernel seems to not support topology info, test skipped."
cleanup
exit 0
fi
DEV="/dev/$DEV"
[ -b $DEV ] || fail "Cannot find $DEV."
}
format() # key_bits expected [forced]
{
if [ -z "$3" ] ; then
echo -n "Formatting using topology info ($1 bits key)...."
echo xxx| $CRYPTSETUP luksFormat $DEV -q -s $1
else
echo -n "Formatting using forced offset $3 ($1 bits key)..."
echo xxx| $CRYPTSETUP luksFormat $DEV -q -s $1 --align-payload=$2
fi
ALIGN=$($CRYPTSETUP luksDump $DEV |grep "Payload offset" | sed -e s/.*\\t//)
#echo "ALIGN = $ALIGN"
if [ $ALIGN -ne $2 ] ; then
echo "FAIL"
echo "Expected alignment differs: expected $2 != detected $ALIGN"
fail
fi
echo "PASSED"
}
if [ $(id -u) != 0 ]; then
echo "WARNING: You must be root to run this test, test skipped."
exit 0
fi
modprobe --dry-run scsi_debug || exit 0
cleanup
echo "# Create desktop-class 4K drive"
echo "# (logical_block_size=512, physical_block_size=4096, alignment_offset=0)"
add_device dev_size_mb=16 sector_size=512 physblk_exp=3 num_tgts=1
format 256 2112
format 128 1088
format 256 8192 8192
format 128 8192 8192
cleanup
echo "# Create desktop-class 4K drive w/ 63-sector DOS partition compensation"
echo "# (logical_block_size=512, physical_block_size=4096, alignment_offset=3584)"
add_device dev_size_mb=16 sector_size=512 physblk_exp=3 lowest_aligned=7 num_tgts=1
format 256 2119
format 128 1095
cleanup
echo "# Create enterprise-class 4K drive"
echo "# (logical_block_size=4096, physical_block_size=4096, alignment_offset=0)"
add_device dev_size_mb=16 sector_size=4096 num_tgts=1
format 256 2560
format 128 1536
cleanup
echo "# Create classic 512b drive and stack dm-linear"
echo "# (logical_block_size=512, physical_block_size=512, alignment_offset=0)"
add_device dev_size_mb=16 sector_size=512 num_tgts=1
DEV2=$DEV
DEV=/dev/mapper/luks0xbabe
dmsetup create luks0xbabe --table "0 32768 linear $DEV2 0"
format 256 2112
format 128 1088
format 128 8192 8192
dmsetup remove luks0xbabe
cleanup

View File

@@ -58,8 +58,6 @@ static int _verbose = 1;
static char global_log[4096];
static int global_lines = 0;
static int gcrypt_compatible = 0;
// Helpers
static int _prepare_keyfile(const char *name, const char *passphrase)
{
@@ -111,15 +109,15 @@ static int yesDialog(char *msg)
return 1;
}
static void cmdLineLog(int level, char *msg)
static void cmdLineLog(int class, char *msg)
{
strncat(global_log, msg, sizeof(global_log) - strlen(global_log));
strncat(global_log, msg, sizeof(global_log));
global_lines++;
}
static void new_log(int level, const char *msg, void *usrptr)
static void new_log(int class, const char *msg, void *usrptr)
{
cmdLineLog(level, (char*)msg);
cmdLineLog(class, (char*)msg);
}
@@ -136,46 +134,41 @@ static struct interface_callbacks cmd_icb = {
static void _cleanup(void)
{
int r;
struct stat st;
//r = system("udevadm settle");
//system("udevadm settle");
if (!stat(DMDIR CDEVICE_1, &st))
r = system("dmsetup remove " CDEVICE_1);
system("dmsetup remove " CDEVICE_1);
if (!stat(DMDIR CDEVICE_2, &st))
r = system("dmsetup remove " CDEVICE_2);
system("dmsetup remove " CDEVICE_2);
if (!stat(DEVICE_EMPTY, &st))
r = system("dmsetup remove " DEVICE_EMPTY_name);
system("dmsetup remove " DEVICE_EMPTY_name);
if (!stat(DEVICE_ERROR, &st))
r = system("dmsetup remove " DEVICE_ERROR_name);
system("dmsetup remove " DEVICE_ERROR_name);
if (!strncmp("/dev/loop", DEVICE_1, 9))
r = system("losetup -d " DEVICE_1);
system("losetup -d " DEVICE_1);
if (!strncmp("/dev/loop", DEVICE_2, 9))
r = system("losetup -d " DEVICE_2);
system("losetup -d " DEVICE_2);
r = system("rm -f " IMAGE_EMPTY);
system("rm -f " IMAGE_EMPTY);
_remove_keyfiles();
}
static void _setup(void)
{
int r;
r = system("dmsetup create " DEVICE_EMPTY_name " --table \"0 10000 zero\"");
r = system("dmsetup create " DEVICE_ERROR_name " --table \"0 10000 error\"");
if (!strncmp("/dev/loop", DEVICE_1, 9)) {
r = system(" [ ! -e " IMAGE1 " ] && bzip2 -dk " IMAGE1 ".bz2");
r = system("losetup " DEVICE_1 " " IMAGE1);
}
system("dmsetup create " DEVICE_EMPTY_name " --table \"0 10000 zero\"");
system("dmsetup create " DEVICE_ERROR_name " --table \"0 10000 error\"");
if (!strncmp("/dev/loop", DEVICE_1, 9))
system("losetup " DEVICE_1 " " IMAGE1);
if (!strncmp("/dev/loop", DEVICE_2, 9)) {
r = system("dd if=/dev/zero of=" IMAGE_EMPTY " bs=1M count=4");
r = system("losetup " DEVICE_2 " " IMAGE_EMPTY);
system("dd if=/dev/zero of=" IMAGE_EMPTY " bs=1M count=4");
system("losetup " DEVICE_2 " " IMAGE_EMPTY);
}
}
@@ -476,10 +469,11 @@ void DeviceResizeGame(void)
co.size = 0;
OK_(crypt_resize_device(&co));
EQ_(_get_device_size(DMDIR CDEVICE_2), (orig_size - 333));
co.size = 0;
co.offset = 444;
co.skip = 555;
co.cipher = "aes-cbc-essiv:sha256";
co.cipher = "aes-cbc-benbi";
OK_(crypt_update_device(&co));
EQ_(_get_device_size(DMDIR CDEVICE_2), (orig_size - 444));
@@ -487,40 +481,14 @@ void DeviceResizeGame(void)
co.icb = &cmd_icb,
co.name = CDEVICE_2;
EQ_(crypt_query_device(&co), 1);
EQ_(strcmp(co.cipher, "aes-cbc-essiv:sha256"), 0);
EQ_(strcmp(co.cipher, "aes-cbc-benbi"), 0);
EQ_(co.key_size, 128 / 8);
EQ_(co.offset, 444);
EQ_(co.skip, 555);
crypt_put_options(&co);
// dangerous switch device still works
memset(&co, 0, sizeof(co));
co.name = CDEVICE_2,
co.device = DEVICE_1;
co.key_file = KEYFILE2;
co.key_size = 128 / 8;
co.cipher = "aes-cbc-plain";
co.hash = "sha1";
co.icb = &cmd_icb;
OK_(crypt_update_device(&co));
memset(&co, 0, sizeof(co));
co.icb = &cmd_icb,
co.name = CDEVICE_2;
EQ_(crypt_query_device(&co), 1);
EQ_(strcmp(co.cipher, "aes-cbc-plain"), 0);
EQ_(co.key_size, 128 / 8);
EQ_(co.offset, 0);
EQ_(co.skip, 0);
// This expect lookup returns prefered /dev/loopX
EQ_(strcmp(co.device, DEVICE_1), 0);
crypt_put_options(&co);
memset(&co, 0, sizeof(co));
co.icb = &cmd_icb,
co.name = CDEVICE_2;
OK_(crypt_remove_device(&co));
crypt_put_options(&co);
_remove_keyfiles();
}
@@ -547,23 +515,8 @@ static void AddDevicePlain(void)
FAIL_(crypt_init(&cd, ""), "empty device string");
// default is "plain" hash - no password hash
OK_(crypt_init(&cd, DEVICE_1));
OK_(crypt_format(cd, CRYPT_PLAIN, cipher, cipher_mode, NULL, NULL, key_size, NULL));
FAIL_(crypt_activate_by_volume_key(cd, NULL, key, key_size, 0), "cannot verify key with plain");
OK_(crypt_activate_by_volume_key(cd, CDEVICE_1, key, key_size, 0));
EQ_(crypt_status(cd, CDEVICE_1), CRYPT_ACTIVE);
// FIXME: this should get key from active device?
//OK_(crypt_volume_key_get(cd, CRYPT_ANY_SLOT, key2, &key_size, passphrase, strlen(passphrase)));
//OK_(memcmp(key, key2, key_size));
OK_(crypt_deactivate(cd, CDEVICE_1));
crypt_free(cd);
// Now use hashed password
OK_(crypt_init(&cd, DEVICE_1));
OK_(crypt_format(cd, CRYPT_PLAIN, cipher, cipher_mode, NULL, NULL, key_size, &params));
FAIL_(crypt_activate_by_passphrase(cd, NULL, CRYPT_ANY_SLOT, passphrase, strlen(passphrase), 0),
"cannot verify passphrase with plain" );
OK_(crypt_activate_by_passphrase(cd, CDEVICE_1, CRYPT_ANY_SLOT, passphrase, strlen(passphrase), 0));
// device status check
@@ -605,7 +558,6 @@ static void UseLuksDevice(void)
OK_(crypt_init(&cd, DEVICE_1));
OK_(crypt_load(cd, CRYPT_LUKS1, NULL));
EQ_(crypt_status(cd, CDEVICE_1), CRYPT_INACTIVE);
OK_(crypt_activate_by_passphrase(cd, NULL, CRYPT_ANY_SLOT, KEY1, strlen(KEY1), 0));
OK_(crypt_activate_by_passphrase(cd, CDEVICE_1, CRYPT_ANY_SLOT, KEY1, strlen(KEY1), 0));
FAIL_(crypt_activate_by_passphrase(cd, CDEVICE_1, CRYPT_ANY_SLOT, KEY1, strlen(KEY1), 0), "already open");
EQ_(crypt_status(cd, CDEVICE_1), CRYPT_ACTIVE);
@@ -621,7 +573,6 @@ static void UseLuksDevice(void)
EQ_(0, crypt_volume_key_get(cd, CRYPT_ANY_SLOT, key, &key_size, KEY1, strlen(KEY1)));
OK_(crypt_volume_key_verify(cd, key, key_size));
OK_(crypt_activate_by_volume_key(cd, NULL, key, key_size, 0));
OK_(crypt_activate_by_volume_key(cd, CDEVICE_1, key, key_size, 0));
EQ_(crypt_status(cd, CDEVICE_1), CRYPT_ACTIVE);
OK_(crypt_deactivate(cd, CDEVICE_1));
@@ -634,19 +585,13 @@ static void UseLuksDevice(void)
static void SuspendDevice(void)
{
int suspend_status;
struct crypt_device *cd;
OK_(crypt_init(&cd, DEVICE_1));
OK_(crypt_load(cd, CRYPT_LUKS1, NULL));
OK_(crypt_activate_by_passphrase(cd, CDEVICE_1, CRYPT_ANY_SLOT, KEY1, strlen(KEY1), 0));
suspend_status = crypt_suspend(cd, CDEVICE_1);
if (suspend_status == -ENOTSUP) {
printf("WARNING: Suspend/Resume not supported, skipping test.\n");
goto out;
}
OK_(suspend_status);
OK_(crypt_suspend(cd, CDEVICE_1));
FAIL_(crypt_suspend(cd, CDEVICE_1), "already suspended");
FAIL_(crypt_resume_by_passphrase(cd, CDEVICE_1, CRYPT_ANY_SLOT, KEY1, strlen(KEY1)-1), "wrong key");
@@ -659,7 +604,7 @@ static void SuspendDevice(void)
OK_(crypt_resume_by_keyfile(cd, CDEVICE_1, CRYPT_ANY_SLOT, KEYFILE1, 0));
FAIL_(crypt_resume_by_keyfile(cd, CDEVICE_1, CRYPT_ANY_SLOT, KEYFILE1, 0), "not suspended");
_remove_keyfiles();
out:
OK_(crypt_deactivate(cd, CDEVICE_1));
crypt_free(cd);
}
@@ -697,18 +642,6 @@ static void AddDeviceLuks(void)
EQ_(crypt_status(cd, CDEVICE_2), CRYPT_ACTIVE);
OK_(crypt_deactivate(cd, CDEVICE_2));
EQ_(1, crypt_keyslot_add_by_volume_key(cd, 1, key, key_size, KEY1, strlen(KEY1)));
OK_(_prepare_keyfile(KEYFILE1, KEY1));
OK_(_prepare_keyfile(KEYFILE2, KEY2));
EQ_(2, crypt_keyslot_add_by_keyfile(cd, 2, KEYFILE1, 0, KEYFILE2, 0));
FAIL_(crypt_activate_by_keyfile(cd, CDEVICE_2, CRYPT_ANY_SLOT, KEYFILE2, strlen(KEY2)-1, 0), "key mismatch");
EQ_(2, crypt_activate_by_keyfile(cd, NULL, CRYPT_ANY_SLOT, KEYFILE2, 0, 0));
EQ_(2, crypt_activate_by_keyfile(cd, CDEVICE_2, CRYPT_ANY_SLOT, KEYFILE2, 0, 0));
OK_(crypt_keyslot_destroy(cd, 1));
OK_(crypt_keyslot_destroy(cd, 2));
OK_(crypt_deactivate(cd, CDEVICE_2));
_remove_keyfiles();
FAIL_(crypt_keyslot_add_by_volume_key(cd, 7, key, key_size, passphrase, strlen(passphrase)), "slot used");
key[1] = ~key[1];
FAIL_(crypt_keyslot_add_by_volume_key(cd, 6, key, key_size, passphrase, strlen(passphrase)), "key mismatch");
@@ -755,34 +688,11 @@ static void NonFIPSAlg(void)
char *cipher = "aes";
char *cipher_mode = "cbc-essiv:sha256";
if (!gcrypt_compatible) {
printf("WARNING: old libgcrypt, skipping test.\n");
return;
}
OK_(crypt_init(&cd, DEVICE_2));
OK_(crypt_format(cd, CRYPT_LUKS1, cipher, cipher_mode, NULL, key, key_size, &params));
crypt_free(cd);
}
static void _gcrypt_compatible()
{
int maj, min, patch;
FILE *f;
if (!(f = popen("libgcrypt-config --version", "r")))
return;
if (fscanf(f, "%d.%d.%d", &maj, &min, &patch) == 3 &&
maj >= 1 && min >= 4)
gcrypt_compatible = 1;
if (_debug)
printf("libgcrypt version %d.%d.%d detected.\n", maj, min, patch);
(void)fclose(f);
return;
}
int main (int argc, char *argv[])
{
int i;
@@ -801,7 +711,6 @@ int main (int argc, char *argv[])
_cleanup();
_setup();
_gcrypt_compatible();
crypt_set_debug_level(_debug ? CRYPT_DEBUG_ALL : CRYPT_DEBUG_NONE);
@@ -820,6 +729,7 @@ int main (int argc, char *argv[])
RUN_(UseLuksDevice, "Use pre-formated LUKS device");
RUN_(SuspendDevice, "Suspend/Resume test");
_cleanup();
return 0;
}

View File

@@ -1,164 +0,0 @@
#!/bin/bash
CRYPTSETUP=../src/cryptsetup
LOOPDEV=/dev/loop5
DEV_NAME=dummy
DEV_NAME2=dummy2
ORIG_IMG=luks-test-orig
IMG=luks-test
IMG1=luks-test1
KEY1=key1
LUKS_HEADER="S0-5 S6-7 S8-39 S40-71 S72-103 S104-107 S108-111 R112-131 R132-163 S164-167 S168-207 A0-591"
KEY_SLOT0="S208-211 S212-215 R216-247 S248-251 S251-255"
KEY_MATERIAL0="R4096-68096"
KEY_MATERIAL0_EXT="R4096-68096"
KEY_SLOT1="S256-259 S260-263 R264-295 S296-299 S300-303"
KEY_MATERIAL1="R69632-133632"
KEY_MATERIAL1_EXT="S69632-133632"
function remove_mapping()
{
[ -b /dev/mapper/$DEV_NAME2 ] && dmsetup remove $DEV_NAME2
[ -b /dev/mapper/$DEV_NAME ] && dmsetup remove $DEV_NAME
losetup -d $LOOPDEV >/dev/null 2>&1
rm -f $ORIG_IMG $IMG $IMG1 $KEY1 >/dev/null 2>&1
}
function fail()
{
remove_mapping
echo "FAILED"
exit 2
}
function prepare()
{
if [ $(id -u) != 0 ]; then
echo "WARNING: You must be root to run this test, test skipped."
exit 0
fi
[ -b /dev/mapper/$DEV_NAME ] && dmsetup remove $DEV_NAME
if [ ! -e $KEY1 ]; then
dd if=/dev/urandom of=$KEY1 count=1 bs=32 >/dev/null 2>&1
fi
if [ ! -e $IMG ]; then
bzip2 -cd compatimage.img.bz2 > $IMG
losetup -d $LOOPDEV >/dev/null 2>&1
losetup $LOOPDEV $IMG
fi
cp $IMG $ORIG_IMG
[ -n "$1" ] && echo "CASE: $1"
}
function check()
{
sync
./fileDiffer.py $IMG $ORIG_IMG $1|| fail
}
function check_exists()
{
[ -b /dev/mapper/$DEV_NAME ] || fail
check $1
}
# LUKS tests
prepare "[1] open - compat image - acceptance check"
echo "compatkey" | $CRYPTSETUP luksOpen $LOOPDEV $DEV_NAME || fail
check_exists
prepare "[2] open - compat image - denial check"
echo "wrongkey" | $CRYPTSETUP luksOpen $LOOPDEV $DEV_NAME && fail
check
# All headers items and first key material section must change
prepare "[3] format"
echo "key0" | $CRYPTSETUP -i 1000 -c aes-cbc-essiv:sha256 -s 128 luksFormat $LOOPDEV || fail
check "$LUKS_HEADER $KEY_SLOT0 $KEY_MATERIAL0"
prepare "[4] format using hash sha512"
echo "key0" | $CRYPTSETUP -i 1000 -h sha512 -c aes-cbc-essiv:sha256 -s 128 luksFormat $LOOPDEV || fail
check "$LUKS_HEADER $KEY_SLOT0 $KEY_MATERIAL0"
prepare "[5] open"
echo "key0" | $CRYPTSETUP luksOpen $LOOPDEV $DEV_NAME || fail
check_exists
# Key Slot 1 and key material section 1 must change, the rest must not.
prepare "[6] add key"
echo -e "key0\nkey1" | $CRYPTSETUP luksAddKey $LOOPDEV || fail
check "$KEY_SLOT1 $KEY_MATERIAL1"
echo "key1" | $CRYPTSETUP luksOpen $LOOPDEV $DEV_NAME || fail
# Unsuccessful Key Delete - nothing may change
prepare "[7] unsuccessful delete"
echo "invalid" | $CRYPTSETUP luksDelKey $LOOPDEV 1 && fail
check
# Delete Key Test
# Key Slot 1 and key material section 1 must change, the rest must not
prepare "[8] successful delete"
$CRYPTSETUP -q luksDelKey $LOOPDEV 1 || fail
check "$KEY_SLOT1 $KEY_MATERIAL1_EXT"
echo "key1" | $CRYPTSETUP luksOpen $LOOPDEV $DEV_NAME && fail
echo "key0" | $CRYPTSETUP luksOpen $LOOPDEV $DEV_NAME || fail
# Key Slot 1 and key material section 1 must change, the rest must not
prepare "[9] add key test for key files"
echo "key0" | $CRYPTSETUP luksAddKey $LOOPDEV $KEY1 || fail
check "$KEY_SLOT1 $KEY_MATERIAL1"
$CRYPTSETUP -d $KEY1 luksOpen $LOOPDEV $DEV_NAME || fail
# Key Slot 1 and key material section 1 must change, the rest must not
prepare "[10] delete key test with key1 as remaining key"
$CRYPTSETUP -d $KEY1 luksDelKey $LOOPDEV 0 || fail
check "$KEY_SLOT0 $KEY_MATERIAL0_EXT"
echo "key0" | $CRYPTSETUP luksOpen $LOOPDEV $DEV_NAME && fail
$CRYPTSETUP luksOpen -d $KEY1 $LOOPDEV $DEV_NAME || fail
# Delete last slot
prepare "[11] delete last key"
echo "key0" | $CRYPTSETUP luksFormat $LOOPDEV || fail
echo "key0" | $CRYPTSETUP luksKillSlot $LOOPDEV 0 || fail
echo "key0" | $CRYPTSETUP luksOpen $LOOPDEV $DEV_NAME && fail
# Format test for ESSIV, and some other parameters.
prepare "[12] parameter variation test"
$CRYPTSETUP -q -i 1000 -c aes-cbc-essiv:sha256 -s 128 luksFormat $LOOPDEV $KEY1 || fail
check "$LUKS_HEADER $KEY_SLOT0 $KEY_MATERIAL0"
$CRYPTSETUP -d $KEY1 luksOpen $LOOPDEV $DEV_NAME || fail
prepare "[13] open/close - stacked devices"
echo "key0" | $CRYPTSETUP -q luksFormat $LOOPDEV || fail
echo "key0" | $CRYPTSETUP -q luksOpen $LOOPDEV $DEV_NAME || fail
echo "key0" | $CRYPTSETUP -q luksFormat /dev/mapper/$DEV_NAME || fail
echo "key0" | $CRYPTSETUP -q luksOpen /dev/mapper/$DEV_NAME $DEV_NAME2 || fail
$CRYPTSETUP -q luksClose $DEV_NAME2 || fail
$CRYPTSETUP -q luksClose $DEV_NAME || fail
prepare "[14] format/open - passphrase on stdin & new line"
# stdin defined by "-" must take even newline
echo -n $'foo\nbar' | $CRYPTSETUP -q luksFormat $LOOPDEV - || fail
echo -n $'foo\nbar' | $CRYPTSETUP -q --key-file=- luksOpen $LOOPDEV $DEV_NAME || fail
$CRYPTSETUP -q luksClose $DEV_NAME || fail
echo -n $'foo\nbar' | $CRYPTSETUP -q luksOpen $LOOPDEV $DEV_NAME && fail
# now also try --key-file
echo -n $'foo\nbar' | $CRYPTSETUP -q luksFormat $LOOPDEV --key-file=- || fail
echo -n $'foo\nbar' | $CRYPTSETUP -q --key-file=- luksOpen $LOOPDEV $DEV_NAME || fail
$CRYPTSETUP -q luksClose $DEV_NAME || fail
# process newline if from stdin
echo -n $'foo\nbar' | $CRYPTSETUP -q luksFormat $LOOPDEV || fail
echo 'foo' | $CRYPTSETUP -q luksOpen $LOOPDEV $DEV_NAME || fail
$CRYPTSETUP -q luksClose $DEV_NAME || fail
remove_mapping
exit 0