internal CertificateManager(CertificateEngine engine, string issuer, string rootCertificateName, Action <Exception> exceptionFunc) { this.exceptionFunc = exceptionFunc; //For Mono only Bouncy Castle is supported if (RunTime.IsRunningOnMono() || engine == CertificateEngine.BouncyCastle) { certEngine = new BCCertificateMaker(); } else { certEngine = new WinCertificateMaker(); } Issuer = issuer; RootCertificateName = rootCertificateName; certificateCache = new ConcurrentDictionary <string, CachedCertificate>(); }