static HttpsSocket() { m_config = Configuration.ServerConfig.GetConfig(); if (string.IsNullOrEmpty(m_config.SSLLicenseKey)) { // Get default License key SBUtils.Unit.SetLicenseKey(SSL_EVAL_LICENSE_KEY); } else { SBUtils.Unit.SetLicenseKey(m_config.SSLLicenseKey); } // Set security protocols if (m_config.Security.Tls10) { m_protocols += SBSSLConstants.Unit.sbTLS1; } if (m_config.Security.Tls11) { m_protocols += SBSSLConstants.Unit.sbTLS11; } if (m_config.Security.Tls12) { m_protocols += SBSSLConstants.Unit.sbTLS12; } if (m_config.Security.ResumeSession) { m_sessionPool = new SBSessionPool.TElSessionPool(); } m_certStorage.Add(LoadCertificate(m_config.CertificateName, m_config.CertificatePassword), true); }
public void OnCertificateValidateEvent(object sender, TElX509Certificate concern, ref bool validate) { var reason = 0; var validity = TSBCertificateValidity.cvInvalid; client.InternalValidate(ref validity, ref reason); if ((validity | (TSBCertificateValidity.cvOk | TSBCertificateValidity.cvSelfSigned)) == 0) { validity = memoryCertificateStorage.Validate(certificate, ref reason, DateTime.Now); if ((validity | (TSBCertificateValidity.cvOk | TSBCertificateValidity.cvSelfSigned)) == 0) { throw new ApplicationException("The server certificate is not valid."); } } memoryCertificateStorage.Add(concern, true); validate = true; }
private TElMemoryCertStorage LoadCertificate(string credentialsID, string access_token) { //credentialsInfo JsonSerializer serializer = new JsonSerializer(); ErrorLogger errorLogger = new ErrorLogger(); InputCredentialsInfo credentialsInfo = new InputCredentialsInfo() { credentialID = credentialsID }; CredentialsInfoClient credInfoClient = new CredentialsInfoClient(serializer, errorLogger, baseURL); string temp = credInfoClient.GetCredentialsInfo(access_token, credentialsInfo).ToString(); // string temp = serializer.Serialize(outputCredentials); if (!temp.Contains("error") && temp != "") { OutputCredentialsInfo output = serializer.Deserialize <OutputCredentialsInfo>(temp); string certificate = output.cert.certificates.FirstOrDefault(); TElX509Certificate cert = new TElX509Certificate(); byte[] certBuf = Encoding.UTF8.GetBytes(certificate); int r = cert.LoadFromBufferAuto(certBuf, 0, certBuf.Length, ""); if (r != 0) { throw new Exception("Certificate read error: " + r.ToString()); } TElMemoryCertStorage storage = new TElMemoryCertStorage(); storage.Add(cert, true); return(storage); } else { return(null); } }