87171d8b31
- add LUKS support to libblkid
88 lines
2.9 KiB
Diff
88 lines
2.9 KiB
Diff
Theodore Tso schrieb:
|
|
> > On Mon, Jun 11, 2007 at 01:51:24PM +0200, Karsten Hopp wrote:
|
|
>> >> +static int probe_luks(struct blkid_probe *probe,
|
|
>> >> + struct blkid_magic *id __BLKID_ATTR((unused)),
|
|
>> >> + unsigned char *buf)
|
|
>> >> +{
|
|
>> >> + unsigned char *p_buf = buf;
|
|
>> >> + unsigned char uuid[40];
|
|
>> >> + /* 168 is the offset to the 40 character uuid:
|
|
>> >> + * http://luks.endorphin.org/LUKS-on-disk-format.pdf */
|
|
>> >> + p_buf += 168;
|
|
>> >> + strncpy(uuid, p_buf, 40);
|
|
> >
|
|
> > Why bother with p_buf? It would actually be shorter and sweeter to
|
|
> > do:
|
|
> >
|
|
> > strncpy(uuid, buf+168, 40);
|
|
> >
|
|
> > And remove the lines dealing with p_buf above.
|
|
> >
|
|
>> >> + { "crypt_LUKS",0, 0, 6, "LUKS\xba\xbe", probe_luks },
|
|
> >
|
|
> > Any particular reason to use "crypt_LUKS" instead of just "LUKS"? In
|
|
> > your documentation you generally just refer to it as LUKS.
|
|
> >
|
|
> > - Ted
|
|
|
|
I've used 'luks' in my first patch, but changed it to 'crypt_LUKS' when
|
|
Karel Zak pointed out that libvolume_id from udev already uses 'crypt_LUKS'
|
|
for this.
|
|
My first patch also did some other (unnecessary) stuff with p_buf and I just
|
|
didn't bother to remove it.
|
|
I'll attach a new patch without p_buf.
|
|
|
|
Karsten
|
|
|
|
--
|
|
Karsten Hopp | Mail: karsten@redhat.de
|
|
Red Hat Deutschland | Tel: +49-711-96437-0
|
|
Hauptstaetterstr.58 | Fax: +49-711-613590
|
|
D-70178 Stuttgart | http://www.redhat.de
|
|
|
|
|
|
|
|
e2fsprogs-1.39-luks.patch
|
|
Problem: libblkid doesn't detect/report UUIDs of cryptsetup-luks partitio
|
|
ns
|
|
Solution: Add probe for luks UUID
|
|
Signed-off-by: Karsten Hopp <karsten@redhat.com>
|
|
|
|
--- e2fsprogs-1.39/lib/blkid/ChangeLog.luksuuid 2007-06-11 13:40:14.000000000 +0200
|
|
+++ e2fsprogs-1.39/lib/blkid/ChangeLog 2007-06-11 13:40:14.000000000 +0200
|
|
@@ -0,0 +1,4 @@
|
|
+2007-05-22 Karsten Hopp <karsten@redhat.com>
|
|
+
|
|
+ * probe.c (probe_luks): Add support for cryptsetup-luks partitions
|
|
+
|
|
--- e2fsprogs-1.39/lib/blkid/probe.c.luksuuid 2007-06-11 13:40:14.000000000 +0200
|
|
+++ e2fsprogs-1.39/lib/blkid/probe.c 2007-06-13 12:50:27.000000000 +0200
|
|
@@ -468,6 +468,18 @@ static int probe_jfs(struct blkid_probe
|
|
return 0;
|
|
}
|
|
|
|
+static int probe_luks(struct blkid_probe *probe,
|
|
+ struct blkid_magic *id __BLKID_ATTR((unused)),
|
|
+ unsigned char *buf)
|
|
+{
|
|
+ unsigned char uuid[40];
|
|
+ /* 168 is the offset to the 40 character uuid:
|
|
+ * http://luks.endorphin.org/LUKS-on-disk-format.pdf */
|
|
+ strncpy(uuid, buf+168, 40);
|
|
+ blkid_set_tag(probe->dev, "UUID", uuid, sizeof(uuid));
|
|
+ return 0;
|
|
+}
|
|
+
|
|
static int probe_romfs(struct blkid_probe *probe,
|
|
struct blkid_magic *id __BLKID_ATTR((unused)),
|
|
unsigned char *buf)
|
|
@@ -775,6 +787,7 @@ static struct blkid_magic type_array[] =
|
|
{ "ocfs2", 2, 0, 6, "OCFSV2", probe_ocfs2 },
|
|
{ "ocfs2", 4, 0, 6, "OCFSV2", probe_ocfs2 },
|
|
{ "ocfs2", 8, 0, 6, "OCFSV2", probe_ocfs2 },
|
|
+ { "crypt_LUKS",0, 0, 6, "LUKS\xba\xbe", probe_luks },
|
|
{ NULL, 0, 0, 0, NULL, NULL }
|
|
};
|
|
|
|
|