public async Task ItRoundTripsCert(string?password)
        {
            var dir = new DirectoryInfo(Path.Combine(AppContext.BaseDirectory, Path.GetRandomFileName()));

            var repo      = new FileSystemCertificateRepository(dir, password);
            var writeCert = CreateTestCert("localhost");

            await repo.SaveAsync(writeCert, default);

            var certs = await repo.GetCertificatesAsync(default);
        public async Task ItCanSaveCertsWithoutPassword(string?password)
        {
            var dir          = new DirectoryInfo(Path.Combine(AppContext.BaseDirectory, Path.GetRandomFileName()));
            var repo         = new FileSystemCertificateRepository(dir, password);
            var cert         = CreateTestCert("localhost");
            var expectedFile = Path.Combine(dir.FullName, "certs", cert.Thumbprint + ".pfx");
            await repo.SaveAsync(cert, default);

            Assert.NotNull(new X509Certificate2(expectedFile));
        }
        public async Task ItCreatesCertOnDiskAsync()
        {
            var dir          = new DirectoryInfo(Path.Combine(AppContext.BaseDirectory, Path.GetRandomFileName()));
            var repo         = new FileSystemCertificateRepository(dir, "testpassword");
            var cert         = CreateTestCert("localhost");
            var expectedFile = Path.Combine(dir.FullName, cert.Thumbprint + ".pfx");

            Assert.False(dir.Exists, "Directory should not exist yet created");

            await repo.SaveAsync(cert, default);

            dir.Refresh();
            Assert.True(dir.Exists, "Directory was created");
            Assert.True(File.Exists(expectedFile), "Cert exists");
        }
Example #4
0
        public async Task ItCreatesCertOnDiskAsync()
        {
            var dir          = new DirectoryInfo(Path.Combine(AppContext.BaseDirectory, Path.GetRandomFileName()));
            var repo         = new FileSystemCertificateRepository(dir, "testpassword");
            var key          = RSA.Create(2048);
            var csr          = new CertificateRequest("CN=localhost", key, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
            var cert         = csr.CreateSelfSigned(DateTimeOffset.Now, DateTimeOffset.Now.AddHours(1));
            var expectedFile = Path.Combine(dir.FullName, cert.Thumbprint + ".pfx");

            Assert.False(dir.Exists, "Directory should not exist yet created");

            await repo.SaveAsync(cert, default);

            dir.Refresh();
            Assert.True(dir.Exists, "Directory was created");
            Assert.True(File.Exists(expectedFile), "Cert exists");
        }