Please check further up in the log, or run "build" in main/oox again.
That "No rule to make target" happens after other errors break compilation. On Sat, Mar 16, 2024 at 8:38 PM Matthias Seidel <matthias.sei...@hamburg.de> wrote: > Hi Damjan, > > Tried to build trunk on Windows but it stops here: > > make: *** No rule to make target > '/cygdrive/c/Source/openoffice/main/solver/450/ > wntmsci12.pro/workdir/CxxObject/oox/source/core/encryption.o', > needed by > '/cygdrive/c/Source/openoffice/main/solver/450/ > wntmsci12.pro/workdir/LinkTarget/Library/ioox.lib'. > Stop. > dmake: Error code 2, while making 'all' > > 1 module(s): > oox > need(s) to be rebuilt > > Reason(s): > > ERROR: error 65280 occurred while making > /cygdrive/c/Source/openoffice/main/oox/prj > > When you have fixed the errors in that module you can resume the build > by running: > > build --from oox > > Am 16.03.24 um 04:49 schrieb Damjan Jovanovic: > > Hi > > > > Bug 118236 with 7 votes, the inability to open password-protected > > (encrypted) OOXML files from MS Office 2010+, is now fixed in trunk :-) > > > > ---snip--- > > commit 506fa58b1970084a0caacb50b3a805e469be4756 (HEAD -> trunk, > > origin/trunk, origin/HEAD) > > Author: Damjan Jovanovic <dam...@apache.org> > > Date: Sat Mar 2 18:47:05 2024 +0200 > > > > Implement the (MS Office 2010+) OOXML "Agile encryption" support, so > > that we > > can open such password-protected OOXML files. > > > > Adds all the Agile encryption XML tokens and namespaces, and parses > the > > XML > > from EncryptionInfo stream, gets OpenOffice to recognize the file is > > encrypted > > and ask for a password, and successfully decrypts the file if > password > > is > > correct. > > > > Also a number of other fixes and improvements: > > - Sorted main/oox/source/token/tokens.txt so it's in alphabetical > order > > (wrong order might have broken certain tokens?). > > - Refactored how OOXML encryption is generally handled. It's now in > its > > own file. > > - Added logging to the FilterDetect class. It logs to the > office-wide > > default > > logger. > > - Added a flush() method to the BinaryXOutputStream class. > > - Changed FilterDetect to use XMultiComponentFactory and > > XComponentContext > > instead of the deprecated XMultiServiceFactory. > > - Error handling was generally improved. > > - Exception safety and some memory safety (::std::vector instead of > > new[]) > > in all the new code. Memory leaks should not be possible. > > > > Much of the code involved in the decryption was ported from the > > excellent > > Apache POI project, so it's been credited in our NOTICE file. > > > > Patch by: me > > ---snip--- > > > > > > It took much longer than I expected: > > > > The MS-OFFCRYPTO specification was unclear, and plain wrong in some > parts, > > eg. "SHA-1" in the spec but "SHA1" in actual OOXML documents; I've made > our > > code support both. > > > > The "Standard" encryption from MS Office 2007 that we already supported > was > > itself a mess, and much work was needed to refactor and clean up that > code > > before the "Agile" encryption could also be added. > > > > Then XML parsing had to be added, since Agile encryption specifies > settings > > in XML instead of binary like Standard encryption did. XML handling in > > OpenOffice is pretty outdated, with no support for namespaces, but at > least > > the newer "FastParser" does support namespaces and is in fact very fast > > because it converts strings to unique integers, and packs namespaces into > > bit fields, for faster comparisons. I ended up updating the main/oox > > FastParser to support the new Agile encryption namespaces and elements. > > > > MS-OFFCRYPTO also only describes encryption, not decryption, and since we > > can only read OOXML, only decryption matters. > > > > Apache POI code was tremendously helpful in figuring out the decryption > > process. Most of the decryption code I added was just ported directly > from > > theirs, and thus I've added Apache POI to our NOTICE file (please check > > that I've done it correctly). Also several bugs were figured out by > > simultaneously stepping through our code in gdb and their code in > NetBeans, > > and comparing respective values. A big thank you to the Apache POI > > developers, whose OOXML support is still better than ours in many ways! > > > > I used OpenSSL for all the message digest and encryption stuff, both > > because our MD5 and SHA1 algorithms are broken (bug 127661), and because > > Agile encryption requires many digests and ciphers that OpenSSL supports > > but we don't. > > > > Anyway, it works now. All encrypted OOXML files should work, eg. text > > documents, spreadsheets, presentations, etc. > > > > Other issues I am aware of: > > - We only support password encrypted documents. Certificate encrypted > > documents: not yet. ODF 1.3 also added certificate encryption, so maybe > > that's something we should develop together. > > - There are other variations of encryption we still don't support, eg. > the > > "Extensible" encryption, the "RC4 CryptoAPI" encryption, "XOR > obfuscation", > > etc. Apache POI would be a good source for those too. It's unclear to me > > how widely those are used, and whether they are worth implementing. > > - It may need to be rearchitected when we add OOXML writing. > > - A lot of other required cleanups to our code were discovered, will > > discuss those separately. > > > > I've squashed all my work into a single commit, so it can be easily > > cherry-picked to AOO42X and maybe even AOO41X when people are happy with > it. > > > > Regards > > Damjan > > >