[Libreoffice-commits] core.git: Branch 'libreoffice-5-4' - xmlsecurity/inc xmlsecurity/source xmlsecurity/uiconfig

2017-06-27 Thread Katarina Behrens
 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 Behrens 
Date:   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

2017-06-06 Thread Katarina Behrens
 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 Behrens 
Date:   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
+++