Missing header file ts_local.h in install location.
Tomas Mraz
tomas at openssl.org
Mon Jul 1 08:12:14 UTC 2024
Yes, they should search for TS_VERIFY_CTX_set_certs or
TS_VERIFY_CTX_set_flags (that would work for 1.1.1 as well).
Tomas Mraz, OpenSS
On Fri, 2024-06-28 at 20:04 +0000, BENTLEY Thom wrote:
>
>
>
> Does this Bing CoPilot response suggest that DCMTK’s CMake
> configuration should be searching for a different function name?
>
> The HAVE_OPENSSL_PROTOTYPE_TS_VERIFY_CTS_SET_CERTS is a macro that
> checks for the existence of the TS_VERIFY_CTS_set_certs function in
> OpenSSL1. This function is used to set the server’s certificate chain
> when verifying a TimeStampToken (TST)1.
>
> However, starting from OpenSSL 3.0.0, the correct spelling of the
> function is TS_VERIFY_CTX_set_certs, and the misspelled
> version TS_VERIFY_CTS_set_certs has been retained for compatibility
> reasons, but it is deprecated1.
>
> This could potentially cause issues if DCMTK 3.6.8 is not properly
> configured to handle this change in OpenSSL 3.0.8.
>
>
>
>
>
>
> Thom Bentley| Senior Software Engineer |
> Medidata, a Dassault Systèmes company
>
>
>
> From: Matt Caswell <matt at openssl.org>
> Sent: Friday, June 28, 2024 11:54 AM
> To: BENTLEY Thom <Thom.BENTLEY at 3ds.com>; Tomas Mraz
> <tomas at openssl.org>; openssl-users at openssl.org
> Subject: Re: Missing header file ts_local.h in install location.
>
>
>
> On 28/06/2024 16: 29, BENTLEY Thom via openssl-users wrote: > Thanks.
> Yes, I saw that they became opaque. > The code I’m building works
> fine with 1. 1. 1w but we need to move to > 3. 0. 8 at least. > Here
> are the errors I see. > >
>
>
>
> On 28/06/2024 16:29, BENTLEY Thom via openssl-users wrote:
> > Thanks. Yes, I saw that they became opaque.
> > The code I’m building works fine with 1.1.1w but we need to move to
> > 3.0.8 at least.
> > Here are the errors I see.
> >
> > dcmdsig:
> > 16:34:48:290
> > 19>C:\repos\mmi-director-dcmtk-3.6.8\dcmtk-
> > 3.6.8\dcmsign\libsrc\sitstamp.cc(1342,5): error C2027: use of
> > undefined type 'TS_verify_ctx'
> > 16:34:48:290
> > 19>C:\repos\mmi-director-dcmtk-3.6.8\openssl-
> > 3.0.8\include\openssl\ts.h(405,16):
> > 16:34:48:290 19>see declaration of 'TS_verify_ctx'
>
>
> It looks to me like DCMTK needs updating to use OpenSSL 3.x
>
> This particular error occurs because line 1342 of sitstamp.cc looks
> like
> this:
>
> TS_VERIFY_CTS_set_certs(ctx, NULL);
>
> Earlier on in that file we see this:
>
> #ifndef HAVE_OPENSSL_PROTOTYPE_TS_VERIFY_CTS_SET_CERTS
> #define TS_VERIFY_CTS_set_certs(x,y) ((x)->certs = (y))
> #endif
>
> So if HAVE_OPENSSL_PROTOTYPE_TS_VERIFY_CTS_SET_CERTS isn't defined
> then
> it will attempt to look inside the TS_VERIFY_CTX structure - which is
> not allowed from 1.1.1 onwards because it is opaque.
>
> My guess is the setting of
> HAVE_OPENSSL_PROTOTYPE_TS_VERIFY_CTS_SET_CERTS is going wrong with
> OpenSSL 3.X
>
> It seems to get defined by Cmake/dcmtkPrepare.cmake:
>
> CHECK_FUNCTIONWITHHEADER_EXISTS("TS_VERIFY_CTS_set_certs(0,0)"
> "openssl/ts.h" HAVE_OPENSSL_PROTOTYPE_TS_VERIFY_CTS_SET_CERTS)
>
> Indeed that function header does *not* exist in 3.x because it is
> instead a macro:
>
> # ifndef OPENSSL_NO_DEPRECATED_3_0
> # define TS_VERIFY_CTS_set_certs(ctx, cert)
> TS_VERIFY_CTX_set_certs(ctx,cert)
> # endif
>
> In 1.1.1 this was a full C function so the cmake detection would have
> worked correctly there.
>
> Matt
>
>
>
> >
> > dcmpstat:
> > 16:36:48:689
> > 34>C:\repos\mmi-director-dcmtk-3.6.8\openssl-
> > 3.0.8\include\openssl\types.h(104,30): error C2371: 'EVP_MD_CTX':
> > redefinition; different basic types
> > 16:36:48:753 34>(compiling source file
> > '../../../dcmtk-3.6.8/dcmpstat/libsrc/dvsighdl.cc')
> > 16:36:48:753
> > 34>C:\repos\mmi-director-dcmtk-3.6.8\dcmtk-
> > 3.6.8\dcmsign\include\dcmtk\dcmsign\simdmac.h(39,30):
> > 16:36:48:753 34>see declaration of 'EVP_MD_CTX'
> >
> > dcmtls:
> > 16:35:16:392
> > 26>C:\repos\mmi-director-dcmtk-3.6.8\dcmtk-
> > 3.6.8\dcmtls\libsrc\tlsciphr.cc(238,32): error C2027: use of
> > undefined type 'ssl_ctx_st'
> > 16:35:16:392
> > 26>C:\repos\mmi-director-dcmtk-3.6.8\dcmtk-
> > 3.6.8\dcmtls\include\dcmtk\dcmtls\tlslayer.h(37,8):
> > 16:35:16:392 26>see declaration of 'ssl_ctx_st'
> >
> > **
> >
> > **
> >
> > *Thom Bentley *| Senior Software Engineer |Medidata, a Dassault
> > Systèmes
> > company <http://www.mdsol.com/>
> >
> > *From:*Tomas Mraz <tomas at openssl.org>
> > *Sent:* Friday, June 28, 2024 10:15 AM
> > *To:* BENTLEY Thom <Thom.BENTLEY at 3ds.com>;
> > openssl-users at openssl.org
> > *Subject:* Re: Missing header file ts_local.h in install location.
> >
> > TS_VERIFY_CTX is an opaque structure since version 1. 1. 0. You may
> > not
> > access its members directly. To set them you need to use the
> > various
> > TS_VERIFY_CTX_set* functions. If there are any particular accessors
> > missing, please report that as a
> >
> > TS_VERIFY_CTX is an opaque structure since version 1.1.0. You may
> > not
> >
> > access its members directly. To set them you need to use the
> > various
> >
> > TS_VERIFY_CTX_set* functions.
> >
> > If there are any particular accessors missing, please report that
> > as a
> >
> > bug to
> > https://urldefense.com/v3/__https://github.com/openssl/openssl__;!!FbCVDoc3r24SyHFW!8NySO-tJ589YiMdFNLtEu_6Hc7knvKgfTOXGkAFWjfEMxLaE5oRe3igKb4JOdd9HiiJ8sLVdiV6SYZo$
> > <
> > https://urldefense.com/v3/__https:/github.com/openssl/openssl__;!!FbCVDoc3r24SyHFW!8NySO-tJ589YiMdFNLtEu_6Hc7knvKgfTOXGkAFWjfEMxLaE5oRe3igKb4JOdd9HiiJ8sLVdiV6SYZo$
> > >[github[.]com]
> >
> > Tomas Mraz, OpenSSL
> >
> > On Fri, 2024-06-28 at 14:09 +0000, BENTLEY Thom via openssl-users
> >
> > wrote:
> >
> > >
> >
> > >
> >
> > >
> >
> > > Hi All,
> >
> > >
> >
> > > I build and installed version 3.0.8 on Windows with Visual Studio
> >
> > > using the instructions provided.
> >
> > > I copied the bin, include, and lib directories to a location that
> >
> > > would be found by the CMake for the
> >
> > > DCMTK toolkit version 3.6.8.
> >
> > > When I attempt to build the DCMTK toolkit, I see that the ts.h
> > > value
> >
> > > can’t find the definition ofTS_verify_ctx.
> >
> > > That’s because of the missing ts_local.h as far as I can see.
> >
> > >
> >
> > > Is there something I missed in the build of the libraries and the
> >
> > > install package?
> >
> > > Thank.
> >
> > >
> >
> > >
> >
> > >
> >
> > >
> >
> > >
> >
> > > Thom Bentley| Senior Software Engineer |
> >
> > > Medidata, a Dassault Systèmes company
> >
> > >
> >
> > > This email and any attachments are intended solely for the use of
> > > the
> >
> > > individual or entity to whom it is addressed and may be
> > > confidential
> >
> > > and/or privileged.
> >
> > > If you are not one of the named recipients or have received this
> >
> > > email in error,
> >
> > > (i) you should not read, disclose, or copy it,
> >
> > > (ii) please notify sender of your receipt by reply email and
> > > delete
> >
> > > this email and all attachments,
> >
> > > (iii) Dassault Systèmes does not accept or assume any liability
> > > or
> >
> > > responsibility for any use of or reliance on this email.
> >
> > >
> >
> > > Please be informed that your personal data are processed
> > > according to
> >
> > > our data privacy policy as described on our website. Should you
> > > have
> >
> > > any questions related to personal data protection, please contact
> > > 3DS
> >
> > > Data Protection
> > > Officerhttps://www.3ds.com/privacy-policy/contact/
> >
> > >
> >
> > >
> >
> > --
> >
> > Tomáš Mráz, OpenSSL
> >
> > This email and any attachments are intended solely for the use of
> > the
> > individual or entity to whom it is addressed and may be
> > confidential
> > and/or privileged.
> >
> > If you are not one of the named recipients or have received this
> > email
> > in error,
> >
> > (i) you should not read, disclose, or copy it,
> >
> > (ii) please notify sender of your receipt by reply email and delete
> > this
> > email and all attachments,
> >
> > (iii) Dassault Systèmes does not accept or assume any liability or
> > responsibility for any use of or reliance on this email.
> >
> >
> > Please be informed that your personal data are processed according
> > to
> > our data privacy policy as described on our website. Should you
> > have any
> > questions related to personal data protection, please contact 3DS
> > Data
> > Protection Officer https://www.3ds.com/privacy-policy/contact/
> > <https://www.3ds.com/privacy-policy/contact/>
> >
> >
> This email and any attachments are intended solely for the use of the
> individual or entity to whom it is addressed and may be confidential
> and/or privileged.
> If you are not one of the named recipients or have received this
> email in error,
> (i) you should not read, disclose, or copy it,
> (ii) please notify sender of your receipt by reply email and delete
> this email and all attachments,
> (iii) Dassault Systèmes does not accept or assume any liability or
> responsibility for any use of or reliance on this email.
>
> Please be informed that your personal data are processed according to
> our data privacy policy as described on our website. Should you have
> any questions related to personal data protection, please contact 3DS
> Data Protection Officerhttps://www.3ds.com/privacy-policy/contact/
>
>
--
Tomáš Mráz, OpenSSL
More information about the openssl-users
mailing list