• Re: OpenSSL for Windows XP and example code - how to determine and wher

    From David Goodwin@21:1/5 to All on Sun Jul 28 10:16:34 2024
    In article <v82676$39lo3$1@dont-email.me>, address@is.invalid says...

    David,

    So you could probably grab the XP-compatible openssl 3.0.14 bits (libcrypto3.dll, libssl-3.dll, zlib1.dll, openssl.exe) from a recent successful build of that from Github such as:
    https://github.com/davidrg/ckwin/actions/runs/10100891255

    I would love to. Really.

    One problem though : that github page doesn't show any indication of which
    of the (jobs?) download links there contains them.

    If you do this you'll want the ckwin-vc14.2-x86 or ckwin-vc14-x86
    artifact -

    How ? The only occurrences of "ckwin" on that page are just bits of text in the "deprication notice" and the "Artifacts" list - neither of which
    contains anything downloadable.

    Unfortunately you need to be logged in to github to download artifacts
    from CI runs. If you don't have a github account, you could try the
    openssl bits from this older build: https://ftp2.zx.net.nz/pub/Kermit95/test_builds/regent25-test/ckw-pre- b6-regent-test.zip

    Though if you want to keep up-to-date with OpenSSL *and* have
    Windows
    XP support, getting a suitable build environment is probably better
    than relying on finding compatible binaries online.

    Thanks for the suggestion, but no thanks.

    Besides that I've got zero wish to install a C{something} build environment just to generate a few DLLs (and only for them!), one of the other
    responders here told me that he needed to "tweak" the sourcecode to get it
    to compile and work on XP. Did I already mention that C{something} is
    *not* my programming language ?

    There is no need to tweak the C code at this time. OpenSSL 3.0.14 builds unmodified for XP provided that you tell the configure step to build it
    for XP rather than Vista or newer.

    OpenSSL has required that special configure step to target Windows XP
    for a few years now which will be why you've struggled to find any off- the-shelf binaries that work. Anyone wanting OpenSSL for XP for the last
    few years will have been building it themselves.

    IOW, I would be increasing (by quite a bit) the number of problems I would need to solve, not lessening them. :-(

    yeah, targeting a 23 year old operating system thats been out of support
    for a decade is not the easy path.

    I'm thankful that OpenSSL hasn't dropped support yet, but its really a
    matter of time. I've already had to patch one library I use (libssh) to
    restore XP support, I don't think I will be willing to do the same for
    OpenSSL when the time comes.

    With Visual C++, perl, and nasm installed

    :-) Lets guess : I just have to install a random version of each and it will all work nicely together ? No ? Some combinations will work but others won't ? And I just have to pick some and hope I get lucky ? :-)

    Visual C++ 2019 is the newest that can target XP, Visual C++ 2010 is the
    oldest I've attempted to build current OpenSSL on - I don't know how
    much older you can go, but I do know that Visual C++ 6.0 is too old.

    Any version of perl will do - its only used to run the configure script
    that generates the makefile. I just grab the current version of
    Strawberry perl from https://strawberryperl.com/

    Any version of nasm will do. I just grab the current version from https://www.nasm.us/

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David Goodwin@21:1/5 to All on Sun Jul 28 23:55:01 2024
    In article <v84o67$3qod9$1@dont-email.me>, address@is.invalid says...

    David,

    Unfortunately you need to be logged in to github to download
    artifacts from CI runs.

    Nope. For the same reason I'm not going to not install a VC compiler environment (for a one-off something).

    Well, its not really a one-off - there have already been 14 releases of
    OpenSSL 3.0 and I'm sure there will be plenty more before it goes out of support in September 2026.

    If security is important (and I assume it is, otherwise why bother with OpenSSL), you'll likely be building it a few times a year to fix
    security vulnerabilities whenever they come up.

    you could try the openssl bits from this older build:
    [snip link]

    Thanks. Alas, the "openssl.exe" executable in it also thows that "is not a valid Win32 application" error (although I can make a guess, I still don't know what causes it).

    one of the other responders here told me that he needed to "tweak" the sourcecode to get it to compile and work on XP.
    ...
    There is no need to tweak the C code at this time.

    That means that I've now got two sources of information that are conflicting with each other. :-(

    yeah, targeting a 23 year old operating system thats been out of
    support for a decade is not the easy path.

    Preceede that with sorely lacking information about (the available for download) OpenSSL versions in general (which makes it next-to-impossible to figure out which download is compatible with my 32-bit XP OS), and you understand the predicament I'm in. :-(

    I would have thought that the users of XP would be making extensive use of OpenSSL, because the commercial products have dropped XP from their vocabulary.

    Any chance you know of someone who's willing to compile a 32-bit XP compatible version of OpenSSL 3.x for me ? It should be easy right ? It just needs a small(?)configuration change. :-)

    Thanks for the responses/help.

    Just had a look and indeed that openssl.exe doesn't work on Windows XP.
    I checked a build of my application that I know for certain can do TLS
    on Windows XP and openssl.exe is broken there too despite the DLLs
    working fine! Turns out the linker was marking the executable with a
    subsystem version too high for XP. Ended up just patching the makefile
    as the openssl configure script doesn't let you specify particular
    linker flags (ran into this when cross-compiling OpenSSL for Itanium).

    In here you'll find OpenSSL 3.0.14 built for Windows XP fresh from CI
    along with a screenshot showing it running: https://ftp.zx.net.nz/public/tmp/openssl-3-xp/

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Charlie Gibbs@21:1/5 to R.Wieser on Sun Jul 28 19:34:18 2024
    On 2024-07-28, R.Wieser <address@is.invalid> wrote:

    one of the other responders here told me that he needed to "tweak" the
    sourcecode to get it to compile and work on XP.
    ...
    There is no need to tweak the C code at this time.

    That means that I've now got two sources of information that are conflicting with each other. :-(

    As one of those sources, I probably misspoke. I'm trying to remember
    something I did a while ago and probably got some of it wrong. It's
    probably more accurate to say that I was tweaking not the C source
    code itself, but the build procedures. It took a bit of work, and
    I don't remember the intricacies in full detail. So no, there's
    probably no conflict between us.

    (Note that the word "probably" occurs four times in the preceding
    paragraph. I qualify virtually everything I say.)

    Any chance you know of someone who's willing to compile a 32-bit XP compatible version of OpenSSL 3.x for me ? It should be easy right ?
    It just needs a small(?)configuration change. :-)

    If you don't mind figuring out how to statically link to MinGW libraries (libcrypto.a and libssl.a), I could probably put the ones I finally built
    up on Dropbox.

    --
    /~\ Charlie Gibbs | We'll go down in history as the
    \ / <cgibbs@kltpzyxm.invalid> | first society that wouldn't save
    X I'm really at ac.dekanfrus | itself because it wasn't cost-
    / \ if you read it the right way. | effective. -- Kurt Vonnegut

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From R.Wieser@21:1/5 to All on Sun Jul 28 16:21:33 2024
    David,

    Nope. For the same reason I'm not going to not install a VC compiler
    environment (for a one-off something).

    Well, its not really a one-off

    :-) Thats a maintainer kind of POV, not a/my User one. If v0.9.8 would
    have had TLS1.2+ support I would not even have considered looking for a
    newer version (don't try to fix what aint broken).

    If security is important (and I assume it is, otherwise why bother
    with OpenSSL),

    You have no idea what another reason could be ?

    In my case security could not be less important.

    What is is that when I go to the baker to buy me a loaf bread - something everyone can afford - I'm not allowed into the store without having a money-movers type of truck to transport that loaf.

    Sound silly ? But that is how it nowerdays works. Even when a website
    doesn't have got anything of worth (like just a few pictures of pets doing silly things or some webstrips) I may only get what they have when I have
    high levels of SSL security.

    As how low my interest in security is ? The version I now have (using the
    DLLs FireFox comes with) I have not even bothered to check the servers certificates.

    IOW, the only reason I'm rewriting that version using OpenSSL is because the locks on the servers front doors get ever more complex, and I want to make
    sure that I can keep entering them.

    Now you know /two/ reasons why someone would want to use OpenSSL. :-)

    Regards,
    Rudy Wieser

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David Goodwin@21:1/5 to All on Mon Jul 29 08:39:51 2024
    In article <v85k5l$3vd4f$1@dont-email.me>, address@is.invalid says...

    David,

    Nope. For the same reason I'm not going to not install a VC compiler
    environment (for a one-off something).

    Well, its not really a one-off

    :-) Thats a maintainer kind of POV, not a/my User one. If v0.9.8 would
    have had TLS1.2+ support I would not even have considered looking for a
    newer version (don't try to fix what aint broken).

    If security is important (and I assume it is, otherwise why bother
    with OpenSSL),

    You have no idea what another reason could be ?

    In my case security could not be less important.

    What is is that when I go to the baker to buy me a loaf bread - something everyone can afford - I'm not allowed into the store without having a money-movers type of truck to transport that loaf.

    Sound silly ? But that is how it nowerdays works. Even when a website doesn't have got anything of worth (like just a few pictures of pets doing silly things or some webstrips) I may only get what they have when I have high levels of SSL security.

    As how low my interest in security is ? The version I now have (using the DLLs FireFox comes with) I have not even bothered to check the servers certificates.

    IOW, the only reason I'm rewriting that version using OpenSSL is because the locks on the servers front doors get ever more complex, and I want to make sure that I can keep entering them.

    Now you know /two/ reasons why someone would want to use OpenSSL. :-)

    Out of curiousity, what is it you're trying to do? I assume not build a
    web browser.

    If you *are* doing https stuff though, there are perhaps easier ways
    than dealing with OpenSSL directly. There are proxy servers you can run
    on some other computer like a Raspberry Pi that will downgrade the
    SSL/TLS version to something vintage computers will understand. There is
    one that will re-render the page in a way vintage browsers will handle
    too. Probably much easier than trying to wrangle the poorly documented
    OpenSSL API.

    Also, I forgot to mention those XP-compatible binaries I linked to will
    need the Visual C++ redistributable installed, though I expect by now
    mostly everyone will already have the last XP version of that: https://ftp.zx.net.nz/pub/dev/redist/vcpp/2019_16.7/VC_redist.x86.exe

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From R.Wieser@21:1/5 to All on Mon Jul 29 08:45:21 2024
    David,

    Out of curiousity, what is it you're trying to do? I assume not
    build a web browser.

    I'm trying to re-build my webpage download tool.

    If you *are* doing https stuff though,

    :-) Yep. Otherwise I would just have used Windows own WS2_32.DLL and be
    done with it.

    there are perhaps easier ways than dealing with OpenSSL directly.

    I'm sure of it. But as a hobby programmer I'm inclined to see if I can do
    it myself too (doesn't mean that I will never switch to use pre-made
    solutions, just that they are not the first thing I think of)

    There are proxy servers you can run on some other computer like a
    Raspberry Pi that will downgrade the SSL/TLS version to something
    vintage computers will understand.

    There is not even a need to use a seperate 'puter for it, a proxy service
    will run as well on the client 'puter itself.

    There is one that will re-render the page in a way vintage browsers
    will handle too.

    That sounds /very/ interresting. Especially when you can script the "re-endering" part (read: being able to scrub webpages before viewing).

    IOW, do you perhaps have a name and/or link for me ?

    Probably much easier than trying to wrangle the poorly documented
    OpenSSL API.

    "Probably" ? Thats an easy bet. :-) But as I'm not willing to just "give
    up" because "it looks too hard" I will try my damnest to see if I can figure
    it out before conceeding defeat (yeah, you can just call it "stubborn" if
    you want. :-) ).

    Also, I forgot to mention those XP-compatible binaries I linked to
    will need the Visual C++ redistributable installed,

    I didn't even get far enough to get an error about it. :-|

    Regards,
    Rudy Wieser

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From R.Wieser@21:1/5 to All on Sun Jul 28 22:38:04 2024
    Charlie,

    As one of those sources, I probably misspoke.
    ...
    It's probably more accurate to say that I was tweaking not the C
    source code itself, but the build procedures.
    ...
    So no, there's probably no conflict between us.

    Thank you for posting that. :-) It does take my confusion away.

    Alas, it doesn't it doesn't really change anything for me. I still have no intention to install a VC compiler (and its dependancies) just for the sake
    of creating the two DLLs. Besides the problem of having to find the info to how to tweak the build process - when finding even just basic info about OpenSSL is problematic.

    If you don't mind figuring out how to statically link to MinGW
    libraries (libcrypto.a and libssl.a), I could probably put the ones
    I finally built up on Dropbox.

    Thanks for the offer, but I'm afraid that my language-of-choice uses .OBJ
    files for that. IOW, those files are likely incompatible with my Borlands
    Tasm v5 assembler.

    Regards,
    Rudy Wieser

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From R.Wieser@21:1/5 to All on Sun Jul 28 08:22:08 2024
    David,

    Unfortunately you need to be logged in to github to download
    artifacts from CI runs.

    Nope. For the same reason I'm not going to not install a VC compiler environment (for a one-off something).

    you could try the openssl bits from this older build:
    [snip link]

    Thanks. Alas, the "openssl.exe" executable in it also thows that "is not a valid Win32 application" error (although I can make a guess, I still don't
    know what causes it).

    one of the other responders here told me that he needed to "tweak" the sourcecode to get it to compile and work on XP.
    ...
    There is no need to tweak the C code at this time.

    That means that I've now got two sources of information that are conflicting with each other. :-(

    yeah, targeting a 23 year old operating system thats been out of
    support for a decade is not the easy path.

    Preceede that with sorely lacking information about (the available for download) OpenSSL versions in general (which makes it next-to-impossible to figure out which download is compatible with my 32-bit XP OS), and you understand the predicament I'm in. :-(

    I would have thought that the users of XP would be making extensive use of OpenSSL, because the commercial products have dropped XP from their
    vocabulary.

    Any chance you know of someone who's willing to compile a 32-bit XP
    compatible version of OpenSSL 3.x for me ? It should be easy right ? It
    just needs a small(?)configuration change. :-)

    Thanks for the responses/help.

    Regards,
    Rudy Wieser

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David Goodwin@21:1/5 to All on Wed Jul 31 13:20:31 2024
    In article <v87dqo$cir7$1@dont-email.me>, address@is.invalid says...

    David,

    Out of curiousity, what is it you're trying to do? I assume not
    build a web browser.

    I'm trying to re-build my webpage download tool.

    If you *are* doing https stuff though,

    :-) Yep. Otherwise I would just have used Windows own WS2_32.DLL and be done with it.

    there are perhaps easier ways than dealing with OpenSSL directly.

    I'm sure of it. But as a hobby programmer I'm inclined to see if I can do
    it myself too (doesn't mean that I will never switch to use pre-made solutions, just that they are not the first thing I think of)

    There are proxy servers you can run on some other computer like a
    Raspberry Pi that will downgrade the SSL/TLS version to something
    vintage computers will understand.

    There is not even a need to use a seperate 'puter for it, a proxy service will run as well on the client 'puter itself.

    There is one that will re-render the page in a way vintage browsers
    will handle too.

    That sounds /very/ interresting. Especially when you can script the "re-endering" part (read: being able to scrub webpages before viewing).

    IOW, do you perhaps have a name and/or link for me ?

    This is the tool: https://github.com/tenox7/wrp

    Its not quite what I would consider ideal though - it can either send
    back a very simplified version of the webpage, or it can render the
    webpage server-side and then send an imagemap to the browser. So in that
    mode you're really just operating chrome remotely via a vintage web
    browser.

    Probably much easier than trying to wrangle the poorly documented
    OpenSSL API.

    "Probably" ? Thats an easy bet. :-) But as I'm not willing to just "give up" because "it looks too hard" I will try my damnest to see if I can figure it out before conceeding defeat (yeah, you can just call it "stubborn" if
    you want. :-) ).

    Also, I forgot to mention those XP-compatible binaries I linked to
    will need the Visual C++ redistributable installed,

    I didn't even get far enough to get an error about it. :-|

    Regards,
    Rudy Wieser

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From R.Wieser@21:1/5 to All on Wed Jul 31 08:56:13 2024
    David,

    There is one that will re-render the page in a way vintage browsers
    will handle too.

    That sounds /very/ interresting. Especially when you can script the
    "re-endering" part (read: being able to scrub webpages before viewing).

    IOW, do you perhaps have a name and/or link for me ?

    This is the tool: https://github.com/tenox7/wrp

    Its not quite what I would consider ideal though - it can either send
    back a very simplified version of the webpage, or it can render the
    webpage server-side and then send an imagemap to the browser. So in
    that mode you're really just operating chrome remotely via a vintage
    web browser.

    Thanks for that.

    As for the drawback of the "simplified version of the webpage", between my GreaseMonkey and RequestPolicy firefox add-ons (page scrubbing and
    third-party resource blocking) I might well already be looking at such "simplified versions" of webpages. :-)

    Regards,
    Rudy Wieser

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From R.Wieser@21:1/5 to All on Sat Jul 27 09:04:38 2024
    David,

    So you could probably grab the XP-compatible openssl 3.0.14 bits (libcrypto3.dll, libssl-3.dll, zlib1.dll, openssl.exe) from a recent successful build of that from Github such as:
    https://github.com/davidrg/ckwin/actions/runs/10100891255

    I would love to. Really.

    One problem though : that github page doesn't show any indication of which
    of the (jobs?) download links there contains them.

    If you do this you'll want the ckwin-vc14.2-x86 or ckwin-vc14-x86
    artifact -

    How ? The only occurrences of "ckwin" on that page are just bits of text in the "deprication notice" and the "Artifacts" list - neither of which
    contains anything downloadable.

    Though if you want to keep up-to-date with OpenSSL *and* have Windows
    XP support, getting a suitable build environment is probably better
    than relying on finding compatible binaries online.

    Thanks for the suggestion, but no thanks.

    Besides that I've got zero wish to install a C{something} build environment just to generate a few DLLs (and only for them!), one of the other
    responders here told me that he needed to "tweak" the sourcecode to get it
    to compile and work on XP. Did I already mention that C{something} is
    *not* my programming language ?

    IOW, I would be increasing (by quite a bit) the number of problems I would
    need to solve, not lessening them. :-(

    With Visual C++, perl, and nasm installed

    :-) Lets guess : I just have to install a random version of each and it will all work nicely together ? No ? Some combinations will work but others
    won't ? And I just have to pick some and hope I get lucky ? :-)

    Regards,
    Rudy Wieser

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From R.Wieser@21:1/5 to All on Mon Sep 23 11:50:23 2024
    Newyana2,

    I did find that page to and downloaded the 7.88.1 ZIP file from it
    (before I wrote my previous message). Alas, it just contains source
    files, no pre-compiled DLLs of any kind. IOW, of no use to me.

    Woops. Sorry about that.

    No problem. They could possibly function as a reference.

    So I'm uploading the copy I have:

    http://www.fileconvoy.com/dfl.php?id=g2e0326a7be4be4a710005623941d4db71d71b2b617

    Thank you. :-)

    I also have the two other libraries in my project folder but not in the installer for that program, so it looks like libcurl.dll is all you need.

    I just checked the DLLs that get imported by libcurl.dll itself, and all of them seem to be present in my OS. So unless your VB6 program dynamically
    loads either of those two other DLLs I should be fine.

    The curl website does have some decent docs, if you need that.

    I'll have to search for them. Hopefully the libcurl.dll's version number
    will allow me to pin-point the valid documentation for it.

    Luckily my Borlands TASM has no problems with using them and mixing them
    with STDCALL DLLs.

    Oh, good. Then you can just translate my calls into the CDECL class
    easily.

    Yep. And I have to generate the library and header files to that
    libcurl.dll for my assembler anyway.

    I've ran into that problem recently-ish. ComCtl32.dll, shell32.dll and a
    few others all have a function called DllGetVersion.
    ...
    I see. In VB6 there are just inline declarations. I often use aliases
    for things like winsock functions.

    I wish that Borlands Tasm would have some way to specify which DLL to use (something like "dll.function" perhaps), but alas, although I did look for
    that I have not been able to find any information to the existance of it.

    Oh well, its not if I don't have two other methods to do the same (even if I don't really like either of them).

    Hmm. I should maybe check if I can put the alias into the libary file for
    the DLL itself (next to the origional function name I mean).

    Again, thanks for the help and files.

    Regards,
    Rudy Wieser

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Newyana2@21:1/5 to R.Wieser on Mon Sep 23 16:01:13 2024
    On 9/23/2024 5:50 AM, R.Wieser wrote:

    Again, thanks for the help and files.


    I'm glad if you can use it. We spend so much time on
    these things, and it won't be long before it's all useless.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From R.Wieser@21:1/5 to All on Tue Sep 24 08:39:47 2024
    Newyana2,

    We spend so much time on these things, and it won't be long before it's
    all useless.

    I hear you.

    I've got my own programs which have become useless or superceeded and also
    done a lot of work on reverse-engeneering certain API stuff, only to see the stuff fall out of grace.

    Same with my electronics hobby, where I designed small digital stuff
    (combining AND, OR, XOR ports, counters, etc) and also created
    circuit-boards for them. That too fell outof grace, as nowerdays everything
    is either cheaper to buy pre-build, or can be replaced by a few dollars
    costing micro-controller, which can do more complex stuff too. :-|

    Regards,
    Rudy Wieser

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Newyana2@21:1/5 to R.Wieser on Wed Sep 18 17:08:16 2024
    On 7/28/2024 4:38 PM, R.Wieser wrote:
    nally built up on Dropbox.

    Thanks for the offer, but I'm afraid that my language-of-choice uses .OBJ files for that. IOW, those files are likely incompatible with my Borlands Tasm v5 assembler.


    Just came across this. I looked into openssl at one point for
    email in VB6. Never got it working. I don't see anyplace where you said
    what you're trying to do, but for what it's worth, I got libcurl working
    on XP for downloading files and it also works on Win10. Version 7.8.

    I originally used a winsock class, back in the days of simple
    HTTP. Then I used winhttp. But that got outdated. I don't have
    anything for actually talking directly to the server, like I could do
    with HTTP. It gets confusing with something like openssl where
    you don't actually know what it's doing. Libcurl was easier because
    it handles the whole operation.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From R.Wieser@21:1/5 to All on Thu Sep 19 09:32:16 2024
    Newyana2,

    Just came across this. I looked into openssl at one point
    for email in VB6. Never got it working.

    I got /something/ to work, but due to the absense of documentation I'm not
    at all sure how it works (and thus how to extend on it). Though I did use
    it to make a very straight-forward (polling mode) http-to-https tunnel.

    I don't see anyplace where you said what you're trying to do,

    Just trying to replace SSL v0.9.8 with something that offers stronger, more current encryptions.

    As what I use that for ? Anything I want to try to create which needs an
    SSL connection (HTTPS file downloader, newsgroup "new news" checker, etc).

    but for what it's worth, I got libcurl working
    on XP for downloading files and it also works on Win10. Version 7.8.

    "I got libcurl working on XP" ? That sounds omnious...

    The thing is, I do not have any C{something} development environments installed, so I'm looking for (need) the pre-compiled binaries. DLLs to be specific.

    I originally used a winsock class, back in the days of simple
    HTTP.

    Same here.

    Then I used winhttp. But that got outdated.

    I don't think I ever used that. I did use OpenSSL v0.9.8 though. When
    that started to get old I looked into the (rather elegantly simple) way Windows(98se) supported SSL (though also with very little info about it) and sought for ways to upgrade its encryptions I found I was "a bit to late" to that party - and aborted that approach.

    It gets confusing with something like openssl where you don't actually
    know what it's doing.

    Tell me about it... :-(

    Heck, I can't even find info about what the different functions are for, are supposed to work or work together.

    All I can do is look at examples (the few I can find), and even those are
    hard to come by - and most never show an indication of which version of
    OpenSLL they are for. :-(

    Libcurl was easier because it handles the whole operation.

    Any chance you know where I can download Windows XP compatible DLLs for it ?

    Regards,
    Rudy Wieser

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Newyana2@21:1/5 to R.Wieser on Thu Sep 19 09:05:37 2024
    On 9/19/2024 3:32 AM, R.Wieser wrote:

    Heck, I can't even find info about what the different functions are for, are supposed to work or work together.

    Programmers are not famous for literacy. Many of them just
    impatiently proclaim that documentation is not their thing. I once
    tried to work with the WINE people and found they had an idea
    that they could create docs programmatically from inline code
    comments. Anything to avoid constructing a coherent sentence. :)

    Libcurl was easier because it handles the whole operation.

    Any chance you know where I can download Windows XP compatible DLLs for it ?

    https://curl.se/download/

    As mentioned, I used 7.8 on XP and it works on Win10. I use
    it to access the Bing maps REST API, downloading json files and
    images. I tried to get it to work for something else and now I
    don't remember what that was, but I couldn't figure it out, despite
    using pretty much the same code layout as I used for download.
    It's been almost a year since I looked at this code, and I seem to be
    reaching an age where memories require refreshing to recall details,
    so I can't tell you what the problem was.

    Libcurl is messy. A poorly designed API and less than optimal docs.
    On top of that, it's CDECL. And this is the "easy" version! But once
    you get past the maddening underscores, it seems to be solid. (One
    would think that a library that needs to be initialized might have a
    function called "Init". Instead it's "curl_easy_init". Like I didn't know
    I was calling into libcurl and my underscore key is lonely?

    It may all be more than you care to deal with. But I'll give you what
    I've got in VB6. There's a download function, a callback function, and
    a very nice CDECL class written by Paul Caton. (As you probably know,
    VB6 can't use CDECL functions directly, but this class is flawless. I've
    used it to make a cab.dll wrapper. Some of those functions have
    10 parameters, including multiple callbacks. Caton does amazing things
    with assembly, and he's generous with his efforts. I also use his self-subclassing class, which allows me to subclass any number of
    controls effortlessly and still be able to break in the VB6 IDE. The
    class allows me to receive any number of messages, before or after
    the main message proc.)

    It would be very messy to try to post it all here with wordwrap, but
    I've posted it to Fileconvoy, good for 14 days:

    http://www.fileconvoy.com/dfl.php?id=g44cb750627119bf61000562358711cca53a7b97356

    Inside you'll find the CDECL class, a module (.bas) with the curl ops,
    and a cert package. You probably want a newer one of those, but
    I don't remember details about that. The one I have is currently
    working fine. If you have trouble you can also tell curl to bypass
    cert checks.

    The libcurl DLLs (3) need to be available. Libcurl.dll, libcrypto-1_1.dll
    and libssl-1_1.dll. Let me know if I missed anything.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From R.Wieser@21:1/5 to All on Thu Sep 19 18:41:56 2024
    Newyana2,

    Libcurl was easier because it handles the whole operation.

    Any chance you know where I can download Windows XP compatible DLLs for
    it ?

    https://curl.se/download/

    I did find that page to and downloaded the 7.88.1 ZIP file from it (before I wrote my previous message). Alas, it just contains source files, no pre-compiled DLLs of any kind. IOW, of no use to me.

    Libcurl is messy. A poorly designed API and less than optimal docs.

    So, the same as OpenSLL ? :-)

    On top of that, it's CDECL.

    Luckily my Borlands TASM has no problems with using them and mixing them
    with STDCALL DLLs.

    But once you get past the maddening underscores, it seems to be solid.

    :-) Translating "decorated" DLL function names into ones I can actually use
    in my programs is something a .LIB file is for (I've done that before).

    One would think that a library that needs to be initialized might have a function called "Init". Instead it's "curl_easy_init".

    Just imagine *two* libaries that both have an "init" function. How would
    your program know which one to call ?

    I've ran into that problem recently-ish. ComCtl32.dll, shell32.dll and a few others all have a function called DllGetVersion. I had to create a .DEF
    file for each of the DLLs in which I made an alias for that function
    prefixed with its DLL name (like "shell32_DllGetVersion") to be able to use them. :-\ (or dynamically find those entry points, but thats ugly and
    messy)

    But I'll give you what I've got in VB6. There's a download function,
    a callback function, and a very nice CDECL class written by Paul Caton.

    Thank you. It will come in handly as a reference.

    (As you probably know, VB6 can't use CDECL functions directly, but this
    class is flawless.

    Nope, I had no idea about that. The last time I used VB it was version 5. Many, many years back. :-)

    The libcurl DLLs (3) need to be available. Libcurl.dll, libcrypto-1_1.dll and libssl-1_1.dll. Let me know if I missed anything.

    I've download your ZIP file, and it contains a .CLS, a .CRT and a .BAS file.
    I could use the above three DLLs too ... (assuming you still have them).

    Regards,
    Rudy Wieser

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Newyana2@21:1/5 to R.Wieser on Thu Sep 19 14:50:21 2024
    On 9/19/2024 12:41 PM, R.Wieser wrote:

    https://curl.se/download/

    I did find that page to and downloaded the 7.88.1 ZIP file from it (before I wrote my previous message). Alas, it just contains source files, no pre-compiled DLLs of any kind. IOW, of no use to me.


    Woops. Sorry about that. I think this is one of those cases
    where I hunted all over for a usable Windows DLL of an OSS
    project. I don't know where I found it and can't seem to find it
    now. So I'm uploading the copy I have:

    http://www.fileconvoy.com/dfl.php?id=g2e0326a7be4be4a710005623941d4db71d71b2b617

    I also have the two other libraries in my project folder but not in
    the installer for that program, so it looks like libcurl.dll is all you
    need.
    I suspect that this particular version has everything wrapped in because
    it's 4 MB. Sorry for the confusion. I just don't remember all the details
    about this.

    The curl website does have some decent docs, if you need that.


    Luckily my Borlands TASM has no problems with using them and mixing them
    with STDCALL DLLs.

    Oh, good. Then you can just translate my calls into the CDECL class
    easily.

    Just imagine *two* libaries that both have an "init" function. How would your program know which one to call ?

    I'd only be loading one of them. If I had to use both init functions
    I'd alias one of them. There's no excuse for lowercase and underscore
    mania.

    I've ran into that problem recently-ish. ComCtl32.dll, shell32.dll and a few others all have a function called DllGetVersion. I had to create a .DEF
    file for each of the DLLs in which I made an alias for that function
    prefixed with its DLL name (like "shell32_DllGetVersion") to be able to use them. :-\ (or dynamically find those entry points, but thats ugly and
    messy)


    I see. In VB6 there are just inline declarations. I often use aliases
    for things like winsock functions.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Charlie Gibbs@21:1/5 to newyana@invalid.nospam on Thu Sep 19 23:52:42 2024
    On 2024-09-19, Newyana2 <newyana@invalid.nospam> wrote:

    I suspect that this particular version has everything wrapped in because
    it's 4 MB. Sorry for the confusion. I just don't remember all the details about this.

    That looks right. My library is just over 4MB. However, it's probably
    not of much use to you because it's built with MinGW and is designed
    to be statically linked. But it is a recent version of OpenSSL (3.x),
    and handles TLS 1.3.

    --
    /~\ Charlie Gibbs | We'll go down in history as the
    \ / <cgibbs@kltpzyxm.invalid> | first society that wouldn't save
    X I'm really at ac.dekanfrus | itself because it wasn't cost-
    / \ if you read it the right way. | effective. -- Kurt Vonnegut

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Newyana2@21:1/5 to Charlie Gibbs on Thu Sep 19 21:12:37 2024
    On 9/19/2024 7:52 PM, Charlie Gibbs wrote:
    On 2024-09-19, Newyana2 <newyana@invalid.nospam> wrote:

    I suspect that this particular version has everything wrapped in because
    it's 4 MB. Sorry for the confusion. I just don't remember all the details
    about this.

    That looks right. My library is just over 4MB. However, it's probably
    not of much use to you because it's built with MinGW and is designed
    to be statically linked. But it is a recent version of OpenSSL (3.x),
    and handles TLS 1.3.


    Yes. I came across a mingw download. I don't know where I got
    the libcurl.dll that I have. It may have been compiled by someone
    who made vblibcurl. There was a wrapper vblibcurl, for VB6. It's
    not unusual that I look for these things for days and then find them
    in some obscure corner of the Internet. There are rarely people
    interested in compiling Win32 DLLs from projects like this.

    There's no current plan to "deprecate" TLS 1.2, so we're probably
    OK for awhile. And Win10/11 actually have curl.exe pre-installed.
    I haven't tried it. It looks like it can do the basics as a commandline utility.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)