Is there a defacto standard on how we can product data using encryption either inside a document, else wrapper/header information around the entire file?
I assume Office 2007 will have some type of encryption available.
Since the document is just a ZIP archive, you can provide encryption protection with a ZIP password. In fact, that's what Office 2007 does when you save a DOCX with a password -- it's just a ZIP password on the entire package. So if you know the password, you can open the document with a ZIP tool or from custom code that uses a ZIP library.
I tried to create a word document using PKZIP and used the password option in PKZIP and trired to open in Word 2007, it did not open in word.
I tried to create a document in WORD 2007 with encryption and password on and it did not let me open in winzip.
I will look in system.io.packaging if this has any password option.
My mistake, guys -- Sanjay is right, the file password in Office Open XML documents is not a standard ZIP password. Office encrypts the entire ZIP file and stores it as a stream in an iStorage.
What is the encryption algorithm used by Office? How can I recognize if an Office file is encrypted, or not (checking if it's a valid ZIP file is one way, but it does not consider the case when the file is corrupt).
I found this white paper on excel,which says that the workbook is encrypted using algorithm,40-bit RC4.
the link is,
http://download.microsoft.com/download/8/d/7/8d7ea200-5370-4f23-bdca-ca1615060ec4/Excel Regulatory White Paper_Final0424.doc
This is for excel,if you can specify the office suite,you want an encryption algorithm for,probably I can try and find out.
How to encrypt an OpenXML document programmatically? Is it inside the Open XML SDK?
I guess, System.IO,Packaging will allow to create parts, relationships and adding streams to the parts. And may not be possible to add this data using System.IO.Packaging.
Since, the password details are stored in xml file, while adding streams to the parts, make sure this data is available in the parts.