public void SetUsbKey() { retry: UsbKey _usbKeyDrive = new UsbKey(); UsbKeyDriveMessages _messages = new UsbKeyDriveMessages(); UsbKeyDriveErrorEnum _result; string _key = _usbKeyDrive.CreateKey(out _result); switch (_result) { case UsbKeyDriveErrorEnum.NoUsbKeyDrives: retry2: FormUsbKeyDrive _f = new FormUsbKeyDrive(); DialogResult _dr = _f.ShowDialog(); if (_dr == DialogResult.OK) { if (_f.CreateUsbKeyDrive) { _usbKeyDrive.CreateUSBKeyContainer(out _result); switch (_result) { case UsbKeyDriveErrorEnum.NoUsbDrives: case UsbKeyDriveErrorEnum.MultipleUsbKeyDrives: case UsbKeyDriveErrorEnum.ExceptionCreatingKeyDrive: DialogResult _mb = MessageBox.Show(_mainform, _messages.GetMessage(_result), "USBKey", MessageBoxButtons.OKCancel); if (_mb == DialogResult.OK) { goto retry2; } return; } } goto retry; } else { UsbKeyId = null; return; } case UsbKeyDriveErrorEnum.MultipleUsbKeyDrives: case UsbKeyDriveErrorEnum.ExceptionWritingKeyFile: MessageBox.Show(_messages.GetMessage(_result)); UsbKeyId = null; break; case UsbKeyDriveErrorEnum.Ok: UsbKeyId = _key; break; } ShowKey(); }
/// <param name="silent">Cancels on error without message</param> /// <returns></returns> public byte[] GetUsbKey(string id, bool silent, out bool canceled) { retry: UsbKey _usbKeyDrive = new UsbKey(); UsbKeyDriveMessages _messages = new UsbKeyDriveMessages(); UsbKeyDriveErrorEnum _result; byte[] _key = _usbKeyDrive.GetKey(id, out _result); switch (_result) { case UsbKeyDriveErrorEnum.Ok: canceled = false; return(_key); case UsbKeyDriveErrorEnum.NoUsbKeyDrives: case UsbKeyDriveErrorEnum.MultipleUsbKeyDrives: case UsbKeyDriveErrorEnum.ExceptionReadingKeyFile: case UsbKeyDriveErrorEnum.CannotFindKeyOnUsbKeyDrive: case UsbKeyDriveErrorEnum.UsbKeyRequiredToOpen: if (silent) { canceled = true; return(null); } DialogResult _mb = MessageBox.Show(_mainform, _messages.GetMessage(_result), "USBKey", MessageBoxButtons.OKCancel); if (_mb == DialogResult.OK) { goto retry; } canceled = true; return(null); } canceled = false; return(_key); }