diff options
Diffstat (limited to 'xmlsecurity/source/dialogs')
17 files changed, 0 insertions, 4298 deletions
diff --git a/xmlsecurity/source/dialogs/certificatechooser.cxx b/xmlsecurity/source/dialogs/certificatechooser.cxx deleted file mode 100644 index ec9cba589..000000000 --- a/xmlsecurity/source/dialogs/certificatechooser.cxx +++ /dev/null @@ -1,241 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_xmlsecurity.hxx" - -#include <xmlsecurity/certificatechooser.hxx> -#include <xmlsecurity/certificateviewer.hxx> -#include <xmlsecurity/biginteger.hxx> -#include <com/sun/star/xml/crypto/XSecurityEnvironment.hpp> -#include <comphelper/sequence.hxx> -#include <comphelper/processfactory.hxx> - -#include <com/sun/star/security/NoPasswordException.hpp> -#include <com/sun/star/security/CertificateCharacters.hpp> -#include <com/sun/star/security/SerialNumberAdapter.hpp> - -#include <dialogs.hrc> -#include <resourcemanager.hxx> -#include <vcl/msgbox.hxx> - -/* HACK: disable some warnings for MS-C */ -#ifdef _MSC_VER -#pragma warning (disable : 4355) // 4355: this used in initializer-list -#endif - -using namespace ::com::sun::star; - -#define INVAL_SEL 0xFFFF - -sal_uInt16 CertificateChooser::GetSelectedEntryPos( void ) const -{ - sal_uInt16 nSel = INVAL_SEL; - - SvLBoxEntry* pSel = maCertLB.FirstSelected(); - if( pSel ) - nSel = (sal_uInt16) ( sal_uIntPtr ) pSel->GetUserData(); - - return (sal_uInt16) nSel; -} - -CertificateChooser::CertificateChooser( Window* _pParent, uno::Reference< uno::XComponentContext>& _rxCtx, uno::Reference< dcss::xml::crypto::XSecurityEnvironment >& _rxSecurityEnvironment, const SignatureInformations& _rCertsToIgnore ) - :ModalDialog ( _pParent, XMLSEC_RES( RID_XMLSECDLG_CERTCHOOSER ) ) - ,maCertsToIgnore( _rCertsToIgnore ) - ,maHintFT ( this, XMLSEC_RES( FT_HINT_SELECT ) ) - ,m_aCertLBContainer(this, XMLSEC_RES(LB_SIGNATURES)) - ,maCertLB(m_aCertLBContainer) - ,maViewBtn ( this, XMLSEC_RES( BTN_VIEWCERT ) ) - ,maBottomSepFL ( this, XMLSEC_RES( FL_BOTTOM_SEP ) ) - ,maOKBtn ( this, XMLSEC_RES( BTN_OK ) ) - ,maCancelBtn ( this, XMLSEC_RES( BTN_CANCEL ) ) - ,maHelpBtn ( this, XMLSEC_RES( BTN_HELP ) ) -{ - static long nTabs[] = { 3, 0, 30*CS_LB_WIDTH/100, 60*CS_LB_WIDTH/100 }; - maCertLB.SetTabs( &nTabs[0] ); - maCertLB.InsertHeaderEntry( String( XMLSEC_RES( STR_HEADERBAR ) ) ); - maCertLB.SetSelectHdl( LINK( this, CertificateChooser, CertificateHighlightHdl ) ); - maCertLB.SetDoubleClickHdl( LINK( this, CertificateChooser, CertificateSelectHdl ) ); - maViewBtn.SetClickHdl( LINK( this, CertificateChooser, ViewButtonHdl ) ); - - FreeResource(); - - mxCtx = _rxCtx; - mxSecurityEnvironment = _rxSecurityEnvironment; - mbInitialized = sal_False; - - // disable buttons - CertificateHighlightHdl( NULL ); -} - -CertificateChooser::~CertificateChooser() -{ -} - -short CertificateChooser::Execute() -{ - // #i48432# - // We can't check for personal certificates before raising this dialog, - // because the mozilla implementation throws a NoPassword exception, - // if the user pressed cancel, and also if the database does not exist! - // But in the later case, the is no password query, and the user is confused - // that nothing happens when pressing "Add..." in the SignatureDialog. - - // PostUserEvent( LINK( this, CertificateChooser, Initialize ) ); - - // PostUserLink behavior is to slow, so do it directly before Execute(). - // Problem: This Dialog should be visible right now, and the parent should not be accessible. - // Show, Update, DIsableInput... - - Window* pMe = this; - Window* pParent = GetParent(); - if ( pParent ) - pParent->EnableInput( sal_False ); - pMe->Show(); - pMe->Update(); - ImplInitialize(); - if ( pParent ) - pParent->EnableInput( sal_True ); - return ModalDialog::Execute(); -} - -// IMPL_LINK( CertificateChooser, Initialize, void*, EMPTYARG ) -void CertificateChooser::ImplInitialize() -{ - if ( !mbInitialized ) - { - try - { - maCerts = mxSecurityEnvironment->getPersonalCertificates(); - } - catch (security::NoPasswordException&) - { - } - - uno::Reference< dcss::security::XSerialNumberAdapter> xSerialNumberAdapter = - ::com::sun::star::security::SerialNumberAdapter::create(mxCtx); - - sal_Int32 nCertificates = maCerts.getLength(); - sal_Int32 nCertificatesToIgnore = maCertsToIgnore.size(); - for( sal_Int32 nCert = nCertificates; nCert; ) - { - uno::Reference< security::XCertificate > xCert = maCerts[ --nCert ]; - sal_Bool bIgnoreThis = false; - - // Do we already use that? - if( nCertificatesToIgnore ) - { - rtl::OUString aIssuerName = xCert->getIssuerName(); - for( sal_Int32 nSig = 0; nSig < nCertificatesToIgnore; ++nSig ) - { - const SignatureInformation& rInf = maCertsToIgnore[ nSig ]; - if ( ( aIssuerName == rInf.ouX509IssuerName ) && - ( xSerialNumberAdapter->toString( xCert->getSerialNumber() ) == rInf.ouX509SerialNumber ) ) - { - bIgnoreThis = true; - break; - } - } - } - - if ( !bIgnoreThis ) - { - // Check if we have a private key for this... - long nCertificateCharacters = mxSecurityEnvironment->getCertificateCharacters( xCert ); - - if ( !( nCertificateCharacters & security::CertificateCharacters::HAS_PRIVATE_KEY ) ) - bIgnoreThis = true; - - } - - if ( bIgnoreThis ) - { - ::comphelper::removeElementAt( maCerts, nCert ); - nCertificates = maCerts.getLength(); - } - } - - // fill list of certificates; the first entry will be selected - for ( sal_Int32 nC = 0; nC < nCertificates; ++nC ) - { - String sEntry( XmlSec::GetContentPart( maCerts[ nC ]->getSubjectName() ) ); - sEntry += '\t'; - sEntry += XmlSec::GetContentPart( maCerts[ nC ]->getIssuerName() ); - sEntry += '\t'; - sEntry += XmlSec::GetDateString( maCerts[ nC ]->getNotValidAfter() ); - SvLBoxEntry* pEntry = maCertLB.InsertEntry( sEntry ); - pEntry->SetUserData( ( void* )(sal_IntPtr)nC ); // missuse user data as index - } - - // enable/disable buttons - CertificateHighlightHdl( NULL ); - mbInitialized = sal_True; - } -} - - -uno::Reference< dcss::security::XCertificate > CertificateChooser::GetSelectedCertificate() -{ - uno::Reference< dcss::security::XCertificate > xCert; - sal_uInt16 nSelected = GetSelectedEntryPos(); - if ( nSelected < maCerts.getLength() ) - xCert = maCerts[ nSelected ]; - return xCert; -} - -IMPL_LINK( CertificateChooser, CertificateHighlightHdl, void*, EMPTYARG ) -{ - sal_Bool bEnable = GetSelectedCertificate().is(); - maViewBtn.Enable( bEnable ); - maOKBtn.Enable( bEnable ); - return 0; -} - -IMPL_LINK( CertificateChooser, CertificateSelectHdl, void*, EMPTYARG ) -{ - EndDialog( RET_OK ); - return 0; -} - -IMPL_LINK( CertificateChooser, ViewButtonHdl, Button*, EMPTYARG ) -{ - ImplShowCertificateDetails(); - return 0; -} - -void CertificateChooser::ImplShowCertificateDetails() -{ - uno::Reference< dcss::security::XCertificate > xCert = GetSelectedCertificate(); - if( xCert.is() ) - { - CertificateViewer aViewer( this, mxSecurityEnvironment, xCert, sal_True ); - aViewer.Execute(); - } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/xmlsecurity/source/dialogs/certificatechooser.src b/xmlsecurity/source/dialogs/certificatechooser.src deleted file mode 100644 index 8bf6ea79f..000000000 --- a/xmlsecurity/source/dialogs/certificatechooser.src +++ /dev/null @@ -1,88 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include "dialogs.hrc" -#include "helpids.hrc" - -ModalDialog RID_XMLSECDLG_CERTCHOOSER -{ - HelpId = HID_XMLSEC_DLG_CERTCHOOSER; - Size = MAP_APPFONT( CS_WIDTH, CS_HEIGHT ); - OutputSize = TRUE; - Closeable = TRUE; - Moveable = TRUE; - SVLook = TRUE; - - Text [ en-US ] = "Select Certificate"; - - FixedText FT_HINT_SELECT - { - Pos = MAP_APPFONT( CS_COL_0, CS_ROW_0 ); - Size = MAP_APPFONT( CS_COL_2-CS_COL_0, RSC_CD_FIXEDTEXT_HEIGHT ); - Text [ en-US ] = "Select the certificate you want to use for signing"; - }; - Control LB_SIGNATURES - { - HelpId = HID_XMLSEC_CTRL_CHOOSESIGNATURES; - Pos = MAP_APPFONT( CS_COL_0, CS_ROW_1 ); - Size = MAP_APPFONT( CS_LB_WIDTH, CS_ROW_2-CS_ROW_1 ); - SVLook = TRUE; - Border = TRUE; - }; - String STR_HEADERBAR - { - Text [ en-US ] = "Issued to\tIssued by\tExpiration date"; - }; - PushButton BTN_VIEWCERT - { - HelpID = "xmlsecurity:PushButton:RID_XMLSECDLG_CERTCHOOSER:BTN_VIEWCERT"; - Pos = MAP_APPFONT( CS_COL_1, CS_ROW_3 ); - Size = MAP_APPFONT( CS_COL_2-CS_COL_1, RSC_CD_PUSHBUTTON_HEIGHT ); - Text [ en-US ] = "View Certificate..."; - }; - FixedLine FL_BOTTOM_SEP - { - Pos = MAP_APPFONT( 0, DLGS_BOTTOM_FL_Y( CS_HEIGHT ) ); - Size = MAP_APPFONT( CS_WIDTH, RSC_CD_FIXEDLINE_HEIGHT ); - }; - OKButton BTN_OK - { - DefButton = TRUE; - Pos = MAP_APPFONT( DLGS_BOTTOM_OK_X( CS_WIDTH ), DLGS_BOTTOM_BTN_Y( CS_HEIGHT ) ); - Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT ); - }; - CancelButton BTN_CANCEL - { - Pos = MAP_APPFONT( DLGS_BOTTOM_CANCEL_X( CS_WIDTH ), DLGS_BOTTOM_BTN_Y( CS_HEIGHT ) ); - Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT ); - }; - HelpButton BTN_HELP - { - Pos = MAP_APPFONT( DLGS_BOTTOM_HELP_X( CS_WIDTH ), DLGS_BOTTOM_BTN_Y( CS_HEIGHT ) ); - Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT ); - }; -}; diff --git a/xmlsecurity/source/dialogs/certificateviewer.cxx b/xmlsecurity/source/dialogs/certificateviewer.cxx deleted file mode 100644 index 34c84fb0e..000000000 --- a/xmlsecurity/source/dialogs/certificateviewer.cxx +++ /dev/null @@ -1,520 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_xmlsecurity.hxx" -#include <xmlsecurity/certificateviewer.hxx> -#include <com/sun/star/security/XCertificate.hpp> - -#include <com/sun/star/security/CertificateCharacters.hpp> -#include <com/sun/star/xml/crypto/XSecurityEnvironment.hpp> -#include <com/sun/star/security/CertificateValidity.hpp> - -#include <unotools/localedatawrapper.hxx> -#include <unotools/datetime.hxx> - -#include "dialogs.hrc" -#include "resourcemanager.hxx" - -/* HACK: disable some warnings for MS-C */ -#ifdef _MSC_VER -#pragma warning (disable : 4355) // 4355: this used in initializer-list -#endif - -using namespace ::com::sun::star; -using namespace ::com::sun::star::uno; -namespace css = ::com::sun::star; - - -namespace -{ - void ShrinkToFit( FixedImage& _rImg ) - { - _rImg.SetSizePixel( _rImg.GetImage().GetSizePixel() ); - } -} - -CertificateViewer::CertificateViewer( - Window* _pParent, - const cssu::Reference< dcss::xml::crypto::XSecurityEnvironment >& _rxSecurityEnvironment, - const cssu::Reference< dcss::security::XCertificate >& _rXCert, sal_Bool bCheckForPrivateKey ) - :TabDialog ( _pParent, XMLSEC_RES( RID_XMLSECDLG_CERTVIEWER ) ) - ,maTabCtrl ( this, XMLSEC_RES( 1 ) ) - ,maOkBtn ( this, XMLSEC_RES( BTN_OK ) ) - ,maHelpBtn ( this, XMLSEC_RES( BTN_HELP ) ) -{ - FreeResource(); - - mbCheckForPrivateKey = bCheckForPrivateKey; - - mxSecurityEnvironment = _rxSecurityEnvironment; - mxCert = _rXCert; - - maTabCtrl.SetTabPage( RID_XMLSECTP_GENERAL, new CertificateViewerGeneralTP( &maTabCtrl, this ) ); - maTabCtrl.SetTabPage( RID_XMLSECTP_DETAILS, new CertificateViewerDetailsTP( &maTabCtrl, this ) ); - maTabCtrl.SetTabPage( RID_XMLSECTP_CERTPATH, new CertificateViewerCertPathTP( &maTabCtrl, this ) ); - maTabCtrl.SetCurPageId( RID_XMLSECTP_GENERAL ); -} - -CertificateViewer::~CertificateViewer() -{ - delete maTabCtrl.GetTabPage( RID_XMLSECTP_CERTPATH ); - delete maTabCtrl.GetTabPage( RID_XMLSECTP_DETAILS ); - delete maTabCtrl.GetTabPage( RID_XMLSECTP_GENERAL ); -} - -CertificateViewerTP::CertificateViewerTP( Window* _pParent, const ResId& _rResId, CertificateViewer* _pDlg ) - :TabPage ( _pParent, _rResId ) - ,mpDlg ( _pDlg ) -{ -} - - -CertificateViewerGeneralTP::CertificateViewerGeneralTP( Window* _pParent, CertificateViewer* _pDlg ) - :CertificateViewerTP ( _pParent, XMLSEC_RES( RID_XMLSECTP_GENERAL ), _pDlg ) - ,maFrameWin ( this, XMLSEC_RES( WIN_FRAME ) ) - ,maCertImg ( this, XMLSEC_RES( IMG_CERT ) ) - ,maCertInfoFI ( this, XMLSEC_RES( FI_CERTINFO ) ) - ,maSep1FL ( this, XMLSEC_RES( FL_SEP1 ) ) - ,maHintNotTrustedFI ( this, XMLSEC_RES( FI_HINTNOTTRUST ) ) - ,maSep2FL ( this, XMLSEC_RES( FL_SEP2 ) ) - ,maIssuedToLabelFI ( this, XMLSEC_RES( FI_ISSTOLABEL ) ) - ,maIssuedToFI ( this, XMLSEC_RES( FI_ISSTO ) ) - ,maIssuedByLabelFI ( this, XMLSEC_RES( FI_ISSBYLABEL ) ) - ,maIssuedByFI ( this, XMLSEC_RES( FI_ISSBY ) ) - ,maValidDateFI ( this, XMLSEC_RES( FI_VALIDDATE ) ) - ,maKeyImg ( this, XMLSEC_RES( IMG_KEY ) ) - ,maHintCorrespPrivKeyFI ( this, XMLSEC_RES( FI_CORRPRIVKEY ) ) -{ - //Verify the certificate - sal_Int32 certStatus = mpDlg->mxSecurityEnvironment->verifyCertificate(mpDlg->mxCert, - Sequence<Reference<css::security::XCertificate> >()); - - bool bCertValid = certStatus == css::security::CertificateValidity::VALID ? true : false; - - if ( !bCertValid ) - { - maCertImg.SetImage( - Image( XMLSEC_RES( IMG_STATE_NOT_VALIDATED ) ) ); - maHintNotTrustedFI.SetText( String( XMLSEC_RES( STR_CERTIFICATE_NOT_VALIDATED ) ) ); - } - - FreeResource(); - - Wallpaper aBack( GetSettings().GetStyleSettings().GetWindowColor() ); - maFrameWin.SetBackground( aBack ); - maCertImg.SetBackground( aBack ); - maCertInfoFI.SetBackground( aBack ); - maSep1FL.SetBackground( aBack ); - maHintNotTrustedFI.SetBackground( aBack ); - maSep2FL.SetBackground( aBack ); - maIssuedToLabelFI.SetBackground( aBack ); - maIssuedToFI.SetBackground( aBack ); - maIssuedByLabelFI.SetBackground( aBack ); - maIssuedByFI.SetBackground( aBack ); - maValidDateFI.SetBackground( aBack ); - maKeyImg.SetBackground( aBack ); - maHintCorrespPrivKeyFI.SetBackground( aBack ); - - // make some bold - Font aFnt( maCertInfoFI.GetFont() ); - aFnt.SetWeight( WEIGHT_BOLD ); - maCertInfoFI.SetFont( aFnt ); - maHintNotTrustedFI.SetFont( aFnt ); - maIssuedToLabelFI.SetFont( aFnt ); - maIssuedByLabelFI.SetFont( aFnt ); - maValidDateFI.SetFont( aFnt ); - - // insert data - cssu::Reference< dcss::security::XCertificate > xCert = mpDlg->mxCert; - - maIssuedToFI.SetText( XmlSec::GetContentPart( xCert->getSubjectName() ) ); - maIssuedByFI.SetText( XmlSec::GetContentPart( xCert->getIssuerName() ) ); - - // dynamic length because of the different languages - long nWidth1 = maIssuedToLabelFI.GetTextWidth( maIssuedToLabelFI.GetText() ); - long nWidth2 = maIssuedByLabelFI.GetTextWidth( maIssuedByLabelFI.GetText() ); - long nNewWidth = Max( nWidth1, nWidth2 ) + 5; - Size aNewSize = maIssuedToLabelFI.GetSizePixel(); - aNewSize.Width() = nNewWidth; - maIssuedToLabelFI.SetSizePixel( aNewSize ); - maIssuedByLabelFI.SetSizePixel( aNewSize ); - long nNewX = maIssuedToLabelFI.GetPosPixel().X() + nNewWidth + 1; - Point aNewPos = maIssuedToFI.GetPosPixel(); - aNewPos.X() = nNewX; - maIssuedToFI.SetPosPixel( aNewPos ); - aNewPos = maIssuedByFI.GetPosPixel(); - aNewPos.X() = nNewX; - maIssuedByFI.SetPosPixel( aNewPos ); - nNewWidth = maValidDateFI.GetSizePixel().Width() - nNewX; - aNewSize = maIssuedToFI.GetSizePixel(); - aNewSize.Width() = nNewWidth; - maIssuedToFI.SetSizePixel( aNewSize ); - maIssuedByFI.SetSizePixel( aNewSize ); - - DateTime aDateTimeStart; - DateTime aDateTimeEnd; - utl::typeConvert( xCert->getNotValidBefore(), aDateTimeStart ); - utl::typeConvert( xCert->getNotValidAfter(), aDateTimeEnd ); - String sText = maValidDateFI.GetText(); - sText.SearchAndReplace( String::CreateFromAscii( "%SDATE%" ), - GetSettings().GetUILocaleDataWrapper().getDate( aDateTimeStart.GetDate() ) ); - sText.SearchAndReplace( String::CreateFromAscii( "%EDATE%" ), - GetSettings().GetUILocaleDataWrapper().getDate( aDateTimeEnd.GetDate() ) ); - maValidDateFI.SetText( sText ); - - // adjust position of fixed text depending on image sizes - ShrinkToFit( maCertImg ); - ShrinkToFit( maKeyImg ); - XmlSec::AlignAfterImage( maCertImg, maCertInfoFI, 12 ); - XmlSec::AlignAfterImage( maKeyImg, maHintCorrespPrivKeyFI, 12 ); - - // Check if we have the private key... - sal_Bool bHasPrivateKey = sal_False; - // #i41270# Check only if we have that certificate in our security environment - if ( _pDlg->mbCheckForPrivateKey ) - { - long nCertificateCharacters = _pDlg->mxSecurityEnvironment->getCertificateCharacters( xCert ); - bHasPrivateKey = ( nCertificateCharacters & security::CertificateCharacters::HAS_PRIVATE_KEY ) ? sal_True : sal_False; - } - if ( !bHasPrivateKey ) - { - maKeyImg.Hide(); - maHintCorrespPrivKeyFI.Hide(); - } -} - -void CertificateViewerGeneralTP::ActivatePage() -{ - -} - - -struct Details_UserDatat -{ - String maTxt; - bool mbFixedWidthFont; - - inline Details_UserDatat( const String& _rTxt, bool _bFixedWidthFont ); -}; - -inline Details_UserDatat::Details_UserDatat( const String& _rTxt, bool _bFixedWidthFont ) - :maTxt ( _rTxt ) - ,mbFixedWidthFont ( _bFixedWidthFont ) -{ -} - - -void CertificateViewerDetailsTP::Clear( void ) -{ - maElementML.SetText( String() ); - sal_uLong i = 0; - SvLBoxEntry* pEntry = maElementsLB.GetEntry( i ); - while( pEntry ) - { - delete ( Details_UserDatat* ) pEntry->GetUserData(); - ++i; - pEntry = maElementsLB.GetEntry( i ); - } - - maElementsLB.Clear(); -} - -void CertificateViewerDetailsTP::InsertElement( const String& _rField, const String& _rValue, - const String& _rDetails, bool _bFixedWidthFont ) -{ - SvLBoxEntry* pEntry = maElementsLB.InsertEntry( _rField ); - maElementsLB.SetEntryText( _rValue, pEntry, 1 ); - pEntry->SetUserData( ( void* ) new Details_UserDatat( _rDetails, _bFixedWidthFont ) ); -} - -CertificateViewerDetailsTP::CertificateViewerDetailsTP( Window* _pParent, CertificateViewer* _pDlg ) - :CertificateViewerTP ( _pParent, XMLSEC_RES( RID_XMLSECTP_DETAILS ), _pDlg ) - ,m_aElementsLBContainer(this, XMLSEC_RES(LB_ELEMENTS)) - ,maElementsLB(m_aElementsLBContainer) - ,maElementML ( this, XMLSEC_RES( ML_ELEMENT ) ) - ,maStdFont ( maElementML.GetControlFont() ) - ,maFixedWidthFont ( OutputDevice::GetDefaultFont( DEFAULTFONT_UI_FIXED, LANGUAGE_DONTKNOW, DEFAULTFONT_FLAGS_ONLYONE, this ) ) -{ - WinBits nStyle = maElementsLB.GetStyle(); - nStyle &= ~WB_HSCROLL; - maElementsLB.SetStyle( nStyle ); - - maFixedWidthFont.SetHeight( maStdFont.GetHeight() ); - - static long nTabs[] = { 2, 0, 30*CS_LB_WIDTH/100 }; - maElementsLB.SetTabs( &nTabs[ 0 ] ); - maElementsLB.InsertHeaderEntry( String( XMLSEC_RES( STR_HEADERBAR ) ) ); - - // fill list box - Reference< security::XCertificate > xCert = mpDlg->mxCert; - sal_uInt16 nLineBreak = 16; - const char* pHexSep = " "; - String aLBEntry; - String aDetails; - // Certificate Versions are reported wrong (#i35107#) - 0 == "V1", 1 == "V2", ..., n = "V(n+1)" - aLBEntry = String::CreateFromAscii( "V" ); - aLBEntry += String::CreateFromInt32( xCert->getVersion() + 1 ); - InsertElement( String( XMLSEC_RES( STR_VERSION ) ), aLBEntry, aLBEntry ); - Sequence< sal_Int8 > aSeq = xCert->getSerialNumber(); - aLBEntry = XmlSec::GetHexString( aSeq, pHexSep ); - aDetails = XmlSec::GetHexString( aSeq, pHexSep, nLineBreak ); - InsertElement( String( XMLSEC_RES( STR_SERIALNUM ) ), aLBEntry, aDetails, true ); - - std::pair< ::rtl::OUString, ::rtl::OUString> pairIssuer = - XmlSec::GetDNForCertDetailsView(xCert->getIssuerName()); - aLBEntry = pairIssuer.first; - aDetails = pairIssuer.second; - InsertElement( String( XMLSEC_RES( STR_ISSUER ) ), aLBEntry, aDetails ); - - DateTime aDateTime; - utl::typeConvert( xCert->getNotValidBefore(), aDateTime ); - aLBEntry = GetSettings().GetUILocaleDataWrapper().getDate( aDateTime.GetDate() ); - aLBEntry += String::CreateFromAscii( " " ); - aLBEntry += GetSettings().GetUILocaleDataWrapper().getTime( aDateTime.GetTime() ); - InsertElement( String( XMLSEC_RES( STR_VALIDFROM ) ), aLBEntry, aLBEntry ); - utl::typeConvert( xCert->getNotValidAfter(), aDateTime ); - aLBEntry = GetSettings().GetUILocaleDataWrapper().getDate( aDateTime.GetDate() ); - aLBEntry += String::CreateFromAscii( " " ); - aLBEntry += GetSettings().GetUILocaleDataWrapper().getTime( aDateTime.GetTime() ); - InsertElement( String( XMLSEC_RES( STR_VALIDTO ) ), aLBEntry, aLBEntry ); - - std::pair< ::rtl::OUString, ::rtl::OUString > pairSubject = - XmlSec::GetDNForCertDetailsView(xCert->getSubjectName()); - aLBEntry = pairSubject.first; - aDetails = pairSubject.second; - InsertElement( String( XMLSEC_RES( STR_SUBJECT ) ), aLBEntry, aDetails ); - - aLBEntry = aDetails = xCert->getSubjectPublicKeyAlgorithm(); - InsertElement( String( XMLSEC_RES( STR_SUBJECT_PUBKEY_ALGO ) ), aLBEntry, aDetails ); - aSeq = xCert->getSubjectPublicKeyValue(); - aLBEntry = XmlSec::GetHexString( aSeq, pHexSep ); - aDetails = XmlSec::GetHexString( aSeq, pHexSep, nLineBreak ); - InsertElement( String( XMLSEC_RES( STR_SUBJECT_PUBKEY_VAL ) ), aLBEntry, aDetails, true ); - - aLBEntry = aDetails = xCert->getSignatureAlgorithm(); - InsertElement( String( XMLSEC_RES( STR_SIGNATURE_ALGO ) ), aLBEntry, aDetails ); - - aSeq = xCert->getSHA1Thumbprint(); - aLBEntry = XmlSec::GetHexString( aSeq, pHexSep ); - aDetails = XmlSec::GetHexString( aSeq, pHexSep, nLineBreak ); - InsertElement( String( XMLSEC_RES( STR_THUMBPRINT_SHA1 ) ), aLBEntry, aDetails, true ); - - aSeq = xCert->getMD5Thumbprint(); - aLBEntry = XmlSec::GetHexString( aSeq, pHexSep ); - aDetails = XmlSec::GetHexString( aSeq, pHexSep, nLineBreak ); - InsertElement( String( XMLSEC_RES( STR_THUMBPRINT_MD5 ) ), aLBEntry, aDetails, true ); - - FreeResource(); - - maElementsLB.SetSelectHdl( LINK( this, CertificateViewerDetailsTP, ElementSelectHdl ) ); -} - -CertificateViewerDetailsTP::~CertificateViewerDetailsTP() -{ - Clear(); -} - -void CertificateViewerDetailsTP::ActivatePage() -{ -} - -IMPL_LINK( CertificateViewerDetailsTP, ElementSelectHdl, void*, EMPTYARG ) -{ - SvLBoxEntry* pEntry = maElementsLB.FirstSelected(); - String aElementText; - bool bFixedWidthFont; - if( pEntry ) - { - const Details_UserDatat* p = ( Details_UserDatat* ) pEntry->GetUserData(); - aElementText = p->maTxt; - bFixedWidthFont = p->mbFixedWidthFont; - } - else - bFixedWidthFont = false; - - maElementML.SetFont( bFixedWidthFont? maFixedWidthFont : maStdFont ); - maElementML.SetControlFont( bFixedWidthFont? maFixedWidthFont : maStdFont ); - maElementML.SetText( aElementText ); - - return 0; -} - -struct CertPath_UserData -{ - cssu::Reference< dcss::security::XCertificate > mxCert; - String maStatus; - bool mbValid; - - CertPath_UserData( cssu::Reference< dcss::security::XCertificate > xCert, bool bValid): - mxCert(xCert), - mbValid(bValid) - { - } -}; - - -CertificateViewerCertPathTP::CertificateViewerCertPathTP( Window* _pParent, CertificateViewer* _pDlg ) - :CertificateViewerTP ( _pParent, XMLSEC_RES( RID_XMLSECTP_CERTPATH ), _pDlg ) - ,maCertPathFT ( this, XMLSEC_RES( FT_CERTPATH ) ) - ,maCertPathLB ( this, XMLSEC_RES( LB_SIGNATURES ) ) - ,maViewCertPB ( this, XMLSEC_RES( BTN_VIEWCERT ) ) - ,maCertStatusFT ( this, XMLSEC_RES( FT_CERTSTATUS ) ) - ,maCertStatusML ( this, XMLSEC_RES( ML_CERTSTATUS ) ) - ,mpParent ( _pDlg ) - ,mbFirstActivateDone ( false ) - ,maCertImage ( XMLSEC_RES( IMG_CERT_SMALL ) ) - ,maCertNotValidatedImage( XMLSEC_RES( IMG_CERT_NOTVALIDATED_SMALL ) ) - ,msCertOK ( XMLSEC_RES( STR_PATH_CERT_OK ) ) - ,msCertNotValidated ( XMLSEC_RES( STR_PATH_CERT_NOT_VALIDATED ) ) - -{ - FreeResource(); - - maCertPathLB.SetNodeDefaultImages(); - maCertPathLB.SetSublistOpenWithLeftRight(); - maCertPathLB.SetSelectHdl( LINK( this, CertificateViewerCertPathTP, CertSelectHdl ) ); - maViewCertPB.SetClickHdl( LINK( this, CertificateViewerCertPathTP, ViewCertHdl ) ); - - // check if buttontext is to wide - const long nOffset = 10; - String sText = maViewCertPB.GetText(); - long nTxtW = maViewCertPB.GetTextWidth( sText ); - if ( sText.Search( '~' ) == STRING_NOTFOUND ) - nTxtW += nOffset; - long nBtnW = maViewCertPB.GetSizePixel().Width(); - if ( nTxtW > nBtnW ) - { - // broaden the button - long nDelta = nTxtW - nBtnW; - Size aNewSize = maViewCertPB.GetSizePixel(); - aNewSize.Width() += nDelta; - maViewCertPB.SetSizePixel( aNewSize ); - // and give it a new position - Point aNewPos = maViewCertPB.GetPosPixel(); - aNewPos.X() -= nDelta; - maViewCertPB.SetPosPixel( aNewPos ); - } -} - -CertificateViewerCertPathTP::~CertificateViewerCertPathTP() -{ - Clear(); -} - -void CertificateViewerCertPathTP::ActivatePage() -{ - if ( !mbFirstActivateDone ) - { - mbFirstActivateDone = true; - Sequence< Reference< security::XCertificate > > aCertPath = - mpParent->mxSecurityEnvironment->buildCertificatePath( mpParent->mxCert ); - const Reference< security::XCertificate >* pCertPath = aCertPath.getConstArray(); - - String aState; - sal_Int32 i, nCnt = aCertPath.getLength(); - SvLBoxEntry* pParent = NULL; - for( i = nCnt; i; ) - { - const Reference< security::XCertificate > rCert = pCertPath[ --i ]; - String sName = XmlSec::GetContentPart( rCert->getSubjectName() ); - //Verify the certificate - sal_Int32 certStatus = mpDlg->mxSecurityEnvironment->verifyCertificate(rCert, - Sequence<Reference<css::security::XCertificate> >()); - bool bCertValid = certStatus == css::security::CertificateValidity::VALID ? true : false; - pParent = InsertCert( pParent, sName, rCert, bCertValid); - } - - maCertPathLB.Select( pParent ); - maViewCertPB.Disable(); // Own certificate selected - - while( pParent ) - { - maCertPathLB.Expand( pParent ); - pParent = maCertPathLB.GetParent( pParent ); - } - - CertSelectHdl( NULL ); - } -} - -IMPL_LINK( CertificateViewerCertPathTP, ViewCertHdl, void*, EMPTYARG ) -{ - SvLBoxEntry* pEntry = maCertPathLB.FirstSelected(); - if( pEntry ) - { - CertificateViewer aViewer( this, mpDlg->mxSecurityEnvironment, ((CertPath_UserData*)pEntry->GetUserData())->mxCert, sal_False ); - aViewer.Execute(); - } - - return 0; -} - -IMPL_LINK( CertificateViewerCertPathTP, CertSelectHdl, void*, EMPTYARG ) -{ - String sStatus; - SvLBoxEntry* pEntry = maCertPathLB.FirstSelected(); - if( pEntry ) - { - CertPath_UserData* pData = (CertPath_UserData*) pEntry->GetUserData(); - if ( pData ) - sStatus = pData->mbValid ? msCertOK : msCertNotValidated; - } - - maCertStatusML.SetText( sStatus ); - maViewCertPB.Enable( pEntry && ( pEntry != maCertPathLB.Last() ) ); - return 0; -} - -void CertificateViewerCertPathTP::Clear( void ) -{ - maCertStatusML.SetText( String() ); - sal_uLong i = 0; - SvLBoxEntry* pEntry = maCertPathLB.GetEntry( i ); - while( pEntry ) - { - delete ( CertPath_UserData* ) pEntry->GetUserData(); - ++i; - pEntry = maCertPathLB.GetEntry( i ); - } - - maCertPathLB.Clear(); -} - -SvLBoxEntry* CertificateViewerCertPathTP::InsertCert( - SvLBoxEntry* _pParent, const String& _rName, cssu::Reference< dcss::security::XCertificate > rxCert, - bool bValid) -{ - Image aImage = bValid ? maCertImage : maCertNotValidatedImage; - SvLBoxEntry* pEntry = maCertPathLB.InsertEntry( _rName, aImage, aImage, _pParent ); - pEntry->SetUserData( ( void* ) new CertPath_UserData( rxCert, bValid ) ); - - return pEntry; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/xmlsecurity/source/dialogs/certificateviewer.src b/xmlsecurity/source/dialogs/certificateviewer.src deleted file mode 100644 index 3f9095be3..000000000 --- a/xmlsecurity/source/dialogs/certificateviewer.src +++ /dev/null @@ -1,325 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#include "dialogs.hrc" -#include "helpids.hrc" - -TabDialog RID_XMLSECDLG_CERTVIEWER -{ - HelpID = HID_XMLSEC_DLG_CERTVIEWER; - Size = MAP_APPFONT( TD_WIDTH, TD_HEIGHT ); - OutputSize = TRUE; - Closeable = TRUE; - Moveable = TRUE; - SVLook = TRUE; - - Text [ en-US ] = "View Certificate"; - TabControl 1 - { - Pos = MAP_APPFONT( TD_SP_INNERBORDER_LEFT, TD_SP_INNERBORDER_TOP ); - Size = MAP_APPFONT( TP_WIDTH, TP_HEIGHT+RIDDER_HEIGHT ); - SVLook = TRUE ; - PageList = - { - PageItem - { - Identifier = RID_XMLSECTP_GENERAL; - Text [ en-US ] = "General"; - }; - PageItem - { - Identifier = RID_XMLSECTP_DETAILS; - Text [ en-US ] = "Details"; - }; - PageItem - { - Identifier = RID_XMLSECTP_CERTPATH; - Text [ en-US ] = "Certification Path"; - }; - }; - }; - OKButton BTN_OK - { - Pos = MAP_APPFONT( CV_COL_A, CV_ROW_A ); - Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT ); - DefButton = TRUE; - }; - HelpButton BTN_HELP - { - Pos = MAP_APPFONT( CV_COL_C, CV_ROW_A ); - Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT ); - }; -}; - -TabPage RID_XMLSECTP_GENERAL -{ - HelpId = HID_XMLSEC_TP_GENERAL; - Size = MAP_APPFONT( TP_WIDTH, TP_HEIGHT ); - OutputSize = TRUE; - Hide = TRUE; - SVLook = TRUE; - Window WIN_FRAME - { - SVLook = TRUE; - Border = TRUE; - Pos = MAP_APPFONT( CV_COL_0, CV_ROW_0 ); - Size = MAP_APPFONT( CV_CONT_WIDTH, CV_CONT_HEIGHT ); - }; - FixedImage IMG_CERT - { - Pos = MAP_APPFONT( CW_COL_0, CW_ROW_0 ); - Size = MAP_APPFONT( IMG1_WIDTH, IMG1_HEIGHT ); - Fixed = Image - { - ImageBitmap = Bitmap { File = "certificate_40x56.png"; }; - MaskColor = STD_MASKCOLOR; - }; - }; - FixedText FI_CERTINFO - { - Pos = MAP_APPFONT( CW_COL_3, CW_ROW_1 ); - Size = MAP_APPFONT( CW_COL_5-CW_COL_3, RSC_CD_FIXEDTEXT_HEIGHT ); - Text [ en-US ] = " Certificate Information"; - }; - FixedLine FL_SEP1 - { - Pos = MAP_APPFONT( CW_COL_0, CW_ROW_3 ); - Size = MAP_APPFONT( CW_COL_5-CW_COL_0, RSC_CD_FIXEDLINE_HEIGHT ); - }; - FixedText FI_HINTNOTTRUST - { - Pos = MAP_APPFONT( CW_COL_1, CW_ROW_4 ); - Size = MAP_APPFONT( CW_COL_5a-CW_COL_1, CW_ROW_4a-CW_ROW_4 ); - WordBreak = TRUE; - Text [ en-US ] = "This certificate is intended for the following purpose(s):"; - }; - FixedLine FL_SEP2 - { - Pos = MAP_APPFONT( CW_COL_0, CW_ROW_5 ); - Size = MAP_APPFONT( CW_COL_5-CW_COL_0, RSC_CD_FIXEDLINE_HEIGHT ); - }; - FixedText FI_ISSTOLABEL - { - Pos = MAP_APPFONT( CW_COL_1, CW_ROW_6 ); - Size = MAP_APPFONT( CW_COL_4-CW_COL_1-1, RSC_CD_FIXEDTEXT_HEIGHT ); - Text [ en-US ] = "Issued to:"; - }; - FixedText FI_ISSTO - { - Pos = MAP_APPFONT( CW_COL_4, CW_ROW_6 ); - Size = MAP_APPFONT( CW_COL_5-CW_COL_4, RSC_CD_FIXEDTEXT_HEIGHT ); - }; - FixedText FI_ISSBYLABEL - { - Pos = MAP_APPFONT( CW_COL_1, CW_ROW_7 ); - Size = MAP_APPFONT( CW_COL_4-CW_COL_1-1, RSC_CD_FIXEDTEXT_HEIGHT ); - Text [ en-US ] = "Issued by:"; - }; - FixedText FI_ISSBY - { - Pos = MAP_APPFONT( CW_COL_4, CW_ROW_7 ); - Size = MAP_APPFONT( CW_COL_5-CW_COL_4, RSC_CD_FIXEDTEXT_HEIGHT ); - }; - FixedText FI_VALIDDATE - { - Pos = MAP_APPFONT( CW_COL_1, CW_ROW_8 ); - Size = MAP_APPFONT( CW_COL_5-CW_COL_1-1, RSC_CD_FIXEDTEXT_HEIGHT ); - Text [ en-US ] = "Valid from %SDATE% to %EDATE%"; - }; - FixedImage IMG_KEY - { - Pos = MAP_APPFONT( CW_COL_0, CW_ROW_9 ); - Size = MAP_APPFONT( IMG2_WIDTH, IMG2_HEIGHT ); - Fixed = Image - { - ImageBitmap = Bitmap { File = "key_12.png"; }; - MaskColor = STD_MASKCOLOR; - }; - }; - FixedText FI_CORRPRIVKEY - { - Pos = MAP_APPFONT( CW_COL_1a, CW_ROW_10 ); - Size = MAP_APPFONT( CW_COL_5-CW_COL_1a, RSC_CD_FIXEDTEXT_HEIGHT ); - Text [ en-US ] = "You have a private key that corresponds to this certificate."; - }; - String STR_CERTIFICATE_NOT_VALIDATED - { - Text [ en-US ] = "The certificate could not be validated."; - }; - Image IMG_STATE_NOT_VALIDATED - { - ImageBitmap = Bitmap { File = "notcertificate_40x56.png"; }; - MaskColor = STD_MASKCOLOR; - }; -}; - -TabPage RID_XMLSECTP_DETAILS -{ - HelpId = HID_XMLSEC_TP_DETAILS; - Size = MAP_APPFONT( TP_WIDTH, TP_HEIGHT ); - OutputSize = TRUE; - Hide = TRUE; - SVLook = TRUE; - Control LB_ELEMENTS - { - HelpId = HID_XMLSEC_CTRL_ELEMENTS; - Pos = MAP_APPFONT( CV_COL_0, CV_ROW_0 ); - Size = MAP_APPFONT( CV_CONT_WIDTH, CV_ROW_1-CV_ROW_0 ); - SVLook = TRUE; - Border = TRUE; - }; - String STR_HEADERBAR - { - Text [ en-US ] = "Field\tValue"; - }; - MultiLineEdit ML_ELEMENT - { - HelpID = "xmlsecurity:MultiLineEdit:RID_XMLSECTP_DETAILS:ML_ELEMENT"; - Pos = MAP_APPFONT( CV_COL_0, CV_ROW_2 ); - Size = MAP_APPFONT( CV_CONT_WIDTH, CV_ROW_3-CV_ROW_2 ); - ReadOnly = TRUE; - Border = TRUE; - VSCROLL = TRUE; - }; - String STR_VERSION - { - Text [ en-US ] = "Version"; - }; - String STR_SERIALNUM - { - Text [ en-US ] = "Serial Number"; - }; - String STR_SIGALGORITHM - { - Text [ en-US ] = "Signature Algorithm"; - }; - String STR_ISSUER - { - Text [ en-US ] = "Issuer"; - }; - String STR_ISSUER_ID - { - Text [ en-US ] = "Issuer Unique ID"; - }; - String STR_VALIDFROM - { - Text [ en-US ] = "Valid From"; - }; - String STR_VALIDTO - { - Text [ en-US ] = "Valid to"; - }; - String STR_SUBJECT - { - Text [ en-US ] = "Subject"; - }; - String STR_SUBJECT_ID - { - Text [ en-US ] = "Subject Unique ID"; - }; - String STR_SUBJECT_PUBKEY_ALGO - { - Text [ en-US ] = "Subject Algorithm"; - }; - String STR_SUBJECT_PUBKEY_VAL - { - Text [ en-US ] = "Public Key"; - }; - String STR_SIGNATURE_ALGO - { - Text [ en-US ] = "Signature Algorithm"; - }; - String STR_THUMBPRINT_SHA1 - { - Text [ en-US ] = "Thumbprint SHA1"; - }; - String STR_THUMBPRINT_MD5 - { - Text [ en-US ] = "Thumbprint MD5"; - }; -}; - -TabPage RID_XMLSECTP_CERTPATH -{ - HelpId = HID_XMLSEC_TP_CERTPATH; - Size = MAP_APPFONT( TP_WIDTH, TP_HEIGHT ); - OutputSize = TRUE; - Hide = TRUE; - SVLook = TRUE; - FixedText FT_CERTPATH - { - Pos = MAP_APPFONT( CV_COL_0, CVP_ROW_0 ); - Size = MAP_APPFONT( CV_CONT_WIDTH, RSC_CD_FIXEDTEXT_HEIGHT ); - Text [ en-US ] = "Certification path"; - }; - Control LB_SIGNATURES - { - HelpId = HID_XMLSEC_CTRL_VIEWSIGNATURES; - Pos = MAP_APPFONT( CV_COL_0, CVP_ROW_1 ); - Size = MAP_APPFONT( CV_CONT_WIDTH, REST_HEIGHT/3*2 ); - SVLook = TRUE; - Border = TRUE; - }; - PushButton BTN_VIEWCERT - { - HelpID = "xmlsecurity:PushButton:RID_XMLSECTP_CERTPATH:BTN_VIEWCERT"; - Pos = MAP_APPFONT( CV_COL_1-(CV_COL_B-CV_COL_A), CVP_ROW_2 ); - Size = MAP_APPFONT( CV_COL_B-CV_COL_A, RSC_CD_PUSHBUTTON_HEIGHT ); - Text [ en-US ] = "View Certificate..."; - }; - FixedText FT_CERTSTATUS - { - Pos = MAP_APPFONT( CV_COL_0, CVP_ROW_3 ); - Size = MAP_APPFONT( CV_CONT_WIDTH, RSC_CD_FIXEDTEXT_HEIGHT ); - Text [ en-US ] = "Certification status"; - }; - MultiLineEdit ML_CERTSTATUS - { - HelpID = "xmlsecurity:MultiLineEdit:RID_XMLSECTP_CERTPATH:ML_CERTSTATUS"; - Pos = MAP_APPFONT( CV_COL_0, CVP_ROW_4 ); - Size = MAP_APPFONT( CV_CONT_WIDTH, REST_HEIGHT/3 ); - ReadOnly = TRUE; - Border = TRUE; - }; - Image IMG_CERT_SMALL - { - ImageBitmap = Bitmap { File = "certificate_16.png"; }; - MaskColor = STD_MASKCOLOR; - }; - Image IMG_CERT_NOTVALIDATED_SMALL - { - ImageBitmap = Bitmap { File = "notcertificate_16.png"; }; - MaskColor = STD_MASKCOLOR; - }; - String STR_PATH_CERT_OK - { - Text [ en-US ] = "The certificate is OK."; - }; - String STR_PATH_CERT_NOT_VALIDATED - { - Text [ en-US ] = "The certificate could not be validated."; - }; -}; diff --git a/xmlsecurity/source/dialogs/dialogs.hrc b/xmlsecurity/source/dialogs/dialogs.hrc deleted file mode 100644 index a7c547d1e..000000000 --- a/xmlsecurity/source/dialogs/dialogs.hrc +++ /dev/null @@ -1,344 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DIALOGS_HRC -#define _DIALOGS_HRC - -#include <svtools/controldims.hrc> -#include <xmlsecurity/global.hrc> - -#define STD_MASKCOLOR Color{Red=0xffff;Green=0x0000;Blue=0xffff;} - -#define FL_BOTTOM_SEP 50 -#define BTN_OK 51 -#define BTN_CANCEL 52 -#define BTN_HELP 53 -#define LB_SIGNATURES 54 -#define BTN_VIEWCERT 55 -#define STR_HEADERBAR 56 -#define BTN_RESET 57 -#define STR_VALID_SIGNATURE 58 -#define STR_NO_INFO_TO_VERIFY 59 -#define STR_INVALID_SIGNATURE 60 - -// --------- general metrics --------- -#define DLGS_WIDTH 287 -#define DLGS_HEIGHT 195 -// --------- ... for tab dialogs ----- -#define TP_WIDTH 260 -#define TP_HEIGHT 185 -#define RIDDER_HEIGHT (RSC_CD_PUSHBUTTON_HEIGHT) -#define TD_SP_INNERBORDER_LEFT 3 -#define TD_SP_INNERBORDER_RIGHT 3 -#define TD_SP_INNERBORDER_TOP 3 -#define TD_SP_INNERBORDER_BOTTOM 3 -#define TD_WIDTH (TP_WIDTH+RSC_SP_DLG_INNERBORDER_LEFT+RSC_SP_DLG_INNERBORDER_RIGHT) -#define TD_HEIGHT (TP_HEIGHT+TD_SP_INNERBORDER_TOP+2*TD_SP_INNERBORDER_BOTTOM+RSC_CD_PUSHBUTTON_HEIGHT+RIDDER_HEIGHT) - -#define SEP_FL_SPACE_Y 6 -#define SEP_FL_ADJ_Y(val) (val-3) -#define DLGS_BOTTOM_BTN_L(dlgh) (dlgh-RSC_SP_DLG_INNERBORDER_BOTTOM) -#define DLGS_BOTTOM_BTN_Y(dlgh) (DLGS_BOTTOM_BTN_L(dlgh)-RSC_CD_PUSHBUTTON_HEIGHT) -#define DLGS_BOTTOM_FL_Y(dlgh) (DLGS_BOTTOM_BTN_Y(dlgh)-SEP_FL_SPACE_Y-5) -#define DLGS_BOTTOM_LAST_CTRL_L(dlgh) (DLGS_BOTTOM_BTN_Y(dlgh)-2*SEP_FL_SPACE_Y-3) -#define DLGS_BOTTOM_HELP_X(dlgw) (dlgw-RSC_SP_DLG_INNERBORDER_RIGHT-RSC_CD_PUSHBUTTON_WIDTH) -#define DLGS_BOTTOM_CANCEL_X(dlgw) (DLGS_BOTTOM_HELP_X(dlgw)-RSC_SP_CTRL_X-RSC_CD_PUSHBUTTON_WIDTH) -#define DLGS_BOTTOM_OK_X(dlgw) (DLGS_BOTTOM_CANCEL_X(dlgw)-RSC_SP_CTRL_DESC_X-RSC_CD_PUSHBUTTON_WIDTH) - - -// --------- dialog Digital Signatures --------- -#define BTN_ADDCERT 2 -#define BTN_REMOVECERT 3 -#define FT_HINT_DOC 4 -#define FT_HINT_BASIC 5 -#define FT_HINT_PACK 6 -#define IMG_STATE_VALID 7 -#define FI_STATE_VALID 8 -#define IMG_STATE_BROKEN 9 -#define FI_STATE_BROKEN 10 -#define IMG_STATE_NOTVALIDATED 11 -#define FI_STATE_NOTVALIDATED 12 -#define FI_STATE_OLDSIGNATURE 16 - -#define DS_BTNWIDTH_1 70 -#define DS_BTNSPACE_X RSC_SP_CTRL_X -#define DS_WIDTH (RSC_SP_DLG_INNERBORDER_LEFT+RSC_SP_DLG_INNERBORDER_RIGHT+2*DS_BTNSPACE_X+3*DS_BTNWIDTH_1) -#define DS_HEIGHT (DLGS_WIDTH*2/3) - -#define DS_COL_0 RSC_SP_DLG_INNERBORDER_LEFT - -#define DS_COL_1 DS_COL_0 -#define DS_COL_2 (DS_COL_1+DS_BTNWIDTH_1) -#define DS_COL_3 (DS_COL_2+DS_BTNSPACE_X) -#define DS_COL_4 (DS_COL_3+DS_BTNWIDTH_1) -#define DS_COL_5 (DS_COL_4+DS_BTNSPACE_X) - -#define DS_COL_7 (DS_WIDTH-RSC_SP_DLG_INNERBORDER_RIGHT) -#define DS_COL_6 DS_COL_7 - -#define DS_ROW_0 RSC_SP_DLG_INNERBORDER_TOP -#define DS_ROW_1 (DS_ROW_0+RSC_CD_FIXEDTEXT_HEIGHT+RSC_SP_CTRL_DESC_X) -#define DS_ROW_7 DLGS_BOTTOM_BTN_L(DS_HEIGHT) -#define DS_ROW_6 DLGS_BOTTOM_BTN_Y(DS_HEIGHT) -#define DS_ROW_5 DLGS_BOTTOM_FL_Y(DS_HEIGHT) -#define DS_ROW_4 DLGS_BOTTOM_LAST_CTRL_L(DS_HEIGHT) -#define DS_ROW_3 (DS_ROW_4-RSC_CD_PUSHBUTTON_HEIGHT) -#define DS_ROW_2A (DS_ROW_3-RSC_CD_FIXEDTEXT_HEIGHT-RSC_SP_CTRL_Y) -#define DS_ROW_2 (DS_ROW_2A-RSC_SP_CTRL_GROUP_Y) - -#define DS_LB_WIDTH (DS_COL_7-DS_COL_0) - -// --------- dialog Ceritficate chooser --------- -#define FT_HINT_SELECT 1 - -#define CS_WIDTH DLGS_WIDTH -#define CS_HEIGHT DLGS_HEIGHT -#define CS_BTNWIDTH_1 DS_BTNWIDTH_1 - -#define CS_COL_0 RSC_SP_DLG_INNERBORDER_LEFT -#define CS_COL_2 (CS_WIDTH-RSC_SP_DLG_INNERBORDER_RIGHT) -#define CS_COL_1 (CS_COL_2-CS_BTNWIDTH_1) - -#define CS_ROW_0 RSC_SP_DLG_INNERBORDER_TOP -#define CS_ROW_1 (CS_ROW_0+RSC_CD_FIXEDTEXT_HEIGHT+RSC_SP_CTRL_DESC_X) -#define CS_ROW_4 DLGS_BOTTOM_LAST_CTRL_L(CS_HEIGHT) -#define CS_ROW_3 (CS_ROW_4-RSC_CD_PUSHBUTTON_HEIGHT) -#define CS_ROW_2 (CS_ROW_3-RSC_SP_CTRL_Y) - -#define CS_LB_WIDTH (CS_COL_2-CS_COL_0) - -// --------- tab dialog Certificate viewer --------- - -#define CV_COL_0 TD_SP_INNERBORDER_LEFT -#define CV_COL_1 (TP_WIDTH-RSC_SP_TBPG_INNERBORDER_RIGHT) -#define CV_ROW_0 RSC_SP_TBPG_INNERBORDER_TOP -#define CV_ROW_3 (TP_HEIGHT-RSC_SP_TBPG_INNERBORDER_BOTTOM) -#define CV_CONT_WIDTH (CV_COL_1-CV_COL_0) -#define CV_CONT_HEIGHT (CV_ROW_3-CV_ROW_0) -#define CV_ROW_1 (CV_ROW_0+2*CV_CONT_HEIGHT/3) -#define CV_ROW_2 (CV_ROW_1+RSC_SP_CTRL_GROUP_Y) - -#define CV_COL_D (TD_WIDTH-TD_SP_INNERBORDER_RIGHT) -#define CV_COL_C (CV_COL_D-RSC_CD_PUSHBUTTON_WIDTH) -#define CV_COL_B (CV_COL_C-RSC_SP_CTRL_X) -#define CV_COL_A (CV_COL_B-RSC_CD_PUSHBUTTON_WIDTH) - -#define CV_ROW_B (TD_HEIGHT-TD_SP_INNERBORDER_BOTTOM) -#define CV_ROW_A (CV_ROW_B-RSC_CD_PUSHBUTTON_HEIGHT) - -// --------- tab page Certificate viewer - General --------- -#define WIN_FRAME 2 -#define IMG_CERT 3 -#define FI_CERTINFO 4 -#define FL_SEP1 5 -#define FI_HINTNOTTRUST 6 -#define FL_SEP2 7 -#define FI_ISSTOLABEL 8 -#define FI_ISSTO 9 -#define FI_ISSBYLABEL 10 -#define FI_ISSBY 11 -#define FI_VALIDDATE 12 -#define IMG_KEY 13 -#define FI_CORRPRIVKEY 14 -#define STR_CERTIFICATE_NOT_VALIDATED 15 -#define IMG_STATE_NOT_VALIDATED 16 - -#define IMG1_WIDTH 33 -#define IMG1_HEIGHT 22 -#define IMG2_WIDTH 20 -#define IMG2_HEIGHT 20 -#define DATE_WIDTH 30 -#define CW_COL_0 (CV_COL_0+RSC_SP_GRP_INNERBORDER_LEFT) -#define CW_COL_1 (CW_COL_0+RSC_SP_FLGR_SPACE_X) -#define CW_COL_1a (CW_COL_0+IMG2_WIDTH+1) -#define CW_COL_2 (CW_COL_0+IMG1_WIDTH) -#define CW_COL_3 (CW_COL_2+RSC_SP_CTRL_GROUP_X) -#define CW_COL_4 (CW_COL_1+40) -#define CW_COL_5 (CV_CONT_WIDTH-RSC_SP_GRP_INNERBORDER_RIGHT) -#define CW_COL_5a (CW_COL_5-RSC_SP_GRP_INNERBORDER_RIGHT) -#define CW_COL_4a (CW_COL_1+38) -#define CW_COL_4b (CW_COL_4a+DATE_WIDTH) -#define CW_COL_4c (CW_COL_4b+3) -#define CW_COL_4d (CW_COL_4c+8) -#define CW_COL_4e (CW_COL_4d+3) -#define CW_ROW_0 (CV_ROW_0+RSC_SP_GRP_INNERBORDER_TOP) -#define CW_ROW_1 (CW_ROW_0+RSC_SP_GRP_INNERBORDER_TOP) -#define CW_ROW_2 (CW_ROW_0+IMG1_HEIGHT) -#define CW_ROW_3 (CW_ROW_2+3) -#define CW_ROW_4 (CW_ROW_3+RSC_SP_CTRL_Y+RSC_CD_FIXEDLINE_HEIGHT) -#define CW_ROW_4a (CW_ROW_4+35) -#define CW_ROW_5 (CW_ROW_4a+3) -#define CW_ROW_6 (CW_ROW_5+RSC_SP_CTRL_Y+RSC_CD_FIXEDLINE_HEIGHT) -#define CW_ROW_7 (CW_ROW_6+RSC_SP_CTRL_Y+RSC_CD_FIXEDTEXT_HEIGHT) -#define CW_ROW_8 (CW_ROW_7+RSC_SP_CTRL_Y+RSC_CD_FIXEDTEXT_HEIGHT) -#define CW_ROW_9 (CW_ROW_8+RSC_SP_CTRL_Y+RSC_CD_FIXEDTEXT_HEIGHT) -#define CW_ROW_10 (CW_ROW_9+2) -#define CW_ROW_11 (CW_ROW_9+IMG2_HEIGHT) - -// --------- tab page Certificate viewer - Details --------- - -#define LB_ELEMENTS 1 -#define ML_ELEMENT 2 - -#define STR_VERSION 1 -#define STR_SERIALNUM 2 -#define STR_SIGALGORITHM 3 -#define STR_ISSUER 4 -#define STR_ISSUER_ID 5 -#define STR_VALIDFROM 6 -#define STR_VALIDTO 7 -#define STR_SUBJECT 8 -#define STR_SUBJECT_ID 9 -#define STR_SUBJECT_PUBKEY_ALGO 10 -#define STR_SUBJECT_PUBKEY_VAL 11 -#define STR_SIGNATURE_ALGO 12 -#define STR_THUMBPRINT_SHA1 13 -#define STR_THUMBPRINT_MD5 14 - -// --------- tab page Certificate viewer - Certification Path --------- - -#define FT_CERTPATH 1 -#define FT_CERTSTATUS 2 -#define ML_CERTSTATUS 3 -#define IMG_CERT_SMALL 4 -#define IMG_CERT_NOTVALIDATED_SMALL 6 -#define STR_PATH_CERT_OK 8 -#define STR_PATH_CERT_NOT_VALIDATED 9 - -#define CVP_ROW_0 RSC_SP_TBPG_INNERBORDER_TOP -#define CVP_ROW_1 (CVP_ROW_0+RSC_CD_FIXEDTEXT_HEIGHT+RSC_SP_CTRL_DESC_Y) -#define REST_HEIGHT (TP_HEIGHT-CVP_ROW_1-2*RSC_SP_GRP_SPACE_Y-RSC_CD_FIXEDTEXT_HEIGHT-RSC_CD_PUSHBUTTON_HEIGHT) -#define CVP_ROW_2 (CVP_ROW_1+REST_HEIGHT/3*2+RSC_SP_CTRL_DESC_Y) -#define CVP_ROW_3 (CVP_ROW_2+RSC_CD_PUSHBUTTON_HEIGHT) -#define CVP_ROW_4 (CVP_ROW_3+RSC_CD_FIXEDTEXT_HEIGHT+RSC_SP_CTRL_DESC_Y) - - -// --------- tab dialog macro security --------- - -#define MS_COL_A (TD_WIDTH-RSC_SP_DLG_INNERBORDER_LEFT) -#define MS_COL_B (MS_COL_A-RSC_CD_PUSHBUTTON_WIDTH) -#define MS_COL_C (MS_COL_B-RSC_SP_CTRL_X) -#define MS_COL_D (MS_COL_C-RSC_CD_PUSHBUTTON_WIDTH) -#define MS_COL_E (MS_COL_D-RSC_SP_CTRL_X) -#define MS_COL_F (MS_COL_E-RSC_CD_PUSHBUTTON_WIDTH) -#define MS_COL_G (MS_COL_F-RSC_SP_CTRL_X) -#define MS_COL_H (MS_COL_G-RSC_CD_PUSHBUTTON_WIDTH) - -// --------- tab page security level --------- - -#define FL_SECLEVEL 1 -#define RB_VERYHIGH 2 -#define RB_HIGH 3 -#define RB_MEDIUM 4 -#define RB_LOW 5 -#define FI_SEC_READONLY 6 - -#define RSC_BIG_RADIOBUTTON 40 -#define SL_RB_DIST_Y (RSC_SP_FLGR_SPACE_Y+RSC_BIG_RADIOBUTTON) -#define SL_COL_0 RSC_SP_TBPG_INNERBORDER_LEFT -#define SL_COL_1 (SL_COL_0+RSC_SP_FLGR_SPACE_X) -#define SL_COL_3 (TP_WIDTH-RSC_SP_TBPG_INNERBORDER_RIGHT) -#define SL_COL_2 ((SL_COL_3-SL_COL_1)*100/105) -#define SL_ROW_0 RSC_SP_TBPG_INNERBORDER_TOP -#define SL_ROW_1 (SL_ROW_0+SL_RB_DIST_Y) -#define SL_ROW_2 (SL_ROW_1+SL_RB_DIST_Y) -#define SL_ROW_3 (SL_ROW_2+SL_RB_DIST_Y) -#define SL_ROW_4 (TP_HEIGHT-RSC_SP_TBPG_INNERBORDER_BOTTOM) - -// --------- tab page trusted sources --------- - -#define FL_TRUSTCERT 1 -#define LB_TRUSTCERT 2 -#define PB_ADD_TRUSTCERT 3 -#define PB_VIEW_TRUSTCERT 4 -#define PB_REMOVE_TRUSTCERT 5 -#define FL_TRUSTFILELOC 6 -#define FI_TRUSTFILELOC 7 -#define LB_TRUSTFILELOC 8 -#define FL_ADD_TRUSTFILELOC 9 -#define FL_REMOVE_TRUSTFILELOC 10 -#define FI_TRUSTCERT_RO 11 -#define FI_TRUSTFILE_RO 12 - -#define TS_COL_0 RSC_SP_TBPG_INNERBORDER_LEFT -#define TS_COL_1 (TS_COL_0+RSC_SP_FLGR_SPACE_X) -#define TS_COL_8 (TP_WIDTH-RSC_SP_TBPG_INNERBORDER_RIGHT) -#define TS_COL_7 (TS_COL_8-RSC_SP_FLGR_SPACE_X) -#define TS_COL_6 (TS_COL_7-RSC_CD_PUSHBUTTON_WIDTH) -#define TS_COL_5 (TS_COL_6-RSC_SP_CTRL_GROUP_X) -#define TS_COL_4 (TS_COL_5-RSC_CD_PUSHBUTTON_WIDTH) -#define TS_COL_3 (TS_COL_4-RSC_SP_CTRL_GROUP_X) -#define TS_COL_2 (TS_COL_3-RSC_CD_PUSHBUTTON_WIDTH) - -#define RSC_CD_TABLISTBOX_HEIGHT 6*RSC_BS_CHARHEIGHT -#define TS_ROW_0 RSC_SP_TBPG_INNERBORDER_TOP -#define TS_ROW_1 (TS_ROW_0+RSC_CD_FIXEDLINE_HEIGHT+RSC_SP_FLGR_SPACE_Y) -#define TS_ROW_2 (TS_ROW_1+RSC_CD_TABLISTBOX_HEIGHT+RSC_SP_FLGR_SPACE_Y) -#define TS_ROW_3 (TS_ROW_2+RSC_CD_PUSHBUTTON_HEIGHT+RSC_SP_FLGR_SPACE_Y) -#define TS_ROW_4 (TS_ROW_3+RSC_CD_FIXEDLINE_HEIGHT+RSC_SP_FLGR_SPACE_Y) -#define TS_ROW_5 (TS_ROW_4+3*RSC_CD_FIXEDTEXT_HEIGHT+RSC_SP_FLGR_SPACE_Y) - -#define TS_ROW_8 (TP_HEIGHT-RSC_SP_TBPG_INNERBORDER_BOTTOM) -#define TS_ROW_7 (TS_ROW_8-RSC_CD_PUSHBUTTON_HEIGHT) -#define TS_ROW_6 (TS_ROW_7-RSC_SP_FLGR_SPACE_Y) - -// --------- signed macro warning --------- - -#define FI_DOCNAME 1 -#define FI_DESCR1A 2 -#define FI_SIGNS 3 -#define PB_VIEWSIGNS 4 -#define FI_DESCR2 5 -#define CB_ALWAYSTRUST 6 -#define PB_ENABLE 7 -#define PB_DISABLE 8 -#define FI_DESCR1B 9 - -#define MW_WIDTH DLGS_WIDTH -#define MW_HEIGHT DLGS_HEIGHT - -#define MW_SYMBOL_WIDTH (20) - -#define MW_COL_0 (RSC_SP_DLG_INNERBORDER_LEFT) -#define MW_COL_1 (MW_COL_0+MW_SYMBOL_WIDTH) -#define MW_COL_4 (MW_WIDTH-RSC_SP_DLG_INNERBORDER_RIGHT) -#define MW_COL_3 (MW_COL_4-RSC_CD_PUSHBUTTON_WIDTH) -#define MW_COL_2 (MW_COL_3-RSC_SP_CTRL_DESC_X) -#define MW_COL_A (DLGS_BOTTOM_OK_X(MW_WIDTH)) -#define MW_COL_C (DLGS_BOTTOM_CANCEL_X(MW_WIDTH)) -#define MW_COL_E (DLGS_BOTTOM_HELP_X(MW_WIDTH)) -#define MW_ROW_0 (RSC_SP_DLG_INNERBORDER_TOP) -#define MW_ROW_1 (MW_ROW_0+3*RSC_CD_FIXEDTEXT_HEIGHT+RSC_SP_CTRL_Y) -#define MW_ROW_2 (MW_ROW_1+RSC_CD_FIXEDTEXT_HEIGHT+RSC_SP_CTRL_Y) -#define MW_ROW_7 (MW_HEIGHT-RSC_SP_DLG_INNERBORDER_BOTTOM) -#define MW_ROW_6 (DLGS_BOTTOM_BTN_Y(MW_HEIGHT)) -#define MW_ROW_5 (DLGS_BOTTOM_FL_Y(MW_HEIGHT)) -#define MW_ROW_4 (MW_ROW_5-RSC_CD_CHECKBOX_HEIGHT-RSC_SP_CTRL_Y) -#define MW_ROW_3 (MW_ROW_4-4*RSC_CD_FIXEDTEXT_HEIGHT+RSC_SP_CTRL_Y) - -#endif - diff --git a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx deleted file mode 100644 index 34a71d47f..000000000 --- a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx +++ /dev/null @@ -1,840 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_xmlsecurity.hxx" -#include <xmlsecurity/digitalsignaturesdialog.hxx> -#include <xmlsecurity/certificatechooser.hxx> -#include <xmlsecurity/certificateviewer.hxx> -#include <xmlsecurity/biginteger.hxx> -#include <xmloff/xmluconv.hxx> -#include <com/sun/star/embed/XStorage.hpp> -#include <com/sun/star/embed/ElementModes.hpp> -#include <com/sun/star/io/XSeekable.hpp> -#include <com/sun/star/io/XTruncate.hpp> -#include <com/sun/star/embed/XTransactedObject.hpp> -#include <com/sun/star/container/XNameAccess.hpp> -#include <com/sun/star/lang/XComponent.hpp> -#include <com/sun/star/security/NoPasswordException.hpp> -#include <com/sun/star/lang/DisposedException.hpp> -#include <com/sun/star/beans/XPropertySet.hpp> -#include <com/sun/star/security/CertificateValidity.hdl> -#include <com/sun/star/packages/WrongPasswordException.hpp> -#include <com/sun/star/security/SerialNumberAdapter.hpp> -#include <com/sun/star/security/XDocumentDigitalSignatures.hpp> -#include <com/sun/star/xml/dom/XDocumentBuilder.hpp> -#include <com/sun/star/packages/manifest/XManifestReader.hpp> - - -#include <rtl/ustrbuf.hxx> -#include <rtl/uri.hxx> - -#include <tools/date.hxx> -#include <tools/time.hxx> - -#include "dialogs.hrc" -#include "digitalsignaturesdialog.hrc" -#include "helpids.hrc" -#include "resourcemanager.hxx" - -#include <vcl/msgbox.hxx> // Until encrypted docs work... -#include <unotools/configitem.hxx> -#include <comphelper/componentcontext.hxx> - -#define OUSTR(x) ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(x) ) - - -/* HACK: disable some warnings for MS-C */ -#ifdef _MSC_VER -#pragma warning (disable : 4355) // 4355: this used in initializer-list -#endif - -using namespace ::com::sun::star::security; -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star; -namespace css = ::com::sun::star; -using ::rtl::OUString; - -namespace -{ - class SaveODFItem: public utl::ConfigItem - { - sal_Int16 m_nODF; - public: - virtual void Commit(); - virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); - SaveODFItem(); - //See group ODF in Common.xcs - bool isLessODF1_2() - { - return m_nODF < 3; - } - }; - -void SaveODFItem::Commit() {} -void SaveODFItem::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {} - - SaveODFItem::SaveODFItem(): utl::ConfigItem(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( - "Office.Common/Save"))), m_nODF(0) - { - OUString sDef(RTL_CONSTASCII_USTRINGPARAM("ODF/DefaultVersion")); - Sequence< css::uno::Any > aValues = GetProperties( Sequence<OUString>(&sDef,1) ); - if ( aValues.getLength() == 1) - { - sal_Int16 nTmp = 0; - if ( aValues[0] >>= nTmp ) - m_nODF = nTmp; - else - throw uno::RuntimeException( - OUString(RTL_CONSTASCII_USTRINGPARAM( - "[xmlsecurity]SaveODFItem::SaveODFItem(): Wrong Type!")), 0 ); - - } - else - throw uno::RuntimeException( - OUString(RTL_CONSTASCII_USTRINGPARAM( - "[xmlsecurity] Could not open property Office.Common/Save/ODF/DefaultVersion")), 0); - } -} - -/* Using the zip storage, we cannot get the properties "MediaType" and "IsEncrypted" - We use the manifest to find out if a file is xml and if it is encrypted. - The parameter is an encoded uri. However, the manifest contains paths. Therefore - the path is encoded as uri, so they can be compared. -*/ -bool DigitalSignaturesDialog::isXML(const rtl::OUString& rURI ) -{ - OSL_ASSERT(mxStore.is()); - - bool bIsXML = false; - bool bPropsAvailable = false; - const OUString sPropFullPath(RTL_CONSTASCII_USTRINGPARAM("FullPath")); - const OUString sPropMediaType(RTL_CONSTASCII_USTRINGPARAM("MediaType")); - const OUString sPropDigest(RTL_CONSTASCII_USTRINGPARAM("Digest")); - - for (int i = 0; i < m_manifest.getLength(); i++) - { - Any digest; - const Sequence< css::beans::PropertyValue >& entry = m_manifest[i]; - OUString sPath, sMediaType; - bool bEncrypted = false; - for (int j = 0; j < entry.getLength(); j++) - { - const css::beans::PropertyValue & prop = entry[j]; - - if (prop.Name.equals( sPropFullPath ) ) - prop.Value >>= sPath; - else if (prop.Name.equals( sPropMediaType ) ) - prop.Value >>= sMediaType; - else if (prop.Name.equals( sPropDigest ) ) - bEncrypted = true; - } - if (DocumentSignatureHelper::equalsReferenceUriManifestPath(rURI, sPath)) - { - bIsXML = sMediaType.equals(OUSTR("text/xml")) && ! bEncrypted; - bPropsAvailable = true; - break; - } - } - if (!bPropsAvailable) - { - //This would be the case for at least mimetype, META-INF/manifest.xml - //META-INF/macrosignatures.xml. - //Files can only be encrypted if they are in the manifest.xml. - //That is, the current file cannot be encrypted, otherwise bPropsAvailable - //would be true. - OUString aXMLExt( RTL_CONSTASCII_USTRINGPARAM( "XML" ) ); - sal_Int32 nSep = rURI.lastIndexOf( '.' ); - if ( nSep != (-1) ) - { - OUString aExt = rURI.copy( nSep+1 ); - if (aExt.equalsIgnoreAsciiCase(aXMLExt )) - bIsXML = true; - } - } - return bIsXML; -} - -DigitalSignaturesDialog::DigitalSignaturesDialog( - Window* pParent, - uno::Reference< uno::XComponentContext >& rxCtx, DocumentSignatureMode eMode, - sal_Bool bReadOnly, const ::rtl::OUString& sODFVersion, bool bHasDocumentSignature) - :ModalDialog ( pParent, XMLSEC_RES( RID_XMLSECDLG_DIGSIG ) ) - ,mxCtx ( rxCtx ) - ,maSignatureHelper ( rxCtx ) - ,meSignatureMode ( eMode ) - ,maHintDocFT ( this, XMLSEC_RES( FT_HINT_DOC ) ) - ,maHintBasicFT ( this, XMLSEC_RES( FT_HINT_BASIC ) ) - ,maHintPackageFT ( this, XMLSEC_RES( FT_HINT_PACK ) ) - ,maSignaturesLBContainer(this, XMLSEC_RES(LB_SIGNATURES)) - ,maSignaturesLB(maSignaturesLBContainer) - ,maSigsValidImg ( this, XMLSEC_RES( IMG_STATE_VALID ) ) - ,maSigsValidFI ( this, XMLSEC_RES( FI_STATE_VALID ) ) - ,maSigsInvalidImg ( this, XMLSEC_RES( IMG_STATE_BROKEN ) ) - ,maSigsInvalidFI ( this, XMLSEC_RES( FI_STATE_BROKEN ) ) - ,maSigsNotvalidatedImg( this, XMLSEC_RES( IMG_STATE_NOTVALIDATED ) ) - ,maSigsNotvalidatedFI ( this, XMLSEC_RES( FI_STATE_NOTVALIDATED ) ) - ,maSigsOldSignatureFI ( this, XMLSEC_RES( FI_STATE_OLDSIGNATURE) ) - ,maViewBtn ( this, XMLSEC_RES( BTN_VIEWCERT ) ) - ,maAddBtn ( this, XMLSEC_RES( BTN_ADDCERT ) ) - ,maRemoveBtn ( this, XMLSEC_RES( BTN_REMOVECERT ) ) - ,maBottomSepFL ( this, XMLSEC_RES( FL_BOTTOM_SEP ) ) - ,maOKBtn ( this, XMLSEC_RES( BTN_OK ) ) - ,maHelpBtn ( this, XMLSEC_RES( BTN_HELP ) ) - ,m_sODFVersion (sODFVersion) - ,m_bHasDocumentSignature(bHasDocumentSignature) - ,m_bWarningShowSignMacro(false) -{ - // #i48253# the tablistbox needs its own unique id - maSignaturesLB.Window::SetUniqueId( HID_XMLSEC_TREE_SIGNATURESDLG ); - Size aControlSize( maSignaturesLB.GetSizePixel() ); - aControlSize = maSignaturesLB.PixelToLogic( aControlSize, MapMode( MAP_APPFONT ) ); - const long nControlWidth = aControlSize.Width(); - static long nTabs[] = { 4, 0, 6*nControlWidth/100, 36*nControlWidth/100, 74*nControlWidth/100 }; - maSignaturesLB.SetTabs( &nTabs[ 0 ] ); - maSignaturesLB.InsertHeaderEntry( String( XMLSEC_RES( STR_HEADERBAR ) ) ); - - maSigsNotvalidatedFI.SetText( String( XMLSEC_RES( STR_NO_INFO_TO_VERIFY ) ) ); - - FreeResource(); - - mbVerifySignatures = true; - mbSignaturesChanged = false; - - maSignaturesLB.SetSelectHdl( LINK( this, DigitalSignaturesDialog, SignatureHighlightHdl ) ); - maSignaturesLB.SetDoubleClickHdl( LINK( this, DigitalSignaturesDialog, SignatureSelectHdl ) ); - - maViewBtn.SetClickHdl( LINK( this, DigitalSignaturesDialog, ViewButtonHdl ) ); - maViewBtn.Disable(); - - maAddBtn.SetClickHdl( LINK( this, DigitalSignaturesDialog, AddButtonHdl ) ); - if ( bReadOnly ) - maAddBtn.Disable(); - - maRemoveBtn.SetClickHdl( LINK( this, DigitalSignaturesDialog, RemoveButtonHdl ) ); - maRemoveBtn.Disable(); - - maOKBtn.SetClickHdl( LINK( this, DigitalSignaturesDialog, OKButtonHdl) ); - - switch( meSignatureMode ) - { - case SignatureModeDocumentContent: maHintDocFT.Show(); break; - case SignatureModeMacros: maHintBasicFT.Show(); break; - case SignatureModePackage: maHintPackageFT.Show(); break; - } - - // adjust fixed text to images - XmlSec::AlignAndFitImageAndControl( maSigsValidImg, maSigsValidFI, 5 ); - XmlSec::AlignAndFitImageAndControl( maSigsInvalidImg, maSigsInvalidFI, 5 ); - XmlSec::AlignAndFitImageAndControl( maSigsNotvalidatedImg, maSigsNotvalidatedFI, 5 ); - XmlSec::AlignAndFitImageAndControl( maSigsNotvalidatedImg, maSigsOldSignatureFI, 5 ); -} - -DigitalSignaturesDialog::~DigitalSignaturesDialog() -{ -} - -sal_Bool DigitalSignaturesDialog::Init() -{ - bool bInit = maSignatureHelper.Init(); - - DBG_ASSERT( bInit, "Error initializing security context!" ); - - if ( bInit ) - { - maSignatureHelper.SetStartVerifySignatureHdl( LINK( this, DigitalSignaturesDialog, StartVerifySignatureHdl ) ); - } - - return bInit; -} - -void DigitalSignaturesDialog::SetStorage( const com::sun::star::uno::Reference < com::sun::star::embed::XStorage >& rxStore ) -{ - mxStore = rxStore; - maSignatureHelper.SetStorage( mxStore, m_sODFVersion); - - Reference < css::packages::manifest::XManifestReader > xReader( - mxCtx->getServiceManager()->createInstanceWithContext( - OUSTR("com.sun.star.packages.manifest.ManifestReader"), mxCtx), UNO_QUERY_THROW); - - //Get the manifest.xml - Reference < css::embed::XStorage > xSubStore(rxStore->openStorageElement( - OUSTR("META-INF"), css::embed::ElementModes::READ), UNO_QUERY_THROW); - - Reference< css::io::XInputStream > xStream( - xSubStore->openStreamElement(OUSTR("manifest.xml"), css::embed::ElementModes::READ), - UNO_QUERY_THROW); - - m_manifest = xReader->readManifestSequence(xStream); -} - -void DigitalSignaturesDialog::SetSignatureStream( const cssu::Reference < css::io::XStream >& rxStream ) -{ - mxSignatureStream = rxStream; -} - -bool DigitalSignaturesDialog::canAddRemove() -{ - //m56 - bool ret = true; - OSL_ASSERT(mxStore.is()); - bool bDoc1_1 = DocumentSignatureHelper::isODFPre_1_2(m_sODFVersion); - SaveODFItem item; - bool bSave1_1 = item.isLessODF1_2(); - - // see specification - //cvs: specs/www/appwide/security/Electronic_Signatures_and_Security.sxw - //Paragraph 'Behavior with regard to ODF 1.2' - //For both, macro and document - if ( (!bSave1_1 && bDoc1_1) || (bSave1_1 && bDoc1_1) ) - { - //#4 - ErrorBox err(NULL, XMLSEC_RES(RID_XMLSECDLG_OLD_ODF_FORMAT)); - err.Execute(); - ret = false; - } - - //As of OOo 3.2 the document signature includes in macrosignatures.xml. That is - //adding a macro signature will break an existing document signature. - //The sfx2 will remove the documentsignature when the user adds a macro signature - if (meSignatureMode == SignatureModeMacros - && ret) - { - if (m_bHasDocumentSignature && !m_bWarningShowSignMacro) - { - //The warning says that the document signatures will be removed if the user - //continues. He can then either press 'OK' or 'NO' - //It the user presses 'Add' or 'Remove' several times then, then the warning - //is shown every time until the user presses 'OK'. From then on, the warning - //is not displayed anymore as long as the signatures dialog is alive. - if (QueryBox( - NULL, XMLSEC_RES(MSG_XMLSECDLG_QUERY_REMOVEDOCSIGNBEFORESIGN)).Execute() == RET_NO) - ret = false; - else - m_bWarningShowSignMacro = true; - - } - } - return ret; -} - -bool DigitalSignaturesDialog::canAdd() -{ - if (canAddRemove()) - return true; - return false; -} - -bool DigitalSignaturesDialog::canRemove() -{ - if (canAddRemove()) - return true; - return false; -} - -short DigitalSignaturesDialog::Execute() -{ - // Verify Signatures and add certificates to ListBox... - mbVerifySignatures = true; - ImplGetSignatureInformations(false); - ImplFillSignaturesBox(); - - // Only verify once, content will not change. - // But for refreshing signature information, StartVerifySignatureHdl will be called after each add/remove - mbVerifySignatures = false; - - return Dialog::Execute(); -} - -IMPL_LINK( DigitalSignaturesDialog, SignatureHighlightHdl, void*, EMPTYARG ) -{ - bool bSel = maSignaturesLB.FirstSelected() ? true : false; - maViewBtn.Enable( bSel ); - if ( maAddBtn.IsEnabled() ) // not read only - maRemoveBtn.Enable( bSel ); - - return 0; -} - -IMPL_LINK( DigitalSignaturesDialog, OKButtonHdl, void*, EMPTYARG ) -{ - // Export all other signatures... - SignatureStreamHelper aStreamHelper = ImplOpenSignatureStream( - embed::ElementModes::WRITE|embed::ElementModes::TRUNCATE, false ); - uno::Reference< io::XOutputStream > xOutputStream( - aStreamHelper.xSignatureStream, uno::UNO_QUERY ); - uno::Reference< com::sun::star::xml::sax::XDocumentHandler> xDocumentHandler = - maSignatureHelper.CreateDocumentHandlerWithHeader( xOutputStream ); - - size_t nInfos = maCurrentSignatureInformations.size(); - for( size_t n = 0 ; n < nInfos ; ++n ) - maSignatureHelper.ExportSignature( - xDocumentHandler, maCurrentSignatureInformations[ n ] ); - - maSignatureHelper.CloseDocumentHandler( xDocumentHandler); - - // If stream was not provided, we are responsible for committing it.... - if ( !mxSignatureStream.is() ) - { - uno::Reference< embed::XTransactedObject > xTrans( - aStreamHelper.xSignatureStorage, uno::UNO_QUERY ); - xTrans->commit(); - } - - EndDialog(RET_OK); - return 0; -} - -IMPL_LINK( DigitalSignaturesDialog, SignatureSelectHdl, void*, EMPTYARG ) -{ - ImplShowSignaturesDetails(); - return 0; -} - -IMPL_LINK( DigitalSignaturesDialog, ViewButtonHdl, Button*, EMPTYARG ) -{ - ImplShowSignaturesDetails(); - return 0; -} - -IMPL_LINK( DigitalSignaturesDialog, AddButtonHdl, Button*, EMPTYARG ) -{ - if( ! canAdd()) - return 0; - try - { - uno::Reference<com::sun::star::xml::crypto::XSecurityEnvironment> xSecEnv = maSignatureHelper.GetSecurityEnvironment(); - - uno::Reference<com::sun::star::security::XSerialNumberAdapter> xSerialNumberAdapter = - ::com::sun::star::security::SerialNumberAdapter::create(mxCtx); - CertificateChooser aChooser( this, mxCtx, xSecEnv, maCurrentSignatureInformations ); - if ( aChooser.Execute() == RET_OK ) - { - uno::Reference< ::com::sun::star::security::XCertificate > xCert = aChooser.GetSelectedCertificate(); - if ( !xCert.is() ) - { - DBG_ERRORFILE( "no certificate selected" ); - return -1; - } - rtl::OUString aCertSerial = xSerialNumberAdapter->toString( xCert->getSerialNumber() ); - if ( !aCertSerial.getLength() ) - { - OSL_FAIL( "Error in Certificate, problem with serial number!" ); - return -1; - } - - maSignatureHelper.StartMission(); - - sal_Int32 nSecurityId = maSignatureHelper.GetNewSecurityId(); - - rtl::OUStringBuffer aStrBuffer; - SvXMLUnitConverter::encodeBase64(aStrBuffer, xCert->getEncoded()); - - maSignatureHelper.SetX509Certificate( nSecurityId, - xCert->getIssuerName(), aCertSerial, - aStrBuffer.makeStringAndClear()); - - std::vector< rtl::OUString > aElements = - DocumentSignatureHelper::CreateElementList( - mxStore, rtl::OUString(), meSignatureMode, OOo3_2Document); - - sal_Int32 nElements = aElements.size(); - for ( sal_Int32 n = 0; n < nElements; n++ ) - { - bool bBinaryMode = !isXML(aElements[n]); - maSignatureHelper.AddForSigning( nSecurityId, aElements[n], aElements[n], bBinaryMode ); - } - - maSignatureHelper.SetDateTime( nSecurityId, Date(), Time() ); - - // We open a signature stream in which the existing and the new - //signature is written. ImplGetSignatureInformation (later in this function) will - //then read the stream an will fill maCurrentSignatureInformations. The final signature - //is written when the user presses OK. Then only maCurrentSignatureInformation and - //a sax writer are used to write the information. - SignatureStreamHelper aStreamHelper = ImplOpenSignatureStream( - css::embed::ElementModes::WRITE|css::embed::ElementModes::TRUNCATE, true); - Reference< css::io::XOutputStream > xOutputStream( - aStreamHelper.xSignatureStream, UNO_QUERY_THROW); - Reference< css::xml::sax::XDocumentHandler> xDocumentHandler = - maSignatureHelper.CreateDocumentHandlerWithHeader( xOutputStream ); - - // Export old signatures... - size_t nInfos = maCurrentSignatureInformations.size(); - for ( size_t n = 0; n < nInfos; n++ ) - maSignatureHelper.ExportSignature( xDocumentHandler, maCurrentSignatureInformations[n]); - - // Create a new one... - maSignatureHelper.CreateAndWriteSignature( xDocumentHandler ); - - // That's it... - maSignatureHelper.CloseDocumentHandler( xDocumentHandler); - - maSignatureHelper.EndMission(); - - aStreamHelper = SignatureStreamHelper(); // release objects... - - mbSignaturesChanged = true; - - sal_Int32 nStatus = maSignatureHelper.GetSignatureInformation( nSecurityId ).nStatus; - - if ( nStatus == ::com::sun::star::xml::crypto::SecurityOperationStatus_OPERATION_SUCCEEDED ) - { - mbSignaturesChanged = true; - - // Can't simply remember current information, need parsing for getting full information :( - // We need to verify the signatures again, otherwise the status in the signature information - // will not contain - // SecurityOperationStatus_OPERATION_SUCCEEDED - mbVerifySignatures = true; - ImplGetSignatureInformations(true); - ImplFillSignaturesBox(); - } - } - } - catch ( uno::Exception& ) - { - OSL_FAIL( "Exception while adding a signature!" ); - // Don't keep invalid entries... - ImplGetSignatureInformations(true); - ImplFillSignaturesBox(); - } - - return 0; -} - -IMPL_LINK( DigitalSignaturesDialog, RemoveButtonHdl, Button*, EMPTYARG ) -{ - if (!canRemove()) - return 0; - if( maSignaturesLB.FirstSelected() ) - { - try - { - sal_uInt16 nSelected = (sal_uInt16) (sal_uIntPtr) maSignaturesLB.FirstSelected()->GetUserData(); - maCurrentSignatureInformations.erase( maCurrentSignatureInformations.begin()+nSelected ); - - // Export all other signatures... - SignatureStreamHelper aStreamHelper = ImplOpenSignatureStream( - css::embed::ElementModes::WRITE | css::embed::ElementModes::TRUNCATE, true); - Reference< css::io::XOutputStream > xOutputStream( - aStreamHelper.xSignatureStream, UNO_QUERY_THROW); - Reference< css::xml::sax::XDocumentHandler> xDocumentHandler = - maSignatureHelper.CreateDocumentHandlerWithHeader( xOutputStream ); - - size_t nInfos = maCurrentSignatureInformations.size(); - for( size_t n = 0 ; n < nInfos ; ++n ) - maSignatureHelper.ExportSignature( xDocumentHandler, maCurrentSignatureInformations[ n ] ); - - maSignatureHelper.CloseDocumentHandler( xDocumentHandler); - - mbSignaturesChanged = true; - - aStreamHelper = SignatureStreamHelper(); // release objects... - - ImplFillSignaturesBox(); - } - catch ( uno::Exception& ) - { - OSL_FAIL( "Exception while removing a signature!" ); - // Don't keep invalid entries... - ImplGetSignatureInformations(true); - ImplFillSignaturesBox(); - } - } - - return 0; -} - -IMPL_LINK( DigitalSignaturesDialog, StartVerifySignatureHdl, void*, EMPTYARG ) -{ - return mbVerifySignatures ? 1 : 0; -} - -void DigitalSignaturesDialog::ImplFillSignaturesBox() -{ - maSignaturesLB.Clear(); - - uno::Reference< ::com::sun::star::xml::crypto::XSecurityEnvironment > xSecEnv = maSignatureHelper.GetSecurityEnvironment(); - uno::Reference<com::sun::star::security::XSerialNumberAdapter> xSerialNumberAdapter = - ::com::sun::star::security::SerialNumberAdapter::create(mxCtx); - - uno::Reference< ::com::sun::star::security::XCertificate > xCert; - - String aNullStr; - size_t nInfos = maCurrentSignatureInformations.size(); - size_t nValidSigs = 0, nValidCerts = 0; - bool bAllNewSignatures = true; - - if( nInfos ) - { - for( size_t n = 0; n < nInfos; ++n ) - { - DocumentSignatureAlgorithm mode = DocumentSignatureHelper::getDocumentAlgorithm( - m_sODFVersion, maCurrentSignatureInformations[n]); - std::vector< rtl::OUString > aElementsToBeVerified = - DocumentSignatureHelper::CreateElementList( - mxStore, ::rtl::OUString(), meSignatureMode, mode); - - const SignatureInformation& rInfo = maCurrentSignatureInformations[n]; - //First we try to get the certificate which is embedded in the XML Signature - if (rInfo.ouX509Certificate.getLength()) - xCert = xSecEnv->createCertificateFromAscii(rInfo.ouX509Certificate); - else { - //There must be an embedded certificate because we use it to get the - //issuer name. We cannot use /Signature/KeyInfo/X509Data/X509IssuerName - //because it could be modified by an attacker. The issuer is displayed - //in the digital signature dialog. - //Comparing the X509IssuerName with the one from the X509Certificate in order - //to find out if the X509IssuerName was modified does not work. See #i62684 - DBG_ASSERT(sal_False, "Could not find embedded certificate!"); - } - - //In case there is no embedded certificate we try to get it from a local store - //Todo: This probably could be removed, see above. - if (!xCert.is()) - xCert = xSecEnv->getCertificate( rInfo.ouX509IssuerName, xSerialNumberAdapter->toSequence( rInfo.ouX509SerialNumber ) ); - - DBG_ASSERT( xCert.is(), "Certificate not found and can't be created!" ); - - String aSubject; - String aIssuer; - String aDateTimeStr; - - bool bSigValid = false; - bool bCertValid = false; - if( xCert.is() ) - { - //check the validity of the cert - try { - sal_Int32 certResult = xSecEnv->verifyCertificate(xCert, - Sequence<css::uno::Reference<css::security::XCertificate> >()); - - bCertValid = certResult == css::security::CertificateValidity::VALID ? true : false; - if ( bCertValid ) - nValidCerts++; - - } catch (css::uno::SecurityException& ) { - OSL_FAIL("Verification of certificate failed"); - bCertValid = false; - } - - aSubject = XmlSec::GetContentPart( xCert->getSubjectName() ); - aIssuer = XmlSec::GetContentPart( xCert->getIssuerName() ); - // String with date and time information (#i20172#) - aDateTimeStr = XmlSec::GetDateTimeString( rInfo.stDateTime ); - } - bSigValid = ( rInfo.nStatus == ::com::sun::star::xml::crypto::SecurityOperationStatus_OPERATION_SUCCEEDED ); - - if ( bSigValid ) - { - bSigValid = DocumentSignatureHelper::checkIfAllFilesAreSigned( - aElementsToBeVerified, rInfo, mode); - - if( bSigValid ) - nValidSigs++; - } - - Image aImage; - if (!bSigValid) - { - aImage = maSigsInvalidImg.GetImage(); - } - else if (bSigValid && !bCertValid) - { - aImage = maSigsNotvalidatedImg.GetImage(); - } - //Check if the signature is a "old" document signature, that is, which was created - //by an version of OOo previous to 3.2 - else if (meSignatureMode == SignatureModeDocumentContent - && bSigValid && bCertValid && !DocumentSignatureHelper::isOOo3_2_Signature( - maCurrentSignatureInformations[n])) - { - aImage = maSigsNotvalidatedImg.GetImage(); - bAllNewSignatures &= false; - } - else if (meSignatureMode == SignatureModeDocumentContent - && bSigValid && bCertValid && DocumentSignatureHelper::isOOo3_2_Signature( - maCurrentSignatureInformations[n])) - { - aImage = maSigsValidImg.GetImage(); - } - else if (meSignatureMode == SignatureModeMacros - && bSigValid && bCertValid) - { - aImage = maSigsValidImg.GetImage(); - } - - SvLBoxEntry* pEntry = maSignaturesLB.InsertEntry( aNullStr, aImage, aImage ); - maSignaturesLB.SetEntryText( aSubject, pEntry, 1 ); - maSignaturesLB.SetEntryText( aIssuer, pEntry, 2 ); - maSignaturesLB.SetEntryText( aDateTimeStr, pEntry, 3 ); - pEntry->SetUserData( ( void* ) n ); // missuse user data as index - } - } - - bool bAllSigsValid = (nValidSigs == nInfos); - bool bAllCertsValid = (nValidCerts == nInfos); - bool bShowValidState = nInfos && (bAllSigsValid && bAllCertsValid && bAllNewSignatures); - - bool bShowNotValidatedState = nInfos && (bAllSigsValid && (!bAllCertsValid || !bAllNewSignatures)); - bool bShowInvalidState = nInfos && !bAllSigsValid; - - maSigsValidImg.Show( bShowValidState); - maSigsValidFI.Show( bShowValidState ); - maSigsInvalidImg.Show( bShowInvalidState ); - maSigsInvalidFI.Show( bShowInvalidState ); - - maSigsNotvalidatedImg.Show(bShowNotValidatedState); - //bAllNewSignatures is always true if we are not in document mode - maSigsNotvalidatedFI.Show(nInfos && bAllSigsValid && ! bAllCertsValid); - maSigsOldSignatureFI.Show(nInfos && bAllSigsValid && bAllCertsValid && !bAllNewSignatures); - - SignatureHighlightHdl( NULL ); -} - - -//If bUseTempStream is true then the temporary signature stream is used. -//Otherwise the real signature stream is used. -void DigitalSignaturesDialog::ImplGetSignatureInformations(bool bUseTempStream) -{ - maCurrentSignatureInformations.clear(); - - maSignatureHelper.StartMission(); - - SignatureStreamHelper aStreamHelper = ImplOpenSignatureStream( - css::embed::ElementModes::READ, bUseTempStream); - if ( aStreamHelper.xSignatureStream.is() ) - { - uno::Reference< io::XInputStream > xInputStream( aStreamHelper.xSignatureStream, uno::UNO_QUERY ); - maSignatureHelper.ReadAndVerifySignature( xInputStream ); - } - maSignatureHelper.EndMission(); - - maCurrentSignatureInformations = maSignatureHelper.GetSignatureInformations(); - - mbVerifySignatures = false; -} - -void DigitalSignaturesDialog::ImplShowSignaturesDetails() -{ - if( maSignaturesLB.FirstSelected() ) - { - sal_uInt16 nSelected = (sal_uInt16) (sal_uIntPtr) maSignaturesLB.FirstSelected()->GetUserData(); - const SignatureInformation& rInfo = maCurrentSignatureInformations[ nSelected ]; - css::uno::Reference<css::xml::crypto::XSecurityEnvironment > xSecEnv = - maSignatureHelper.GetSecurityEnvironment(); - css::uno::Reference<com::sun::star::security::XSerialNumberAdapter> xSerialNumberAdapter = - ::com::sun::star::security::SerialNumberAdapter::create(mxCtx); - // Use Certificate from doc, not from key store - uno::Reference< dcss::security::XCertificate > xCert; - if (rInfo.ouX509Certificate.getLength()) - xCert = xSecEnv->createCertificateFromAscii(rInfo.ouX509Certificate); - //fallback if no certificate is embedded, get if from store - if (!xCert.is()) - xCert = xSecEnv->getCertificate( rInfo.ouX509IssuerName, xSerialNumberAdapter->toSequence( rInfo.ouX509SerialNumber ) ); - - DBG_ASSERT( xCert.is(), "Error getting cCertificate!" ); - if ( xCert.is() ) - { - CertificateViewer aViewer( this, maSignatureHelper.GetSecurityEnvironment(), xCert, sal_False ); - aViewer.Execute(); - } - } -} - -//If bTempStream is true, then a temporary stream is return. If it is false then, the actual -//signature stream is used. -//Everytime the user presses Add a new temporary stream is created. -//We keep the temporary stream as member because ImplGetSignatureInformations -//will later access the stream to create DocumentSignatureInformation objects -//which are stored in maCurrentSignatureInformations. -SignatureStreamHelper DigitalSignaturesDialog::ImplOpenSignatureStream( - sal_Int32 nStreamOpenMode, bool bTempStream) -{ - SignatureStreamHelper aHelper; - if (bTempStream) - { - if (nStreamOpenMode & css::embed::ElementModes::TRUNCATE) - { - //We write always into a new temporary stream. - mxTempSignatureStream = Reference < css::io::XStream >( - mxCtx->getServiceManager()->createInstanceWithContext( - OUSTR( "com.sun.star.io.TempFile" ), mxCtx) , - UNO_QUERY_THROW); - aHelper.xSignatureStream = mxTempSignatureStream; - } - else - { - //When we read from the temp stream, then we must have previously - //created one. - OSL_ASSERT(mxTempSignatureStream.is()); - } - aHelper.xSignatureStream = mxTempSignatureStream; - } - else - { - //No temporary stream - if (!mxSignatureStream.is()) - { - //We may not have a dedicated stream for writing the signature - //So we take one directly from the storage - //Or DocumentDigitalSignatures::showDocumentContentSignatures was called, - //in which case Add/Remove is not allowed. This is done, for example, if the - //document is readonly - aHelper = DocumentSignatureHelper::OpenSignatureStream( - mxStore, nStreamOpenMode, meSignatureMode ); - } - else - { - aHelper.xSignatureStream = mxSignatureStream; - } - } - - if (nStreamOpenMode & css::embed::ElementModes::TRUNCATE) - { - css::uno::Reference < css::io::XTruncate > xTruncate( - aHelper.xSignatureStream, UNO_QUERY_THROW); - DBG_ASSERT( xTruncate.is(), "ImplOpenSignatureStream - Stream does not support xTruncate!" ); - xTruncate->truncate(); - } - else if ( bTempStream || mxSignatureStream.is()) - { - //In case we read the signature stream from the storage directly, - //which is the case when DocumentDigitalSignatures::showDocumentContentSignatures - //then XSeakable is not supported - css::uno::Reference < css::io::XSeekable > xSeek( - aHelper.xSignatureStream, UNO_QUERY_THROW); - DBG_ASSERT( xSeek.is(), "ImplOpenSignatureStream - Stream does not support xSeekable!" ); - xSeek->seek( 0 ); - } - - return aHelper; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/xmlsecurity/source/dialogs/digitalsignaturesdialog.hrc b/xmlsecurity/source/dialogs/digitalsignaturesdialog.hrc deleted file mode 100644 index 98cb51782..000000000 --- a/xmlsecurity/source/dialogs/digitalsignaturesdialog.hrc +++ /dev/null @@ -1,36 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#if ! defined INCLUDED_DIGITALSIGNATURESDIALOG_HRC -#define INCLUDED_DIGITALSIGNATURESDIALOG_HRC - -//global.hrc in xmlsecurity/inc starts at 1000 -#define RID_DIGITALSIGNATUREDLG_START 2000 - -#define RID_XMLSECDLG_OLD_ODF_FORMAT RID_DIGITALSIGNATUREDLG_START -#define MSG_XMLSECDLG_QUERY_REMOVEDOCSIGNBEFORESIGN (RID_DIGITALSIGNATUREDLG_START + 1) -#endif diff --git a/xmlsecurity/source/dialogs/digitalsignaturesdialog.src b/xmlsecurity/source/dialogs/digitalsignaturesdialog.src deleted file mode 100644 index 5b80adf13..000000000 --- a/xmlsecurity/source/dialogs/digitalsignaturesdialog.src +++ /dev/null @@ -1,207 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include "dialogs.hrc" -#include "helpids.hrc" -#include "digitalsignaturesdialog.hrc" - -ModalDialog RID_XMLSECDLG_DIGSIG -{ - HelpId = HID_XMLSEC_DLG_DIGSIG; - Size = MAP_APPFONT( 234, 191 ); - OutputSize = TRUE; - Closeable = TRUE; - Moveable = TRUE; - SVLook = TRUE; - - Text [ en-US ] = "Digital Signatures"; - - FixedText FT_HINT_DOC - { - Pos = MAP_APPFONT( 6, 3 ); - Size = MAP_APPFONT( 222, 8 ); - Hide = TRUE; - Text [ en-US ] = "The following have signed the document content:"; - }; - FixedText FT_HINT_BASIC - { - Pos = MAP_APPFONT( 6, 3 ); - Size = MAP_APPFONT( 222, 8 ); - Hide = TRUE; - Text [ en-US ] = "The following have signed the document macro:"; - }; - FixedText FT_HINT_PACK - { - Pos = MAP_APPFONT( 6, 3 ); - Size = MAP_APPFONT( 222, 8 ); - Hide = TRUE; - Text [ en-US ] = "The following have signed this package:"; - }; - Control LB_SIGNATURES - { - HelpId = HID_XMLSEC_CTRL_SIGNATURESDLG; - Pos = MAP_APPFONT( 6, 14 ); - Size = MAP_APPFONT( 222, 109 ); - SVLook = TRUE; - Border = TRUE; - }; - String STR_HEADERBAR - { - Text [ en-US ] = "\tSigned by\tDigital ID issued by\tDate"; - }; - String STR_VALID_SIGNATURE - { - Text [ en-US ] = "Valid signature"; - }; - String STR_NO_INFO_TO_VERIFY - { - Text [ en-US ] = "Certificate could not be validated"; - }; - String STR_INVALID_SIGNATURE - { - Text [ en-US ] = "The signatures in this document are invalid"; - }; - - FixedImage IMG_STATE_VALID - { - Pos = MAP_APPFONT( 6, 127 ); - Size = MAP_APPFONT( 33, 22 ); - Fixed = Image - { - ImageBitmap = Bitmap { File = "signet_11x16.png"; }; - MaskColor = STD_MASKCOLOR; - }; - }; - FixedText FI_STATE_VALID - { - Pos = MAP_APPFONT( 6, 127 ); - Size = MAP_APPFONT( 222, 8 ); - Hide = TRUE; - Text [ en-US ] = "The signatures in this document are valid"; - }; - FixedText FI_STATE_OLDSIGNATURE - { - Pos = MAP_APPFONT( 6, 127 ); - Size = MAP_APPFONT( 222, 8 ); - Hide = TRUE; - Text [ en-US ] = "Not all parts of the document are signed"; - }; - FixedImage IMG_STATE_BROKEN - { - Pos = MAP_APPFONT( 6, 127 ); - Size = MAP_APPFONT( 33, 22 ); - Fixed = Image - { - ImageBitmap = Bitmap { File = "caution_11x16.png"; }; - MaskColor = STD_MASKCOLOR; - }; - }; - FixedText FI_STATE_BROKEN - { - Pos = MAP_APPFONT( 6, 127 ); - Size = MAP_APPFONT( 222, 8 ); - Hide = TRUE; - Text [ en-US ] = "The signatures in this document are invalid"; - }; - FixedImage IMG_STATE_NOTVALIDATED - { - Pos = MAP_APPFONT( 6, 127 ); - Size = MAP_APPFONT( 33, 22 ); - Fixed = Image - { - ImageBitmap = Bitmap { File = "notcertificate_16.png"; }; - MaskColor = STD_MASKCOLOR; - }; - }; - FixedText FI_STATE_NOTVALIDATED - { - Pos = MAP_APPFONT( 6, 127 ); - Size = MAP_APPFONT( 222, 8 ); - Hide = TRUE; - }; - PushButton BTN_VIEWCERT - { - HelpID = "xmlsecurity:PushButton:RID_XMLSECDLG_DIGSIG:BTN_VIEWCERT"; - Pos = MAP_APPFONT( 6, 142 ); - Size = MAP_APPFONT( 70, 14 ); - Text [ en-US ] = "View Certificate..."; - }; - PushButton BTN_ADDCERT - { - HelpID = "xmlsecurity:PushButton:RID_XMLSECDLG_DIGSIG:BTN_ADDCERT"; - Pos = MAP_APPFONT( 82, 142 ); - Size = MAP_APPFONT( 70, 14 ); - Text [ en-US ] = "Sign Document..."; - }; - PushButton BTN_REMOVECERT - { - HelpID = "xmlsecurity:PushButton:RID_XMLSECDLG_DIGSIG:BTN_REMOVECERT"; - Pos = MAP_APPFONT( 158, 142 ); - Size = MAP_APPFONT( 70, 14 ); - Text [ en-US ] = "Remove"; - }; - FixedLine FL_BOTTOM_SEP - { - Pos = MAP_APPFONT( 0, 160 ); - Size = MAP_APPFONT( 234, 8 ); - }; - OKButton BTN_OK - { - DefButton = TRUE; - Pos = MAP_APPFONT( 178, 171 ); - Size = MAP_APPFONT( 50, 14 ); - Text [ en-US ] = "Close"; - }; - HelpButton BTN_HELP - { - Pos = MAP_APPFONT( 6, 171 ); - Size = MAP_APPFONT( 50, 14 ); - }; -}; - - -ErrorBox RID_XMLSECDLG_OLD_ODF_FORMAT -{ - Buttons = WB_OK ; - DefButton = WB_DEF_OK ; - Message [ en-US ] = - "This document contains signatures in ODF 1.1 (OpenOffice.org 2.x) format. " - "Signing documents in %PRODUCTNAME %PRODUCTVERSION requires ODF 1.2 format version. " - "Thus no signatures can be added or removed to this document.\n\n" - "Save document in ODF 1.2 format and add all desired signatures again."; -}; - - -QueryBox MSG_XMLSECDLG_QUERY_REMOVEDOCSIGNBEFORESIGN -{ - Buttons = WB_YES_NO ; - DefButton = WB_DEF_NO ; - Message [ en-US ] = "Adding or removing a macro signature will remove all document signatures.\n" - "Do you really want to continue?"; -}; - - diff --git a/xmlsecurity/source/dialogs/helpids.hrc b/xmlsecurity/source/dialogs/helpids.hrc deleted file mode 100644 index 6b6088669..000000000 --- a/xmlsecurity/source/dialogs/helpids.hrc +++ /dev/null @@ -1,55 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _XMLSEC_HELPIDS_HRC -#define _XMLSEC_HELPIDS_HRC - -// include --------------------------------------------------------------- - -#include <svl/solar.hrc> - -// Help-Ids -------------------------------------------------------------- - -#define HID_XMLSEC_TP_MACROSEC "XMLSECURITY_HID_XMLSEC_TP_MACROSEC" -#define HID_XMLSEC_TP_SECLEVEL "XMLSECURITY_HID_XMLSEC_TP_SECLEVEL" -#define HID_XMLSEC_TP_TRUSTSOURCES "XMLSECURITY_HID_XMLSEC_TP_TRUSTSOURCES" -#define HID_XMLSEC_DLG_CERTVIEWER "XMLSECURITY_HID_XMLSEC_DLG_CERTVIEWER" -#define HID_XMLSEC_TP_GENERAL "XMLSECURITY_HID_XMLSEC_TP_GENERAL" -#define HID_XMLSEC_TP_DETAILS "XMLSECURITY_HID_XMLSEC_TP_DETAILS" -#define HID_XMLSEC_TP_CERTPATH "XMLSECURITY_HID_XMLSEC_TP_CERTPATH" -#define HID_XMLSEC_DLG_DIGSIG "XMLSECURITY_HID_XMLSEC_DLG_DIGSIG" -#define HID_XMLSEC_TP_MACROWARN "XMLSECURITY_HID_XMLSEC_TP_MACROWARN" -#define HID_XMLSEC_DLG_CERTCHOOSER "XMLSECURITY_HID_XMLSEC_DLG_CERTCHOOSER" -#define HID_XMLSEC_CTRL_TRUSTSOURCES "XMLSECURITY_HID_XMLSEC_CTRL_TRUSTSOURCES" -#define HID_XMLSEC_CTRL_ELEMENTS "XMLSECURITY_HID_XMLSEC_CTRL_ELEMENTS" -#define HID_XMLSEC_CTRL_VIEWSIGNATURES "XMLSECURITY_HID_XMLSEC_CTRL_VIEWSIGNATURES" -#define HID_XMLSEC_CTRL_SIGNATURESDLG "XMLSECURITY_HID_XMLSEC_CTRL_SIGNATURESDLG" -#define HID_XMLSEC_CTRL_CHOOSESIGNATURES "XMLSECURITY_HID_XMLSEC_CTRL_CHOOSESIGNATURES" -#define HID_XMLSEC_TREE_SIGNATURESDLG "XMLSECURITY_HID_XMLSEC_TREE_SIGNATURESDLG" - -#endif // #ifndef _XMLSEC_HELPIDS_HRC - diff --git a/xmlsecurity/source/dialogs/macrosecurity.cxx b/xmlsecurity/source/dialogs/macrosecurity.cxx deleted file mode 100644 index fc301230d..000000000 --- a/xmlsecurity/source/dialogs/macrosecurity.cxx +++ /dev/null @@ -1,456 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_xmlsecurity.hxx" - -#include <xmlsecurity/macrosecurity.hxx> -#include <xmlsecurity/certificatechooser.hxx> -#include <xmlsecurity/certificateviewer.hxx> -#include <xmlsecurity/biginteger.hxx> - -#include <osl/file.hxx> -#include <vcl/help.hxx> - - -#include <com/sun/star/xml/crypto/XSecurityEnvironment.hpp> -#include <com/sun/star/security/SerialNumberAdapter.hpp> -#include <comphelper/sequence.hxx> -#include <sfx2/filedlghelper.hxx> -#include <comphelper/processfactory.hxx> -#include <com/sun/star/uno/Exception.hpp> -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/ui/dialogs/XFolderPicker.hpp> -#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp> -#include <tools/urlobj.hxx> - -#include <vcl/msgbox.hxx> - -#include "dialogs.hrc" -#include "resourcemanager.hxx" - -/* HACK: disable some warnings for MS-C */ -#ifdef _MSC_VER -#pragma warning (disable : 4355) // 4355: this used in initializer-list -#endif - -using namespace ::com::sun::star; - - -IMPL_LINK( MacroSecurity, OkBtnHdl, void*, EMPTYARG ) -{ - mpLevelTP->ClosePage(); - mpTrustSrcTP->ClosePage(); - - EndDialog( RET_OK ); - - return 0; -} - -MacroSecurity::MacroSecurity( Window* _pParent, const cssu::Reference< cssu::XComponentContext> &_rxCtx, const cssu::Reference< dcss::xml::crypto::XSecurityEnvironment >& _rxSecurityEnvironment ) - :TabDialog ( _pParent, XMLSEC_RES( RID_XMLSECTP_MACROSEC ) ) - ,maTabCtrl ( this, XMLSEC_RES( 1 ) ) - ,maOkBtn ( this, XMLSEC_RES( BTN_OK ) ) - ,maCancelBtn ( this, XMLSEC_RES( BTN_CANCEL ) ) - ,maHelpBtn ( this, XMLSEC_RES( BTN_HELP ) ) - ,maResetBtn ( this, XMLSEC_RES( BTN_RESET ) ) -{ - FreeResource(); - - mxCtx = _rxCtx; - mxSecurityEnvironment = _rxSecurityEnvironment; - - mpLevelTP = new MacroSecurityLevelTP( &maTabCtrl, this ); - mpTrustSrcTP = new MacroSecurityTrustedSourcesTP( &maTabCtrl, this ); - - maTabCtrl.SetTabPage( RID_XMLSECTP_SECLEVEL, mpLevelTP ); - maTabCtrl.SetTabPage( RID_XMLSECTP_TRUSTSOURCES, mpTrustSrcTP ); - maTabCtrl.SetCurPageId( RID_XMLSECTP_SECLEVEL ); - - maOkBtn.SetClickHdl( LINK( this, MacroSecurity, OkBtnHdl ) ); -} - -MacroSecurity::~MacroSecurity() -{ - delete maTabCtrl.GetTabPage( RID_XMLSECTP_TRUSTSOURCES ); - delete maTabCtrl.GetTabPage( RID_XMLSECTP_SECLEVEL ); -} - - -MacroSecurityTP::MacroSecurityTP( Window* _pParent, const ResId& _rResId, MacroSecurity* _pDlg ) - :TabPage ( _pParent, _rResId ) - ,mpDlg ( _pDlg ) -{ -} - -MacroSecurityLevelTP::MacroSecurityLevelTP( Window* _pParent, MacroSecurity* _pDlg ) - :MacroSecurityTP ( _pParent, XMLSEC_RES( RID_XMLSECTP_SECLEVEL ), _pDlg ) - ,maSecLevelFL ( this, XMLSEC_RES( FL_SECLEVEL ) ) - ,maSecReadonlyFI ( this, XMLSEC_RES( FI_SEC_READONLY )) - ,maVeryHighRB ( this, XMLSEC_RES( RB_VERYHIGH ) ) - ,maHighRB ( this, XMLSEC_RES( RB_HIGH ) ) - ,maMediumRB ( this, XMLSEC_RES( RB_MEDIUM ) ) - ,maLowRB ( this, XMLSEC_RES( RB_LOW ) ) -{ - FreeResource(); - - maLowRB.SetClickHdl( LINK( this, MacroSecurityLevelTP, RadioButtonHdl ) ); - maMediumRB.SetClickHdl( LINK( this, MacroSecurityLevelTP, RadioButtonHdl ) ); - maHighRB.SetClickHdl( LINK( this, MacroSecurityLevelTP, RadioButtonHdl ) ); - maVeryHighRB.SetClickHdl( LINK( this, MacroSecurityLevelTP, RadioButtonHdl ) ); - - mnCurLevel = (sal_uInt16) mpDlg->maSecOptions.GetMacroSecurityLevel(); - sal_Bool bReadonly = mpDlg->maSecOptions.IsReadOnly( SvtSecurityOptions::E_MACRO_SECLEVEL ); - - RadioButton* pCheck = 0; - switch( mnCurLevel ) - { - case 3: pCheck = &maVeryHighRB; break; - case 2: pCheck = &maHighRB; break; - case 1: pCheck = &maMediumRB; break; - case 0: pCheck = &maLowRB; break; - } - if(pCheck) - pCheck->Check(); - else - { - OSL_FAIL("illegal macro security level"); - } - maSecReadonlyFI.Show(bReadonly); - if(bReadonly) - { - //move to the selected button - if( pCheck && pCheck != &maVeryHighRB) - { - long nDiff = pCheck->GetPosPixel().Y() - maVeryHighRB.GetPosPixel().Y(); - Point aPos(maSecReadonlyFI.GetPosPixel()); - aPos.Y() += nDiff; - maSecReadonlyFI.SetPosPixel(aPos); - } - maVeryHighRB.Enable(sal_False); - maHighRB.Enable(sal_False); - maMediumRB.Enable(sal_False); - maLowRB.Enable(sal_False); - } - -} - -IMPL_LINK( MacroSecurityLevelTP, RadioButtonHdl, RadioButton*, EMPTYARG ) -{ - sal_uInt16 nNewLevel = 0; - if( maVeryHighRB.IsChecked() ) - nNewLevel = 3; - else if( maHighRB.IsChecked() ) - nNewLevel = 2; - else if( maMediumRB.IsChecked() ) - nNewLevel = 1; - - if ( nNewLevel != mnCurLevel ) - { - mnCurLevel = nNewLevel; - mpDlg->EnableReset(); - } - - return 0; -} - -void MacroSecurityLevelTP::ClosePage( void ) -{ - mpDlg->maSecOptions.SetMacroSecurityLevel( mnCurLevel ); -} - -void MacroSecurityTrustedSourcesTP::ImplCheckButtons() -{ - bool bCertSelected = maTrustCertLB.FirstSelected() != NULL; - maViewCertPB.Enable( bCertSelected ); - maRemoveCertPB.Enable( bCertSelected && !mbAuthorsReadonly); - - bool bLocationSelected = maTrustFileLocLB.GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND; - maRemoveLocPB.Enable( bLocationSelected && !mbURLsReadonly); -} - - -IMPL_LINK( MacroSecurityTrustedSourcesTP, ViewCertPBHdl, void*, EMPTYARG ) -{ - if( maTrustCertLB.FirstSelected() ) - { - sal_uInt16 nSelected = sal_uInt16( sal_uIntPtr( maTrustCertLB.FirstSelected()->GetUserData() ) ); - - uno::Reference< dcss::security::XSerialNumberAdapter > xSerialNumberAdapter = - ::com::sun::star::security::SerialNumberAdapter::create(mpDlg->mxCtx); - - uno::Reference< dcss::security::XCertificate > xCert = mpDlg->mxSecurityEnvironment->getCertificate( maTrustedAuthors[nSelected][0], xSerialNumberAdapter->toSequence( maTrustedAuthors[nSelected][1] ) ); - - // If we don't get it, create it from signature data: - if ( !xCert.is() ) - xCert = mpDlg->mxSecurityEnvironment->createCertificateFromAscii( maTrustedAuthors[nSelected][2] ) ; - - DBG_ASSERT( xCert.is(), "*MacroSecurityTrustedSourcesTP::ViewCertPBHdl(): Certificate not found and can't be created!" ); - - if ( xCert.is() ) - { - CertificateViewer aViewer( this, mpDlg->mxSecurityEnvironment, xCert, sal_False ); - aViewer.Execute(); - } - } - return 0; -} - -IMPL_LINK( MacroSecurityTrustedSourcesTP, RemoveCertPBHdl, void*, EMPTYARG ) -{ - if( maTrustCertLB.FirstSelected() ) - { - sal_uInt16 nAuthor = sal_uInt16( sal_uIntPtr( maTrustCertLB.FirstSelected()->GetUserData() ) ); - ::comphelper::removeElementAt( maTrustedAuthors, nAuthor ); - - FillCertLB(); - ImplCheckButtons(); - } - - return 0; -} - -IMPL_LINK( MacroSecurityTrustedSourcesTP, AddLocPBHdl, void*, EMPTYARG ) -{ - try - { - rtl::OUString aService( RTL_CONSTASCII_USTRINGPARAM( FOLDER_PICKER_SERVICE_NAME ) ); - uno::Reference < lang::XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() ); - uno::Reference < ui::dialogs::XFolderPicker > xFolderPicker( xFactory->createInstance( aService ), uno::UNO_QUERY ); - - short nRet = xFolderPicker->execute(); - - if( ui::dialogs::ExecutableDialogResults::OK != nRet ) - return 0; - - rtl::OUString aPathStr = xFolderPicker->getDirectory(); - INetURLObject aNewObj( aPathStr ); - aNewObj.removeFinalSlash(); - - // then the new path also an URL else system path - ::rtl::OUString aSystemFileURL = ( aNewObj.GetProtocol() != INET_PROT_NOT_VALID ) ? - aPathStr : aNewObj.getFSysPath( INetURLObject::FSYS_DETECT ); - - String aNewPathStr(aSystemFileURL); - - 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& ) - { - DBG_ERRORFILE( "MacroSecurityTrustedSourcesTP::AddLocPBHdl(): exception from folder picker" ); - } - - return 0; -} - -IMPL_LINK( MacroSecurityTrustedSourcesTP, RemoveLocPBHdl, void*, EMPTYARG ) -{ - sal_uInt16 nSel = maTrustFileLocLB.GetSelectEntryPos(); - if( nSel != LISTBOX_ENTRY_NOTFOUND ) - { - maTrustFileLocLB.RemoveEntry( nSel ); - // Trusted Path could not be removed (#i33584#) - // after remove an entry, select another one if exists - sal_uInt16 nNewCount = maTrustFileLocLB.GetEntryCount(); - if ( nNewCount > 0 ) - { - if ( nSel >= nNewCount ) - nSel = nNewCount - 1; - maTrustFileLocLB.SelectEntryPos( nSel ); - } - ImplCheckButtons(); - } - - return 0; -} - -IMPL_LINK( MacroSecurityTrustedSourcesTP, TrustCertLBSelectHdl, void*, EMPTYARG ) -{ - ImplCheckButtons(); - return 0; -} - -IMPL_LINK( MacroSecurityTrustedSourcesTP, TrustFileLocLBSelectHdl, void*, EMPTYARG ) -{ - ImplCheckButtons(); - return 0; -} - -void MacroSecurityTrustedSourcesTP::FillCertLB( void ) -{ - maTrustCertLB.Clear(); - - sal_uInt32 nEntries = maTrustedAuthors.getLength(); - - if ( nEntries && mpDlg->mxSecurityEnvironment.is() ) - { - for( sal_uInt32 nEntry = 0 ; nEntry < nEntries ; ++nEntry ) - { - cssu::Sequence< ::rtl::OUString >& rEntry = maTrustedAuthors[ nEntry ]; - uno::Reference< css::security::XCertificate > xCert; - - // create from RawData - xCert = mpDlg->mxSecurityEnvironment->createCertificateFromAscii( rEntry[ 2 ] ); - - SvLBoxEntry* pLBEntry = maTrustCertLB.InsertEntry( XmlSec::GetContentPart( xCert->getSubjectName() ) ); - maTrustCertLB.SetEntryText( XmlSec::GetContentPart( xCert->getIssuerName() ), pLBEntry, 1 ); - maTrustCertLB.SetEntryText( XmlSec::GetDateTimeString( xCert->getNotValidAfter() ), pLBEntry, 2 ); - pLBEntry->SetUserData( ( void* ) (sal_IntPtr)nEntry ); // missuse user data as index - } - } -} - -MacroSecurityTrustedSourcesTP::MacroSecurityTrustedSourcesTP( Window* _pParent, MacroSecurity* _pDlg ) - :MacroSecurityTP ( _pParent, XMLSEC_RES( RID_XMLSECTP_TRUSTSOURCES ), _pDlg ) - ,maTrustCertFL ( this, XMLSEC_RES( FL_TRUSTCERT ) ) - ,maTrustCertROFI ( this, XMLSEC_RES( FI_TRUSTCERT_RO ) ) - ,m_aTrustCertLBContainer(this, XMLSEC_RES(LB_TRUSTCERT)) - ,maTrustCertLB(m_aTrustCertLBContainer) - ,maAddCertPB ( this, XMLSEC_RES( PB_ADD_TRUSTCERT ) ) - ,maViewCertPB ( this, XMLSEC_RES( PB_VIEW_TRUSTCERT ) ) - ,maRemoveCertPB ( this, XMLSEC_RES( PB_REMOVE_TRUSTCERT ) ) - ,maTrustFileLocFL ( this, XMLSEC_RES( FL_TRUSTFILELOC ) ) - ,maTrustFileROFI ( this, XMLSEC_RES( FI_TRUSTFILE_RO ) ) - ,maTrustFileLocFI ( this, XMLSEC_RES( FI_TRUSTFILELOC ) ) - ,maTrustFileLocLB ( this, XMLSEC_RES( LB_TRUSTFILELOC ) ) - ,maAddLocPB ( this, XMLSEC_RES( FL_ADD_TRUSTFILELOC ) ) - ,maRemoveLocPB ( this, XMLSEC_RES( FL_REMOVE_TRUSTFILELOC ) ) -{ - static long nTabs[] = { 3, 0, 35*CS_LB_WIDTH/100, 70*CS_LB_WIDTH/100 }; - maTrustCertLB.SetTabs( &nTabs[ 0 ] ); - maTrustCertLB.InsertHeaderEntry( String( XMLSEC_RES( STR_HEADERBAR ) ) ); - - FreeResource(); - - maTrustCertLB.SetSelectHdl( LINK( this, MacroSecurityTrustedSourcesTP, TrustCertLBSelectHdl ) ); - maAddCertPB.Hide(); // not used in the moment... - maViewCertPB.SetClickHdl( LINK( this, MacroSecurityTrustedSourcesTP, ViewCertPBHdl ) ); - maViewCertPB.Disable(); - maRemoveCertPB.SetClickHdl( LINK( this, MacroSecurityTrustedSourcesTP, RemoveCertPBHdl ) ); - maRemoveCertPB.Disable(); - - maTrustFileLocLB.SetSelectHdl( LINK( this, MacroSecurityTrustedSourcesTP, TrustFileLocLBSelectHdl ) ); - maAddLocPB.SetClickHdl( LINK( this, MacroSecurityTrustedSourcesTP, AddLocPBHdl ) ); - maRemoveLocPB.SetClickHdl( LINK( this, MacroSecurityTrustedSourcesTP, RemoveLocPBHdl ) ); - maRemoveLocPB.Disable(); - - maTrustedAuthors = mpDlg->maSecOptions.GetTrustedAuthors(); - mbAuthorsReadonly = mpDlg->maSecOptions.IsReadOnly( SvtSecurityOptions::E_MACRO_TRUSTEDAUTHORS ); - maTrustCertROFI.Show( mbAuthorsReadonly ); - mbAuthorsReadonly ? maTrustCertLB.DisableTable() : maTrustCertLB.EnableTable(); - - FillCertLB(); - - cssu::Sequence< rtl::OUString > aSecureURLs = mpDlg->maSecOptions.GetSecureURLs(); - mbURLsReadonly = mpDlg->maSecOptions.IsReadOnly( SvtSecurityOptions::E_SECUREURLS ); - maTrustFileROFI.Show( mbURLsReadonly ); - maTrustFileLocLB.Enable( !mbURLsReadonly ); - maAddLocPB .Enable( !mbURLsReadonly ); - - sal_Int32 nEntryCnt = aSecureURLs.getLength(); - for( sal_Int32 i = 0 ; i < nEntryCnt ; ++i ) - { - ::rtl::OUString aSystemFileURL( aSecureURLs[ i ] ); - osl::FileBase::getSystemPathFromFileURL( aSystemFileURL, aSystemFileURL ); - maTrustFileLocLB.InsertEntry( aSystemFileURL ); - } -} - -void MacroSecurityTrustedSourcesTP::ActivatePage() -{ - mpDlg->EnableReset( false ); - FillCertLB(); -} - -void MacroSecurityTrustedSourcesTP::ClosePage( void ) -{ - sal_uInt16 nEntryCnt = maTrustFileLocLB.GetEntryCount(); - if( nEntryCnt ) - { - cssu::Sequence< rtl::OUString > aSecureURLs( nEntryCnt ); - for( sal_uInt16 i = 0 ; i < nEntryCnt ; ++i ) - { - ::rtl::OUString aURL( maTrustFileLocLB.GetEntry( i ) ); - osl::FileBase::getFileURLFromSystemPath( aURL, aURL ); - aSecureURLs[ i ] = aURL; - } - - mpDlg->maSecOptions.SetSecureURLs( aSecureURLs ); - } - // Trusted Path could not be removed (#i33584#) - // don't forget to remove the old saved SecureURLs - else - mpDlg->maSecOptions.SetSecureURLs( cssu::Sequence< rtl::OUString >() ); - - mpDlg->maSecOptions.SetTrustedAuthors( maTrustedAuthors ); -} - -ReadOnlyImage::ReadOnlyImage(Window* pParent, const ResId rResId) : - FixedImage(pParent, rResId) -{ - SetImage( Image(XMLSEC_RES( RID_XMLSECTP_LOCK ))); -} - -ReadOnlyImage::~ReadOnlyImage() -{ -} - -void ReadOnlyImage::RequestHelp( const HelpEvent& rHEvt ) -{ - if( Help::IsBalloonHelpEnabled() || Help::IsQuickHelpEnabled() ) - { - Rectangle aLogicPix( LogicToPixel( Rectangle( Point(), GetOutputSize() ) ) ); - Rectangle aScreenRect( OutputToScreenPixel( aLogicPix.TopLeft() ), - OutputToScreenPixel( aLogicPix.BottomRight() ) ); - - String aStr(ReadOnlyImage::GetHelpTip()); - if ( Help::IsBalloonHelpEnabled() ) - Help::ShowBalloon( this, rHEvt.GetMousePosPixel(), aScreenRect, - aStr ); - else if ( Help::IsQuickHelpEnabled() ) - Help::ShowQuickHelp( this, aScreenRect, aStr ); - } - else - Window::RequestHelp( rHEvt ); -} - -const String& ReadOnlyImage::GetHelpTip() -{ - static String aStr(XMLSEC_RES( RID_XMLSECTP_READONLY_CONFIG_TIP)); - return aStr; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/xmlsecurity/source/dialogs/macrosecurity.src b/xmlsecurity/source/dialogs/macrosecurity.src deleted file mode 100644 index 8c790986a..000000000 --- a/xmlsecurity/source/dialogs/macrosecurity.src +++ /dev/null @@ -1,241 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include "dialogs.hrc" -#include "helpids.hrc" - -TabDialog RID_XMLSECTP_MACROSEC -{ - HelpID = HID_XMLSEC_TP_MACROSEC; - Size = MAP_APPFONT( TD_WIDTH, TD_HEIGHT ); - OutputSize = TRUE; - Closeable = TRUE; - Moveable = TRUE; - SVLook = TRUE; - - Text [ en-US ] = "Macro Security"; - TabControl 1 - { - Pos = MAP_APPFONT( TD_SP_INNERBORDER_LEFT, TD_SP_INNERBORDER_TOP ); - Size = MAP_APPFONT( TP_WIDTH, TP_HEIGHT+RIDDER_HEIGHT ); - SVLook = TRUE ; - PageList = - { - PageItem - { - Identifier = RID_XMLSECTP_SECLEVEL; - Text [ en-US ] = "Security Level"; - }; - PageItem - { - Identifier = RID_XMLSECTP_TRUSTSOURCES; - Text [ en-US ] = "Trusted Sources"; - }; - }; - }; - OKButton BTN_OK - { - Pos = MAP_APPFONT( MS_COL_H, CV_ROW_A ); - Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT ); - DefButton = TRUE; - }; - CancelButton BTN_CANCEL - { - Pos = MAP_APPFONT( MS_COL_F, CV_ROW_A ); - Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT ); - }; - HelpButton BTN_HELP - { - Pos = MAP_APPFONT( MS_COL_D, CV_ROW_A ); - Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT ); - }; - PushButton BTN_RESET - { - Pos = MAP_APPFONT( MS_COL_B, CV_ROW_A ); - Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT ); - Text [ en-US ] = "Reset"; - }; -}; - -TabPage RID_XMLSECTP_SECLEVEL -{ - HelpId = HID_XMLSEC_TP_SECLEVEL; - Size = MAP_APPFONT( TP_WIDTH, TP_HEIGHT ); - OutputSize = TRUE; - Hide = TRUE; - SVLook = TRUE; - FixedLine FL_SECLEVEL - { - Pos = MAP_APPFONT( SL_COL_0, SL_ROW_0 ); - Size = MAP_APPFONT( SL_COL_3-SL_COL_0, RSC_CD_FIXEDLINE_HEIGHT ); - Hide = TRUE; - }; - FixedImage FI_SEC_READONLY - { - Pos = MAP_APPFONT( SL_COL_1 - 7, SL_ROW_0 + 4 ); - Size = MAP_APPFONT( 6, 6 ); - }; - RadioButton RB_VERYHIGH - { - HelpID = "xmlsecurity:RadioButton:RID_XMLSECTP_SECLEVEL:RB_VERYHIGH"; - Pos = MAP_APPFONT( SL_COL_1, SL_ROW_0 ); - Size = MAP_APPFONT( SL_COL_2-SL_COL_1, RSC_BIG_RADIOBUTTON ); - WordBreak = TRUE; - Text [ en-US ] = "~Very high.\nOnly macros from trusted file locations are allowed to run. All other macros, regardless whether signed or not, are disabled."; - }; - RadioButton RB_HIGH - { - HelpID = "xmlsecurity:RadioButton:RID_XMLSECTP_SECLEVEL:RB_HIGH"; - Pos = MAP_APPFONT( SL_COL_1, SL_ROW_1 ); - Size = MAP_APPFONT( SL_COL_2-SL_COL_1, RSC_BIG_RADIOBUTTON ); - WordBreak = TRUE; - Text [ en-US ] = "H~igh.\nOnly signed macros from trusted sources are allowed to run. Unsigned macros are disabled."; - }; - RadioButton RB_MEDIUM - { - HelpID = "xmlsecurity:RadioButton:RID_XMLSECTP_SECLEVEL:RB_MEDIUM"; - Pos = MAP_APPFONT( SL_COL_1, SL_ROW_2 ); - Size = MAP_APPFONT( SL_COL_2-SL_COL_1, RSC_BIG_RADIOBUTTON ); - WordBreak = TRUE; - Text [ en-US ] = "~Medium.\nConfirmation required before executing macros from untrusted sources."; - }; - RadioButton RB_LOW - { - HelpID = "xmlsecurity:RadioButton:RID_XMLSECTP_SECLEVEL:RB_LOW"; - Pos = MAP_APPFONT( SL_COL_1, SL_ROW_3 ); - Size = MAP_APPFONT( SL_COL_2-SL_COL_1, SL_ROW_4-SL_ROW_3 ); - WordBreak = TRUE; - Text [ en-US ] = "~Low (not recommended).\nAll macros will be executed without confirmation. Use this setting only if you are certain that all documents that will be opened are safe."; - }; -}; - -TabPage RID_XMLSECTP_TRUSTSOURCES -{ - HelpId = HID_XMLSEC_TP_TRUSTSOURCES; - Size = MAP_APPFONT( TP_WIDTH, TP_HEIGHT ); - OutputSize = TRUE; - Hide = TRUE; - SVLook = TRUE; - FixedLine FL_TRUSTCERT - { - Pos = MAP_APPFONT( TS_COL_0, TS_ROW_0 ); - Size = MAP_APPFONT( TS_COL_8-TS_COL_0, RSC_CD_FIXEDLINE_HEIGHT ); - Text [ en-US ] = "Trusted certificates"; - }; - FixedImage FI_TRUSTCERT_RO - { - Pos = MAP_APPFONT( TS_COL_1 - 7, TS_ROW_1 ); - Size = MAP_APPFONT( 6, 6 ); - }; - Control LB_TRUSTCERT - { - HelpId = HID_XMLSEC_CTRL_TRUSTSOURCES; - Pos = MAP_APPFONT( TS_COL_1, TS_ROW_1 ); - Size = MAP_APPFONT( TS_COL_7-TS_COL_1, RSC_CD_TABLISTBOX_HEIGHT ); - SVLook = TRUE; - Border = TRUE; - }; - String STR_HEADERBAR - { - Text [ en-US ] = "Issued to\tIssued by\tExpiration date"; - }; - PushButton PB_ADD_TRUSTCERT - { - HelpID = "xmlsecurity:PushButton:RID_XMLSECTP_TRUSTSOURCES:PB_ADD_TRUSTCERT"; - Pos = MAP_APPFONT( TS_COL_2, TS_ROW_2 ); - Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT ); - Text [ en-US ] = "Add..."; - }; - PushButton PB_VIEW_TRUSTCERT - { - HelpID = "xmlsecurity:PushButton:RID_XMLSECTP_TRUSTSOURCES:PB_VIEW_TRUSTCERT"; - Pos = MAP_APPFONT( TS_COL_4, TS_ROW_2 ); - Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT ); - Text [ en-US ] = "View..."; - }; - PushButton PB_REMOVE_TRUSTCERT - { - HelpID = "xmlsecurity:PushButton:RID_XMLSECTP_TRUSTSOURCES:PB_REMOVE_TRUSTCERT"; - Pos = MAP_APPFONT( TS_COL_6, TS_ROW_2 ); - Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT ); - Text [ en-US ] = "Remove"; - }; - FixedLine FL_TRUSTFILELOC - { - Pos = MAP_APPFONT( TS_COL_0, TS_ROW_3 ); - Size = MAP_APPFONT( TS_COL_8-TS_COL_0, RSC_CD_FIXEDLINE_HEIGHT ); - Text [ en-US ] = "Trusted file locations"; - }; - FixedText FI_TRUSTFILELOC - { - Pos = MAP_APPFONT( TS_COL_1, TS_ROW_4 ); - Size = MAP_APPFONT( TS_COL_7-TS_COL_1, 3*RSC_CD_FIXEDLINE_HEIGHT ); - WordBreak = TRUE; - Text [ en-US ] = "Document macros are always executed if they have been opened from one of the following locations."; - }; - FixedImage FI_TRUSTFILE_RO - { - Pos = MAP_APPFONT( TS_COL_1 - 7, TS_ROW_5 ); - Size = MAP_APPFONT( 6, 6 ); - }; - ListBox LB_TRUSTFILELOC - { - HelpID = "xmlsecurity:ListBox:RID_XMLSECTP_TRUSTSOURCES:LB_TRUSTFILELOC"; - Pos = MAP_APPFONT( TS_COL_1, TS_ROW_5 ); - Size = MAP_APPFONT( TS_COL_7-TS_COL_1, TS_ROW_6-TS_ROW_5 ); - SVLook = TRUE; - Border = TRUE; - VScroll = TRUE; - Sort = TRUE; - }; - PushButton FL_ADD_TRUSTFILELOC - { - HelpID = "xmlsecurity:PushButton:RID_XMLSECTP_TRUSTSOURCES:FL_ADD_TRUSTFILELOC"; - Pos = MAP_APPFONT( TS_COL_4, TS_ROW_7 ); - Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT ); - Text [ en-US ] = "Add..."; - }; - PushButton FL_REMOVE_TRUSTFILELOC - { - HelpID = "xmlsecurity:PushButton:RID_XMLSECTP_TRUSTSOURCES:FL_REMOVE_TRUSTFILELOC"; - Pos = MAP_APPFONT( TS_COL_6, TS_ROW_7 ); - Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT ); - Text [ en-US ] = "Remove"; - }; -}; -String RID_XMLSECTP_READONLY_CONFIG_TIP -{ - Text [ en-US ] = "This setting is protected by the Administrator"; -}; -Image RID_XMLSECTP_LOCK -{ - ImageBitmap = Bitmap - { - File = "lock.bmp"; - }; - MaskColor = Color { Red=0xffff; Green=0x0000; Blue=0xffff; }; -}; diff --git a/xmlsecurity/source/dialogs/makefile.mk b/xmlsecurity/source/dialogs/makefile.mk deleted file mode 100644 index 4cead130d..000000000 --- a/xmlsecurity/source/dialogs/makefile.mk +++ /dev/null @@ -1,64 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ=..$/.. - -PRJNAME=xmlsecurity -TARGET=dialogs -TARGETTYPE=GUI - - -ENABLE_EXCEPTIONS=TRUE - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk -.INCLUDE : $(PRJ)$/util$/target.pmk - - -# --- Files -------------------------------------------------------- - -BMP_IN=$(PRJ)$/res - -SRS1NAME=dialogs -SRC1FILES = \ - digitalsignaturesdialog.src \ - certificatechooser.src \ - certificateviewer.src \ - macrosecurity.src - -SLOFILES= \ - $(SLO)$/digitalsignaturesdialog.obj \ - $(SLO)$/certificatechooser.obj \ - $(SLO)$/certificateviewer.obj \ - $(SLO)$/macrosecurity.obj \ - $(SLO)$/resourcemanager.obj - - -# --- Targets ------------------------------------------------------ - -.INCLUDE : target.mk diff --git a/xmlsecurity/source/dialogs/resourcemanager.cxx b/xmlsecurity/source/dialogs/resourcemanager.cxx deleted file mode 100644 index 8e631a410..000000000 --- a/xmlsecurity/source/dialogs/resourcemanager.cxx +++ /dev/null @@ -1,430 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_xmlsecurity.hxx" - -#include "resourcemanager.hxx" - -#include <vcl/svapp.hxx> -#include <vcl/fixed.hxx> -#include <svtools/stdctrl.hxx> -#include <svl/solar.hrc> -#include <unotools/syslocale.hxx> -#include <rtl/ustring.h> -#include <rtl/ustrbuf.h> -#include <vector> - -using ::rtl::OUString; -using namespace std; - -namespace XmlSec -{ - static ResMgr* pResMgr = 0; - static SvtSysLocale* pSysLocale = 0; - - ResMgr* GetResMgr( void ) - { - if( !pResMgr ) - { - ByteString aName( "xmlsec" ); -// MT: Change to Locale - pResMgr = ResMgr::CreateResMgr( aName.GetBuffer() ); - } - - return pResMgr; - } - - const LocaleDataWrapper& GetLocaleData( void ) - { - if (!pSysLocale) - pSysLocale = new SvtSysLocale; - return pSysLocale->GetLocaleData(); - } - - DateTime GetDateTime( const ::com::sun::star::util::DateTime& _rDT ) - { - return DateTime( - Date( _rDT.Day, _rDT.Month, _rDT.Year ), - Time( _rDT.Hours, _rDT.Minutes, _rDT.Seconds, _rDT.HundredthSeconds ) ); - } - - String GetDateTimeString( const ::com::sun::star::util::DateTime& _rDT ) - { - // String with date and time information (#i20172#) - DateTime aDT( GetDateTime( _rDT ) ); - const LocaleDataWrapper& rLoDa = GetLocaleData(); - String sRet( rLoDa.getDate( aDT ) ); - sRet += ' '; - sRet += rLoDa.getTime( aDT ); - return sRet; - } - - String GetDateTimeString( const rtl::OUString& _rDate, const rtl::OUString& _rTime ) - { - String sDay( _rDate, 6, 2 ); - String sMonth( _rDate, 4, 2 ); - String sYear( _rDate, 0, 4 ); - - String sHour( _rTime, 0, 2 ); - String sMin( _rTime, 4, 2 ); - String sSec( _rTime, 6, 2 ); - - - Date aDate( (sal_uInt16)sDay.ToInt32(), (sal_uInt16) sMonth.ToInt32(), (sal_uInt16)sYear.ToInt32() ); - Time aTime( sHour.ToInt32(), sMin.ToInt32(), sSec.ToInt32(), 0 ); - const LocaleDataWrapper& rLoDa = GetLocaleData(); - String aStr( rLoDa.getDate( aDate ) ); - aStr.AppendAscii( " " ); - aStr += rLoDa.getTime( aTime ); - return aStr; - } - - String GetDateString( const ::com::sun::star::util::DateTime& _rDT ) - { - return GetLocaleData().getDate( GetDateTime( _rDT ) ); - } - - /* - 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 - and valudes pairs, which are separated by commas. All escape characters ('"') are - removed. - The second string is for the details view at the bottom. It shows the attribute/value - pairs on different lines. All escape characters ('"') are removed. - */ - pair< OUString, OUString> GetDNForCertDetailsView( const OUString & rRawString) - { - vector< pair< OUString, OUString > > vecAttrValueOfDN = parseDN(rRawString); - ::rtl::OUStringBuffer s1, s2; - OUString sEqual(RTL_CONSTASCII_USTRINGPARAM(" = ")); - typedef vector< pair < OUString, OUString > >::const_iterator CIT; - for (CIT i = vecAttrValueOfDN.begin(); i < vecAttrValueOfDN.end(); ++i) - { - if (i != vecAttrValueOfDN.begin()) - { - s1.append(static_cast<sal_Unicode>(',')); - s2.append(static_cast<sal_Unicode>('\n')); - } - s1.append(i->second); - s2.append(i->first); - s2.append(sEqual); - s2.append(i->second); - } - return make_pair(s1.makeStringAndClear(), s2.makeStringAndClear()); - } - -/* - Whenever the attribute value contains special characters, such as '"' or ',' (without '') - then the value will be enclosed in double quotes by the respective Windows or NSS function - which we use to retrieve, for example, the subject name. If double quotes appear in the value then - they are escaped with a double quote. This function removes the escape characters. -*/ -#ifdef WNT -vector< pair< OUString, OUString> > parseDN(const OUString& rRawString) -{ - vector< pair<OUString, OUString> > retVal; - bool bInEscape = false; - bool bInValue = false; - bool bInType = true; - sal_Int32 nTypeNameStart = 0; - OUString sType; - ::rtl::OUStringBuffer sbufValue; - sal_Int32 length = rRawString.getLength(); - - for (sal_Int32 i = 0; i < length; i++) - { - sal_Unicode c = rRawString[i]; - - if (c == '=') - { - if (! bInValue) - { - sType = rRawString.copy(nTypeNameStart, i - nTypeNameStart); - sType = sType.trim(); - bInType = false; - } - else - { - sbufValue.append(c); - } - } - else if (c == '"') - { - if (!bInEscape) - { - //If this is the quote is the first of the couple which enclose the - //whole value, because the value contains special characters - //then we just drop it. That is, this character must be followed by - //a character which is not '"'. - if ( i + 1 < length && rRawString[i+1] == '"') - bInEscape = true; - else - bInValue = !bInValue; //value is enclosed in " " - } - else - { - //This quote is escaped by a preceding quote and therefore is - //part of the value - sbufValue.append(c); - bInEscape = false; - } - } - else if (c == ',' || c == '+') - { - //The comma separate the attribute value pairs. - //If the comma is not part of a value (the value would then be enclosed in '"'), - //then we have reached the end of the value - if (!bInValue) - { - OSL_ASSERT(sType.getLength()); - retVal.push_back(make_pair(sType, sbufValue.makeStringAndClear())); - sType = OUString(); - //The next char is the start of the new type - nTypeNameStart = i + 1; - bInType = true; - } - else - { - //The whole string is enclosed because it contains special characters. - //The enclosing '"' are not part of certificate but will be added by - //the function (Windows or NSS) which retrieves DN - sbufValue.append(c); - } - } - else - { - if (!bInType) - sbufValue.append(c); - } - } - if (sbufValue.getLength()) - { - OSL_ASSERT(sType.getLength()); - retVal.push_back(make_pair(sType, sbufValue.makeStringAndClear())); - } - return retVal; - } -#else -vector< pair< OUString, OUString> > parseDN(const OUString& rRawString) - { - vector< pair<OUString, OUString> > retVal; - //bInEscape == true means that the preceding character is an escape character - bool bInEscape = false; - bool bInValue = false; - bool bInType = true; - sal_Int32 nTypeNameStart = 0; - OUString sType; - ::rtl::OUStringBuffer sbufValue; - sal_Int32 length = rRawString.getLength(); - - for (sal_Int32 i = 0; i < length; i++) - { - sal_Unicode c = rRawString[i]; - - if (c == '=') - { - if (! bInValue) - { - sType = rRawString.copy(nTypeNameStart, i - nTypeNameStart); - sType = sType.trim(); - bInType = false; - } - else - { - sbufValue.append(c); - } - } - else if (c == '\\') - { - if (!bInEscape) - { - bInEscape = true; - } - else - { // bInEscape is true - sbufValue.append(c); - bInEscape = false; - } - } - else if (c == '"') - { - //an unescaped '"' is either at the beginning or end of the value - if (!bInEscape) - { - if ( !bInValue) - bInValue = true; - else if (bInValue) - bInValue = false; - } - else - { - //This quote is escaped by a preceding quote and therefore is - //part of the value - sbufValue.append(c); - bInEscape = false; - } - } - else if (c == ',' || c == '+') - { - //The comma separate the attribute value pairs. - //If the comma is not part of a value (the value would then be enclosed in '"'), - //then we have reached the end of the value - if (!bInValue) - { - OSL_ASSERT(sType.getLength()); - retVal.push_back(make_pair(sType, sbufValue.makeStringAndClear())); - sType = OUString(); - //The next char is the start of the new type - nTypeNameStart = i + 1; - bInType = true; - } - else - { - //The whole string is enclosed because it contains special characters. - //The enclosing '"' are not part of certificate but will be added by - //the function (Windows or NSS) which retrieves DN - sbufValue.append(c); - } - } - else - { - if (!bInType) - { - sbufValue.append(c); - bInEscape = false; - } - } - } - if (sbufValue.getLength()) - { - OSL_ASSERT(sType.getLength()); - retVal.push_back(make_pair(sType, sbufValue.makeStringAndClear())); - } - return retVal; - } - -#endif - - String GetContentPart( const String& _rRawString ) - { - char const * aIDs[] = { "CN", "OU", "O", "E", NULL }; - OUString retVal; - int i = 0; - vector< pair< OUString, OUString > > vecAttrValueOfDN = parseDN(_rRawString); - while ( aIDs[i] ) - { - OUString sPartId = OUString::createFromAscii( aIDs[i++] ); - typedef vector< pair < OUString, OUString > >::const_iterator CIT; - for (CIT idn = vecAttrValueOfDN.begin(); idn != vecAttrValueOfDN.end(); ++idn) - { - if (idn->first.equals(sPartId)) - { - retVal = idn->second; - break; - } - } - if (retVal.getLength()) - break; - } - return retVal; - } - - String GetHexString( const ::com::sun::star::uno::Sequence< sal_Int8 >& _rSeq, const char* _pSep, sal_uInt16 _nLineBreak ) - { - const sal_Int8* pSerNumSeq = _rSeq.getConstArray(); - int nCnt = _rSeq.getLength(); - String aStr; - const char pHexDigs[ 17 ] = "0123456789ABCDEF"; - char pBuffer[ 3 ] = " "; - sal_uInt8 nNum; - sal_uInt16 nBreakStart = _nLineBreak? _nLineBreak : 1; - sal_uInt16 nBreak = nBreakStart; - for( int i = 0 ; i < nCnt ; ++i ) - { - nNum = sal_uInt8( pSerNumSeq[ i ] ); - - // exchange the buffer[0] and buffer[1], which make it consistent with Mozilla and Windows - pBuffer[ 1 ] = pHexDigs[ nNum & 0x0F ]; - nNum >>= 4; - pBuffer[ 0 ] = pHexDigs[ nNum ]; - aStr.AppendAscii( pBuffer ); - - --nBreak; - if( nBreak ) - aStr.AppendAscii( _pSep ); - else - { - nBreak = nBreakStart; - aStr.AppendAscii( "\n" ); - } - } - - return aStr; - } - - long ShrinkToFitWidth( Control& _rCtrl, long _nOffs ) - { - long nWidth = _rCtrl.GetTextWidth( _rCtrl.GetText() ); - Size aSize( _rCtrl.GetSizePixel() ); - nWidth += _nOffs; - aSize.Width() = nWidth; - _rCtrl.SetSizePixel( aSize ); - return nWidth; - } - - void AlignAfterImage( const FixedImage& _rImage, Control& _rCtrl, long _nXOffset ) - { - Point aPos( _rImage.GetPosPixel() ); - Size aSize( _rImage.GetSizePixel() ); - long n = aPos.X(); - n += aSize.Width(); - n += _nXOffset; - aPos.X() = n; - n = aPos.Y(); - n += aSize.Height() / 2; // y-position is in the middle of the image - n -= _rCtrl.GetSizePixel().Height() / 2; // center Control - aPos.Y() = n; - _rCtrl.SetPosPixel( aPos ); - } - - void AlignAfterImage( const FixedImage& _rImage, FixedInfo& _rFI, long _nXOffset ) - { - AlignAfterImage( _rImage, static_cast< Control& >( _rFI ), _nXOffset ); - ShrinkToFitWidth( _rFI ); - } - - void AlignAndFitImageAndControl( FixedImage& _rImage, FixedInfo& _rFI, long _nXOffset ) - { - _rImage.SetSizePixel( _rImage.GetImage().GetSizePixel() ); - AlignAfterImage( _rImage, _rFI, _nXOffset ); - } -} - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/xmlsecurity/source/dialogs/resourcemanager.hxx b/xmlsecurity/source/dialogs/resourcemanager.hxx deleted file mode 100644 index 14f716fde..000000000 --- a/xmlsecurity/source/dialogs/resourcemanager.hxx +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _RESOURCEMANAGER_HXX -#define _RESOURCEMANAGER_HXX - -#include <tools/resmgr.hxx> -#include <tools/datetime.hxx> -#include <com/sun/star/util/DateTime.hpp> -#include <com/sun/star/uno/Sequence.hxx> - -#include <vector> - -class FixedImage; -class FixedInfo; -class Control; -class LocaleDataWrapper; - -namespace XmlSec -{ - ResMgr* GetResMgr( void ); - - const LocaleDataWrapper& GetLocaleData( void ); - DateTime GetDateTime( const ::com::sun::star::util::DateTime& _rDT ); - String GetDateTimeString( const ::com::sun::star::util::DateTime& _rDT ); - String GetDateTimeString( const rtl::OUString& _rDate, const rtl::OUString& _rTime ); - String GetDateString( const ::com::sun::star::util::DateTime& _rDT ); - - std::vector< std::pair< ::rtl::OUString, ::rtl::OUString> > - parseDN(const ::rtl::OUString& rRawString); - std::pair< ::rtl::OUString, ::rtl::OUString> GetDNForCertDetailsView( - const ::rtl::OUString & rRawString); - String GetContentPart( const String& _rRawString ); - - String GetHexString( const ::com::sun::star::uno::Sequence< sal_Int8 >& _rSeq, const char* _pSep = ":", sal_uInt16 _nLineBreak = 0xFFFF ); - - long ShrinkToFitWidth( Control& _rCtrl, long _nOffs = 0 ); // return = new width - void AlignAfterImage( const FixedImage& _rImage, Control& _rCtrl, long _nXOffset = 0 ); - void AlignAfterImage( const FixedImage& _rImage, FixedInfo& _rFI, long _nXOffset = 0 ); - void AlignAndFitImageAndControl( FixedImage& _rImage, FixedInfo& _rFI, long _nXOffset = 0 ); -} - -#define XMLSEC_RES(id) ResId(id,*XmlSec::GetResMgr()) - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/xmlsecurity/source/dialogs/stbcontrl.cxx b/xmlsecurity/source/dialogs/stbcontrl.cxx deleted file mode 100644 index f5064399e..000000000 --- a/xmlsecurity/source/dialogs/stbcontrl.cxx +++ /dev/null @@ -1,123 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_xmlsecurity.hxx" - -#include <tools/shl.hxx> -#include <vcl/status.hxx> -#include <vcl/menu.hxx> -#include <vcl/image.hxx> -#include <sfx2/app.hxx> -#include <sfx2/module.hxx> -#include <sfx2/dispatch.hxx> -#include <sfx2/objsh.hxx> -#include <svl/eitem.hxx> -#include <xmlsecurity/stbcontrl.hxx> - -#define PAINT_OFFSET 5 - -SFX_IMPL_STATUSBAR_CONTROL( XmlSecStatusBarControl, SfxBoolItem ); - - -struct XmlSecStatusBarControl::XmlSecStatusBarControl_Impl -{ - Point maPos; - Size maSize; - bool mbSigned; - Image maImage; -}; - - -XmlSecStatusBarControl::XmlSecStatusBarControl( sal_uInt16 _nId, StatusBar& _rStb, SfxBindings& _rBind ) - :SfxStatusBarControl( _nId, _rStb, _rBind ) - - ,mpImpl( new XmlSecStatusBarControl_Impl ) -{ - mpImpl->mbSigned = false; -} - -XmlSecStatusBarControl::~XmlSecStatusBarControl() -{ - delete mpImpl; -} - -void XmlSecStatusBarControl::StateChanged( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) -{ - GetStatusBar().SetHelpText( GetId(), String() ); // necessary ? - GetStatusBar().SetHelpId( GetId(), nSID ); // necessary ? - - if( SFX_ITEM_AVAILABLE != eState ) - { - mpImpl->mbSigned = false; - } - else if( pState->ISA( SfxBoolItem ) ) - { - mpImpl->mbSigned = ( ( SfxBoolItem* ) pState )->GetValue(); - } - else - { - DBG_ERRORFILE( "+XmlSecStatusBarControl::StateChanged(): invalid item type" ); - mpImpl->mbSigned = false; - } - - if( GetStatusBar().AreItemsVisible() ) // necessary ? - GetStatusBar().SetItemData( GetId(), 0 ); - - GetStatusBar().SetItemText( GetId(), String() ); // necessary ? -} - -void XmlSecStatusBarControl::Command( const CommandEvent& rCEvt ) -{ - // can / has to be done when integrated in Office! - SfxStatusBarControl::Command( rCEvt ); -} - -void XmlSecStatusBarControl::Paint( const UserDrawEvent& rUsrEvt ) -{ - OutputDevice* pDev = rUsrEvt.GetDevice(); - DBG_ASSERT( pDev, "-XmlSecStatusBarControl::Paint(): no Output Device... this will lead to nirvana..." ); - const Rectangle& rRect = rUsrEvt.GetRect(); - StatusBar& rBar = GetStatusBar(); - Point aItemPos = rBar.GetItemTextPos( GetId() ); - Color aOldLineColor = pDev->GetLineColor(); - Color aOldFillColor = pDev->GetFillColor(); - - // just 4 testing until we've got a bitmap - pDev->SetLineColor(); - pDev->SetFillColor( pDev->GetBackground().GetColor() ); - - String s( String::CreateFromAscii( mpImpl->mbSigned? "X" : "-" ) ); - pDev->DrawRect( rRect ); - pDev->DrawText( Point( rRect.Left() + rRect.GetWidth() / 2 - pDev->GetTextWidth( s ) / 2, aItemPos.Y() ), s ); - - pDev->SetLineColor( aOldLineColor ); - pDev->SetFillColor( aOldFillColor ); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/xmlsecurity/source/dialogs/warnings.cxx b/xmlsecurity/source/dialogs/warnings.cxx deleted file mode 100644 index a5cb29550..000000000 --- a/xmlsecurity/source/dialogs/warnings.cxx +++ /dev/null @@ -1,141 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_xmlsecurity.hxx" - -#include <xmlsecurity/warnings.hxx> -#include <xmlsecurity/certificateviewer.hxx> -#include <com/sun/star/xml/crypto/XSecurityEnvironment.hpp> -#include <comphelper/sequence.hxx> - -// added for password exception -#include <vcl/msgbox.hxx> -#include <com/sun/star/security/NoPasswordException.hpp> -using namespace ::com::sun::star::security; - - -#include "dialogs.hrc" -#include "resourcemanager.hxx" - -/* HACK: disable some warnings for MS-C */ -#ifdef _MSC_VER -#pragma warning (disable : 4355) // 4355: this used in initializer-list -#endif - -using namespace ::com::sun::star; -using namespace ::com::sun::star; - - -MacroWarning::MacroWarning( Window* _pParent, uno::Reference< dcss::xml::crypto::XSecurityEnvironment >& _rxSecurityEnvironment, cssu::Reference< dcss::security::XCertificate >& _rxCert ) - :ModalDialog ( _pParent, XMLSEC_RES( RID_XMLSECTP_MACROWARN ) ) - ,maDocNameFI ( this, ResId( FI_DOCNAME ) ) - ,maDescr1aFI ( this, ResId( FI_DESCR1A ) ) - ,maDescr1bFI ( this, ResId( FI_DESCR1B ) ) - ,maSignsFI ( this, ResId( FI_SIGNS ) ) - ,maViewSignsBtn ( this, ResId( PB_VIEWSIGNS ) ) - ,maDescr2FI ( this, ResId( FI_DESCR2 ) ) - ,maAlwaysTrustCB ( this, ResId( CB_ALWAYSTRUST ) ) - ,maBottomSepFL ( this, ResId( FL_BOTTOM_SEP ) ) - ,maEnableBtn ( this, ResId( PB_DISABLE ) ) - ,maDisableBtn ( this, ResId( PB_DISABLE ) ) - ,maHelpBtn ( this, ResId( BTN_HELP ) ) - ,mbSignedMode ( true ) -{ - FreeResource(); - - mxSecurityEnvironment = _rxSecurityEnvironment; - mxCert = _rxCert; - - // hide unused parts - maDescr1bFI.Hide(); - - maViewSignsBtn.SetClickHdl( LINK( this, MacroWarning, ViewSignsBtnHdl ) ); - maEnableBtn.SetClickHdl( LINK( this, MacroWarning, EnableBtnHdl ) ); - - if( mxCert.is() ) - maSignsFI.SetText( XmlSec::GetContentPart( mxCert->getSubjectName() ) ); - else - // nothing to view! - maViewSignsBtn.Disable(); -} - -MacroWarning::MacroWarning( Window* _pParent ) - :ModalDialog ( _pParent, XMLSEC_RES( RID_XMLSECTP_MACROWARN ) ) - ,maDocNameFI ( this, ResId( FI_DOCNAME ) ) - ,maDescr1aFI ( this, ResId( FI_DESCR1A ) ) - ,maDescr1bFI ( this, ResId( FI_DESCR1B ) ) - ,maSignsFI ( this, ResId( FI_SIGNS ) ) - ,maViewSignsBtn ( this, ResId( PB_VIEWSIGNS ) ) - ,maDescr2FI ( this, ResId( FI_DESCR2 ) ) - ,maAlwaysTrustCB ( this, ResId( CB_ALWAYSTRUST ) ) - ,maBottomSepFL ( this, ResId( FL_BOTTOM_SEP ) ) - ,maEnableBtn ( this, ResId( PB_DISABLE ) ) - ,maDisableBtn ( this, ResId( PB_DISABLE ) ) - ,maHelpBtn ( this, ResId( BTN_HELP ) ) - ,mbSignedMode ( false ) -{ - FreeResource(); - - // hide unused parts - maDescr1aFI.Hide(); - maSignsFI.Hide(); - maViewSignsBtn.Hide(); - maAlwaysTrustCB.Hide(); - maDescr2FI.Hide(); - - // move hint up to position of signer list - maDescr1bFI.SetPosPixel( maSignsFI.GetPosPixel() ); -} - -MacroWarning::~MacroWarning() -{ -} - -IMPL_LINK( MacroWarning, ViewSignsBtnHdl, void*, EMPTYARG ) -{ - DBG_ASSERT( mxCert.is(), "*MacroWarning::ViewSignsBtnHdl(): no certificate set!" ); - - CertificateViewer aViewer( this, mxSecurityEnvironment, mxCert ); - aViewer.Execute(); - - return 0; -} - -IMPL_LINK( MacroWarning, EnableBtnHdl, void*, EMPTYARG ) -{ - if( mbSignedMode && maAlwaysTrustCB.IsChecked() ) - { // insert path into trusted path list - - } - - EndDialog( RET_OK ); - return 0; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/xmlsecurity/source/dialogs/warnings.src b/xmlsecurity/source/dialogs/warnings.src deleted file mode 100644 index aa912ad5d..000000000 --- a/xmlsecurity/source/dialogs/warnings.src +++ /dev/null @@ -1,115 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include "dialogs.hrc" -#include "helpids.hrc" - -ModalDialog RID_XMLSECTP_MACROWARN -{ - HelpId = HID_XMLSEC_TP_MACROWARN; - Size = MAP_APPFONT( MW_WIDTH, MW_HEIGHT ); - OutputSize = TRUE; - Closeable = TRUE; - Moveable = TRUE; - SVLook = TRUE; - - Text [ en-US ] = "Security Warning"; - - FixedText FI_DOCNAME - { - Pos = MAP_APPFONT( MW_COL_1, MW_ROW_0 ); - Size = MAP_APPFONT( MW_COL_4-MW_COL_1, 3*RSC_CD_FIXEDTEXT_HEIGHT ); - Wordbreak = TRUE; - Text [ en-US ] = ""; - }; - FixedText FI_DESCR1A - { - Pos = MAP_APPFONT( MW_COL_1, MW_ROW_1 ); - Size = MAP_APPFONT( MW_COL_4-MW_COL_1, RSC_CD_FIXEDTEXT_HEIGHT ); - Wordbreak = TRUE; - Text [ en-US ] = "The document contains document macros signed by:"; - }; - FixedText FI_DESCR1B - { - Pos = MAP_APPFONT( MW_COL_1, MW_ROW_1 ); - Size = MAP_APPFONT( MW_COL_4-MW_COL_1, RSC_CD_FIXEDTEXT_HEIGHT ); - Wordbreak = TRUE; - Text [ en-US ] = "The document contains document macros."; - }; - FixedText FI_SIGNS - { - Pos = MAP_APPFONT( MW_COL_1, MW_ROW_2 ); - Size = MAP_APPFONT( MW_COL_4-MW_COL_2, MW_ROW_3-MW_ROW_2 ); - Wordbreak = TRUE; - Text [ en-US ] = ""; - }; - PushButton PB_VIEWSIGNS - { - HelpID = "xmlsecurity:PushButton:RID_XMLSECTP_MACROWARN:PB_VIEWSIGNS"; - Pos = MAP_APPFONT( MW_COL_3, MW_ROW_2 ); - Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT ); - Text [ en-US ] = "View Signatures..."; - }; - FixedText FI_DESCR2 - { - Pos = MAP_APPFONT( MW_COL_1, MW_ROW_3 ); - Size = MAP_APPFONT( MW_COL_4-MW_COL_1, RSC_CD_FIXEDTEXT_HEIGHT ); - Wordbreak = TRUE; - Text [ en-US ] = "Macros may contain viruses. Disabling macros for a document is always save. If you disable macros you may lose functionality provided by the document macros."; - }; - CheckBox CB_ALWAYSTRUST - { - HelpID = "xmlsecurity:CheckBox:RID_XMLSECTP_MACROWARN:CB_ALWAYSTRUST"; - Pos = MAP_APPFONT( MW_COL_1, MW_ROW_4 ); - Size = MAP_APPFONT( MW_COL_4-MW_COL_1, RSC_CD_CHECKBOX_HEIGHT ); - Text [ en-US ] = "Always trust macros from this source"; - }; - FixedLine FL_BOTTOM_SEP - { - Pos = MAP_APPFONT( 0, DLGS_BOTTOM_FL_Y( MW_HEIGHT ) ); - Size = MAP_APPFONT( MW_WIDTH, RSC_CD_FIXEDLINE_HEIGHT ); - }; - PushButton PB_ENABLE - { - HelpID = "xmlsecurity:PushButton:RID_XMLSECTP_MACROWARN:PB_ENABLE"; - Pos = MAP_APPFONT( DLGS_BOTTOM_OK_X( MW_WIDTH ), DLGS_BOTTOM_BTN_Y( MW_HEIGHT ) ); - Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT ); - Text [ en-US ] = "Enable Macros"; - }; - CancelButton PB_DISABLE - { - Pos = MAP_APPFONT( DLGS_BOTTOM_CANCEL_X( MW_WIDTH ), DLGS_BOTTOM_BTN_Y( MW_HEIGHT ) ); - Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT ); - Text [ en-US ] = "Disable Macros"; - }; - HelpButton BTN_HELP - { - Pos = MAP_APPFONT( DLGS_BOTTOM_HELP_X( MW_WIDTH ), DLGS_BOTTOM_BTN_Y( MW_HEIGHT ) ); - Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT ); - }; -}; - |