/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ #ifndef __com_sun_star_security_XDocumentDigitalSignatures_idl_ #define __com_sun_star_security_XDocumentDigitalSignatures_idl_ #include #include #include #include #include #include module com { module sun { module star { module security { /** Interface for signing and verifying digital signatures in office documents

This interface can be used to digitally sign different content in a office document. It can also be used to verify digital signatures.

*/ interface XDocumentDigitalSignatures : com::sun::star::uno::XInterface { /** signs the content of the document including text and pictures.

Macros will not be signed.

*/ boolean signDocumentContent( [in] ::com::sun::star::embed::XStorage xStorage, [in] ::com::sun::star::io::XStream xSignStream); /** checks for digital signatures and their status.

Only document content will be checked.

*/ sequence< com::sun::star::security::DocumentSignatureInformation > verifyDocumentContentSignatures( [in] ::com::sun::star::embed::XStorage xStorage, [in] ::com::sun::star::io::XInputStream xSignInStream ); /** shows the digital signatures of the document content */ void showDocumentContentSignatures( [in] ::com::sun::star::embed::XStorage xStorage, [in] ::com::sun::star::io::XInputStream xSignInStream ); /** allows to get the default stream name for storing of the signature of the document content. */ string getDocumentContentSignatureDefaultStreamName(); /** signs the content of the Scripting including macros and basic dialogs

The rest of document content will not be signed.

*/ boolean signScriptingContent( [in] ::com::sun::star::embed::XStorage xStorage, [in] ::com::sun::star::io::XStream xSignStream); /** checks for digital signatures and their status.

Only Scripting content will be checked.

*/ sequence< com::sun::star::security::DocumentSignatureInformation > verifyScriptingContentSignatures( [in] ::com::sun::star::embed::XStorage xStorage, [in] ::com::sun::star::io::XInputStream xSignInStream ); /** shows the digital signatures of the scripting content */ void showScriptingContentSignatures( [in] ::com::sun::star::embed::XStorage xStorage, [in] ::com::sun::star::io::XInputStream xSignInStream ); /** allows to get the default stream name for storing of the signature of the scripting content. */ string getScriptingContentSignatureDefaultStreamName(); /** signs the full Package, which means everything in the storage except the content of META-INF */ boolean signPackage( [in] ::com::sun::star::embed::XStorage Storage, [in] ::com::sun::star::io::XStream xSignStream); /** checks for digital signatures and their status.

Only Package content will be checked.

*/ sequence< com::sun::star::security::DocumentSignatureInformation > verifyPackageSignatures( [in] ::com::sun::star::embed::XStorage Storage, [in] ::com::sun::star::io::XInputStream xSignInStream ); /** shows the digital signatures of the package */ void showPackageSignatures( [in] ::com::sun::star::embed::XStorage xStorage, [in] ::com::sun::star::io::XInputStream xSignInStream ); /** allows to get the default stream name for storing of the signature of the package. */ string getPackageSignatureDefaultStreamName(); void showCertificate( [in] com::sun::star::security::XCertificate Certificate ); /** manages trusted sources (Authors and paths ) */ void manageTrustedSources(); boolean isAuthorTrusted( [in] com::sun::star::security::XCertificate Author ); boolean isLocationTrusted( [in] string Location ); // These methods should raise a confirmation dialog, so they can not be misused from bad macros. void addAuthorToTrustedSources( [in] com::sun::star::security::XCertificate Author ); void addLocationToTrustedSources( [in] string Location ); /** This method shows the CertificateChooser dialog, used by document and PDF signing Shows only private certificates @since LibreOffice 5.3 */ com::sun::star::security::XCertificate chooseCertificate( [out] string Description ); /** This is an alias for 'chooseCertificate', shows the CertificateChooser dialog with private certificates @since LibreOffice 6.0 */ com::sun::star::security::XCertificate chooseSigningCertificate( [out] string Description ); /** This method shows the CertificateChooser dialog with all certificates, private and other people's. Useful when choosing certificate/key for encryption @since LibreOffice 6.0 */ com::sun::star::security::XCertificate chooseEncryptionCertificate( [out] string Description ); /** This method shows the CertificateChooser dialog, used by document and PDF signing Shows only private certificates and returns usage string in addition to description. @since LibreOffice 6.0 */ com::sun::star::security::XCertificate chooseCertificateWithProps( [out] sequence<::com::sun::star::beans::PropertyValue> Properties); } ; } ; } ; } ; } ; #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */