public void ItFindsCertByCommonName() { var commonName = "x509store.read.letsencrypt.test.natemcmaster.com"; using var x509store = new X509Store(StoreName.My, StoreLocation.CurrentUser); x509store.Open(OpenFlags.ReadWrite); var testCert = CreateTestCert(commonName); x509store.Add(testCert); _output.WriteLine($"Adding cert {testCert.Thumbprint} to My/CurrentUser"); try { using var certStore = new X509CertStore(NullLogger <X509CertStore> .Instance) { AllowInvalidCerts = true }; var foundCert = certStore.GetCertificate(commonName); Assert.NotNull(foundCert); Assert.Equal(testCert, foundCert); } finally { x509store.Remove(testCert); } }
[SkipOnOS(OS.Windows)] // Flaky on Windows for unclear reasons. public async Task ItSavesCertificates() { var commonName = "x509store.save.letsencrypt.test.natemcmaster.com"; var testCert = CreateTestCert(commonName); using var x509store = new X509Store(StoreName.My, StoreLocation.CurrentUser); x509store.Open(OpenFlags.ReadWrite); try { using var certStore = new X509CertStore(NullLogger <X509CertStore> .Instance) { AllowInvalidCerts = true }; await certStore.SaveAsync(testCert, default); var certificates = x509store.Certificates.Find( X509FindType.FindByThumbprint, testCert.Thumbprint, validOnly: false); _output.WriteLine($"Searching for cert {testCert.Thumbprint} to My/CurrentUser"); var foundCert = Assert.Single(certificates); Assert.NotNull(foundCert); Assert.Equal(testCert, foundCert); } finally { x509store.Remove(testCert); } }
public void ItFindsCertTheCertWithLongestLifespan() { var commonName = "x509store-ttl.letsencrypt.test.natemcmaster.com"; using var x509store = new X509Store(StoreName.My, StoreLocation.CurrentUser); x509store.Open(OpenFlags.ReadWrite); var testCert0 = CreateTestCert(commonName, DateTimeOffset.Now.AddMinutes(2)); var testCert1 = CreateTestCert(commonName, DateTimeOffset.Now.AddHours(1)); var testCert2 = CreateTestCert(commonName, DateTimeOffset.Now.AddHours(2)); x509store.Add(testCert2); x509store.Add(testCert1); x509store.Add(testCert0); try { using var certStore = new X509CertStore(Mock.Of <ILogger <X509CertStore> >()) { AllowInvalidCerts = true }; var foundCert = certStore.GetCertificate(commonName); Assert.NotNull(foundCert); Assert.Equal(testCert2, foundCert); } finally { x509store.Remove(testCert0); x509store.Remove(testCert1); x509store.Remove(testCert2); } }
public X509CertStoreTests(ITestOutputHelper output) { _output = output; _options = new LettuceEncryptOptions(); _certStore = new X509CertStore(Options.Create(_options), NullLogger <X509CertStore> .Instance) { AllowInvalidCerts = true }; }
public void ItReturnsNullWhenCantFindCert() { var commonName = "notfound.letsencrypt.test.natemcmaster.com"; using var certStore = new X509CertStore(Mock.Of <ILogger <X509CertStore> >()) { AllowInvalidCerts = true }; var foundCert = certStore.GetCertificate(commonName); Assert.Null(foundCert); }