<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.openoffice.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mav</id>
	<title>Apache OpenOffice Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.openoffice.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mav"/>
	<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/wiki/Special:Contributions/Mav"/>
	<updated>2026-05-06T04:16:58Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Security/Encryption&amp;diff=137962</id>
		<title>Security/Encryption</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Security/Encryption&amp;diff=137962"/>
		<updated>2009-08-21T12:17:16Z</updated>

		<summary type="html">&lt;p&gt;Mav: /* Enhancing the Encryption Specification for ODF 1.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Encrypted documents shouldn&amp;#039;t have any non encrypted content  ==&lt;br /&gt;
&lt;br /&gt;
Currently it is possible to add any non encrypted content into encrypted documents, simply by putting new streams into the zip archive. &lt;br /&gt;
&lt;br /&gt;
This way, someone could for example add macro code into documents without the need to know the password. &lt;br /&gt;
&lt;br /&gt;
The possibility to add content to an encrypted document is quite bad, and it becomes worse with macros, because passwords increase the level of trust the user has to a document, when it was encrypted by a person he knows. &lt;br /&gt;
&lt;br /&gt;
OOo will detect the macros, and ask the user whether or not to execute them. The user might trust the author of the document, and because of the encryption normally nobody should have been able to manipulate it, so he will probably allow OOo to execute the macros. At least, it&amp;#039;s not possible to bind the macros to some event, so it would get executed automatically. &lt;br /&gt;
&lt;br /&gt;
In general, an encrypted document shouldn&amp;#039;t have any non encrypted content. Exceptions are some files in the META-INF folder: manifest.xml, which is needed to get the encryption information, and the digital signature files also might not be encrypted, depending on the signature implementation. &lt;br /&gt;
&lt;br /&gt;
OOo should show a warning when an encrypted document contains streams which should be encrypted, but aren&amp;#039;t. Additionally, macros should be disabled for the document. (issue #i103927)&lt;br /&gt;
&lt;br /&gt;
== Improving the Encryption Implementation in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
For OOo 3.2, we plan to improve the document encryption, or better, the handling of documents which have issues like mentioned above (issue #i103927). &lt;br /&gt;
&lt;br /&gt;
When OOo opens an encrypted document, it will check via the manifest if all files are encrypted. Some encrypted files in a ODF zip archive still might use the encryption key, different from the document encryption key.&lt;br /&gt;
&lt;br /&gt;
When detecting not encrypted files, OOo will show a warning to the user, and will disable the execution of macros in the document.&lt;br /&gt;
&lt;br /&gt;
== Enhancing the Encryption Specification for ODF 1.2  ==&lt;br /&gt;
&lt;br /&gt;
Currently the ODF specification specifies one way for encrypting ODF documents, and ODF applications can&amp;#039;t chose different algorithms. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Choosing other encryption algorithms can be important, to comply with encryption rules from a company or Government using ODF. &lt;br /&gt;
&lt;br /&gt;
The information about the used algorithms (for each step)&amp;amp;nbsp;need to be documented in the manifest.xml.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This is the general part of the latest draft of the proposal that we will send to the OASIS OpenDocument TC:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;blockquote&amp;gt;2.3 Encryption: &amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;The encryption process takes place in the following multiple stages:&amp;lt;br&amp;gt; &lt;br /&gt;
#The start key is generated and is provided to the package component. &lt;br /&gt;
#The derived key is generated by the component based on the start key. &lt;br /&gt;
#The files are encrypted based on the derived key and the encryption algorithm.&lt;br /&gt;
The implementation must support at least the described below default way for the mentioned steps. In addition it might support encryption, where algorithms different from the default are used for the steps. The information regarding used for each step algorithms has to be provided in the manifest.xml accordingly. &amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;The default way is:&amp;lt;br&amp;gt; &lt;br /&gt;
#The start key is generated. The byte sequence representing the password in UTF-8 is used to generate a 20-byte SHA1 digest (see [RFC3174]). The result star key is passed to the package component. &lt;br /&gt;
#The derived key is generated by the package component from the start key. The PBKDF2 algorithm based on HMAC-SHA-1 function (see [RFC2898]) is used for the key derivation. The random number generator initialized with the current time is used to generate 16-byte salt for each file. The salt is used together with the start key to derive a unique 128-bit key for each file. The default iteration count for the algorithm is 1024. &lt;br /&gt;
#The files are encrypted. The random number generator is used to generate the 8-byte initialization vector for the algorithm. The derived key is used together with the initialization vector to encrypt the file using the Blowfish algorithm in cipher feedback (CFB) mode (see [blowfish]).&lt;br /&gt;
Each file that is encrypted is compressed before being encrypted. To allow the contents of the package file to be verified, it is necessary that encrypted files are flagged as &amp;#039;STORED&amp;#039; rather than &amp;#039;DEFLATED&amp;#039;. As entries which are &amp;#039;STORED&amp;#039; must have their size equal to the compressed size, it is necessary to store the uncompressed size in the manifest. The compressed size is stored in both the local file header and central directory record of the Zip file.&amp;lt;br&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comply to the updated ODF 1.2 Encryption Specification in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
OOo 3.2 needs to comply with the updated encryption specification above. This mainly means that all algorithms used in the different steps needs to be documented in the manifest.xml. It does not mean that OOo would implement other algorithms now. (issue #XXXXX)&lt;br /&gt;
&lt;br /&gt;
== Missing Encryption of manifest.xml  ==&lt;br /&gt;
&lt;br /&gt;
To some people it looks surprising that the manifest.xml is not encrypted. &lt;br /&gt;
&lt;br /&gt;
Actually, the manifest.xml contains the information that any ODF application needs to open the document, including the encryption and hash algorithms which have been used to encrypt the document...&lt;br /&gt;
&lt;br /&gt;
== Protecting the not encrypted manifest.xml in an encrypted document  ==&lt;br /&gt;
&lt;br /&gt;
Since the manifest.xml can&amp;#039;t be encrypted, someone could make modifications to manifest.xml in encrypted documents. &lt;br /&gt;
&lt;br /&gt;
It needs to be discussed if there needs to be some protection against this. &lt;br /&gt;
&lt;br /&gt;
For example, we could generate some signature/hash for encrypted version of manifest.xml ( with the common document encryption key ), and store it in a separate stream in the META-INF folder.&lt;br /&gt;
&lt;br /&gt;
This could be some OOo-only solution, and OOo would only warn when the signature is missing in documents written with OOo, or it could become part of some future version of the ODF specification. &lt;br /&gt;
&lt;br /&gt;
This topic needs further discussions...&lt;br /&gt;
&lt;br /&gt;
== Public Key Document Encryption  ==&lt;br /&gt;
&lt;br /&gt;
It would be a nice feature to allow public key encryption for encrypting documents. People could encrypt the documents with their own and/or with other people&amp;#039;s public key certificates, so only the owners of the corresponding private keys would be able to open the document. No need to exchange or remember passwords. &lt;br /&gt;
&lt;br /&gt;
== Digital Rights Management  ==&lt;br /&gt;
&lt;br /&gt;
OpenOffice.org could support DRM. The part &amp;quot;user can/can&amp;#039;t open a document&amp;quot; makes sense, can be implemented reliable. Enhanced rights/restrictions like &amp;quot;can copy/print/...&amp;quot; can&amp;#039;t be guaranteed, because they could be removed easily in an open source application. &lt;br /&gt;
&lt;br /&gt;
See also [http://www.slideshare.net/Malte.Timmermann/openofficeorgstaroffice-drm-omc-workshop-2006-presentation my slides] from Sun&amp;#039;s [http://www.openmediacommons.org/ Open Media Commons] workshop. &lt;br /&gt;
&lt;br /&gt;
== Password length and password pattern  ==&lt;br /&gt;
&lt;br /&gt;
The ancient minimal password length in the password dialog should be removed, but don&amp;#039;t allow empty passwords. (issue #i103783) &lt;br /&gt;
&lt;br /&gt;
In future it&amp;#039;s better to add some good explanations about strong passwords to password dialogs and online help.&lt;br /&gt;
&lt;br /&gt;
What about adding some configuration items, so companies can configure OOo to adhere to their password rules? &lt;br /&gt;
&lt;br /&gt;
Ooo-password-properties: MinPasswordLength (default=1 if not set), MinNumbercharacters, MinSpecialCharacters, ForbiddenCharacters. &lt;br /&gt;
&lt;br /&gt;
We would then also need some dialog which explains the password rule to the user.&lt;br /&gt;
&lt;br /&gt;
== Thumbnails in encrypted documents  ==&lt;br /&gt;
&lt;br /&gt;
ODF documents can contain a thumbnail, to display a small picture of the first page in a file explorer. &lt;br /&gt;
&lt;br /&gt;
Currently, encrypted documents contain encrypted thumbnails, which is not good for anything.&lt;br /&gt;
&lt;br /&gt;
Encrypted documents shouldn&amp;#039;t store thumbnails. (issue #i103930)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason for this is that encrypted documents mustn&amp;#039;t contain any non encrypted streams (with some exceptions). And since the encrypted document contains a standard bitmap as a thumbnail it makes no sense to store it in the document anyway. The bitmap should be part of the system integration. &lt;br /&gt;
&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Security/Encryption&amp;diff=137961</id>
		<title>Security/Encryption</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Security/Encryption&amp;diff=137961"/>
		<updated>2009-08-21T12:16:07Z</updated>

		<summary type="html">&lt;p&gt;Mav: /* Enhancing the Encryption Specification for ODF 1.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Encrypted documents shouldn&amp;#039;t have any non encrypted content  ==&lt;br /&gt;
&lt;br /&gt;
Currently it is possible to add any non encrypted content into encrypted documents, simply by putting new streams into the zip archive. &lt;br /&gt;
&lt;br /&gt;
This way, someone could for example add macro code into documents without the need to know the password. &lt;br /&gt;
&lt;br /&gt;
The possibility to add content to an encrypted document is quite bad, and it becomes worse with macros, because passwords increase the level of trust the user has to a document, when it was encrypted by a person he knows. &lt;br /&gt;
&lt;br /&gt;
OOo will detect the macros, and ask the user whether or not to execute them. The user might trust the author of the document, and because of the encryption normally nobody should have been able to manipulate it, so he will probably allow OOo to execute the macros. At least, it&amp;#039;s not possible to bind the macros to some event, so it would get executed automatically. &lt;br /&gt;
&lt;br /&gt;
In general, an encrypted document shouldn&amp;#039;t have any non encrypted content. Exceptions are some files in the META-INF folder: manifest.xml, which is needed to get the encryption information, and the digital signature files also might not be encrypted, depending on the signature implementation. &lt;br /&gt;
&lt;br /&gt;
OOo should show a warning when an encrypted document contains streams which should be encrypted, but aren&amp;#039;t. Additionally, macros should be disabled for the document. (issue #i103927)&lt;br /&gt;
&lt;br /&gt;
== Improving the Encryption Implementation in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
For OOo 3.2, we plan to improve the document encryption, or better, the handling of documents which have issues like mentioned above (issue #i103927). &lt;br /&gt;
&lt;br /&gt;
When OOo opens an encrypted document, it will check via the manifest if all files are encrypted. Some encrypted files in a ODF zip archive still might use the encryption key, different from the document encryption key.&lt;br /&gt;
&lt;br /&gt;
When detecting not encrypted files, OOo will show a warning to the user, and will disable the execution of macros in the document.&lt;br /&gt;
&lt;br /&gt;
== Enhancing the Encryption Specification for ODF 1.2  ==&lt;br /&gt;
&lt;br /&gt;
Currently the ODF specification specifies one way for encrypting ODF documents, and ODF applications can&amp;#039;t chose different algorithms. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Choosing other encryption algorithms can be important, to comply with encryption rules from a company or Government using ODF. &lt;br /&gt;
&lt;br /&gt;
The information about the used algorithms (for each step)&amp;amp;nbsp;need to be documented in the manifest.xml.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This is the latest draft of the proposal that we will send to the OASIS OpenDocument TC:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;blockquote&amp;gt;2.3 Encryption: &amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;The encryption process takes place in the following multiple stages:&amp;lt;br&amp;gt; &lt;br /&gt;
#The start key is generated and is provided to the package component. &lt;br /&gt;
#The derived key is generated by the component based on the start key. &lt;br /&gt;
#The files are encrypted based on the derived key and the encryption algorithm.&lt;br /&gt;
The implementation must support at least the described below default way for the mentioned steps. In addition it might support encryption, where algorithms different from the default are used for the steps. The information regarding used for each step algorithms has to be provided in the manifest.xml accordingly. &amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;The default way is:&amp;lt;br&amp;gt; &lt;br /&gt;
#The start key is generated. The byte sequence representing the password in UTF-8 is used to generate a 20-byte SHA1 digest (see [RFC3174]). The result star key is passed to the package component. &lt;br /&gt;
#The derived key is generated by the package component from the start key. The PBKDF2 algorithm based on HMAC-SHA-1 function (see [RFC2898]) is used for the key derivation. The random number generator initialized with the current time is used to generate 16-byte salt for each file. The salt is used together with the start key to derive a unique 128-bit key for each file. The default iteration count for the algorithm is 1024. &lt;br /&gt;
#The files are encrypted. The random number generator is used to generate the 8-byte initialization vector for the algorithm. The derived key is used together with the initialization vector to encrypt the file using the Blowfish algorithm in cipher feedback (CFB) mode (see [blowfish]).&lt;br /&gt;
Each file that is encrypted is compressed before being encrypted. To allow the contents of the package file to be verified, it is necessary that encrypted files are flagged as &amp;#039;STORED&amp;#039; rather than &amp;#039;DEFLATED&amp;#039;. As entries which are &amp;#039;STORED&amp;#039; must have their size equal to the compressed size, it is necessary to store the uncompressed size in the manifest. The compressed size is stored in both the local file header and central directory record of the Zip file.&amp;lt;br&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comply to the updated ODF 1.2 Encryption Specification in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
OOo 3.2 needs to comply with the updated encryption specification above. This mainly means that all algorithms used in the different steps needs to be documented in the manifest.xml. It does not mean that OOo would implement other algorithms now. (issue #XXXXX)&lt;br /&gt;
&lt;br /&gt;
== Missing Encryption of manifest.xml  ==&lt;br /&gt;
&lt;br /&gt;
To some people it looks surprising that the manifest.xml is not encrypted. &lt;br /&gt;
&lt;br /&gt;
Actually, the manifest.xml contains the information that any ODF application needs to open the document, including the encryption and hash algorithms which have been used to encrypt the document...&lt;br /&gt;
&lt;br /&gt;
== Protecting the not encrypted manifest.xml in an encrypted document  ==&lt;br /&gt;
&lt;br /&gt;
Since the manifest.xml can&amp;#039;t be encrypted, someone could make modifications to manifest.xml in encrypted documents. &lt;br /&gt;
&lt;br /&gt;
It needs to be discussed if there needs to be some protection against this. &lt;br /&gt;
&lt;br /&gt;
For example, we could generate some signature/hash for encrypted version of manifest.xml ( with the common document encryption key ), and store it in a separate stream in the META-INF folder.&lt;br /&gt;
&lt;br /&gt;
This could be some OOo-only solution, and OOo would only warn when the signature is missing in documents written with OOo, or it could become part of some future version of the ODF specification. &lt;br /&gt;
&lt;br /&gt;
This topic needs further discussions...&lt;br /&gt;
&lt;br /&gt;
== Public Key Document Encryption  ==&lt;br /&gt;
&lt;br /&gt;
It would be a nice feature to allow public key encryption for encrypting documents. People could encrypt the documents with their own and/or with other people&amp;#039;s public key certificates, so only the owners of the corresponding private keys would be able to open the document. No need to exchange or remember passwords. &lt;br /&gt;
&lt;br /&gt;
== Digital Rights Management  ==&lt;br /&gt;
&lt;br /&gt;
OpenOffice.org could support DRM. The part &amp;quot;user can/can&amp;#039;t open a document&amp;quot; makes sense, can be implemented reliable. Enhanced rights/restrictions like &amp;quot;can copy/print/...&amp;quot; can&amp;#039;t be guaranteed, because they could be removed easily in an open source application. &lt;br /&gt;
&lt;br /&gt;
See also [http://www.slideshare.net/Malte.Timmermann/openofficeorgstaroffice-drm-omc-workshop-2006-presentation my slides] from Sun&amp;#039;s [http://www.openmediacommons.org/ Open Media Commons] workshop. &lt;br /&gt;
&lt;br /&gt;
== Password length and password pattern  ==&lt;br /&gt;
&lt;br /&gt;
The ancient minimal password length in the password dialog should be removed, but don&amp;#039;t allow empty passwords. (issue #i103783) &lt;br /&gt;
&lt;br /&gt;
In future it&amp;#039;s better to add some good explanations about strong passwords to password dialogs and online help.&lt;br /&gt;
&lt;br /&gt;
What about adding some configuration items, so companies can configure OOo to adhere to their password rules? &lt;br /&gt;
&lt;br /&gt;
Ooo-password-properties: MinPasswordLength (default=1 if not set), MinNumbercharacters, MinSpecialCharacters, ForbiddenCharacters. &lt;br /&gt;
&lt;br /&gt;
We would then also need some dialog which explains the password rule to the user.&lt;br /&gt;
&lt;br /&gt;
== Thumbnails in encrypted documents  ==&lt;br /&gt;
&lt;br /&gt;
ODF documents can contain a thumbnail, to display a small picture of the first page in a file explorer. &lt;br /&gt;
&lt;br /&gt;
Currently, encrypted documents contain encrypted thumbnails, which is not good for anything.&lt;br /&gt;
&lt;br /&gt;
Encrypted documents shouldn&amp;#039;t store thumbnails. (issue #i103930)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason for this is that encrypted documents mustn&amp;#039;t contain any non encrypted streams (with some exceptions). And since the encrypted document contains a standard bitmap as a thumbnail it makes no sense to store it in the document anyway. The bitmap should be part of the system integration. &lt;br /&gt;
&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Security/Encryption&amp;diff=137949</id>
		<title>Security/Encryption</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Security/Encryption&amp;diff=137949"/>
		<updated>2009-08-21T08:46:31Z</updated>

		<summary type="html">&lt;p&gt;Mav: /* Improving the Encryption Implementation in OOo 3.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Encrypted documents shouldn&amp;#039;t have any non encrypted content  ==&lt;br /&gt;
&lt;br /&gt;
Currently it is possible to add any non encrypted content into encrypted documents, simply by putting new streams into the zip archive. &lt;br /&gt;
&lt;br /&gt;
This way, someone could for example add macro code into documents without the need to know the password. &lt;br /&gt;
&lt;br /&gt;
The possibility to add content to an encrypted document is quite bad, and it becomes worse with macros, because passwords increase the level of trust the user has to a document, when it was encrypted by a person he knows. &lt;br /&gt;
&lt;br /&gt;
OOo will detect the macros, and ask the user whether or not to execute them. The user might trust the author of the document, and because of the encryption normally nobody should have been able to manipulate it, so he will probably allow OOo to execute the macros. At least, it&amp;#039;s not possible to bind the macros to some event, so it would get executed automatically. &lt;br /&gt;
&lt;br /&gt;
In general, an encrypted document shouldn&amp;#039;t have any non encrypted content. Exceptions are some files in the META-INF folder: manifest.xml, which is needed to get the encryption information, and the digital signature files also might not be encrypted, depending on the signature implementation. &lt;br /&gt;
&lt;br /&gt;
OOo should show a warning when an encrypted document contains streams which should be encrypted, but aren&amp;#039;t. Additionally, macros should be disabled for the document. (issue #i103927)&lt;br /&gt;
&lt;br /&gt;
== Improving the Encryption Implementation in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
For OOo 3.2, we plan to improve the document encryption, or better, the handling of documents which have issues like mentioned above (issue #i103927). &lt;br /&gt;
&lt;br /&gt;
When OOo opens an encrypted document, it will check via the manifest if all files are encrypted. Some encrypted files in a ODF zip archive still might use the encryption key, different from the document encryption key.&lt;br /&gt;
&lt;br /&gt;
When detecting not encrypted files, OOo will show a warning to the user, and will disable the execution of macros in the document.&lt;br /&gt;
&lt;br /&gt;
== Enhancing the Encryption Specification for ODF 1.2  ==&lt;br /&gt;
&lt;br /&gt;
Currently the ODF specification specifies one way for encrypting ODF documents, and ODF applications can&amp;#039;t chose different algorithms. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Choosing other encryption algorithms can be important, to comply with encryption rules from a company or Government using ODF. &lt;br /&gt;
&lt;br /&gt;
The information about the used algorithms (for each step)&amp;amp;nbsp;need to be documented in the manifest.xml.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This is the latest draft of the proposal that we will send to the OASIS OpenDocument TC:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;blockquote&amp;gt;2.3 Encryption: &amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;The encryption process takes place in the following multiple stages:&amp;lt;br&amp;gt; &lt;br /&gt;
#The start key is generated and is provided to the package component. &lt;br /&gt;
#The derived key is generated by the component based on the start key. &lt;br /&gt;
#The files are encrypted based on the derived key and the encryption algorithm.&lt;br /&gt;
The implementation must support at least the described below default way for the mentioned steps. In addition it might support encryption, where algorithms different from the default are used for the steps. The information regarding used for each step algorithms has to be provided in the manifest.xml accordingly. &amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;The default way is:&amp;lt;br&amp;gt; &lt;br /&gt;
#The start key is generated. The byte sequence representing the password in UTF-8 is used to generate a 20-byte SHA1 digest (see [RFC3174]). The result star key is passed to the package component. &lt;br /&gt;
#The derived key is generated by the package component from the start key. The PBKDF2 algorithm based on HMAC-SHA-1 function (see [RFC2898]) is used for the key derivation. The random number generator initialized with the current time is used to generate 16-byte salt for each file. The salt is used together with the start key to derive a unique 128-bit key for each file. The default iteration count for the algorithm is 1024. &lt;br /&gt;
#The files are encrypted. The random number generator is used to generate the 8-byte initialization vector for the algorithm. The derived key is used together with the initialization vector to encrypt the file using the Blowfish algorithm in cipher feedback (CFB) mode (see [blowfish]).&lt;br /&gt;
Each file that is encrypted is compressed before being encrypted. To allow the contents of the package file to be verified, it is necessary that encrypted files are flagged as &amp;#039;STORED&amp;#039; rather than &amp;#039;DEFLATED&amp;#039;. As entries which are &amp;#039;STORED&amp;#039; must have their size equal to the compressed size, it is necessary to store the uncompressed size in the manifest. The compressed size is stored in both the local file header and central directory record of the Zip file.&amp;lt;br&amp;gt;In an encrypted document all the document files should be encrypted. Non-document files, that are allowed to stay nonencrypted are the files that are recognized as a part of the package format: “mimetype”, “META-INF/manifest.xml” and the signature streams in “META-INF”.&amp;lt;br&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comply to the updated ODF 1.2 Encryption Specification in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
OOo 3.2 needs to comply with the updated encryption specification above. This mainly means that all algorithms used in the different steps needs to be documented in the manifest.xml. It does not mean that OOo would implement other algorithms now. (issue #XXXXX)&lt;br /&gt;
&lt;br /&gt;
== Missing Encryption of manifest.xml  ==&lt;br /&gt;
&lt;br /&gt;
To some people it looks surprising that the manifest.xml is not encrypted. &lt;br /&gt;
&lt;br /&gt;
Actually, the manifest.xml contains the information that any ODF application needs to open the document, including the encryption and hash algorithms which have been used to encrypt the document...&lt;br /&gt;
&lt;br /&gt;
== Protecting the not encrypted manifest.xml in an encrypted document  ==&lt;br /&gt;
&lt;br /&gt;
Since the manifest.xml can&amp;#039;t be encrypted, someone could make modifications to manifest.xml in encrypted documents. &lt;br /&gt;
&lt;br /&gt;
It needs to be discussed if there needs to be some protection against this. &lt;br /&gt;
&lt;br /&gt;
For example, we could generate some signature/hash for encrypted version of manifest.xml ( with the common document encryption key ), and store it in a separate stream in the META-INF folder.&lt;br /&gt;
&lt;br /&gt;
This could be some OOo-only solution, and OOo would only warn when the signature is missing in documents written with OOo, or it could become part of some future version of the ODF specification. &lt;br /&gt;
&lt;br /&gt;
This topic needs further discussions...&lt;br /&gt;
&lt;br /&gt;
== Public Key Document Encryption  ==&lt;br /&gt;
&lt;br /&gt;
It would be a nice feature to allow public key encryption for encrypting documents. People could encrypt the documents with their own and/or with other people&amp;#039;s public key certificates, so only the owners of the corresponding private keys would be able to open the document. No need to exchange or remember passwords. &lt;br /&gt;
&lt;br /&gt;
== Digital Rights Management  ==&lt;br /&gt;
&lt;br /&gt;
OpenOffice.org could support DRM. The part &amp;quot;user can/can&amp;#039;t open a document&amp;quot; makes sense, can be implemented reliable. Enhanced rights/restrictions like &amp;quot;can copy/print/...&amp;quot; can&amp;#039;t be guaranteed, because they could be removed easily in an open source application. &lt;br /&gt;
&lt;br /&gt;
See also [http://www.slideshare.net/Malte.Timmermann/openofficeorgstaroffice-drm-omc-workshop-2006-presentation my slides] from Sun&amp;#039;s [http://www.openmediacommons.org/ Open Media Commons] workshop. &lt;br /&gt;
&lt;br /&gt;
== Password length and password pattern  ==&lt;br /&gt;
&lt;br /&gt;
The ancient minimal password length in the password dialog should be removed, but don&amp;#039;t allow empty passwords. (issue #i103783) &lt;br /&gt;
&lt;br /&gt;
In future it&amp;#039;s better to add some good explanations about strong passwords to password dialogs and online help.&lt;br /&gt;
&lt;br /&gt;
What about adding some configuration items, so companies can configure OOo to adhere to their password rules? &lt;br /&gt;
&lt;br /&gt;
Ooo-password-properties: MinPasswordLength (default=1 if not set), MinNumbercharacters, MinSpecialCharacters, ForbiddenCharacters. &lt;br /&gt;
&lt;br /&gt;
We would then also need some dialog which explains the password rule to the user.&lt;br /&gt;
&lt;br /&gt;
== Thumbnails in encrypted documents  ==&lt;br /&gt;
&lt;br /&gt;
ODF documents can contain a thumbnail, to display a small picture of the first page in a file explorer. &lt;br /&gt;
&lt;br /&gt;
Currently, encrypted documents contain encrypted thumbnails, which is not good for anything.&lt;br /&gt;
&lt;br /&gt;
Encrypted documents shouldn&amp;#039;t store thumbnails. (issue #i103930)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason for this is that encrypted documents mustn&amp;#039;t contain any non encrypted streams (with some exceptions). And since the encrypted document contains a standard bitmap as a thumbnail it makes no sense to store it in the document anyway. The bitmap should be part of the system integration. &lt;br /&gt;
&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Security/Document_Integrity&amp;diff=137948</id>
		<title>Security/Document Integrity</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Security/Document_Integrity&amp;diff=137948"/>
		<updated>2009-08-21T08:35:45Z</updated>

		<summary type="html">&lt;p&gt;Mav: /* Make sure OOo 3.2 would adhere to the ODF conformance clause */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The best way to ensure document integrity is to digitally sign the documents. &lt;br /&gt;
&lt;br /&gt;
But most people won&amp;#039;t do it, or even don&amp;#039;t have the infrastructure for this, so there should be some light weight mechanism for checking the document integrity &lt;br /&gt;
&lt;br /&gt;
== ODF conformance clause  ==&lt;br /&gt;
&lt;br /&gt;
The ODF specification should have some conformance clause, that all files, except package meta data in META-INF folder (signature streams for example) and the mimetype stream, must be registered in manifest.xml. &lt;br /&gt;
&lt;br /&gt;
With the current ODF&amp;amp;nbsp;specification, the META-INF&amp;amp;nbsp;folder should only contain manifest.xml, and might contain some signature streams (*signatures.xml).&lt;br /&gt;
&lt;br /&gt;
When this is defined, an ODF application should not load any files which are not registered in manifest, or show a warning to the user.&lt;br /&gt;
&lt;br /&gt;
== Make sure OOo 3.2 would adhere to the ODF conformance clause ==&lt;br /&gt;
&lt;br /&gt;
Independently from whether or not the conformance clause above will make it into the ODF specification, OpenOffice.org should create documents adhering to the definition above. That should be already the case in OOo3.1 except the signature stream that is still registered in manifest.xml. That will be changed for OOo3.2 ( issue #i103989 )&lt;br /&gt;
&lt;br /&gt;
== Check ODF integrity in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
Assuming that the conformance clause above will be added to the ODF specification, OOo should warn when loading documents containing streams not registered in manifest.xml.(issue #i104389)&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The check/warning is not necessary when the document has a broken signature.&lt;br /&gt;
&lt;br /&gt;
This shouldn&amp;#039;t be a problem for older documents (written with OOo), because OOo is already registering all files in manifest.xml &lt;br /&gt;
&lt;br /&gt;
Maybe the check should only be done for ODF&amp;amp;nbsp;1.2 (and newer)&amp;amp;nbsp;documents, to avoid interop problems with documents written by other applications.&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Security/Document_Integrity&amp;diff=137946</id>
		<title>Security/Document Integrity</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Security/Document_Integrity&amp;diff=137946"/>
		<updated>2009-08-21T08:30:11Z</updated>

		<summary type="html">&lt;p&gt;Mav: /* Check ODF integrity in OOo 3.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The best way to ensure document integrity is to digitally sign the documents. &lt;br /&gt;
&lt;br /&gt;
But most people won&amp;#039;t do it, or even don&amp;#039;t have the infrastructure for this, so there should be some light weight mechanism for checking the document integrity &lt;br /&gt;
&lt;br /&gt;
== ODF conformance clause  ==&lt;br /&gt;
&lt;br /&gt;
The ODF specification should have some conformance clause, that all files, except package meta data in META-INF folder (signature streams for example) and the mimetype stream, must be registered in manifest.xml. &lt;br /&gt;
&lt;br /&gt;
With the current ODF&amp;amp;nbsp;specification, the META-INF&amp;amp;nbsp;folder should only contain manifest.xml, and might contain some signature streams (*signatures.xml).&lt;br /&gt;
&lt;br /&gt;
When this is defined, an ODF application should not load any files which are not registered in manifest, or show a warning to the user.&lt;br /&gt;
&lt;br /&gt;
== Make sure OOo 3.2 would adhere to the ODF conformance clause ==&lt;br /&gt;
&lt;br /&gt;
Independently from whether or not the conformance clause above will make it into the ODF specification, OpenOffice.org should create documents adhering to the definition above. (isse #XXXXX)&lt;br /&gt;
&lt;br /&gt;
== Check ODF integrity in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
Assuming that the conformance clause above will be added to the ODF specification, OOo should warn when loading documents containing streams not registered in manifest.xml.(issue #i104389)&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The check/warning is not necessary when the document has a broken signature.&lt;br /&gt;
&lt;br /&gt;
This shouldn&amp;#039;t be a problem for older documents (written with OOo), because OOo is already registering all files in manifest.xml &lt;br /&gt;
&lt;br /&gt;
Maybe the check should only be done for ODF&amp;amp;nbsp;1.2 (and newer)&amp;amp;nbsp;documents, to avoid interop problems with documents written by other applications.&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Security/Encryption&amp;diff=137754</id>
		<title>Security/Encryption</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Security/Encryption&amp;diff=137754"/>
		<updated>2009-08-19T11:38:44Z</updated>

		<summary type="html">&lt;p&gt;Mav: /* Improving the Encryption Implementation in OOo 3.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Encrypted documents shouldn&amp;#039;t have any non encrypted content  ==&lt;br /&gt;
&lt;br /&gt;
Currently it is possible to add any non encrypted content into encrypted documents, simply by putting new streams into the zip archive. &lt;br /&gt;
&lt;br /&gt;
This way, someone could for example add macro code into documents without the need to know the password. &lt;br /&gt;
&lt;br /&gt;
The possibility to add content to an encrypted document is quite bad, and it becomes worse with macros, because passwords increase the level of trust the user has to a document, when it was encrypted by a person he knows. &lt;br /&gt;
&lt;br /&gt;
OOo will detect the macros, and ask the user whether or not to execute them. The user might trust the author of the document, and because of the encryption normally nobody should have been able to manipulate it, so he will probably allow OOo to execute the macros. At least, it&amp;#039;s not possible to bind the macros to some event, so it would get executed automatically. &lt;br /&gt;
&lt;br /&gt;
In general, an encrypted document shouldn&amp;#039;t have any non encrypted content. Exceptions are some files in the META-INF folder: manifest.xml, which is needed to get the encryption information, and the digital signature files also might not be encrypted, depending on the signature implementation. &lt;br /&gt;
&lt;br /&gt;
OOo should show a warning when an encrypted document contains streams which should be encrypted, but aren&amp;#039;t. Additionally, macros should be disabled for the document. (issue #i103927)&lt;br /&gt;
&lt;br /&gt;
== Improving the Encryption Implementation in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
For OOo 3.2, we plan to improve the document encryption, or better, the handling of documents which have issues like mentioned above (issue #i103927). &lt;br /&gt;
&lt;br /&gt;
When OOo opens an encrypted document, it will check via the manifest if all files are encrypted. All encrypted files in a ODF zip archive must use the same encryption key. It is also necessary to check the actual file content, and not the manifest alone. This could be done on access, or in a background process for all files. When detecting not encrypted files, OOo will show a warning to the user, and will not execute any unencrypted macros in encrypted documents.&lt;br /&gt;
&lt;br /&gt;
The encrypted library-streams have to be encrypted using the container document encryption to let the container document comply with the mentioned above rule. ( issue #i104334 )&lt;br /&gt;
&lt;br /&gt;
== Enhancing the Encryption Specification for ODF 1.2  ==&lt;br /&gt;
&lt;br /&gt;
Currently the ODF specification specifies one way for encrypting ODF documents, and ODF applications can&amp;#039;t chose different algorithms. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Choosing other encryption algorithms can be important, to comply with encryption rules from a company or Government using ODF. &lt;br /&gt;
&lt;br /&gt;
The information about the used algorithms (for each step)&amp;amp;nbsp;need to be documented in the manifest.xml.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This is the latest draft of the proposal that we will send to the OASIS OpenDocument TC:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;blockquote&amp;gt;2.3 Encryption: &amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;The encryption process takes place in the following multiple stages:&amp;lt;br&amp;gt; &lt;br /&gt;
#The start key is generated and is provided to the package component. &lt;br /&gt;
#The derived key is generated by the component based on the start key. &lt;br /&gt;
#The files are encrypted based on the derived key and the encryption algorithm.&lt;br /&gt;
The implementation must support at least the described below default way for the mentioned steps. In addition it might support encryption, where algorithms different from the default are used for the steps. The information regarding used for each step algorithms has to be provided in the manifest.xml accordingly. &amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;The default way is:&amp;lt;br&amp;gt; &lt;br /&gt;
#The start key is generated. The byte sequence representing the password in UTF-8 is used to generate a 20-byte SHA1 digest (see [RFC3174]). The result star key is passed to the package component. &lt;br /&gt;
#The derived key is generated by the package component from the start key. The PBKDF2 algorithm based on HMAC-SHA-1 function (see [RFC2898]) is used for the key derivation. The random number generator initialized with the current time is used to generate 16-byte salt for each file. The salt is used together with the start key to derive a unique 128-bit key for each file. The default iteration count for the algorithm is 1024. &lt;br /&gt;
#The files are encrypted. The random number generator is used to generate the 8-byte initialization vector for the algorithm. The derived key is used together with the initialization vector to encrypt the file using the Blowfish algorithm in cipher feedback (CFB) mode (see [blowfish]).&lt;br /&gt;
Each file that is encrypted is compressed before being encrypted. To allow the contents of the package file to be verified, it is necessary that encrypted files are flagged as &amp;#039;STORED&amp;#039; rather than &amp;#039;DEFLATED&amp;#039;. As entries which are &amp;#039;STORED&amp;#039; must have their size equal to the compressed size, it is necessary to store the uncompressed size in the manifest. The compressed size is stored in both the local file header and central directory record of the Zip file.&amp;lt;br&amp;gt;In an encrypted document all the document files should be encrypted. Non-document files, that are allowed to stay nonencrypted are the files that are recognized as a part of the package format: “mimetype”, “META-INF/manifest.xml” and the signature streams in “META-INF”.&amp;lt;br&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comply to the updated ODF 1.2 Encryption Specification in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
OOo 3.2 needs to comply with the updated encryption specification above. This mainly means that all algorithms used in the different steps needs to be documented in the manifest.xml. It does not mean that OOo would implement other algorithms now. (issue #XXXXX)&lt;br /&gt;
&lt;br /&gt;
== Missing Encryption of manifest.xml  ==&lt;br /&gt;
&lt;br /&gt;
To some people it looks surprising that the manifest.xml is not encrypted. &lt;br /&gt;
&lt;br /&gt;
Actually, the manifest.xml contains the information that any ODF application needs to open the document, including the encryption and hash algorithms which have been used to encrypt the document...&lt;br /&gt;
&lt;br /&gt;
== Protecting the not encrypted manifest.xml in an encrypted document  ==&lt;br /&gt;
&lt;br /&gt;
Since the manifest.xml can&amp;#039;t be encrypted, someone could make modifications to manifest.xml in encrypted documents. &lt;br /&gt;
&lt;br /&gt;
It needs to be discussed if there needs to be some protection against this. &lt;br /&gt;
&lt;br /&gt;
For example, we could generate some signature/hash for encrypted version of manifest.xml ( with the common document encryption key ), and store it in a separate stream in the META-INF folder.&lt;br /&gt;
&lt;br /&gt;
This could be some OOo-only solution, and OOo would only warn when the signature is missing in documents written with OOo, or it could become part of some future version of the ODF specification. &lt;br /&gt;
&lt;br /&gt;
This topic needs further discussions...&lt;br /&gt;
&lt;br /&gt;
== Public Key Document Encryption  ==&lt;br /&gt;
&lt;br /&gt;
It would be a nice feature to allow public key encryption for encrypting documents. People could encrypt the documents with their own and/or with other people&amp;#039;s public key certificates, so only the owners of the corresponding private keys would be able to open the document. No need to exchange or remember passwords. &lt;br /&gt;
&lt;br /&gt;
== Digital Rights Management  ==&lt;br /&gt;
&lt;br /&gt;
OpenOffice.org could support DRM. The part &amp;quot;user can/can&amp;#039;t open a document&amp;quot; makes sense, can be implemented reliable. Enhanced rights/restrictions like &amp;quot;can copy/print/...&amp;quot; can&amp;#039;t be guaranteed, because they could be removed easily in an open source application. &lt;br /&gt;
&lt;br /&gt;
See also [http://www.slideshare.net/Malte.Timmermann/openofficeorgstaroffice-drm-omc-workshop-2006-presentation my slides] from Sun&amp;#039;s [http://www.openmediacommons.org/ Open Media Commons] workshop. &lt;br /&gt;
&lt;br /&gt;
== Password length and password pattern  ==&lt;br /&gt;
&lt;br /&gt;
The ancient minimal password length in the password dialog should be removed, but don&amp;#039;t allow empty passwords. (issue #i103783) &lt;br /&gt;
&lt;br /&gt;
In future it&amp;#039;s better to add some good explanations about strong passwords to password dialogs and online help.&lt;br /&gt;
&lt;br /&gt;
What about adding some configuration items, so companies can configure OOo to adhere to their password rules? &lt;br /&gt;
&lt;br /&gt;
Ooo-password-properties: MinPasswordLength (default=1 if not set), MinNumbercharacters, MinSpecialCharacters, ForbiddenCharacters. &lt;br /&gt;
&lt;br /&gt;
We would then also need some dialog which explains the password rule to the user.&lt;br /&gt;
&lt;br /&gt;
== Thumbnails in encrypted documents  ==&lt;br /&gt;
&lt;br /&gt;
ODF documents can contain a thumbnail, to display a small picture of the first page in a file explorer. &lt;br /&gt;
&lt;br /&gt;
Currently, encrypted documents contain encrypted thumbnails, which is not good for anything.&lt;br /&gt;
&lt;br /&gt;
Encrypted documents shouldn&amp;#039;t store thumbnails. (issue #i103930)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason for this is that encrypted documents mustn&amp;#039;t contain any non encrypted streams (with some exceptions). And since the encrypted document contains a standard bitmap as a thumbnail it makes no sense to store it in the document anyway. The bitmap should be part of the system integration. &lt;br /&gt;
&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Security/Encryption&amp;diff=137753</id>
		<title>Security/Encryption</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Security/Encryption&amp;diff=137753"/>
		<updated>2009-08-19T11:19:59Z</updated>

		<summary type="html">&lt;p&gt;Mav: /* Encrypted documents shouldn&amp;#039;t have any non encrypted content */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Encrypted documents shouldn&amp;#039;t have any non encrypted content  ==&lt;br /&gt;
&lt;br /&gt;
Currently it is possible to add any non encrypted content into encrypted documents, simply by putting new streams into the zip archive. &lt;br /&gt;
&lt;br /&gt;
This way, someone could for example add macro code into documents without the need to know the password. &lt;br /&gt;
&lt;br /&gt;
The possibility to add content to an encrypted document is quite bad, and it becomes worse with macros, because passwords increase the level of trust the user has to a document, when it was encrypted by a person he knows. &lt;br /&gt;
&lt;br /&gt;
OOo will detect the macros, and ask the user whether or not to execute them. The user might trust the author of the document, and because of the encryption normally nobody should have been able to manipulate it, so he will probably allow OOo to execute the macros. At least, it&amp;#039;s not possible to bind the macros to some event, so it would get executed automatically. &lt;br /&gt;
&lt;br /&gt;
In general, an encrypted document shouldn&amp;#039;t have any non encrypted content. Exceptions are some files in the META-INF folder: manifest.xml, which is needed to get the encryption information, and the digital signature files also might not be encrypted, depending on the signature implementation. &lt;br /&gt;
&lt;br /&gt;
OOo should show a warning when an encrypted document contains streams which should be encrypted, but aren&amp;#039;t. Additionally, macros should be disabled for the document. (issue #i103927)&lt;br /&gt;
&lt;br /&gt;
== Improving the Encryption Implementation in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
For OOo 3.2, we plan to improve the document encryption, or better, the handling of documents which have issues like mentioned above (issue #i103927). &lt;br /&gt;
&lt;br /&gt;
When OOo opens an encrypted document, it will check via the manifest if all files are encrypted. All encrypted files in a ODF zip archive must use the same encryption key. It is also necessary to check the actual file content, and not the manifest alone. This could be done on access, or in a background process for all files. When detecting not encrypted files, OOo will show a warning to the user, and will not execute any unencrypted macros in encrypted documents.&lt;br /&gt;
&lt;br /&gt;
== Enhancing the Encryption Specification for ODF 1.2  ==&lt;br /&gt;
&lt;br /&gt;
Currently the ODF specification specifies one way for encrypting ODF documents, and ODF applications can&amp;#039;t chose different algorithms. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Choosing other encryption algorithms can be important, to comply with encryption rules from a company or Government using ODF. &lt;br /&gt;
&lt;br /&gt;
The information about the used algorithms (for each step)&amp;amp;nbsp;need to be documented in the manifest.xml.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This is the latest draft of the proposal that we will send to the OASIS OpenDocument TC:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;blockquote&amp;gt;2.3 Encryption: &amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;The encryption process takes place in the following multiple stages:&amp;lt;br&amp;gt; &lt;br /&gt;
#The start key is generated and is provided to the package component. &lt;br /&gt;
#The derived key is generated by the component based on the start key. &lt;br /&gt;
#The files are encrypted based on the derived key and the encryption algorithm.&lt;br /&gt;
The implementation must support at least the described below default way for the mentioned steps. In addition it might support encryption, where algorithms different from the default are used for the steps. The information regarding used for each step algorithms has to be provided in the manifest.xml accordingly. &amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;The default way is:&amp;lt;br&amp;gt; &lt;br /&gt;
#The start key is generated. The byte sequence representing the password in UTF-8 is used to generate a 20-byte SHA1 digest (see [RFC3174]). The result star key is passed to the package component. &lt;br /&gt;
#The derived key is generated by the package component from the start key. The PBKDF2 algorithm based on HMAC-SHA-1 function (see [RFC2898]) is used for the key derivation. The random number generator initialized with the current time is used to generate 16-byte salt for each file. The salt is used together with the start key to derive a unique 128-bit key for each file. The default iteration count for the algorithm is 1024. &lt;br /&gt;
#The files are encrypted. The random number generator is used to generate the 8-byte initialization vector for the algorithm. The derived key is used together with the initialization vector to encrypt the file using the Blowfish algorithm in cipher feedback (CFB) mode (see [blowfish]).&lt;br /&gt;
Each file that is encrypted is compressed before being encrypted. To allow the contents of the package file to be verified, it is necessary that encrypted files are flagged as &amp;#039;STORED&amp;#039; rather than &amp;#039;DEFLATED&amp;#039;. As entries which are &amp;#039;STORED&amp;#039; must have their size equal to the compressed size, it is necessary to store the uncompressed size in the manifest. The compressed size is stored in both the local file header and central directory record of the Zip file.&amp;lt;br&amp;gt;In an encrypted document all the document files should be encrypted. Non-document files, that are allowed to stay nonencrypted are the files that are recognized as a part of the package format: “mimetype”, “META-INF/manifest.xml” and the signature streams in “META-INF”.&amp;lt;br&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comply to the updated ODF 1.2 Encryption Specification in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
OOo 3.2 needs to comply with the updated encryption specification above. This mainly means that all algorithms used in the different steps needs to be documented in the manifest.xml. It does not mean that OOo would implement other algorithms now. (issue #XXXXX)&lt;br /&gt;
&lt;br /&gt;
== Missing Encryption of manifest.xml  ==&lt;br /&gt;
&lt;br /&gt;
To some people it looks surprising that the manifest.xml is not encrypted. &lt;br /&gt;
&lt;br /&gt;
Actually, the manifest.xml contains the information that any ODF application needs to open the document, including the encryption and hash algorithms which have been used to encrypt the document...&lt;br /&gt;
&lt;br /&gt;
== Protecting the not encrypted manifest.xml in an encrypted document  ==&lt;br /&gt;
&lt;br /&gt;
Since the manifest.xml can&amp;#039;t be encrypted, someone could make modifications to manifest.xml in encrypted documents. &lt;br /&gt;
&lt;br /&gt;
It needs to be discussed if there needs to be some protection against this. &lt;br /&gt;
&lt;br /&gt;
For example, we could generate some signature/hash for encrypted version of manifest.xml ( with the common document encryption key ), and store it in a separate stream in the META-INF folder.&lt;br /&gt;
&lt;br /&gt;
This could be some OOo-only solution, and OOo would only warn when the signature is missing in documents written with OOo, or it could become part of some future version of the ODF specification. &lt;br /&gt;
&lt;br /&gt;
This topic needs further discussions...&lt;br /&gt;
&lt;br /&gt;
== Public Key Document Encryption  ==&lt;br /&gt;
&lt;br /&gt;
It would be a nice feature to allow public key encryption for encrypting documents. People could encrypt the documents with their own and/or with other people&amp;#039;s public key certificates, so only the owners of the corresponding private keys would be able to open the document. No need to exchange or remember passwords. &lt;br /&gt;
&lt;br /&gt;
== Digital Rights Management  ==&lt;br /&gt;
&lt;br /&gt;
OpenOffice.org could support DRM. The part &amp;quot;user can/can&amp;#039;t open a document&amp;quot; makes sense, can be implemented reliable. Enhanced rights/restrictions like &amp;quot;can copy/print/...&amp;quot; can&amp;#039;t be guaranteed, because they could be removed easily in an open source application. &lt;br /&gt;
&lt;br /&gt;
See also [http://www.slideshare.net/Malte.Timmermann/openofficeorgstaroffice-drm-omc-workshop-2006-presentation my slides] from Sun&amp;#039;s [http://www.openmediacommons.org/ Open Media Commons] workshop. &lt;br /&gt;
&lt;br /&gt;
== Password length and password pattern  ==&lt;br /&gt;
&lt;br /&gt;
The ancient minimal password length in the password dialog should be removed, but don&amp;#039;t allow empty passwords. (issue #i103783) &lt;br /&gt;
&lt;br /&gt;
In future it&amp;#039;s better to add some good explanations about strong passwords to password dialogs and online help.&lt;br /&gt;
&lt;br /&gt;
What about adding some configuration items, so companies can configure OOo to adhere to their password rules? &lt;br /&gt;
&lt;br /&gt;
Ooo-password-properties: MinPasswordLength (default=1 if not set), MinNumbercharacters, MinSpecialCharacters, ForbiddenCharacters. &lt;br /&gt;
&lt;br /&gt;
We would then also need some dialog which explains the password rule to the user.&lt;br /&gt;
&lt;br /&gt;
== Thumbnails in encrypted documents  ==&lt;br /&gt;
&lt;br /&gt;
ODF documents can contain a thumbnail, to display a small picture of the first page in a file explorer. &lt;br /&gt;
&lt;br /&gt;
Currently, encrypted documents contain encrypted thumbnails, which is not good for anything.&lt;br /&gt;
&lt;br /&gt;
Encrypted documents shouldn&amp;#039;t store thumbnails. (issue #i103930)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason for this is that encrypted documents mustn&amp;#039;t contain any non encrypted streams (with some exceptions). And since the encrypted document contains a standard bitmap as a thumbnail it makes no sense to store it in the document anyway. The bitmap should be part of the system integration. &lt;br /&gt;
&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Security/Encryption&amp;diff=137752</id>
		<title>Security/Encryption</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Security/Encryption&amp;diff=137752"/>
		<updated>2009-08-19T11:19:41Z</updated>

		<summary type="html">&lt;p&gt;Mav: /* Improving the Encryption Implementation in OOo 3.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Encrypted documents shouldn&amp;#039;t have any non encrypted content  ==&lt;br /&gt;
&lt;br /&gt;
Currently it is possible to add any non encrypted content into encrypted documents, simply by putting new streams into the zip archive. &lt;br /&gt;
&lt;br /&gt;
This way, someone could for example add macro code into documents without the need to know the password. &lt;br /&gt;
&lt;br /&gt;
The possibility to add content to an encrypted document is quite bad, and it becomes worse with macros, because passwords increase the level of trust the user has to a document, when it was encrypted by a person he knows. &lt;br /&gt;
&lt;br /&gt;
OOo will detect the macros, and ask the user whether or not to execute them. The user might trust the author of the document, and because of the encryption normally nobody should have been able to manipulate it, so he will probably allow OOo to execute the macros. At least, it&amp;#039;s not possible to bind the macros to some event, so it would get executed automatically. &lt;br /&gt;
&lt;br /&gt;
In general, an encrypted document shouldn&amp;#039;t have any non encrypted content. Exceptions are some files in the META-INF folder: manifest.xml, which is needed to get the encryption information, and the digital signature files also might not be encrypted, depending on the signature implementation. &lt;br /&gt;
&lt;br /&gt;
OOo should show a warning when an encrypted document contains streams which should be encrypted, but aren&amp;#039;t. Additionally, macros should be disabled for the document. (issue #XXXXX)&lt;br /&gt;
&lt;br /&gt;
== Improving the Encryption Implementation in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
For OOo 3.2, we plan to improve the document encryption, or better, the handling of documents which have issues like mentioned above (issue #i103927). &lt;br /&gt;
&lt;br /&gt;
When OOo opens an encrypted document, it will check via the manifest if all files are encrypted. All encrypted files in a ODF zip archive must use the same encryption key. It is also necessary to check the actual file content, and not the manifest alone. This could be done on access, or in a background process for all files. When detecting not encrypted files, OOo will show a warning to the user, and will not execute any unencrypted macros in encrypted documents.&lt;br /&gt;
&lt;br /&gt;
== Enhancing the Encryption Specification for ODF 1.2  ==&lt;br /&gt;
&lt;br /&gt;
Currently the ODF specification specifies one way for encrypting ODF documents, and ODF applications can&amp;#039;t chose different algorithms. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Choosing other encryption algorithms can be important, to comply with encryption rules from a company or Government using ODF. &lt;br /&gt;
&lt;br /&gt;
The information about the used algorithms (for each step)&amp;amp;nbsp;need to be documented in the manifest.xml.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This is the latest draft of the proposal that we will send to the OASIS OpenDocument TC:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;blockquote&amp;gt;2.3 Encryption: &amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;The encryption process takes place in the following multiple stages:&amp;lt;br&amp;gt; &lt;br /&gt;
#The start key is generated and is provided to the package component. &lt;br /&gt;
#The derived key is generated by the component based on the start key. &lt;br /&gt;
#The files are encrypted based on the derived key and the encryption algorithm.&lt;br /&gt;
The implementation must support at least the described below default way for the mentioned steps. In addition it might support encryption, where algorithms different from the default are used for the steps. The information regarding used for each step algorithms has to be provided in the manifest.xml accordingly. &amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;The default way is:&amp;lt;br&amp;gt; &lt;br /&gt;
#The start key is generated. The byte sequence representing the password in UTF-8 is used to generate a 20-byte SHA1 digest (see [RFC3174]). The result star key is passed to the package component. &lt;br /&gt;
#The derived key is generated by the package component from the start key. The PBKDF2 algorithm based on HMAC-SHA-1 function (see [RFC2898]) is used for the key derivation. The random number generator initialized with the current time is used to generate 16-byte salt for each file. The salt is used together with the start key to derive a unique 128-bit key for each file. The default iteration count for the algorithm is 1024. &lt;br /&gt;
#The files are encrypted. The random number generator is used to generate the 8-byte initialization vector for the algorithm. The derived key is used together with the initialization vector to encrypt the file using the Blowfish algorithm in cipher feedback (CFB) mode (see [blowfish]).&lt;br /&gt;
Each file that is encrypted is compressed before being encrypted. To allow the contents of the package file to be verified, it is necessary that encrypted files are flagged as &amp;#039;STORED&amp;#039; rather than &amp;#039;DEFLATED&amp;#039;. As entries which are &amp;#039;STORED&amp;#039; must have their size equal to the compressed size, it is necessary to store the uncompressed size in the manifest. The compressed size is stored in both the local file header and central directory record of the Zip file.&amp;lt;br&amp;gt;In an encrypted document all the document files should be encrypted. Non-document files, that are allowed to stay nonencrypted are the files that are recognized as a part of the package format: “mimetype”, “META-INF/manifest.xml” and the signature streams in “META-INF”.&amp;lt;br&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comply to the updated ODF 1.2 Encryption Specification in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
OOo 3.2 needs to comply with the updated encryption specification above. This mainly means that all algorithms used in the different steps needs to be documented in the manifest.xml. It does not mean that OOo would implement other algorithms now. (issue #XXXXX)&lt;br /&gt;
&lt;br /&gt;
== Missing Encryption of manifest.xml  ==&lt;br /&gt;
&lt;br /&gt;
To some people it looks surprising that the manifest.xml is not encrypted. &lt;br /&gt;
&lt;br /&gt;
Actually, the manifest.xml contains the information that any ODF application needs to open the document, including the encryption and hash algorithms which have been used to encrypt the document...&lt;br /&gt;
&lt;br /&gt;
== Protecting the not encrypted manifest.xml in an encrypted document  ==&lt;br /&gt;
&lt;br /&gt;
Since the manifest.xml can&amp;#039;t be encrypted, someone could make modifications to manifest.xml in encrypted documents. &lt;br /&gt;
&lt;br /&gt;
It needs to be discussed if there needs to be some protection against this. &lt;br /&gt;
&lt;br /&gt;
For example, we could generate some signature/hash for encrypted version of manifest.xml ( with the common document encryption key ), and store it in a separate stream in the META-INF folder.&lt;br /&gt;
&lt;br /&gt;
This could be some OOo-only solution, and OOo would only warn when the signature is missing in documents written with OOo, or it could become part of some future version of the ODF specification. &lt;br /&gt;
&lt;br /&gt;
This topic needs further discussions...&lt;br /&gt;
&lt;br /&gt;
== Public Key Document Encryption  ==&lt;br /&gt;
&lt;br /&gt;
It would be a nice feature to allow public key encryption for encrypting documents. People could encrypt the documents with their own and/or with other people&amp;#039;s public key certificates, so only the owners of the corresponding private keys would be able to open the document. No need to exchange or remember passwords. &lt;br /&gt;
&lt;br /&gt;
== Digital Rights Management  ==&lt;br /&gt;
&lt;br /&gt;
OpenOffice.org could support DRM. The part &amp;quot;user can/can&amp;#039;t open a document&amp;quot; makes sense, can be implemented reliable. Enhanced rights/restrictions like &amp;quot;can copy/print/...&amp;quot; can&amp;#039;t be guaranteed, because they could be removed easily in an open source application. &lt;br /&gt;
&lt;br /&gt;
See also [http://www.slideshare.net/Malte.Timmermann/openofficeorgstaroffice-drm-omc-workshop-2006-presentation my slides] from Sun&amp;#039;s [http://www.openmediacommons.org/ Open Media Commons] workshop. &lt;br /&gt;
&lt;br /&gt;
== Password length and password pattern  ==&lt;br /&gt;
&lt;br /&gt;
The ancient minimal password length in the password dialog should be removed, but don&amp;#039;t allow empty passwords. (issue #i103783) &lt;br /&gt;
&lt;br /&gt;
In future it&amp;#039;s better to add some good explanations about strong passwords to password dialogs and online help.&lt;br /&gt;
&lt;br /&gt;
What about adding some configuration items, so companies can configure OOo to adhere to their password rules? &lt;br /&gt;
&lt;br /&gt;
Ooo-password-properties: MinPasswordLength (default=1 if not set), MinNumbercharacters, MinSpecialCharacters, ForbiddenCharacters. &lt;br /&gt;
&lt;br /&gt;
We would then also need some dialog which explains the password rule to the user.&lt;br /&gt;
&lt;br /&gt;
== Thumbnails in encrypted documents  ==&lt;br /&gt;
&lt;br /&gt;
ODF documents can contain a thumbnail, to display a small picture of the first page in a file explorer. &lt;br /&gt;
&lt;br /&gt;
Currently, encrypted documents contain encrypted thumbnails, which is not good for anything.&lt;br /&gt;
&lt;br /&gt;
Encrypted documents shouldn&amp;#039;t store thumbnails. (issue #i103930)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason for this is that encrypted documents mustn&amp;#039;t contain any non encrypted streams (with some exceptions). And since the encrypted document contains a standard bitmap as a thumbnail it makes no sense to store it in the document anyway. The bitmap should be part of the system integration. &lt;br /&gt;
&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Security/Encryption&amp;diff=137751</id>
		<title>Security/Encryption</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Security/Encryption&amp;diff=137751"/>
		<updated>2009-08-19T11:10:40Z</updated>

		<summary type="html">&lt;p&gt;Mav: /* Protecting the not encrypted manifest.xml in an encrypted document */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Encrypted documents shouldn&amp;#039;t have any non encrypted content  ==&lt;br /&gt;
&lt;br /&gt;
Currently it is possible to add any non encrypted content into encrypted documents, simply by putting new streams into the zip archive. &lt;br /&gt;
&lt;br /&gt;
This way, someone could for example add macro code into documents without the need to know the password. &lt;br /&gt;
&lt;br /&gt;
The possibility to add content to an encrypted document is quite bad, and it becomes worse with macros, because passwords increase the level of trust the user has to a document, when it was encrypted by a person he knows. &lt;br /&gt;
&lt;br /&gt;
OOo will detect the macros, and ask the user whether or not to execute them. The user might trust the author of the document, and because of the encryption normally nobody should have been able to manipulate it, so he will probably allow OOo to execute the macros. At least, it&amp;#039;s not possible to bind the macros to some event, so it would get executed automatically. &lt;br /&gt;
&lt;br /&gt;
In general, an encrypted document shouldn&amp;#039;t have any non encrypted content. Exceptions are some files in the META-INF folder: manifest.xml, which is needed to get the encryption information, and the digital signature files also might not be encrypted, depending on the signature implementation. &lt;br /&gt;
&lt;br /&gt;
OOo should show a warning when an encrypted document contains streams which should be encrypted, but aren&amp;#039;t. Additionally, macros should be disabled for the document. (issue #XXXXX)&lt;br /&gt;
&lt;br /&gt;
== Improving the Encryption Implementation in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
For OOo 3.2, we plan to improve the document encryption, or better, the handling of documents which have issues like mentioned above (issue #XXXXX). &lt;br /&gt;
&lt;br /&gt;
When OOo opens an encrypted document, it will check via the manifest if all files are encrypted. All encrypted files in a ODF zip archive must use the same encryption key. It is also necessary to check the actual file content, and not the manifest alone. This could be done on access, or in a background process for all files. When detecting not encrypted files, OOo will show a warning to the user, and will not execute any unencrypted macros in encrypted documents. &lt;br /&gt;
&lt;br /&gt;
== Enhancing the Encryption Specification for ODF 1.2  ==&lt;br /&gt;
&lt;br /&gt;
Currently the ODF specification specifies one way for encrypting ODF documents, and ODF applications can&amp;#039;t chose different algorithms. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Choosing other encryption algorithms can be important, to comply with encryption rules from a company or Government using ODF. &lt;br /&gt;
&lt;br /&gt;
The information about the used algorithms (for each step)&amp;amp;nbsp;need to be documented in the manifest.xml.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This is the latest draft of the proposal that we will send to the OASIS OpenDocument TC:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;blockquote&amp;gt;2.3 Encryption: &amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;The encryption process takes place in the following multiple stages:&amp;lt;br&amp;gt; &lt;br /&gt;
#The start key is generated and is provided to the package component. &lt;br /&gt;
#The derived key is generated by the component based on the start key. &lt;br /&gt;
#The files are encrypted based on the derived key and the encryption algorithm.&lt;br /&gt;
The implementation must support at least the described below default way for the mentioned steps. In addition it might support encryption, where algorithms different from the default are used for the steps. The information regarding used for each step algorithms has to be provided in the manifest.xml accordingly. &amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;The default way is:&amp;lt;br&amp;gt; &lt;br /&gt;
#The start key is generated. The byte sequence representing the password in UTF-8 is used to generate a 20-byte SHA1 digest (see [RFC3174]). The result star key is passed to the package component. &lt;br /&gt;
#The derived key is generated by the package component from the start key. The PBKDF2 algorithm based on HMAC-SHA-1 function (see [RFC2898]) is used for the key derivation. The random number generator initialized with the current time is used to generate 16-byte salt for each file. The salt is used together with the start key to derive a unique 128-bit key for each file. The default iteration count for the algorithm is 1024. &lt;br /&gt;
#The files are encrypted. The random number generator is used to generate the 8-byte initialization vector for the algorithm. The derived key is used together with the initialization vector to encrypt the file using the Blowfish algorithm in cipher feedback (CFB) mode (see [blowfish]).&lt;br /&gt;
Each file that is encrypted is compressed before being encrypted. To allow the contents of the package file to be verified, it is necessary that encrypted files are flagged as &amp;#039;STORED&amp;#039; rather than &amp;#039;DEFLATED&amp;#039;. As entries which are &amp;#039;STORED&amp;#039; must have their size equal to the compressed size, it is necessary to store the uncompressed size in the manifest. The compressed size is stored in both the local file header and central directory record of the Zip file.&amp;lt;br&amp;gt;In an encrypted document all the document files should be encrypted. Non-document files, that are allowed to stay nonencrypted are the files that are recognized as a part of the package format: “mimetype”, “META-INF/manifest.xml” and the signature streams in “META-INF”.&amp;lt;br&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comply to the updated ODF 1.2 Encryption Specification in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
OOo 3.2 needs to comply with the updated encryption specification above. This mainly means that all algorithms used in the different steps needs to be documented in the manifest.xml. It does not mean that OOo would implement other algorithms now. (issue #XXXXX)&lt;br /&gt;
&lt;br /&gt;
== Missing Encryption of manifest.xml  ==&lt;br /&gt;
&lt;br /&gt;
To some people it looks surprising that the manifest.xml is not encrypted. &lt;br /&gt;
&lt;br /&gt;
Actually, the manifest.xml contains the information that any ODF application needs to open the document, including the encryption and hash algorithms which have been used to encrypt the document...&lt;br /&gt;
&lt;br /&gt;
== Protecting the not encrypted manifest.xml in an encrypted document  ==&lt;br /&gt;
&lt;br /&gt;
Since the manifest.xml can&amp;#039;t be encrypted, someone could make modifications to manifest.xml in encrypted documents. &lt;br /&gt;
&lt;br /&gt;
It needs to be discussed if there needs to be some protection against this. &lt;br /&gt;
&lt;br /&gt;
For example, we could generate some signature/hash for encrypted version of manifest.xml ( with the common document encryption key ), and store it in a separate stream in the META-INF folder.&lt;br /&gt;
&lt;br /&gt;
This could be some OOo-only solution, and OOo would only warn when the signature is missing in documents written with OOo, or it could become part of some future version of the ODF specification. &lt;br /&gt;
&lt;br /&gt;
This topic needs further discussions...&lt;br /&gt;
&lt;br /&gt;
== Public Key Document Encryption  ==&lt;br /&gt;
&lt;br /&gt;
It would be a nice feature to allow public key encryption for encrypting documents. People could encrypt the documents with their own and/or with other people&amp;#039;s public key certificates, so only the owners of the corresponding private keys would be able to open the document. No need to exchange or remember passwords. &lt;br /&gt;
&lt;br /&gt;
== Digital Rights Management  ==&lt;br /&gt;
&lt;br /&gt;
OpenOffice.org could support DRM. The part &amp;quot;user can/can&amp;#039;t open a document&amp;quot; makes sense, can be implemented reliable. Enhanced rights/restrictions like &amp;quot;can copy/print/...&amp;quot; can&amp;#039;t be guaranteed, because they could be removed easily in an open source application. &lt;br /&gt;
&lt;br /&gt;
See also [http://www.slideshare.net/Malte.Timmermann/openofficeorgstaroffice-drm-omc-workshop-2006-presentation my slides] from Sun&amp;#039;s [http://www.openmediacommons.org/ Open Media Commons] workshop. &lt;br /&gt;
&lt;br /&gt;
== Password length and password pattern  ==&lt;br /&gt;
&lt;br /&gt;
The ancient minimal password length in the password dialog should be removed, but don&amp;#039;t allow empty passwords. (issue #i103783) &lt;br /&gt;
&lt;br /&gt;
In future it&amp;#039;s better to add some good explanations about strong passwords to password dialogs and online help.&lt;br /&gt;
&lt;br /&gt;
What about adding some configuration items, so companies can configure OOo to adhere to their password rules? &lt;br /&gt;
&lt;br /&gt;
Ooo-password-properties: MinPasswordLength (default=1 if not set), MinNumbercharacters, MinSpecialCharacters, ForbiddenCharacters. &lt;br /&gt;
&lt;br /&gt;
We would then also need some dialog which explains the password rule to the user.&lt;br /&gt;
&lt;br /&gt;
== Thumbnails in encrypted documents  ==&lt;br /&gt;
&lt;br /&gt;
ODF documents can contain a thumbnail, to display a small picture of the first page in a file explorer. &lt;br /&gt;
&lt;br /&gt;
Currently, encrypted documents contain encrypted thumbnails, which is not good for anything.&lt;br /&gt;
&lt;br /&gt;
Encrypted documents shouldn&amp;#039;t store thumbnails. (issue #i103930)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason for this is that encrypted documents mustn&amp;#039;t contain any non encrypted streams (with some exceptions). And since the encrypted document contains a standard bitmap as a thumbnail it makes no sense to store it in the document anyway. The bitmap should be part of the system integration. &lt;br /&gt;
&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Security/Encryption&amp;diff=137750</id>
		<title>Security/Encryption</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Security/Encryption&amp;diff=137750"/>
		<updated>2009-08-19T11:09:48Z</updated>

		<summary type="html">&lt;p&gt;Mav: /* Protecting the not encrypted manifest.xml in an encrypted document */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Encrypted documents shouldn&amp;#039;t have any non encrypted content  ==&lt;br /&gt;
&lt;br /&gt;
Currently it is possible to add any non encrypted content into encrypted documents, simply by putting new streams into the zip archive. &lt;br /&gt;
&lt;br /&gt;
This way, someone could for example add macro code into documents without the need to know the password. &lt;br /&gt;
&lt;br /&gt;
The possibility to add content to an encrypted document is quite bad, and it becomes worse with macros, because passwords increase the level of trust the user has to a document, when it was encrypted by a person he knows. &lt;br /&gt;
&lt;br /&gt;
OOo will detect the macros, and ask the user whether or not to execute them. The user might trust the author of the document, and because of the encryption normally nobody should have been able to manipulate it, so he will probably allow OOo to execute the macros. At least, it&amp;#039;s not possible to bind the macros to some event, so it would get executed automatically. &lt;br /&gt;
&lt;br /&gt;
In general, an encrypted document shouldn&amp;#039;t have any non encrypted content. Exceptions are some files in the META-INF folder: manifest.xml, which is needed to get the encryption information, and the digital signature files also might not be encrypted, depending on the signature implementation. &lt;br /&gt;
&lt;br /&gt;
OOo should show a warning when an encrypted document contains streams which should be encrypted, but aren&amp;#039;t. Additionally, macros should be disabled for the document. (issue #XXXXX)&lt;br /&gt;
&lt;br /&gt;
== Improving the Encryption Implementation in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
For OOo 3.2, we plan to improve the document encryption, or better, the handling of documents which have issues like mentioned above (issue #XXXXX). &lt;br /&gt;
&lt;br /&gt;
When OOo opens an encrypted document, it will check via the manifest if all files are encrypted. All encrypted files in a ODF zip archive must use the same encryption key. It is also necessary to check the actual file content, and not the manifest alone. This could be done on access, or in a background process for all files. When detecting not encrypted files, OOo will show a warning to the user, and will not execute any unencrypted macros in encrypted documents. &lt;br /&gt;
&lt;br /&gt;
== Enhancing the Encryption Specification for ODF 1.2  ==&lt;br /&gt;
&lt;br /&gt;
Currently the ODF specification specifies one way for encrypting ODF documents, and ODF applications can&amp;#039;t chose different algorithms. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Choosing other encryption algorithms can be important, to comply with encryption rules from a company or Government using ODF. &lt;br /&gt;
&lt;br /&gt;
The information about the used algorithms (for each step)&amp;amp;nbsp;need to be documented in the manifest.xml.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This is the latest draft of the proposal that we will send to the OASIS OpenDocument TC:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;blockquote&amp;gt;2.3 Encryption: &amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;The encryption process takes place in the following multiple stages:&amp;lt;br&amp;gt; &lt;br /&gt;
#The start key is generated and is provided to the package component. &lt;br /&gt;
#The derived key is generated by the component based on the start key. &lt;br /&gt;
#The files are encrypted based on the derived key and the encryption algorithm.&lt;br /&gt;
The implementation must support at least the described below default way for the mentioned steps. In addition it might support encryption, where algorithms different from the default are used for the steps. The information regarding used for each step algorithms has to be provided in the manifest.xml accordingly. &amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;The default way is:&amp;lt;br&amp;gt; &lt;br /&gt;
#The start key is generated. The byte sequence representing the password in UTF-8 is used to generate a 20-byte SHA1 digest (see [RFC3174]). The result star key is passed to the package component. &lt;br /&gt;
#The derived key is generated by the package component from the start key. The PBKDF2 algorithm based on HMAC-SHA-1 function (see [RFC2898]) is used for the key derivation. The random number generator initialized with the current time is used to generate 16-byte salt for each file. The salt is used together with the start key to derive a unique 128-bit key for each file. The default iteration count for the algorithm is 1024. &lt;br /&gt;
#The files are encrypted. The random number generator is used to generate the 8-byte initialization vector for the algorithm. The derived key is used together with the initialization vector to encrypt the file using the Blowfish algorithm in cipher feedback (CFB) mode (see [blowfish]).&lt;br /&gt;
Each file that is encrypted is compressed before being encrypted. To allow the contents of the package file to be verified, it is necessary that encrypted files are flagged as &amp;#039;STORED&amp;#039; rather than &amp;#039;DEFLATED&amp;#039;. As entries which are &amp;#039;STORED&amp;#039; must have their size equal to the compressed size, it is necessary to store the uncompressed size in the manifest. The compressed size is stored in both the local file header and central directory record of the Zip file.&amp;lt;br&amp;gt;In an encrypted document all the document files should be encrypted. Non-document files, that are allowed to stay nonencrypted are the files that are recognized as a part of the package format: “mimetype”, “META-INF/manifest.xml” and the signature streams in “META-INF”.&amp;lt;br&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comply to the updated ODF 1.2 Encryption Specification in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
OOo 3.2 needs to comply with the updated encryption specification above. This mainly means that all algorithms used in the different steps needs to be documented in the manifest.xml. It does not mean that OOo would implement other algorithms now. (issue #XXXXX)&lt;br /&gt;
&lt;br /&gt;
== Missing Encryption of manifest.xml  ==&lt;br /&gt;
&lt;br /&gt;
To some people it looks surprising that the manifest.xml is not encrypted. &lt;br /&gt;
&lt;br /&gt;
Actually, the manifest.xml contains the information that any ODF application needs to open the document, including the encryption and hash algorithms which have been used to encrypt the document...&lt;br /&gt;
&lt;br /&gt;
== Protecting the not encrypted manifest.xml in an encrypted document  ==&lt;br /&gt;
&lt;br /&gt;
Since the manifest.xml can&amp;#039;t be encrypted, someone could make modifications to manifest.xml in encrypted documents. &lt;br /&gt;
&lt;br /&gt;
It needs to be discussed if there needs to be some protection against this. &lt;br /&gt;
&lt;br /&gt;
For example, we could generate some signature/hash for encrypted version of manifest.xml, and store it in a separate stream in the META-INF folder.&lt;br /&gt;
&lt;br /&gt;
This could be some OOo-only solution, and OOo would only warn when the signature is missing in documents written with OOo, or it could become part of some future version of the ODF specification. &lt;br /&gt;
&lt;br /&gt;
This topic needs further discussions...&lt;br /&gt;
&lt;br /&gt;
== Public Key Document Encryption  ==&lt;br /&gt;
&lt;br /&gt;
It would be a nice feature to allow public key encryption for encrypting documents. People could encrypt the documents with their own and/or with other people&amp;#039;s public key certificates, so only the owners of the corresponding private keys would be able to open the document. No need to exchange or remember passwords. &lt;br /&gt;
&lt;br /&gt;
== Digital Rights Management  ==&lt;br /&gt;
&lt;br /&gt;
OpenOffice.org could support DRM. The part &amp;quot;user can/can&amp;#039;t open a document&amp;quot; makes sense, can be implemented reliable. Enhanced rights/restrictions like &amp;quot;can copy/print/...&amp;quot; can&amp;#039;t be guaranteed, because they could be removed easily in an open source application. &lt;br /&gt;
&lt;br /&gt;
See also [http://www.slideshare.net/Malte.Timmermann/openofficeorgstaroffice-drm-omc-workshop-2006-presentation my slides] from Sun&amp;#039;s [http://www.openmediacommons.org/ Open Media Commons] workshop. &lt;br /&gt;
&lt;br /&gt;
== Password length and password pattern  ==&lt;br /&gt;
&lt;br /&gt;
The ancient minimal password length in the password dialog should be removed, but don&amp;#039;t allow empty passwords. (issue #i103783) &lt;br /&gt;
&lt;br /&gt;
In future it&amp;#039;s better to add some good explanations about strong passwords to password dialogs and online help.&lt;br /&gt;
&lt;br /&gt;
What about adding some configuration items, so companies can configure OOo to adhere to their password rules? &lt;br /&gt;
&lt;br /&gt;
Ooo-password-properties: MinPasswordLength (default=1 if not set), MinNumbercharacters, MinSpecialCharacters, ForbiddenCharacters. &lt;br /&gt;
&lt;br /&gt;
We would then also need some dialog which explains the password rule to the user.&lt;br /&gt;
&lt;br /&gt;
== Thumbnails in encrypted documents  ==&lt;br /&gt;
&lt;br /&gt;
ODF documents can contain a thumbnail, to display a small picture of the first page in a file explorer. &lt;br /&gt;
&lt;br /&gt;
Currently, encrypted documents contain encrypted thumbnails, which is not good for anything.&lt;br /&gt;
&lt;br /&gt;
Encrypted documents shouldn&amp;#039;t store thumbnails. (issue #i103930)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason for this is that encrypted documents mustn&amp;#039;t contain any non encrypted streams (with some exceptions). And since the encrypted document contains a standard bitmap as a thumbnail it makes no sense to store it in the document anyway. The bitmap should be part of the system integration. &lt;br /&gt;
&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Security/Encryption&amp;diff=137749</id>
		<title>Security/Encryption</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Security/Encryption&amp;diff=137749"/>
		<updated>2009-08-19T11:07:47Z</updated>

		<summary type="html">&lt;p&gt;Mav: /* Password length and password pattern */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Encrypted documents shouldn&amp;#039;t have any non encrypted content  ==&lt;br /&gt;
&lt;br /&gt;
Currently it is possible to add any non encrypted content into encrypted documents, simply by putting new streams into the zip archive. &lt;br /&gt;
&lt;br /&gt;
This way, someone could for example add macro code into documents without the need to know the password. &lt;br /&gt;
&lt;br /&gt;
The possibility to add content to an encrypted document is quite bad, and it becomes worse with macros, because passwords increase the level of trust the user has to a document, when it was encrypted by a person he knows. &lt;br /&gt;
&lt;br /&gt;
OOo will detect the macros, and ask the user whether or not to execute them. The user might trust the author of the document, and because of the encryption normally nobody should have been able to manipulate it, so he will probably allow OOo to execute the macros. At least, it&amp;#039;s not possible to bind the macros to some event, so it would get executed automatically. &lt;br /&gt;
&lt;br /&gt;
In general, an encrypted document shouldn&amp;#039;t have any non encrypted content. Exceptions are some files in the META-INF folder: manifest.xml, which is needed to get the encryption information, and the digital signature files also might not be encrypted, depending on the signature implementation. &lt;br /&gt;
&lt;br /&gt;
OOo should show a warning when an encrypted document contains streams which should be encrypted, but aren&amp;#039;t. Additionally, macros should be disabled for the document. (issue #XXXXX)&lt;br /&gt;
&lt;br /&gt;
== Improving the Encryption Implementation in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
For OOo 3.2, we plan to improve the document encryption, or better, the handling of documents which have issues like mentioned above (issue #XXXXX). &lt;br /&gt;
&lt;br /&gt;
When OOo opens an encrypted document, it will check via the manifest if all files are encrypted. All encrypted files in a ODF zip archive must use the same encryption key. It is also necessary to check the actual file content, and not the manifest alone. This could be done on access, or in a background process for all files. When detecting not encrypted files, OOo will show a warning to the user, and will not execute any unencrypted macros in encrypted documents. &lt;br /&gt;
&lt;br /&gt;
== Enhancing the Encryption Specification for ODF 1.2  ==&lt;br /&gt;
&lt;br /&gt;
Currently the ODF specification specifies one way for encrypting ODF documents, and ODF applications can&amp;#039;t chose different algorithms. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Choosing other encryption algorithms can be important, to comply with encryption rules from a company or Government using ODF. &lt;br /&gt;
&lt;br /&gt;
The information about the used algorithms (for each step)&amp;amp;nbsp;need to be documented in the manifest.xml.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This is the latest draft of the proposal that we will send to the OASIS OpenDocument TC:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;blockquote&amp;gt;2.3 Encryption: &amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;The encryption process takes place in the following multiple stages:&amp;lt;br&amp;gt; &lt;br /&gt;
#The start key is generated and is provided to the package component. &lt;br /&gt;
#The derived key is generated by the component based on the start key. &lt;br /&gt;
#The files are encrypted based on the derived key and the encryption algorithm.&lt;br /&gt;
The implementation must support at least the described below default way for the mentioned steps. In addition it might support encryption, where algorithms different from the default are used for the steps. The information regarding used for each step algorithms has to be provided in the manifest.xml accordingly. &amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;The default way is:&amp;lt;br&amp;gt; &lt;br /&gt;
#The start key is generated. The byte sequence representing the password in UTF-8 is used to generate a 20-byte SHA1 digest (see [RFC3174]). The result star key is passed to the package component. &lt;br /&gt;
#The derived key is generated by the package component from the start key. The PBKDF2 algorithm based on HMAC-SHA-1 function (see [RFC2898]) is used for the key derivation. The random number generator initialized with the current time is used to generate 16-byte salt for each file. The salt is used together with the start key to derive a unique 128-bit key for each file. The default iteration count for the algorithm is 1024. &lt;br /&gt;
#The files are encrypted. The random number generator is used to generate the 8-byte initialization vector for the algorithm. The derived key is used together with the initialization vector to encrypt the file using the Blowfish algorithm in cipher feedback (CFB) mode (see [blowfish]).&lt;br /&gt;
Each file that is encrypted is compressed before being encrypted. To allow the contents of the package file to be verified, it is necessary that encrypted files are flagged as &amp;#039;STORED&amp;#039; rather than &amp;#039;DEFLATED&amp;#039;. As entries which are &amp;#039;STORED&amp;#039; must have their size equal to the compressed size, it is necessary to store the uncompressed size in the manifest. The compressed size is stored in both the local file header and central directory record of the Zip file.&amp;lt;br&amp;gt;In an encrypted document all the document files should be encrypted. Non-document files, that are allowed to stay nonencrypted are the files that are recognized as a part of the package format: “mimetype”, “META-INF/manifest.xml” and the signature streams in “META-INF”.&amp;lt;br&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comply to the updated ODF 1.2 Encryption Specification in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
OOo 3.2 needs to comply with the updated encryption specification above. This mainly means that all algorithms used in the different steps needs to be documented in the manifest.xml. It does not mean that OOo would implement other algorithms now. (issue #XXXXX)&lt;br /&gt;
&lt;br /&gt;
== Missing Encryption of manifest.xml  ==&lt;br /&gt;
&lt;br /&gt;
To some people it looks surprising that the manifest.xml is not encrypted. &lt;br /&gt;
&lt;br /&gt;
Actually, the manifest.xml contains the information that any ODF application needs to open the document, including the encryption and hash algorithms which have been used to encrypt the document...&lt;br /&gt;
&lt;br /&gt;
== Protecting the not encrypted manifest.xml in an encrypted document  ==&lt;br /&gt;
&lt;br /&gt;
Since the manifest.xml can&amp;#039;t be encrypted, someone could make modifications to manifest.xml in encrypted documents. &lt;br /&gt;
&lt;br /&gt;
It needs to be discussed if there needs to be some protection against this. &lt;br /&gt;
&lt;br /&gt;
For example, we could generate some signature/hash for manifest.xml, store it in a separate stream in the META-INF folder, encrypted with the same key like the other files in the package. &lt;br /&gt;
&lt;br /&gt;
This could be some OOo-only solution, and OOo would only warn when the signature is missing in documents written with OOo, or it could become part of some future version of the ODF specification. &lt;br /&gt;
&lt;br /&gt;
This topic needs further discussions...&lt;br /&gt;
&lt;br /&gt;
== Public Key Document Encryption  ==&lt;br /&gt;
&lt;br /&gt;
It would be a nice feature to allow public key encryption for encrypting documents. People could encrypt the documents with their own and/or with other people&amp;#039;s public key certificates, so only the owners of the corresponding private keys would be able to open the document. No need to exchange or remember passwords. &lt;br /&gt;
&lt;br /&gt;
== Digital Rights Management  ==&lt;br /&gt;
&lt;br /&gt;
OpenOffice.org could support DRM. The part &amp;quot;user can/can&amp;#039;t open a document&amp;quot; makes sense, can be implemented reliable. Enhanced rights/restrictions like &amp;quot;can copy/print/...&amp;quot; can&amp;#039;t be guaranteed, because they could be removed easily in an open source application. &lt;br /&gt;
&lt;br /&gt;
See also [http://www.slideshare.net/Malte.Timmermann/openofficeorgstaroffice-drm-omc-workshop-2006-presentation my slides] from Sun&amp;#039;s [http://www.openmediacommons.org/ Open Media Commons] workshop. &lt;br /&gt;
&lt;br /&gt;
== Password length and password pattern  ==&lt;br /&gt;
&lt;br /&gt;
The ancient minimal password length in the password dialog should be removed, but don&amp;#039;t allow empty passwords. (issue #i103783) &lt;br /&gt;
&lt;br /&gt;
In future it&amp;#039;s better to add some good explanations about strong passwords to password dialogs and online help.&lt;br /&gt;
&lt;br /&gt;
What about adding some configuration items, so companies can configure OOo to adhere to their password rules? &lt;br /&gt;
&lt;br /&gt;
Ooo-password-properties: MinPasswordLength (default=1 if not set), MinNumbercharacters, MinSpecialCharacters, ForbiddenCharacters. &lt;br /&gt;
&lt;br /&gt;
We would then also need some dialog which explains the password rule to the user.&lt;br /&gt;
&lt;br /&gt;
== Thumbnails in encrypted documents  ==&lt;br /&gt;
&lt;br /&gt;
ODF documents can contain a thumbnail, to display a small picture of the first page in a file explorer. &lt;br /&gt;
&lt;br /&gt;
Currently, encrypted documents contain encrypted thumbnails, which is not good for anything.&lt;br /&gt;
&lt;br /&gt;
Encrypted documents shouldn&amp;#039;t store thumbnails. (issue #i103930)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason for this is that encrypted documents mustn&amp;#039;t contain any non encrypted streams (with some exceptions). And since the encrypted document contains a standard bitmap as a thumbnail it makes no sense to store it in the document anyway. The bitmap should be part of the system integration. &lt;br /&gt;
&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Security/Encryption&amp;diff=137748</id>
		<title>Security/Encryption</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Security/Encryption&amp;diff=137748"/>
		<updated>2009-08-19T11:04:32Z</updated>

		<summary type="html">&lt;p&gt;Mav: /* Thumbnails in encrypted documents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Encrypted documents shouldn&amp;#039;t have any non encrypted content  ==&lt;br /&gt;
&lt;br /&gt;
Currently it is possible to add any non encrypted content into encrypted documents, simply by putting new streams into the zip archive. &lt;br /&gt;
&lt;br /&gt;
This way, someone could for example add macro code into documents without the need to know the password. &lt;br /&gt;
&lt;br /&gt;
The possibility to add content to an encrypted document is quite bad, and it becomes worse with macros, because passwords increase the level of trust the user has to a document, when it was encrypted by a person he knows. &lt;br /&gt;
&lt;br /&gt;
OOo will detect the macros, and ask the user whether or not to execute them. The user might trust the author of the document, and because of the encryption normally nobody should have been able to manipulate it, so he will probably allow OOo to execute the macros. At least, it&amp;#039;s not possible to bind the macros to some event, so it would get executed automatically. &lt;br /&gt;
&lt;br /&gt;
In general, an encrypted document shouldn&amp;#039;t have any non encrypted content. Exceptions are some files in the META-INF folder: manifest.xml, which is needed to get the encryption information, and the digital signature files also might not be encrypted, depending on the signature implementation. &lt;br /&gt;
&lt;br /&gt;
OOo should show a warning when an encrypted document contains streams which should be encrypted, but aren&amp;#039;t. Additionally, macros should be disabled for the document. (issue #XXXXX)&lt;br /&gt;
&lt;br /&gt;
== Improving the Encryption Implementation in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
For OOo 3.2, we plan to improve the document encryption, or better, the handling of documents which have issues like mentioned above (issue #XXXXX). &lt;br /&gt;
&lt;br /&gt;
When OOo opens an encrypted document, it will check via the manifest if all files are encrypted. All encrypted files in a ODF zip archive must use the same encryption key. It is also necessary to check the actual file content, and not the manifest alone. This could be done on access, or in a background process for all files. When detecting not encrypted files, OOo will show a warning to the user, and will not execute any unencrypted macros in encrypted documents. &lt;br /&gt;
&lt;br /&gt;
== Enhancing the Encryption Specification for ODF 1.2  ==&lt;br /&gt;
&lt;br /&gt;
Currently the ODF specification specifies one way for encrypting ODF documents, and ODF applications can&amp;#039;t chose different algorithms. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Choosing other encryption algorithms can be important, to comply with encryption rules from a company or Government using ODF. &lt;br /&gt;
&lt;br /&gt;
The information about the used algorithms (for each step)&amp;amp;nbsp;need to be documented in the manifest.xml.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This is the latest draft of the proposal that we will send to the OASIS OpenDocument TC:&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;blockquote&amp;gt;2.3 Encryption: &amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;The encryption process takes place in the following multiple stages:&amp;lt;br&amp;gt; &lt;br /&gt;
#The start key is generated and is provided to the package component. &lt;br /&gt;
#The derived key is generated by the component based on the start key. &lt;br /&gt;
#The files are encrypted based on the derived key and the encryption algorithm.&lt;br /&gt;
The implementation must support at least the described below default way for the mentioned steps. In addition it might support encryption, where algorithms different from the default are used for the steps. The information regarding used for each step algorithms has to be provided in the manifest.xml accordingly. &amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;The default way is:&amp;lt;br&amp;gt; &lt;br /&gt;
#The start key is generated. The byte sequence representing the password in UTF-8 is used to generate a 20-byte SHA1 digest (see [RFC3174]). The result star key is passed to the package component. &lt;br /&gt;
#The derived key is generated by the package component from the start key. The PBKDF2 algorithm based on HMAC-SHA-1 function (see [RFC2898]) is used for the key derivation. The random number generator initialized with the current time is used to generate 16-byte salt for each file. The salt is used together with the start key to derive a unique 128-bit key for each file. The default iteration count for the algorithm is 1024. &lt;br /&gt;
#The files are encrypted. The random number generator is used to generate the 8-byte initialization vector for the algorithm. The derived key is used together with the initialization vector to encrypt the file using the Blowfish algorithm in cipher feedback (CFB) mode (see [blowfish]).&lt;br /&gt;
Each file that is encrypted is compressed before being encrypted. To allow the contents of the package file to be verified, it is necessary that encrypted files are flagged as &amp;#039;STORED&amp;#039; rather than &amp;#039;DEFLATED&amp;#039;. As entries which are &amp;#039;STORED&amp;#039; must have their size equal to the compressed size, it is necessary to store the uncompressed size in the manifest. The compressed size is stored in both the local file header and central directory record of the Zip file.&amp;lt;br&amp;gt;In an encrypted document all the document files should be encrypted. Non-document files, that are allowed to stay nonencrypted are the files that are recognized as a part of the package format: “mimetype”, “META-INF/manifest.xml” and the signature streams in “META-INF”.&amp;lt;br&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comply to the updated ODF 1.2 Encryption Specification in OOo 3.2  ==&lt;br /&gt;
&lt;br /&gt;
OOo 3.2 needs to comply with the updated encryption specification above. This mainly means that all algorithms used in the different steps needs to be documented in the manifest.xml. It does not mean that OOo would implement other algorithms now. (issue #XXXXX)&lt;br /&gt;
&lt;br /&gt;
== Missing Encryption of manifest.xml  ==&lt;br /&gt;
&lt;br /&gt;
To some people it looks surprising that the manifest.xml is not encrypted. &lt;br /&gt;
&lt;br /&gt;
Actually, the manifest.xml contains the information that any ODF application needs to open the document, including the encryption and hash algorithms which have been used to encrypt the document...&lt;br /&gt;
&lt;br /&gt;
== Protecting the not encrypted manifest.xml in an encrypted document  ==&lt;br /&gt;
&lt;br /&gt;
Since the manifest.xml can&amp;#039;t be encrypted, someone could make modifications to manifest.xml in encrypted documents. &lt;br /&gt;
&lt;br /&gt;
It needs to be discussed if there needs to be some protection against this. &lt;br /&gt;
&lt;br /&gt;
For example, we could generate some signature/hash for manifest.xml, store it in a separate stream in the META-INF folder, encrypted with the same key like the other files in the package. &lt;br /&gt;
&lt;br /&gt;
This could be some OOo-only solution, and OOo would only warn when the signature is missing in documents written with OOo, or it could become part of some future version of the ODF specification. &lt;br /&gt;
&lt;br /&gt;
This topic needs further discussions...&lt;br /&gt;
&lt;br /&gt;
== Public Key Document Encryption  ==&lt;br /&gt;
&lt;br /&gt;
It would be a nice feature to allow public key encryption for encrypting documents. People could encrypt the documents with their own and/or with other people&amp;#039;s public key certificates, so only the owners of the corresponding private keys would be able to open the document. No need to exchange or remember passwords. &lt;br /&gt;
&lt;br /&gt;
== Digital Rights Management  ==&lt;br /&gt;
&lt;br /&gt;
OpenOffice.org could support DRM. The part &amp;quot;user can/can&amp;#039;t open a document&amp;quot; makes sense, can be implemented reliable. Enhanced rights/restrictions like &amp;quot;can copy/print/...&amp;quot; can&amp;#039;t be guaranteed, because they could be removed easily in an open source application. &lt;br /&gt;
&lt;br /&gt;
See also [http://www.slideshare.net/Malte.Timmermann/openofficeorgstaroffice-drm-omc-workshop-2006-presentation my slides] from Sun&amp;#039;s [http://www.openmediacommons.org/ Open Media Commons] workshop. &lt;br /&gt;
&lt;br /&gt;
== Password length and password pattern  ==&lt;br /&gt;
&lt;br /&gt;
Maybe we should remove the ancient minimal password length in the password dialog (but don&amp;#039;t allow empty passwords). &lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s better to add some good explanations about strong passwords to password dialogs and online help. (Make sure that old OOo versions don&amp;#039;t check the old min password length when loading encrypted documents) &lt;br /&gt;
&lt;br /&gt;
What about adding some configuration items, so companies can configure OOo to adhere to their password rules? &lt;br /&gt;
&lt;br /&gt;
Ooo-password-properties: MinPasswordLength (default=1 if not set), MinNumbercharacters, MinSpecialCharacters, ForbiddenCharacters. &lt;br /&gt;
&lt;br /&gt;
We would then also need some dialog which explains the password rule to the user. &lt;br /&gt;
&lt;br /&gt;
== Thumbnails in encrypted documents  ==&lt;br /&gt;
&lt;br /&gt;
ODF documents can contain a thumbnail, to display a small picture of the first page in a file explorer. &lt;br /&gt;
&lt;br /&gt;
Currently, encrypted documents contain encrypted thumbnails, which is not good for anything.&lt;br /&gt;
&lt;br /&gt;
Encrypted documents shouldn&amp;#039;t store thumbnails. (issue #i103930)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason for this is that encrypted documents mustn&amp;#039;t contain any non encrypted streams (with some exceptions). And since the encrypted document contains a standard bitmap as a thumbnail it makes no sense to store it in the document anyway. The bitmap should be part of the system integration. &lt;br /&gt;
&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=MediaWiki_Extension/Project_Scope_Statement&amp;diff=62756</id>
		<title>MediaWiki Extension/Project Scope Statement</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=MediaWiki_Extension/Project_Scope_Statement&amp;diff=62756"/>
		<updated>2008-02-08T12:36:17Z</updated>

		<summary type="html">&lt;p&gt;Mav: /* Project Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Status ==&lt;br /&gt;
;Current Status:&lt;br /&gt;
:draft, not yet approved by sponsors&lt;br /&gt;
&lt;br /&gt;
;Status History&lt;br /&gt;
:2007-09-05: [MMP] set up document&lt;br /&gt;
&lt;br /&gt;
== Project Name ==&lt;br /&gt;
[[MediaWiki Extension]] 1.0&lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
;Phase 1&lt;br /&gt;
:Provide an extension to OpenOffice.org to create and publish MediaWiki pages with OpenOffice.org by making use of new OpenOffice.org extension framework features&lt;br /&gt;
;Phase 2&lt;br /&gt;
:Provide an extension to OpenOffice.org to load, edit and republish MediaWiki pages with OpenOffice.org&lt;br /&gt;
&lt;br /&gt;
;iTeam&lt;br /&gt;
: Mathias Bauer /MBA (Lead), Mikhail /MAV (engineering), Uwe /UFI (documentatiom), Éric /ES (QA), ? (User Experience)&lt;br /&gt;
&lt;br /&gt;
;Sponsors&lt;br /&gt;
:Mathias Bauer /MBA, Lutz Hoeger /LHO&lt;br /&gt;
&lt;br /&gt;
== Scope Inclusions ==&lt;br /&gt;
=== Goals and Objectives ===&lt;br /&gt;
&amp;#039;&amp;#039;What business and/or technical needs will be filled by this project?&amp;#039;&amp;#039;&lt;br /&gt;
* Enable wiki editing for OOo3 users&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&amp;#039;&amp;#039;What  end-user requirements will be addressed by this projects?&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Functional requirements ===&lt;br /&gt;
;Phase 1&lt;br /&gt;
* support of MediaWiki systems&lt;br /&gt;
* create content with OOo and publish it to the wiki system &lt;br /&gt;
&lt;br /&gt;
;Phase 2&lt;br /&gt;
* visual roundtrip from wiki to OOo to wiki, ie. preserve document content and structure, headings, text styles (bold. italics), hyperlinks, lists, tables, images&lt;br /&gt;
* functional roundtrip from wiki to OOo to wiki, ie. table of content macros, categories&lt;br /&gt;
* template support for import from wiki&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== Non-functional requirements ===&lt;br /&gt;
* The interaction design will reflect the new integrated command locations&lt;br /&gt;
* MediaWiki administration (URL, user, password) will happen in Tools-Option&lt;br /&gt;
* Help is integrated&lt;br /&gt;
&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
&amp;#039;&amp;#039;What deliverables will be produced by this project?&amp;#039;&amp;#039;&lt;br /&gt;
;Phase 1&lt;br /&gt;
* MediaWiki.oxt by December 2007 latest&lt;br /&gt;
&lt;br /&gt;
;Phase 2&lt;br /&gt;
* &amp;#039;&amp;#039;depends on progress of Phase 1&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Scope Exclusions ==&lt;br /&gt;
=== Goals and Objectives ===&lt;br /&gt;
&amp;#039;&amp;#039;What business and/or technical needs will be excluded from this project?&amp;#039;&amp;#039;&lt;br /&gt;
* The project is divided into 2 segments. Phase 1 will offer the feature set to maintain the connection to the MediaWiki systems (Tools-Options), and the Send-To-MediaWiki functionality. Phase 1 does not include opening/reading of existing MediaWiki articles or parts thereof. This is planned for Phase 2.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&amp;#039;&amp;#039;What  end-user requirements will be excluded from this project?&amp;#039;&amp;#039;&lt;br /&gt;
* Support of other wiki systems than MediaWiki&lt;br /&gt;
* WikiText code roundtrip of MediaWiki content&lt;br /&gt;
* embedded HTML on wiki pages will be replaced by WikiText&lt;br /&gt;
* Images can not be uploaded to the wiki systems&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
&amp;#039;&amp;#039;What deliverables will be excluded from this project?&amp;#039;&amp;#039;&lt;br /&gt;
* direct customer support&lt;br /&gt;
* publishing the extension on the extension repository&lt;br /&gt;
* marketing for the extension&lt;br /&gt;
&lt;br /&gt;
[[Category:MediaWiki Extension|P]]&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=MediaWiki_Extension/Action_Items&amp;diff=62751</id>
		<title>MediaWiki Extension/Action Items</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=MediaWiki_Extension/Action_Items&amp;diff=62751"/>
		<updated>2008-02-08T10:42:48Z</updated>

		<summary type="html">&lt;p&gt;Mav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mathias ==&lt;br /&gt;
&lt;br /&gt;
== Éric ==&lt;br /&gt;
# Test the fixed version of the RC&lt;br /&gt;
&lt;br /&gt;
== Mikhail ==&lt;br /&gt;
# Fix the known issues in RC and provide it for testing&lt;br /&gt;
&lt;br /&gt;
== Anyone ==&lt;br /&gt;
# What are common/typical extensions for MediaWiki installations?&lt;br /&gt;
# We need a positive list of MediaWiki tags that we support and a negative list of tags that we do not support.&lt;br /&gt;
&lt;br /&gt;
[[Category:MediaWiki Extension|A]]&lt;br /&gt;
[[Category:To-Do]]&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=MediaWiki_Extension/Release_Map&amp;diff=62750</id>
		<title>MediaWiki Extension/Release Map</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=MediaWiki_Extension/Release_Map&amp;diff=62750"/>
		<updated>2008-02-08T10:40:18Z</updated>

		<summary type="html">&lt;p&gt;Mav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== QA Approved ==&lt;br /&gt;
; Release Date&lt;br /&gt;
: February 2008&lt;br /&gt;
&lt;br /&gt;
== Release Candidate 1 ==&lt;br /&gt;
; Release Date&lt;br /&gt;
: December 2007&lt;br /&gt;
; Features&lt;br /&gt;
: complete&lt;br /&gt;
&lt;br /&gt;
==  Product Backlog ==&lt;br /&gt;
* localization&lt;br /&gt;
* integrated help&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Alpha 4 ==&lt;br /&gt;
; Release Date&lt;br /&gt;
: TBD&lt;br /&gt;
; Features&lt;br /&gt;
: MediaWiki Options move to Internet node.&lt;br /&gt;
: ...&lt;br /&gt;
&lt;br /&gt;
== Alpha 3 ==&lt;br /&gt;
; Release Date&lt;br /&gt;
: 13 December 2007&lt;br /&gt;
; Features&lt;br /&gt;
: Writer support (add To MediaWiki... command to Writer-File-Send)&lt;br /&gt;
: Passwords are saved.&lt;br /&gt;
: string review by MMP&lt;br /&gt;
&lt;br /&gt;
== Alpha 2 ==&lt;br /&gt;
; Release Date&lt;br /&gt;
: 26 November 2007&lt;br /&gt;
; Features&lt;br /&gt;
: inline progress indicator for Send dialog (according to spec)&lt;br /&gt;
: HTTPS support (show alert if unknown certificate needs to be accepted)&lt;br /&gt;
: Options panel (temporary under Tools-Writer-MediaWiki)&lt;br /&gt;
&lt;br /&gt;
== Alpha 1 ==&lt;br /&gt;
; Release Date&lt;br /&gt;
: October 2007&lt;br /&gt;
; Features&lt;br /&gt;
: This release will focus on export of Writer/web documents directly to a MediaWiki.&lt;br /&gt;
: File-Send submenu gets a new command to send documents to the Wiki&lt;br /&gt;
: OOo 2.3&amp;#039;s XSLT Transformation is used&lt;br /&gt;
: Alpha 1 is English only&lt;br /&gt;
: Alpha 1 is HTTP only&lt;br /&gt;
: Alpha 1 is Writer/Web only&lt;br /&gt;
: Alpha 1 does not have final Send, Login dialog&lt;br /&gt;
: Alpha 1 has no progress indicator yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:MediaWiki Extension|R]]&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=MediaWiki_Extension/Action_Items&amp;diff=61524</id>
		<title>MediaWiki Extension/Action Items</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=MediaWiki_Extension/Action_Items&amp;diff=61524"/>
		<updated>2008-01-24T15:13:32Z</updated>

		<summary type="html">&lt;p&gt;Mav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mathias ==&lt;br /&gt;
# provide Options dialog for Alpha 2&lt;br /&gt;
# talk to MBA about Howie&amp;#039;s participation&lt;br /&gt;
# talk to Thomas Mitzka on more [[MediaWiki Extension/Use Cases]] (met with Thomas, notes TBD)&lt;br /&gt;
# Open Dialog&lt;br /&gt;
# Error Strings&lt;br /&gt;
# collect input from/with marketing to &amp;#039;&amp;#039;launch&amp;#039;&amp;#039; Alpha x in the extension repository.&lt;br /&gt;
# Create OOo template &amp;#039;&amp;#039;MediaWiki.ott&amp;#039;&amp;#039; or? &amp;#039;&amp;#039;MediaWiki.oth&amp;#039;&amp;#039;  that looks a bit like a MediWiki page /wrt styles, see [[MediaWiki Extension/Meetings#6-Sep-2007]]&lt;br /&gt;
; done&lt;br /&gt;
# propagate new inline progress control&lt;br /&gt;
&lt;br /&gt;
== Éric ==&lt;br /&gt;
# Migrate wiki test server to so-penelope&lt;br /&gt;
# set up an https server.&lt;br /&gt;
&lt;br /&gt;
== Mikhail ==&lt;br /&gt;
# add HelpIDs to the UI&lt;br /&gt;
&lt;br /&gt;
== Anyone ==&lt;br /&gt;
# Find typical [[MediaWiki Extension/Use Cases|Use Cases]] for MediaWiki&lt;br /&gt;
## Wikipedia&lt;br /&gt;
## oo-wiki&lt;br /&gt;
## Ubuntu-wiki&lt;br /&gt;
# What are common/typical extensions for MediaWiki installations?&lt;br /&gt;
# We need a positive list of MediaWiki tags that we support and a negative list of tags that we do not support.&lt;br /&gt;
&lt;br /&gt;
[[Category:MediaWiki Extension|A]]&lt;br /&gt;
[[Category:To-Do]]&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=MediaWiki_Extension/Action_Items&amp;diff=54003</id>
		<title>MediaWiki Extension/Action Items</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=MediaWiki_Extension/Action_Items&amp;diff=54003"/>
		<updated>2007-11-15T16:24:59Z</updated>

		<summary type="html">&lt;p&gt;Mav: /* Mikhail */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Matthias ==&lt;br /&gt;
# talk to MBA about Howie&amp;#039;s participation&lt;br /&gt;
# talk to Thomas Mitzka on more [[MediaWiki Extension/Use Cases]]&lt;br /&gt;
# provide spec for Alpha 1&lt;br /&gt;
## Add Dialog&lt;br /&gt;
## Settings Dialog&lt;br /&gt;
## Error Strings&lt;br /&gt;
# collect input from/with marketing to &amp;#039;&amp;#039;launch&amp;#039;&amp;#039; Alpha 1 in the extension repository.&lt;br /&gt;
# propagate new inline progress control &lt;br /&gt;
# Create OOo template &amp;#039;&amp;#039;MediaWiki.ott&amp;#039;&amp;#039; or? &amp;#039;&amp;#039;MediaWiki.oth&amp;#039;&amp;#039;  that looks a bit like a MediWiki page /wrt styles, see [[MediaWiki Extension/Meetings#6-Sep-2007]]&lt;br /&gt;
&lt;br /&gt;
== Éric ==&lt;br /&gt;
# add query with MediaWiki Tasks to our [[MediaWiki Extension]] home page&lt;br /&gt;
# &amp;lt;strike&amp;gt;Clarify if the MediaWiki filter is installed and enabled for OOo 2.3 -- according to the [http://specs.openoffice.org/writer/fileIO/MediaWiki_Export_Filter.odt spec] it should be preinstalled.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Yes, it should but is currently not: issue [http://www.openoffice.org/issues/show_bug.cgi?id=82028 82028]&lt;br /&gt;
&lt;br /&gt;
== Mikhail ==&lt;br /&gt;
# check sources with LGPL licenses into CWS&lt;br /&gt;
# develop [[MediaWiki_Extension/Release_Map|Alpha 2]]&lt;br /&gt;
# add HelpIDs to the UI&lt;br /&gt;
&lt;br /&gt;
== Anyone ==&lt;br /&gt;
# Find typical [[MediaWiki Extension/Use Cases|Use Cases]] for MediaWiki&lt;br /&gt;
## Wikipedia&lt;br /&gt;
## oo-wiki&lt;br /&gt;
## Ubuntu-wiki&lt;br /&gt;
# What are common/typical extensions for MediaWiki installations?&lt;br /&gt;
# We need a positive list of MediaWiki tags that we support and a negative list of tags that we do not support.&lt;br /&gt;
&lt;br /&gt;
[[Category:MediaWiki Extension|A]]&lt;br /&gt;
[[Category:To-Do]]&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=MediaWiki_Extension/Action_Items&amp;diff=54002</id>
		<title>MediaWiki Extension/Action Items</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=MediaWiki_Extension/Action_Items&amp;diff=54002"/>
		<updated>2007-11-15T16:24:29Z</updated>

		<summary type="html">&lt;p&gt;Mav: /* Mikhail */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Matthias ==&lt;br /&gt;
# talk to MBA about Howie&amp;#039;s participation&lt;br /&gt;
# talk to Thomas Mitzka on more [[MediaWiki Extension/Use Cases]]&lt;br /&gt;
# provide spec for Alpha 1&lt;br /&gt;
## Add Dialog&lt;br /&gt;
## Settings Dialog&lt;br /&gt;
## Error Strings&lt;br /&gt;
# collect input from/with marketing to &amp;#039;&amp;#039;launch&amp;#039;&amp;#039; Alpha 1 in the extension repository.&lt;br /&gt;
# propagate new inline progress control &lt;br /&gt;
# Create OOo template &amp;#039;&amp;#039;MediaWiki.ott&amp;#039;&amp;#039; or? &amp;#039;&amp;#039;MediaWiki.oth&amp;#039;&amp;#039;  that looks a bit like a MediWiki page /wrt styles, see [[MediaWiki Extension/Meetings#6-Sep-2007]]&lt;br /&gt;
&lt;br /&gt;
== Éric ==&lt;br /&gt;
# add query with MediaWiki Tasks to our [[MediaWiki Extension]] home page&lt;br /&gt;
# &amp;lt;strike&amp;gt;Clarify if the MediaWiki filter is installed and enabled for OOo 2.3 -- according to the [http://specs.openoffice.org/writer/fileIO/MediaWiki_Export_Filter.odt spec] it should be preinstalled.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Yes, it should but is currently not: issue [http://www.openoffice.org/issues/show_bug.cgi?id=82028 82028]&lt;br /&gt;
&lt;br /&gt;
== Mikhail ==&lt;br /&gt;
# check sources with LGPL licenses into CWS&lt;br /&gt;
# develop [[MediaWiki_Extension/Release_Map|Alpha 2]], focus on File-Send menu and Export functionality&lt;br /&gt;
# add HelpIDs to the UI&lt;br /&gt;
&lt;br /&gt;
== Anyone ==&lt;br /&gt;
# Find typical [[MediaWiki Extension/Use Cases|Use Cases]] for MediaWiki&lt;br /&gt;
## Wikipedia&lt;br /&gt;
## oo-wiki&lt;br /&gt;
## Ubuntu-wiki&lt;br /&gt;
# What are common/typical extensions for MediaWiki installations?&lt;br /&gt;
# We need a positive list of MediaWiki tags that we support and a negative list of tags that we do not support.&lt;br /&gt;
&lt;br /&gt;
[[Category:MediaWiki Extension|A]]&lt;br /&gt;
[[Category:To-Do]]&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Developers_FAQ&amp;diff=39343</id>
		<title>Developers FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Developers_FAQ&amp;diff=39343"/>
		<updated>2007-07-16T14:23:41Z</updated>

		<summary type="html">&lt;p&gt;Mav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Developers FAQ is a collection from different questions asked by Developers who are new to OpenOffice.org:&lt;br /&gt;
&lt;br /&gt;
This is work in progress, the developer mentioned behind the question will write the answer soon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Framework==&lt;br /&gt;
* Description of the SFX2 framework? (MBA)&lt;br /&gt;
* There are the roles of the different shells and views? See [[Framework/Article/Implementation_of_the_Dispatch_API_In_SFX2|Implementation of the Dispatch API In SFX2]]&lt;br /&gt;
* Explanation of the dispatch/interceptor mechanism / command handling? See [[Framework/Article/Implementation_of_the_Dispatch_API_In_SFX2|Implementation of the Dispatch API In SFX2]]&lt;br /&gt;
* How is the slot mechanism implemented, and how is the listener and broadcast mechanism implemented? See [[Framework/Article/Implementation_of_the_Dispatch_API_In_SFX2|Implementation of the Dispatch API In SFX2]]&lt;br /&gt;
* Generic user interface: How does the framework implement the interface management, how to load toolbar, and how to implement berth area? See [[Framework/Article/General_Architecture_Of_The_Framework_User_Interface_Implementation|General Architecture of the Framework User Interface]]&lt;br /&gt;
* Filter configuration&lt;br /&gt;
** [http://api.openoffice.org/docs/DevelopersGuide/OfficeDev/OfficeDev.xhtml#1_2_4_Integrating_Import_and_Export_Filters Developer&amp;#039;s Guide 7.2.4  Integrating Import and Export Filters]&lt;br /&gt;
** Note: Description of the used configuration format in XML is outdated.&lt;br /&gt;
* API for accessing OOo package format&lt;br /&gt;
** http://api.openoffice.org/docs/common/ref/com/sun/star/embed/Storage.html&lt;br /&gt;
* Embedding&lt;br /&gt;
** http://wiki.services.openoffice.org/wiki/Framework/Article/General_Architecture_Of_Documents_Embedding&lt;br /&gt;
* Templates&lt;br /&gt;
** http://api.openoffice.org/docs/common/ref/com/sun/star/frame/TemplateAccess.html&lt;br /&gt;
** &lt;br /&gt;
* Add-ons / Extensions support&lt;br /&gt;
** [[Framework/WorkInProgress/Addon_Menu_Toolbar_Merging|Support merging into the Office menu bar/toolbars.]]&lt;br /&gt;
** [[Framework/Article/Generic_UNO_Interfaces_for_complex_toolbar_controls|Complex toolbar controls for add-ons.]]&lt;br /&gt;
** [http://api.openoffice.org/docs/DevelopersGuide/Components/Components.xhtml#1_7_3_Add-Ons Developer&amp;#039;s Guide 4.7.3 Add-ons]&lt;br /&gt;
** Add-on examples with sources (http://framework.openoffice.org/servlets/ProjectDocumentList?folderID=226&amp;amp;expandFolder=226&amp;amp;folderID=72)  &lt;br /&gt;
* The general part of the document storing/loading process&lt;br /&gt;
** [http://api.openoffice.org/docs/DevelopersGuide/OfficeDev/OfficeDev.xhtml#1_1_5_1_Loading_Documents Documents loading]&lt;br /&gt;
** [http://api.openoffice.org/docs/DevelopersGuide/OfficeDev/OfficeDev.xhtml#1_1_5_3_Storing_Documents Documents storing]&lt;br /&gt;
&lt;br /&gt;
==[http://udk.openoffice.org UDK]==&lt;br /&gt;
* Mechanisms of Multi-Platform support ([[KR]]) &lt;br /&gt;
:I assume this means multiple language support, please see [[Uno/Article/Working_with_Environments%2C_Mappings_%26_Objects|Working with Environments, Mappings &amp;amp; Objects]] .&lt;br /&gt;
* How to communicate with other OOo components, and how to implement a bridge ([[KR]]) &lt;br /&gt;
: There is a tutorial for implementing C++ bridges, please see http://udk.openoffice.org/cpp/man/cpp_bridges.html . Most [[Uno/Binary|Binary Uno]] bridges are implemented in the [[Uno/Binary/Module/bridges|bridges]] module.&lt;br /&gt;
* [[Uno/PyUno|Python Uno]] components may be run within the OOo process - how can they be called from [[Java]], [[C++]] or [[BASIC|StarBasic]]? ([[KR]])&lt;br /&gt;
: [[Uno/PyUno|Python Uno]] components may be accessed like any other component, e.g. by doing a &amp;quot;createInstance&amp;quot; with a service which is implemented in [[Uno/PyUno|Python Uno]].&lt;br /&gt;
* The relationship between [[Uno]], COM+, CORBA ([[KR]])&lt;br /&gt;
: For a comparison between [[Uno]] and CORBA please see http://udk.openoffice.org/common/man/comparison_uno_corba.html , though [[Uno]] nowadays does support multiple inheritance. Also there was an effort, which unfortunately did not complete, do implement a [[Uno]] CORBA bridge, please see http://udk.openoffice.org/common/man/concept/uno_corba.html .&lt;br /&gt;
: There is no document regarding [[Uno]] and (D)COM+. [[Uno]] has some similarities with COM+:&lt;br /&gt;
:* &amp;quot;queryInterface&amp;quot;&lt;br /&gt;
:* Language agnostic&lt;br /&gt;
:* &amp;quot;Apartments&amp;quot;, please see the [[Uno/Spec/Threading-Model|Uno Threading-Model]] for details.&lt;br /&gt;
:* Components&lt;br /&gt;
:* Remote transparency&lt;br /&gt;
&lt;br /&gt;
==Application, Writer==&lt;br /&gt;
* Structure of tables? [[Writer_Core_And_Layout]]&lt;br /&gt;
* Mechanism/Implementation of Undo? [[Writer_Core_And_Layout]]&lt;br /&gt;
* Mechanism/Implementation of Frames, relationship? [[Writer_Core_And_Layout]]&lt;br /&gt;
* Class structure of SwNode, SwNodes, SwNodeIndex, ..., relationship? [[Writer_Core_And_Layout]]&lt;br /&gt;
* The relationship between the class ViewShell and SwDoc (OS)&lt;br /&gt;
The ViewShell is created as indirect member of the SwPagePreview or as base class of SwWrtShell, SwFEShell, SwEditShell, SwCrsrShell as member of the SwView. This stack of shells provides access from SwView/SwPagePreview to the document. The ViewShell mostly for output (printing, painting) and the others for cursor travelling and content modification.&lt;br /&gt;
&lt;br /&gt;
==Application, Draw/Impress==&lt;br /&gt;
* The mechanism of slide show and animation (what is the difference between before and after)?&lt;br /&gt;
** The slideshow itself, and all animation functionality are implemented in the [[Slideshow]] module. (What is the meeaing of &amp;quot;before&amp;quot; and &amp;quot;after&amp;quot; in the context of this question?)&lt;br /&gt;
* Copy&amp;amp;Paste: Memory structure of clipboard in SD, difference between coping objects inside slides and coping objects from or into other applications like SW, SC? &lt;br /&gt;
** Clipboard between the same application type is done by using core implementations. Clipboard between different application types is done by using xml.&lt;br /&gt;
* Mechanism of designing and implementation of master page and layout style in presentation (CL)&lt;br /&gt;
** Master pages and layout styles are already implemented in OOo.&lt;br /&gt;
&lt;br /&gt;
* Flash Export:  (CL)&lt;br /&gt;
** Difference between the export of the simple character and the complex character?&lt;br /&gt;
*** Simple characters are exported using the font tags of the flash format, complex characters are exported as polygons.&lt;br /&gt;
** The implementation of the Polygon in VCL. Such as the EM square，Body，Ascent and Descent to realize of the glyph?&lt;br /&gt;
*** This question needs more data as the implementation of the Polygon in VCl itself has nothing to do with glyphs. It is only used to represend glyphs.&lt;br /&gt;
** The custom animation will be lost after the slides being exported into the swf. What cause it? There is no support to export the animation, is there? Do you have any plan to consummate it? And what&amp;#039;s your purpose in this area?&lt;br /&gt;
*** It is caused by the absence of an implementation that exports this particular feature. There is currently no assigned developer for the task to add this feature to the flash export. One developer from Redflag is activly contributing to the flash export.&lt;br /&gt;
&lt;br /&gt;
==Application, Calc==&lt;br /&gt;
* How are the areas for charts recognized, and how does the update notification work? (NN)&lt;br /&gt;
** Note that much of this has changed for the new chart. Don&amp;#039;t make any changes based on older versions (before SRC680m213).&lt;br /&gt;
** The chart implementation uses the UNO API (XDataProvider) to get data sequence objects for each data series, and registers itself as modify listener with these objects.&lt;br /&gt;
** For the time when a chart object hasn&amp;#039;t been loaded yet, Calc has its own internal listener (ScChartListener) to load the chart if its data is changed.&lt;br /&gt;
* Relationship between cells, sheets and workbooks (class diagram) (NN)&lt;br /&gt;
** The core implementation of the document is class ScDocument. It has an array of pointers to ScTable (implementation of a sheet). Each sheet has a fixed-size array of ScColumn objects. Each ScColumn object holds the cells in one column.&lt;br /&gt;
** The cells are implemented by base class ScBaseCell and derived classes:&lt;br /&gt;
*** ScNoteCell (empty except for note and listeners)&lt;br /&gt;
*** ScValueCell (constant numeric value)&lt;br /&gt;
*** ScStringCell (simple text)&lt;br /&gt;
*** ScEditCell (formatted or multi-paragraph text)&lt;br /&gt;
*** ScFormulaCell (formula)&lt;br /&gt;
* Copy&amp;amp;Paste: What&amp;#039;s happening on Copy directly, and later if someone pastes into same spreadsheet or other application (NN)&lt;br /&gt;
** Implementation of copy for cells is at ScViewFunc::CopyToClip. The cells are copied into an internal object (ScDocument), then a ScTransferObj is created as the interface to the clipboard.&lt;br /&gt;
** Pasting into Calc copies the cells directly from the internal ScDocument object. Clipboard data in other formats for external applications is created on demand by ScTransferObj (ScTransferObj::GetData).&lt;br /&gt;
&lt;br /&gt;
==Application, Database==&lt;br /&gt;
* Why was the dbase driver engineered into file_based driver? And compared with the text/csv driver, what are the advantages of it in OOo&amp;#039;s database, and how it was being designed in OOo&amp;#039;s database?&lt;br /&gt;
** The &amp;quot;file&amp;quot; driver is not an own driver, it&amp;#039;s a framework for, well, file-based databases, where a single file represents a table, and all such files in a given directory comprise the database. Both the text/csv driver and the dBase driver use this framework.&lt;br /&gt;
** The advantage of the dBase driver over the text/csv driver is that the former can read dBase files, while the latter can&amp;#039;t.&lt;br /&gt;
** What do you mean with &amp;quot;was being designed&amp;quot;?&lt;br /&gt;
* What are the project&amp;#039;s short-term plan or the direction of development now?&lt;br /&gt;
** There are two areas which we currently mainly focus on: The new report designer which will be part of OpenOffice.org 2.3, and improved programmability of Base, where the first step is to allow embedding macros in database document.&lt;br /&gt;
* In the project named &amp;quot;Native, cross-platform access to MS Access databases&amp;quot;, what is the current solution? Is there anyone beginning to re-engineer the MDB format himself?&lt;br /&gt;
** The current solution is employing  [http://mdbtools.sourceforge.net/ MDB-Tools], a third-party product which allows access to .mdb files. The driver based on MDB-Tools is in [http://eis.services.openoffice.org/EIS2/cws.ShowCWS?logon=true&amp;amp;Id=2959&amp;amp;Path=SRC680%2Fmdbdriver02 alpha state], and still has serious shortcomings. The project itself is currently stalled, nobody is actively working on it. Also, nobody is working on doing a reverse-engineering of the MSA file format. If somebody wants to do this, we should seriously investigate whether it makes more sense to support and improve existing reverse engineering efforts, namely MDB-Tools.&lt;br /&gt;
&lt;br /&gt;
==Application, Chart2==&lt;br /&gt;
* Description of the Chart2 module: [http://graphics.openoffice.org/chart/chart2codestructure.html Code Structure of chart2]&lt;br /&gt;
&lt;br /&gt;
==General Questions==&lt;br /&gt;
* Which are the common threads started at start up time and used by all OOo applications at runtime, and what are their functions? ([[KR]])?&lt;br /&gt;
: A first over regarding the threads can be found here: [[Effort/Implement_Basic_Threading-Architecture#Threads]] More to come ...&lt;br /&gt;
* Structure of VCL? See [[Sort_of_documentation_about_VCL_around_Native_Mac_OS_X_port]]&lt;br /&gt;
** A general overview about VCL was created by Eric Bachard, please have a look [http://wiki.services.openoffice.org/wiki/User:Ericb#Sort_of_documentation_about_VCL_around_Native_Mac_OS_X_port here]&lt;br /&gt;
* [[TextRenderingProcess|Text rendering process]]&lt;br /&gt;
* Memory Management (MT/MHU)&lt;br /&gt;
* How to improve stability, and where to start? Beside doing thorough QA, you might use tools like [http://tools.www.openoffice.org/debugging/usingvalgrind.sxw Valgrind] or [http://tools.openoffice.org/files/documents/15/872/BoundsChecker.html BoundsChecker]&lt;br /&gt;
* How to improve performance, and where to start? Use a [http://en.wikipedia.org/wiki/Performance_analysis profiler] to analyze the runtime behavior of the code that you want to improve.&lt;br /&gt;
* Which code of OOo is responsible for the VBA Macro parse? How are they implemented?&lt;br /&gt;
** This is done by a hard coded parser in basic/source/comp&lt;br /&gt;
* How is the code implemented to fulfill the specification of Unicode and gb2312 (SB):  Follow the source code links for &amp;amp;ldquo;UTF7&amp;amp;ldquo; and &amp;amp;ldquo;UTF8&amp;amp;ldquo; (Unicode) and &amp;amp;ldquo;EUC_CN&amp;amp;rdquo; (GB2312) in [http://porting.openoffice.org/source/browse/porting/sal/textenc/textenc.cxx?rev=1.6&amp;amp;view=markup sal/textenc/textenc.cxx:1.6].&lt;br /&gt;
* How/where is the Boost library used? See [[boost]] for an overview.&lt;br /&gt;
* The process of SVG protraction and SVG parse. The relationship between controller protraction and the resource of the controller. (SJ)&lt;br /&gt;
* Mozilla and ActiveX plugins (MAV)&lt;br /&gt;
* Which internet protocols are supported in OOo, and what can be improved to the network ability of OOo? (KSO)&lt;br /&gt;
&lt;br /&gt;
==Feature Questions==&lt;br /&gt;
* Currently a document can only be processed by one of the OOo applications - what about having just one application processing all kind of documents?&lt;br /&gt;
* Are there any plans to integrate a desktop search engine? (Could be done as an extension)&lt;br /&gt;
* Any plans to introduce classes comparable to CObject and CWinApp in MFC? (???)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Developer_Documentation]]&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Developers_FAQ&amp;diff=39334</id>
		<title>Developers FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Developers_FAQ&amp;diff=39334"/>
		<updated>2007-07-16T13:00:44Z</updated>

		<summary type="html">&lt;p&gt;Mav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Developers FAQ is a collection from different questions asked by Developers who are new to OpenOffice.org:&lt;br /&gt;
&lt;br /&gt;
This is work in progress, the developer mentioned behind the question will write the answer soon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Framework==&lt;br /&gt;
* Description of the SFX2 framework? (MBA)&lt;br /&gt;
* There are the roles of the different shells and views? See [[Framework/Article/Implementation_of_the_Dispatch_API_In_SFX2|Implementation of the Dispatch API In SFX2]]&lt;br /&gt;
* Explanation of the dispatch/interceptor mechanism / command handling? See [[Framework/Article/Implementation_of_the_Dispatch_API_In_SFX2|Implementation of the Dispatch API In SFX2]]&lt;br /&gt;
* How is the slot mechanism implemented, and how is the listener and broadcast mechanism implemented? See [[Framework/Article/Implementation_of_the_Dispatch_API_In_SFX2|Implementation of the Dispatch API In SFX2]]&lt;br /&gt;
* Generic user interface: How does the framework implement the interface management, how to load toolbar, and how to implement berth area? See [[Framework/Article/General_Architecture_Of_The_Framework_User_Interface_Implementation|General Architecture of the Framework User Interface]]&lt;br /&gt;
* Filter configuration&lt;br /&gt;
** [http://api.openoffice.org/docs/DevelopersGuide/OfficeDev/OfficeDev.xhtml#1_2_4_Integrating_Import_and_Export_Filters Developer&amp;#039;s Guide 7.2.4  Integrating Import and Export Filters]&lt;br /&gt;
** Note: Description of the used configuration format in XML is outdated.&lt;br /&gt;
* API for accessing OOo package format&lt;br /&gt;
** http://api.openoffice.org/docs/common/ref/com/sun/star/embed/Storage.html&lt;br /&gt;
* Embedding&lt;br /&gt;
** http://wiki.services.openoffice.org/wiki/Framework/Article/General_Architecture_Of_Documents_Embedding&lt;br /&gt;
* Templates (MAV)&lt;br /&gt;
* Add-ons / Extensions support&lt;br /&gt;
** [[Framework/WorkInProgress/Addon_Menu_Toolbar_Merging|Support merging into the Office menu bar/toolbars.]]&lt;br /&gt;
** [[Framework/Article/Generic_UNO_Interfaces_for_complex_toolbar_controls|Complex toolbar controls for add-ons.]]&lt;br /&gt;
** [http://api.openoffice.org/docs/DevelopersGuide/Components/Components.xhtml#1_7_3_Add-Ons Developer&amp;#039;s Guide 4.7.3 Add-ons]&lt;br /&gt;
** Add-on examples with sources (http://framework.openoffice.org/servlets/ProjectDocumentList?folderID=226&amp;amp;expandFolder=226&amp;amp;folderID=72)  &lt;br /&gt;
* The general part of the document storing/loading process (MAV)&lt;br /&gt;
** [http://api.openoffice.org/docs/DevelopersGuide/OfficeDev/OfficeDev.xhtml#1_1_5_1_Loading_Documents Documents loading]&lt;br /&gt;
** [http://api.openoffice.org/docs/DevelopersGuide/OfficeDev/OfficeDev.xhtml#1_1_5_3_Storing_Documents Documents storing]&lt;br /&gt;
&lt;br /&gt;
==[http://udk.openoffice.org UDK]==&lt;br /&gt;
* Mechanisms of Multi-Platform support ([[KR]]) &lt;br /&gt;
:I assume this means multiple language support, please see [[Uno/Article/Working_with_Environments%2C_Mappings_%26_Objects|Working with Environments, Mappings &amp;amp; Objects]] .&lt;br /&gt;
* How to communicate with other OOo components, and how to implement a bridge ([[KR]]) &lt;br /&gt;
: There is a tutorial for implementing C++ bridges, please see http://udk.openoffice.org/cpp/man/cpp_bridges.html . Most [[Uno/Binary|Binary Uno]] bridges are implemented in the [[Uno/Binary/Module/bridges|bridges]] module.&lt;br /&gt;
* [[Uno/PyUno|Python Uno]] components may be run within the OOo process - how can they be called from [[Java]], [[C++]] or [[BASIC|StarBasic]]? ([[KR]])&lt;br /&gt;
: [[Uno/PyUno|Python Uno]] components may be accessed like any other component, e.g. by doing a &amp;quot;createInstance&amp;quot; with a service which is implemented in [[Uno/PyUno|Python Uno]].&lt;br /&gt;
* The relationship between [[Uno]], COM+, CORBA ([[KR]])&lt;br /&gt;
: For a comparison between [[Uno]] and CORBA please see http://udk.openoffice.org/common/man/comparison_uno_corba.html , though [[Uno]] nowadays does support multiple inheritance. Also there was an effort, which unfortunately did not complete, do implement a [[Uno]] CORBA bridge, please see http://udk.openoffice.org/common/man/concept/uno_corba.html .&lt;br /&gt;
: There is no document regarding [[Uno]] and (D)COM+. [[Uno]] has some similarities with COM+:&lt;br /&gt;
:* &amp;quot;queryInterface&amp;quot;&lt;br /&gt;
:* Language agnostic&lt;br /&gt;
:* &amp;quot;Apartments&amp;quot;, please see the [[Uno/Spec/Threading-Model|Uno Threading-Model]] for details.&lt;br /&gt;
:* Components&lt;br /&gt;
:* Remote transparency&lt;br /&gt;
&lt;br /&gt;
==Application, Writer==&lt;br /&gt;
* Structure of tables? [[Writer_Core_And_Layout]]&lt;br /&gt;
* Mechanism/Implementation of Undo? [[Writer_Core_And_Layout]]&lt;br /&gt;
* Mechanism/Implementation of Frames, relationship? [[Writer_Core_And_Layout]]&lt;br /&gt;
* Class structure of SwNode, SwNodes, SwNodeIndex, ..., relationship? [[Writer_Core_And_Layout]]&lt;br /&gt;
* The relationship between the class ViewShell and SwDoc (OS)&lt;br /&gt;
The ViewShell is created as indirect member of the SwPagePreview or as base class of SwWrtShell, SwFEShell, SwEditShell, SwCrsrShell as member of the SwView. This stack of shells provides access from SwView/SwPagePreview to the document. The ViewShell mostly for output (printing, painting) and the others for cursor travelling and content modification.&lt;br /&gt;
&lt;br /&gt;
==Application, Draw/Impress==&lt;br /&gt;
* The mechanism of slide show and animation (what is the difference between before and after)?&lt;br /&gt;
** The slideshow itself, and all animation functionality are implemented in the [[Slideshow]] module. (What is the meeaing of &amp;quot;before&amp;quot; and &amp;quot;after&amp;quot; in the context of this question?)&lt;br /&gt;
* Copy&amp;amp;Paste: Memory structure of clipboard in SD, difference between coping objects inside slides and coping objects from or into other applications like SW, SC? &lt;br /&gt;
** Clipboard between the same application type is done by using core implementations. Clipboard between different application types is done by using xml.&lt;br /&gt;
* Mechanism of designing and implementation of master page and layout style in presentation (CL)&lt;br /&gt;
** Master pages and layout styles are already implemented in OOo.&lt;br /&gt;
&lt;br /&gt;
* Flash Export:  (CL)&lt;br /&gt;
** Difference between the export of the simple character and the complex character?&lt;br /&gt;
*** Simple characters are exported using the font tags of the flash format, complex characters are exported as polygons.&lt;br /&gt;
** The implementation of the Polygon in VCL. Such as the EM square，Body，Ascent and Descent to realize of the glyph?&lt;br /&gt;
*** This question needs more data as the implementation of the Polygon in VCl itself has nothing to do with glyphs. It is only used to represend glyphs.&lt;br /&gt;
** The custom animation will be lost after the slides being exported into the swf. What cause it? There is no support to export the animation, is there? Do you have any plan to consummate it? And what&amp;#039;s your purpose in this area?&lt;br /&gt;
*** It is caused by the absence of an implementation that exports this particular feature. There is currently no assigned developer for the task to add this feature to the flash export. One developer from Redflag is activly contributing to the flash export.&lt;br /&gt;
&lt;br /&gt;
==Application, Calc==&lt;br /&gt;
* How are the areas for charts recognized, and how does the update notification work? (NN)&lt;br /&gt;
** Note that much of this has changed for the new chart. Don&amp;#039;t make any changes based on older versions (before SRC680m213).&lt;br /&gt;
** The chart implementation uses the UNO API (XDataProvider) to get data sequence objects for each data series, and registers itself as modify listener with these objects.&lt;br /&gt;
** For the time when a chart object hasn&amp;#039;t been loaded yet, Calc has its own internal listener (ScChartListener) to load the chart if its data is changed.&lt;br /&gt;
* Relationship between cells, sheets and workbooks (class diagram) (NN)&lt;br /&gt;
** The core implementation of the document is class ScDocument. It has an array of pointers to ScTable (implementation of a sheet). Each sheet has a fixed-size array of ScColumn objects. Each ScColumn object holds the cells in one column.&lt;br /&gt;
** The cells are implemented by base class ScBaseCell and derived classes:&lt;br /&gt;
*** ScNoteCell (empty except for note and listeners)&lt;br /&gt;
*** ScValueCell (constant numeric value)&lt;br /&gt;
*** ScStringCell (simple text)&lt;br /&gt;
*** ScEditCell (formatted or multi-paragraph text)&lt;br /&gt;
*** ScFormulaCell (formula)&lt;br /&gt;
* Copy&amp;amp;Paste: What&amp;#039;s happening on Copy directly, and later if someone pastes into same spreadsheet or other application (NN)&lt;br /&gt;
** Implementation of copy for cells is at ScViewFunc::CopyToClip. The cells are copied into an internal object (ScDocument), then a ScTransferObj is created as the interface to the clipboard.&lt;br /&gt;
** Pasting into Calc copies the cells directly from the internal ScDocument object. Clipboard data in other formats for external applications is created on demand by ScTransferObj (ScTransferObj::GetData).&lt;br /&gt;
&lt;br /&gt;
==Application, Database==&lt;br /&gt;
* Why was the dbase driver engineered into file_based driver? And compared with the text/csv driver, what are the advantages of it in OOo&amp;#039;s database, and how it was being designed in OOo&amp;#039;s database?&lt;br /&gt;
** The &amp;quot;file&amp;quot; driver is not an own driver, it&amp;#039;s a framework for, well, file-based databases, where a single file represents a table, and all such files in a given directory comprise the database. Both the text/csv driver and the dBase driver use this framework.&lt;br /&gt;
** The advantage of the dBase driver over the text/csv driver is that the former can read dBase files, while the latter can&amp;#039;t.&lt;br /&gt;
** What do you mean with &amp;quot;was being designed&amp;quot;?&lt;br /&gt;
* What are the project&amp;#039;s short-term plan or the direction of development now?&lt;br /&gt;
** There are two areas which we currently mainly focus on: The new report designer which will be part of OpenOffice.org 2.3, and improved programmability of Base, where the first step is to allow embedding macros in database document.&lt;br /&gt;
* In the project named &amp;quot;Native, cross-platform access to MS Access databases&amp;quot;, what is the current solution? Is there anyone beginning to re-engineer the MDB format himself?&lt;br /&gt;
** The current solution is employing  [http://mdbtools.sourceforge.net/ MDB-Tools], a third-party product which allows access to .mdb files. The driver based on MDB-Tools is in [http://eis.services.openoffice.org/EIS2/cws.ShowCWS?logon=true&amp;amp;Id=2959&amp;amp;Path=SRC680%2Fmdbdriver02 alpha state], and still has serious shortcomings. The project itself is currently stalled, nobody is actively working on it. Also, nobody is working on doing a reverse-engineering of the MSA file format. If somebody wants to do this, we should seriously investigate whether it makes more sense to support and improve existing reverse engineering efforts, namely MDB-Tools.&lt;br /&gt;
&lt;br /&gt;
==Application, Chart2==&lt;br /&gt;
* Description of the Chart2 module: [http://graphics.openoffice.org/chart/chart2codestructure.html Code Structure of chart2]&lt;br /&gt;
&lt;br /&gt;
==General Questions==&lt;br /&gt;
* Which are the common threads started at start up time and used by all OOo applications at runtime, and what are their functions? ([[KR]])?&lt;br /&gt;
: A first over regarding the threads can be found here: [[Effort/Implement_Basic_Threading-Architecture#Threads]] More to come ...&lt;br /&gt;
* Structure of VCL? See [[Sort_of_documentation_about_VCL_around_Native_Mac_OS_X_port]]&lt;br /&gt;
** A general overview about VCL was created by Eric Bachard, please have a look [http://wiki.services.openoffice.org/wiki/User:Ericb#Sort_of_documentation_about_VCL_around_Native_Mac_OS_X_port here]&lt;br /&gt;
* [[TextRenderingProcess|Text rendering process]]&lt;br /&gt;
* Memory Management (MT/MHU)&lt;br /&gt;
* How to improve stability, and where to start? Beside doing thorough QA, you might use tools like [http://tools.www.openoffice.org/debugging/usingvalgrind.sxw Valgrind] or [http://tools.openoffice.org/files/documents/15/872/BoundsChecker.html BoundsChecker]&lt;br /&gt;
* How to improve performance, and where to start? Use a [http://en.wikipedia.org/wiki/Performance_analysis profiler] to analyze the runtime behavior of the code that you want to improve.&lt;br /&gt;
* Which code of OOo is responsible for the VBA Macro parse? How are they implemented?&lt;br /&gt;
** This is done by a hard coded parser in basic/source/comp&lt;br /&gt;
* How is the code implemented to fulfill the specification of Unicode and gb2312 (SB):  Follow the source code links for &amp;amp;ldquo;UTF7&amp;amp;ldquo; and &amp;amp;ldquo;UTF8&amp;amp;ldquo; (Unicode) and &amp;amp;ldquo;EUC_CN&amp;amp;rdquo; (GB2312) in [http://porting.openoffice.org/source/browse/porting/sal/textenc/textenc.cxx?rev=1.6&amp;amp;view=markup sal/textenc/textenc.cxx:1.6].&lt;br /&gt;
* How/where is the Boost library used? See [[boost]] for an overview.&lt;br /&gt;
* The process of SVG protraction and SVG parse. The relationship between controller protraction and the resource of the controller. (SJ)&lt;br /&gt;
* Mozilla and ActiveX plugins (MAV)&lt;br /&gt;
* Which internet protocols are supported in OOo, and what can be improved to the network ability of OOo? (KSO)&lt;br /&gt;
&lt;br /&gt;
==Feature Questions==&lt;br /&gt;
* Currently a document can only be processed by one of the OOo applications - what about having just one application processing all kind of documents?&lt;br /&gt;
* Are there any plans to integrate a desktop search engine? (Could be done as an extension)&lt;br /&gt;
* Any plans to introduce classes comparable to CObject and CWinApp in MFC? (???)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Developer_Documentation]]&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Developers_FAQ&amp;diff=39332</id>
		<title>Developers FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Developers_FAQ&amp;diff=39332"/>
		<updated>2007-07-16T12:55:33Z</updated>

		<summary type="html">&lt;p&gt;Mav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Developers FAQ is a collection from different questions asked by Developers who are new to OpenOffice.org:&lt;br /&gt;
&lt;br /&gt;
This is work in progress, the developer mentioned behind the question will write the answer soon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Framework==&lt;br /&gt;
* Description of the SFX2 framework? (MBA)&lt;br /&gt;
* There are the roles of the different shells and views? See [[Framework/Article/Implementation_of_the_Dispatch_API_In_SFX2|Implementation of the Dispatch API In SFX2]]&lt;br /&gt;
* Explanation of the dispatch/interceptor mechanism / command handling? See [[Framework/Article/Implementation_of_the_Dispatch_API_In_SFX2|Implementation of the Dispatch API In SFX2]]&lt;br /&gt;
* How is the slot mechanism implemented, and how is the listener and broadcast mechanism implemented? See [[Framework/Article/Implementation_of_the_Dispatch_API_In_SFX2|Implementation of the Dispatch API In SFX2]]&lt;br /&gt;
* Generic user interface: How does the framework implement the interface management, how to load toolbar, and how to implement berth area? See [[Framework/Article/General_Architecture_Of_The_Framework_User_Interface_Implementation|General Architecture of the Framework User Interface]]&lt;br /&gt;
* Filter configuration&lt;br /&gt;
** [http://api.openoffice.org/docs/DevelopersGuide/OfficeDev/OfficeDev.xhtml#1_2_4_Integrating_Import_and_Export_Filters Developer&amp;#039;s Guide 7.2.4  Integrating Import and Export Filters]&lt;br /&gt;
** Note: Description of the used configuration format in XML is outdated.&lt;br /&gt;
* API for accessing OOo package format&lt;br /&gt;
** http://api.openoffice.org/docs/common/ref/com/sun/star/embed/Storage.html&lt;br /&gt;
* Embedding&lt;br /&gt;
** http://wiki.services.openoffice.org/wiki/Framework/Article/General_Architecture_Of_Documents_Embedding&lt;br /&gt;
* Templates (MAV)&lt;br /&gt;
* Add-ons / Extensions support&lt;br /&gt;
** [[Framework/WorkInProgress/Addon_Menu_Toolbar_Merging|Support merging into the Office menu bar/toolbars.]]&lt;br /&gt;
** [[Framework/Article/Generic_UNO_Interfaces_for_complex_toolbar_controls|Complex toolbar controls for add-ons.]]&lt;br /&gt;
** [http://api.openoffice.org/docs/DevelopersGuide/Components/Components.xhtml#1_7_3_Add-Ons Developer&amp;#039;s Guide 4.7.3 Add-ons]&lt;br /&gt;
** Add-on examples with sources (http://framework.openoffice.org/servlets/ProjectDocumentList?folderID=226&amp;amp;expandFolder=226&amp;amp;folderID=72)  &lt;br /&gt;
* The general part of the document storing/loading process (MAV)&lt;br /&gt;
&lt;br /&gt;
==[http://udk.openoffice.org UDK]==&lt;br /&gt;
* Mechanisms of Multi-Platform support ([[KR]]) &lt;br /&gt;
:I assume this means multiple language support, please see [[Uno/Article/Working_with_Environments%2C_Mappings_%26_Objects|Working with Environments, Mappings &amp;amp; Objects]] .&lt;br /&gt;
* How to communicate with other OOo components, and how to implement a bridge ([[KR]]) &lt;br /&gt;
: There is a tutorial for implementing C++ bridges, please see http://udk.openoffice.org/cpp/man/cpp_bridges.html . Most [[Uno/Binary|Binary Uno]] bridges are implemented in the [[Uno/Binary/Module/bridges|bridges]] module.&lt;br /&gt;
* [[Uno/PyUno|Python Uno]] components may be run within the OOo process - how can they be called from [[Java]], [[C++]] or [[BASIC|StarBasic]]? ([[KR]])&lt;br /&gt;
: [[Uno/PyUno|Python Uno]] components may be accessed like any other component, e.g. by doing a &amp;quot;createInstance&amp;quot; with a service which is implemented in [[Uno/PyUno|Python Uno]].&lt;br /&gt;
* The relationship between [[Uno]], COM+, CORBA ([[KR]])&lt;br /&gt;
: For a comparison between [[Uno]] and CORBA please see http://udk.openoffice.org/common/man/comparison_uno_corba.html , though [[Uno]] nowadays does support multiple inheritance. Also there was an effort, which unfortunately did not complete, do implement a [[Uno]] CORBA bridge, please see http://udk.openoffice.org/common/man/concept/uno_corba.html .&lt;br /&gt;
: There is no document regarding [[Uno]] and (D)COM+. [[Uno]] has some similarities with COM+:&lt;br /&gt;
:* &amp;quot;queryInterface&amp;quot;&lt;br /&gt;
:* Language agnostic&lt;br /&gt;
:* &amp;quot;Apartments&amp;quot;, please see the [[Uno/Spec/Threading-Model|Uno Threading-Model]] for details.&lt;br /&gt;
:* Components&lt;br /&gt;
:* Remote transparency&lt;br /&gt;
&lt;br /&gt;
==Application, Writer==&lt;br /&gt;
* Structure of tables? [[Writer_Core_And_Layout]]&lt;br /&gt;
* Mechanism/Implementation of Undo? [[Writer_Core_And_Layout]]&lt;br /&gt;
* Mechanism/Implementation of Frames, relationship? [[Writer_Core_And_Layout]]&lt;br /&gt;
* Class structure of SwNode, SwNodes, SwNodeIndex, ..., relationship? [[Writer_Core_And_Layout]]&lt;br /&gt;
* The relationship between the class ViewShell and SwDoc (OS)&lt;br /&gt;
The ViewShell is created as indirect member of the SwPagePreview or as base class of SwWrtShell, SwFEShell, SwEditShell, SwCrsrShell as member of the SwView. This stack of shells provides access from SwView/SwPagePreview to the document. The ViewShell mostly for output (printing, painting) and the others for cursor travelling and content modification.&lt;br /&gt;
&lt;br /&gt;
==Application, Draw/Impress==&lt;br /&gt;
* The mechanism of slide show and animation (what is the difference between before and after)?&lt;br /&gt;
** The slideshow itself, and all animation functionality are implemented in the [[Slideshow]] module. (What is the meeaing of &amp;quot;before&amp;quot; and &amp;quot;after&amp;quot; in the context of this question?)&lt;br /&gt;
* Copy&amp;amp;Paste: Memory structure of clipboard in SD, difference between coping objects inside slides and coping objects from or into other applications like SW, SC? &lt;br /&gt;
** Clipboard between the same application type is done by using core implementations. Clipboard between different application types is done by using xml.&lt;br /&gt;
* Mechanism of designing and implementation of master page and layout style in presentation (CL)&lt;br /&gt;
** Master pages and layout styles are already implemented in OOo.&lt;br /&gt;
&lt;br /&gt;
* Flash Export:  (CL)&lt;br /&gt;
** Difference between the export of the simple character and the complex character?&lt;br /&gt;
*** Simple characters are exported using the font tags of the flash format, complex characters are exported as polygons.&lt;br /&gt;
** The implementation of the Polygon in VCL. Such as the EM square，Body，Ascent and Descent to realize of the glyph?&lt;br /&gt;
*** This question needs more data as the implementation of the Polygon in VCl itself has nothing to do with glyphs. It is only used to represend glyphs.&lt;br /&gt;
** The custom animation will be lost after the slides being exported into the swf. What cause it? There is no support to export the animation, is there? Do you have any plan to consummate it? And what&amp;#039;s your purpose in this area?&lt;br /&gt;
*** It is caused by the absence of an implementation that exports this particular feature. There is currently no assigned developer for the task to add this feature to the flash export. One developer from Redflag is activly contributing to the flash export.&lt;br /&gt;
&lt;br /&gt;
==Application, Calc==&lt;br /&gt;
* How are the areas for charts recognized, and how does the update notification work? (NN)&lt;br /&gt;
** Note that much of this has changed for the new chart. Don&amp;#039;t make any changes based on older versions (before SRC680m213).&lt;br /&gt;
** The chart implementation uses the UNO API (XDataProvider) to get data sequence objects for each data series, and registers itself as modify listener with these objects.&lt;br /&gt;
** For the time when a chart object hasn&amp;#039;t been loaded yet, Calc has its own internal listener (ScChartListener) to load the chart if its data is changed.&lt;br /&gt;
* Relationship between cells, sheets and workbooks (class diagram) (NN)&lt;br /&gt;
** The core implementation of the document is class ScDocument. It has an array of pointers to ScTable (implementation of a sheet). Each sheet has a fixed-size array of ScColumn objects. Each ScColumn object holds the cells in one column.&lt;br /&gt;
** The cells are implemented by base class ScBaseCell and derived classes:&lt;br /&gt;
*** ScNoteCell (empty except for note and listeners)&lt;br /&gt;
*** ScValueCell (constant numeric value)&lt;br /&gt;
*** ScStringCell (simple text)&lt;br /&gt;
*** ScEditCell (formatted or multi-paragraph text)&lt;br /&gt;
*** ScFormulaCell (formula)&lt;br /&gt;
* Copy&amp;amp;Paste: What&amp;#039;s happening on Copy directly, and later if someone pastes into same spreadsheet or other application (NN)&lt;br /&gt;
** Implementation of copy for cells is at ScViewFunc::CopyToClip. The cells are copied into an internal object (ScDocument), then a ScTransferObj is created as the interface to the clipboard.&lt;br /&gt;
** Pasting into Calc copies the cells directly from the internal ScDocument object. Clipboard data in other formats for external applications is created on demand by ScTransferObj (ScTransferObj::GetData).&lt;br /&gt;
&lt;br /&gt;
==Application, Database==&lt;br /&gt;
* Why was the dbase driver engineered into file_based driver? And compared with the text/csv driver, what are the advantages of it in OOo&amp;#039;s database, and how it was being designed in OOo&amp;#039;s database?&lt;br /&gt;
** The &amp;quot;file&amp;quot; driver is not an own driver, it&amp;#039;s a framework for, well, file-based databases, where a single file represents a table, and all such files in a given directory comprise the database. Both the text/csv driver and the dBase driver use this framework.&lt;br /&gt;
** The advantage of the dBase driver over the text/csv driver is that the former can read dBase files, while the latter can&amp;#039;t.&lt;br /&gt;
** What do you mean with &amp;quot;was being designed&amp;quot;?&lt;br /&gt;
* What are the project&amp;#039;s short-term plan or the direction of development now?&lt;br /&gt;
** There are two areas which we currently mainly focus on: The new report designer which will be part of OpenOffice.org 2.3, and improved programmability of Base, where the first step is to allow embedding macros in database document.&lt;br /&gt;
* In the project named &amp;quot;Native, cross-platform access to MS Access databases&amp;quot;, what is the current solution? Is there anyone beginning to re-engineer the MDB format himself?&lt;br /&gt;
** The current solution is employing  [http://mdbtools.sourceforge.net/ MDB-Tools], a third-party product which allows access to .mdb files. The driver based on MDB-Tools is in [http://eis.services.openoffice.org/EIS2/cws.ShowCWS?logon=true&amp;amp;Id=2959&amp;amp;Path=SRC680%2Fmdbdriver02 alpha state], and still has serious shortcomings. The project itself is currently stalled, nobody is actively working on it. Also, nobody is working on doing a reverse-engineering of the MSA file format. If somebody wants to do this, we should seriously investigate whether it makes more sense to support and improve existing reverse engineering efforts, namely MDB-Tools.&lt;br /&gt;
&lt;br /&gt;
==Application, Chart2==&lt;br /&gt;
* Description of the Chart2 module: [http://graphics.openoffice.org/chart/chart2codestructure.html Code Structure of chart2]&lt;br /&gt;
&lt;br /&gt;
==General Questions==&lt;br /&gt;
* Which are the common threads started at start up time and used by all OOo applications at runtime, and what are their functions? ([[KR]])?&lt;br /&gt;
: A first over regarding the threads can be found here: [[Effort/Implement_Basic_Threading-Architecture#Threads]] More to come ...&lt;br /&gt;
* Structure of VCL? See [[Sort_of_documentation_about_VCL_around_Native_Mac_OS_X_port]]&lt;br /&gt;
** A general overview about VCL was created by Eric Bachard, please have a look [http://wiki.services.openoffice.org/wiki/User:Ericb#Sort_of_documentation_about_VCL_around_Native_Mac_OS_X_port here]&lt;br /&gt;
* [[TextRenderingProcess|Text rendering process]]&lt;br /&gt;
* Memory Management (MT/MHU)&lt;br /&gt;
* How to improve stability, and where to start? Beside doing thorough QA, you might use tools like [http://tools.www.openoffice.org/debugging/usingvalgrind.sxw Valgrind] or [http://tools.openoffice.org/files/documents/15/872/BoundsChecker.html BoundsChecker]&lt;br /&gt;
* How to improve performance, and where to start? Use a [http://en.wikipedia.org/wiki/Performance_analysis profiler] to analyze the runtime behavior of the code that you want to improve.&lt;br /&gt;
* Which code of OOo is responsible for the VBA Macro parse? How are they implemented?&lt;br /&gt;
** This is done by a hard coded parser in basic/source/comp&lt;br /&gt;
* How is the code implemented to fulfill the specification of Unicode and gb2312 (SB):  Follow the source code links for &amp;amp;ldquo;UTF7&amp;amp;ldquo; and &amp;amp;ldquo;UTF8&amp;amp;ldquo; (Unicode) and &amp;amp;ldquo;EUC_CN&amp;amp;rdquo; (GB2312) in [http://porting.openoffice.org/source/browse/porting/sal/textenc/textenc.cxx?rev=1.6&amp;amp;view=markup sal/textenc/textenc.cxx:1.6].&lt;br /&gt;
* How/where is the Boost library used? See [[boost]] for an overview.&lt;br /&gt;
* The process of SVG protraction and SVG parse. The relationship between controller protraction and the resource of the controller. (SJ)&lt;br /&gt;
* Mozilla and ActiveX plugins (MAV)&lt;br /&gt;
* Which internet protocols are supported in OOo, and what can be improved to the network ability of OOo? (KSO)&lt;br /&gt;
&lt;br /&gt;
==Feature Questions==&lt;br /&gt;
* Currently a document can only be processed by one of the OOo applications - what about having just one application processing all kind of documents?&lt;br /&gt;
* Are there any plans to integrate a desktop search engine? (Could be done as an extension)&lt;br /&gt;
* Any plans to introduce classes comparable to CObject and CWinApp in MFC? (???)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Developer_Documentation]]&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Framework/Article/General_Architecture_Of_Documents_Embedding&amp;diff=39331</id>
		<title>Framework/Article/General Architecture Of Documents Embedding</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Framework/Article/General_Architecture_Of_Documents_Embedding&amp;diff=39331"/>
		<updated>2007-07-16T12:54:54Z</updated>

		<summary type="html">&lt;p&gt;Mav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is a very short description of the general architecture of the documents embedding in OpenOffice.org2.x from API point of view.&lt;br /&gt;
&lt;br /&gt;
== The access to an embedded objects in document ==&lt;br /&gt;
&lt;br /&gt;
The following articles could be helpful to understand the possibilities to access embedded objects from different document types, the documentation is a little bit outdated so please see the comments to each link.&lt;br /&gt;
&lt;br /&gt;
* [http://api.openoffice.org/docs/DevelopersGuide/Text/Text.xhtml#1_3_10_3_Embedded_Objects Embedded objects in Writer document]&lt;br /&gt;
** Starting from OpenOffice.org2.1 it is possible to use [http://api.openoffice.org/docs/common/ref/com/sun/star/document/XEmbeddedObjectSupplier2.html com.sun.star.document.XEmbeddedObjectSupplier2] interface to get access to the object using the new embedding API&lt;br /&gt;
* [http://api.openoffice.org/docs/DevelopersGuide/Charts/Charts.xhtml#1_2_1_2_Creating_a_Chart_OLE_Object_in_Draw_and_Impress Embedded chart in Draw and Impress documents]&lt;br /&gt;
** Other types of embedded objects can be inserted in the same way, it is enough just to use the different Class ID.&lt;br /&gt;
** Similar way can be used to insert/access the objects in Calc&lt;br /&gt;
** Starting from OpenOffice.org2.1 it is possible to get access to the new embedding API using &amp;quot;EmbeddedObject&amp;quot; property&lt;br /&gt;
&lt;br /&gt;
The main interface implemented by any embedded object and allowing to control the embedded object is [http://api.openoffice.org/docs/common/ref/com/sun/star/embed/XEmbeddedObject.html com.sun.star.embed.XEmbeddedObject]. Please see the API documentation for more details.&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Framework/Article/General_Architecture_Of_Documents_Embedding&amp;diff=39330</id>
		<title>Framework/Article/General Architecture Of Documents Embedding</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Framework/Article/General_Architecture_Of_Documents_Embedding&amp;diff=39330"/>
		<updated>2007-07-16T12:53:10Z</updated>

		<summary type="html">&lt;p&gt;Mav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is a very short description of the general architecture of the documents embedding in OpenOffice.org2.x from API point of view.&lt;br /&gt;
&lt;br /&gt;
== The access to an embedded objects in document ==&lt;br /&gt;
&lt;br /&gt;
The following articles could be helpful to understand the possibilities to access embedded objects from different document types&lt;br /&gt;
* [http://api.openoffice.org/docs/DevelopersGuide/Text/Text.xhtml#1_3_10_3_Embedded_Objects Embedded objects in Writer document]&lt;br /&gt;
** Starting from OpenOffice.org2.1 it is possible to use [http://api.openoffice.org/docs/common/ref/com/sun/star/document/XEmbeddedObjectSupplier2.html com.sun.star.document.XEmbeddedObjectSupplier2] interface to get access to the object using the new embedding API&lt;br /&gt;
* [http://api.openoffice.org/docs/DevelopersGuide/Charts/Charts.xhtml#1_2_1_2_Creating_a_Chart_OLE_Object_in_Draw_and_Impress Embedded chart in Draw and Impress documents]&lt;br /&gt;
** Other types of embedded objects can be inserted in the same way, it is enough just to use the different Class ID.&lt;br /&gt;
** Similar way can be used to insert/access the objects in Calc&lt;br /&gt;
** Starting from OpenOffice.org2.1 it is possible to get access to the new embedding API using &amp;quot;EmbeddedObject&amp;quot; property&lt;br /&gt;
&lt;br /&gt;
The main interface implemented by any embedded object and allowing to control the embedded object is [http://api.openoffice.org/docs/common/ref/com/sun/star/embed/XEmbeddedObject.html com.sun.star.embed.XEmbeddedObject]. Please see the API documentation for more details.&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Developers_FAQ&amp;diff=38785</id>
		<title>Developers FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Developers_FAQ&amp;diff=38785"/>
		<updated>2007-07-13T14:23:37Z</updated>

		<summary type="html">&lt;p&gt;Mav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Developers FAQ is a collection from different questions asked by Developers who are new to OpenOffice.org:&lt;br /&gt;
&lt;br /&gt;
This is work in progress, the developer mentioned behind the question will write the answer soon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Framework==&lt;br /&gt;
* Description of the SFX2 framework? (MBA)&lt;br /&gt;
* There are the roles of the different shells and views? See [[Framework/Article/Implementation_of_the_Dispatch_API_In_SFX2|Implementation of the Dispatch API In SFX2]]&lt;br /&gt;
* Explanation of the dispatch/interceptor mechanism / command handling? See [[Framework/Article/Implementation_of_the_Dispatch_API_In_SFX2|Implementation of the Dispatch API In SFX2]]&lt;br /&gt;
* How is the slot mechanism implemented, and how is the listener and broadcast mechanism implemented? See [[Framework/Article/Implementation_of_the_Dispatch_API_In_SFX2|Implementation of the Dispatch API In SFX2]]&lt;br /&gt;
* Generic user interface: How does the framework implement the interface management, how to load toolbar, and how to implement berth area? See [[Framework/Article/General_Architecture_Of_The_Framework_User_Interface_Implementation|General Architecture of the Framework User Interface]]&lt;br /&gt;
* Filter configuration&lt;br /&gt;
** [http://api.openoffice.org/docs/DevelopersGuide/OfficeDev/OfficeDev.xhtml#1_2_4_Integrating_Import_and_Export_Filters Developer&amp;#039;s Guide 7.2.4  Integrating Import and Export Filters]&lt;br /&gt;
** Note: Description of the used configuration format in XML is outdated.&lt;br /&gt;
* API for accessing OOo package format&lt;br /&gt;
** http://api.openoffice.org/docs/common/ref/com/sun/star/embed/Storage.html&lt;br /&gt;
* Embedding (MAV)&lt;br /&gt;
* Templates (MAV)&lt;br /&gt;
* Add-ons / Extensions support&lt;br /&gt;
** [[Framework/WorkInProgress/Addon_Menu_Toolbar_Merging|Support merging into the Office menu bar/toolbars.]]&lt;br /&gt;
** [[Framework/Article/Generic_UNO_Interfaces_for_complex_toolbar_controls|Complex toolbar controls for add-ons.]]&lt;br /&gt;
** [http://api.openoffice.org/docs/DevelopersGuide/Components/Components.xhtml#1_7_3_Add-Ons Developer&amp;#039;s Guide 4.7.3 Add-ons]&lt;br /&gt;
** Add-on examples with sources (http://framework.openoffice.org/servlets/ProjectDocumentList?folderID=226&amp;amp;expandFolder=226&amp;amp;folderID=72)  &lt;br /&gt;
* The general part of the document storing/loading process (MAV)&lt;br /&gt;
&lt;br /&gt;
==[http://udk.openoffice.org UDK]==&lt;br /&gt;
* Mechanisms of Multi-Platform support ([[KR]]) &lt;br /&gt;
:I assume this means multiple language support, please see [[Uno/Article/Working_with_Environments%2C_Mappings_%26_Objects|Working with Environments, Mappings &amp;amp; Objects]] .&lt;br /&gt;
* How to communicate with other OOo components, and how to implement a bridge ([[KR]]) &lt;br /&gt;
: There is a tutorial for implementing C++ bridges, please see http://udk.openoffice.org/cpp/man/cpp_bridges.html . Most [[Uno/Binary|Binary Uno]] bridges are implemented in the [[Uno/Binary/Module/bridges|bridges]] module.&lt;br /&gt;
* [[Uno/PyUno|Python Uno]] components may be run within the OOo process - how can they be called from [[Java]], [[C++]] or [[BASIC|StarBasic]]? ([[KR]])&lt;br /&gt;
: [[Uno/PyUno|Python Uno]] components may be accessed like any other component, e.g. by doing a &amp;quot;createInstance&amp;quot; with a service which is implemented in [[Uno/PyUno|Python Uno]].&lt;br /&gt;
* The relationship between [[Uno]], COM+, CORBA ([[KR]])&lt;br /&gt;
: For a comparison between [[Uno]] and CORBA please see http://udk.openoffice.org/common/man/comparison_uno_corba.html , though [[Uno]] nowadays does support multiple inheritance. Also there was an effort, which unfortunately did not complete, do implement a [[Uno]] CORBA bridge, please see http://udk.openoffice.org/common/man/concept/uno_corba.html .&lt;br /&gt;
: There is no document regarding [[Uno]] and (D)COM+. [[Uno]] has some similarities with COM+:&lt;br /&gt;
:* &amp;quot;queryInterface&amp;quot;&lt;br /&gt;
:* Language agnostic&lt;br /&gt;
:* &amp;quot;Apartments&amp;quot;, please see the [[Uno/Spec/Threading-Model|Uno Threading-Model]] for details.&lt;br /&gt;
:* Components&lt;br /&gt;
:* Remote transparency&lt;br /&gt;
&lt;br /&gt;
==Application, Writer==&lt;br /&gt;
* Structure of tables? [[Writer_Core_And_Layout]]&lt;br /&gt;
* Mechanism/Implementation of Undo? [[Writer_Core_And_Layout]]&lt;br /&gt;
* Mechanism/Implementation of Frames, relationship? [[Writer_Core_And_Layout]]&lt;br /&gt;
* Class structure of SwNode, SwNodes, SwNodeIndex, ..., relationship? [[Writer_Core_And_Layout]]&lt;br /&gt;
* The relationship between the class ViewShell and SwDoc (OS)&lt;br /&gt;
&lt;br /&gt;
==Application, Draw/Impress==&lt;br /&gt;
* The mechanism of slide show and animation (what is the difference between before and after)?&lt;br /&gt;
** The slideshow itself, and all animation functionality are implemented in the [[Slideshow]] module. (What is the meeaing of &amp;quot;before&amp;quot; and &amp;quot;after&amp;quot; in the context of this question?)&lt;br /&gt;
* Copy&amp;amp;Paste: Memory structure of clipboard in SD, difference between coping objects inside slides and coping objects from or into other applications like SW, SC? &lt;br /&gt;
** Clipboard between the same application type is done by using core implementations. Clipboard between different application types is done by using xml.&lt;br /&gt;
* Mechanism of designing and implementation of master page and layout style in presentation (CL)&lt;br /&gt;
** Master pages and layout styles are already implemented in OOo.&lt;br /&gt;
&lt;br /&gt;
* Flash Export:  (CL)&lt;br /&gt;
** Difference between the export of the simple character and the complex character?&lt;br /&gt;
*** Simple characters are exported using the font tags of the flash format, complex characters are exported as polygons.&lt;br /&gt;
** The implementation of the Polygon in VCL. Such as the EM square，Body，Ascent and Descent to realize of the glyph?&lt;br /&gt;
*** This question needs more data as the implementation of the Polygon in VCl itself has nothing to do with glyphs. It is only used to represend glyphs.&lt;br /&gt;
** The custom animation will be lost after the slides being exported into the swf. What cause it? There is no support to export the animation, is there? Do you have any plan to consummate it? And what&amp;#039;s your purpose in this area?&lt;br /&gt;
*** It is caused by the absence of an implementation that exports this particular feature. There is currently no assigned developer for the task to add this feature to the flash export. One developer from Redflag is activly contributing to the flash export.&lt;br /&gt;
&lt;br /&gt;
==Application, Calc==&lt;br /&gt;
* How are the areas for charts recognized, and how does the update notification work? (NN)&lt;br /&gt;
* Relationship between cells, sheets and workbooks (class diagram) (NN)&lt;br /&gt;
* Copy&amp;amp;Paste: What&amp;#039;s happening on Copy directly, and later if someone pastes into same spreadsheet or other application (NN)&lt;br /&gt;
&lt;br /&gt;
==Application, Database==&lt;br /&gt;
* Why was the dbase driver engineered into file_based driver? And compared with the text/csv driver, what are the advantages of it in OOo&amp;#039;s database, and how it was being designed in OOo&amp;#039;s database?&lt;br /&gt;
** The &amp;quot;file&amp;quot; driver is not an own driver, it&amp;#039;s a framework for, well, file-based databases, where a single file represents a table, and all such files in a given directory comprise the database. Both the text/csv driver and the dBase driver use this framework.&lt;br /&gt;
** The advantage of the dBase driver over the text/csv driver is that the former can read dBase files, while the latter can&amp;#039;t.&lt;br /&gt;
** What do you mean with &amp;quot;was being designed&amp;quot;?&lt;br /&gt;
* What are the project&amp;#039;s short-term plan or the direction of development now?&lt;br /&gt;
** There are two areas which we currently mainly focus on: The new report designer which will be part of OpenOffice.org 2.3, and improved programmability of Base, where the first step is to allow embedding macros in database document.&lt;br /&gt;
* In the project named &amp;quot;Native, cross-platform access to MS Access databases&amp;quot;, what is the current solution? Is there anyone beginning to re-engineer the MDB format himself?&lt;br /&gt;
** The current solution is employing  [http://mdbtools.sourceforge.net/ MDB-Tools], a third-party product which allows access to .mdb files. The driver based on MDB-Tools is in [http://eis.services.openoffice.org/EIS2/cws.ShowCWS?logon=true&amp;amp;Id=2959&amp;amp;Path=SRC680%2Fmdbdriver02 alpha state], and still has serious shortcomings. The project itself is currently stalled, nobody is actively working on it. Also, nobody is working on doing a reverse-engineering of the MSA file format. If somebody wants to do this, we should seriously investigate whether it makes more sense to support and improve existing reverse engineering efforts, namely MDB-Tools.&lt;br /&gt;
&lt;br /&gt;
==Application, Chart2==&lt;br /&gt;
* Description of the Chart2 module: [http://graphics.openoffice.org/chart/chart2codestructure.html Code Structure of chart2]&lt;br /&gt;
&lt;br /&gt;
==General Questions==&lt;br /&gt;
* Which are the common threads started at start up time and used by all OOo applications at runtime, and what are their functions? ([[KR]])?&lt;br /&gt;
: A first over regarding the threads can be found here: [[Effort/Implement_Basic_Threading-Architecture#Threads]] More to come ...&lt;br /&gt;
* Structure of VCL? See [[Sort_of_documentation_about_VCL_around_Native_Mac_OS_X_port]]&lt;br /&gt;
** A general overview about VCL was created by Eric Bachard, please have a look [http://wiki.services.openoffice.org/wiki/User:Ericb#Sort_of_documentation_about_VCL_around_Native_Mac_OS_X_port here]&lt;br /&gt;
* [[TextRenderingProcess|Text rendering process]]&lt;br /&gt;
* Memory Management (MT/MHU)&lt;br /&gt;
* How to improve stability, and where to start? Beside doing thorough QA, you might use tools like [http://tools.www.openoffice.org/debugging/usingvalgrind.sxw Valgrind] or [http://tools.openoffice.org/files/documents/15/872/BoundsChecker.html BoundsChecker]&lt;br /&gt;
* How to improve performance, and where to start? Use a [http://en.wikipedia.org/wiki/Performance_analysis profiler] to analyze the runtime behavior of the code that you want to improve.&lt;br /&gt;
* Which code of OOo is responsible for the VBA Macro parse? How are they implemented?&lt;br /&gt;
** This is done by a hard coded parser in basic/source/comp&lt;br /&gt;
* How is the code implemented to fulfill the specification of Unicode and gb2312 (SB):  Follow the source code links for &amp;amp;ldquo;UTF7&amp;amp;ldquo; and &amp;amp;ldquo;UTF8&amp;amp;ldquo; (Unicode) and &amp;amp;ldquo;EUC_CN&amp;amp;rdquo; (GB2312) in [http://porting.openoffice.org/source/browse/porting/sal/textenc/textenc.cxx?rev=1.6&amp;amp;view=markup sal/textenc/textenc.cxx:1.6].&lt;br /&gt;
* How/where is the Boost library used? See [[boost]] for an overview.&lt;br /&gt;
* The process of SVG protraction and SVG parse. The relationship between controller protraction and the resource of the controller. (SJ)&lt;br /&gt;
* Mozilla and ActiveX plugins (MAV)&lt;br /&gt;
* Which internet protocols are supported in OOo, and what can be improved to the network ability of OOo? (KSO)&lt;br /&gt;
&lt;br /&gt;
==Feature Questions==&lt;br /&gt;
* Currently a document can only be processed by one of the OOo applications - what about having just one application processing all kind of documents?&lt;br /&gt;
* Are there any plans to integrate a desktop search engine? (Could be done as an extension)&lt;br /&gt;
* Any plans to introduce classes comparable to CObject and CWinApp in MFC? (???)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Developer_Documentation]]&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Developers_FAQ&amp;diff=38783</id>
		<title>Developers FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Developers_FAQ&amp;diff=38783"/>
		<updated>2007-07-13T14:19:47Z</updated>

		<summary type="html">&lt;p&gt;Mav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Developers FAQ is a collection from different questions asked by Developers who are new to OpenOffice.org:&lt;br /&gt;
&lt;br /&gt;
This is work in progress, the developer mentioned behind the question will write the answer soon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Framework==&lt;br /&gt;
* Description of the SFX2 framework? (MBA)&lt;br /&gt;
* There are the roles of the different shells and views? See [[Framework/Article/Implementation_of_the_Dispatch_API_In_SFX2|Implementation of the Dispatch API In SFX2]]&lt;br /&gt;
* Explanation of the dispatch/interceptor mechanism / command handling? See [[Framework/Article/Implementation_of_the_Dispatch_API_In_SFX2|Implementation of the Dispatch API In SFX2]]&lt;br /&gt;
* How is the slot mechanism implemented, and how is the listener and broadcast mechanism implemented? See [[Framework/Article/Implementation_of_the_Dispatch_API_In_SFX2|Implementation of the Dispatch API In SFX2]]&lt;br /&gt;
* Generic user interface: How does the framework implement the interface management, how to load toolbar, and how to implement berth area? See [[Framework/Article/General_Architecture_Of_The_Framework_User_Interface_Implementation|General Architecture of the Framework User Interface]]&lt;br /&gt;
* Filter configuration&lt;br /&gt;
** [http://api.openoffice.org/docs/DevelopersGuide/OfficeDev/OfficeDev.xhtml#1_2_4_Integrating_Import_and_Export_Filters Developer&amp;#039;s Guide 7.2.4  Integrating Import and Export Filters]&lt;br /&gt;
** Note: Description of the used configuration format in XML is outdated.&lt;br /&gt;
* API for accessing OOo package format&lt;br /&gt;
** [http://api.openoffice.org/docs/common/ref/com/sun/star/embed/Storage.html]&lt;br /&gt;
* Embedding (MAV)&lt;br /&gt;
* Templates (MAV)&lt;br /&gt;
* Add-ons / Extensions support&lt;br /&gt;
** [[Framework/WorkInProgress/Addon_Menu_Toolbar_Merging|Support merging into the Office menu bar/toolbars.]]&lt;br /&gt;
** [[Framework/Article/Generic_UNO_Interfaces_for_complex_toolbar_controls|Complex toolbar controls for add-ons.]]&lt;br /&gt;
** [http://api.openoffice.org/docs/DevelopersGuide/Components/Components.xhtml#1_7_3_Add-Ons Developer&amp;#039;s Guide 4.7.3 Add-ons]&lt;br /&gt;
** Add-on examples with sources (http://framework.openoffice.org/servlets/ProjectDocumentList?folderID=226&amp;amp;expandFolder=226&amp;amp;folderID=72)  &lt;br /&gt;
* The general part of the document storing/loading process (MAV)&lt;br /&gt;
&lt;br /&gt;
==[http://udk.openoffice.org UDK]==&lt;br /&gt;
* Mechanisms of Multi-Platform support ([[KR]]) &lt;br /&gt;
:I assume this means multiple language support, please see [[Uno/Article/Working_with_Environments%2C_Mappings_%26_Objects|Working with Environments, Mappings &amp;amp; Objects]] .&lt;br /&gt;
* How to communicate with other OOo components, and how to implement a bridge ([[KR]]) &lt;br /&gt;
: There is a tutorial for implementing C++ bridges, please see http://udk.openoffice.org/cpp/man/cpp_bridges.html . Most [[Uno/Binary|Binary Uno]] bridges are implemented in the [[Uno/Binary/Module/bridges|bridges]] module.&lt;br /&gt;
* [[Uno/PyUno|Python Uno]] components may be run within the OOo process - how can they be called from [[Java]], [[C++]] or [[BASIC|StarBasic]]? ([[KR]])&lt;br /&gt;
: [[Uno/PyUno|Python Uno]] components may be accessed like any other component, e.g. by doing a &amp;quot;createInstance&amp;quot; with a service which is implemented in [[Uno/PyUno|Python Uno]].&lt;br /&gt;
* The relationship between [[Uno]], COM+, CORBA ([[KR]])&lt;br /&gt;
: For a comparison between [[Uno]] and CORBA please see http://udk.openoffice.org/common/man/comparison_uno_corba.html , though [[Uno]] nowadays does support multiple inheritance. Also there was an effort, which unfortunately did not complete, do implement a [[Uno]] CORBA bridge, please see http://udk.openoffice.org/common/man/concept/uno_corba.html .&lt;br /&gt;
: There is no document regarding [[Uno]] and (D)COM+. [[Uno]] has some similarities with COM+:&lt;br /&gt;
:* &amp;quot;queryInterface&amp;quot;&lt;br /&gt;
:* Language agnostic&lt;br /&gt;
:* &amp;quot;Apartments&amp;quot;, please see the [[Uno/Spec/Threading-Model|Uno Threading-Model]] for details.&lt;br /&gt;
:* Components&lt;br /&gt;
:* Remote transparency&lt;br /&gt;
&lt;br /&gt;
==Application, Writer==&lt;br /&gt;
* Structure of tables? [[Writer_Core_And_Layout]]&lt;br /&gt;
* Mechanism/Implementation of Undo? [[Writer_Core_And_Layout]]&lt;br /&gt;
* Mechanism/Implementation of Frames, relationship? [[Writer_Core_And_Layout]]&lt;br /&gt;
* Class structure of SwNode, SwNodes, SwNodeIndex, ..., relationship? [[Writer_Core_And_Layout]]&lt;br /&gt;
* The relationship between the class ViewShell and SwDoc (OS)&lt;br /&gt;
&lt;br /&gt;
==Application, Draw/Impress==&lt;br /&gt;
* The mechanism of slide show and animation (what is the difference between before and after)?&lt;br /&gt;
** The slideshow itself, and all animation functionality are implemented in the [[Slideshow]] module. (What is the meeaing of &amp;quot;before&amp;quot; and &amp;quot;after&amp;quot; in the context of this question?)&lt;br /&gt;
* Copy&amp;amp;Paste: Memory structure of clipboard in SD, difference between coping objects inside slides and coping objects from or into other applications like SW, SC? &lt;br /&gt;
** Clipboard between the same application type is done by using core implementations. Clipboard between different application types is done by using xml.&lt;br /&gt;
* Mechanism of designing and implementation of master page and layout style in presentation (CL)&lt;br /&gt;
** Master pages and layout styles are already implemented in OOo.&lt;br /&gt;
&lt;br /&gt;
* Flash Export:  (CL)&lt;br /&gt;
** Difference between the export of the simple character and the complex character?&lt;br /&gt;
*** Simple characters are exported using the font tags of the flash format, complex characters are exported as polygons.&lt;br /&gt;
** The implementation of the Polygon in VCL. Such as the EM square，Body，Ascent and Descent to realize of the glyph?&lt;br /&gt;
*** This question needs more data as the implementation of the Polygon in VCl itself has nothing to do with glyphs. It is only used to represend glyphs.&lt;br /&gt;
** The custom animation will be lost after the slides being exported into the swf. What cause it? There is no support to export the animation, is there? Do you have any plan to consummate it? And what&amp;#039;s your purpose in this area?&lt;br /&gt;
*** It is caused by the absence of an implementation that exports this particular feature. There is currently no assigned developer for the task to add this feature to the flash export. One developer from Redflag is activly contributing to the flash export.&lt;br /&gt;
&lt;br /&gt;
==Application, Calc==&lt;br /&gt;
* How are the areas for charts recognized, and how does the update notification work? (NN)&lt;br /&gt;
* Relationship between cells, sheets and workbooks (class diagram) (NN)&lt;br /&gt;
* Copy&amp;amp;Paste: What&amp;#039;s happening on Copy directly, and later if someone pastes into same spreadsheet or other application (NN)&lt;br /&gt;
&lt;br /&gt;
==Application, Database==&lt;br /&gt;
* Why was the dbase driver engineered into file_based driver? And compared with the text/csv driver, what are the advantages of it in OOo&amp;#039;s database, and how it was being designed in OOo&amp;#039;s database?&lt;br /&gt;
** The &amp;quot;file&amp;quot; driver is not an own driver, it&amp;#039;s a framework for, well, file-based databases, where a single file represents a table, and all such files in a given directory comprise the database. Both the text/csv driver and the dBase driver use this framework.&lt;br /&gt;
** The advantage of the dBase driver over the text/csv driver is that the former can read dBase files, while the latter can&amp;#039;t.&lt;br /&gt;
** What do you mean with &amp;quot;was being designed&amp;quot;?&lt;br /&gt;
* What are the project&amp;#039;s short-term plan or the direction of development now?&lt;br /&gt;
** There are two areas which we currently mainly focus on: The new report designer which will be part of OpenOffice.org 2.3, and improved programmability of Base, where the first step is to allow embedding macros in database document.&lt;br /&gt;
* In the project named &amp;quot;Native, cross-platform access to MS Access databases&amp;quot;, what is the current solution? Is there anyone beginning to re-engineer the MDB format himself?&lt;br /&gt;
** The current solution is employing  [http://mdbtools.sourceforge.net/ MDB-Tools], a third-party product which allows access to .mdb files. The driver based on MDB-Tools is in [http://eis.services.openoffice.org/EIS2/cws.ShowCWS?logon=true&amp;amp;Id=2959&amp;amp;Path=SRC680%2Fmdbdriver02 alpha state], and still has serious shortcomings. The project itself is currently stalled, nobody is actively working on it. Also, nobody is working on doing a reverse-engineering of the MSA file format. If somebody wants to do this, we should seriously investigate whether it makes more sense to support and improve existing reverse engineering efforts, namely MDB-Tools.&lt;br /&gt;
&lt;br /&gt;
==Application, Chart2==&lt;br /&gt;
* Description of the Chart2 module: [http://graphics.openoffice.org/chart/chart2codestructure.html Code Structure of chart2]&lt;br /&gt;
&lt;br /&gt;
==General Questions==&lt;br /&gt;
* Which are the common threads started at start up time and used by all OOo applications at runtime, and what are their functions? ([[KR]])?&lt;br /&gt;
: A first over regarding the threads can be found here: [[Effort/Implement_Basic_Threading-Architecture#Threads]] More to come ...&lt;br /&gt;
* Structure of VCL? See [[Sort_of_documentation_about_VCL_around_Native_Mac_OS_X_port]]&lt;br /&gt;
** A general overview about VCL was created by Eric Bachard, please have a look [http://wiki.services.openoffice.org/wiki/User:Ericb#Sort_of_documentation_about_VCL_around_Native_Mac_OS_X_port here]&lt;br /&gt;
* [[TextRenderingProcess|Text rendering process]]&lt;br /&gt;
* Memory Management (MT/MHU)&lt;br /&gt;
* How to improve stability, and where to start? Beside doing thorough QA, you might use tools like [http://tools.www.openoffice.org/debugging/usingvalgrind.sxw Valgrind] or [http://tools.openoffice.org/files/documents/15/872/BoundsChecker.html BoundsChecker]&lt;br /&gt;
* How to improve performance, and where to start? Use a [http://en.wikipedia.org/wiki/Performance_analysis profiler] to analyze the runtime behavior of the code that you want to improve.&lt;br /&gt;
* Which code of OOo is responsible for the VBA Macro parse? How are they implemented?&lt;br /&gt;
** This is done by a hard coded parser in basic/source/comp&lt;br /&gt;
* How is the code implemented to fulfill the specification of Unicode and gb2312 (SB):  Follow the source code links for &amp;amp;ldquo;UTF7&amp;amp;ldquo; and &amp;amp;ldquo;UTF8&amp;amp;ldquo; (Unicode) and &amp;amp;ldquo;EUC_CN&amp;amp;rdquo; (GB2312) in [http://porting.openoffice.org/source/browse/porting/sal/textenc/textenc.cxx?rev=1.6&amp;amp;view=markup sal/textenc/textenc.cxx:1.6].&lt;br /&gt;
* How/where is the Boost library used? See [[boost]] for an overview.&lt;br /&gt;
* The process of SVG protraction and SVG parse. The relationship between controller protraction and the resource of the controller. (SJ)&lt;br /&gt;
* Mozilla and ActiveX plugins (MAV)&lt;br /&gt;
* Which internet protocols are supported in OOo, and what can be improved to the network ability of OOo? (KSO)&lt;br /&gt;
&lt;br /&gt;
==Feature Questions==&lt;br /&gt;
* Currently a document can only be processed by one of the OOo applications - what about having just one application processing all kind of documents?&lt;br /&gt;
* Are there any plans to integrate a desktop search engine? (Could be done as an extension)&lt;br /&gt;
* Any plans to introduce classes comparable to CObject and CWinApp in MFC? (???)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Developer_Documentation]]&lt;/div&gt;</summary>
		<author><name>Mav</name></author>
	</entry>
</feed>