DefaultTlsClient.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. using BestHTTP.SecureProtocol.Org.BouncyCastle.Tls.Crypto;
  5. namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Tls
  6. {
  7. public abstract class DefaultTlsClient
  8. : AbstractTlsClient
  9. {
  10. private static readonly int[] DefaultCipherSuites = new int[]
  11. {
  12. /*
  13. * TODO[tls13] TLS 1.3
  14. */
  15. //CipherSuite.TLS_CHACHA20_POLY1305_SHA256,
  16. //CipherSuite.TLS_AES_128_GCM_SHA256,
  17. /*
  18. * pre-TLS 1.3
  19. */
  20. CipherSuite.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
  21. CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
  22. CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
  23. CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
  24. CipherSuite.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
  25. CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
  26. CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
  27. CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
  28. CipherSuite.TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
  29. CipherSuite.TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
  30. CipherSuite.TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,
  31. CipherSuite.TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
  32. CipherSuite.TLS_RSA_WITH_AES_128_GCM_SHA256,
  33. CipherSuite.TLS_RSA_WITH_AES_128_CBC_SHA256,
  34. CipherSuite.TLS_RSA_WITH_AES_128_CBC_SHA,
  35. };
  36. public DefaultTlsClient(TlsCrypto crypto)
  37. : base(crypto)
  38. {
  39. }
  40. protected override int[] GetSupportedCipherSuites()
  41. {
  42. return TlsUtilities.GetSupportedCipherSuites(Crypto, DefaultCipherSuites);
  43. }
  44. }
  45. }
  46. #pragma warning restore
  47. #endif