diff options
Diffstat (limited to 'src/Main/Forms/SecurityTokenKeyfilesDialog.cpp')
-rw-r--r-- | src/Main/Forms/SecurityTokenKeyfilesDialog.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/Main/Forms/SecurityTokenKeyfilesDialog.cpp b/src/Main/Forms/SecurityTokenKeyfilesDialog.cpp index d78e22fd..bbbeff74 100644 --- a/src/Main/Forms/SecurityTokenKeyfilesDialog.cpp +++ b/src/Main/Forms/SecurityTokenKeyfilesDialog.cpp @@ -28,148 +28,147 @@ namespace VeraCrypt SecurityTokenKeyfileListCtrl->InsertColumn (ColumnSecurityTokenSlotId, LangString["TOKEN_SLOT_ID"], wxLIST_FORMAT_CENTER, 1); colPermilles.push_back (102); SecurityTokenKeyfileListCtrl->InsertColumn (ColumnSecurityTokenLabel, LangString["TOKEN_NAME"], wxLIST_FORMAT_LEFT, 1); colPermilles.push_back (368); SecurityTokenKeyfileListCtrl->InsertColumn (ColumnSecurityTokenKeyfileLabel, LangString["TOKEN_DATA_OBJECT_LABEL"], wxLIST_FORMAT_LEFT, 1); colPermilles.push_back (529); FillSecurityTokenKeyfileListCtrl(); Gui->SetListCtrlWidth (SecurityTokenKeyfileListCtrl, 65); Gui->SetListCtrlHeight (SecurityTokenKeyfileListCtrl, 16); Gui->SetListCtrlColumnWidths (SecurityTokenKeyfileListCtrl, colPermilles); Fit(); Layout(); Center(); DeleteButton->Disable(); ExportButton->Disable(); OKButton->Disable(); OKButton->SetDefault(); } void SecurityTokenKeyfilesDialog::FillSecurityTokenKeyfileListCtrl () { wxBusyCursor busy; SecurityTokenKeyfileListCtrl->DeleteAllItems(); SecurityTokenKeyfileList = Token::GetAvailableKeyfiles(Gui->GetPreferences().EMVSupportEnabled); - size_t i = 0; foreach (const shared_ptr<TokenKeyfile> key, SecurityTokenKeyfileList) { vector <wstring> fields (SecurityTokenKeyfileListCtrl->GetColumnCount()); fields[ColumnSecurityTokenSlotId] = StringConverter::ToWide ((uint64) key->Token->SlotId); fields[ColumnSecurityTokenLabel] = key->Token->Label; fields[ColumnSecurityTokenKeyfileLabel] = key->Id; Gui->AppendToListCtrl (SecurityTokenKeyfileListCtrl, fields, 0, key.get()); } } void SecurityTokenKeyfilesDialog::OnDeleteButtonClick (wxCommandEvent& event) { try { if (!Gui->AskYesNo (LangString["CONFIRM_SEL_FILES_DELETE"])) return; wxBusyCursor busy; foreach (long item, Gui->GetListCtrlSelectedItems (SecurityTokenKeyfileListCtrl)) { SecurityToken::DeleteKeyfile (*reinterpret_cast <SecurityTokenKeyfile *> (SecurityTokenKeyfileListCtrl->GetItemData (item))); } FillSecurityTokenKeyfileListCtrl(); } catch (exception &e) { Gui->ShowError (e); } } void SecurityTokenKeyfilesDialog::OnExportButtonClick (wxCommandEvent& event) { try { foreach (long item, Gui->GetListCtrlSelectedItems (SecurityTokenKeyfileListCtrl)) { TokenKeyfile *keyfile = reinterpret_cast <TokenKeyfile *> (SecurityTokenKeyfileListCtrl->GetItemData (item)); FilePathList files = Gui->SelectFiles (this, wxEmptyString, true); if (!files.empty()) { wxBusyCursor busy; - vector <byte> keyfileData; + vector <uint8> keyfileData; keyfile->GetKeyfileData (keyfileData); BufferPtr keyfileDataBuf (&keyfileData.front(), keyfileData.size()); finally_do_arg (BufferPtr, keyfileDataBuf, { finally_arg.Erase(); }); File keyfile; keyfile.Open (*files.front(), File::CreateWrite); keyfile.Write (keyfileDataBuf); } else break; Gui->ShowInfo ("KEYFILE_EXPORTED"); } } catch (exception &e) { Gui->ShowError (e); } } void SecurityTokenKeyfilesDialog::OnImportButtonClick (wxCommandEvent& event) { try { FilePathList keyfilePaths = Gui->SelectFiles (this, LangString["SELECT_KEYFILES"], false); if (keyfilePaths.empty()) return; FilePath keyfilePath = *keyfilePaths.front(); File keyfile; keyfile.Open (keyfilePath, File::OpenRead, File::ShareReadWrite, File::PreserveTimestamps); if (keyfile.Length() > 0) { - vector <byte> keyfileData (keyfile.Length()); + vector <uint8> keyfileData (keyfile.Length()); BufferPtr keyfileDataBuf (&keyfileData.front(), keyfileData.size()); keyfile.ReadCompleteBuffer (keyfileDataBuf); finally_do_arg (BufferPtr, keyfileDataBuf, { finally_arg.Erase(); }); NewSecurityTokenKeyfileDialog newKeyfileDialog (this, keyfilePath.ToBaseName()); if (newKeyfileDialog.ShowModal() == wxID_OK) { wxBusyCursor busy; SecurityToken::CreateKeyfile (newKeyfileDialog.GetSelectedSlotId(), keyfileData, StringConverter::ToSingle (newKeyfileDialog.GetKeyfileName())); FillSecurityTokenKeyfileListCtrl(); } } else throw InsufficientData (SRC_POS, keyfilePath); } catch (exception &e) { Gui->ShowError (e); } } void SecurityTokenKeyfilesDialog::OnListItemDeselected (wxListEvent& event) { if (SecurityTokenKeyfileListCtrl->GetSelectedItemCount() == 0) { DeleteButton->Disable(); ExportButton->Disable(); |