1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 // MARKER(update_precomp.py): autogen include statement, do not remove 25 #include "precompiled_xmlsecurity.hxx" 26 27 #include <xmlsecurity/warnings.hxx> 28 #include <xmlsecurity/certificateviewer.hxx> 29 #include <com/sun/star/xml/crypto/XSecurityEnvironment.hpp> 30 #include <comphelper/sequence.hxx> 31 32 // MM : added for password exception 33 #include <vcl/msgbox.hxx> 34 #include <com/sun/star/security/NoPasswordException.hpp> 35 using namespace ::com::sun::star::security; 36 37 38 #include "dialogs.hrc" 39 #include "resourcemanager.hxx" 40 41 /* HACK: disable some warnings for MS-C */ 42 #ifdef _MSC_VER 43 #pragma warning (disable : 4355) // 4355: this used in initializer-list 44 #endif 45 46 using namespace ::com::sun::star; 47 using namespace ::com::sun::star; 48 49 50 MacroWarning::MacroWarning( Window* _pParent, uno::Reference< dcss::xml::crypto::XSecurityEnvironment >& _rxSecurityEnvironment, cssu::Reference< dcss::security::XCertificate >& _rxCert ) 51 :ModalDialog ( _pParent, XMLSEC_RES( RID_XMLSECTP_MACROWARN ) ) 52 ,maDocNameFI ( this, ResId( FI_DOCNAME ) ) 53 ,maDescr1aFI ( this, ResId( FI_DESCR1A ) ) 54 ,maDescr1bFI ( this, ResId( FI_DESCR1B ) ) 55 ,maSignsFI ( this, ResId( FI_SIGNS ) ) 56 ,maViewSignsBtn ( this, ResId( PB_VIEWSIGNS ) ) 57 ,maDescr2FI ( this, ResId( FI_DESCR2 ) ) 58 ,maAlwaysTrustCB ( this, ResId( CB_ALWAYSTRUST ) ) 59 ,maBottomSepFL ( this, ResId( FL_BOTTOM_SEP ) ) 60 ,maEnableBtn ( this, ResId( PB_DISABLE ) ) 61 ,maDisableBtn ( this, ResId( PB_DISABLE ) ) 62 ,maHelpBtn ( this, ResId( BTN_HELP ) ) 63 ,mbSignedMode ( true ) 64 { 65 FreeResource(); 66 67 mxSecurityEnvironment = _rxSecurityEnvironment; 68 mxCert = _rxCert; 69 70 // hide unused parts 71 maDescr1bFI.Hide(); 72 73 maViewSignsBtn.SetClickHdl( LINK( this, MacroWarning, ViewSignsBtnHdl ) ); 74 maEnableBtn.SetClickHdl( LINK( this, MacroWarning, EnableBtnHdl ) ); 75 // maDisableBtn.SetClickHdl( LINK( this, MacroWarning, DisableBtnHdl ) ); 76 77 if( mxCert.is() ) 78 maSignsFI.SetText( XmlSec::GetContentPart( mxCert->getSubjectName() ) ); 79 else 80 // nothing to view! 81 maViewSignsBtn.Disable(); 82 } 83 84 MacroWarning::MacroWarning( Window* _pParent ) 85 :ModalDialog ( _pParent, XMLSEC_RES( RID_XMLSECTP_MACROWARN ) ) 86 ,maDocNameFI ( this, ResId( FI_DOCNAME ) ) 87 ,maDescr1aFI ( this, ResId( FI_DESCR1A ) ) 88 ,maDescr1bFI ( this, ResId( FI_DESCR1B ) ) 89 ,maSignsFI ( this, ResId( FI_SIGNS ) ) 90 ,maViewSignsBtn ( this, ResId( PB_VIEWSIGNS ) ) 91 ,maDescr2FI ( this, ResId( FI_DESCR2 ) ) 92 ,maAlwaysTrustCB ( this, ResId( CB_ALWAYSTRUST ) ) 93 ,maBottomSepFL ( this, ResId( FL_BOTTOM_SEP ) ) 94 ,maEnableBtn ( this, ResId( PB_DISABLE ) ) 95 ,maDisableBtn ( this, ResId( PB_DISABLE ) ) 96 ,maHelpBtn ( this, ResId( BTN_HELP ) ) 97 ,mbSignedMode ( false ) 98 { 99 FreeResource(); 100 101 // hide unused parts 102 maDescr1aFI.Hide(); 103 maSignsFI.Hide(); 104 maViewSignsBtn.Hide(); 105 maAlwaysTrustCB.Hide(); 106 maDescr2FI.Hide(); 107 108 // move hint up to position of signer list 109 maDescr1bFI.SetPosPixel( maSignsFI.GetPosPixel() ); 110 } 111 112 MacroWarning::~MacroWarning() 113 { 114 } 115 116 IMPL_LINK( MacroWarning, ViewSignsBtnHdl, void*, EMPTYARG ) 117 { 118 DBG_ASSERT( mxCert.is(), "*MacroWarning::ViewSignsBtnHdl(): no certificate set!" ); 119 120 CertificateViewer aViewer( this, mxSecurityEnvironment, mxCert ); 121 aViewer.Execute(); 122 123 return 0; 124 } 125 126 IMPL_LINK( MacroWarning, EnableBtnHdl, void*, EMPTYARG ) 127 { 128 if( mbSignedMode && maAlwaysTrustCB.IsChecked() ) 129 { // insert path into trusted path list 130 131 } 132 133 EndDialog( RET_OK ); 134 return 0; 135 } 136 137 /*IMPL_LINK( MacroWarning, DisableBtnHdl, void*, EMPTYARG ) 138 { 139 return 0; 140 }*/ 141 142