[Libreoffice-commits] core.git: Branch 'libreoffice-5-4' - xmlsecurity/inc xmlsecurity/source xmlsecurity/uiconfig
xmlsecurity/inc/resourcemanager.hxx|2 ++ xmlsecurity/source/dialogs/certificatechooser.cxx | 10 ++ xmlsecurity/source/dialogs/resourcemanager.cxx | 13 + xmlsecurity/uiconfig/ui/selectcertificatedialog.ui | 11 +++ 4 files changed, 32 insertions(+), 4 deletions(-) New commits: commit 5119d81e41e9c7199d3f419e24cba81537edff55 Author: Katarina BehrensDate: Tue Jun 20 14:21:06 2017 +0200 gpg4libre: Show certificate kind OpenPGP vs. X509 as 1 table column Shuffled the columns around a little bit Change-Id: Ib0a979458db680d712737ff997e1c3b4e4564f3f Reviewed-on: https://gerrit.libreoffice.org/38984 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt (cherry picked from commit 72f84c1a0efbce8da02cbf6d5947d2ddfd45c533) Reviewed-on: https://gerrit.libreoffice.org/39148 Reviewed-by: Sophie Gautier Reviewed-by: Heiko Tietze diff --git a/xmlsecurity/inc/resourcemanager.hxx b/xmlsecurity/inc/resourcemanager.hxx index ece7fba24fe2..659c65bc0431 100644 --- a/xmlsecurity/inc/resourcemanager.hxx +++ b/xmlsecurity/inc/resourcemanager.hxx @@ -22,6 +22,7 @@ #include #include +#include #include #include @@ -39,6 +40,7 @@ namespace XmlSec DateTimeGetDateTime( const css::util::DateTime& _rDT ); OUStringGetDateTimeString( const css::util::DateTime& _rDT ); OUStringGetDateString( const css::util::DateTime& _rDT ); +OUStringGetCertificateKind( const css::security::CertificateKind& rKind ); std::vector< std::pair< OUString, OUString> > parseDN(const OUString& rRawString); diff --git a/xmlsecurity/source/dialogs/certificatechooser.cxx b/xmlsecurity/source/dialogs/certificatechooser.cxx index 726b4038aa96..cb9d2db4d4e5 100644 --- a/xmlsecurity/source/dialogs/certificatechooser.cxx +++ b/xmlsecurity/source/dialogs/certificatechooser.cxx @@ -52,10 +52,11 @@ CertificateChooser::CertificateChooser(vcl::Window* _pParent, pSignatures->set_height_request(aControlSize.Height()); m_pCertLB = VclPtr::Create(*pSignatures); -static long nTabs[] = { 4, 0, 20*nControlWidth/100, 40*nControlWidth/100, 80*nControlWidth/100 }; +static long nTabs[] = { 5, 0, 20*nControlWidth/100, 50*nControlWidth/100, 60*nControlWidth/100, 70*nControlWidth/100 }; m_pCertLB->SetTabs( [0] ); m_pCertLB->InsertHeaderEntry(get("issuedto")->GetText() + "\t" + get("issuedby")->GetText() -+ "\t" + get("usage")->GetText() + "\t" + get("expiration")->GetText()); ++ "\t" + get("type")->GetText() + "\t" + get("expiration")->GetText() ++ "\t" + get("usage")->GetText()); m_pCertLB->SetSelectHdl( LINK( this, CertificateChooser, CertificateHighlightHdl ) ); m_pCertLB->SetDoubleClickHdl( LINK( this, CertificateChooser, CertificateSelectHdl ) ); m_pViewBtn->SetClickHdl( LINK( this, CertificateChooser, ViewButtonHdl ) ); @@ -189,8 +190,9 @@ void CertificateChooser::ImplInitialize() mvUserData.push_back(userData); SvTreeListEntry* pEntry = m_pCertLB->InsertEntry( XmlSec::GetContentPart( xCerts[ nC ]->getSubjectName() ) + "\t" + XmlSec::GetContentPart( xCerts[ nC ]->getIssuerName() ) -+ "\t" + UsageInClearText( xCerts[ nC ]->getCertificateUsage() ) -+ "\t" + XmlSec::GetDateString( xCerts[ nC ]->getNotValidAfter() ) ); ++ "\t" + XmlSec::GetCertificateKind( xCerts[ nC ]->getCertificateKind() ) ++ "\t" + XmlSec::GetDateString( xCerts[ nC ]->getNotValidAfter() ) ++ "\t" + UsageInClearText( xCerts[ nC ]->getCertificateUsage() ) ); pEntry->SetUserData( userData.get() ); } } diff --git a/xmlsecurity/source/dialogs/resourcemanager.cxx b/xmlsecurity/source/dialogs/resourcemanager.cxx index e989af368b60..2f2e6596f720 100644 --- a/xmlsecurity/source/dialogs/resourcemanager.cxx +++ b/xmlsecurity/source/dialogs/resourcemanager.cxx @@ -68,6 +68,19 @@ namespace XmlSec return GetLocaleData().getDate( GetDateTime( _rDT ) ); } +OUString GetCertificateKind( const css::security::CertificateKind ) +{ +switch (rKind) +{ +case css::security::CertificateKind_X509: +return OUString("X.509"); +case css::security::CertificateKind_OPENPGP: +return OUString("OpenPGP"); +default: +return OUString(); +} +} + /* Creates two strings based on the distinguished name which are displayed in the certificate details view. The first string contains only the values of the attribute diff --git a/xmlsecurity/uiconfig/ui/selectcertificatedialog.ui b/xmlsecurity/uiconfig/ui/selectcertificatedialog.ui index
[Libreoffice-commits] core.git: Branch 'libreoffice-5-4' - xmlsecurity/inc xmlsecurity/source xmlsecurity/uiconfig
xmlsecurity/inc/digitalsignaturesdialog.hxx|2 xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx | 47 ++ xmlsecurity/uiconfig/ui/digitalsignaturesdialog.ui | 77 ++--- 3 files changed, 78 insertions(+), 48 deletions(-) New commits: commit 093f469eeec48e66050127e48f4a73f5c211621c Author: Katarina BehrensDate: Tue Mar 14 13:25:37 2017 +0100 gpg4libre: add 'Start certificate manager' button Change-Id: Ief3239fd1b3ff1f4e2e95e4413aa9f707f3dfb50 Reviewed-on: https://gerrit.libreoffice.org/36689 Tested-by: Jenkins Reviewed-by: Thorsten Behrens (cherry picked from commit 28ae89f4655ee7d630f2400e3994c227dcf47f70) Reviewed-on: https://gerrit.libreoffice.org/38478 Reviewed-by: Christian Lohmaier diff --git a/xmlsecurity/inc/digitalsignaturesdialog.hxx b/xmlsecurity/inc/digitalsignaturesdialog.hxx index 4c3c6de7e951..44cf85da7d50 100644 --- a/xmlsecurity/inc/digitalsignaturesdialog.hxx +++ b/xmlsecurity/inc/digitalsignaturesdialog.hxx @@ -75,6 +75,7 @@ private: VclPtr m_pViewBtn; VclPtr m_pAddBtn; VclPtr m_pRemoveBtn; +VclPtr m_pStartCertMgrBtn; VclPtrm_pCloseBtn; @@ -94,6 +95,7 @@ private: DECL_LINK(SignatureSelectHdl, SvTreeListBox*, bool ); DECL_LINK(StartVerifySignatureHdl, LinkParamNone*, bool ); DECL_LINK(OKButtonHdl, Button*, void ); +DECL_STATIC_LINK(DigitalSignaturesDialog, CertMgrButtonHdl, Button*, void ); voidImplGetSignatureInformations(bool bUseTempStream, bool bCacheLastSignature); voidImplFillSignaturesBox(); diff --git a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx index b88dd97337f8..f691ab063157 100644 --- a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx +++ b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx @@ -35,8 +35,11 @@ #include #include #include +#include +#include +#include - +#include #include #include @@ -119,6 +122,7 @@ DigitalSignaturesDialog::DigitalSignaturesDialog( get(m_pAddBtn, "sign"); get(m_pRemoveBtn, "remove"); get(m_pCloseBtn, "close"); +get(m_pStartCertMgrBtn, "start_certmanager"); get(m_pSigsValidImg, "validimg"); get(m_pSigsValidFI, "validft"); get(m_pSigsInvalidImg, "invalidimg"); @@ -165,6 +169,8 @@ DigitalSignaturesDialog::DigitalSignaturesDialog( m_pRemoveBtn->SetClickHdl( LINK( this, DigitalSignaturesDialog, RemoveButtonHdl ) ); m_pRemoveBtn->Disable(); +m_pStartCertMgrBtn->SetClickHdl( LINK( this, DigitalSignaturesDialog, CertMgrButtonHdl ) ); + m_pCloseBtn->SetClickHdl( LINK( this, DigitalSignaturesDialog, OKButtonHdl) ); switch( maSignatureManager.meSignatureMode ) @@ -205,6 +211,7 @@ void DigitalSignaturesDialog::dispose() m_pAddBtn.clear(); m_pRemoveBtn.clear(); m_pCloseBtn.clear(); +m_pStartCertMgrBtn.clear(); ModalDialog::dispose(); } @@ -445,6 +452,44 @@ IMPL_LINK_NOARG(DigitalSignaturesDialog, RemoveButtonHdl, Button*, void) } } +IMPL_STATIC_LINK_NOARG(DigitalSignaturesDialog, CertMgrButtonHdl, Button*, void) +{ +const OUString aGUIServers[] = { OUString("kleopatra"), OUString("gpa"), OUString("kgpg") }; +// FIXME: the same for Windows + registry search for gpg4win +const char* cPath = getenv("PATH"); + +if (cPath) +{ + OUString aPath(cPath, strlen(cPath), osl_getThreadTextEncoding()); + OUString sFoundGUIServer, sExecutable; + + for ( auto const : aGUIServers ) + { + osl::FileBase::RC searchError = osl::File::searchFileURL(rServer, aPath, sFoundGUIServer ); + if (searchError == osl::FileBase::E_None) + { + osl::File::getSystemPathFromFileURL( sFoundGUIServer, sExecutable ); + break; + } + + } + + if ( !sExecutable.isEmpty() ) + { + uno::Reference< uno::XComponentContext > xContext = + ::comphelper::getProcessComponentContext(); + uno::Reference< css::system::XSystemShellExecute > xSystemShell( +css::system::SystemShellExecute::create(xContext) ); + + xSystemShell->execute( sExecutable, OUString(), + css::system::SystemShellExecuteFlags::DEFAULTS ); + } + //else FIXME: none of the certificate managers' there + +} + +} + IMPL_LINK_NOARG(DigitalSignaturesDialog, StartVerifySignatureHdl, LinkParamNone*, bool) { return mbVerifySignatures; diff --git a/xmlsecurity/uiconfig/ui/digitalsignaturesdialog.ui b/xmlsecurity/uiconfig/ui/digitalsignaturesdialog.ui index 31bec8316eb3..487bebdf8764 100644 --- a/xmlsecurity/uiconfig/ui/digitalsignaturesdialog.ui +++