diff options
Diffstat (limited to 'offapi/com/sun/star/xml/crypto')
49 files changed, 2957 insertions, 0 deletions
diff --git a/offapi/com/sun/star/xml/crypto/CipherID.idl b/offapi/com/sun/star/xml/crypto/CipherID.idl new file mode 100644 index 000000000..9e34c09f6 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/CipherID.idl @@ -0,0 +1,48 @@ +/* -*- 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_xml_crypto_CipherID_idl__ +#define __com_sun_star_xml_crypto_CipherID_idl__ + + + +module com { module sun { module star { module xml { module crypto { + +/** The constant set contains identifiers of supported cipher-creation + algorithms. + + @see XCipherContextSupplier + @since OOo 3.4 +*/ +constants CipherID +{ + /** identifier of AES algorithm in CBC mode with W3C padding + */ + const long AES_CBC_W3C_PADDING = 1; + + /** identifier of the Blowfish algorithm in 8-bit CFB mode + */ + const long BLOWFISH_CFB_8 = 2; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/DigestID.idl b/offapi/com/sun/star/xml/crypto/DigestID.idl new file mode 100644 index 000000000..970eb1147 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/DigestID.idl @@ -0,0 +1,71 @@ +/* -*- 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_xml_crypto_DigestID_idl__ +#define __com_sun_star_xml_crypto_DigestID_idl__ + + + +module com { module sun { module star { module xml { module crypto { + +/** The constant set contains identifiers of supported digest-creation + algorithms. + + @see XDigestContextSupplier + @since OOo 3.4 +*/ +constants DigestID +{ + /** identifier of SHA-1 algorithm + */ + const long SHA1 = 1; + + /** identifier of SHA-256 algorithm + */ + const long SHA256 = 2; + + /** identifier of SHA-1 algorithm that is applied to the first kilobyte + of data. + */ + const long SHA1_1K = 3; + + /** identifier of SHA-256 algorithm that is applied to the first kilobyte + of data. + */ + const long SHA256_1K = 4; + + /** identifier of SHA-512 algorithm + + @since LibreOffice 6.0 + */ + const long SHA512 = 5; + + /** identifier of SHA-512 algorithm that is applied to the first + kilobyte of data. + + @since LibreOffice 6.0 + */ + const long SHA512_1K = 6; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/GPGSEInitializer.idl b/offapi/com/sun/star/xml/crypto/GPGSEInitializer.idl new file mode 100644 index 000000000..d041eb9fa --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/GPGSEInitializer.idl @@ -0,0 +1,39 @@ +/* -*- 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_xml_crypto_GPGSEInitializer_idl_ +#define __com_sun_star_xml_crypto_GPGSEInitializer_idl_ + +#include <com/sun/star/xml/crypto/XSEInitializer.idl> + +module com { module sun { module star { module xml { module crypto { + +/** + * Service of GPGSEInitializer + * + * @since LibreOffice 6.0 + */ +service GPGSEInitializer : XSEInitializer; + +} ; } ; } ; } ; } ; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/NSSInitializer.idl b/offapi/com/sun/star/xml/crypto/NSSInitializer.idl new file mode 100644 index 000000000..9eea7b170 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/NSSInitializer.idl @@ -0,0 +1,37 @@ +/* -*- 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_xml_crypto_NSSInitializer_idl_ +#define __com_sun_star_xml_crypto_NSSInitializer_idl_ + +#include <com/sun/star/xml/crypto/XNSSInitializer.idl> + +module com { module sun { module star { module xml { module crypto { + +/** + @since LibreOffice 4.0 + */ +service NSSInitializer : XNSSInitializer; + +} ; } ; } ; } ; } ; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/SEInitializer.idl b/offapi/com/sun/star/xml/crypto/SEInitializer.idl new file mode 100644 index 000000000..cd4c5cd26 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/SEInitializer.idl @@ -0,0 +1,37 @@ +/* -*- 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_xml_crypto_SEInitializer_idl_ +#define __com_sun_star_xml_crypto_SEInitializer_idl_ + +#include <com/sun/star/xml/crypto/XSEInitializer.idl> + +module com { module sun { module star { module xml { module crypto { + +/** + * Service of SEInitializer + */ +service SEInitializer : XSEInitializer; + +} ; } ; } ; } ; } ; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/SecurityEnvironment.idl b/offapi/com/sun/star/xml/crypto/SecurityEnvironment.idl new file mode 100644 index 000000000..1c18e4b0a --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/SecurityEnvironment.idl @@ -0,0 +1,36 @@ +/* -*- 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_xml_crypto_SecurityEnvironment_idl_ +#define __com_sun_star_xml_crypto_SecurityEnvironment_idl_ + +#include <com/sun/star/xml/crypto/XSecurityEnvironment.idl> + +module com { module sun { module star { module xml { module crypto { + +/** + * Service of XSecurityEnvironment + */ +service SecurityEnvironment : XSecurityEnvironment; + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/SecurityOperationStatus.idl b/offapi/com/sun/star/xml/crypto/SecurityOperationStatus.idl new file mode 100644 index 000000000..764886afc --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/SecurityOperationStatus.idl @@ -0,0 +1,138 @@ +/* -*- 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_xml_crypto_securityoperationstatus_idl_ +#define __com_sun_star_xml_crypto_securityoperationstatus_idl_ + +module com { module sun { module star { module xml { module crypto { + +/** + * Defines results for security operation. + */ +enum SecurityOperationStatus +{ + UNKNOWN, + OPERATION_SUCCEEDED, + RUNTIMEERROR_FAILED, +/** + * The following constants are derived from XMLSec error definitions, as following: + * + * XMLSEC_ERRORS_R_XMLSEC_FAILED + * XMLSEC_ERRORS_R_MALLOC_FAILED + * XMLSEC_ERRORS_R_STRDUP_FAILED + * XMLSEC_ERRORS_R_CRYPTO_FAILED + * XMLSEC_ERRORS_R_XML_FAILED + * XMLSEC_ERRORS_R_XSLT_FAILED + * XMLSEC_ERRORS_R_IO_FAILED + * XMLSEC_ERRORS_R_DISABLED + * XMLSEC_ERRORS_R_NOT_IMPLEMENTED + * XMLSEC_ERRORS_R_INVALID_SIZE + * XMLSEC_ERRORS_R_INVALID_DATA + * XMLSEC_ERRORS_R_INVALID_RESULT + * XMLSEC_ERRORS_R_INVALID_TYPE + * XMLSEC_ERRORS_R_INVALID_OPERATION + * XMLSEC_ERRORS_R_INVALID_STATUS + * XMLSEC_ERRORS_R_INVALID_FORMAT + * XMLSEC_ERRORS_R_DATA_NOT_MATCH + * XMLSEC_ERRORS_R_INVALID_NODE + * XMLSEC_ERRORS_R_INVALID_NODE_CONTENT + * XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE + * XMLSEC_ERRORS_R_MISSING_NODE_ATTRIBUTE + * XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT + * XMLSEC_ERRORS_R_UNEXPECTED_NODE + * XMLSEC_ERRORS_R_NODE_NOT_FOUND + * XMLSEC_ERRORS_R_INVALID_TRANSFORM + * XMLSEC_ERRORS_R_INVALID_TRANSFORM_KEY + * XMLSEC_ERRORS_R_INVALID_URI_TYPE + * XMLSEC_ERRORS_R_TRANSFORM_SAME_DOCUMENT_REQUIRED + * XMLSEC_ERRORS_R_TRANSFORM_DISABLED + * XMLSEC_ERRORS_R_INVALID_KEY_DATA + * XMLSEC_ERRORS_R_KEY_DATA_NOT_FOUND + * XMLSEC_ERRORS_R_KEY_DATA_ALREADY_EXIST + * XMLSEC_ERRORS_R_INVALID_KEY_DATA_SIZE + * XMLSEC_ERRORS_R_KEY_NOT_FOUND + * XMLSEC_ERRORS_R_KEYDATA_DISABLED + * XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL + * XMLSEC_ERRORS_R_MAX_RETRIEVAL_TYPE_MISMATCH + * XMLSEC_ERRORS_R_MAX_ENCKEY_LEVEL + * XMLSEC_ERRORS_R_CERT_VERIFY_FAILED + * XMLSEC_ERRORS_R_CERT_NOT_FOUND + * XMLSEC_ERRORS_R_CERT_REVOKED + * XMLSEC_ERRORS_R_CERT_ISSUER_FAILED + * XMLSEC_ERRORS_R_CERT_NOT_YET_VALID + * XMLSEC_ERRORS_R_CERT_HAS_EXPIRED + * XMLSEC_ERRORS_R_DSIG_NO_REFERENCES + * XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE + * XMLSEC_ERRORS_R_ASSERTION + * XMLSEC_ERRORS_MAX_NUMBER + */ + ENGINE_FAILED, + MALLOC_FAILED, + STRDUP_FAILED, + CRYPTO_FAILED, + XML_FAILED, + XSLT_FAILED, + IO_FAILED, + DISABLED, + NOT_IMPLEMENTED, + INVALID_SIZE, + INVALID_DATA, + INVALID_RESULT, + INVALID_TYPE, + INVALID_OPERATION, + INVALID_STATUS, + INVALID_FORMAT, + DATA_NOT_MATCH, + INVALID_NODE, + INVALID_NODE_CONTENT, + INVALID_NODE_ATTRIBUTE, + MISSING_NODE_ATTRIBUTE, + NODE_ALREADY_PRESENT, + UNEXPECTED_NODE, + NODE_NOT_FOUND, + INVALID_TRANSFORM, + INVALID_TRANSFORM_KEY, + INVALID_URI_TYPE, + TRANSFORM_SAME_DOCUMENT_REQUIRED, + TRANSFORM_DISABLED, + INVALID_KEY_DATA, + KEY_DATA_NOT_FOUND, + KEY_DATA_ALREADY_EXIST, + INVALID_KEY_DATA_SIZE, + KEY_NOT_FOUND, + KEYDATA_DISABLED, + MAX_RETRIEVALS_LEVEL, + MAX_RETRIEVAL_TYPE_MISMATCH, + MAX_ENCKEY_LEVEL, + CERT_VERIFY_FAILED, + CERT_NOT_FOUND, + CERT_REVOKED, + CERT_ISSUER_FAILED, + CERT_NOT_YET_VALID, + CERT_HAS_EXPIRED, + DSIG_NO_REFERENCES, + DSIG_INVALID_REFERENCE, + ASSERTION +}; + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/XCertificateCreator.idl b/offapi/com/sun/star/xml/crypto/XCertificateCreator.idl new file mode 100644 index 000000000..3137aa004 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/XCertificateCreator.idl @@ -0,0 +1,55 @@ +/* -*- 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_xml_crypto_xsecurityenvironment_idl_ +#define __com_sun_star_xml_crypto_xsecurityenvironment_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> +#include <com/sun/star/security/XCertificate.idl> + +module com { module sun { module star { module xml { module crypto { + +/** + * Interface for creating and adding certificates + * + * @since LibreOffice 6.2 + */ +interface XCertificateCreator : com::sun::star::uno::XInterface +{ + /** + * Adds a certificate to the certificate database with the trust provided by the trust string. + */ + com::sun::star::security::XCertificate addDERCertificateToTheDatabase( + [in] sequence<byte> aDerCertificate, + [in] string aTrustString); + + /** + * Create certificate from raw DER encoded certificate and associate the private key with the certificate + */ + com::sun::star::security::XCertificate createDERCertificateWithPrivateKey( + [in] sequence<byte> aDerCertificate, + [in] sequence<byte> aPrivateKey) raises (com::sun::star::uno::SecurityException); +}; + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/XCipherContext.idl b/offapi/com/sun/star/xml/crypto/XCipherContext.idl new file mode 100644 index 000000000..bae91c7b1 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/XCipherContext.idl @@ -0,0 +1,69 @@ +/* -*- 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_xml_crypto_xciphercontext_idl_ +#define __com_sun_star_xml_crypto_xciphercontext_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/lang/DisposedException.idl> + + + module com { module sun { module star { module xml { module crypto { + +/** This interface allows to encrypt/decrypt data using the cipher context. + <p> + The algorithm as well as encryption data are specified on object creation. + </p> + + @see XCipherContextSupplier + @since OOo 3.4 + */ +interface XCipherContext : com::sun::star::uno::XInterface +{ + /** encrypts/decrypts the data using the cipher. + <p> + Please have in mind, the cipher object state might depend from the + already encrypted/decrypted data ( it depends from the used + algorithm ). + </p> + + <p> + Whether the object does encryption or decryption is specified by + creation of the object. + </p> + + @param aData + data that should be encrypted/decrypted + */ + sequence<byte> convertWithCipherContext( [in] sequence< byte > aData ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::DisposedException ); + + /** finalizes cipher and disposes context. + */ + sequence<byte> finalizeCipherContextAndDispose() + raises( ::com::sun::star::lang::DisposedException ); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/XCipherContextSupplier.idl b/offapi/com/sun/star/xml/crypto/XCipherContextSupplier.idl new file mode 100644 index 000000000..f447e5889 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/XCipherContextSupplier.idl @@ -0,0 +1,70 @@ +/* -*- 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_xml_crypto_xciphercontextsupplier_idl_ +#define __com_sun_star_xml_crypto_xciphercontextsupplier_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/beans/NamedValue.idl> +#include <com/sun/star/xml/crypto/XCipherContext.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> + + + module com { module sun { module star { module xml { module crypto { + +/** This interface allows to get an object that allows to encrypt/decrypt data + using the specified algorithm. + + @since OOo 3.4 + */ +interface XCipherContextSupplier : com::sun::star::uno::XInterface +{ + /** returns an object that allows to encrypt/decrypt data. + + @param nCipherID + the internal ID specifying the algorithm, + should take value from CipherID + + @param aKey + the key that should be used for the encryption + + @param aInitializationVector + the initialization vector that should be used for the encryption + + @param bEncryption + whether an encryption or decryption cipher should be created + `TRUE` - Encryption + `FALSE` - Decryption + + @param aParams + optional parameters that could be used to initialize the cipher, + + @throws ::com::sun::star::lang::IllegalArgumentException + one of provided arguments is illegal + */ + + XCipherContext getCipherContext( [in] long nCipherID, [in] sequence< byte > aKey, [in] sequence< byte > aInitializationVector, [in] boolean bEncryption, [in] sequence< ::com::sun::star::beans::NamedValue > aParams ) + raises( ::com::sun::star::lang::IllegalArgumentException ); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/XDigestContext.idl b/offapi/com/sun/star/xml/crypto/XDigestContext.idl new file mode 100644 index 000000000..06553a7da --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/XDigestContext.idl @@ -0,0 +1,57 @@ +/* -*- 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_xml_crypto_xdigestcontext_idl_ +#define __com_sun_star_xml_crypto_xdigestcontext_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/DisposedException.idl> + + + module com { module sun { module star { module xml { module crypto { + +/** This interface allows to generate the digest. + <p> + The algorithm to generate the digest is specified on object creation. + </p> + + @see XDigestContextSupplier + @since OOo 3.4 + */ +interface XDigestContext : com::sun::star::uno::XInterface +{ + /** update the digest with the given data. + + @param aData + data that should be used to update the digest + */ + void updateDigest( [in] sequence< byte > aData ) + raises( ::com::sun::star::lang::DisposedException ); + + /** finalizes digest and disposes context. + */ + sequence<byte> finalizeDigestAndDispose() + raises( ::com::sun::star::lang::DisposedException ); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/XDigestContextSupplier.idl b/offapi/com/sun/star/xml/crypto/XDigestContextSupplier.idl new file mode 100644 index 000000000..ead3e8ea9 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/XDigestContextSupplier.idl @@ -0,0 +1,61 @@ +/* -*- 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_xml_crypto_xdigestcontextsupplier_idl_ +#define __com_sun_star_xml_crypto_xdigestcontextsupplier_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/beans/NamedValue.idl> +#include <com/sun/star/xml/crypto/XDigestContext.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> + + + module com { module sun { module star { module xml { module crypto { + +/** This interface allows to get an object to generate a digest of a specified + format. + + @since OOo 3.4 + */ +interface XDigestContextSupplier : com::sun::star::uno::XInterface +{ + /** returns an object that allows to generate the specified digest. + + @param nDigestID + the internal ID specifying the algorithm, + should take value from DigestID + + @param aParams + optional parameters that could be used to initialize the digest, + for example, it could contain a key and etc. + + @throws ::com::sun::star::lang::IllegalArgumentException + one of provided arguments is illegal + */ + XDigestContext getDigestContext( + [in] long nDigestID, + [in] sequence< ::com::sun::star::beans::NamedValue > aParams ) + raises( ::com::sun::star::lang::IllegalArgumentException ); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/XMLEncryptionException.idl b/offapi/com/sun/star/xml/crypto/XMLEncryptionException.idl new file mode 100644 index 000000000..eed651c01 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/XMLEncryptionException.idl @@ -0,0 +1,35 @@ +/* -*- 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_xml_crypto_XMLEncryptionException_idl__ +#define __com_sun_star_xml_crypto_XMLEncryptionException_idl__ + +#include <com/sun/star/security/EncryptionException.idl> + +module com { module sun { module star { module xml { module crypto { + +exception XMLEncryptionException : com::sun::star::security::EncryptionException +{ +}; + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/XMLSecurityContext.idl b/offapi/com/sun/star/xml/crypto/XMLSecurityContext.idl new file mode 100644 index 000000000..46fce6231 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/XMLSecurityContext.idl @@ -0,0 +1,36 @@ +/* -*- 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_xml_crypto_XMLSecurityContext_idl_ +#define __com_sun_star_xml_crypto_XMLSecurityContext_idl_ + +#include <com/sun/star/xml/crypto/XXMLSecurityContext.idl> + +module com { module sun { module star { module xml { module crypto { + +/** + * Service of XMLSecurityContext + */ +service XMLSecurityContext : XXMLSecurityContext; + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/XMLSignature.idl b/offapi/com/sun/star/xml/crypto/XMLSignature.idl new file mode 100644 index 000000000..2596bd351 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/XMLSignature.idl @@ -0,0 +1,42 @@ +/* -*- 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_xml_crypto_xmlsignature_idl_ +#define __com_sun_star_xml_crypto_xmlsignature_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> +#include <com/sun/star/xml/crypto/XXMLSignature.idl> +#include <com/sun/star/lang/XInitialization.idl> + +module com { module sun { module star { module xml { module crypto { + +/** + * Service of XMLSignature + */ +service XMLSignature { + interface com::sun::star::xml::crypto::XXMLSignature ; + interface com::sun::star::lang::XInitialization ; +} ; + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/XMLSignatureException.idl b/offapi/com/sun/star/xml/crypto/XMLSignatureException.idl new file mode 100644 index 000000000..70949f68e --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/XMLSignatureException.idl @@ -0,0 +1,35 @@ +/* -*- 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_xml_crypto_XMLSignatureException_idl__ +#define __com_sun_star_xml_crypto_XMLSignatureException_idl__ + +#include <com/sun/star/security/SignatureException.idl> + +module com { module sun { module star { module xml { module crypto { + +exception XMLSignatureException : com::sun::star::security::SignatureException +{ +}; + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/XNSSInitializer.idl b/offapi/com/sun/star/xml/crypto/XNSSInitializer.idl new file mode 100644 index 000000000..36f7ce358 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/XNSSInitializer.idl @@ -0,0 +1,41 @@ +/* -*- 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_xml_crypto_XNSSInitializer_idl_ +#define __com_sun_star_xml_crypto_XNSSInitializer_idl_ + +#include <com/sun/star/xml/crypto/XCipherContextSupplier.idl> +#include <com/sun/star/xml/crypto/XDigestContextSupplier.idl> + +module com { module sun { module star { module xml { module crypto { + +/** + @since LibreOffice 4.0 + */ +interface XNSSInitializer { + interface ::com::sun::star::xml::crypto::XDigestContextSupplier; + interface ::com::sun::star::xml::crypto::XCipherContextSupplier; +}; + +} ; } ; } ; } ; } ; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/XSEInitializer.idl b/offapi/com/sun/star/xml/crypto/XSEInitializer.idl new file mode 100644 index 000000000..fc8ce622b --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/XSEInitializer.idl @@ -0,0 +1,58 @@ +/* -*- 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_xml_crypto_xseinitializer_idl_ +#define __com_sun_star_xml_crypto_xseinitializer_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> + +module com { module sun { module star { module xml { module crypto { + +interface XXMLSecurityContext; + +/** + * Interface to manipulate Security Environment + */ +interface XSEInitializer : com::sun::star::uno::XInterface +{ + /** + Creates a security context. + + @param aString + reserved for internal use. + + @return the security context created + */ + ::com::sun::star::xml::crypto::XXMLSecurityContext createSecurityContext( [in] string aString ); + + /** + * Frees a security context. + * + * @param securityContext the security context to be freed + */ + void freeSecurityContext([in] com::sun::star::xml::crypto::XXMLSecurityContext securityContext); +}; + +} ; } ; } ; } ; } ; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/XSecurityEnvironment.idl b/offapi/com/sun/star/xml/crypto/XSecurityEnvironment.idl new file mode 100644 index 000000000..f3d1ddbf6 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/XSecurityEnvironment.idl @@ -0,0 +1,115 @@ +/* -*- 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_xml_crypto_xsecurityenvironment_idl_ +#define __com_sun_star_xml_crypto_xsecurityenvironment_idl_ + +#include <com/sun/star/uno/SecurityException.idl> +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> +#include <com/sun/star/security/XCertificate.idl> +#include <com/sun/star/security/CertificateCharacters.idl> +#include <com/sun/star/security/CertificateValidity.idl> + +module com { module sun { module star { module xml { module crypto { + +/** + * Interface of Security Environment + */ +interface XSecurityEnvironment : com::sun::star::uno::XInterface +{ + /** + * Get personal certificates from the environment + */ + sequence< com::sun::star::security::XCertificate > getPersonalCertificates() raises( com::sun::star::uno::SecurityException ) ; + + /** + * Get certificate from the environment by issuer name and serial number + */ + com::sun::star::security::XCertificate getCertificate( [in] string issuerName, [in] sequence< byte > serialNumber ) raises( com::sun::star::uno::SecurityException ) ; + + /** + * Build certificate path from a certain certificate + */ + sequence< com::sun::star::security::XCertificate > buildCertificatePath( [in] com::sun::star::security::XCertificate beginCert ) raises( com::sun::star::uno::SecurityException ) ; + + /** + * Create certificate interface from raw DER encoded certificate + */ + com::sun::star::security::XCertificate createCertificateFromRaw( [in] sequence< byte > rawCertificate ) raises( com::sun::star::uno::SecurityException ) ; + + /** + * Create certificate interface from a Base64 encoded certificate. + */ + com::sun::star::security::XCertificate createCertificateFromAscii( [in] string asciiCertificate ) raises( com::sun::star::uno::SecurityException ) ; + + /** + Verify a certificate. + + The method provides a way to verify a certificate. + @param xEECertificate + The certificate which is to be validated. + + @param intermediateCertificates + Additional certificates which can be used by the method in constructing + the certificate chain. The root certificate may also be contained. However, + the implementation must check if the root certificate is indeed trusted by + the user. + All entries of the sequence must be non-null references. + + @return + The validation status will returned as a bit-wise long, please refer to + CertificateValidity definition. + */ + long verifyCertificate( [in] com::sun::star::security::XCertificate xEECertificate, + [in] sequence< com::sun::star::security::XCertificate > intermediateCertificates) + raises( com::sun::star::uno::SecurityException ) ; + + /** + * Get a certificate characters. + * + * The method provides a way to get certificate characters like: + * 1. Whether or not the certificate have a private key in the user profile. + * 2. Whether or not the certificate is a trusted certificate. + * 3. Whether or not the certificate is a self-signed certificate. + * + * The certificate characters is defined as bit-wise long, please refer to + * CertificateCharacters definition. + */ + long getCertificateCharacters( [in] com::sun::star::security::XCertificate xCertificate ) raises( com::sun::star::uno::SecurityException ) ; + + /** + * Get the Environment detail information + */ + string getSecurityEnvironmentInformation ( ); + + /** + * List all certificates, private (as returned by getPersonalCertificates) as well as those of other people/orgas + * + * @since LibreOffice 6.0 + */ + sequence< com::sun::star::security::XCertificate > getAllCertificates() raises( com::sun::star::uno::SecurityException ) ; + +} ; + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/XUriBinding.idl b/offapi/com/sun/star/xml/crypto/XUriBinding.idl new file mode 100644 index 000000000..0bffbca94 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/XUriBinding.idl @@ -0,0 +1,61 @@ +/* -*- 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_xml_crypto_xuribinding_idl_ +#define __com_sun_star_xml_crypto_xuribinding_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> +#include <com/sun/star/io/XInputStream.idl> + +module com { module sun { module star { module xml { module crypto { + +/** + * Interface of Uri Binding. + * <p> + * This interface is used to dynamically bind a uri with a + * XInputStream interface. + */ +interface XUriBinding : com::sun::star::uno::XInterface +{ + /** + * Sets the XInputStream interface for a uri. + * + * @param uri the uri to bind + * @param InputStream the XInputStream to be bound + */ + void setUriBinding([in] string uri, + [in] com::sun::star::io::XInputStream InputStream) + raises( com::sun::star::uno::Exception ); + + /** + * Gets the XInputStream interface for a uri. + * + * @param uri the uri whose binding is to get + * @return the XInputStream bound with the uri + */ + com::sun::star::io::XInputStream getUriBinding([in] string uri) + raises( com::sun::star::uno::Exception ); +}; + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/XXMLEncryption.idl b/offapi/com/sun/star/xml/crypto/XXMLEncryption.idl new file mode 100644 index 000000000..20fd5e74d --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/XXMLEncryption.idl @@ -0,0 +1,73 @@ +/* -*- 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_xml_crypto_xxmlencryption_idl_ +#define __com_sun_star_xml_crypto_xxmlencryption_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> +#include <com/sun/star/uno/SecurityException.idl> +#include <com/sun/star/xml/crypto/XXMLEncryptionTemplate.idl> +#include <com/sun/star/xml/wrapper/XXMLElementWrapper.idl> +#include <com/sun/star/xml/crypto/XXMLSecurityContext.idl> +#include <com/sun/star/xml/crypto/XMLEncryptionException.idl> + +module com { module sun { module star { module xml { module crypto { + +/** + * Interface of XML encryption + * + * <p>This interface represents a XML encryptor or decryptor.</p> + * + * <p>The encryptor or decryptor concrete a key by retrieve security context + * and encryption template.</p> + * + * <p>In some cases, the encryptor or decryptor can determine and locate the + * EncryptedKey from the encryption template by dereference the RetrievalMethod + * inside EncryptedData.</p> + * + * <p>In some cases, the EncryptedKey need to be clearly pointed out by the + * encryption template.</p> + */ +interface XXMLEncryption : com::sun::star::uno::XInterface +{ + /** + * Perform encryption in the environment of encryption template and context. + */ + com::sun::star::xml::crypto::XXMLEncryptionTemplate encrypt( + [in] com::sun::star::xml::crypto::XXMLEncryptionTemplate aTemplate , + [in] com::sun::star::xml::crypto::XSecurityEnvironment aEnvironment + ) raises( com::sun::star::xml::crypto::XMLEncryptionException , + com::sun::star::uno::SecurityException ) ; + + /** + * Perform decryption in the environment of encryption template and context. + */ + com::sun::star::xml::crypto::XXMLEncryptionTemplate decrypt( + [in] com::sun::star::xml::crypto::XXMLEncryptionTemplate aTemplate , + [in] com::sun::star::xml::crypto::XXMLSecurityContext aContext + ) raises( com::sun::star::xml::crypto::XMLEncryptionException , + com::sun::star::uno::SecurityException ) ; +} ; + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/XXMLEncryptionTemplate.idl b/offapi/com/sun/star/xml/crypto/XXMLEncryptionTemplate.idl new file mode 100644 index 000000000..adee7b121 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/XXMLEncryptionTemplate.idl @@ -0,0 +1,83 @@ +/* -*- 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_xml_crypto_xxmlencryptiontemplate_idl_ +#define __com_sun_star_xml_crypto_xxmlencryptiontemplate_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/xml/wrapper/XXMLElementWrapper.idl> +#include <com/sun/star/xml/crypto/XXMLSecurityTemplate.idl> + +module com { module sun { module star { module xml { module crypto { + +/** + * Interface of XML encryption template + * + * <p>This interface represents an encryption template, which is the same as the + * desired XML encryption element[ EncryptedType ] but some of the nodes may be + * empty. The empty entities include CipherValue, which is a subset of + * EncryptedData or EncryptedKey. Empty entities are not allowed in an encryption + * template when performing decryption.</p> + * + * <p>In some cases, the encryptor or decryptor can determine and locate the + * EncryptedKey from the encryption template by dereference the RetrievalMethod + * inside EncryptedData.</p> + * + * <p>In some cases, the EncryptedKey need to be clearly pointed out by the + * encryption template.</p> + * + * <p>With the help of encryption context, the encryptor or decryptor specifies + * the key from the KeyInfo in the encryption template.</p> + * + * + * <p>It isn't a good method to set the EncryptedKey here. In general, there is + * a RetrievalMethod in EncryptedData by which we can get the EncryptedKey. + * + * And sometimes, in the low level, it is hard to determine what the key is + * except that the high level application tell the mechanism and parameters. + * + * So I think it will be more simple that the application set the encrypted key + * information. In this case, the application only need to know the XML schema + * or DTD and the encryption device. If so, the high level application takes the + * action of build the EncryptedKey template and references it in the element of + * EncryptedData. And in this case, the calling to set up EncryptedKey template + * and target is not necessary, because the encryptor or decryptor can determine + * and locate the EncryptedKey from the encryption template of EncryptedData by + * dereference the RetrievalMethod. + * + * In some situation, the high level applications do not want to know anything + * about crypto devices( May be he must, because the lower level do not know + * what the key is ). If it gives the key value, it can get EncryptedKey by + * setting the key template and key value target.</p> + */ +interface XXMLEncryptionTemplate : XXMLSecurityTemplate +{ + /** + * Get the target XML element, i.e. the element to be encrypted + */ + com::sun::star::xml::wrapper::XXMLElementWrapper getTarget( + ) ; +} ; + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/XXMLSecurityContext.idl b/offapi/com/sun/star/xml/crypto/XXMLSecurityContext.idl new file mode 100644 index 000000000..742d550af --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/XXMLSecurityContext.idl @@ -0,0 +1,75 @@ +/* -*- 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_xml_crypto_xxmlsecuritycontext_idl_ +#define __com_sun_star_xml_crypto_xxmlsecuritycontext_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/security/SecurityInfrastructureException.idl> +#include <com/sun/star/xml/crypto/XSecurityEnvironment.idl> + +module com { module sun { module star { module xml { module crypto { + +/** + * Interface of XML security context + * + * <p>This interface specifies a certain signature context. By signature + * context, the signer or verifier retrieves key specification.</p> + */ +interface XXMLSecurityContext : com::sun::star::uno::XInterface +{ + /** + * Add personal security environment , and return the index of the added environment. + */ + long addSecurityEnvironment( [in] XSecurityEnvironment aSecurityEnvironment + ) raises( com::sun::star::security::SecurityInfrastructureException ) ; + + /** + * Get the number of security environments + */ + long getSecurityEnvironmentNumber( ) ; + + /** + * Get personal security environment + */ + com::sun::star::xml::crypto::XSecurityEnvironment getSecurityEnvironmentByIndex([in] long index ) ; + + /** + * An handy method to get the first personal security environment. + * In XMLSec/NSS, the first personal security environment should be the "internal slot" + */ + com::sun::star::xml::crypto::XSecurityEnvironment getSecurityEnvironment( ) ; + + /** + * Get the ID of the internal security environment + */ + long getDefaultSecurityEnvironmentIndex( ) ; + + /** + * set the ID of the internal security environment + */ + void setDefaultSecurityEnvironmentIndex([in] long index ) ; + +} ; + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/XXMLSecurityTemplate.idl b/offapi/com/sun/star/xml/crypto/XXMLSecurityTemplate.idl new file mode 100644 index 000000000..c29f2440b --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/XXMLSecurityTemplate.idl @@ -0,0 +1,76 @@ +/* -*- 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_xml_crypto_xxmlsecuritytemplate_idl_ +#define __com_sun_star_xml_crypto_xxmlsecuritytemplate_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/xml/wrapper/XXMLElementWrapper.idl> +#include <com/sun/star/xml/crypto/XUriBinding.idl> +#include <com/sun/star/xml/crypto/SecurityOperationStatus.idl> + +module com { module sun { module star { module xml { module crypto { + +/** + * Interface of the XML security template + * + * <p>This interface represents a security template, which is the super interface + * of the XXMLSignatureTemplate interface and the XXMLEncryptionTemplate interface. + */ +interface XXMLSecurityTemplate : com::sun::star::uno::XInterface +{ + /** + * Load a XML signature template from XML signature element + */ + void setTemplate( + [in] com::sun::star::xml::wrapper::XXMLElementWrapper aXmlElement + ) raises( com::sun::star::lang::IllegalArgumentException ) ; + + /** + * Get the XML signature element that represents the signature template + */ + com::sun::star::xml::wrapper::XXMLElementWrapper getTemplate( + ) ; + + /** + * Load the target XML element, i.e. the element to be signed + */ + void setTarget( + [in] com::sun::star::xml::wrapper::XXMLElementWrapper aXmlElement + ) raises( com::sun::star::lang::IllegalArgumentException ) ; + + /** + * Set the template status + */ + void setStatus( + [in] SecurityOperationStatus status + ) raises( com::sun::star::lang::IllegalArgumentException ) ; + + /** + * Get the template status + */ + SecurityOperationStatus getStatus( ) ; +} ; + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/XXMLSignature.idl b/offapi/com/sun/star/xml/crypto/XXMLSignature.idl new file mode 100644 index 000000000..b0db29018 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/XXMLSignature.idl @@ -0,0 +1,77 @@ +/* -*- 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_xml_crypto_xxmlsignature_idl_ +#define __com_sun_star_xml_crypto_xxmlsignature_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/SecurityException.idl> +#include <com/sun/star/xml/crypto/XXMLSignatureTemplate.idl> +#include <com/sun/star/xml/crypto/XXMLSecurityContext.idl> +#include <com/sun/star/xml/crypto/XMLSignatureException.idl> + +module com { module sun { module star { module xml { module crypto { + +/** + * Interface of XML signature + * + * <p>This interface represents a XML signer or verifier.</p> + * + * <p>The signer or verifier concrete a key by retrieve signature context and + * signature template.</p> + * + * <p>In some cases, the signer or verifier can determine and locate the + * contents to be signed from the signature template by dereference the URI.</p> + * + * <p>In some cases, the contents to be signed need to be clearly pointed out by + * the signature template.</p> + */ +interface XXMLSignature : com::sun::star::uno::XInterface +{ + /** + * Perform signature in the environment of signature template and context. + */ + com::sun::star::xml::crypto::XXMLSignatureTemplate generate( + [in] com::sun::star::xml::crypto::XXMLSignatureTemplate aTemplate , + [in] com::sun::star::xml::crypto::XSecurityEnvironment aEnvironment + ) raises( com::sun::star::xml::crypto::XMLSignatureException , + com::sun::star::uno::SecurityException ) ; + + /** + * Perform validation in the environment of signature template and context. + */ + com::sun::star::xml::crypto::XXMLSignatureTemplate validate( + [in] com::sun::star::xml::crypto::XXMLSignatureTemplate aTemplate , + [in] com::sun::star::xml::crypto::XXMLSecurityContext aContext + ) raises( com::sun::star::xml::crypto::XMLSignatureException , + com::sun::star::uno::SecurityException ) ; + + /** + * get the time used by the engine, JSR105, + * this method is used for evaluation. + */ + /* + hyper getEngineTime([in] long id); + */ +}; + +} ; } ; } ; } ; } ; +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/XXMLSignatureTemplate.idl b/offapi/com/sun/star/xml/crypto/XXMLSignatureTemplate.idl new file mode 100644 index 000000000..32fc3b991 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/XXMLSignatureTemplate.idl @@ -0,0 +1,70 @@ +/* -*- 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_xml_crypto_xxmlsignaturetemplate_idl_ +#define __com_sun_star_xml_crypto_xxmlsignaturetemplate_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/xml/wrapper/XXMLElementWrapper.idl> +#include <com/sun/star/xml/crypto/XUriBinding.idl> +#include <com/sun/star/xml/crypto/XXMLSecurityTemplate.idl> + +module com { module sun { module star { module xml { module crypto { + +/** + * Interface of XML signature template + * + * <p>This interface represents a signature template, which is the same as the + * desired XML signature element but some of the nodes may be empty. The empty + * entities include digest value and signature value. Empty entities are not + * allowed in a signature template when performing validation.</p> + * + * <p>In some cases, the signer or verifier can determine and locate the + * contents to be signed from the template by dereference the URI.</p> + * + * <p>With the help of signature context, the signer or verifier specifies the + * key from the KeyInfo in the signature template.</p> + */ +interface XXMLSignatureTemplate : XXMLSecurityTemplate +{ + /** + * Get the target XML element, i.e. the element to be signed + */ + sequence< com::sun::star::xml::wrapper::XXMLElementWrapper > getTargets( + ) ; + + /** + * Set the dynamic URI binding + */ + void setBinding( + [in] com::sun::star::xml::crypto::XUriBinding aUriBinding + ) raises( com::sun::star::lang::IllegalArgumentException ) ; + + /** + * Get the dynamic URI binding + */ + com::sun::star::xml::crypto::XUriBinding getBinding( ) ; +} ; + +} ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/ConstOfSecurityId.idl b/offapi/com/sun/star/xml/crypto/sax/ConstOfSecurityId.idl new file mode 100644 index 000000000..d550519ae --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/ConstOfSecurityId.idl @@ -0,0 +1,37 @@ +/* -*- 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_xml_crypto_sax_constofsecurityid_idl_ +#define __com_sun_star_xml_crypto_sax_constofsecurityid_idl_ + +module com { module sun { module star { module xml { module crypto { module sax { + +/** + * Represents the undefined security id + */ +constants ConstOfSecurityId +{ + const long UNDEFINEDSECURITYID = -1; +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/ElementMarkPriority.idl b/offapi/com/sun/star/xml/crypto/sax/ElementMarkPriority.idl new file mode 100644 index 000000000..ead463f3f --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/ElementMarkPriority.idl @@ -0,0 +1,53 @@ +/* -*- 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_xml_crypto_sax_elementmarkpriority_idl_ +#define __com_sun_star_xml_crypto_sax_elementmarkpriority_idl_ + +module com { module sun { module star { module xml { module crypto { module sax { + +/** + * Defines priority for the element mark's notification. + * <p> + * The PRI_MINIMUM priority is a value less than any practical + * priority value, it is used when compare between different + * priority values. + * <p> + * The PRI_AFTERMODIFY priority represents the notification will be + * sent after any internal modification has finished. + * <p> + * The PRI_BEFOREMODIFY priority represents the notification will be + * sent before any internal modification happens. + * <p> + * So an element mark with PRI_BEFOREMODIFY will be handled first, + * and one with PRI_AFTERMODIFY will be handled at last. + */ +enum ElementMarkPriority +{ + MINIMUM = 1, + AFTERMODIFY, + BEFOREMODIFY +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/ElementMarkType.idl b/offapi/com/sun/star/xml/crypto/sax/ElementMarkType.idl new file mode 100644 index 000000000..c440019c4 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/ElementMarkType.idl @@ -0,0 +1,41 @@ +/* -*- 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_xml_crypto_sax_elementmarktype_idl_ +#define __com_sun_star_xml_crypto_sax_elementmarktype_idl_ + +module com { module sun { module star { module xml { module crypto { module sax { + +/** + * Defines types of element mark. + * <p> + * the TYPEOFELEMENTMARK type represents a blocker, and the TYPEOFELEMENTCOLLECTOR + * type represents an element collector. + */ +enum ElementMarkType +{ + ELEMENTMARK = 1, + ELEMENTCOLLECTOR +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/ElementStackItem.idl b/offapi/com/sun/star/xml/crypto/sax/ElementStackItem.idl new file mode 100644 index 000000000..01715c6b4 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/ElementStackItem.idl @@ -0,0 +1,52 @@ +/* -*- 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_xml_crypto_sax_ElementStackItem_idl_ +#define __com_sun_star_xml_crypto_sax_ElementStackItem_idl_ + +#include <com/sun/star/xml/sax/XAttributeList.idl> + +module com { module sun { module star { module xml { module crypto { module sax { + +/** + * A struct to keep a startElement/endElement SAX event. + */ +struct ElementStackItem +{ + /** + * whether it is a startElement event + */ + boolean isStartElementEvent; + + /** + * the name of the element + */ + string elementName; + + /** + * attribute list for a startElement event + */ + com::sun::star::xml::sax::XAttributeList xAttributes; +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/XBlockerMonitor.idl b/offapi/com/sun/star/xml/crypto/sax/XBlockerMonitor.idl new file mode 100644 index 000000000..35eace3f6 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/XBlockerMonitor.idl @@ -0,0 +1,48 @@ +/* -*- 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_xml_crypto_sax_xblockermonitor_idl_ +#define __com_sun_star_xml_crypto_sax_xblockermonitor_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> + +module com { module sun { module star { module xml { module crypto { module sax { + +/** + * Interface of Blocker Monitor. + * <p> + * This interface is used to manipulate a blocker. + */ +interface XBlockerMonitor : com::sun::star::uno::XInterface +{ + /** + * Configures the blocker's id. + * + * @param id the keeper id of the blocker + */ + void setBlockerId([in] long id) + raises( com::sun::star::uno::Exception ); +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/XDecryptionResultBroadcaster.idl b/offapi/com/sun/star/xml/crypto/sax/XDecryptionResultBroadcaster.idl new file mode 100644 index 000000000..21bf34a8f --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/XDecryptionResultBroadcaster.idl @@ -0,0 +1,63 @@ +/* -*- 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_xml_crypto_sax_xdecryptionresultbroadcaster_idl_ +#define __com_sun_star_xml_crypto_sax_xdecryptionresultbroadcaster_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> + +module com { module sun { module star { module xml { module crypto { module sax { + +interface XDecryptionResultListener; + +/** + * Interface of Decryption Result Broadcaster. + * <p> + * This interface is used to manipulate decryption result listener. + */ +interface XDecryptionResultBroadcaster : com::sun::star::uno::XInterface +{ + /** + * Adds a new decryption result listener. + * <p> + * When the decryption is finished, the result information will be sent to this + * listener. + * + * @param listener the listener to be added + */ + void addDecryptionResultListener( + [in] XDecryptionResultListener listener) + raises( com::sun::star::uno::Exception ); + + /** + * Removes a decryption result listener. + * <p> + * After a listener is removed, no result information will be sent to it. + * + * @param listener the listener to be removed + */ + void removeDecryptionResultListener([in] XDecryptionResultListener listener); +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/XDecryptionResultListener.idl b/offapi/com/sun/star/xml/crypto/sax/XDecryptionResultListener.idl new file mode 100644 index 000000000..93bf32913 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/XDecryptionResultListener.idl @@ -0,0 +1,52 @@ +/* -*- 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_xml_crypto_sax_xdecryptionresultlistener_idl_ +#define __com_sun_star_xml_crypto_sax_xdecryptionresultlistener_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> +#include <com/sun/star/xml/crypto/SecurityOperationStatus.idl> + +module com { module sun { module star { module xml { module crypto { module sax { + +/** + * Interface of Decryption Result Listener. + * <p> + * This interface is used to receive the result information of a + * decryption operation. + */ +interface XDecryptionResultListener : com::sun::star::uno::XInterface +{ + /** + * Notifies the decryption result. + * + * @param securityId the security id of the encryption to be decrypted + * @param decryptionResult the result information + */ + void decrypted( + [in] long securityId, + [in] com::sun::star::xml::crypto::SecurityOperationStatus decryptionResult); +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/XElementStackKeeper.idl b/offapi/com/sun/star/xml/crypto/sax/XElementStackKeeper.idl new file mode 100644 index 000000000..05d0f4903 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/XElementStackKeeper.idl @@ -0,0 +1,60 @@ +/* -*- 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_xml_crypto_sax_xelementstackkeeper_idl_ +#define __com_sun_star_xml_crypto_sax_xelementstackkeeper_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> +#include <com/sun/star/xml/sax/XDocumentHandler.idl> +#include <com/sun/star/xml/crypto/sax/ElementStackItem.idl> + +module com { module sun { module star { module xml { module crypto { module sax { + +/** + * Manipulate the "key SAX events" in a SAX event stream. + */ +interface XElementStackKeeper : com::sun::star::uno::XInterface +{ + /** + * Starts to buffer key SAX events. + */ + void start(); + + /** + * Stops buffering key SAX events. + */ + void stop(); + + /** + * Transfers the buffered key SAX events to a document handler. + * <p> + * All transferred events are removed from the buffer. + * + * @param handler the document to receive key SAX events + * @param includingTheLastEvent whether to transfer the last key SAX event + */ + void retrieve( [in] com::sun::star::xml::sax::XDocumentHandler handler, [in] boolean includingTheLastEvent); +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/XEncryptionResultBroadcaster.idl b/offapi/com/sun/star/xml/crypto/sax/XEncryptionResultBroadcaster.idl new file mode 100644 index 000000000..ac4390122 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/XEncryptionResultBroadcaster.idl @@ -0,0 +1,63 @@ +/* -*- 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_xml_crypto_sax_xencryptionresultbroadcaster_idl_ +#define __com_sun_star_xml_crypto_sax_xencryptionresultbroadcaster_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> + +module com { module sun { module star { module xml { module crypto { module sax { + +interface XEncryptionResultListener; + +/** + * Interface of Encryption Result Broadcaster. + * <p> + * This interface is used to manipulate encryption result listener. + */ +interface XEncryptionResultBroadcaster : com::sun::star::uno::XInterface +{ + /** + * Adds a new encryption result listener. + * <p> + * When the encryption is finished, the result information will be sent to this + * listener. + * + * @param listener the listener to be added + */ + void addEncryptionResultListener( + [in] XEncryptionResultListener listener) + raises( com::sun::star::uno::Exception ); + + /** + * Removes an encryption result listener. + * <p> + * After a listener is removed, no result information will be sent to it. + * + * @param listener the listener to be removed + */ + void removeEncryptionResultListener([in] XEncryptionResultListener listener); +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/XEncryptionResultListener.idl b/offapi/com/sun/star/xml/crypto/sax/XEncryptionResultListener.idl new file mode 100644 index 000000000..38aeb9ca4 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/XEncryptionResultListener.idl @@ -0,0 +1,55 @@ +/* -*- 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_xml_crypto_sax_xencryptionresultlistener_idl_ +#define __com_sun_star_xml_crypto_sax_xencryptionresultlistener_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> +#include <com/sun/star/xml/crypto/SecurityOperationStatus.idl> + +module com { module sun { module star { module xml { module crypto { module sax { + +/** + * Interface of Encryption Result Listener. + * <p> + * This interface is used to receive the result information of an + * encryption operation. + */ +interface XEncryptionResultListener : com::sun::star::uno::XInterface +{ + /** + * Notifies the encryption result. + * + * @param securityId the security id of the encryption + * @param encryptionResult the result information + */ + void encrypted( + [in] long securityId, + [in] com::sun::star::xml::crypto::SecurityOperationStatus encryptionResult); +}; + +} ; } ; } ; } ; } ; } ; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/XKeyCollector.idl b/offapi/com/sun/star/xml/crypto/sax/XKeyCollector.idl new file mode 100644 index 000000000..02f2dd10b --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/XKeyCollector.idl @@ -0,0 +1,49 @@ +/* -*- 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_xml_crypto_sax_xkeycollector_idl_ +#define __com_sun_star_xml_crypto_sax_xkeycollector_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> + +module com { module sun { module star { module xml { module crypto { module sax { + +/** + * Interface of Key Collector. + * <p> + * This interface is used to manipulate key materials. + */ +interface XKeyCollector : com::sun::star::uno::XInterface +{ + /** + * Set the keeper id of the key element. + * + * @param id the keeper id of the key element. If the id is 0, then it represents + * that this security entity has included its key material internally. + */ + void setKeyId([in] long id) + raises( com::sun::star::uno::Exception ); +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/XMissionTaker.idl b/offapi/com/sun/star/xml/crypto/sax/XMissionTaker.idl new file mode 100644 index 000000000..60b9ce1aa --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/XMissionTaker.idl @@ -0,0 +1,48 @@ +/* -*- 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_xml_crypto_sax_xmissiontaker_idl_ +#define __com_sun_star_xml_crypto_sax_xmissiontaker_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> + +module com { module sun { module star { module xml { module crypto { module sax { + +/** + * Interface of Mission Taker. + * <p> + * This interface is used to control a mission. + */ +interface XMissionTaker : com::sun::star::uno::XInterface +{ + /** + * Forces a mission to make an end. + * + * @return `TRUE` if the mission is completed successfully, `FALSE` + * otherwise. + */ + boolean endMission(); +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/XReferenceCollector.idl b/offapi/com/sun/star/xml/crypto/sax/XReferenceCollector.idl new file mode 100644 index 000000000..48e5a0ba3 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/XReferenceCollector.idl @@ -0,0 +1,58 @@ +/* -*- 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_xml_crypto_sax_XReferenceCollector_idl_ +#define __com_sun_star_xml_crypto_sax_XReferenceCollector_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> + +module com { module sun { module star { module xml { module crypto { module sax { + +/** + * Interface of Signature Collector. + * <p> + * This interface is used to control collecting a signature. + */ +interface XReferenceCollector : com::sun::star::uno::XInterface +{ + /** + * Sets the reference count of the signature. + * + * @param count the reference count of the signature + */ + void setReferenceCount([in] long count) + raises( com::sun::star::uno::Exception ); + + /** + * Set the keeper id of the element collector of the + * referenced element. + * + * @param id the keeper id of the element collector, + * which is collecting a referenced element + */ + void setReferenceId([in] long id) + raises( com::sun::star::uno::Exception ); +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/XReferenceResolvedBroadcaster.idl b/offapi/com/sun/star/xml/crypto/sax/XReferenceResolvedBroadcaster.idl new file mode 100644 index 000000000..cef647b26 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/XReferenceResolvedBroadcaster.idl @@ -0,0 +1,70 @@ +/* -*- 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_xml_crypto_sax_xreferenceresolvedbroadcaster_idl_ +#define __com_sun_star_xml_crypto_sax_xreferenceresolvedbroadcaster_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> + +module com { module sun { module star { module xml { module crypto { module sax { + +interface XReferenceResolvedListener; + +/** + * Interface of Reference Resolved Broadcaster. + * <p> + * This interface is used to manipulate reference resolved listener. + */ +interface XReferenceResolvedBroadcaster : com::sun::star::uno::XInterface +{ + /** + * Adds a new reference resolved listener for an element collector. + * <p> + * When the element collector has completely collected that element, + * this listener will receive a notification. + * + * @param referenceId the id of the element collector for which + * the new listener is added + * @param listener the listener to be added + */ + void addReferenceResolvedListener( + [in] long referenceId, + [in] XReferenceResolvedListener listener); + + /** + * Removes a listener from an element collector. + * <p> + * When a listener is removed, it will not receive notification when + * collection completes. + * + * @param referenceId the id of the element collector from which + * the listener is removed + * @param listener the listener to be removed + */ + void removeReferenceResolvedListener( + [in] long referenceId, + [in] XReferenceResolvedListener listener); +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/XReferenceResolvedListener.idl b/offapi/com/sun/star/xml/crypto/sax/XReferenceResolvedListener.idl new file mode 100644 index 000000000..71085587c --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/XReferenceResolvedListener.idl @@ -0,0 +1,49 @@ +/* -*- 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_xml_crypto_sax_xreferenceresolvedlistener_idl_ +#define __com_sun_star_xml_crypto_sax_xreferenceresolvedlistener_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> + +module com { module sun { module star { module xml { module crypto { module sax { + +/** + * Interface of Reference Resolved Listener. + * <p> + * This interface is used to receive the collection completion notification for an element + * collector. + */ +interface XReferenceResolvedListener : com::sun::star::uno::XInterface +{ + /** + * Notifies an element has been collected by an element collector. + * + * @param referenceId the id of the element collector + */ + void referenceResolved([in] long referenceId) + raises( com::sun::star::uno::Exception ); +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/XSAXEventKeeper.idl b/offapi/com/sun/star/xml/crypto/sax/XSAXEventKeeper.idl new file mode 100644 index 000000000..ef2def3fe --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/XSAXEventKeeper.idl @@ -0,0 +1,134 @@ +/* -*- 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_xml_crypto_sax_xsaxeventkeeper_idl_ +#define __com_sun_star_xml_crypto_sax_xsaxeventkeeper_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> +#include <com/sun/star/xml/sax/XDocumentHandler.idl> +#include <com/sun/star/xml/wrapper/XXMLDocumentWrapper.idl> +#include <com/sun/star/xml/wrapper/XXMLElementWrapper.idl> + +module com { module sun { module star { module xml { module crypto { module sax { + +/** + * Interface of SAX Event Keeper. + * <p> + * This interface is used to manipulate element marks in a SAX event stream. + * <p> + * There are two kinds of element mark, one is element collector, which is + * used to collect a particular element from the SAX event stream; the other + * is blocker, which is used to block the SAX event stream. + */ +interface XSAXEventKeeper : com::sun::star::uno::XInterface +{ + /** + * Adds a new element collector on the next element in the SAX event + * stream. + * + * @return the keeper id of the new element collector + */ + long addElementCollector(); + + /** + * Removes an element collector. + * + * @param id the keeper id of the element collector to be removed + */ + void removeElementCollector([in] long id); + + /** + * Adds a new blocker on the next element in the SAX event stream. + * <p> + * No SAX event starting from the next element will be forwarded until + * this blocker is removed. + * + * @return the keeper id of the new blocker + */ + long addBlocker(); + + /** + * Removes a blocker + * + * @param id the keeper id of the blocker to be removed + */ + void removeBlocker([in] long id); + + /** + * Checks whether the SAX event stream is blocking. + * + * @return <code>true</code> if blocking, <code>false</code> otherwise + */ + boolean isBlocking(); + + /** + * Gets the element of an element mark. + * + * @param id the keeper id of the element mark, it can be an element + * collector or a blocker + */ + com::sun::star::xml::wrapper::XXMLElementWrapper getElement([in] long id); + + /** + * Sets the element of an element mark. + * <p> + * When an element is replaced outside of this interface, then uses this method + * can restore the link between an element mark and its working element. + * + * @param id the keeper id of the element mark to be set + * @param aElement the new element for this element mark. + */ + void setElement( + [in] long id, + [in] com::sun::star::xml::wrapper::XXMLElementWrapper aElement); + + /** + * Sets the next document handler in the SAX chain. + * <p> + * This handler will receive SAX events forwarded by the SAXEventKeeper. + * + * @param nextHandler the next handler in the SAX chain + * @return the old next handler + */ + com::sun::star::xml::sax::XDocumentHandler setNextHandler( + [in] com::sun::star::xml::sax::XDocumentHandler nextHandler); + + /** + * Prints information about all buffered elements. + * + * @return a tree-style string including all buffer information + */ + string printBufferNodeTree(); + + /** + * Gets the element which current blocking happens. + * <p> + * This element is the working element of the first blocker in tree order. + * + * @return the current blocking element + */ + com::sun::star::xml::wrapper::XXMLElementWrapper getCurrentBlockingNode(); +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/XSAXEventKeeperStatusChangeBroadcaster.idl b/offapi/com/sun/star/xml/crypto/sax/XSAXEventKeeperStatusChangeBroadcaster.idl new file mode 100644 index 000000000..4a4ca1587 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/XSAXEventKeeperStatusChangeBroadcaster.idl @@ -0,0 +1,64 @@ +/* -*- 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_xml_crypto_sax_xsaxeventkeeperstatuschangebroadcaster_idl_ +#define __com_sun_star_xml_crypto_sax_xsaxeventkeeperstatuschangebroadcaster_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> + +module com { module sun { module star { module xml { module crypto { module sax { + +interface XSAXEventKeeperStatusChangeListener; + +/** + * Interface of SAXEventKeeper Status Change Broadcaster. + * <p> + * This interface is used to manipulate SAXEventKeeper status change listener. + */ +interface XSAXEventKeeperStatusChangeBroadcaster : com::sun::star::uno::XInterface +{ + /** + * Adds a new status change listener. + * <p> + * When the SAXEventKeeper's status changes, the listener will receive a + * notification. + * + * @param listener the listener to be added + */ + void addSAXEventKeeperStatusChangeListener( + [in] XSAXEventKeeperStatusChangeListener listener); + + /** + * Removes a status change listener. + * <p> + * After a listener is removed, no status change notification will be + * sent to it. + * + * @param listener the listener to be removed + */ + void removeSAXEventKeeperStatusChangeListener( + [in] XSAXEventKeeperStatusChangeListener listener); +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/XSAXEventKeeperStatusChangeListener.idl b/offapi/com/sun/star/xml/crypto/sax/XSAXEventKeeperStatusChangeListener.idl new file mode 100644 index 000000000..d214edc8a --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/XSAXEventKeeperStatusChangeListener.idl @@ -0,0 +1,66 @@ +/* -*- 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_xml_crypto_sax_xsaxeventkeeperstatuschangelistener_idl_ +#define __com_sun_star_xml_crypto_sax_xsaxeventkeeperstatuschangelistener_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> + +module com { module sun { module star { module xml { module crypto { module sax { + +/** + * Interface of SAXEventKeeper Status Change Listener. + * <p> + * This interface is used to receive the SAXEventKeeper status change notification. + */ +interface XSAXEventKeeperStatusChangeListener : com::sun::star::uno::XInterface +{ + /** + * Notifies the SAXEventKeeper is entering/leaving blocking state. + * + * @param isBlocking <code>true</code> if the SAXEventKeeper is + * entering blocking state, <code>false</code> + * otherwise + */ + void blockingStatusChanged([in] boolean isBlocking); + + /** + * Notifies the SAXEventKeeper is entering/leaving collecting state. + * + * @param isInsideCollectedElement <code>true</code> if the SAXEventKeeper is + * collecting some element, <code>false</code> + * otherwise + */ + void collectionStatusChanged([in] boolean isInsideCollectedElement); + + /** + * Notifies the SAXEventKeeper's buffer is empty/not empty + * + * @param isBufferEmpty <code>true</code> if the SAXEventKeeper has no buffer + * at all; <code>false</code> otherwise. + */ + void bufferStatusChanged([in] boolean isBufferEmpty); +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/XSecuritySAXEventKeeper.idl b/offapi/com/sun/star/xml/crypto/sax/XSecuritySAXEventKeeper.idl new file mode 100644 index 000000000..94d2e9e71 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/XSecuritySAXEventKeeper.idl @@ -0,0 +1,68 @@ +/* -*- 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_xml_crypto_sax_xsecuritysaxeventkeeper_idl_ +#define __com_sun_star_xml_crypto_sax_xsecuritysaxeventkeeper_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> +#include <com/sun/star/xml/crypto/sax/XSAXEventKeeper.idl> +#include <com/sun/star/xml/crypto/sax/ConstOfSecurityId.idl> +#include <com/sun/star/xml/crypto/sax/ElementMarkPriority.idl> +#include <com/sun/star/xml/crypto/sax/ElementMarkType.idl> + +module com { module sun { module star { module xml { module crypto { module sax { + +/** + * Interface of Security SAX Event Keeper. + * <p> + * This interface is an extension of the XSAXEventKeeper interface, + * some security related features are added. + */ +interface XSecuritySAXEventKeeper : XSAXEventKeeper +{ + /** + * Adds a new element collector on the next element in the SAX event + * stream. + * + * @param priority the priority of the element collector. See + * ConstOfPriority + * @param modifyElement a flag representing whether the element + * collector will modify the content of its + * element after notification + * @return the keeper id of the new element collector + */ + long addSecurityElementCollector( + [in] ElementMarkPriority priority, + [in] boolean modifyElement); + + /** + * Sets security id for an element mark. + * + * @param id the keeper id of the element collector to be set + * @param securityId the security id to be set + */ + void setSecurityId([in] long id, [in] long securityId); +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/XSignatureCreationResultBroadcaster.idl b/offapi/com/sun/star/xml/crypto/sax/XSignatureCreationResultBroadcaster.idl new file mode 100644 index 000000000..2a1ed9f15 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/XSignatureCreationResultBroadcaster.idl @@ -0,0 +1,64 @@ +/* -*- 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_xml_crypto_sax_xsignaturecreationresultbroadcaster_idl_ +#define __com_sun_star_xml_crypto_sax_xsignaturecreationresultbroadcaster_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> + +module com { module sun { module star { module xml { module crypto { module sax { + +interface XSignatureCreationResultListener; + +/** + * Interface of Signature Creation Result Broadcaster. + * <p> + * This interface is used to manipulate signature creation result listener. + */ +interface XSignatureCreationResultBroadcaster : com::sun::star::uno::XInterface +{ + /** + * Adds a new signature creation result listener. + * <p> + * When the signature is created, the result information will be sent to this + * listener. + * + * @param listener the listener to be added + */ + void addSignatureCreationResultListener( + [in] XSignatureCreationResultListener listener) + raises( com::sun::star::uno::Exception ); + + /** + * Removes a signature creation result listener. + * <p> + * After a listener is removed, no result information will be sent to it. + * + * @param listener the listener to be removed + */ + void removeSignatureCreationResultListener( + [in] XSignatureCreationResultListener listener); +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/XSignatureCreationResultListener.idl b/offapi/com/sun/star/xml/crypto/sax/XSignatureCreationResultListener.idl new file mode 100644 index 000000000..c7f958a51 --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/XSignatureCreationResultListener.idl @@ -0,0 +1,52 @@ +/* -*- 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_xml_crypto_sax_xsignaturecreationresultlistener_idl_ +#define __com_sun_star_xml_crypto_sax_xsignaturecreationresultlistener_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> +#include <com/sun/star/xml/crypto/SecurityOperationStatus.idl> + +module com { module sun { module star { module xml { module crypto { module sax { + +/** + * Interface of Signature Creation Result Listener. + * <p> + * This interface is used to receive the result information of a + * signature creation. + */ +interface XSignatureCreationResultListener : com::sun::star::uno::XInterface +{ + /** + * Notifies the signature creation result. + * + * @param securityId the security id of the signature + * @param creationResult the result information + */ + void signatureCreated( + [in] long securityId, + [in] com::sun::star::xml::crypto::SecurityOperationStatus creationResult); +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/XSignatureVerifyResultBroadcaster.idl b/offapi/com/sun/star/xml/crypto/sax/XSignatureVerifyResultBroadcaster.idl new file mode 100644 index 000000000..20b64966d --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/XSignatureVerifyResultBroadcaster.idl @@ -0,0 +1,64 @@ +/* -*- 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_xml_crypto_sax_xsignatureverifyresultbroadcaster_idl_ +#define __com_sun_star_xml_crypto_sax_xsignatureverifyresultbroadcaster_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> + +module com { module sun { module star { module xml { module crypto { module sax { + +interface XSignatureVerifyResultListener; + +/** + * Interface of Signature Verify Result Broadcaster. + * <p> + * This interface is used to manipulate signature verify result listener. + */ +interface XSignatureVerifyResultBroadcaster : com::sun::star::uno::XInterface +{ + /** + * Adds a new signature verify result listener. + * <p> + * When the signature is verified, the result information will be sent to this + * listener. + * + * @param listener the listener to be added + */ + void addSignatureVerifyResultListener( + [in] XSignatureVerifyResultListener listener) + raises( com::sun::star::uno::Exception ); + + /** + * Removes a signature verify result listener. + * <p> + * After a listener is removed, no result information will be sent to it. + * + * @param listener the listener to be removed + */ + void removeSignatureVerifyResultListener( + [in] XSignatureVerifyResultListener listener); +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/xml/crypto/sax/XSignatureVerifyResultListener.idl b/offapi/com/sun/star/xml/crypto/sax/XSignatureVerifyResultListener.idl new file mode 100644 index 000000000..f1ea34f9f --- /dev/null +++ b/offapi/com/sun/star/xml/crypto/sax/XSignatureVerifyResultListener.idl @@ -0,0 +1,52 @@ +/* -*- 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_xml_crypto_sax_xsignatureverifyresultlistener_idl_ +#define __com_sun_star_xml_crypto_sax_xsignatureverifyresultlistener_idl_ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Exception.idl> +#include <com/sun/star/xml/crypto/SecurityOperationStatus.idl> + +module com { module sun { module star { module xml { module crypto { module sax { + +/** + * Interface of Signature Verify Result Listener. + * <p> + * This interface is used to receive the result information of a + * signature verification. + */ +interface XSignatureVerifyResultListener : com::sun::star::uno::XInterface +{ + /** + * Notifies the signature verify result. + * + * @param securityId the security id of the signature + * @param verifyResult the result information + */ + void signatureVerified( + [in] long securityId, + [in] com::sun::star::xml::crypto::SecurityOperationStatus verifyResult); +}; + +} ; } ; } ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |