diff --git a/USB Lockdown/authentication.cs b/USB Lockdown/authentication.cs index 6747431..e527f09 100644 --- a/USB Lockdown/authentication.cs +++ b/USB Lockdown/authentication.cs @@ -18,10 +18,11 @@ namespace USB_Lockdown internal static void beginAuthentication() { + deviceScan.calculateHash(); Thread deviceScanner = new Thread(deviceScan.scanDevices); deviceScanner.Join(); //the thread will exit when a valid drive has been found - //code here to unlock computer and + //code here to unlock computer and stuff } } class deviceScan @@ -29,14 +30,21 @@ namespace USB_Lockdown internal static DriveInfo validDrive; internal static DriveInfo[] driveListing; private static bool driveFound = false; + internal static string originalHash; + internal static void calculateHash() + { + //decide how to do this! + } internal static void scanDevices() { while (!driveFound) { driveListing = DriveInfo.GetDrives(); foreach (DriveInfo currentDrive in driveListing) { + try { string driveName = currentDrive.VolumeLabel; string driveLabel = currentDrive.Name; } + catch { } if (File.Exists(currentDrive.Name + "\\LockDown.config")) // the first check for a valid drive. Could be something else, but this is a lightweight test to be done first! { if (driveValidate(currentDrive)) //runs the full validation of the drive @@ -51,10 +59,26 @@ namespace USB_Lockdown } internal static bool driveValidate(DriveInfo drive){ - + if (!checkHash(drive)) { + return false; + } return true; } + private static bool checkHash(DriveInfo drive) + { + string fileName = drive.Name + ""; + if (!File.Exists(fileName)) { return false; } + + using (BinaryReader reader = new BinaryReader(File.Open(fileName, FileMode.Open))) + { + string hashFromDrive = reader.ReadString(); + if (hashFromDrive != ) + } + return true; + } + + internal static void resetValues() { validDrive = null;