From 1547f5e1990934800f09badaf1419759d3d9c6cf Mon Sep 17 00:00:00 2001 From: shimun Date: Mon, 27 Apr 2020 18:12:06 +0200 Subject: [PATCH] get format --- src/luks.rs | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src/luks.rs b/src/luks.rs index 2b1f7ac..c09a5ad 100644 --- a/src/luks.rs +++ b/src/luks.rs @@ -1,20 +1,12 @@ use crate::error::*; -use libcryptsetup_rs::{CryptActivateFlags, CryptDevice, CryptInit, EncryptionFormat, KeyslotInfo}; +use libcryptsetup_rs::{CryptActivateFlags, CryptDevice, CryptInit, KeyslotInfo}; use std::path::Path; fn load_device_handle>(path: P) -> Fido2LuksResult { let mut device = CryptInit::init(path.as_ref())?; - //TODO: determine luks version some way other way than just trying - let mut load = |format| device.context_handle().load::<()>(format, None).map(|_| ()); - vec![EncryptionFormat::Luks2, EncryptionFormat::Luks1] - .into_iter() - .fold(None, |res, format| match res { - Some(Ok(())) => res, - Some(e) => Some(e.or_else(|_| load(format))), - None => Some(load(format)), - }) - .unwrap()?; + let format = device.format_handle().get_type()?; + device.context_handle().load::<()>(format, None).map(|_| ())?; Ok(device) }