You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
234 lines
7.0 KiB
234 lines
7.0 KiB
8 months ago
|
#if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
|
||
|
#pragma warning disable
|
||
|
using System;
|
||
|
using System.Globalization;
|
||
|
using System.IO;
|
||
|
using System.Text;
|
||
|
|
||
|
#if SILVERLIGHT || PORTABLE || NETFX_CORE
|
||
|
using System.Collections.Generic;
|
||
|
#else
|
||
|
using System.Collections;
|
||
|
#endif
|
||
|
|
||
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities
|
||
|
{
|
||
|
internal abstract class Platform
|
||
|
{
|
||
|
private static readonly CompareInfo InvariantCompareInfo = CultureInfo.InvariantCulture.CompareInfo;
|
||
|
|
||
|
#if NETCF_1_0 || NETCF_2_0
|
||
|
private static string GetNewLine()
|
||
|
{
|
||
|
MemoryStream buf = new MemoryStream();
|
||
|
StreamWriter w = new StreamWriter(buf, Encoding.UTF8);
|
||
|
w.WriteLine();
|
||
|
Dispose(w);
|
||
|
byte[] bs = buf.ToArray();
|
||
|
return Encoding.UTF8.GetString(bs, 0, bs.Length);
|
||
|
}
|
||
|
#else
|
||
|
private static string GetNewLine()
|
||
|
{
|
||
|
return Environment.NewLine;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
internal static bool EqualsIgnoreCase(string a, string b)
|
||
|
{
|
||
|
#if PORTABLE || NETFX_CORE
|
||
|
return String.Equals(a, b, StringComparison.OrdinalIgnoreCase);
|
||
|
#else
|
||
|
return ToUpperInvariant(a) == ToUpperInvariant(b);
|
||
|
#endif
|
||
|
}
|
||
|
|
||
|
#if NETCF_1_0 || NETCF_2_0 || SILVERLIGHT || (PORTABLE || NETFX_CORE && !DOTNET)
|
||
|
internal static string GetEnvironmentVariable(
|
||
|
string variable)
|
||
|
{
|
||
|
return null;
|
||
|
}
|
||
|
#else
|
||
|
internal static string GetEnvironmentVariable(
|
||
|
string variable)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
return Environment.GetEnvironmentVariable(variable);
|
||
|
}
|
||
|
catch (System.Security.SecurityException)
|
||
|
{
|
||
|
// We don't have the required permission to read this environment variable,
|
||
|
// which is fine, just act as if it's not set
|
||
|
return null;
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#if NETCF_1_0
|
||
|
internal static Exception CreateNotImplementedException(
|
||
|
string message)
|
||
|
{
|
||
|
return new Exception("Not implemented: " + message);
|
||
|
}
|
||
|
|
||
|
internal static bool Equals(
|
||
|
object a,
|
||
|
object b)
|
||
|
{
|
||
|
return a == b || (a != null && b != null && a.Equals(b));
|
||
|
}
|
||
|
#else
|
||
|
internal static Exception CreateNotImplementedException(
|
||
|
string message)
|
||
|
{
|
||
|
return new NotImplementedException(message);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#if SILVERLIGHT || PORTABLE || NETFX_CORE
|
||
|
internal static System.Collections.IList CreateArrayList()
|
||
|
{
|
||
|
return new List<object>();
|
||
|
}
|
||
|
internal static System.Collections.IList CreateArrayList(int capacity)
|
||
|
{
|
||
|
return new List<object>(capacity);
|
||
|
}
|
||
|
internal static System.Collections.IList CreateArrayList(System.Collections.ICollection collection)
|
||
|
{
|
||
|
System.Collections.IList result = new List<object>(collection.Count);
|
||
|
foreach (object o in collection)
|
||
|
{
|
||
|
result.Add(o);
|
||
|
}
|
||
|
return result;
|
||
|
}
|
||
|
internal static System.Collections.IList CreateArrayList(System.Collections.IEnumerable collection)
|
||
|
{
|
||
|
System.Collections.IList result = new List<object>();
|
||
|
foreach (object o in collection)
|
||
|
{
|
||
|
result.Add(o);
|
||
|
}
|
||
|
return result;
|
||
|
}
|
||
|
internal static System.Collections.IDictionary CreateHashtable()
|
||
|
{
|
||
|
return new Dictionary<object, object>();
|
||
|
}
|
||
|
internal static System.Collections.IDictionary CreateHashtable(int capacity)
|
||
|
{
|
||
|
return new Dictionary<object, object>(capacity);
|
||
|
}
|
||
|
internal static System.Collections.IDictionary CreateHashtable(System.Collections.IDictionary dictionary)
|
||
|
{
|
||
|
System.Collections.IDictionary result = new Dictionary<object, object>(dictionary.Count);
|
||
|
foreach (System.Collections.DictionaryEntry entry in dictionary)
|
||
|
{
|
||
|
result.Add(entry.Key, entry.Value);
|
||
|
}
|
||
|
return result;
|
||
|
}
|
||
|
#else
|
||
|
internal static System.Collections.IList CreateArrayList()
|
||
|
{
|
||
|
return new ArrayList();
|
||
|
}
|
||
|
internal static System.Collections.IList CreateArrayList(int capacity)
|
||
|
{
|
||
|
return new ArrayList(capacity);
|
||
|
}
|
||
|
internal static System.Collections.IList CreateArrayList(System.Collections.ICollection collection)
|
||
|
{
|
||
|
return new ArrayList(collection);
|
||
|
}
|
||
|
internal static System.Collections.IList CreateArrayList(System.Collections.IEnumerable collection)
|
||
|
{
|
||
|
ArrayList result = new ArrayList();
|
||
|
foreach (object o in collection)
|
||
|
{
|
||
|
result.Add(o);
|
||
|
}
|
||
|
return result;
|
||
|
}
|
||
|
internal static System.Collections.IDictionary CreateHashtable()
|
||
|
{
|
||
|
return new Hashtable();
|
||
|
}
|
||
|
internal static System.Collections.IDictionary CreateHashtable(int capacity)
|
||
|
{
|
||
|
return new Hashtable(capacity);
|
||
|
}
|
||
|
internal static System.Collections.IDictionary CreateHashtable(System.Collections.IDictionary dictionary)
|
||
|
{
|
||
|
return new Hashtable(dictionary);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
internal static string ToLowerInvariant(string s)
|
||
|
{
|
||
|
#if PORTABLE || NETFX_CORE
|
||
|
return s.ToLowerInvariant();
|
||
|
#else
|
||
|
return s.ToLower(CultureInfo.InvariantCulture);
|
||
|
#endif
|
||
|
}
|
||
|
|
||
|
internal static string ToUpperInvariant(string s)
|
||
|
{
|
||
|
#if PORTABLE || NETFX_CORE
|
||
|
return s.ToUpperInvariant();
|
||
|
#else
|
||
|
return s.ToUpper(CultureInfo.InvariantCulture);
|
||
|
#endif
|
||
|
}
|
||
|
|
||
|
internal static readonly string NewLine = GetNewLine();
|
||
|
|
||
|
#if PORTABLE || NETFX_CORE
|
||
|
internal static void Dispose(IDisposable d)
|
||
|
{
|
||
|
d.Dispose();
|
||
|
}
|
||
|
#else
|
||
|
internal static void Dispose(Stream s)
|
||
|
{
|
||
|
s.Close();
|
||
|
}
|
||
|
internal static void Dispose(TextWriter t)
|
||
|
{
|
||
|
t.Close();
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
internal static int IndexOf(string source, string value)
|
||
|
{
|
||
|
return InvariantCompareInfo.IndexOf(source, value, CompareOptions.Ordinal);
|
||
|
}
|
||
|
|
||
|
internal static int LastIndexOf(string source, string value)
|
||
|
{
|
||
|
return InvariantCompareInfo.LastIndexOf(source, value, CompareOptions.Ordinal);
|
||
|
}
|
||
|
|
||
|
internal static bool StartsWith(string source, string prefix)
|
||
|
{
|
||
|
return InvariantCompareInfo.IsPrefix(source, prefix, CompareOptions.Ordinal);
|
||
|
}
|
||
|
|
||
|
internal static bool EndsWith(string source, string suffix)
|
||
|
{
|
||
|
return InvariantCompareInfo.IsSuffix(source, suffix, CompareOptions.Ordinal);
|
||
|
}
|
||
|
|
||
|
internal static string GetTypeName(object obj)
|
||
|
{
|
||
|
return obj.GetType().FullName;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
#pragma warning restore
|
||
|
#endif
|