12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- using System.IO;
- using UnityEngine;
- namespace Mirror.SimpleWeb
- {
- internal class SslConfigLoader
- {
- internal struct Cert
- {
- public string path;
- public string password;
- }
- internal static SslConfig Load(SimpleWebTransport transport)
- {
- // don't need to load anything if ssl is not enabled
- if (!transport.sslEnabled)
- return default;
- string certJsonPath = transport.sslCertJson;
- Cert cert = LoadCertJson(certJsonPath);
- return new SslConfig(
- enabled: transport.sslEnabled,
- sslProtocols: transport.sslProtocols,
- certPath: cert.path,
- certPassword: cert.password
- );
- }
- internal static Cert LoadCertJson(string certJsonPath)
- {
- string json = File.ReadAllText(certJsonPath);
- Cert cert = JsonUtility.FromJson<Cert>(json);
- if (string.IsNullOrEmpty(cert.path))
- {
- throw new InvalidDataException("Cert Json didn't not contain \"path\"");
- }
- if (string.IsNullOrEmpty(cert.password))
- {
- // password can be empty
- cert.password = string.Empty;
- }
- return cert;
- }
- }
- }
|