Re: OpenSSL upgrade?

2024-03-22 Thread Matthias Seidel

Hi Damjan,

+1 for upgrading OpenSSL, at least for trunk/AOO42X.

That said, I can not estimate if this is an "easy" fix...

Regards,

   Matthias

Am 17.03.24 um 18:42 schrieb Damjan Jovanovic:

Hi

Is there some reason we are still using such an old version of OpenSSL?

>From what I see, these are the modules that depend on OpenSSL:
$ grep -l openssl */prj/build.lst
curl/prj/build.lst
oox/prj/build.lst
openssl/prj/build.lst
python/prj/build.lst
redland/prj/build.lst
ucb/prj/build.lst

curl: is a heavy user of OpenSSL and really should support new versions.
oox: only used by the Standard/Agile encryption, which I successfully
tested against OpenSSL 3 recently.
python: compiles and links against OpenSSL 3.
redland: unknown
ucb: used only by the WebDAV content provider, which I added it to, and
compiles and links against OpenSSL 3, probably already works too.

It seems like an upgrade will be easy?

Regards
Damjan

On Sun, Mar 17, 2024 at 5:03 PM Dave Fisher  wrote:


Hi Damjan,

I know it “opens a big can of worms” and is another issue, but upgrading
to a newer OpenSSL for Trunk and maybe 4.2 would be a very good thing,

Best,
Dave


On Mar 17, 2024, at 4:23 AM, Damjan Jovanovic  wrote:

Also
that ancient OpenSSL version we use internally, 1.0.x, uses
EVP_MD_CTX_create()/destroy() instead of EVP_MD_CTX_new()/free(). Finally
some template function was unhappy about parameter type ambiguity (even
though superior compilers like Clang are perfectly happy), and I had to

add

casts.




smime.p7s
Description: Kryptografische S/MIME-Signatur


Re: MS Office 2010+ "Agile" encrypted OOXML documents are working now!

2024-03-22 Thread Matthias Seidel

Hi All,

Am 19.03.24 um 13:41 schrieb Matthias Seidel:

Hi All,

Am 18.03.24 um 20:01 schrieb Matthias Seidel:

Hi Damjan,

I managed to get it cherry-picked to AOO42X (one older commit was 
missing) and do a build now.


Works great!

That said, it would be fantastic to have that fix in AOO41X but I 
don't dare to cherry-pick it...

AOO41X seems to use dmake in that module, while trunk/AOO42X use gbuild.


Anyone?


Obviously not?

Regards,

   Matthias



Regards,

   Matthias



Thanks again for this work!

Regards,

   Matthias

Am 18.03.24 um 07:10 schrieb Damjan Jovanovic:

That's great. Thank you for testing.

My own tests also show it no longer crashes, both the Standard and 
Agile

encryption are working now :).

On Sun, Mar 17, 2024 at 7:59 PM Matthias Seidel 


wrote:


Hi Damjan, All,

That seems to have fixed the crashes on Windows...

Regards,

 Matthias

Am 17.03.24 um 16:56 schrieb Matthias Seidel:

I am already doing a full build,but hopefully I could pull your last
commit soon enough.

Regards,

    Matthias

Am 17.03.24 um 15:20 schrieb Damjan Jovanovic:

If you haven't done "dmake clean" yet like me, try to "git pull" my
latest
commit, and then in main/instsetoo_native "build --from oox -P2 
-- -P2".


This commit fixes at least one more issue:

commit 244f2bcc921bc5dc45e6c1970e27ac2409c44e17 (HEAD -> trunk,
origin/trunk, origin/HEAD)
Author: Damjan Jovanovic 
Date:   Sun Mar 17 15:56:38 2024 +0200

  Don't allow calls to OpenSSLCipher::blockSize() before the 
cipher

  is initialized.

On Sun, Mar 17, 2024 at 1:24 PM Matthias Seidel

wrote:


WTH, shortly after I sent this mail I could open the files...

Matthias

Am 17.03.24 um 14:22 schrieb Matthias Seidel:

Hi Damjan,

That was fast! ;-)

I can confirm that it builds now on Windows.

When I try to open password protected MS Office 2020+ files (xlsx,
docx) I now get the password dialog

But when I enter the correct password AOO crashes.

Regards,

 Matthias

P.S.: This was a partial build, I will try a complete build now.

Am 17.03.24 um 12:23 schrieb Damjan Jovanovic:
I've fixed this now and it seems to build on Windows too. The 
fixes

are in
these commits, and if they work, should be cherry-picked in 
the given

order:

f65b4e326d91bfe900dc1dd22ece69e3ddd8444a
f3025b08c40161265442c34e2b50bc05aa5388c6
42c0a318a970f6f7f43d26a8397448d5d5b8bd36

There were several problems on Windows. The Visual Studio 2008
compiler
doesn't have the ::std::vector::data() method (even though it
should, it
was part of the C++98/03 standard), I had to use [0] 
instead.

Also
that ancient OpenSSL version we use internally, 1.0.x, uses
EVP_MD_CTX_create()/destroy() instead of EVP_MD_CTX_new()/free().
Finally
some template function was unhappy about parameter type ambiguity
(even
though superior compilers like Clang are perfectly happy), and 
I had

to add
casts.


On Sun, Mar 17, 2024 at 11:15 AM Matthias Seidel

wrote:


Hi Damjan,

You are right, the interesting part is at the beginning:

---

=
Building module oox
=

Entering /cygdrive/c/Source/openoffice/main/oox/prj

cd .. && make -s -r -j1   && make -s -r deliverlog
[ build CXX ] oox/source/core/encryption
encryption.cxx


c:/Source/openoffice/main/oox/inc\oox/helper/openssl_wrapper.hxx(44)

:
error C3861: 'EVP_MD_CTX_new': identifier not found


c:/Source/openoffice/main/oox/inc\oox/helper/openssl_wrapper.hxx(51)

:
error C3861: 'EVP_MD_CTX_free': identifier not found
c:/Source/openoffice/main/oox/source/core/encryption.cxx(100) :
error
C2782: 'bool oox::getFlag(Type,Type)' : template parameter 
'Type' is

ambiguous
c:/Source/openoffice/main/oox/inc\oox/helper/helper.hxx(141) 
: see

declaration of 'oox::getFlag'
    could be 'unsigned int'
    or   'sal_uInt32'
c:/Source/openoffice/main/oox/source/core/encryption.cxx(133) :
error
C2782: 'bool oox::getFlag(Type,Type)' : template parameter 
'Type' is

ambiguous
c:/Source/openoffice/main/oox/inc\oox/helper/helper.hxx(141) 
: see

declaration of 'oox::getFlag'
    could be 'unsigned int'
    or   'sal_uInt32'
c:/Source/openoffice/main/oox/source/core/encryption.cxx(134) :
error
C2782: 'bool oox::getFlag(Type,Type)' : template parameter 
'Type' is

ambiguous
c:/Source/openoffice/main/oox/inc\oox/helper/helper.hxx(141) 
: see

declaration of 'oox::getFlag'
    could be 'unsigned int'
    or   'sal_uInt32'
c:/Source/openoffice/main/oox/source/core/encryption.cxx(210) :
error
C2039: 'data' : is not a member of 'std::vector<_Ty>'
    with
    [
    _Ty=sal_uInt8
    ]
c:/Source/openoffice/main/oox/source/core/encryption.cxx(214) :
error
C2039: 'data' : is not a member of 'std::vector<_Ty>'
    with
    [
    _Ty=sal_uInt8
    ]
c:/Source/openoffice/main/oox/source/core/encryption.cxx(217) :
error
C2039: 'data' : is not a member of 'std::vector<_Ty>'
    with
    [