1*b1cdbd2cSJim Jagielski/**************************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski *************************************************************/
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_embed_XEncryptionProtectedStorage_idl__
24*b1cdbd2cSJim Jagielski#define __com_sun_star_embed_XEncryptionProtectedStorage_idl__
25*b1cdbd2cSJim Jagielski
26*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_embed_XEncryptionProtectedSource2_idl__
27*b1cdbd2cSJim Jagielski#include <com/sun/star/embed/XEncryptionProtectedSource2.idl>
28*b1cdbd2cSJim Jagielski#endif
29*b1cdbd2cSJim Jagielski
30*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_beans_NamedValue_idl__
31*b1cdbd2cSJim Jagielski#include <com/sun/star/beans/NamedValue.idl>
32*b1cdbd2cSJim Jagielski#endif
33*b1cdbd2cSJim Jagielski
34*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
35*b1cdbd2cSJim Jagielski#include <com/sun/star/lang/IllegalArgumentException.idl>
36*b1cdbd2cSJim Jagielski#endif
37*b1cdbd2cSJim Jagielski
38*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_xml_crypto_DigestID_idl__
39*b1cdbd2cSJim Jagielski#include <com/sun/star/xml/crypto/DigestID.idl>
40*b1cdbd2cSJim Jagielski#endif
41*b1cdbd2cSJim Jagielski
42*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_xml_crypto_CipherID_idl__
43*b1cdbd2cSJim Jagielski#include <com/sun/star/xml/crypto/CipherID.idl>
44*b1cdbd2cSJim Jagielski#endif
45*b1cdbd2cSJim Jagielski
46*b1cdbd2cSJim Jagielski//============================================================================
47*b1cdbd2cSJim Jagielski
48*b1cdbd2cSJim Jagielskimodule com {  module sun {  module star {  module embed {
49*b1cdbd2cSJim Jagielski
50*b1cdbd2cSJim Jagielski//============================================================================
51*b1cdbd2cSJim Jagielski/** This interface allows to set a password for an object.
52*b1cdbd2cSJim Jagielski
53*b1cdbd2cSJim Jagielski    @since OpenOffice 3.4
54*b1cdbd2cSJim Jagielski */
55*b1cdbd2cSJim Jagielskiinterface XEncryptionProtectedStorage: XEncryptionProtectedSource2
56*b1cdbd2cSJim Jagielski{
57*b1cdbd2cSJim Jagielski	// -----------------------------------------------------------------------
58*b1cdbd2cSJim Jagielski	/** allows to set the encryption algorithms for the object.
59*b1cdbd2cSJim Jagielski        <p>
60*b1cdbd2cSJim Jagielski        The algorithms will of course be used only for streams that have been
61*b1cdbd2cSJim Jagielski        marked to be encrypted. If no stream in the storage is marked to be
62*b1cdbd2cSJim Jagielski        encrypted, the algorithms-related information may have no effect to
63*b1cdbd2cSJim Jagielski        the result package.
64*b1cdbd2cSJim Jagielski        </p>
65*b1cdbd2cSJim Jagielski
66*b1cdbd2cSJim Jagielski        <p>
67*b1cdbd2cSJim Jagielski        The following values could be part of the provided sequence:
68*b1cdbd2cSJim Jagielski        </p>
69*b1cdbd2cSJim Jagielski        <dl>
70*b1cdbd2cSJim Jagielski            <dt>StartKeyGenerationAlgorithm</dt>
71*b1cdbd2cSJim Jagielski            <dd>
72*b1cdbd2cSJim Jagielski                    specifies the algorithm that was used to generate
73*b1cdbd2cSJim Jagielski                    the EncryptionKey from the original password; in case
74*b1cdbd2cSJim Jagielski                    the contents should be decrypted, the algorithm might
75*b1cdbd2cSJim Jagielski                    be already known by the object; if a different one is
76*b1cdbd2cSJim Jagielski                    set an exception should be thrown to indicate the
77*b1cdbd2cSJim Jagielski                    error; it should take values from
78*b1cdbd2cSJim Jagielski                    <type scope="com::sun::star::xml:crypto">DigestID</type>.
79*b1cdbd2cSJim Jagielski            </dd>
80*b1cdbd2cSJim Jagielski            <dt>EncryptionAlgorithm</dt>
81*b1cdbd2cSJim Jagielski            <dd>
82*b1cdbd2cSJim Jagielski                    specifies the algorithm that should be used to
83*b1cdbd2cSJim Jagielski                    encrypt/decrypt the contents; in case the contents
84*b1cdbd2cSJim Jagielski                    should be decrypted, the algorithm might be already
85*b1cdbd2cSJim Jagielski                    known by the object; if a different one is set
86*b1cdbd2cSJim Jagielski                    an exception should be thrown to indicate the error;
87*b1cdbd2cSJim Jagielski                    it should take values from
88*b1cdbd2cSJim Jagielski                    <type scope="com::sun::star::xml:crypto">CipherID</type>.
89*b1cdbd2cSJim Jagielski            </dd>
90*b1cdbd2cSJim Jagielski            <dt>ChecksumAlgorithm</dt>
91*b1cdbd2cSJim Jagielski            <dd>
92*b1cdbd2cSJim Jagielski                    specifies the algorithm that was used to generate
93*b1cdbd2cSJim Jagielski                    the checksum of the encrypted data; in case
94*b1cdbd2cSJim Jagielski                    the contents should be decrypted, the algorithm might
95*b1cdbd2cSJim Jagielski                    be already known by the object; if a different one is
96*b1cdbd2cSJim Jagielski                    set an exception should be thrown to indicate the
97*b1cdbd2cSJim Jagielski                    error; it should take values from
98*b1cdbd2cSJim Jagielski                    <type scope="com::sun::star::xml:crypto">DigestID</type>.
99*b1cdbd2cSJim Jagielski            </dd>
100*b1cdbd2cSJim Jagielski        </dl>
101*b1cdbd2cSJim Jagielski	 */
102*b1cdbd2cSJim Jagielski    void setEncryptionAlgorithms( [in] sequence< ::com::sun::star::beans::NamedValue > aAlgorithms )
103*b1cdbd2cSJim Jagielski		raises( ::com::sun::star::lang::IllegalArgumentException );
104*b1cdbd2cSJim Jagielski
105*b1cdbd2cSJim Jagielski	// -----------------------------------------------------------------------
106*b1cdbd2cSJim Jagielski	/** allows to get the encryption algorithms of the object.
107*b1cdbd2cSJim Jagielski	 */
108*b1cdbd2cSJim Jagielski    sequence< ::com::sun::star::beans::NamedValue > getEncryptionAlgorithms();
109*b1cdbd2cSJim Jagielski};
110*b1cdbd2cSJim Jagielski
111*b1cdbd2cSJim Jagielski//============================================================================
112*b1cdbd2cSJim Jagielski
113*b1cdbd2cSJim Jagielski}; }; }; };
114*b1cdbd2cSJim Jagielski
115*b1cdbd2cSJim Jagielski#endif
116*b1cdbd2cSJim Jagielski
117