Skip to content

Commit 70464aa

Browse files
committed
Add Veraser: Secure Copy & Delete Plugin (Linux/Windows Support)
Implemented secure deletion engine (DoD/NIST/SSD-TRIM) and cross-platform wxWidgets GUI dialogs.
1 parent 97a715e commit 70464aa

File tree

15 files changed

+2050
-0
lines changed

15 files changed

+2050
-0
lines changed

src/Common/Language.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,10 @@
204204
<entry lang="en" key="IDM_ANALYZE_SYSTEM_CRASH">Analyze a System Crash...</entry>
205205
<entry lang="en" key="IDM_BACKUP_VOL_HEADER">Backup Volume Header...</entry>
206206
<entry lang="en" key="IDM_BENCHMARK">Benchmark...</entry>
207+
<!-- Veraser Begin-->
208+
<entry lang="en" key="IDM_SECURE_COPY">Secure Copy...</entry>
209+
<entry lang="en" key="IDM_SECURE_DELETE">Secure Delete...</entry>
210+
<!-- Veraser End-->
207211
<entry lang="en" key="IDM_CHANGE_HEADER_KEY_DERIV_ALGO">Set Header Key Derivation Algorithm...</entry>
208212
<entry lang="en" key="IDM_CHANGE_PASSWORD">Change Volume Password...</entry>
209213
<entry lang="en" key="IDM_CHANGE_SYS_HEADER_KEY_DERIV_ALGO">Set Header Key Derivation Algorithm...</entry>

src/ExpandVolume/resource.h

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,30 @@
7272
#define IDC_QUICKEXPAND 1146
7373
#define IDC_STEPSEXPAND 1147
7474
#define IDT_NEW_SIZE_BOX_TITLE 1148
75+
//veraser dlg - begin
76+
// Secure Copy ve Secure Delete diyalog ID'leri
77+
#define IDD_SECURE_COPY_DLG 1200
78+
#define IDD_SECURE_DELETE_DLG 1201
79+
80+
// Secure Copy kontrolleri
81+
#define IDC_SOURCE_BUTTON 1202
82+
#define IDC_DESTINATION_BUTTON 1203
83+
#define IDC_SOURCE_PATH 1204
84+
#define IDC_DESTINATION_PATH 1205
85+
86+
// Secure Delete kontrolleri
87+
#define IDC_TARGET_BUTTON 1206
88+
#define IDC_TARGET_PATH 1207
89+
90+
// Tüm algoritma seçenekleri için ID'ler
91+
#define IDC_ALG_ZERO 1208
92+
#define IDC_ALG_RANDOM 1209
93+
#define IDC_ALG_DOD3 1210
94+
#define IDC_ALG_DOD7 1211
95+
#define IDC_ALG_NIST 1212
96+
#define IDC_ALG_GUTMANN 1213
97+
#define IDC_ALG_SSD 1214
98+
//veraser dlg - end
7599
#define IDM_HELP 40001
76100
#define IDM_ABOUT 40002
77101
#define IDM_UNMOUNT_VOLUME 40003
@@ -134,6 +158,10 @@
134158
#define IDM_SYSENC_SETTINGS 40060
135159
#define IDM_RESUME_INTERRUPTED_PROC 40061
136160
#define IDM_MANAGE_TOKEN_KEYFILES 40062
161+
//veraser - begin
162+
#define IDM_SECURE_COPY 40063
163+
#define IDM_SECURE_DELETE 40064
164+
//veraser - end
137165

138166
// Next default values for new objects
139167
//

src/Main/Forms/Forms.cpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,19 @@ MainFrameBase::MainFrameBase( wxWindow* parent, wxWindowID id, const wxString& t
127127
WipeCachedPasswordsMenuItem = new wxMenuItem( ToolsMenu, wxID_ANY, wxString( _("IDM_WIPE_CACHE") ) , wxEmptyString, wxITEM_NORMAL );
128128
ToolsMenu->Append( WipeCachedPasswordsMenuItem );
129129

130+
//veraser - begin
131+
ToolsMenu->AppendSeparator();
132+
// New Secure Copy menu item
133+
wxMenuItem* SecureCopyMenuItem;
134+
SecureCopyMenuItem = new wxMenuItem( ToolsMenu, wxID_ANY, wxString( _("IDM_SECURE_COPY") ) , wxEmptyString, wxITEM_NORMAL );
135+
ToolsMenu->Append( SecureCopyMenuItem );
136+
137+
// New Secure Delete menu item
138+
wxMenuItem* SecureDeleteMenuItem;
139+
SecureDeleteMenuItem = new wxMenuItem( ToolsMenu, wxID_ANY, wxString( _("IDM_SECURE_DELETE") ) , wxEmptyString, wxITEM_NORMAL );
140+
ToolsMenu->Append( SecureDeleteMenuItem );
141+
//veraser - end
142+
130143
MainMenuBar->Append( ToolsMenu, _("MENU_TOOLS") );
131144

132145
SettingsMenu = new wxMenu();
@@ -430,6 +443,10 @@ MainFrameBase::MainFrameBase( wxWindow* parent, wxWindowID id, const wxString& t
430443
FavoritesMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnOrganizeFavoritesMenuItemSelected ), this, OrganizeFavoritesMenuItem->GetId());
431444
FavoritesMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnMountAllFavoritesMenuItemSelected ), this, MountAllFavoritesMenuItem->GetId());
432445
ToolsMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnBenchmarkMenuItemSelected ), this, BenchmarkMenuItem->GetId());
446+
//veraser - begin
447+
this->Connect( SecureCopyMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnSecureCopyMenuItemSelected ) );
448+
this->Connect( SecureDeleteMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnSecureDeleteMenuItemSelected ) );
449+
//veraser - end
433450
ToolsMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnEncryptionTestMenuItemSelected ), this, EncryptionTestMenuItem->GetId());
434451
ToolsMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnCreateVolumeButtonClick ), this, VolumeCreationWizardMenuItem->GetId());
435452
ToolsMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnBackupVolumeHeadersMenuItemSelected ), this, BackupVolumeHeadersMenuItem->GetId());
@@ -490,6 +507,10 @@ MainFrameBase::~MainFrameBase()
490507
this->Disconnect( wxID_PREFERENCES, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnPreferencesMenuItemSelected ) );
491508
this->Disconnect( wxID_HELP, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnUserGuideMenuItemSelected ) );
492509
this->Disconnect( wxID_ABOUT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnAboutMenuItemSelected ) );
510+
//veraser - begin
511+
this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnSecureCopyMenuItemSelected ) );
512+
this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnSecureDeleteMenuItemSelected ) );
513+
//veraser - end
493514
#endif
494515
this->Disconnect( wxEVT_ACTIVATE, wxActivateEventHandler( MainFrameBase::OnActivate ) );
495516
this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( MainFrameBase::OnClose ) );

src/Main/Forms/Forms.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,10 @@ namespace VeraCrypt
9292
wxButton* MountAllDevicesButton;
9393
wxButton* DismountAllButton;
9494
wxButton* ExitButton;
95+
//veraser - begin
96+
wxMenuItem* SecureCopyMenuItem;
97+
wxMenuItem* SecureDeleteMenuItem;
98+
//veraser - end
9599

96100
// Virtual event handlers, override them in your derived class
97101
virtual void OnActivate( wxActivateEvent& event ) { event.Skip(); }
@@ -147,6 +151,10 @@ namespace VeraCrypt
147151
virtual void OnSelectDeviceButtonClick( wxCommandEvent& event ) { event.Skip(); }
148152
virtual void OnVolumeButtonClick( wxCommandEvent& event ) { event.Skip(); }
149153
virtual void OnExitButtonClick( wxCommandEvent& event ) { event.Skip(); }
154+
//veraser - begin
155+
virtual void OnSecureCopyMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
156+
virtual void OnSecureDeleteMenuItemSelected( wxCommandEvent& event ) { event.Skip(); }
157+
//veraser - end
150158

151159

152160
public:

src/Main/Forms/MainFrame.cpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@
3737
#include "SecurityTokenKeyfilesDialog.h"
3838
#include "VolumeCreationWizard.h"
3939
#include "VolumePropertiesDialog.h"
40+
// Veraser Start
41+
#include "Forms/SecureDeleteDialog.h"
42+
// Veraser End
4043

4144
namespace VeraCrypt
4245
{
@@ -790,6 +793,28 @@ namespace VeraCrypt
790793
dialog.ShowModal();
791794
}
792795

796+
// veraser - begin
797+
void MainFrame::OnSecureCopyMenuItemSelected( wxCommandEvent& event )
798+
{
799+
#ifdef TC_MACOSX
800+
if (Gui->IsInBackgroundMode()) Gui->SetBackgroundMode (false);
801+
#endif
802+
803+
SecureCopyDialog dialog(this);
804+
dialog.ShowModal();
805+
}
806+
807+
void MainFrame::OnSecureDeleteMenuItemSelected( wxCommandEvent& event )
808+
{
809+
#ifdef TC_MACOSX
810+
if (Gui->IsInBackgroundMode()) Gui->SetBackgroundMode (false);
811+
#endif
812+
813+
SecureDeleteDialog dialog(this);
814+
dialog.ShowModal();
815+
}
816+
// veraser - end
817+
793818
void MainFrame::OnClearSlotSelectionMenuItemSelected (wxCommandEvent& event)
794819
{
795820
Gui->ClearListCtrlSelection (SlotListCtrl);
@@ -1508,6 +1533,11 @@ namespace VeraCrypt
15081533
Gui->AppendToMenu (popup, LangString["IDM_RESTORE_VOL_HEADER"], this, wxCommandEventHandler (MainFrame::OnRestoreVolumeHeaderMenuItemSelected));
15091534

15101535
PopupMenu (&popup, VolumeToolsButton->GetPosition().x + 2, VolumeToolsButton->GetPosition().y + 2);
1536+
1537+
//veraser - begin
1538+
Gui->AppendToMenu (popup, LangString["IDM_SECURE_COPY"], this, wxCommandEventHandler (MainFrame::OnSecureCopyMenuItemSelected));
1539+
Gui->AppendToMenu (popup, LangString["IDM_SECURE_DELETE"], this, wxCommandEventHandler (MainFrame::OnSecureDeleteMenuItemSelected));
1540+
//veraser - end
15111541
}
15121542

15131543
void MainFrame::OnWipeCacheButtonClick (wxCommandEvent& event)

src/Main/Forms/MainFrame.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,10 @@ namespace VeraCrypt
9999
void OnBackupVolumeHeadersMenuItemSelected (wxCommandEvent& event);
100100
void OnBeginnersTutorialMenuItemSelected (wxCommandEvent& event) { Gui->OpenHomepageLink (this, L"tutorial"); }
101101
void OnBenchmarkMenuItemSelected (wxCommandEvent& event);
102+
// Veraser begin
103+
virtual void OnSecureCopyMenuItemSelected( wxCommandEvent& event );
104+
virtual void OnSecureDeleteMenuItemSelected( wxCommandEvent& event );
105+
// Veraser end
102106
void OnChangeKeyfilesMenuItemSelected (wxCommandEvent& event) { ChangePassword (ChangePasswordDialog::Mode::ChangeKeyfiles); }
103107
void OnChangePasswordMenuItemSelected (wxCommandEvent& event) { ChangePassword (); }
104108
void OnChangePkcs5PrfMenuItemSelected (wxCommandEvent& event) { ChangePassword (ChangePasswordDialog::Mode::ChangePkcs5Prf); }

0 commit comments

Comments
 (0)