X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=extras%2Fvolume_id%2Flib%2Fluks.c;h=1c9d41276724f4b97c7ee17fc1744a3cd950dcc6;hb=f07996885dab45102492d7f16e7e2997e264c725;hp=a141a0f5c39d8ad31cb04b31f90399d8cfa9472e;hpb=cdf18948639e56d2e3c71606c72e2f2d239c100b;p=elogind.git diff --git a/extras/volume_id/lib/luks.c b/extras/volume_id/lib/luks.c index a141a0f5c..1c9d41276 100644 --- a/extras/volume_id/lib/luks.c +++ b/extras/volume_id/lib/luks.c @@ -3,19 +3,24 @@ * * Copyright (C) 2005 W. Michael Petullo * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation version 2 of the License. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ #ifndef _GNU_SOURCE #define _GNU_SOURCE 1 #endif -#ifdef HAVE_CONFIG_H -# include -#endif - #include #include #include @@ -24,7 +29,7 @@ #include #include "libvolume_id.h" -#include "util.h" +#include "libvolume_id-private.h" #define SECTOR_SHIFT 9 #define SECTOR_SIZE (1 << SECTOR_SHIFT) @@ -36,10 +41,10 @@ #define LUKS_SALTSIZE 32 #define LUKS_NUMKEYS 8 +#define LUKS_MAGIC_L 6 +#define LUKS_PHDR_SIZE (sizeof(struct luks_phdr)/SECTOR_SIZE+1) +#define UUID_STRING_L 40 static const uint8_t LUKS_MAGIC[] = {'L','U','K','S', 0xba, 0xbe}; -#define LUKS_MAGIC_L 6 -#define LUKS_PHDR_SIZE (sizeof(struct luks_phdr)/SECTOR_SIZE+1) -#define UUID_STRING_L 40 struct luks_phdr { uint8_t magic[LUKS_MAGIC_L]; @@ -74,9 +79,8 @@ int volume_id_probe_luks(struct volume_id *id, uint64_t off, uint64_t size) return -1; volume_id_set_usage(id, VOLUME_ID_CRYPTO); - volume_id_set_uuid(id, header->uuid, UUID_DCE_STRING); - + volume_id_set_uuid(id, header->uuid, 36, UUID_HEX_STRING); + snprintf(id->type_version, sizeof(header->version), "%u", le16_to_cpu(header->version)); id->type = "crypto_LUKS"; - return 0; }