/// <summary>
 /// Reads the encryption information and encrypted package
 /// Parses the encryption information
 /// Generates a decrypytion key and validates it against the password
 /// Decrypts the encrypted package and creates and Packaging.Package.
 /// </summary>
 /// <param name="filename">The storage file containing the encrypted package</param>
 /// <param name="password">The password to decrypt the package</param>
 /// <returns>System.IO.MemoryStream instance</returns>
 public MemoryStream DecryptToStream(OleStorage stgRoot, string password)
 {
     return(CreateStream(DecryptToArray(stgRoot, password)));
 }
 /// <summary>
 /// Reads the encryption information and encrypted package
 /// Parses the encryption information
 /// Generates a decrypytion key and validates it against the password
 /// Decrypts the encrypted package and creates and Packaging.Package.
 /// </summary>
 /// <param name="filename">The storage file containing the encrypted package</param>
 /// <param name="password">The password to decrypt the package</param>
 /// <returns>System.IO.Packaging.Package instance</returns>
 public Package DecryptToPackage(OleStorage stgRoot, string password)
 {
     return(CreatePackage(DecryptToArray(stgRoot, password)));
 }