protected override void Dispose(bool disposing) { if (disposing) { if (chain != null) { chain.Dispose(); chain = null; } if (storeCtx != null) { storeCtx.Dispose(); storeCtx = null; } if (untrustedChain != null) { untrustedChain.Dispose(); untrustedChain = null; } if (untrusted != null) { foreach (var cert in untrusted) { cert.Dispose(); } } } base.Dispose(disposing); }
public void Initialize(MonoBtlsX509Store store, MonoBtlsX509Chain chain) { var ret = mono_btls_x509_store_ctx_init( Handle.DangerousGetHandle(), store.Handle.DangerousGetHandle(), chain.Handle.DangerousGetHandle()); CheckError(ret); }
public override bool Verify(X509Certificate2 thisCertificate) { using (var chain = new MonoBtlsX509Chain()) { chain.AddCertificate(x509.Copy()); if (intermediateCerts != null) { for (int i = 0; i < intermediateCerts.Count; i++) { var intermediate = (X509CertificateImplBtls)intermediateCerts [i]; chain.AddCertificate(intermediate.x509.Copy()); } } return(MonoBtlsProvider.ValidateCertificate(chain, null)); } }
public static MonoBtlsX509Chain GetNativeChain(X509CertificateCollection certificates) { var chain = new MonoBtlsX509Chain(); try { foreach (var cert in certificates) { using (var x509 = GetBtlsCertificate(cert)) chain.AddCertificate(x509); } return(chain); } catch { chain.Dispose(); throw; } }
internal static bool ValidateCertificate(MonoBtlsX509Chain chain, MonoBtlsX509VerifyParam param) { using (var store = new MonoBtlsX509Store()) using (var storeCtx = new MonoBtlsX509StoreCtx()) { SetupCertificateStore(store); storeCtx.Initialize(store, chain); if (param != null) { storeCtx.SetVerifyParam(param); } var ret = storeCtx.Verify(); return(ret == 1); } }
internal X509ChainImplBtls (MonoBtlsX509StoreCtx storeCtx) { this.storeCtx = storeCtx.Copy (); this.chain = storeCtx.GetChain (); policy = new X509ChainPolicy (); untrustedChain = storeCtx.GetUntrusted (); if (untrustedChain != null) { untrusted = new X509Certificate2Collection (); policy.ExtraStore = untrusted; for (int i = 0; i < untrustedChain.Count; i++) { var cert = untrustedChain.GetCertificate (i); using (var impl = new X509CertificateImplBtls (cert)) untrusted.Add (new X509Certificate2 (impl)); } } }
internal X509ChainImplBtls(MonoBtlsX509StoreCtx storeCtx) { this.storeCtx = storeCtx.Copy(); this.chain = storeCtx.GetChain(); policy = new X509ChainPolicy(); untrustedChain = storeCtx.GetUntrusted(); if (untrustedChain != null) { untrusted = new X509Certificate2Collection(); policy.ExtraStore = untrusted; for (int i = 0; i < untrustedChain.Count; i++) { var cert = untrustedChain.GetCertificate(i); using (var impl = new X509CertificateImplBtls(cert)) untrusted.Add(new X509Certificate2(impl)); } } }
internal static bool ValidateCertificate(MonoBtlsX509Chain chain, MonoBtlsX509VerifyParam param) { using (var store = new MonoBtlsX509Store()) using (var storeCtx = new MonoBtlsX509StoreCtx()) { /* * We're called from X509Certificate2.Verify() via X509CertificateImplBtls.Verify(). * * Use the default settings and assume client-mode. */ SetupCertificateStore(store, MonoTlsSettings.DefaultSettings, false); storeCtx.Initialize(store, chain); if (param != null) { storeCtx.SetVerifyParam(param); } var ret = storeCtx.Verify(); return(ret == 1); } }
public static X509Chain GetManagedChain(MonoBtlsX509Chain chain) { var impl = new X509ChainImplBtls(chain); return(new X509Chain(impl)); }
public static MonoBtlsX509Chain GetNativeChain (X509CertificateCollection certificates) { var chain = new MonoBtlsX509Chain (); try { foreach (var cert in certificates) { using (var x509 = GetBtlsCertificate (cert)) chain.AddCertificate (x509); } return chain; } catch { chain.Dispose (); throw; } }
internal X509ChainImplBtls() { chain = new MonoBtlsX509Chain(); elements = new X509ChainElementCollection(); policy = new X509ChainPolicy(); }
internal X509ChainImplBtls(MonoBtlsX509Chain chain) { this.chain = chain.Copy(); policy = new X509ChainPolicy(); }
public override bool Verify (X509Certificate2 thisCertificate) { using (var chain = new MonoBtlsX509Chain ()) { chain.AddCertificate (x509.Copy ()); if (intermediateCerts != null) { for (int i = 0; i < intermediateCerts.Count; i++) { var intermediate = (X509CertificateImplBtls)intermediateCerts [i]; chain.AddCertificate (intermediate.x509.Copy ()); } } return MonoBtlsProvider.ValidateCertificate (chain, null); } }
protected override void Dispose (bool disposing) { if (disposing) { if (chain != null) { chain.Dispose (); chain = null; } if (storeCtx != null) { storeCtx.Dispose (); storeCtx = null; } if (untrustedChain != null) { untrustedChain.Dispose (); untrustedChain = null; } if (untrusted != null) { foreach (var cert in untrusted) cert.Dispose (); untrusted = null; } if (certificates != null) { foreach (var cert in certificates) cert.Dispose (); certificates = null; } } base.Dispose (disposing); }
internal static bool ValidateCertificate (MonoBtlsX509Chain chain, MonoBtlsX509VerifyParam param) { using (var store = new MonoBtlsX509Store ()) using (var storeCtx = new MonoBtlsX509StoreCtx ()) { SetupCertificateStore (store); storeCtx.Initialize (store, chain); if (param != null) storeCtx.SetVerifyParam (param); var ret = storeCtx.Verify (); return ret == 1; } }
internal X509ChainImplBtls (MonoBtlsX509Chain chain) { this.chain = chain.Copy (); policy = new X509ChainPolicy (); }
public static X509Chain GetManagedChain (MonoBtlsX509Chain chain) { var impl = new X509ChainImplBtls (chain); return new X509Chain (impl); }
internal X509ChainImplBtls () { chain = new MonoBtlsX509Chain (); elements = new X509ChainElementCollection (); policy = new X509ChainPolicy (); }
public void Initialize (MonoBtlsX509Store store, MonoBtlsX509Chain chain) { var ret = mono_btls_x509_store_ctx_init ( Handle.DangerousGetHandle (), store.Handle.DangerousGetHandle (), chain.Handle.DangerousGetHandle ()); CheckError (ret); }