From 7ac86e1954d4fe40363a6b7fc149815986450c80 Mon Sep 17 00:00:00 2001 From: Simon Rozman Date: Thu, 9 Jun 2016 07:41:41 +0200 Subject: [PATCH] UI development continues... --- CredWrite/Main.cpp | Bin 7124 -> 7122 bytes EAPMethods/EAPTTLSUI/EAPTTLSUI.rc | Bin 6238 -> 6364 bytes EAPMethods/include/EAP.h | Bin 111544 -> 114058 bytes EAPMethods/include/EAP_UI.h | Bin 17814 -> 26666 bytes EAPMethods/include/TLS.h | Bin 15644 -> 20800 bytes EAPMethods/include/TLS_UI.h | Bin 14094 -> 15552 bytes EAPMethods/include/TTLS_UI.h | Bin 11846 -> 12116 bytes EAPMethods/res/wxEAP_UI.cpp | 141 ++++- EAPMethods/res/wxEAP_UI.fbp | 848 +++++++++++++++++++++++++++++- EAPMethods/res/wxEAP_UI.h | 63 ++- EAPMethods/res/wxTLS_UI.cpp | 14 +- EAPMethods/res/wxTLS_UI.fbp | 8 +- EAPMethods/res/wxTLS_UI.h | 9 +- EAPMethods/src/EAP.cpp | Bin 71068 -> 71356 bytes EAPMethods/src/EAP_UI.cpp | Bin 5516 -> 6526 bytes EAPMethods/src/TLS.cpp | Bin 20624 -> 25160 bytes EAPMethods/src/TLS_UI.cpp | Bin 38630 -> 39498 bytes EAPMethods/src/TTLS_UI.cpp | Bin 15776 -> 15832 bytes 18 files changed, 1038 insertions(+), 45 deletions(-) diff --git a/CredWrite/Main.cpp b/CredWrite/Main.cpp index 06dd8253420f96628385a69de0aaf6d81ffca620..33c96be605f0f7ad28b2f8b1e28eea141cc2e34a 100644 GIT binary patch delta 12 Ucmca&e#v~p6|v3N#Qw1W04rq%Pyhe` delta 16 Ycmca)e#Lyl6|u=N5`3EO42}#T46c(?IqkWN7%~~k7!nyu7*aQ{<=n^z049hG ATL1t6 delta 12 Tcmca(c+X(N9?s2HT#NVsCxit! diff --git a/EAPMethods/include/EAP.h b/EAPMethods/include/EAP.h index 0b0a580ad5580e588ee0c3aa68167cac9030fb9a..e5a9bd302e4b08cdded18f346af65a545f02d940 100644 GIT binary patch delta 381 zcmdn-oUQ9O+lC;K=>}YkER&as@=brRiIHQv-4sTj$#x>>!g)&>yHJETuM=MIXPXw| z1jg;}1R3Y?PA{-vOq(2afou8?3q~V-9R>x4WQJ6RB8C!%OolWdPG(31vQvTLc|cY! zn3W0?NoLSv(420_#%Mp?p^uSe`zd+GD-zosEE&TJrpL813QTuc%jmORU=?EkBiO0a z-4-)yO&6HNC^dc4YQ}lfIv9(#1C`VuWX-0nXFM}~LOUZLP|{$!&2&Z)gh|^rGA1CD zYE56Tf>CbzwoQy((*^n%owmt?+lC;K$qnK%)AllQY>pGV@q4JY?d%$+a46wA= z^aC3hGo~-=VRV^(ZyTc$T%p_cdAk^Gn5IwI%vdwopp9d?z+Og&=^Qf|#ikeRWt0K{ Dm+?-- diff --git a/EAPMethods/include/EAP_UI.h b/EAPMethods/include/EAP_UI.h index a98bdf0f56d22bfa47ddaf08a7508a3602ff75da..9b985d9ab7f1aacedf6bc8b45d21e5dffedc0dc6 100644 GIT binary patch literal 26666 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 delta 529 zcmb`C%P&Jw5XR>qZF5_%#9Qb^M5Xjf1l7`8&yq+zB4Q!!bxWyGje14I(nciWODwu# zCtV1+|Ad7!>}~8tEG#WdS%^feEN0Hk$!})9FMTi0j>L7sgiF($;WCGW@Z!l|jgVSq zc%n~dT_H^HaRa#X+;C@7p_=WCy#bKZbGpdcNPkkWNzydJbf-eKvfH!=%z FxgVI=iLL+u diff --git a/EAPMethods/include/TLS.h b/EAPMethods/include/TLS.h index c159229314467683a4a8e0550f527cf00fd1e433..f4c4b79c2160a7bc892e48b16556087fd7c037cd 100644 GIT binary patch delta 875 zcmcJNOD_Xa6vt0RsG6$BP_(4&#zclRRMm)jg^+kOG%TAzsl+SOhD1mZu@JkzSXqep z0HR+&#HX;3vJwjmvFFURX&Q7Rk;%stlr-#H#^DtUhvKwNVUB7>JV6s|uX2Wqzc9rNOTU$l>B@O3xW854yfjbT z*folxUv`*O^p`f^LaE22SfBh5UrjxF8XuEH5gO$J5xzP`AsS?WX$iN;CX=mza>riTB5%;!E`yaI2AlOZFw;beM|aVdy=1C zyMR`IGc4^A4~dAFhkfM$w^lP!?X`GzizxTqWF|~N$~S|sN5n+ONX0yJYD^m8K~VV* z#GnT1P~$(zQIg@c6_#%D`3iSBJ#N*k*or>If<0$B<~pyl>fXSPp?)6-wC_&zX%DMtZW zrw67Z=v@#+vBk9}YN8~zg^3TrK=Y>aowIEk!@NtuH;>jgjkwECa142`(|uKFgsq6O znBupFv^Q{JnNGGuRb=tpb!b_}d=rCbtmZmanlMOPp_hV?-tLLK$caUS)=cpha#KSmN zB8VFQ=J<>iI$P-sRsxCP9Q&-)?f}`|e{}=gMhK1Jp*y{mkls6;kYQCcF=>6%-2LGn zKLcURDgzF74_`*n7gUpS;EFsw<-ct8r0fZeV_M`()fzO87G}a>ug0;h@utEKltVg( LIV0Dch_#eo{B;Xo delta 671 zcmX?5*_XG$h<)-Z0kz3->~8fX45(Q~Mg6OwnutPJU9H>7GXj?KHMCoLC zdC|=u*tc*1-DL-Mn-$jzFl{5GH#x;vVDbYYfyrGOJd@+NUriPh@t9n|tHBF$IS3~K z$)d@Me3n32h0RSOUs$cl_mo44{Ald0vg73>-k3K(-YS=K_NUBBBA8;bq_g%0OT>12V4`#GCxkQhV|P zX{*U`vOFkm2~~h{((ZMj*()2-j(%xCop33{{mUuTzqc$7V0W Zzt)o(`Grx!&QL&ovXqX@<_F3TBmn0IjH&Wb0u!W9CrN@hDwG4hE#?WAWmaYU?^v(U~pw{WC&nzW+;M+=P{HpWHKZ&SetSizeHints( wxDefaultSize, wxDefaultSize ); @@ -39,9 +39,50 @@ wxEAPConfigBase::wxEAPConfigBase( wxWindow* parent, wxWindowID id, const wxStrin this->SetSizer( sz_content ); this->Layout(); sz_content->Fit( this ); + + // Connect Events + this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( wxEAPConfigDialogBase::OnInitDialog ) ); } -wxEAPConfigBase::~wxEAPConfigBase() +wxEAPConfigDialogBase::~wxEAPConfigDialogBase() +{ + // Disconnect Events + this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( wxEAPConfigDialogBase::OnInitDialog ) ); + +} + +wxEAPCredentialsDialogBase::wxEAPCredentialsDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + + wxBoxSizer* sz_content; + sz_content = new wxBoxSizer( wxVERTICAL ); + + m_banner = new wxEAPBannerPanel( this ); + + sz_content->Add( m_banner, 0, wxEXPAND|wxBOTTOM, 5 ); + + m_panels = new wxBoxSizer( wxVERTICAL ); + + + sz_content->Add( m_panels, 1, wxEXPAND|wxALL, 5 ); + + m_buttons = new wxStdDialogButtonSizer(); + m_buttonsOK = new wxButton( this, wxID_OK ); + m_buttons->AddButton( m_buttonsOK ); + m_buttonsCancel = new wxButton( this, wxID_CANCEL ); + m_buttons->AddButton( m_buttonsCancel ); + m_buttons->Realize(); + + sz_content->Add( m_buttons, 0, wxEXPAND|wxALL, 5 ); + + + this->SetSizer( sz_content ); + this->Layout(); + sz_content->Fit( this ); +} + +wxEAPCredentialsDialogBase::~wxEAPCredentialsDialogBase() { } @@ -70,10 +111,87 @@ wxEAPBannerPanelBase::~wxEAPBannerPanelBase() { } +wxEAPCredentialsConfigPanelBase::wxEAPCredentialsConfigPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) +{ + wxStaticBoxSizer* sb_credentials; + sb_credentials = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Client Credentials") ), wxVERTICAL ); + + wxBoxSizer* sb_credentials_horiz; + sb_credentials_horiz = new wxBoxSizer( wxHORIZONTAL ); + + m_credentials_icon = new wxStaticBitmap( sb_credentials->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); + sb_credentials_horiz->Add( m_credentials_icon, 0, wxALL, 5 ); + + wxBoxSizer* sb_credentials_vert; + sb_credentials_vert = new wxBoxSizer( wxVERTICAL ); + + m_credentials_label = new wxStaticText( sb_credentials->GetStaticBox(), wxID_ANY, _("Manage your credentials stored in Windows Credential Manager."), wxDefaultPosition, wxDefaultSize, 0 ); + m_credentials_label->Wrap( 446 ); + sb_credentials_vert->Add( m_credentials_label, 0, wxALL|wxEXPAND, 5 ); + + wxFlexGridSizer* sb_credentials_tbl; + sb_credentials_tbl = new wxFlexGridSizer( 0, 2, 5, 5 ); + sb_credentials_tbl->AddGrowableCol( 1 ); + sb_credentials_tbl->SetFlexibleDirection( wxBOTH ); + sb_credentials_tbl->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_identity_label = new wxStaticText( sb_credentials->GetStaticBox(), wxID_ANY, _("Identity:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_identity_label->Wrap( -1 ); + sb_credentials_tbl->Add( m_identity_label, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + m_identity = new wxTextCtrl( sb_credentials->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); + m_identity->SetToolTip( _("Enter your user name here (user@domain.org, DOMAINUser, etc.)") ); + + sb_credentials_tbl->Add( m_identity, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + + sb_credentials_vert->Add( sb_credentials_tbl, 0, wxEXPAND|wxALL, 5 ); + + wxBoxSizer* sb_buttons; + sb_buttons = new wxBoxSizer( wxHORIZONTAL ); + + m_set = new wxButton( sb_credentials->GetStaticBox(), wxID_ANY, _("&Set Credentials..."), wxDefaultPosition, wxDefaultSize, 0 ); + m_set->SetToolTip( _("Click here to set or modify your credentials") ); + + sb_buttons->Add( m_set, 0, wxRIGHT, 5 ); + + m_clear = new wxButton( sb_credentials->GetStaticBox(), wxID_ANY, _("&Clear Credentials"), wxDefaultPosition, wxDefaultSize, 0 ); + m_clear->SetToolTip( _("Click to clear your credentials from Credential Manager.\nNote: You will be prompted to enter credentials when connecting.") ); + + sb_buttons->Add( m_clear, 0, wxLEFT, 5 ); + + + sb_credentials_vert->Add( sb_buttons, 0, wxALIGN_RIGHT|wxALL, 5 ); + + + sb_credentials_horiz->Add( sb_credentials_vert, 1, wxEXPAND, 5 ); + + + sb_credentials->Add( sb_credentials_horiz, 1, wxEXPAND, 5 ); + + + this->SetSizer( sb_credentials ); + this->Layout(); + + // Connect Events + this->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxEAPCredentialsConfigPanelBase::OnUpdateUI ) ); + m_set->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPCredentialsConfigPanelBase::OnSet ), NULL, this ); + m_clear->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPCredentialsConfigPanelBase::OnClear ), NULL, this ); +} + +wxEAPCredentialsConfigPanelBase::~wxEAPCredentialsConfigPanelBase() +{ + // Disconnect Events + this->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxEAPCredentialsConfigPanelBase::OnUpdateUI ) ); + m_set->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPCredentialsConfigPanelBase::OnSet ), NULL, this ); + m_clear->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxEAPCredentialsConfigPanelBase::OnClear ), NULL, this ); + +} + wxPasswordCredentialsPanelBase::wxPasswordCredentialsPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { wxStaticBoxSizer* sb_credentials; - sb_credentials = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Client Certificate") ), wxVERTICAL ); + sb_credentials = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Client Credentials") ), wxVERTICAL ); wxBoxSizer* sb_credentials_horiz; sb_credentials_horiz = new wxBoxSizer( wxHORIZONTAL ); @@ -88,31 +206,34 @@ wxPasswordCredentialsPanelBase::wxPasswordCredentialsPanelBase( wxWindow* parent m_credentials_label->Wrap( 446 ); sb_credentials_vert->Add( m_credentials_label, 0, wxALL|wxEXPAND, 5 ); - wxGridSizer* sb_credentials_tbl; - sb_credentials_tbl = new wxGridSizer( 0, 2, 0, 0 ); + wxFlexGridSizer* sb_credentials_tbl; + sb_credentials_tbl = new wxFlexGridSizer( 0, 2, 5, 5 ); + sb_credentials_tbl->AddGrowableCol( 1 ); + sb_credentials_tbl->SetFlexibleDirection( wxBOTH ); + sb_credentials_tbl->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_identity_label = new wxStaticText( sb_credentials->GetStaticBox(), wxID_ANY, _("User ID:"), wxDefaultPosition, wxDefaultSize, 0 ); m_identity_label->Wrap( -1 ); - sb_credentials_tbl->Add( m_identity_label, 1, wxEXPAND, 5 ); + sb_credentials_tbl->Add( m_identity_label, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); m_identity = new wxTextCtrl( sb_credentials->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_identity->SetToolTip( _("Enter your user name here (user@domain.org, DOMAINUser, etc.)") ); - sb_credentials_tbl->Add( m_identity, 2, wxEXPAND, 5 ); + sb_credentials_tbl->Add( m_identity, 2, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); m_password_label = new wxStaticText( sb_credentials->GetStaticBox(), wxID_ANY, _("Password:"), wxDefaultPosition, wxDefaultSize, 0 ); m_password_label->Wrap( -1 ); - sb_credentials_tbl->Add( m_password_label, 1, wxEXPAND, 5 ); + sb_credentials_tbl->Add( m_password_label, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); m_password = new wxTextCtrl( sb_credentials->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD ); m_password->SetToolTip( _("Enter your password here") ); - sb_credentials_tbl->Add( m_password, 2, wxEXPAND, 5 ); + sb_credentials_tbl->Add( m_password, 2, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); sb_credentials_vert->Add( sb_credentials_tbl, 0, wxEXPAND|wxALL, 5 ); - m_remember = new wxCheckBox( sb_credentials->GetStaticBox(), wxID_ANY, _("&Remember credentials"), wxDefaultPosition, wxDefaultSize, 0 ); + m_remember = new wxCheckBox( sb_credentials->GetStaticBox(), wxID_ANY, _("&Remember"), wxDefaultPosition, wxDefaultSize, 0 ); m_remember->SetHelpText( _("Check if you would like to save username and password") ); sb_credentials_vert->Add( m_remember, 0, wxALL|wxEXPAND, 5 ); diff --git a/EAPMethods/res/wxEAP_UI.fbp b/EAPMethods/res/wxEAP_UI.fbp index 55ee5bc..8dcd5e4 100644 --- a/EAPMethods/res/wxEAP_UI.fbp +++ b/EAPMethods/res/wxEAP_UI.fbp @@ -42,7 +42,7 @@ wxID_ANY - wxEAPConfigBase + wxEAPConfigDialogBase wxDEFAULT_DIALOG_STYLE @@ -67,7 +67,7 @@ - + OnInitDialog @@ -290,6 +290,197 @@ + + 0 + wxAUI_MGR_DEFAULT + + + + 1 + 1 + impl_virtual + + + + 0 + wxID_ANY + + + wxEAPCredentialsDialogBase + + + wxDEFAULT_DIALOG_STYLE + ; + EAP Credentials + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sz_content + wxVERTICAL + none + + 5 + wxEXPAND|wxBOTTOM + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + wxEAPBannerPanel + 1 + m_banner = new wxEAPBannerPanel( this ); + + 1 + wxEAPBannerPanel *m_banner; + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + class wxEAPBannerPanel; + + 0 + + + 0 + + 1 + m_banner + 1 + + + protected + 1 + + Resizable + + 1 + -1,-1 + ; ../include/EAP_UI.h + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALL + 1 + + + m_panels + wxVERTICAL + protected + + + + 5 + wxEXPAND|wxALL + 0 + + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + + m_buttons + protected + + + + + + + + + + + + 0 wxAUI_MGR_DEFAULT @@ -432,6 +623,633 @@ + + 0 + wxAUI_MGR_DEFAULT + + + 1 + 1 + impl_virtual + + + 0 + wxID_ANY + + + wxEAPCredentialsConfigPanelBase + + 500,-1 + + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnUpdateUI + + wxID_ANY + Client Credentials + + sb_credentials + wxVERTICAL + none + + + 5 + wxEXPAND + 1 + + + sb_credentials_horiz + wxHORIZONTAL + none + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + Load From Icon Resource; ; [32; 32] + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_credentials_icon + 1 + + + protected + 1 + + Resizable + 1 + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + + sb_credentials_vert + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Manage your credentials stored in Windows Credential Manager. + + 0 + + + 0 + + 1 + m_credentials_label + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + 446 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALL + 0 + + 2 + wxBOTH + 1 + + 5 + + sb_credentials_tbl + wxFLEX_GROWMODE_SPECIFIED + none + 0 + 5 + + 5 + wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Identity: + + 0 + + + 0 + + 1 + m_identity_label + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALIGN_CENTER_VERTICAL + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + + 0 + + 1 + m_identity + 1 + + + protected + 1 + + Resizable + 1 + + wxTE_READONLY + + 0 + Enter your user name here (user@domain.org, DOMAINUser, etc.) + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_RIGHT|wxALL + 0 + + + sb_buttons + wxHORIZONTAL + none + + 5 + wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + &Set Credentials... + + 0 + + + 0 + + 1 + m_set + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Click here to set or modify your credentials + + wxFILTER_NONE + wxDefaultValidator + + + + + OnSet + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + &Clear Credentials + + 0 + + + 0 + + 1 + m_clear + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Click to clear your credentials from Credential Manager. Note: You will be prompted to enter credentials when connecting. + + wxFILTER_NONE + wxDefaultValidator + + + + + OnClear + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 wxAUI_MGR_DEFAULT @@ -486,7 +1304,7 @@ wxID_ANY - Client Certificate + Client Credentials sb_credentials wxVERTICAL @@ -678,18 +1496,22 @@ 5 wxEXPAND|wxALL 0 - + 2 - 0 + wxBOTH + 1 + + 5 sb_credentials_tbl + wxFLEX_GROWMODE_SPECIFIED none 0 - 0 + 5 5 - wxEXPAND - 1 + wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 1 1 @@ -771,7 +1593,7 @@ 5 - wxEXPAND + wxEXPAND|wxALIGN_CENTER_VERTICAL 2 1 @@ -862,8 +1684,8 @@ 5 - wxEXPAND - 1 + wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 1 1 @@ -945,7 +1767,7 @@ 5 - wxEXPAND + wxEXPAND|wxALIGN_CENTER_VERTICAL 2 1 @@ -1069,7 +1891,7 @@ 0 0 wxID_ANY - &Remember credentials + &Remember 0 diff --git a/EAPMethods/res/wxEAP_UI.h b/EAPMethods/res/wxEAP_UI.h index c30e38a..d3427a8 100644 --- a/EAPMethods/res/wxEAP_UI.h +++ b/EAPMethods/res/wxEAP_UI.h @@ -28,15 +28,15 @@ class wxEAPBannerPanel; #include #include #include -#include #include +#include /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// -/// Class wxEAPConfigBase +/// Class wxEAPConfigDialogBase /////////////////////////////////////////////////////////////////////////////// -class wxEAPConfigBase : public wxDialog +class wxEAPConfigDialogBase : public wxDialog { private: @@ -46,11 +46,36 @@ class wxEAPConfigBase : public wxDialog wxStdDialogButtonSizer* m_buttons; wxButton* m_buttonsOK; wxButton* m_buttonsCancel; + + // Virtual event handlers, overide them in your derived class + virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); } + public: - wxEAPConfigBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("EAP Method Configuration"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE ); - ~wxEAPConfigBase(); + wxEAPConfigDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("EAP Method Configuration"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE ); + ~wxEAPConfigDialogBase(); + +}; + +/////////////////////////////////////////////////////////////////////////////// +/// Class wxEAPCredentialsDialogBase +/////////////////////////////////////////////////////////////////////////////// +class wxEAPCredentialsDialogBase : public wxDialog +{ + private: + + protected: + wxEAPBannerPanel *m_banner; + wxBoxSizer* m_panels; + wxStdDialogButtonSizer* m_buttons; + wxButton* m_buttonsOK; + wxButton* m_buttonsCancel; + + public: + + wxEAPCredentialsDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("EAP Credentials"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE ); + ~wxEAPCredentialsDialogBase(); }; @@ -71,6 +96,34 @@ class wxEAPBannerPanelBase : public wxPanel }; +/////////////////////////////////////////////////////////////////////////////// +/// Class wxEAPCredentialsConfigPanelBase +/////////////////////////////////////////////////////////////////////////////// +class wxEAPCredentialsConfigPanelBase : public wxPanel +{ + private: + + protected: + wxStaticBitmap* m_credentials_icon; + wxStaticText* m_credentials_label; + wxStaticText* m_identity_label; + wxTextCtrl* m_identity; + wxButton* m_set; + wxButton* m_clear; + + // Virtual event handlers, overide them in your derived class + virtual void OnUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); } + virtual void OnSet( wxCommandEvent& event ) { event.Skip(); } + virtual void OnClear( wxCommandEvent& event ) { event.Skip(); } + + + public: + + wxEAPCredentialsConfigPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,-1 ), long style = wxTAB_TRAVERSAL ); + ~wxEAPCredentialsConfigPanelBase(); + +}; + /////////////////////////////////////////////////////////////////////////////// /// Class wxPasswordCredentialsPanelBase /////////////////////////////////////////////////////////////////////////////// diff --git a/EAPMethods/res/wxTLS_UI.cpp b/EAPMethods/res/wxTLS_UI.cpp index d0d6f52..3a8fe16 100644 --- a/EAPMethods/res/wxTLS_UI.cpp +++ b/EAPMethods/res/wxTLS_UI.cpp @@ -114,10 +114,10 @@ wxEAPTLSConfigPanelBase::~wxEAPTLSConfigPanelBase() } -wxTLSCredentialsPanelBase::wxTLSCredentialsPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) +wxEAPTLSCredentialsPanelBase::wxEAPTLSCredentialsPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { wxStaticBoxSizer* sb_credentials; - sb_credentials = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Client Credentials") ), wxVERTICAL ); + sb_credentials = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("TLS Client Certificate") ), wxVERTICAL ); wxBoxSizer* sb_credentials_horiz; sb_credentials_horiz = new wxBoxSizer( wxHORIZONTAL ); @@ -161,7 +161,7 @@ wxTLSCredentialsPanelBase::wxTLSCredentialsPanelBase( wxWindow* parent, wxWindow sb_credentials_vert->Add( sb_cert_radio, 0, wxEXPAND|wxALL, 5 ); - m_remember = new wxCheckBox( sb_credentials->GetStaticBox(), wxID_ANY, _("&Remember credentials"), wxDefaultPosition, wxDefaultSize, 0 ); + m_remember = new wxCheckBox( sb_credentials->GetStaticBox(), wxID_ANY, _("&Remember"), wxDefaultPosition, wxDefaultSize, 0 ); m_remember->SetHelpText( _("Check if you would like to save certificate selection") ); sb_credentials_vert->Add( m_remember, 0, wxALL|wxEXPAND, 5 ); @@ -177,14 +177,12 @@ wxTLSCredentialsPanelBase::wxTLSCredentialsPanelBase( wxWindow* parent, wxWindow this->Layout(); // Connect Events - m_cert_select->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( wxTLSCredentialsPanelBase::OnCertSelect ), NULL, this ); - m_remember->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( wxTLSCredentialsPanelBase::OnRemember ), NULL, this ); + m_cert_select->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( wxEAPTLSCredentialsPanelBase::OnCertSelect ), NULL, this ); } -wxTLSCredentialsPanelBase::~wxTLSCredentialsPanelBase() +wxEAPTLSCredentialsPanelBase::~wxEAPTLSCredentialsPanelBase() { // Disconnect Events - m_cert_select->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( wxTLSCredentialsPanelBase::OnCertSelect ), NULL, this ); - m_remember->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( wxTLSCredentialsPanelBase::OnRemember ), NULL, this ); + m_cert_select->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( wxEAPTLSCredentialsPanelBase::OnCertSelect ), NULL, this ); } diff --git a/EAPMethods/res/wxTLS_UI.fbp b/EAPMethods/res/wxTLS_UI.fbp index 63f48c7..80959a4 100644 --- a/EAPMethods/res/wxTLS_UI.fbp +++ b/EAPMethods/res/wxTLS_UI.fbp @@ -1013,7 +1013,7 @@ wxID_ANY - wxTLSCredentialsPanelBase + wxEAPTLSCredentialsPanelBase 500,-1 @@ -1053,7 +1053,7 @@ wxID_ANY - Client Credentials + TLS Client Certificate sb_credentials wxVERTICAL @@ -1560,7 +1560,7 @@ 0 0 wxID_ANY - &Remember credentials + &Remember 0 @@ -1590,7 +1590,7 @@ - OnRemember + diff --git a/EAPMethods/res/wxTLS_UI.h b/EAPMethods/res/wxTLS_UI.h index f2ac731..9d722c9 100644 --- a/EAPMethods/res/wxTLS_UI.h +++ b/EAPMethods/res/wxTLS_UI.h @@ -68,9 +68,9 @@ class wxEAPTLSConfigPanelBase : public wxPanel }; /////////////////////////////////////////////////////////////////////////////// -/// Class wxTLSCredentialsPanelBase +/// Class wxEAPTLSCredentialsPanelBase /////////////////////////////////////////////////////////////////////////////// -class wxTLSCredentialsPanelBase : public wxPanel +class wxEAPTLSCredentialsPanelBase : public wxPanel { private: @@ -84,13 +84,12 @@ class wxTLSCredentialsPanelBase : public wxPanel // Virtual event handlers, overide them in your derived class virtual void OnCertSelect( wxCommandEvent& event ) { event.Skip(); } - virtual void OnRemember( wxCommandEvent& event ) { event.Skip(); } public: - wxTLSCredentialsPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,-1 ), long style = wxTAB_TRAVERSAL ); - ~wxTLSCredentialsPanelBase(); + wxEAPTLSCredentialsPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,-1 ), long style = wxTAB_TRAVERSAL ); + ~wxEAPTLSCredentialsPanelBase(); }; diff --git a/EAPMethods/src/EAP.cpp b/EAPMethods/src/EAP.cpp index 65fe302a3cdbb338c971cd71ccc58406882bead4..f9f0b5cf331cd56bb3bbdb9efab123326456b459 100644 GIT binary patch delta 290 zcmbQUnq|*gmJLyUliwK%O#T-qFuA};XmVY+!sG-KzR6jBbKv6FB0PX%A(PJqh)gc< z-!OSsl+5G>rc#rCMLA7g5iJ7LBQQBDns4$3Z-vPX0k7cla{{#{=fvtwmWk5tdqbuIVE0e@{IVT$!ZA>o3(pj{Aq<`jjto8wS`3;DYMb>ZYagu=46t0}c1Q($yC$>~5r!`#JEEZ8Dl%U} zcY6uv-XyQ?T+AVl)lq|lWS1P0eX@t}WeWC{h<5A^PLq(o#|Hw^(_!ehDvHZsq|%S^ N`7~C3D7=mO*)Q_@a5(?~ diff --git a/EAPMethods/src/EAP_UI.cpp b/EAPMethods/src/EAP_UI.cpp index d75b35271347ffd37d9ee6ba0bc998c35c5bae3f..14e1893c867fc1c0b6fa6fb0c1af75cf521cfcdc 100644 GIT binary patch literal 6526 zcmdUzZ%-RX5XSd)rGAHNDm5l;Oxh@snx?71K!V}|0w)wzm1VFER*gaS5kmibz<#N= z&u{0(w~h_Oeo;}K?7Q2Wot=5+*_pZf=kMk4Abc7=30ZN}!dW;ES78`>;W(UxT;tz_ zN8#)6Bs?sxo@#6*oQ6&~l+@@W=QHbN_)9alLL<&e*KKGmbY-Edb6>i%;{H6eWDRzl z=~=3yE{Q?-HB_gxmFu{SYwJo^Cu$!>eR;Ty`a9v7bYE%gLgyom4Rl7f9qq^?B8PgK z7q(#$Qthy;Swr2O>Wp+(dRQ-?K;|OKcA{i1Z}AXaL(Ri)^Uj~V6iRP2`ce{uDAf`w zS=f;Uhq~&?#w_67QIr_zAA8VrK9(89b=n#`luaq#zRrf$H$3*D1tlI?*wBbs-IAp} z-3`K5($$H+;Q?O1i|0}CJPVICHtEZxm1qF3)S8Mc2T#Kvt+3G7T+%&AgK9rY&RTgM z7R-t%D8VP9V$nH?R#==)3JZy9CeFZ7;&CYNGob|jU7h<8A>&Ev;eOZ@>tBU!MYW+B z?1BTG_jR?a!*<0%_)cSJ#|F@6wNAu1wX7%3oNKL~o?*9fco}O_e5l7eM&D?3M{;|bRh3+(D`S-5 zm|C$ItGk7D>@V1w$>)xcX~igvX6*lih+U?r7>fOf5;26Wwy)VYy?76TE&Yx(i`@4i ze;2Vj^_rc_-Z_?LkL~O{mI+;Q+(7bqWD>l>;^*=t*Kw{qwXEYZ9#!cah$U6Y4|Tm9 zIZo)6@2Uvt3{{d>~hR#dy;y=I(fo=bCP&AW2AJ)rqstXmQP zYLOZEGLRoV#j~&IuN7Bk!p3LaB`>gP9v_}5`t!(FqV#@@c3T{|RJEr*P*Dvjax0Z@ z9<8gI4=*bpXu_M{BhKDUfVJfV%VX~q8?qETlRRa0-YQ8a^4%&J)=+(@jjQ4)*_PN^ zWw44vhr$>Yk7$#Px$o+ZJj{w+om+~%=Lolp%tW{GP%I}~C zfvnvQuM>;cCVZ`ob^JNjgtm8@3r_Pz7@n#>L5ZFW!Q z=-Iw4l9y*|`uJQ7*Qt!Tc5NrgBe0MzwyzA;5s%>$J~njTQNG$1pWi4CG&Fxp{HBv^ zDtk5bY-!Be{|n>DTq7Nq%2>mg-|QW4vTrE!+g)X$Wn8MLWp=6-6_GBprm97SZz#K* zE2iXVB08_{FnOd{w^dJ1bzJG1Y?1vFuol4JQMu~vUGZ|*qg)h6rb_QM6NcGSA(ngHPvGiMCk1sd%WoSGU zN6%u7rB|_#|C&0}HCmszqPotz z`MPG%Ro*shQ#pA>Uy8iH+|w$&mDe;vhE6%)9>N9dd^ZaO_!4v`k9UO(-^MO<&zq#7 z;BlJdO>>MN-hr0m>GzZ9F^a9PW!a{Xp@#6Sp|rOmjGu;YqutgMPga(4Pb`uR$N~-d zMZYmpjCrG2(;eRu8uB^ak#uC!e6l_CN>I2EU$Me>#qG?n{A<~4HvU#CZI?_&2Gp&`Pf?$R ziS666*4x`W6}i+tE2h_LcQ$y=^V!vy7l^dwUEalR?gik&XT|#&*OQsp*O|u2S9A`V zCq8O>!e{&0pH^iZ-cu6?;$t~ZmrFOqyAeEPuYn#p`@TA&`xuiV|O z3qQbx;17sPH=+wapjW*S|3E$OIizgu!ce@bSMT2Q&OPVe``&}($wfep4fFJ{x~Wo% zb%*jN*e++`Ub!)Qsi=(%I+$dBfoqw_Eu>(ein&iu9$B8bM60!+ zGhSl+O4zilC1TfAMMz+vgqBUq`kG~AUgOr$g&~Yg2etqdZTnC_l1xR3rR7{15t#(e1poj5 diff --git a/EAPMethods/src/TLS.cpp b/EAPMethods/src/TLS.cpp index 7417ea5fb95480775891b9842399918d51aa4ee8..32a00a62b4d00f62eac092f27ecfc174cae9215c 100644 GIT binary patch delta 2303 zcmbVN-A)rx5FSDVAr!1w+NMDl`RhVyX^4>kilvr9DcIB!6ff#RE7aIROEm#Qcm?rz zX`D{zLP7FOr3`l55=EE0 zag==GD0o9W9(9R?v#DhkF=?RCjtJQtz2+HQmWQAm7oxggY(2u3%_*>X8-#=1uvZe) zq^EiYHGIMz=x6&*EArwj8~gUsb^KH#R%N7}Eo@;lMxIFy`jy$Q{U!23M)IxDzOnz8 zua);Z;>e8K$s{?`yufxgFDSW!;wJI0avuiIOCk0pTSpxBIXY&5-WIK)R+4^vc889| z4Dd?%J?^hCSN_POxX(lah4Y?rDsemOPihGcTFp6FuXD zwgfUNNxCCXKIL?MJt254%O+o==lIH^>9+7?AlR}*%cx!4KyGy0)mdvHxly~*QCYzd zkjOFK9L3maK3I3dI&$Oslw>d1N4mLc-OHHctPDY`YW#iiGwvMhK@K{r&B}7)4;*t{ z=YuMOy&myiS@lG5UKu&+Y>2?NBqf$R@X+(AHgBZ55(gi;sCdzERv8RInk3zt5Nrl4Iw#Y*&9u#6Yj}3ks#BodCu!3N xKsenalOho7ck4G$4r+vXqR-YSj{U?uzA|`IikWQ9Q#xpZgOqHk-F~nB}@Joqw;fnqVC*oOLV>U ziw+HiG5WH{hM(>OS$+--((YN*|-6EjTrPBv*z zX;3JAR%7av&R$iz62{U6E2NudG!$n>@Ar-BAP;6^?SvVoej7X|%dygL$J^sJd_H|t zv;G}6HlfF1$AaykVnEq*2)9gnJUf#O(@7)F_ixAWsd9X6(__6abBAIn|JUx7HAAa+nP_Qc|Mqyt6y;+UtYdqsQ0%dPoCCJT=)c+mzk4Ner$0 zESL~3(Zp138tEw&2n{jQv#6}-DcC3Z?Y{32emG3gPd>LU zY8qPEwu#|~p%)u$9}YX?<034wX6IxxCWaGgB=&9f!uYHSbGgCSK-eb4b`$gJB-VWC zu;eYS7khDoDHaHGYb8HQ}I2V;44@M#52as#W=)>CiqDb51AINsG9K4Tt}0kQbi%y^=RY&lO0kc zFRD+6cMHT|lv$O`C9amhIgpGqk#(FO!71+IR@l?@23>s>@X3x;itmgozH#gL0mPtx zcdiBt=KKXUnl(ySm*aP;+|uZV6L!0LGq!PWG32kP(AIG&4v4uSu7kkSsg0{jhlrI+ XQd49xsD7>D{uaYD^eFn~tgHDi5rorq delta 1251 zcmb7EOH5Ny5S`N476PR$JSo5Swc%T^g@{Vp+7v}TeYCb>khoDw3ndnslnO3PLtMJT zo)|)c34XQ^v94XPWCa@+F4To_;Re~b)p>0(twD^L+;?a0ojWu4%(-vxZQ0kYve#dn zc;jk=&b7g_J*QW??NI3_bNY%to*ndTDA=$;=M5;A=>c|J?bxfmTXU1H(;yEgiFAXa zG(`~{Tx&$8$IvL!3?(T+^SpP9=4gQ;Y%S9wi8yo$y(0P9e}Ts=pG=aSs;Gi}^Acv? z1jX5kvBx6ap=lgB1(*g*NUv7FcDozfBSsj7mh5}4?+iXzbm-UU)G1DtqBwTeE%-6i zS6;9w3d>q6_A@G^hWj86?zjGqN!`4@ zz~wLV%)rnD>(iV+K}lGQg2IiR`WmDsHA)Y4Aha&1^I2jziU{yNHDcSR%C3%v71)*R zcqlouyV6AkY-_cp^~e{`_zg&FHGgcp&^BOGYQqGN?~+wrKoB9Ri)}X|l9A_1A<3o9 z=SG;nNiLWLN4`s(wd1e5W^|8P3-Psh*K2@hOotw+p(syH(RyD&*JS*@0%eS-2pO>w zGr&}@(ic-^oLjqu18=jrfC`r+V|OB9nnfDVBg^HNlEpy|e9{Zp_xH#-F61GYmr27U zoMrF49%pVuxnHT=jtqjV9e3n;(5#dr^#xLfic!In*hniTllq|LR_Zc$a0@CS#E0hx{FC@mF0wbLlS)T<1r z{0Q#xH^SF`a;5nn{0uX9|BG7?tGD5uIQ!B&uEb2(if@nhbMwcf9qw=dzQxB`cUas1 E3qzSossI20 diff --git a/EAPMethods/src/TTLS_UI.cpp b/EAPMethods/src/TTLS_UI.cpp index c85b92fe328e15c82c060b3d2c5cfd67fe4a9af5..d0e7c8c6c40ad749ed1d1bfa25f70daa7bfa4f55 100644 GIT binary patch delta 87 zcmZ2beWQBA5gtw#hD?S;h8%|c%?Eizl_#Il6%a0BNM%R?;yi{DsATbEekt+E?|^dg h3?U2}3`#&Um7y3Yuf(7^`M#d)MtCV5-=K*@GcmW@HYyREG;gxlrTgMI