You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tde-packaging/opensuse/core/tdebase/media-cryptosupport.diff

32 lines
1.6 KiB

Index: kioslave/media/mediamanager/halbackend.cpp
===================================================================
--- kioslave/media/mediamanager/halbackend.cpp.orig
+++ kioslave/media/mediamanager/halbackend.cpp
@@ -214,10 +214,26 @@ void HALBackend::AddDevice(const char *u
{
/* We only list volume that have a filesystem or volume that have an audio track*/
if ( libhal_device_get_property_QString(m_halContext, udi, "volume.fsusage") != "filesystem" &&
+ libhal_device_get_property_QString(m_halContext, udi, "volume.fsusage") != "crypto" &&
!libhal_device_get_property_bool(m_halContext, udi, "volume.disc.has_audio", NULL) &&
!libhal_device_get_property_bool(m_halContext, udi, "volume.disc.is_blank", NULL) )
return;
+ /* For crypto_LUKS devices check its dm-device, if it is already mounted*/
+ if ( libhal_device_get_property_QString(m_halContext, udi, "volume.fstype") == "crypto_LUKS" &&
+ !libhal_device_get_property_bool(m_halContext, udi, "volume.ignore", NULL) ) {
+ int num;
+ char **dm_uuid = libhal_manager_find_device_string_match(m_halContext, "volume.crypto_luks.clear.backing_volume",udi,&num,NULL);
+ /* if a dm device is found the volume is already decrypted */
+ if (num == 0) {
+ // TODO: Check for kryptomedia binary.
+ KProcess proc;
+ proc << "kryptomedia" << udi;
+ proc.start(KProcess::DontCare);
+ return;
+ }
+ }
+
/* Query drive udi */
QString driveUdi = libhal_device_get_property_QString(m_halContext, udi, "block.storage_device");
if ( driveUdi.isNull() ) // no storage - no fun