summaryrefslogtreecommitdiff
path: root/xmlsecurity
diff options
context:
space:
mode:
authorMalte Timmermann <mt@openoffice.org>2004-07-26 11:13:29 +0000
committerMalte Timmermann <mt@openoffice.org>2004-07-26 11:13:29 +0000
commit0295f68c9dadd9e01e383f3d7d1975022c643e8f (patch)
treeec09173bcc204bffa6b7b4b1f414aa617da2e8d7 /xmlsecurity
parentf2cd9e259fb634584b42ffebfd22622df3867065 (diff)
#i21596# Digital Signatures...
Diffstat (limited to 'xmlsecurity')
-rw-r--r--xmlsecurity/inc/xmlsecurity/macrosecurity.hxx16
-rw-r--r--xmlsecurity/source/component/documentdigitalsignatures.cxx10
-rw-r--r--xmlsecurity/source/dialogs/macrosecurity.cxx103
3 files changed, 57 insertions, 72 deletions
diff --git a/xmlsecurity/inc/xmlsecurity/macrosecurity.hxx b/xmlsecurity/inc/xmlsecurity/macrosecurity.hxx
index e6ed0ec363ac..77a5213b9eb9 100644
--- a/xmlsecurity/inc/xmlsecurity/macrosecurity.hxx
+++ b/xmlsecurity/inc/xmlsecurity/macrosecurity.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: macrosecurity.hxx,v $
*
- * $Revision: 1.7 $
+ * $Revision: 1.8 $
*
- * last change: $Author: mt $ $Date: 2004-07-26 06:08:22 $
+ * last change: $Author: mt $ $Date: 2004-07-26 12:13:28 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -115,8 +115,8 @@ private:
PushButton maResetBtn;
cssu::Reference< dcss::xml::crypto::XSecurityEnvironment > mxSecurityEnvironment;
- SignatureInformations maCurrentSignatureInformations;
SvtSecurityOptions maSecOptions;
+
MacroSecurityTP* mpLevelTP;
MacroSecurityTP* mpTrustSrcTP;
@@ -133,8 +133,6 @@ inline void MacroSecurity::EnableReset( bool _bEnable )
maResetBtn.Enable ( _bEnable );
}
-
-
class MacroSecurityTP : public TabPage
{
protected:
@@ -185,7 +183,9 @@ private:
PushButton maAddLocPB;
PushButton maRemoveLocPB;
-// DECL_LINK( AddCertPBHdl, void* );
+ cssu::Sequence< SvtSecurityOptions::Certificate > maTrustedAuthors;
+
+
DECL_LINK( ViewCertPBHdl, void* );
DECL_LINK( RemoveCertPBHdl, void* );
DECL_LINK( AddLocPBHdl, void* );
@@ -193,9 +193,9 @@ private:
DECL_LINK( TrustCertLBSelectHdl, void* );
DECL_LINK( TrustFileLocLBSelectHdl, void* );
- cssu::Sequence< SvtSecurityOptions::Certificate > maTrustedAuthors;
-// void InsertCert( cssu::Reference< css::security::XCertificate >& _rxCert, USHORT _nInd );
void FillCertLB( void );
+ void ImplCheckButtons();
+
public:
MacroSecurityTrustedSourcesTP( Window* pParent, MacroSecurity* _pDlg );
diff --git a/xmlsecurity/source/component/documentdigitalsignatures.cxx b/xmlsecurity/source/component/documentdigitalsignatures.cxx
index 530d47f8e03e..d0d6cb643ac9 100644
--- a/xmlsecurity/source/component/documentdigitalsignatures.cxx
+++ b/xmlsecurity/source/component/documentdigitalsignatures.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: documentdigitalsignatures.cxx,v $
*
- * $Revision: 1.10 $
+ * $Revision: 1.11 $
*
- * last change: $Author: mt $ $Date: 2004-07-26 07:29:30 $
+ * last change: $Author: mt $ $Date: 2004-07-26 12:13:28 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -241,9 +241,9 @@ void DocumentDigitalSignatures::addAuthorToTrustedSources( const ::com::sun::sta
{
SvtSecurityOptions aSecOpts;
- SvtSecurityOptions::Certificate aNewCert;
- aNewCert[ 0 ] = XmlSec::GetContentPart( Author->getIssuerName(), String::CreateFromAscii( "CN" ) );
- aNewCert[ 1 ] = XmlSec::GetHexString( Author->getIssuerUniqueID(), " " );
+ SvtSecurityOptions::Certificate aNewCert( 3 );
+ aNewCert[ 0 ] = Author->getIssuerName();
+ aNewCert[ 1 ] = bigIntegerToNumericString( Author->getSerialNumber() );
aNewCert[ 2 ] = baseEncode( Author->getEncoded(), BASE64 );
uno::Sequence< SvtSecurityOptions::Certificate > aTrustedAuthors = aSecOpts.GetTrustedAuthors();
diff --git a/xmlsecurity/source/dialogs/macrosecurity.cxx b/xmlsecurity/source/dialogs/macrosecurity.cxx
index 905ad1f0ddf9..a26dc1ab5a27 100644
--- a/xmlsecurity/source/dialogs/macrosecurity.cxx
+++ b/xmlsecurity/source/dialogs/macrosecurity.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: macrosecurity.cxx,v $
*
- * $Revision: 1.14 $
+ * $Revision: 1.15 $
*
- * last change: $Author: mt $ $Date: 2004-07-26 07:29:31 $
+ * last change: $Author: mt $ $Date: 2004-07-26 12:13:29 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -64,6 +64,8 @@
#include <xmlsecurity/certificateviewer.hxx>
#include <xmlsecurity/biginteger.hxx>
+#include <osl/file.hxx>
+
#ifndef _COM_SUN_STAR_XML_CRYPTO_XSECURITYENVIRONMENT_HPP_
#include <com/sun/star/xml/crypto/XSecurityEnvironment.hpp>
@@ -197,25 +199,6 @@ MacroSecurityLevelTP::MacroSecurityLevelTP( Window* _pParent, MacroSecurity* _pD
,maLowRB ( this, ResId( RB_LOW ) )
{
FreeResource();
-
- // Don't use the default v-center here...
-/*
- WinBits nStyle = maVeryHighRB.GetStyle();
- nStyle |= WB_TOP;
- maVeryHighRB.SetStyle( nStyle );
-
- nStyle = maHighRB.GetStyle();
- nStyle |= WB_TOP;
- maHighRB.SetStyle( nStyle );
-
- nStyle = maMediumRB.GetStyle();
- nStyle |= WB_TOP;
- maMediumRB.SetStyle( nStyle );
-
- nStyle = maLowRB.GetStyle();
- nStyle |= WB_TOP;
- maLowRB.SetStyle( nStyle );
-*/
}
void MacroSecurityLevelTP::ActivatePage()
@@ -234,39 +217,35 @@ void MacroSecurityLevelTP::ClosePage( void )
mpDlg->maSecOptions.SetMacroSecurityLevel( nLevel );
}
-
-/*IMPL_LINK( MacroSecurityTrustedSourcesTP, AddCertPBHdl, void*, EMTYARG )
+void MacroSecurityTrustedSourcesTP::ImplCheckButtons()
{
- CertificateChooser aChooser( this, mpDlg->mxSecurityEnvironment, mpDlg->maCurrentSignatureInformations );
- if( aChooser.Execute() )
- {
- uno::Reference< css::security::XCertificate > xCert = aChooser.GetSelectedCertificate();
+ bool bCertSelected = maTrustCertLB.FirstSelected() != NULL;
+ maViewCertPB.Enable( bCertSelected );
+ maRemoveCertPB.Enable( bCertSelected );
- if( xCert.is() )
- {
- FillCertLB();
- }
- }
+ bool bLocationSelected = maTrustFileLocLB.GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND;
+ maRemoveLocPB.Enable( bLocationSelected );
+}
- return 0;
-}*/
IMPL_LINK( MacroSecurityTrustedSourcesTP, ViewCertPBHdl, void*, EMTYARG )
{
if( maTrustCertLB.FirstSelected() )
{
USHORT nSelected = USHORT( sal_Int32( maTrustCertLB.FirstSelected()->GetUserData() ) );
- const SignatureInformation& rInfo = mpDlg->maCurrentSignatureInformations[ nSelected ];
- uno::Reference< dcss::security::XCertificate > xCert = mpDlg->mxSecurityEnvironment->getCertificate( rInfo.ouX509IssuerName, numericStringToBigInteger( rInfo.ouX509SerialNumber ) );
+ uno::Reference< dcss::security::XCertificate > xCert = mpDlg->mxSecurityEnvironment->getCertificate( maTrustedAuthors[nSelected][0], numericStringToBigInteger( maTrustedAuthors[nSelected][1] ) );
// If we don't get it, create it from signature data:
if ( !xCert.is() )
- xCert = mpDlg->mxSecurityEnvironment->createCertificateFromAscii( rInfo.ouX509Certificate ) ;
+ xCert = mpDlg->mxSecurityEnvironment->createCertificateFromAscii( maTrustedAuthors[nSelected][2] ) ;
DBG_ASSERT( xCert.is(), "*MacroSecurityTrustedSourcesTP::ViewCertPBHdl(): Certificate not found and can't be created!" );
- CertificateViewer aViewer( this, mpDlg->mxSecurityEnvironment, xCert );
- aViewer.Execute();
+ if ( xCert.is() )
+ {
+ CertificateViewer aViewer( this, mpDlg->mxSecurityEnvironment, xCert );
+ aViewer.Execute();
+ }
}
return 0;
}
@@ -297,6 +276,7 @@ IMPL_LINK( MacroSecurityTrustedSourcesTP, RemoveCertPBHdl, void*, EMTYARG )
maTrustedAuthors = aNewSeq;
FillCertLB();
+ ImplCheckButtons();
}
return 0;
@@ -322,10 +302,17 @@ IMPL_LINK( MacroSecurityTrustedSourcesTP, AddLocPBHdl, void*, EMTYARG )
// then the new path also an URL else system path
String aNewPathStr = ( aNewObj.GetProtocol() != INET_PROT_NOT_VALID )? aPathStr : aNewObj.getFSysPath( INetURLObject::FSYS_DETECT );
+ ::rtl::OUString aSystemFileURL( aNewPathStr );
+ if ( osl::FileBase::getSystemPathFromFileURL( aSystemFileURL, aSystemFileURL ) == osl::FileBase::E_None )
+ aNewPathStr = aSystemFileURL;
+
+
if( maTrustFileLocLB.GetEntryPos( aNewPathStr ) == LISTBOX_ENTRY_NOTFOUND )
{
maTrustFileLocLB.InsertEntry( aNewPathStr );
}
+
+ ImplCheckButtons();
}
catch( uno::Exception& )
{
@@ -341,6 +328,7 @@ IMPL_LINK( MacroSecurityTrustedSourcesTP, RemoveLocPBHdl, void*, EMTYARG )
if( nSel != LISTBOX_ENTRY_NOTFOUND )
{
maTrustFileLocLB.RemoveEntry( nSel );
+ ImplCheckButtons();
}
return 0;
@@ -348,30 +336,16 @@ IMPL_LINK( MacroSecurityTrustedSourcesTP, RemoveLocPBHdl, void*, EMTYARG )
IMPL_LINK( MacroSecurityTrustedSourcesTP, TrustCertLBSelectHdl, void*, EMTYARG )
{
- bool bSel = maTrustCertLB.FirstSelected() != NULL;
- maViewCertPB.Enable( bSel );
- maRemoveCertPB.Enable( bSel );
-
+ ImplCheckButtons();
return 0;
}
IMPL_LINK( MacroSecurityTrustedSourcesTP, TrustFileLocLBSelectHdl, void*, EMTYARG )
{
- maRemoveLocPB.Enable( maTrustFileLocLB.GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND );
-
+ ImplCheckButtons();
return 0;
}
-/*void MacroSecurityTrustedSourcesTP::InsertCert( uno::Reference< css::security::XCertificate >& _rxCert, USHORT _nInd )
-{
- String aCN_Id( String::CreateFromAscii( "CN" ) );
-
- SvLBoxEntry* pEntry = maTrustCertLB.InsertEntry( XmlSec::GetContentPart( _rxCert->getIssuerName(), aCN_Id ) );
- maTrustCertLB.SetEntryText( XmlSec::GetContentPart( _rxCert->getIssuerName(), aCN_Id ), pEntry, 1 );
- maTrustCertLB.SetEntryText( XmlSec::GetDateString( _rxCert->getNotAfter() ), pEntry, 2 );
- pEntry->SetUserData( ( void* ) _nInd );
-}*/
-
void MacroSecurityTrustedSourcesTP::FillCertLB( void )
{
maTrustCertLB.Clear();
@@ -413,7 +387,6 @@ MacroSecurityTrustedSourcesTP::MacroSecurityTrustedSourcesTP( Window* _pParent,
FreeResource();
maTrustCertLB.SetSelectHdl( LINK( this, MacroSecurityTrustedSourcesTP, TrustCertLBSelectHdl ) );
-// maAddCertPB.SetClickHdl( LINK( this, MacroSecurityTrustedSourcesTP, AddCertPBHdl ) );
maAddCertPB.Hide(); // not used in the moment...
maViewCertPB.SetClickHdl( LINK( this, MacroSecurityTrustedSourcesTP, ViewCertPBHdl ) );
maViewCertPB.Disable();
@@ -425,10 +398,18 @@ MacroSecurityTrustedSourcesTP::MacroSecurityTrustedSourcesTP( Window* _pParent,
maRemoveLocPB.SetClickHdl( LINK( this, MacroSecurityTrustedSourcesTP, RemoveLocPBHdl ) );
maRemoveLocPB.Disable();
+ maTrustedAuthors = mpDlg->maSecOptions.GetTrustedAuthors();
+
+ FillCertLB();
+
cssu::Sequence< rtl::OUString > aSecureURLs = mpDlg->maSecOptions.GetSecureURLs();
- sal_Int32 nEntryCnt = aSecureURLs.getLength();
+ sal_Int32 nEntryCnt = aSecureURLs.getLength();
for( sal_Int32 i = 0 ; i < nEntryCnt ; ++i )
- maTrustFileLocLB.InsertEntry( aSecureURLs[ i ] );
+ {
+ ::rtl::OUString aSystemFileURL( aSecureURLs[ i ] );
+ osl::FileBase::getSystemPathFromFileURL( aSystemFileURL, aSystemFileURL );
+ maTrustFileLocLB.InsertEntry( aSystemFileURL );
+ }
}
void MacroSecurityTrustedSourcesTP::ActivatePage()
@@ -444,7 +425,11 @@ void MacroSecurityTrustedSourcesTP::ClosePage( void )
{
cssu::Sequence< rtl::OUString > aSecureURLs( nEntryCnt );
for( USHORT i = 0 ; i < nEntryCnt ; ++i )
- aSecureURLs[ i ] = maTrustFileLocLB.GetEntry( i );
+ {
+ ::rtl::OUString aURL( maTrustFileLocLB.GetEntry( i ) );
+ osl::FileBase::getFileURLFromSystemPath( aURL, aURL );
+ aSecureURLs[ i ] = aURL;
+ }
mpDlg->maSecOptions.SetSecureURLs( aSecureURLs );
}