Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C#
  4. TLS 1.3 on Windows Vista

TLS 1.3 on Windows Vista

Scheduled Pinned Locked Moved C#
csharpquestiondotnetsecurityhelp
7 Posts 5 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    moxol
    wrote on last edited by
    #1

    I have a C# app in .NET framework 4.6.1 where it uses WebClient.DownloadString(url) to download content from a url that uses TLS 1.3 and it throws exception because app is intended for a use on Windows Vista that doesn't have TLS 1.3 .NET framework 4.8 can't be installed on Vista. How can I solve this problem so that app can work on Vista?

    R L Richard DeemingR M 4 Replies Last reply
    0
    • M moxol

      I have a C# app in .NET framework 4.6.1 where it uses WebClient.DownloadString(url) to download content from a url that uses TLS 1.3 and it throws exception because app is intended for a use on Windows Vista that doesn't have TLS 1.3 .NET framework 4.8 can't be installed on Vista. How can I solve this problem so that app can work on Vista?

      R Offline
      R Offline
      RedDk
      wrote on last edited by
      #2

      I just browsed to namespace System.Net, using VS2010, and can see that WebClient.DownloadString(ur(i)) is a member of System [4.0.0.0] so I'd suggest going into the Project Properties and see if you can't switch the Target framework from the green one, 4.6.1, to ... say 2.0 or a little higher. Maybe 4.0. Nothing I've ever compiled with VS2010 gave me troubles on Vista but TLS did superceed SSL as I recall back around Windows 2000. Then again, I've actually has RDP running on Vista (though not attaching to Windows 2000) ... so I don't know what gives with RDP. Perhaps I'm confusing help here with some other help somewhere else :)

      1 Reply Last reply
      0
      • M moxol

        I have a C# app in .NET framework 4.6.1 where it uses WebClient.DownloadString(url) to download content from a url that uses TLS 1.3 and it throws exception because app is intended for a use on Windows Vista that doesn't have TLS 1.3 .NET framework 4.8 can't be installed on Vista. How can I solve this problem so that app can work on Vista?

        L Offline
        L Offline
        Lost User
        wrote on last edited by
        #3

        Hi, It's not possible. The .NET framework utilizes Schannel for TLS 1.3[^] and Vista uses outdated libraries.

        moxol wrote:

        How can I solve this problem so that app can work on Vista?

        The only thing that comes to mind is maybe using a C# wrapper around libcurl[^]. Best Wishes, -David Delaune

        1 Reply Last reply
        0
        • M moxol

          I have a C# app in .NET framework 4.6.1 where it uses WebClient.DownloadString(url) to download content from a url that uses TLS 1.3 and it throws exception because app is intended for a use on Windows Vista that doesn't have TLS 1.3 .NET framework 4.8 can't be installed on Vista. How can I solve this problem so that app can work on Vista?

          Richard DeemingR Offline
          Richard DeemingR Offline
          Richard Deeming
          wrote on last edited by
          #4

          You can get your app to use the OS-default protocols by setting a registry key: Transport Layer Security (TLS) best practices with the .NET Framework - .NET Framework | Microsoft Docs[^] Of course, that won't help if the OS doesn't support TLS 1.3 in the first place. As far as I can see, it's only supported in Windows 10 (build 1903 or later) and Windows 11, and in Windows Server 2019 and 2022. Vista doesn't even support TLS 1.1 without a patch! I guess the real question is, why are you still using an OS which has been out of mainstream support for over a decade, and out of extended support for over five years? :wtf:


          "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

          "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

          L 1 Reply Last reply
          0
          • Richard DeemingR Richard Deeming

            You can get your app to use the OS-default protocols by setting a registry key: Transport Layer Security (TLS) best practices with the .NET Framework - .NET Framework | Microsoft Docs[^] Of course, that won't help if the OS doesn't support TLS 1.3 in the first place. As far as I can see, it's only supported in Windows 10 (build 1903 or later) and Windows 11, and in Windows Server 2019 and 2022. Vista doesn't even support TLS 1.1 without a patch! I guess the real question is, why are you still using an OS which has been out of mainstream support for over a decade, and out of extended support for over five years? :wtf:


            "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

            L Offline
            L Offline
            Lost User
            wrote on last edited by
            #5

            Yep, There are a few third-party options. I'm not a C# dev, but I heard that Bouncy Castle[^] does TLS 1.3 or maybe a libcurl wrapper would be an option.

            1 Reply Last reply
            0
            • M moxol

              I have a C# app in .NET framework 4.6.1 where it uses WebClient.DownloadString(url) to download content from a url that uses TLS 1.3 and it throws exception because app is intended for a use on Windows Vista that doesn't have TLS 1.3 .NET framework 4.8 can't be installed on Vista. How can I solve this problem so that app can work on Vista?

              M Offline
              M Offline
              moxol
              wrote on last edited by
              #6

              Vista is on customer's computer, I can't change that. I managed to install TLS 1.1 and TLS 1.2 using this guide Enable TLS 1.1/1.2 on Windows Vista | JohnHaller.com[^] but no TLS 1.3. I found a method to install .NET framework 4.8 on Vista, but not yet tried. Then it would be possible to use in app TLS 1.3. [Tutorial] How to install .Net Framework 4.8 on Windows Vista - Windows Vista - MSFN[^] If that doesn't work, only remaining option is to use third-party library like libcurl as suggested.

              D 1 Reply Last reply
              0
              • M moxol

                Vista is on customer's computer, I can't change that. I managed to install TLS 1.1 and TLS 1.2 using this guide Enable TLS 1.1/1.2 on Windows Vista | JohnHaller.com[^] but no TLS 1.3. I found a method to install .NET framework 4.8 on Vista, but not yet tried. Then it would be possible to use in app TLS 1.3. [Tutorial] How to install .Net Framework 4.8 on Windows Vista - Windows Vista - MSFN[^] If that doesn't work, only remaining option is to use third-party library like libcurl as suggested.

                D Offline
                D Offline
                dan sh
                wrote on last edited by
                #7

                I would probably try to explain customer that the problem is not in my application but in operating system. If I was creating a protocol that does not work on an operating system, I would have explored further to fix it. But here it appears you are creating an application which has some pre-requisites which are outside or your control and must be provided by consumer of your application. I would stay away from try to *fix* this as soon someone would show up with a XP based computer and now I need to support that as well.

                "It is easy to decipher extraterrestrial signals after deciphering Javascript and VB6 themselves.", ISanti[^]

                1 Reply Last reply
                0
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                • Login

                • Don't have an account? Register

                • Login or register to search.
                • First post
                  Last post
                0
                • Categories
                • Recent
                • Tags
                • Popular
                • World
                • Users
                • Groups