예제 #1
0
        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();
        }
예제 #2
0
        /// <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);
        }